This is an old revision of the document!
====== Week 6 (June 27 to July 3) ====== ==== Day 1 (June 27) ==== Today was mostly spent finalising the last couple of changes after Guo-Fu's review. I also spent a while upgrading my router's distribution version; I'm hoping I'll be able to get some neat IPv6 features that weren't in the older packages I was using. I still need to work on getting the ISC DHCPv6 server installed and tested, but I'm also wrapping my head around the actual architecture of DHCPv4 in gPXE before I go too deep into implementing it on my network and in gPXE. In this evening's meeting we managed to sort out a plan for the week that should see testing of my code soon. We will also be working on flash6, hopefully getting a few test images up there for everyone to test. ==== Day 2 (June 28) ==== Today I am reading through DHCPv4's implementation mainly. It's quite a complicated protocol, and the code is not by any means simple, but the architecture is something I'd like to emulate for DHCPv6. Just understanding the construction and transmission of a packet is a good place to start, and then I can work on moving through the full state machine. The state machine is what makes DHCPv6 more complicated to implement than, say, router solicitations. Each transaction needs to be tracked, and just to make things exciting, some DHCP servers allow "Rapid Commit" which cuts out half the state machine (but only if it's supported and enabled!). I expect DHCPv6 will be the main focus for quite a while now. I intentionally left room in the project plan for things like DHCPv6 to take longer than expected, thankfully. IPv6 fragmentation and proper option handling in IPv6 packets are the "Big Two" to complete after DHCPv6 - and then lots of testing and bug fixing!