1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-26 16:18:31 +00:00
freebsd/sys/net
Steven Hartland 52e53e2de0 Fix lagg failover due to missing notifications
When using lagg failover mode neither Gratuitous ARP (IPv4) or Unsolicited
Neighbour Advertisements (IPv6) are sent to notify other nodes that the
address may have moved.

This results is slow failover, dropped packets and network outages for the
lagg interface when the primary link goes down.

We now use the new if_link_state_change_cond with the force param set to
allow lagg to force through link state changes and hence fire a
ifnet_link_event which are now monitored by rip and nd6.

Upon receiving these events each protocol trigger the relevant
notifications:
* inet4 => Gratuitous ARP
* inet6 => Unsolicited Neighbour Announce

This also fixes the carp IPv6 NA's that stopped working after r251584 which
added the ipv6_route__llma route.

The new behavour can be controlled using the sysctls:
* net.link.ether.inet.arp_on_link
* net.inet6.icmp6.nd6_on_link

Also removed unused param from lagg_port_state and added descriptions for the
sysctls while here.

PR:		156226
MFC after:	1 month
Sponsored by:	Multiplay
Differential Revision:	https://reviews.freebsd.org/D4111
2015-12-15 16:02:11 +00:00
..
altq Fix the spelling of eri's name. 2015-08-24 23:40:36 +00:00
bpf_buffer.c Remove the sleep from the buffer allocation routine. 2015-07-31 20:25:54 +00:00
bpf_buffer.h
bpf_filter.c
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Remove the mtx_sleep() from the kqueue f_event filter. 2015-08-03 22:14:45 +00:00
bpf.h Remove two unnecessary sleeps from the hot path in bpf(4). 2015-07-31 21:43:27 +00:00
bpfdesc.h
bridgestp.c
bridgestp.h
ethernet.h
fddi.h
firewire.h
flowtable.c Fix three flowtable bugs, a) one lookup issue, b) a two cleaner issue. 2015-11-02 21:21:00 +00:00
flowtable.h
ieee8023ad_lacp.c Add sysctl to control LACP strict compliance default 2015-11-06 15:33:27 +00:00
ieee8023ad_lacp.h Make LAG LACP fast timeout tunable through IOCTL. 2015-08-12 20:21:04 +00:00
ieee_oui.h
if_arc.h
if_arcsubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_arp.h
if_atm.h
if_atmsubr.c
if_bridge.c
if_bridgevar.h
if_clone.c
if_clone.h
if_dead.c
if_debug.c
if_disc.c
if_dl.h Constantify lookup key in ifa_ifwith* functions. 2015-09-05 05:33:20 +00:00
if_edsc.c
if_enc.c Fix building sys/modules/if_enc by adding missing headers 2015-11-25 21:16:10 +00:00
if_enc.h Overhaul if_enc(4) and make it loadable in run-time. 2015-11-25 07:31:59 +00:00
if_epair.c Fix a panic which was reproducible by an infinite loop of 2015-09-02 16:30:45 +00:00
if_ethersubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_fddisubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_fwsubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_gif.c Add IFCAP_LINKSTATE support. 2015-10-03 09:15:23 +00:00
if_gif.h - Remove GIF_{SEND,ACCEPT}_REVETHIP. 2015-09-10 05:59:39 +00:00
if_gre.c Check the size of data available in mbuf, before using them. 2015-10-28 17:55:37 +00:00
if_gre.h
if_iso88025subr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_lagg.c Fix lagg failover due to missing notifications 2015-12-15 16:02:11 +00:00
if_lagg.h Fix lagg failover due to missing notifications 2015-12-15 16:02:11 +00:00
if_llatbl.c Remove LLE read lock from IPv6 fast path. 2015-12-13 07:39:49 +00:00
if_llatbl.h Remove LLE read lock from IPv6 fast path. 2015-12-13 07:39:49 +00:00
if_llc.h
if_loop.c Fix if_loop so bpfwrite() can use it regardless of the state of 2015-07-06 02:12:49 +00:00
if_me.c Add IFCAP_LINKSTATE support. 2015-10-03 09:15:23 +00:00
if_media.c
if_media.h
if_mib.c
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c
if_spppsubr.c Convert in_ifaddr_lock and in6_ifaddr_lock to rmlock. 2015-07-29 08:12:05 +00:00
if_stf.c Ansify if_stf.c 2015-07-31 09:04:22 +00:00
if_tap.c if_tap: correct typo in sysctl description (Enably) 2015-10-21 19:56:16 +00:00
if_tap.h
if_tapvar.h
if_tun.c * Address review (and add a bit myself). 2015-07-12 18:14:38 +00:00
if_tun.h
if_types.h
if_var.h Fix lagg failover due to missing notifications 2015-12-15 16:02:11 +00:00
if_vlan_var.h
if_vlan.c Move iflladdr_event eventhandler invocation to if_setlladdr. 2015-11-14 13:34:03 +00:00
if_vxlan.c
if_vxlan.h
if.c Fix lagg failover due to missing notifications 2015-12-15 16:02:11 +00:00
if.h
ifq.h
iso88025.h
netisr_internal.h
netisr.c
netisr.h
netmap_user.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
netmap.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
paravirt.h
pfil.c
pfil.h
pfkeyv2.h Implement the sadb_x_policy_priority field as it is done in Linux: 2015-11-17 14:39:33 +00:00
pfvar.h pf: Fix compliation warning with gcc 2015-10-25 18:09:03 +00:00
ppp_defs.h
radix_mpath.c
radix_mpath.h
radix.c Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
radix.h Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
route.c Fix PINNED routes handling. 2015-12-13 16:37:01 +00:00
route.h Merge helper fib* functions used for basic lookups. 2015-12-08 10:50:03 +00:00
rss_config.c Remove now unused (and #if 0'ed out) headers. 2015-08-29 04:33:31 +00:00
rss_config.h Replace the printf()s with optional rate limited debugging for RSS. 2015-08-28 05:58:16 +00:00
rtsock.c
sff8436.h
sff8472.h
slcompress.c
slcompress.h
toeplitz.c
toeplitz.h
vnet.c
vnet.h