Skip to content

fix(srv6): reject colliding terminal SIDs under color-route encoding#30

Merged
ryskn merged 1 commit into
dev/srv6egress-v1from
fix/srv6-colored-route-sid-collision
Jul 3, 2026
Merged

fix(srv6): reject colliding terminal SIDs under color-route encoding#30
ryskn merged 1 commit into
dev/srv6egress-v1from
fix/srv6-colored-route-sid-collision

Conversation

@ryskn

@ryskn ryskn commented Jul 3, 2026

Copy link
Copy Markdown
Owner

What

Under --bgp-encoding=color-route the NLRI is the terminal SID /128 and the color is only a Color Extended Community attribute, so two colors whose segment list ends at the same SID collapse onto one BGP path — the second Announce replaces the first, and withdrawing either withdraws the shared route.

Fix

Reject such a config at load, in the color-route branch (mirrors the sr-policy bsid check). The default sr-policy encoding carries the color in the NLRI key and is unaffected.

Review finding

Low (correctness) L7.

Test

go build/vet ./srv6egress/cmd/... green.

Under --bgp-encoding=color-route the NLRI is the terminal SID /128 and
the color is only a Color Extended Community attribute, so two colors
whose segment list ends at the same SID collapse onto one BGP path: the
second Announce replaces the first, and withdrawing either withdraws the
shared route. Reject such a config at load (the default sr-policy
encoding carries the color in the NLRI key and is unaffected).
@ryskn ryskn merged commit edd5d49 into dev/srv6egress-v1 Jul 3, 2026
1 check passed
@ryskn ryskn deleted the fix/srv6-colored-route-sid-collision branch July 3, 2026 01:41
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.

1 participant