Skip to content

ebpf windows plugin + e2e comp tests #1467

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

vpidatala94
Copy link

ebpf windows plugin + e2e comp tests

Changes being introduced.

test\e2e\tools\event-writer : this is an test tool that helps generating mock trace and drop events using a BPF program based on customer inputs. The tools consists a BPF program and C++ Application that is used to load/unload and attach/update filter
Tool is intentionally building only for Release config variant for x64.

ebpf-for-windows plugin in pkg/plugin/ebpf-for-windows consists of changes to capture advanced metrics using Hubble parser for trace, drop changes. There are additional changes in the plugin to update retina metadata.

Additional changes in E2E with jobs
a. to load program, maps and pin it because retina ebpfwindows plugin expects cilium maps pre-loaded.
b. to validate windows BPF metrics advanced + basic.

  1. collect pre-test basic metrics
  2. create a non-hpc-pod
  3. capture ifindex, interface of that non-hpc-pod and attach the BPF program to that interface
  4. set filter for event-writer to trace and initiate curl from the non-hpc-pod
  5. capture post-test BPF program and check if the metrics have increased.
  6. check for the presence of advanced metrics
    c. to unpin BPF program, maps at the end of tests

Additional changes made in retina source to enable ebpfwindows plugin, made changes in retina win config-map to enable pod-level metrics + annotations << to mitigate a bug in retina that causes retina win daemon-sets to not cause a rollout during helm upgrade

@vpidatala94 vpidatala94 requested a review from a team as a code owner March 24, 2025 22:03
}
meta := &utils.RetinaMetadata{}
// Add packet size to the flow's metadata.
utils.AddPacketSize(meta, 128)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a comment for these hardcoded 128 bytes packet length.

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.

2 participants