ipv6: split duplicate address detection and router solicitation timer
authorHannes Frederic Sowa <hannes@stressinduktion.org>
Sun, 23 Jun 2013 16:39:01 +0000 (18:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Jun 2013 23:23:03 +0000 (16:23 -0700)
commitb7b1bfce0bb68bd8f6e62a28295922785cc63781
tree212102b875b453496d86f8c448892bd90eb58c92
parent51151a16a60f0a886a0b1e4a0697001198af50c4
ipv6: split duplicate address detection and router solicitation timer

This patch splits the timers for duplicate address detection and router
solicitations apart. The router solicitations timer goes into inet6_dev
and the dad timer stays in inet6_ifaddr.

The reason behind this patch is to reduce the number of unneeded router
solicitations send out by the host if additional link-local addresses
are created. Currently we send out RS for every link-local address on
an interface.

If the RS timer fires we pick a source address with ipv6_get_lladdr. This
change could hurt people adding additional link-local addresses and
specifying these addresses in the radvd clients section because we
no longer guarantee that we use every ll address as source address in
router solicitations.

Cc: Flavio Leitner <fleitner@redhat.com>
Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Cc: David Stevens <dlstevens@us.ibm.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Reviewed-by: Flavio Leitner <fbl@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/if_inet6.h
net/ipv6/addrconf.c