Skip to content
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

[DataPlane] Packet tracing routines #71

Open
GeorgyKirichenko opened this issue Oct 26, 2023 · 1 comment
Open

[DataPlane] Packet tracing routines #71

GeorgyKirichenko opened this issue Oct 26, 2023 · 1 comment

Comments

@GeorgyKirichenko
Copy link
Collaborator

There are currently few options for tracking a packet during its life inside YANET DataPlane, with the exception of some counters or a virtual "drop" interface.
The main idea of the task is to implement packet tracing, which will look like this:
- one sets up a filter that determines the packages we want to track
- each module records some trace information (packet ID/module name/action/reason/time stamps, etc.) for the packet matching the filter.
- one could read the trace information as a log file using some kind of interface

@kemsta
Copy link

kemsta commented Jan 25, 2025

What about using USDT (User Statically Defined Tracing) to give users more control over packet tracing? Tracepoints can be added at key stages (like packet reception, processing, or drop), allowing users to attach eBPF programs to collect only the events they care about. They can define filters, capture details such as src, dst, interface, actions, and timestamps, and aggregate the data in any way they need. It’s lightweight, with minimal performance impact when tracing isn’t active, and highly flexible for debugging or monitoring workflows.
Do you already have specific points in the DataPlane that should be traced, or would it also require instrumenting the DPDK framework itself?

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

No branches or pull requests

2 participants