HewlettPackard / PacketRusher

High performance 5G UE/gNB Simulator and CP/UP load tester.
Apache License 2.0
100 stars 21 forks source link

[FEATURE] Access to gNB and UE (like in UERANSIM repo) #74

Open IgnacioCTO opened 5 months ago

IgnacioCTO commented 5 months ago

Hello everyone!

I think that it could be interesting to have a way to connect to the users and gNBs deployed, where you could access their information and trigger some other useful commands like handovers.

I know about a repository called UERANSIM which also implements a RAN access for 5G and it offers this type of command interface with their nodes. They haven't implemented all the same 5G features as you tho.

Thank you for sharing your work,

Ignacio

linouxis9 commented 5 months ago

Hi @IgnacioCTO,

Thanks for the report! That's basically what https://github.com/HewlettPackard/PacketRusher/issues/31 is about, but we are not sure yet the best way to design the UX. If you any wishes on how you would like to be able to interact with the gNodeB/UE feel free to share! Also, were you able to make ngh and idh work? If you are still have an issues when using them together, please open a separate issue with pcap and everything.

Thanks a lot! Valentin

IgnacioCTO commented 4 months ago

Hi @linouxis9 !

I think that I've been able to perform the XNH alone, but I still get an error when performing XNH and NGH at the same time (I will open a new issue for it).

Right now I have a few questions about PacketRusher if you are so kind to answer them:

1. Is there a way to check the users attached to a gnb? or the gnb to which the UE is attached? 2. Can I deploy an UE in a different VM to the gNB and attach it to it? (like targeting the gnb) 3. Is it possible to target the XNH to an specific gnb? In addition to that, how can i deploy two gnbs with my desired IPs, how should I change the config file?

Thank you for your time, I appreciate any indication.

Ignacio

linouxis9 commented 4 months ago

Hi @IgnacioCTO, Thank you for your feedback! Sadly, none of the three points are possible right now. You can open features requests for 1 and 3, as we definitely need that kind of features. For 2., I'm not sure, one of the goal of PacketRusher is to be all-in-one, having the ability to break PacketRusher in two would reduce greatly its performance. What would be your use case for it?

Please do open an issue for your bug as well, as I'm pretty sure I know what's going on.

Thanks! Valentin

IgnacioCTO commented 4 months ago

Good Morning @linouxis9,

I will open the bug and the two enhancement request.

As for point 3, I need to simulate a 5G constellation where I have UEs and gNBs in different containers sending traffic between them. Do you think that this could be feasible? Maybe a containerized version of PacketRusher could do the job, like in free5gc-compose.

Thank you for your active responses.

Ignacio

linouxis9 commented 4 months ago

Good morning to you as well @IgnacioCTO!

Yes, for now and for your use cases, I would recommend you to have multiple containers of PacketRusher (either in Docker/Podman or in k8s) which each simulate a single gNodeB and multiples UEs. To improve the performance of PacketRusher, we do a lot of things that assume both the gNodeB and the UE are in the same process: communication between the UE and gNodeB are done using a Go channel, and the gNodeB encap/decap GTP-U packets received from the user directly instead of being relayed from the UE through some kind of tunnels.

Thanks and cheers, Valentin

IgnacioCTO commented 4 months ago

Okay, I see... There is not an easy way to separate both in two different containers then. Thank you for the explanation.