Skip to content

Conversation

@maxime-leroy
Copy link
Collaborator

Grout does not support uSID/CSID SIDs, but FRR staticd configures them by default, causing errors in SRv6 smoke tests ("not supported next-c-sid for srv6 local").

Apply a local FRR patch switching DT behaviors to their non-uSID variants (End, End_X, End_DT{4,6,46}) until upstream FRR adds native support.

(not merge until patch is accepted on FRR)

@maxime-leroy maxime-leroy marked this pull request as draft December 3, 2025 15:46
@coderabbitai
Copy link

coderabbitai bot commented Dec 3, 2025

📝 Walkthrough

Walkthrough

This pull request extends SRv6 support in FRR by adding non-uSID endpoint behavior mappings. The changes update the local SID behavior translation to map end.dt4, end.dt6, and end.dt46 to their respective End_DT* variants, register an additional patch file for application during the build, and expand the staticd SRv6 SID CLI parser to recognize End, End_X, End_DT6, End_DT4, and End_DT46 endpoint behaviors with corresponding VRF, interface, and nexthop handling.


📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 023fcf5 and e7c09a3.

📒 Files selected for processing (3)
  • smoke/_init_frr.sh (1 hunks)
  • subprojects/frr.wrap (1 hunks)
  • subprojects/packagefiles/frr/staticd-add-non-uSID-SRv6-SID-behaviors.patch (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.sh

⚙️ CodeRabbit configuration file

**/*.sh: - Don't bother about unquoted shell variables.

Files:

  • smoke/_init_frr.sh
🧠 Learnings (1)
📓 Common learnings
Learnt from: maxime-leroy
Repo: DPDK/grout PR: 309
File: modules/srv6/datapath/srv6_local.c:88-122
Timestamp: 2025-09-09T06:02:47.703Z
Learning: When parsing IPv6 routing headers in SRv6 processing, bounds checking for the full extension header length and validation of the routing header structure is needed before accessing fields like hdr_len, last_entry, segments_left, and type.
🔇 Additional comments (3)
smoke/_init_frr.sh (1)

138-140: LGTM - behavior mapping updated correctly.

The mappings from end.dt4/dt6/dt46 to End_DT4/End_DT6/End_DT46 correctly reflect the non-uSID SRv6 behavior tokens being added in the FRR patch. The logic is straightforward and consistent with the PR objectives.

subprojects/frr.wrap (1)

6-7: LGTM - patch file correctly added.

The new patch file is properly added to the diff_files list and will be applied during the FRR build. The syntax is correct for meson wrap format.

subprojects/packagefiles/frr/staticd-add-non-uSID-SRv6-SID-behaviors.patch (1)

67-90: LGTM - parsing logic is correct.

The argv indexing arithmetic is correct for extracting VRF names at idx+2 (behavior token at idx, "vrf" keyword at idx+1, VRF name at idx+2). This matches the CLI syntax pattern and is consistent with existing uDT* behavior handling. The behavior enum assignments are appropriate for each CLI token.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Grout does not support uSID/CSID SIDs, but FRR staticd configures them by
default, causing errors in SRv6 smoke tests ("not supported next-c-sid
for srv6 local").

Apply a local FRR patch switching DT behaviors to their non-uSID variants
(End, End.X, End.DT{4,6,46}) until upstream FRR adds native support.

Signed-off-by: Maxime Leroy <[email protected]>
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