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

[FEATURE] Remove dependency on kernel module #155

Open
gruyaume opened this issue Feb 6, 2025 · 2 comments
Open

[FEATURE] Remove dependency on kernel module #155

gruyaume opened this issue Feb 6, 2025 · 2 comments
Labels
enhancement New feature or request

Comments

@gruyaume
Copy link

gruyaume commented Feb 6, 2025

Is your feature request related to a problem? Please describe.

Building and installing PacketRusher currently relies on building and loading a kernel module. This makes PacketRusher difficult to package and distribute (ex. as a container image or a snap) and limits its potential usability.

Describe the behavior you'd like
Ability to distribute PacketRusher as a container image and/or snap.

Potential alternatives to kernel modules

  • eBPF: Implementing the packet processing logic using eBPF could offer the same performance (kernel level packet decisions) and improving portability
@gruyaume gruyaume added the enhancement New feature or request label Feb 6, 2025
@linouxis9
Copy link
Member

linouxis9 commented Feb 6, 2025

Hi @gruyaume,

Thanks a lot for opening this ticket! Indeed, this is a big issue!

There are a few workarounds:

  • As you mentioned, using eBPF, I have a WIP PR here but it's far from done: [WIP] Switch to eBPF for user-plane #47
    I think Free5GC might be working on that for their UPF too. I'm looking forward integrating it if they ever do release it!
  • Install the kernel module on the k8s workers (tested and working, it's especially great if you use Free5GC's UPF as you have to install for their UPF anyway)
  • Integrate back go-gtp inside PacketRusher, not too hard, but performance will be limited.
  • It's currently possible to use PacketRusher without the kernel module if you want to only use it for it's control plane testing features as well.

Hope it helps!

Cheers,
Valentin

@gruyaume
Copy link
Author

gruyaume commented Feb 7, 2025

Thank you @linouxis9 for the quick response and acknowledging this issue.

We would be interested in using PacketRusher to assess performance of Charmed Aether SD-Core, and ability to package and distribute it is a pre-requisite.

I will follow the progress on this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants