> > > > http://cr.opensolaris.org/~meem/dhcp-sock
I've updated the webrev to address a few issues found during final
testing. Specifically:
1. open_ip_lif() no longer assumes that the IP interface is zeroed if
it's down, and now explicitly calls canonize_lif() to zero it.
2. check_lif() now calls open_ip_lif() to restore the socket if
DAD fails. Because of (1), it will also be properly zeroed,
rather than trying to bring the duplicate address back up.
3. The roles of dhcp_packet_lif() and dhcp_acknak_global() are more
clearly delineated for IPv4. Specifically, everything is handled
by dhcp_packet_lif() except for broadcast traffic received after
lif_ip_sock_fd has bound to a unicast IPv4 address. (Such traffic
should be very unusual, but it is allowed by RFC2131.)
4. It's now possible to use IP_BOUND_IF/IP_PKTINFO/... when the first
ipif on an ill is down or 0.0.0.0 (this is a longstanding bug).
This required a change to ip_newroute_ipif() to call
ipif_select_source() if the provided ipif is down or 0.0.0.0.
--
meem