mirror_frr/zebra
Philippe Guibert f56a15b5bd zebra: refresh vxlan evpn contexts, when bridge interface goes up
When using bgp evpn rt5 setup, after BGP configuration has been
loaded, if the user attempts to detach and reattach the bridged
vxlan interface from the bridge, then BGP loses its BGP EVPN
contexts, and a refresh of BGP configuration is necessary to
maintain consistency between linux configuration and BGP EVPN
contexts (RIB). The following command can lead to inconsistency:

ip netns exec cust1 ip link set dev vxlan1000 nomaster
ip netns exec cust1 ip link set dev vxlan1000 master br1000

consecutive to the, BGP l2vpn evpn RIB is empty, and the way to
solve this until now is to reconfigure EVPN like this:

vrf cust1
 no vni 1000
 vni 1000
exit-vrf

Actually, the link information is correctly handled. In fact,
at the time of link event, the lower link status of the bridge
interface was not yet up, thus preventing from establishing
BGP EVPN contexts. In fact, when a bridge interface does not
have any slave interface, the link status of the bridge interface
is down. That change of status comes a bit after, and is not
detected by slave interfaces, as this event is not intercepted.

This commit intercepts the bridge link up event, and triggers
a check on slaved vxlan interfaces.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2021-09-17 10:25:38 +02:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
connected.c *: Convert numeric 32 into IPV4_MAX_BITLEN for prefixlen 2021-07-01 23:50:39 +03:00
connected.h zebra: Do not use connection dest for bcast 2019-08-18 18:54:46 +02:00
debug_nl.c zebra: human readable netlink dumps 2020-09-23 23:07:02 -03:00
debug.c zebra: debug zebra kernel msgdump is linux specific 2021-08-06 10:04:40 -04:00
debug.h zebra: add 'detail' mpls debug setting 2021-04-05 15:53:48 -04:00
dplane_fpm_nl.c zebra: Convert to struct zebra_lsp as per our internal standard 2021-09-02 10:33:23 -04:00
if_ioctl.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
if_netlink.c zebra: refresh vxlan evpn contexts, when bridge interface goes up 2021-09-17 10:25:38 +02:00
if_netlink.h zebra: new dplane action to set gre link interface 2021-04-30 10:33:18 +02:00
if_sysctl.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
interface.c zebra: Convert to enum zebra_slave_iftype as per our internal standard 2021-09-02 10:33:23 -04:00
interface.h zebra: Convert to enum zebra_slave_iftype as per our internal standard 2021-09-02 10:33:23 -04:00
ioctl.c zebra: ifi_link_state is the link state 2020-10-13 11:32:36 +01:00
ioctl.h *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward_proc.c zebra: Cleanup set but unused variables 2020-02-27 09:41:58 -05:00
ipforward_sysctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
irdp_interface.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
irdp_main.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
irdp_packet.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
irdp.h *: strip trailing whitespace 2019-09-30 16:44:43 +00:00
kernel_netlink.c zebra: RTM_GETNEIGH messages may be used by nhrp 2021-08-17 09:07:31 +02:00
kernel_netlink.h zebra: Add nl_attr_put8 so we can put uint8_t in netlink messages 2021-07-08 11:12:46 -04:00
kernel_socket.c zebra: Mark some bsd interface prefixes as SECONDARY 2021-07-20 10:12:04 -04:00
kernel_socket.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
label_manager.c Merge pull request #7756 from pjdruddy/bgplu-fixes 2021-01-09 15:48:22 -05:00
label_manager.h zebra: expose label-manager util-funcs 2021-01-05 18:19:44 +00:00
main.c *: Drop break after using frr_help_exit() in switch/case 2021-08-25 10:49:05 +03:00
Makefile
redistribute.c zebra: Do not allow redistribution for non-vrf tables 2021-07-19 20:04:03 -04:00
redistribute.h zebra: revise redistribution delete to improve update case 2019-09-12 08:51:05 -04:00
rib.h Merge pull request #9304 from donaldsharp/zebra_random_stuff 2021-08-12 10:16:46 -04:00
router-id.c *: Convert numeric 32 into IPV4_MAX_BITLEN for prefixlen 2021-07-01 23:50:39 +03:00
router-id.h zebra: add IPv6 router-id 2020-07-17 17:39:05 +02:00
rt_netlink.c zebra: Convert to struct zebra_nhlfe as per our internal standard 2021-09-02 10:33:23 -04:00
rt_netlink.h zebra: use more const 2021-07-19 10:36:12 -04:00
rt_socket.c zebra: new dplane action to set gre link interface 2021-04-30 10:33:18 +02:00
rt.h zebra: use more const 2021-07-19 10:36:12 -04:00
rtadv.c *: Replace IPV6_MAX_PREFIXLEN to IPV6_MAX_BITLEN 2021-07-01 17:41:09 +03:00
rtadv.h zebra: rework RA handling for vrf-lite 2021-06-08 15:05:43 -04:00
rtread_netlink.c zebra: use more const 2021-07-19 10:36:12 -04:00
rtread_sysctl.c zebra: use more const 2021-07-19 10:36:12 -04:00
rule_netlink.c zebra: Add ability for dataplane code to understand rule ip protocols 2021-07-08 11:12:47 -04:00
rule_netlink.h zebra: netlink message batching 2020-08-10 21:42:43 +02:00
rule_socket.c zebra: convert ip rule installation to use dplane thread 2020-06-10 16:18:45 +02:00
sample_plugin.c *: require semicolon after FRR_DAEMON_INFO & co. 2021-03-17 06:18:39 +01:00
subdir.am lib, zebra: move vrf netns commands from lib to zebra 2021-08-23 23:54:12 +03:00
table_manager.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
table_manager.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
testrib.conf
zapi_msg.c nhrp, zebra, lib: pass exact received neighbor state value to nhrp 2021-08-26 09:19:42 +02:00
zapi_msg.h zebra: Fix usage to enum in notify functions 2021-08-19 11:31:05 -04:00
zebra_dplane.c zebra: Convert to struct zebra_lsp as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_dplane.h zebra: Convert to struct zebra_lsp as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_errors.c zebra: ZAPI add new api to manipulate srv6-locator (step2) 2021-06-02 10:24:47 -04:00
zebra_errors.h zebra: ZAPI add new api to manipulate srv6-locator (step2) 2021-06-02 10:24:47 -04:00
zebra_evpn_mac.c zebra: Convert to struct zebra_neigh as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_evpn_mac.h zebra: Convert to struct zebra_mac as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_evpn_mh.c zebra: Convert to struct zebra_mac as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_evpn_mh.h zebra: Convert to struct zebra_mac as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_evpn_neigh.c zebra: Convert to struct zebra_neigh as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_evpn_neigh.h zebra: Convert to struct zebra_neigh as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_evpn_vxlan.h zebra: Convert to struct zebra_evpn as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_evpn.c zebra: Convert to struct zebra_neigh as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_evpn.h zebra: Convert to struct zebra_vtep as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_fpm_dt.c zebra: replace inet_ntoa 2020-10-22 13:37:25 -04:00
zebra_fpm_netlink.c Zebra: FPM support for gateway IP overlay Index 2021-06-07 17:59:45 -07:00
zebra_fpm_private.h Zebra: Build nelink message for RMAC updates 2019-06-17 12:05:38 -07:00
zebra_fpm_protobuf.c *: Do not cast to the same type 2020-04-08 17:15:06 +03:00
zebra_fpm.c zebra: Convert to struct zebra_l3nvi as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_gr.c zebra, ospfd: fix typos in the graceful restart code 2021-06-08 11:41:33 -03:00
zebra_l2.c zebra: refresh vxlan evpn contexts, when bridge interface goes up 2021-09-17 10:25:38 +02:00
zebra_l2.h zebra: refresh vxlan evpn contexts, when bridge interface goes up 2021-09-17 10:25:38 +02:00
zebra_mlag_private.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
zebra_mlag_vty.c zebra: Do not build mlag protobuf support if version 3 is not avail 2019-12-15 09:37:51 -05:00
zebra_mlag_vty.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_mlag.c zebra: Give extra space and stop processing if we run out of space 2021-06-09 06:43:28 -04:00
zebra_mlag.h *: require semicolon after DEFINE_HOOK & co. 2021-03-17 06:18:17 +01:00
zebra_mpls_netlink.c zebra: dplane FPM handle LSP install/update/delete 2020-11-27 16:32:01 +00:00
zebra_mpls_null.c zebra: convert PW updates to async dataplane 2019-01-25 10:45:57 -05:00
zebra_mpls_openbsd.c zebra: Convert to struct zebra_nhlfe as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_mpls_vty.c zebra: fix wrong check of mpls command 2021-08-18 19:34:03 -04:00
zebra_mpls.c zebra: Convert to struct zebra_fec as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_mpls.h zebra: Convert to struct zebra_fec as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_mroute.c pimd, zebra: explicit cast int netlink val to uint 2021-04-28 11:43:50 -04:00
zebra_mroute.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_nb_config.c zebra: Convert to struct zebra_l3nvi as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_nb_rpcs.c zebra: display rpc error msg to vtysh 2020-10-05 13:57:54 -07:00
zebra_nb_state.c zebra: make ribs config false 2021-03-16 17:25:49 +03:00
zebra_nb.c zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_nb.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_netns_id.c Merge pull request #7148 from pguibert6WIND/fix_fd_not_closed 2020-09-23 07:40:14 -04:00
zebra_netns_id.h zebra: dynamically detect vxlan link interfaces in other netns 2020-09-11 18:26:23 +02:00
zebra_netns_notify.c lib, zebra: Preserve user-configured VRF on netns deletion 2021-07-30 14:53:45 +08:00
zebra_netns_notify.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_nhg_private.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_nhg.c zebra: Convert to struct zebra_nhlfe as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_nhg.h Merge pull request #8488 from mjstapp/more_workqueue 2021-04-27 11:59:33 -04:00
zebra_ns.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
zebra_ns.h lib, zebra: reuse and adapt ns_list walk functionality 2020-09-11 18:26:23 +02:00
zebra_opaque.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
zebra_opaque.h zebra: add zebra opaque module 2020-06-02 08:20:54 -04:00
zebra_pbr.c lib, zebra: add ip_proto to the filter data structure 2021-07-08 11:12:47 -04:00
zebra_pbr.h *: require semicolon after DEFINE_HOOK & co. 2021-03-17 06:18:17 +01:00
zebra_ptm_redistribute.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
zebra_ptm_redistribute.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_ptm.c zebra: add "json" option to "show interface" 2021-08-02 17:19:45 -03:00
zebra_ptm.h zebra: add "json" option to "show interface" 2021-08-02 17:19:45 -03:00
zebra_pw.c *: explicitly print "exit" at the end of every node config 2021-08-23 22:08:20 +03:00
zebra_pw.h *: require semicolon after DEFINE_QOBJ & co. 2021-03-17 06:18:37 +01:00
zebra_rib.c Merge pull request #9304 from donaldsharp/zebra_random_stuff 2021-08-12 10:16:46 -04:00
zebra_rnh.c zebra: When passing lookup information back pass the fully resolved 2021-07-15 08:50:09 -04:00
zebra_rnh.h zebra: When passing lookup information back pass the fully resolved 2021-07-15 08:50:09 -04:00
zebra_routemap_nb_config.c zebra: remove checks for src address existence when using "set src" 2021-08-02 18:35:30 +03:00
zebra_routemap_nb.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
zebra_routemap_nb.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_routemap.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
zebra_routemap.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_router.c zebra: rework RA handling for vrf-lite 2021-06-08 15:05:43 -04:00
zebra_router.h zebra: rework RA handling for vrf-lite 2021-06-08 15:05:43 -04:00
zebra_snmp.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
zebra_srte.c zebra: Convert to struct zebra_lsp as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_srte.h zebra: Convert to struct zebra_lsp as per our internal standard 2021-09-02 10:33:23 -04:00
zebra_srv6_vty.c *: explicitly print "exit" at the end of every node config 2021-08-23 22:08:20 +03:00
zebra_srv6_vty.h *: new cli-nodes for SRv6 manager (step2) 2021-06-02 10:24:47 -04:00
zebra_srv6.c zebra: srv6 cleanup 2021-06-07 14:26:25 -04:00
zebra_srv6.h *: fix code format accourding to checkpatch 2021-06-02 10:24:48 -04:00
zebra_vrf.c Merge pull request #9496 from idryzhov/vrf-cmd-init-unused-arg 2021-08-27 10:39:45 +02:00
zebra_vrf.h zebra: On client shutdown cleanup any vrf labels associated with it 2021-07-21 14:04:36 -04:00
zebra_vty.c zebra: Show prefixLen in show ip route json output additionally 2021-07-03 14:21:06 +03:00
zebra_vxlan_private.h zebra: Convert to struct zebra_l3nvi as per our internal standard 2021-09-02 10:33:22 -04:00
zebra_vxlan.c zebra: handle bridge mac address update in evpn contexts 2021-09-17 10:25:35 +02:00
zebra_vxlan.h zebra: handle bridge mac address update in evpn contexts 2021-09-17 10:25:35 +02:00
zserv.c zebra: On client shutdown cleanup any vrf labels associated with it 2021-07-21 14:04:36 -04:00
zserv.h zebra: link layer config and notification, implementation in zebra 2021-04-09 18:29:58 +02:00