You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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>
This commit is contained in:
committed by
David S. Miller
parent
51151a16a6
commit
b7b1bfce0b
@@ -50,7 +50,7 @@ struct inet6_ifaddr {
|
||||
|
||||
int state;
|
||||
|
||||
__u8 probes;
|
||||
__u8 dad_probes;
|
||||
__u8 flags;
|
||||
|
||||
__u16 scope;
|
||||
@@ -58,7 +58,7 @@ struct inet6_ifaddr {
|
||||
unsigned long cstamp; /* created timestamp */
|
||||
unsigned long tstamp; /* updated timestamp */
|
||||
|
||||
struct timer_list timer;
|
||||
struct timer_list dad_timer;
|
||||
|
||||
struct inet6_dev *idev;
|
||||
struct rt6_info *rt;
|
||||
@@ -195,6 +195,10 @@ struct inet6_dev {
|
||||
struct neigh_parms *nd_parms;
|
||||
struct ipv6_devconf cnf;
|
||||
struct ipv6_devstat stats;
|
||||
|
||||
struct timer_list rs_timer;
|
||||
__u8 rs_probes;
|
||||
|
||||
unsigned long tstamp; /* ipv6InterfaceTable update timestamp */
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user