Open Hedgehog-Guru opened 1 year ago
@dgsudharsan to add more issue to better reflect the issue.
@dgsudharsan as discussed in the call 5/24 pls share more data on github
@srj102 according to Sudharshan the kernel unexpected expiration of MAC is leading to BGP route withdrawal, it's seen with low scale also, pls help followup and share your analysis
@adyeung @srj102 . This mac oscillation happens even with 1 mac address. When a local mac is learnt, it is advertised to a remote vtep. Later when the kernel ages out the local mac, the notification is received by both BGP and fdbsyncd. BGP immediately withdraws the mac from the remote. FDBsyncd programs the mac back to kernel which then retriggers BGP to advertise it back again. So for a window from about BGP withdrawal to re advertisement, the traffic to this mac will be flooded in the topology.
This issue will exacerbate when the scale of the mac increases, as it increases the window for a mac due to processing overload at BGP and fdbsyncd
@hasan-brcm can you please comment on this.
@hasan-brcm @adyeung Can you please provide ETA for fixing this issue?
Later when the kernel ages out the local mac, the notification is received by both BGP and fdbsyncd. BGP immediately withdraws the mac from the remote..
Hi @dgsudharsan, mac addresses are installed as extern_learn and these should not be aging out. https://elixir.bootlin.com/linux/v5.10.190/source/net/bridge/br_fdb.c#L79 https://elixir.bootlin.com/linux/v5.10.190/source/net/bridge/br_fdb.c#L355
00:02:00:00:86:e2 dev VTEP1-100 vlan 100 extern_learn master Bridge 00:02:00:00:7d:f6 dev VTEP1-100 vlan 100 extern_learn master Bridge
Later when the kernel ages out the local mac, the notification is received by both BGP and fdbsyncd. BGP immediately withdraws the mac from the remote..
Hi @dgsudharsan, mac addresses are installed as extern_learn and these should not be aging out. https://elixir.bootlin.com/linux/v5.10.190/source/net/bridge/br_fdb.c#L79 https://elixir.bootlin.com/linux/v5.10.190/source/net/bridge/br_fdb.c#L355
00:02:00:00:86:e2 dev VTEP1-100 vlan 100 extern_learn master Bridge 00:02:00:00:7d:f6 dev VTEP1-100 vlan 100 extern_learn master Bridge
Hi @hasan-brcm The aging out happens in the source VTEP and not in destination VTEP. When source VTEP kernel ages out the mac, the mac is withdrawn from by the BGP in source VTEP which removes the mac in destination VTEP. The fdbsyncd in source VTEP reprograms the MAC in the kernel which will then learnt again by destination VTEP through BGP and it is programmed. So for every 5 minutes all the remote macs are removed and reinstalled due to the kernel aging happening in source VTEP.
Description
Poor performance and stability on EVPN L2 scale scenario
Steps to reproduce the issue:
Describe the results you received:
Slow convergency time: On Spectrum-3 is takes 4 min to install 132K remote MACs High CPU utilization mainly on redis-server Each 5 mins number of MACs decreased (Linux bridge aging?) Almost constantly - unknown unicast flooding to "monitor" ports
Describe the results you expected:
Faster convergence and stability
Output of
show version
:Output of
show techsupport
:SW1 - DUT sonic_dump_qa-eth-vt03-3-4600ca1_20230510_164945 (1).zip sonic_dump_qa-eth-vt03-3-4600ca1_20230510_164945 (2).zip sonic_dump_qa-eth-vt03-3-4600ca1_20230510_164945 (3).zip
SW2 sonic_dump_qa-eth-vt03-4-3700v_20230510_164947 (1).zip sonic_dump_qa-eth-vt03-4-3700v_20230510_164947 (2).zip sonic_dump_qa-eth-vt03-4-3700v_20230510_164947 (3).zip
Additional information you deem important (e.g. issue happens only occasionally):
Stats collected stats-and-script.zip