Dear support team,
I am working with a modified version of the N3IWF test where I want to route packets from behind the UE to the data network behind the UPF, i.e. the UE is acting as a router.
The following image describes the setup I am working with:
In this setup I can successfully ping between the UE namespaces and the data network, e.g. between 60.60.0.1 and 60.60.0.101. However, ping fails when I do it from 10.0.1.2. What happens is that the packet is correctly routed by the UE into the N3IWF tunnel, and the N3IWF correctly binds the packet into a GTP tunnel towards the UPF. In the UPF namespace I can see the packet on veth1 but it is not delivered to upfgtp0.
What is happening is that the gtp5g kernel module does not match on the packets coming from 10.0.1.2 with destination 60.60.0.101, and instead delivers the packets to the free5GC UPF process, which fails because this process cannot handle GTP transport PDUs (header type 255).
I attach an image from a pcap captured between the N3IWF and the UPF, where you see the ICMP echo request from 10.0.1.2 towards 60.60.0.101.
And here I attach the full pcap.
test.pcap (1.0 KB)
This is the upfcfg.yaml file that I use in the test:
info:
version: 1.0.0
description: UPF configuration
configuration:
debugLevel: info
pfcp:
- addr: 10.200.200.101
gtpu:
- addr: 10.200.200.102
apn_list:
- apn: internet
cidr: 60.60.0.0/24
This is the SMF configuration file that I am using. As you can see I specify 10.0.0.0/16 as ue_subnet.
info:
version: 1.0.0
description: AMF initial local configuration
configuration:
smfName: SMF
sbi:
scheme: https
ipv4Addr: 127.0.0.1
port: 29502
tls:
key: free5gc/support/TLS/smf.key
pem: free5gc/support/TLS/smf.pem
serviceNameList:
- nsmf-pdusession
- nsmf-event-exposure
- nsmf-oam
snssai_info:
- sNssai:
sst: 1
sd: 010203
dnnSmfInfoList:
- dnn: internet
- sNssai:
sst: 1
sd: 112233
dnnSmfInfoList:
- dnn: internet
pfcp:
addr: 10.200.200.1
userplane_information:
up_nodes:
gNB1:
type: AN
an_ip: 192.188.2.3
UPF:
type: UPF
node_id: 10.200.200.101
up_resource_ip: 192.188.2.2
links:
- A: gNB1
B: UPF
ue_subnet: 10.0.0.0/16
nrfUri: https://localhost:29510
If instead of the smfcfg pasted above I use the default one with ue_subnet: 60.60.0.0/16, then I can ping from the UE namespaces, i.e. from 60.60.0.1 to 60.60.0.101, but I cannot ping from 10.0.0.0/16, which is what I really want to do.
My questions are:
-
Is it possible to configure the SMF so the UPF will route packets from 10.0.0.0/16 towards the data network 60.60.0.0?
-
If not possible in the current implementation. I imagine the UPF implementation can be modified in order to program a rule that enables this configuration in the gtp5g module. Could you provide some guidance on to how to do that?
-
Finally, is there any command line tool I can use to dump the rules installed in the gtp5g kernel module?
Thanks for you support
BR
Daniel