Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
soc:2011:pcmattman:journal:week2 [2011/05/30 00:04]
pcmattman day 1 journal (so far)
soc:2011:pcmattman:journal:week2 [2011/06/03 19:30]
pcmattman friday & saturday log
Line 40: Line 40:
  
 It's good to finally figure out how this part of gPXE works :). It's good to finally figure out how this part of gPXE works :).
 +
 +Update, a few hours later... [[soc/​2011/​pcmattman/​notes/​packetdumps/​start|Packet Dumps]] now holds some packet dumps, and in particular now holds a valid HTTP response (albeit 404) from an IPv6 web server.
 +
 +Now the real coding begins - so far it's just been a lot of patching the existing IPv6 implementation;​ now I will be implementing completely new code.
 +
 +Update #2: had the weekly meeting and sorted through some coding style issues. Getting used to the new coding style has proved to be challenging :). I managed to get IPv6 routing working properly during/​after the meeting but now remote hosts try and look up the MAC address of the gPXE host by sending Neighbour Solicit messages, which aren't handled yet. I'll work on that tomorrow - Guo-Fu gave some advice about how to make responding to Neighbour Solicit messages work.
 +
 +==== Day 2 (May 31) ====
 +
 +Modified the network -> transport transition in the network stack to pass a net_device object alongside the packet buffer. This will let me access the local machine'​s link-layer address in the ICMPv6/NDP implementation.
 +
 +I sorted out all the compile issues that came as a result of that and stubbed a few NDP functions ready for implementation.
 +
 +Once NDP solicits are working I'll get the relevant commits out there with a request for comments, as they change some of the fundamental prototypes in the network stack. It'll be easier to see the purpose of the changes when the changes are actually being used.
 +
 +==== Day 3 (June 1) ====
 +
 +Worked on getting NDP implemented today. I managed to get responding to NDP solicit messages working, which showed that the previously reimplemented IPv6 routing code has not caused a regression.
 +
 +As part of the test I pinged a gPXE host after it had autoconfigured an address for itself:
 +<​code>​
 +64 bytes from 2001:​44b8:​7222:​a50::​f:​ icmp_seq=5 ttl=255 time=15.4 ms
 +</​code>​
 +It's nice to see gPXE talking to the network via IPv6 now :).
 +
 +The next step is to get a kernel booted via HTTP over IPv6, and then I can start working on router advertisements and configuring station addresses based on the prefix announcements (at the moment the 2001:​44b8:​7222:​a50::/​64 prefix is hardcoded for testing, but the link local address used for NDP is autoconfigured).
 +
 +[[http://​git.etherboot.org/​people/​pcmattman/​gpxe.git/​commit/​96acdca13776eb7be1525984b2609111ff6dea02|Commit containing today'​s work.]] (96acdca13776eb7be1525984b2609111ff6dea02)
 +
 +Update: HTTP booting [[https://​picasaweb.google.com/​pcmattman/​GoogleSummerOfCode2011?​authkey=Gv1sRgCImD_Zf4zsaUsgE#​5613236860456772754|is]] [[https://​picasaweb.google.com/​pcmattman/​GoogleSummerOfCode2011?​authkey=Gv1sRgCImD_Zf4zsaUsgE#​5613236847427503426|working]]!!! Success!
 +
 +[[http://​git.etherboot.org/​people/​pcmattman/​gpxe.git/​commit/​fe7ef6e404ca2597c915e7a1937154ff7afddc22|Commit containing fixes]] that were needed for HTTP booting on my network. (fe7ef6e404ca2597c915e7a1937154ff7afddc22)
 +
 +==== Day 4 (June 2) ====
 +
 +Did some more work on HTTP booting today.
 +
 +[[http://​git.etherboot.org/​people/​pcmattman/​gpxe.git/​commit/​6df968c5cfbb70c1ae1ee00c67ff07b5433c1f7d|First thing that I fixed up]] was address autoconfiguration,​ which now uses router advertisements to obtain a prefix to use. This allows the gPXE host to get a globally routable address without asking for it (although I will add router solicits shortly).
 +
 +[[http://​git.etherboot.org/​people/​pcmattman/​gpxe.git/​commit/​471457a331a9cae56dd103a0cdd85cdcdf9402d7|After this, I implemented AAAA records into DNS]] and set up a VPS I'm renting to use a Hurricane Electric tunnel for IPv6. [[http://​ipv6.theiselins.net/​gpxe/​ipv6.gpxe|It'​s all set up with DNS]], too (IPv6 required for link).
 +
 +The most important change this evening however was to [[http://​git.etherboot.org/​people/​pcmattman/​gpxe.git/​commit/​c7883b820acfd07f5dd893015f6179e38a93fcc8|fix the IPv6 routing]] to work on both the local network as well as the Internet. This made it possible to boot a kernel from my IPv6 test server, which worked extremely well.
 +
 +Things are progressing nicely now, and I'm maintaining the pace I outlined in my project plan. It doesn'​t look like I'll miss the deadline on this week's milestones.
 +
 +Next up this week is Router Solicit messages and finishing off ICMPv6.
 +
 +==== Day 5 (June 3) ====
 +
 +Only rebased some commits into git master today.
 +
 +==== Day 6 (June 4) ====
 +
 +[[http://​git.etherboot.org/​people/​pcmattman/​gpxe.git/​commit/​9566953fbed3450d681a0144bb5b9e2323e44482|Implemented ICMPv6 router solicits]] which has allowed test systems to get a usable global prefix much earlier than before. Now I can get to work on DHCPv6! :)
 +
 +While I was at it, I fixed routing to work properly when a netdev is specified, which should help on multi-homed systems connected to two+ unique networked segments (ie, one prefix per NIC).
 +
 +I also fixed the formatting for the router advertisement handle function, which had a mix of hard tabs and spaces, each at different tab stops.

QR Code
QR Code soc:2011:pcmattman:journal:week2 (generated for current page)