aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/if_inet6.h
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2013-06-27 00:06:56 +0200
committerDavid S. Miller <davem@davemloft.net>2013-06-28 21:19:17 -0700
commit1ec047eb4751e331bc61cff0e98f0db67db8b8dc (patch)
tree51f7272d5c26eb44e90624e682daa54c96064886 /include/net/if_inet6.h
parentbonding: when cloning a MAC use NET_ADDR_STOLEN (diff)
downloadlinux-dev-1ec047eb4751e331bc61cff0e98f0db67db8b8dc.tar.xz
linux-dev-1ec047eb4751e331bc61cff0e98f0db67db8b8dc.zip
ipv6: introduce per-interface counter for dad-completed ipv6 addresses
To reduce the number of unnecessary router solicitations, MLDv2 and IGMPv3 messages we need to track the number of valid (as in non-optimistic, no-dad-failed and non-tentative) link-local addresses. Therefore, this patch implements a valid_ll_addr_cnt in struct inet6_dev. We now only emit router solicitations if the first link-local address finishes duplicate address detection. The changes for MLDv2 and IGMPv3 are in a follow-up patch. While there, also simplify one if statement(one minor nit I made in one of my previous patches): if (!...) do(); else return; <<into>> if (...) return; do(); Cc: Flavio Leitner <fbl@redhat.com> Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Cc: David Stevens <dlstevens@us.ibm.com> Suggested-by: David Stevens <dlstevens@us.ibm.com> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Acked-by: Flavio Leitner <fbl@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/if_inet6.h')
-rw-r--r--include/net/if_inet6.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h
index e4c5a2d2ba34..1628b8f5fb26 100644
--- a/include/net/if_inet6.h
+++ b/include/net/if_inet6.h
@@ -166,6 +166,7 @@ struct inet6_dev {
struct net_device *dev;
struct list_head addr_list;
+ int valid_ll_addr_cnt;
struct ifmcaddr6 *mc_list;
struct ifmcaddr6 *mc_tomb;