Add kernel configs necessary for enabling traffic control's (tc) NETEM#1334
Merged
zasgar merged 3 commits intopixie-io:mainfrom May 17, 2023
Merged
Conversation
Signed-off-by: Dom Del Nano <ddelnano@pixielabs.ai>
etep
approved these changes
May 12, 2023
#ci:bpf-build-all-kernels Signed-off-by: Vihang Mehta <vihang@pixielabs.ai>
zasgar
approved these changes
May 17, 2023
ddelnano
added a commit
to k8sstormcenter/pixie
that referenced
this pull request
Feb 25, 2026
pixie-io#1334) Summary: Add kernel configs necessary for enabling traffic control's (tc) NETEM The goal with this change is to enable more advanced network shaping during BPF testing. For example, the recently added tcp stats source connector tracks tcp retransmissions, but we don't have a way to cause these retransmissions in order to verify that functionality works. I'd like to use the [tc-netem](https://man7.org/linux/man-pages/man8/tc-netem.8.html) functionality to inject latency into a network interface that specific gtests can listen on (thinking link local interface that specific tests can opt themselves into). Configuring that interface and providing a nice c++ interface to it will come in later changes. Busybox provides a [tc utility](https://boxmatrix.info/wiki/Property:tc_(bbcmd)), so I don't think any additional userspace tools are necessary. I will validate that the userspace component of this works once this kernel is available. If there are good ways to do this ahead of time, I'm happy to do that validation. It seems like I need to push a kernel to gcs or find a way for bazel to use a local kernel to do that. Relevant Issues: N/A Type of change: /kind test-infra Test Plan: Verified the following the ensure the kernel config applied correctly - [x] Verified compiling our oldest and newest kernel results in `net/sched/sch_netem.o` built into the kernel ``` $ make -C tools/docker .build/kernel_build/linux-build-6.1.18.tar.gz 2>&1 | grep sch_netem CC net/sched/sch_netem.o $ make -C tools/docker .build/kernel_build/linux-build-4.14.254.tar.gz 2>&1 | grep sch_netem CC net/sched/sch_netem.o ``` Signed-off-by: Dom Del Nano <ddelnano@pixielabs.ai>
ddelnano
added a commit
to k8sstormcenter/pixie
that referenced
this pull request
Feb 25, 2026
pixie-io#1334) Summary: Add kernel configs necessary for enabling traffic control's (tc) NETEM The goal with this change is to enable more advanced network shaping during BPF testing. For example, the recently added tcp stats source connector tracks tcp retransmissions, but we don't have a way to cause these retransmissions in order to verify that functionality works. I'd like to use the [tc-netem](https://man7.org/linux/man-pages/man8/tc-netem.8.html) functionality to inject latency into a network interface that specific gtests can listen on (thinking link local interface that specific tests can opt themselves into). Configuring that interface and providing a nice c++ interface to it will come in later changes. Busybox provides a [tc utility](https://boxmatrix.info/wiki/Property:tc_(bbcmd)), so I don't think any additional userspace tools are necessary. I will validate that the userspace component of this works once this kernel is available. If there are good ways to do this ahead of time, I'm happy to do that validation. It seems like I need to push a kernel to gcs or find a way for bazel to use a local kernel to do that. Relevant Issues: N/A Type of change: /kind test-infra Test Plan: Verified the following the ensure the kernel config applied correctly - [x] Verified compiling our oldest and newest kernel results in `net/sched/sch_netem.o` built into the kernel ``` $ make -C tools/docker .build/kernel_build/linux-build-6.1.18.tar.gz 2>&1 | grep sch_netem CC net/sched/sch_netem.o $ make -C tools/docker .build/kernel_build/linux-build-4.14.254.tar.gz 2>&1 | grep sch_netem CC net/sched/sch_netem.o ``` Signed-off-by: Dom Del Nano <ddelnano@pixielabs.ai>
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.
Summary: Add kernel configs necessary for enabling traffic control's (tc) NETEM
The goal with this change is to enable more advanced network shaping during BPF testing. For example, the recently added tcp stats source connector tracks tcp retransmissions, but we don't have a way to cause these retransmissions in order to verify that functionality works.
I'd like to use the tc-netem functionality to inject latency into a network interface that specific gtests can listen on (thinking link local interface that specific tests can opt themselves into). Configuring that interface and providing a nice c++ interface to it will come in later changes.
Busybox provides a tc utility, so I don't think any additional userspace tools are necessary. I will validate that the userspace component of this works once this kernel is available. If there are good ways to do this ahead of time, I'm happy to do that validation. It seems like I need to push a kernel to gcs or find a way for bazel to use a local kernel to do that.
Relevant Issues: N/A
Type of change: /kind test-infra
Test Plan: Verified the following the ensure the kernel config applied correctly
net/sched/sch_netem.obuilt into the kernel.configand.config.oldfile maintained the added kernel configs (P382)