00:02:36 #startmeeting Sponsor 55 sync 00:02:36 Meeting started Thu Apr 16 00:02:36 2020 UTC. The chair is teor. Information about MeetBot at http://wiki.debian.org/MeetBot. 00:02:36 Useful Commands: #action #agreed #help #info #idea #link #topic. 00:02:50 The pad is https://pad.riseup.net/p/tor-s55-ipv6-project-keep 00:03:54 I'll start with a status update. 00:04:01 ok 00:04:21 (I've looked at the tickets a bit and i reviewed the refactor you gave me, but otherwise I've been thrashing around between tasks ) 00:04:37 The refactor and code movement in #33633 got merged. 00:04:52 I don't think we can move any other code as part of the relay-side extends. Lots of it is used by clients, or heavily tied to client code. 00:05:07 makes sense 00:06:17 (Technically, we could move extend cell parsing to the relay module. But it's heavily tied to the extend cell formatting code.) 00:06:20 I have finished most of the relay-side IPv6 extend code in #33817, and created a bunch of sub-tickets. 00:07:29 I found a bunch of quirky bugs, #33918 was probably the weirdest 00:08:02 whoa 00:08:14 some IP addresses are longer than 32 chars 00:09:21 #33899 and #33901 are in needs_review 00:09:41 #33917 was also fun 00:10:34 wow 00:11:14 I thought I was doing weird debugging with the #33837 stuff 00:11:21 it really wasn't that hard, and the #33817 tests were the only tests that triggered fatal errors 00:11:57 I wrote code that had a bug in the chutney logs, but chutney wasn't failing with ALL_BUGS_ARE_FATAL 00:13:25 I think that's all the tickets. 00:13:41 ok! I'll try to be prompt with reviews 00:14:05 I've tried to spread reviews across nickm and ahf, but feel free to swap. I'm not sure if one of you has extra reviews. 00:14:32 i think we're both hosed but we'll get through it okay 00:14:49 we just need to knuckle down 00:14:57 are you blocking on any of these reviews? 00:14:59 Great 00:16:08 nickm: not really, I can't be sure that I have made all the required changes for IPv6 extends, until I write some code that sends IPv6 extends 00:16:25 yeah, that makes sense 00:17:02 The code is more complex than I expected, and the IPv4-only checks were spread throughout cell parsing, channel selection, and extend processing 00:17:55 My plan is to just do a single "does this relay support IPv6" check right before we open a new IPv6 connection 00:18:14 And otherwise let IPv4 or IPv6 extends just flow through 00:18:32 makes sense. So in other words we only check what link specifiers we have when we are about to use them? 00:19:11 We check that the extend cell has at least one IP address, but it can be either IPv4 or IPv6 or both 00:19:33 The existing code parses link specifiers early, so we can't really skip that check. 00:19:40 ok 00:19:58 But the only time we need to care if the relay actually has IPv6 is opening a new connection. 00:20:20 (If there are no new IPv6 connections, there won't be any IPv6 connection re-use either.) 00:20:40 ack 00:20:50 Because any config change marks all previous connections as unusable for new circuits. 00:21:55 So my plan is to implement a basic IPv6 support check, and then write some relay reachability code that actually uses IPv6 extends 00:22:29 As part of that, I will need to make extend_info_t support IPv4 and IPv6 addresses 00:23:21 (in the same extend) 00:23:31 ah, and right now it only has one address 00:23:41 so we'd need it to have ... ipv4_addr, ipv6_addr? 00:23:47 preferred_addr, alt_addr? 00:24:08 I think so, yes. I don't think preferred and alt make sense, because we're just going to make an EXTEND2 cell anyway. 00:24:22 Well, they might make sense for a create, but that's out of scope. 00:26:09 ok 00:26:38 i've been thinking on and off on which data structures I _wish_ we had, but this isn't the best point to refactor the whole link-specifier business 00:26:54 Yes, let's do incremental change for the moment 00:26:58 +1 00:27:09 I think that's mostly it for the status. 00:27:21 okay, that sounds solid to me. 00:27:27 I assigned you some tickets. Some of them aren't very exciting. 00:27:46 that's fine; i need the coding exercise when I'm taking a break from walking-onions-land 00:28:16 (though i did get to write a little analysis code in rust, which was positive) 00:28:53 Yes, I have lots of moments where I think the code I'm writing would be easier in Rust. Lots of my tests would just disappear. (Because of memory safety.) 00:29:05 I sent an email about IPv6 and PT reachability, but I haven't seen any replies yet. I think people are busy. 00:29:17 nod 00:29:49 I think that's basically it. 00:30:12 We are working on GSOC and Outreachy applications, but we can't share any details yet. 00:30:13 ok, if that's all I think we can call the meeting done? 00:30:17 yep 00:30:20 #endmeeting