[swss]: BFD hardware offload for BGP sessions - #3267
Conversation
|
can you please make sure that the build is passing. Also can you add soem swss tests to verify functionality |
|
convert it to draft due to some planned update |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
added mock test. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
mock test was added. The feature is in some production image and no build issue. will monitor pipeline build issue here. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
…et#3440) What I did: - Updated stpmgr.h to replace packed structs with aligned structs - Replaced the old processStpPortAttr in stpmgr.cpp with a version that uses properly aligned STP_PORT_CONFIG_MSG allocations How I did it: - Applied the same alignment fixes from 202211 branch to master - Removed #pragma GCC diagnostic usage and introduced ALIGNED(4) as well as padding fields in the relevant STP_* structures Why I did it: - To resolve address-of-packed-member warnings that break builds with certain compiler/platform configurations (e.g., Broadcom) - Aligning data structures properly avoids potential misalignment errors Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
…ries. Signed-off-by: mint570 <runmingwu@google.com> Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
What I did Remove deprecated parameters. Why I did it The parameter, print_to_console, has been removed, but the CI will not run any bench program, so this error was ignored. Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
…n table entries. Signed-off-by: mint570 <runmingwu@google.com> Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com> Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
What I did Added support for polling PORT PHY attributes using the flex counter infrastructure. Following changes are added in swss to support this feature define a new counter type PORT_PHY_ATTR support added for polling following attributes, SAI_PORT_ATTR_RX_SIGNAL_DETECT, SAI_PORT_ATTR_FEC_ALIGNMENT_LOCK, SAI_PORT_ATTR_RX_SNR Add port_phy_attr_manager to set counter id list in FLEX_COUNTERS_DB Added unit tests to validate the enable/disable code flow, generatePortAttrCounterMap and QueryPortAttrCapabilitiesWithMockedSAI. Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
…s is Inband port (sonic-net#4157) What I did Fixed the bug reported in sonic-net/sonic-buildimage#25211 Fixed the bug introduced in sonic-net#4054 which was preventing the ever flow mirror sessions becoming active in remote Asics. When the nexthop is added in remote asics in Voq systems, it is always added against the Inband port and not on the remote system port. So when the nexthop is resolved for the mirror session in the remote asic, the mirror code calls getNeighborEntry to find the nexthop entry by passing the nexthop of the route entry for the mirror destination. Since the nexthop was added on Inband port and getNeighborEntry was checking for RemoteSystemPort, finding nexthop was failing and hence the mirror session never gets activated in remote asics. So modified the code to include the isInbandPort check in addition to isRemoteSystemPortIntf . The isRemoteSystemPortIntf might be needed since the neighbor entries are added against the remote system port. Why I did it Fixed the bug introduced in sonic-net#4054 which prevents the ever flow mirror sessions becoming active in remote Asics. When the nexthop is added in remote asics in Voq systems, it is always added against the Inband port and not on the remote system port. So when the nexthop is resolved for the mirror session in the remote asic, the mirror code calls getNeighborEntry to find the nexthop entry by passing the nexthop of the route entry for the mirror destination. Since the nexthop was added on Inband port and getNeighborEntry was checking for RemoteSystemPort, finding nexthop was failing and hence the mirror session never gets activated in remote asics. So modified the code to include the isInbandPort check in addition to isRemoteSystemPortIntf . The isRemoteSystemPortIntf might be needed since the neighbor entries are added against the remote system port. Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
…cast. Signed-off-by: mint570 <runmingwu@google.com> Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
What I did Support route update from vnet tunnel route config change for custom_bfd monitoring. In DPU repairing scenario (to form HA sets), VNetOrch needs to support live update of endpoints, monitoring endpoints, primary and secondary groups. sign-off: Jing Zhang zhangjing@microsoft.com Why I did it This change is required for DPU repair in HA. How I did it When there is a route config change (i.e. primary endpoint changes), pass a BFD state update with Init state to trigger the monitoring session creation & deletion, and route update. Notice that monitoring orch will pass Down and Up state to vnet orch. Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
* [ci] Install pytest and redis from Debian For the CI runner, install the python3 pytest and redis packages from the Debian repos instead of via pip. This has the advantage of the version being fixed for the Debian version the test runner is using. This works around the regression for Unix sockets introduced in redis 7.2.0 (see also redis/redis-py#3957 and redis/redis-py#3957). Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
69d512b to
a0a4615
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
a0a4615 to
0f7124b
Compare
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
0f7124b to
cb83acb
Compare
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
cb83acb to
42c0b3e
Compare
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
|
messed up the PR by trying to solve DCO error ... trying to recover this PR now followed this instruction to solve DCO error, and the branch get messed up: |
mock tests added. |
[Notes] some other commits and files were pushed into this branch by mistake when trying to fix a DCO error, this PR is under repair. for design changes, please refer to the following PR before this one is fixed;
#4253
What I did
using hardware offloaded BFD to replace frr/bfdd for BGP neighbor reachability detection.
Why I did it
Hardware offloaded BFD usually provide more bfd sessions support, and has shorter detection time comparing to software bfd. and also lower CPU load because that BFD sessions are offloaded to hardware/ASIC.
How I verified it
The design was built into a sonic image, and verified in a hardware testbed.
Details if related
This program is built under sonic-swss, but running in bgp container.
HLD in PR review:
sonic-net/SONiC#1599
[notes] some commit history are lost after a force push after fixing a DCO error.
git log before the force push: