upg-vpp: 5G PFCP Error

Hi,

Please I am trying to setup upg-vpp as UPF for open5gs SMF.

The error I get from the open5gs SMF is:

03/20 23:01:14.209: [smf] WARNING: cannot handle PFCP message type[1] (../src/smf/pfcp-sm.c:140)
03/20 23:01:14.729: [pfcp] DEBUG: [3] REMOTE Create  peer [10.0.0.149]:8805 (../lib/pfcp/xact.c:156)
03/20 23:01:14.729: [pfcp] DEBUG: [3] REMOTE Receive peer [10.0.0.149]:8805 (../lib/pfcp/xact.c:699)
03/20 23:01:14.729: [pfcp] DEBUG: [3] REMOTE UPD RX-1  peer [10.0.0.149]:8805 (../lib/pfcp/xact.c:294)
03/20 23:01:14.729: [smf] WARNING: cannot handle PFCP message type[1] (../src/smf/pfcp-sm.c:140)
03/20 23:01:15.207: [smf] WARNING: Retry to association with peer [10.0.0.149]:8805 failed (../src/smf/pfcp-sm.c:107)
03/20 23:01:15.207: [pfcp] DEBUG: Association Setup Request (../lib/pfcp/build.c:64)
03/20 23:01:15.207: [pfcp] DEBUG: [83] LOCAL  UPD TX-5  peer [10.0.0.149]:8805 (../lib/pfcp/xact.c:193)
03/20 23:01:15.207: [pfcp] DEBUG: [83] LOCAL  Create  peer [10.0.0.149]:8805 (../lib/pfcp/xact.c:113)
03/20 23:01:15.207: [pfcp] DEBUG: [83] LOCAL  Commit  peer [10.0.0.149]:8805 (../lib/pfcp/xact.c:473)
03/20 23:01:15.207: [core] ERROR: Unexpected TLV type:32770 (../lib/core/ogs-tlv-msg.c:454)
03/20 23:01:15.207: [smf] ERROR: ogs_pfcp_parse_msg() failed (../src/smf/smf-sm.c:228)

After a while upg-vpp crashes…

DBGvpp# /usr/src/upg-vpp/vpp/src/vlib/counter.h:101 (vlib_decrement_simple_counter) assertion `my_counters[index] >= decrement' fails
Aborted (core dumped)

Following are my config:

ip table add 1
ip table add 2
ip6 table add 1
ip6 table add 2

create host-interface name ens6
set interface mac address host-ens6 02:7e:e1:cc:04:a7
set interface mtu 1500 host-ens6
set interface ip table host-ens6 0
set interface ip address host-ens6 10.0.0.149/24
set interface state host-ens6 up

create host-interface name ens7
set interface mac address host-ens7 02:68:23:7e:1d:bf
set interface mtu 1500 host-ens7
set interface ip table host-ens7 1
set interface ip address host-ens7 10.0.6.133/24
set interface state host-ens7 up

create host-interface name ens8
set interface mac address host-ens8 02:bc:29:ee:b2:63
set interface mtu 1500 host-ens8
set interface ip table host-ens8 2
set interface ip address host-ens8 10.0.4.246/24
set interface state host-ens8 up

ip route add 0.0.0.0/0 table 0 via 10.0.0.1 host-ens6
ip route add 0.0.0.0/0 table 1 via 10.0.6.1 host-ens7
ip route add 0.0.0.0/0 table 2 via 10.0.4.1 host-ens8

upf pfcp endpoint ip 10.0.0.149 vrf 0

upf nwi name cp vrf 0
upf nwi name epc vrf 1
upf nwi name sgi vrf 2

upf gtpu endpoint ip 10.0.0.149 nwi cp teid 0x80000000/2
upf gtpu endpoint ip 10.0.6.133 nwi epc teid 0x80000000/2
unix {
  nodaemon
  log /tmp/vpp.log
  full-coredump
  gid vpp
  interactive
  cli-listen localhost:5002
  exec init.conf
}

api-trace {
  on
}

api-segment {
  gid vpp
}

plugins {
    path /usr/src/upg-vpp/vpp/build-root/install-vpp_debug-native/vpp/lib/vpp_plugins/
    plugin dpdk_plugin.so { disable }
    plugin gtpu_plugin.so { disable }
    plugin upf_plugin.so { enable }
}

Steps that I used in installing upg-vpp:

cd /usr/src
git clone https://github.com/travelping/upg-vpp
cd upg-vpp
make update-vpp
cd vpp
make install-deps
make install-ext-deps
make build

Also it will be great if someone can point me to where the documentation is, I was unable to locate this in this repo.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 26 (10 by maintainers)

Most upvoted comments

two problems:

  1. the PDI specifies the NWI “internet”, but you have not configured a NWI of that name
  2. a valid Network Instance IE also needs to be present in the FAR

some more observations:

  • using the same NWI for the GTP side and SGi side is strange, you normally do not want to mix GTP and SGi traffic. In real Telco setup, the GTP side will be connected to the private GRX network and will not carry SGi traffic
  • you sent a QER, that will be ignored, QoS enforcement is not supported yet
  • you sent a BAR and a FAR that uses it, this also will be ignored, buffer action rules are not supported yet

Or, even better:

gdb --args /path/to/vpp -c /path/to/startup.conf
r
# after crash:
bt full 30