[ipxe-devel] iPXE IPv6 improvements

Michael Brown mcb30 at ipxe.org
Mon Jul 25 14:46:36 UTC 2016

I have pushed a series of patches which aims to pull together various 
IPv6 improvements.  This includes exposing IPv6 addresses via the 
settings mechanism, allowing for manual assignment of IPv6 addresses via 
the settings mechanism, and selecting an appropriate routing table entry 
when there are multiple routers available.

Automatically assigned IPv6 addresses can be observed using e.g.

   ${net0.link/ip6} - link-local IPv6 address
   ${net0.ndp.0/ip6} - SLAAC IPv6 address from first advertised prefix
   ${net0.ndp.1/ip6} - SLAAC IPv6 address from second advertised prefix
   ${net0.dhcpv6/ip6} - stateful DHCPv6 IPv6 address

The ordering of settings blocks is such that ${net0/ip6} should evaluate 
to give the intuitively most relevant address.  For example, it will 
evaluate to ${net0.link/ip6} if only a link-local address is available, 
but to ${net0.dhcpv6/ip6} if stateful DHCPv6 is used.

Manual assignment of IPv6 addresses can be done via e.g.

   set net0/ip6 2001:ba8:0:1d4::6950:5845
   set net0/len6 64
   set net0/gateway6 fe80::226:bff:fedd:d3c0

The prefix length ("len6") may be omitted, in which case a default 
prefix length of 64 will be assumed.

Multiple IPv6 addresses may be assigned manually by implicitly creating 
child settings blocks.  For example:

   set net0/ip6 2001:ba8:0:1d4::6950:5845
   set net0.ula/ip6 fda4:2496:e992::6950:5845

The routing mechanism should now correctly handle ULAs and site-local 
addresses.  There are routing table unit tests using ipv6_route_ok().

Thank you to everyone who has sent IPv6-related patches.


More information about the ipxe-devel mailing list