UPF eBPF - Failing to install downlink PDR and FAR rules
Hi @fmessaoudi, I am facing issues installing the PDR and FAR rules. I noticed that it only fails for the Downlink rules. The same rules work when I don't use the eBPF option on the UPF. Could you kindly assist me in resolve/debugging the error.
The error message that I am getting is below. See attached screenshot ![upf-pfcp-error](/uploads/cf01f8e5c189778295242c8da6c11c77/upf-pfcp-error.png)
for more details.
[2024-04-07 09:02:00.363] [upf_app] [info] BPFProgram 1 is created!!!
terminate called after throwing an instance of 'std::runtime_error'
what(): No fields available for Downlink Create PDI Check
How to reproduce the error
run the following docker compose file. You can find the sessions-oai-upf-ebpf.yaml and basic_config_ebpf.yaml, afterwards you can run docker logs oai-upf
to see the error.
version: '3.8'
services:
pfcp-kitchen-sink:
container_name: "pfcp-kitchen-sink"
image: tariromukute/pfcp-kitchen-sink:latest
volumes:
- ./sessions-oai-upf-ebpf.yaml:/app/sessions.yaml
command: ./pfcpclient -r 192.168.70.129:8805 -s sessions.yaml
depends_on:
- oai-upf
networks:
public_net:
ipv4_address: 192.168.70.131
tc-gtpu:
container_name: "tc-gtpu"
image: tariromukute/tc-gtpu:latest
command: tail -f /dev/null
volumes:
- /sys/kernel/debug/:/sys/kernel/debug/
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- NET_ADMIN
- SYS_ADMIN
depends_on:
- oai-upf
- pfcp-kitchen-sink
networks:
public_net:
ipv4_address: 192.168.70.130
oai-upf:
container_name: "oai-upf"
image: oaisoftwarealliance/oai-upf:develop
expose:
- 2152/udp
- 8805/udp
- 8080/tcp
volumes:
- ./basic_config_ebpf.yaml:/openair-upf/etc/config.yaml
environment:
- TZ=Europe/Paris
cap_add:
- NET_ADMIN
- SYS_ADMIN
cap_drop:
- ALL
privileged: true
network_mode: host
extra_hosts:
- "oai-ext-dn:192.168.72.135"
oai-ext-dn:
privileged: true
init: true
container_name: oai-ext-dn
image: tariromukute/trf-gen-cn5g:latest
environment:
- EBPF_GW_SETUP=yes
- EBPF_GW_N6_IP_ADDR=192.168.72.135
- GW_SGI_IP_ADDR=192.168.70.135
- GW_N3_IP_ADDR=192.168.71.135
- UE_IP_ADDRESS_POOL=12.1.1.0/24
- N6_UPF_IP_ADDR=192.168.72.129
- SGI_DEMO_OAI_ADDR=192.168.70.129
- NSH_DECAP=yes
healthcheck:
test: /bin/bash -c "ip r | grep 12.1.1"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.135
n3_net:
ipv4_address: 192.168.71.135
n6_net:
ipv4_address: 192.168.72.135
networks:
public_net:
driver: bridge
name: demo-oai-public-net
ipam:
config:
- subnet: 192.168.70.128/26
driver_opts:
com.docker.network.bridge.name: "demo-oai"
n3_net:
driver: bridge
name: demo-oai-n3-net
ipam:
config:
- subnet: 192.168.71.128/26
driver_opts:
com.docker.network.bridge.name: "demo-n3"
n6_net:
driver: bridge
name: demo-oai-n6-net
ipam:
config:
- subnet: 192.168.72.128/26
driver_opts:
com.docker.network.bridge.name: "demo-n6"
Expected behavior
The rules should be installed without error, similar to the case with eBPF disabled on the UPF.