Skip to content

[202506] manual cherry-pick commits from master. #21

Merged
zjswhhh merged 10 commits intoAzure:202506from
zjswhhh:cp
Nov 19, 2025
Merged

[202506] manual cherry-pick commits from master. #21
zjswhhh merged 10 commits intoAzure:202506from
zjswhhh:cp

Conversation

@zjswhhh
Copy link

@zjswhhh zjswhhh commented Nov 19, 2025

$ git log --oneline
817e993 (HEAD -> master, upstream/master, upstream/HEAD) Suppress route announcement if no change to advertised routes (#130)
149774b Add a PR template (#129)
711a0be Sort the output of show actor command (#128)
15fbd5c Fix format for protobuf fields in show command. (#127)
f2d47b9 Add wait for loopback script. (#126)
570db05 Fix issue #118: use hostname to build service path (#122)
c2fa656 Add custom_bfd (#125)
c2e8f44 Bfd probe update lost (#121)
263487f Add neigh resolve (#120)
a9021cf Fix bouncing route exchange (#117)

yue-fred-gao and others added 10 commits November 19, 2025 21:45
### why
swbusd incorrectly handling route announce to others that is routed
through it due to the queue to the direct connection was full

### what this PR does
route announcement should not be routed through others
Remove local_nexthop_ip and set NEIGH_RESOLVE_TABLE for PA address
configured on interface.
### why
We observed the first bfd probe update is lost which is when bfd session
comes up the first time after ha established.
This is because SubscriberStateTable constructor already populated
m_buffer with initial snapshot. At the first time
SubscriberStateTable::pops is called, it only returns the data in
m_buffer, which are the entries before update. In dash-ha, rehydrate
(the operation to pull initial data) is through table get. Then it
enters select loop
                _ = table.read_data() => {
                    for kfv in table.pops().await {
                        send_kfv(kfv).await;
                    }
                }
read_data returns when there is update to the table, which means at the
first update, pops returns the old state stored in m_buffer.

### what this PR does
for SubscriberStateTable, implement rehydrate using SubscriberStateTable
pops, which is by the design of SubscriberStateTable in swss-common.
### why
new vnetorch implementation requires monitoring='custom_bfd' to be set.

### what this PR does
set monitoring='custom_bfd' when create vnet route
### why
swbus-cli show swbusd route is not working. The issue is introduced by
PR sonic-net/sonic-dash-ha#108. In the PR, it
compares the dest sp of received ManagementRequest to "my_service_path".
the request is processed if they are same. In a setup with both ipv4 and
ipv6 endpoints, my_service_path takes one of them. If the dest sp of the
request picks the other one, they don't match so the request will be
dropped.

### what this PR does
1. we use hostname in DEVICE_META|localhost to build my service path. 
2. remote service path is exchanged when connection is established.
Client sends its own service path in the request and server replies with
its one when connection is created.
swbusd needs to be started after loopback interface is programmed during
startup, adding script to poll for this.
Fixing format for protobuf messages in show command output to match all
other message formatting.
### why
The order of output of show actor command is not stable. It is better to
be stable so user can quickly find the data they need.

### what this PR does
sort incoming/internal/outgoing state table by key
sort field values in internal table by key
### why I did it
need a PR template to ensure consistent PR description

### what I did
Use the same PR template from sonic-swss
<!--
Please make sure you have read and understood the contribution
guildlines:
https://github.com/Azure/SONiC/blob/gh-pages/CONTRIBUTING.md

1. Make sure your commit includes a signature generted with `git commit
-s`
2. Make sure your commit title follows the correct format: [component]:
description
3. Make sure your commit message contains enough details about the
change and related tests
4. Make sure your pull request adds related reviewers, asignees, labels

Please also provide the following information in this pull request:
-->
**What I did**
If no new route is added, don't send route announcement. There might be
change to existing routes, such as path added or removed. But it won't
affect advertised routes because swbusd only advertises one route to its
neighbours no matter how many paths the route has.
**Why I did it**
This suppresses unnecessary route announcement. Current design will send
route announcement but the neighbour will not propagate to its neighbour
if there is no change to its route table. With the new design, it will
not send the announcement in the first place if there is no change.
**How I verified it**
Run it in a testbed with 2 switches, each with 8 swbusd. 
**Details if related**
@zjswhhh zjswhhh merged commit 5bb9821 into Azure:202506 Nov 19, 2025
2 checks passed
@zjswhhh zjswhhh deleted the cp branch November 19, 2025 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants