eBPF: Rename ClusterExternal flag to SetDSCP#11134
Merged
mazdakn merged 3 commits intoprojectcalico:masterfrom Oct 8, 2025
Merged
eBPF: Rename ClusterExternal flag to SetDSCP#11134mazdakn merged 3 commits intoprojectcalico:masterfrom
mazdakn merged 3 commits intoprojectcalico:masterfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR renames the ClusterExternal flag to SetDSCP across the eBPF codebase to better reflect its actual purpose of indicating when DSCP (Differentiated Services Code Point) values need to be set on packets.
Key Changes
- Renamed flag constant from
FlagClusterExternaltoFlagSetDSCPin conntrack map definitions - Updated all test expectations to use the new flag name
- Modified eBPF C code to use the new flag names throughout the data path
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| felix/bpf/conntrack/v4/map.go | Renamed flag constant definition from FlagClusterExternal to FlagSetDSCP |
| felix/bpf-gpl/conntrack_types.h | Updated flag macro definition from CALI_CT_FLAG_CLUSTER_EXTERNAL to CALI_CT_FLAG_SET_DSCP |
| felix/bpf-gpl/types.h | Renamed state flag from CALI_ST_CLUSTER_EXTERNAL to CALI_ST_SET_DSCP and updated comment |
| felix/bpf-gpl/tc.c | Updated all references to use new flag names in the traffic control logic |
| felix/bpf-gpl/qos.h | Updated DSCP check function to use new flag name |
| felix/bpf/ut/nat_test.go | Updated test expectations to use FlagSetDSCP instead of FlagClusterExternal |
| felix/bpf/ut/icmp_too_big_test.go | Updated test expectation to use new flag name |
tomastigera
reviewed
Oct 7, 2025
felix/bpf/conntrack/v4/map.go
Outdated
| FlagNPRemote uint16 = (1 << 12) | ||
| FlagNoDSR uint16 = (1 << 13) | ||
| FlagNoRedirPeer uint16 = (1 << 14) | ||
| FlagSetDSCP uint16 = (1 << 15) |
Contributor
There was a problem hiding this comment.
Is the String() missing the stringification of this flag? We missed a few lately
Member
Author
There was a problem hiding this comment.
It it missing it! I did not add it before. It's added now. Thanks for the tip.
tomastigera
approved these changes
Oct 8, 2025
sabags
pushed a commit
to sabags/calico
that referenced
this pull request
Dec 1, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Change flag names used for connections needing DSCP updated to be more precise. Originally, names similar to
ClusterExternalwere used since the use case was defined to set DSCP on traffic leaving cluster. However, now DSCP can also be set on traffic toward host endpoints as well (#10997).Related issues/PRs
Todos
Release Note
Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one
docs-*label.docs-pr-required: This change requires a change to the documentation that has not been completed yet.docs-completed: This change has all necessary documentation completed.docs-not-required: This change has no user-facing impact and requires no docs.Every PR needs one
release-note-*label.release-note-required: This PR has user-facing changes. Most PRs should have this label.release-note-not-required: This PR has no user-facing changes.Other optional labels:
cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.