linux/net
Tore Anderson 026359bc6e ipv6: Send ICMPv6 RSes only when RAs are accepted
This patch improves the logic determining when to send ICMPv6 Router
Solicitations, so that they are 1) always sent when the kernel is
accepting Router Advertisements, and 2) never sent when the kernel is
not accepting RAs. In other words, the operational setting of the
"accept_ra" sysctl is used.

The change also makes the special "Hybrid Router" forwarding mode
("forwarding" sysctl set to 2) operate exactly the same as the standard
Router mode (forwarding=1). The only difference between the two was
that RSes was being sent in the Hybrid Router mode only. The sysctl
documentation describing the special Hybrid Router mode has therefore
been removed.

Rationale for the change:

Currently, the value of forwarding sysctl is the only thing determining
whether or not to send RSes. If it has the value 0 or 2, they are sent,
otherwise they are not. This leads to inconsistent behaviour in the
following cases:

* accept_ra=0, forwarding=0
* accept_ra=0, forwarding=2
* accept_ra=1, forwarding=2
* accept_ra=2, forwarding=1

In the first three cases, the kernel will send RSes, even though it will
not accept any RAs received in reply. In the last case, it will not send
any RSes, even though it will accept and process any RAs received. (Most
routers will send unsolicited RAs periodically, so suppressing RSes in
the last case will merely delay auto-configuration, not prevent it.)

Also, it is my opinion that having the forwarding sysctl control RS
sending behaviour (completely independent of whether RAs are being
accepted or not) is simply not what most users would intuitively expect
to be the case.

Signed-off-by: Tore Anderson <tore@fud.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-09-16 19:14:41 -04:00
..
9p net/9p: Fix the msize calculation. 2011-07-23 09:32:52 -05:00
802 rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
8021q net: consolidate and fix ethtool_ops->get_settings calling 2011-09-15 17:32:26 -04:00
appletalk
atm net: remove use of ndo_set_multicast_list in drivers 2011-08-17 20:22:03 -07:00
ax25
batman-adv batman-adv: merge update_transtable() into tt related code 2011-08-22 15:16:22 +02:00
bluetooth net: remove use of ndo_set_multicast_list in drivers 2011-08-17 20:22:03 -07:00
bridge net: consolidate and fix ethtool_ops->get_settings calling 2011-09-15 17:32:26 -04:00
caif caif: Remove OOM messages, use kzalloc 2011-08-28 17:16:13 -04:00
can can-gw: add netlink based CAN routing 2011-09-16 17:37:51 -04:00
ceph Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2011-07-26 13:38:50 -07:00
core net: consolidate and fix ethtool_ops->get_settings calling 2011-09-15 17:32:26 -04:00
dcb dcbnl: unlock on an error path in dcbnl_cee_fill() 2011-07-08 09:01:14 -07:00
dccp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net 2011-08-07 23:20:26 -07:00
decnet rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
dns_resolver
dsa net: remove use of ndo_set_multicast_list in drivers 2011-08-17 20:22:03 -07:00
econet
ethernet net: add IFF_SKB_TX_SHARED flag to priv_flags 2011-07-27 22:39:30 -07:00
ieee802154 6LoWPAN: fix skb_copy call 2011-09-15 15:36:35 -04:00
ipv4 Proportional Rate Reduction for TCP. 2011-08-24 19:40:40 -07:00
ipv6 ipv6: Send ICMPv6 RSes only when RAs are accepted 2011-09-16 19:14:41 -04:00
ipx
irda net: remove use of ndo_set_multicast_list in drivers 2011-08-17 20:22:03 -07:00
iucv af_iucv: add HiperSockets transport 2011-08-13 01:10:16 -07:00
key
l2tp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-07-28 05:58:19 -07:00
lapb
llc
mac80211 Merge branch 'master' of git://git.infradead.org/users/linville/wireless-next into for-davem 2011-09-13 15:41:16 -04:00
netfilter Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net 2011-08-07 23:20:26 -07:00
netlabel Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net 2011-08-20 10:39:12 -07:00
netlink net: cleanup some rcu_dereference_raw 2011-08-12 02:55:28 -07:00
netrom
nfc NFC: Reserve tx head and tail room 2011-08-24 14:41:44 -04:00
packet net: consolidate and fix ethtool_ops->get_settings calling 2011-09-15 17:32:26 -04:00
phonet rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
rds net, rds, Replace xlist in net/rds/xlist.h with llist 2011-09-15 15:36:32 -04:00
rfkill
rose rose: Delete commented out references to ancient firewalling code. 2011-07-07 02:41:59 -07:00
rxrpc
sched net_sched: sfb: optimize enqueue on full queue 2011-08-26 12:55:18 -04:00
sctp sctp: Bundle HEAERTBEAT into ASCONF_ACK 2011-08-24 19:41:13 -07:00
sunrpc rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER 2011-08-02 04:29:23 -07:00
tipc atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
unix Scm: Remove unnecessary pid & credential references in Unix socket's send and receive path 2011-08-24 19:41:13 -07:00
wanrouter
wimax
wireless nl80211/cfg80211: add STA WME parameters 2011-08-26 10:47:56 -04:00
x25
xfrm net: xfrm: convert to SKB frag APIs 2011-08-24 17:52:12 -07:00
compat.c
Kconfig
Makefile
nonet.c
socket.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net 2011-08-07 23:20:26 -07:00
sysctl_net.c