diff options
| author | Chirag Shah <chirag@nvidia.com> | 2024-03-22 13:25:18 -0700 | 
|---|---|---|
| committer | Chirag Shah <chirag@nvidia.com> | 2024-05-03 10:52:33 -0700 | 
| commit | 07005288c2339677f08a61161d5cd9cdef772fc5 (patch) | |
| tree | 60e4c30f1894c2ffb44a4dd2e6761c8d4b00d391 /zebra/zebra_evpn_mh.h | |
| parent | 53820a5753c63bf30b6346fc39ce879a9c2abccf (diff) | |
zebra: bridge flap handle vlan membership update
Upon bridge flap, the associated SVD case,
VLAN membership is not updated correctly.
When SVI comes up, the VNI could not associate
with it as bridge VLAN membership was not updated.
Ticket: #3821632
Testing:
Before fix:
-----------
tor-1:#ifdown br_l3vni ; sleep 1 ; ifup br_l3vni
tor-1:# vtysh -c 'show evpn vni 8888'
VNI: 8888
  Type: L3
  Tenant VRF: sym_1
  Vlan: 490
  Bridge: br_l3vni
  Local Vtep Ip: 27.0.0.9
  Vxlan-Intf: vxlan99
  SVI-If: None    <<<<<< SVI not found
  State: Down     <<<<<< status remained in down BGP is not informed
  VNI Filter: none
  System MAC: None
  Router MAC: None
  L2 VNIs: 1800 1801 1900 1901
After fix:
----------
tor-1:# ifdown br_l3vni; sleep 1; ifup br_l3vni
tor-1:# vtysh
Hello, this is FRRouting (version 8.4.3).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
tor-1# show evpn vni 8888
VNI: 8888
  Type: L3
  Tenant VRF: sym_1
  Vlan: 490
  Bridge: br_l3vni
  Local Vtep Ip: 27.0.0.9
  Vxlan-Intf: vxlan99
  SVI-If: vlan490_l3 <<<<<<
  State: Up          <<<<<<
  VNI Filter: none
  System MAC: 44:38:39:ff:ff:29
  Router MAC: 44:38:39:ff:ff:29
  L2 VNIs: 1800 1801 1900 1901
Signed-off-by: Chirag Shah <chirag@nvidia.com>
Diffstat (limited to 'zebra/zebra_evpn_mh.h')
| -rw-r--r-- | zebra/zebra_evpn_mh.h | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/zebra/zebra_evpn_mh.h b/zebra/zebra_evpn_mh.h index 34ef79f155..f68e2eae60 100644 --- a/zebra/zebra_evpn_mh.h +++ b/zebra/zebra_evpn_mh.h @@ -378,7 +378,8 @@ extern void zebra_evpn_es_bypass_update(struct zebra_evpn_es *es,  extern void zebra_evpn_proc_remote_nh(ZAPI_HANDLER_ARGS);  extern struct zebra_evpn_es_evi *  zebra_evpn_es_evi_find(struct zebra_evpn_es *es, struct zebra_evpn *zevpn); - +extern int zebra_evpn_vl_vxl_bridge_lookup(uint16_t vid, +					   struct zebra_if *vxlan_zif);  void zebra_build_type3_esi(uint32_t lid, struct ethaddr *mac, esi_t *esi);  void zebra_evpn_es_sys_mac_update(struct zebra_if *zif, struct ethaddr *sysmac);  | 
