How can I measure packet processing latency of UPF?

I want to measure the latency of UPF processing one packet. I have read the UPF Golang code but I didn’t understand. Could anyone point out where are the N3, N6, N4, etc. interfaces implemented and hint on how I can measure the UPF latency?

Thanks!

Hello, @zeyingz. To measure the packet incoming and outgoing time of UPF, you can use the command
tcpdump -i <n3 interface configured in config/upfcfg> -n icmp -w free5gc_n3.pcap &
tcpdump -i <n6 interface which go to Internet> -n icmp -w free5gc_n6.pcap
to listen on N3 and N6 interfaces. Before using this command, please ensure that you have run free5gc and established a PDU session. After executing the command, use the UE to ping 8.8.8.8 and then stop tcpdump. You can open the file “free5gc_n3.pcap” with Wireshark to obtain detailed information. As a result, you can compare both timestamp to measure the latency of UPF resolving GTP header time and packet forwarding time.

Regarding your question about the N3, N4, and N6 interfaces, you can separate the UPF into the control plane (N4) and the data plane (N3 & N6). The control plane in the UPF and the user plane are implemented in the kernel module named gtp5g. You can find more information about N3 and N6 there. As for the control plane, you can see this function, it’s can deal with N4 message from AMF.

I hope this information is helpful to you. Best regards, Ben.

Hi ,
since there haven’t been any replies from you, this topic is closed by admin.
If you have further questions about this topic, please create another topic or message the admin.
Thanks.

Admin