ip6: fix autoconf address and route scraping
authorDan Williams <dcbw@redhat.com>
Mon, 26 Apr 2010 21:08:10 +0000 (14:08 -0700)
committerDan Williams <dcbw@redhat.com>
Mon, 26 Apr 2010 21:08:10 +0000 (14:08 -0700)
commitde1a4dcc4b74885cf8f136f00eb30b06f0836646
treeff0365cd9bfa83cd38a9c38bb2186691fd7c1f6e
parent11a6225aac73d87ab4f4f0102fb0177893608494
ip6: fix autoconf address and route scraping

Two things:

1) we need to bounce IPv6 on the interface because otherwise the
kernel won't start listening for new RAs.  So code gets added
to handle the 'disable_ipv6' /proc/sys/net/ipv6 parameter for
each interface.

2) Second, we need to grab a default route (if we find one) before
reading addresses, so that we can add it to each address that we
get out of the kernel.  Most of the time we'll get an -EEXIST error
when adding address, but that's OK since we're just trying to add
the same route back that the kernel already added from the RA.  We
also need to make sure the route and address caches are up-to-date
otherwise we won't get a complete picture of the routing table.
src/ip6-manager/nm-ip6-manager.c