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

Integration of upg-vpp inside PacketRusher #372

Closed
linouxis9 opened this issue Dec 28, 2023 · 3 comments
Closed

Integration of upg-vpp inside PacketRusher #372

linouxis9 opened this issue Dec 28, 2023 · 3 comments

Comments

@linouxis9
Copy link

linouxis9 commented Dec 28, 2023

Hi,

I'm currently working on an open-source gNB/UE Simulator which can act as 5G Core stress tester to evaluate the performance of the 5G Core, called PacketRusher.
It can stress test a 5G Core both on the control plane and user plane side using a great amount of UEs.

For now, I've been using free5gc's gtp5g kernel module as the GTP-U stack of the tool. However, kernel modules have a lot of shortcomings and I've been looking to replace the GTP-U stack with something else.

Lately, I've been working on integrating eUPF's eBPF code inside PacketRusher.
However, as PacketRusher is to be a performance-testing tool, I'm interested in also offering something more performant.

As such, I would be interested in integrating upg-vpp inside PacketRusher.
PacketRusher is a Go tool unlike upg-vpp, and I'm not really interested in writing C-Go bindings to reuse the upg-vpp's code from PacketRusher.

Do you think it would make sense for a tool like PacketRusher to embed the full upg-vpp as-is, and then create sessions externally similar to your e2e tests in Go, eg. PacketRusher would configure PFCP Sessions inside upg-vpp to act as a RAN and send traffic toward the 5GC's UPF?

Sorry for the long message :-)

Thanks and cheers,
Valentin

@mgumz
Copy link

mgumz commented Feb 9, 2024

@linouxis9

PacketRusher would configure PFCP Sessions inside upg-vpp to act as a RAN and send traffic toward the 5GC's UPF?

Just to understand your intend: You want to use upg-vpp as … load-generator to test 5GCs upf?

@mogaika
Copy link
Collaborator

mogaika commented Feb 9, 2024

Hi, @linouxis9

If I understand correctly load itself will be generated using linux udp/tcp sockets, so kernel sockets will be your limiting factor and it makes not much sense to integrate upg-vpp for this. GTPU encapsulation is simplest part of this processing and it's relatively easy to implement in golang with tap/XDP libraries

@linouxis9
Copy link
Author

Hi @mogaika,

Thanks a lot for your appreciated insights, you are totally right! And I've already began work on eBPF XDP over tap.

Thanks to the both of you.

Cheers,
Valentin

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

3 participants