[202605][intfsorch]: Fence new RIF dependencies during interface removal#4747
[202605][intfsorch]: Fence new RIF dependencies during interface removal#4747Xichen96 wants to merge 20 commits into
Conversation
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
0e2f73f to
4fa0bab
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This PR updates IntfsOrch::setIntf to handle the missed-DEL VRF-bind race for non-loopback router interfaces by re-homing an already-created RIF into the configured VRF (when the interface has no IPs yet), ensuring the later IP2Me route is programmed into the correct virtual router. It also adds a mock test to cover the non-loopback missed-DEL scenario.
Changes:
- Re-home an existing non-loopback router interface into the new VRF when a VRF-bind
SETarrives without the precedingDELand no IPs are present. - Add a mock test validating RIF remove+recreate behavior for the missed-
DELnon-loopback VRF bind scenario and verifying no move occurs once an IP is present.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| orchagent/intfsorch.cpp | Adds re-home logic in IntfsOrch::setIntf for missed-DEL VRF bind updates on existing non-loopback interfaces with no IPs. |
| tests/mock_tests/intfsorch_ut.cpp | Adds IntfsOrchVrfUpdateNonLoopback unit test covering non-loopback missed-DEL VRF bind behavior and the “don’t move if IP exists” constraint. |
|
/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). |
|
/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). |
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
d219d1c to
3cececb
Compare
|
/azp run |
|
/azp run |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Treat an explicit all-zero MAC as a request to use the switch source MAC while leaving MAC-absent partial SETs unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: b6b568a1-5d2a-4309-b1ac-ef21ca155079 Signed-off-by: Xichen96 <lukelin0907@gmail.com>
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
Retrying CI once: build 1173111 regular and ASAN vstest both failed before pytest when the host preflight command sudo ip link del Vrf1 segfaulted (exit 139) on separate agents; no product test ran. |
|
/azp run |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azpw run |
|
Retrying failed(or canceled) jobs... |
|
Retrying failed(or canceled) stages in build 1173201: ✅Stage TestAsan:
✅Stage Test:
|
What I did
Built a validation-only branch from the current
202605head containing the complete dependency-ordered backport set.The stack is:
The current
202605base already includes #4777, the release-branch equivalent of the PR-CI dependency fix. No validation-only copy of the master CI commit is carried in this stack.Why I did it
These PRs overlap in
intfsorch.cpp,neighorch.cpp, and the mock test fixtures. Individual master builds do not prove that their target-branch conflict resolutions preserve every behavior when combined.The final merge/backport order also matters:
This PR validates that exact combined state against
202605, including merged prerequisite #4758. It is not a backport request and must not be merged.How I verified it
202605base is accepted as target-branch evidence. A retried stage that merges currentmasteris not sufficient.Exact validation result
d4b0502ecdac76d56fdf063a633045c0fb0de977Test vstest, andTestAsan vstestlanes complete successfully on the exact published head.Details if related
Tested for 202605 branchlabel remains absent from the six real PRs until this exact stack completes PR CI.