This is an old revision of the document!

Week 2 (May 30 to June 5)

Day 1 (May 30)

Breakthrough! Found the point where attempting to open an IPv6 connection was failing (debug line in core/open.c) and added an AF_INET6 socket opener to TCP. I'll probably have to do the same for UDP soon.

The kind of output I'm getting now is:

gPXE> imgfetch http://[f fc00::1]/test.bin
creating xfer
XFER 0xabc48 opening http URI
RESOLV 0xac614 opening named socket "fc00::1"
RESOLV 0xac664 attempting to resolve "fc00::1"
RESOLV 0xac664 trying method NUMERIC
NUMERIC 0xac6b4 attempting to resolve "fc00::1"
ipv6 converting fc00::1 to an in6_addr
RESOLV 0xac664 succeeded using method NUMERIC
XFER 0xac61c->0xabfbc redirect
XFER 0xabfbc->0xac61c close
XFER 0xac61c->0xabfbc close
XFER 0xabfbc opening (SOCK_STREAM,AF_INET6) socket
TCP 0xac704 allocated
TCP 0xac704 transitioned from CLOSED to SYN_SENT
TCP 0xac704 bound to port 64065
XFER 0xac61c->0x97d98 close
TCP 0xac704 timer fired in SYN_SENT for 3bf72bc6..3bf72bc6 00000000
TCP/IP sending IPv6 packet
ipv6: tx
IP6 0xad018 src fe80::5254:ff:fe12:3456 dest ::0 nxt_hdr 6 len 36
Neighbour cache miss: IP6 fc00::1
New neighbour cache entry: IP6 fc00::1 => Ethernet 00:00:00:00:00:00
TCP/IP sending IPv6 packet
ipv6: tx
IP6 0xb083c src fe80::5254:ff:fe12:3456 dest ::0 nxt_hdr 58 len 32
No entry for fc00::1

As per the schedule, this week I'll be implementing neighbour discovery protocol and some other ICMPv6 features, so it's highly likely I'll have (basic) HTTP booting working by the end of the week.

It's good to finally figure out how this part of gPXE works :).

Update, a few hours later… 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.

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