-
Notifications
You must be signed in to change notification settings - Fork 16
Problem Using host-device CNI plugin #513
Replies: 3 comments · 8 replies
-
Hi Christopher @infinitydon, First, I'd check that every thing is OK with K8s+multus. Could you exclude eth2(n6-eupf1) from eUPF configuration in order not to attach xdp program to it? Will connectivity be OK? Also could you please enable debug logs(tracepipe) and check what's happening in ebpf xdp when you're experiencing connectivity loss? -- BR, Alex |
Beta Was this translation helpful? Give feedback.
All reactions
-
K8s+multus is okay, I double checked this by deploying open5gs UPF with the same set of Multus interfaces and ping connectivity works without any issues.
I tried, it's the same result, connectivity is lost once UE tries initiates a ping.
Below are the debug logs, I was not able to find what could be wrong from the logs. |
Beta Was this translation helpful? Give feedback.
All reactions
-
I built a separate image with logging enabled.. So far it is not pointing to any issues:
I switched to vmxnet3 from virtio_pci, still the same problem persists But I also noticed that the packet drop count is increasing on the N6 (n6eupf1) interface TX: Interface statistics before sending 3 ping packets from UE1:
Interface statistics after sending 3 ping packets from UE1:
So it looks like it is the eUPF that is dropping the packets? Can you suggest where to check further? |
Beta Was this translation helpful? Give feedback.
All reactions
-
@pirog-spb - Can you kindly suggest how to troubleshoot/solve the packet drop as per my recent observation. Thanks |
Beta Was this translation helpful? Give feedback.
All reactions
-
@infinitydon I see no downlink packets in log for your test traffic flow. This flow was forwarded to N6
But seems like no incoming packets Considering packet drops, I suppose that packets are dropped on RX. So eUPF even don't see any packets. May be there is some issue with checksums?
|
Beta Was this translation helpful? Give feedback.
All reactions
-
@pirog-spb - I have tried to set checksum off, none is working.. The only mode that works is macvlan CNI plugin (generic mode). I have tried Native mode for veth, virtio_net, vmxnet3, they are not working and I am certain now that it's the eUPF dropping the packets because using those mode for open5gs UPF works. For now I am not able to proceed with testing the native mode. Have you tested native mode running in Kubernetes? If yes let me know your working configuration. |
Beta Was this translation helpful? Give feedback.
All reactions
-
Yes, we have tested native mode in K8s. And it's little bit tricky. For veth drive in order to load ebpf program in native mode inside a pod you have to load ebpf program (any) on corresponding veth paired interface on the host. See #116 for details. You can use zero_entrypoint_bpf program from eupf container. In order to use virtio_net, vmxnet3 with native xdp mode some hypervisor options have to be tuned. See discussion #507 But. I think that your initial problem is not in the attachement mode. I'd rather investigate rx drops. You can see detailed info about drop reason using tools like |
Beta Was this translation helpful? Give feedback.
All reactions
-
@pirog-spb - All the tools you referenced did not help, netstat was not showing any errors, ethtool features is broad, I already tried to disable checksuming, it did not help. Eventually I decided to use virtio_net interfaces for the gNB N3, eupf N3, N6, with that at least there should be no changes in the interface features, but there is slight improvement in the iperf3 stats with the Native mode.
Compared to the generic mode:
For now I think I will stick to using macvlan CNI plugin. One issue I encountered, not sure if it is a bug, I configured the eUPF to use a different N3 interface IP:
The eUPF did not use the N3 IP for the GTP tunnel instead it kept using the UPF_PFCP_NODE_ID i.e. the N4 IP. I then tried setting the UPF_PFCP_NODE_ID to the N3 IP to see if it will change, it didn't, the only time it changed was when the SMF N4 communication did not come through eth0, as long as the SMF is initiating PFCP communication via the eth0, the eUPF will not use the N3 IP address that is configured. Maybe you can check and verify also. |
Beta Was this translation helpful? Give feedback.
All reactions
-
Have you tried the following?
|
Beta Was this translation helpful? Give feedback.
All reactions
-
@infinitydon Could you please clarify what's wrong with N3 IP? Configured N3 IP is not set as a source IP of GTP packets towards gNB? Considering your perf test - keep in mind that eupf may not be a bottleneck. If you used UERANSIM, check CPU usage when test is running. BTW
You don't have to configure interfaces if no data plane packets expected there. Seems like you may exclude |
Beta Was this translation helpful? Give feedback.
All reactions
-
@pirog-spb Yes, Configured N3 IP is not set as a source IP of GTP packets towards gNB Sample config:
PCAP showed that GTP tunnel was not using 192.168.102.1 instead it was using the k8s eth0 IP:
As shown in the above config, removing eth0 from the XDP interface configuration did not fix it. @s5uishida suggestion worked, I configured it as below:
PCAP trace:
|
Beta Was this translation helpful? Give feedback.
-
Hi,
I am trying to use host-device plugin for the N6 interface in the eUPF but once the upf process starts connectivity stops working..
Example multus config:
eUPF annotation:
Ping test to 192.168.101.3 fails and also when I ping from the eUPF pod it also fails.
Weird part also is that host interface eth2 will not be useable at all even if I delete the eUPF from the k8s cluster, the only time it can be used again is when I reboot the whole VM.
I tested with macvlan plugin and it works without any issues (the only issue is that native mode does not work with macvlan)
Any idea on what could be wrong?
Beta Was this translation helpful? Give feedback.
All reactions