Hi, My 3GPP UPF implementation uses a DPO to direct all UE IP to my session logic. This works well.
I now want to use deterministic NAT on the UE IPs. The NAT config inserts a DPO in the FIB: nat44 deterministic add in 10.106.0.0/16 out 10.116.0.0/24 show ip fib: ipv4-VRF:2, fib_index:2, flow hash:[src dst sport dport proto ] epoch:0 flags:none locks:[CLI:3, adjacency:1, ] [...] 10.116.0.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [proto:ip4 index:35 buckets:1 uRPF:41 to:[0:0]] [0] [@2]: dpo-receive: 0.0.0.0 on host-ens161 When my session now tries to insert a DPO with /32 route to the UE IP, VPP crashes with: (gdb) bt #0 0x00007ffff5ec29c4 in hash_memory64 (p=0x7fffad1302ef, n_bytes=1881489448, state=0) at /usr/src/vpp/src/vppinfra/hash.c:141 #1 0x00007ffff5ec2ea3 in hash_memory (p=0x7fffad1302ef, n_bytes=1881489448, state=0) at /usr/src/vpp/src/vppinfra/hash.c:280 #2 0x00007ffff5ec46ad in vec_key_sum (h=0x7fffb633cba0, key=140736097092335) at /usr/src/vpp/src/vppinfra/hash.c:864 #3 0x00007ffff5ec30ef in key_sum (h=0x7fffb633cba0, key=140736097092335) at /usr/src/vpp/src/vppinfra/hash.c:341 #4 0x00007ffff5ec3a2c in lookup (v=0x7fffb633cc60, key=140736097092335, op=GET, new_value=0x0, old_value=0x0) at /usr/src/vpp/src/vppinfra/hash.c:556 #5 0x00007ffff5ec3d2a in _hash_get (v=0x7fffb633cc60, key=140736097092335) at /usr/src/vpp/src/vppinfra/hash.c:641 #6 0x00007ffff641faf3 in vlib_get_node_by_name (vm=0x7ffff66b4680 <vlib_global_main>, name=0x7fffad1302ef "upf-ip4-session-dpo") at /usr/src/vpp/src/vlib/node.c:52 #7 0x00007ffff75032e0 in dpo_default_get_next_node (dpo=0x7fffb7b1f650) at /usr/src/vpp/src/vnet/dpo/dpo.c:298 #8 0x00007ffff7504302 in dpo_get_next_node (child_type=DPO_LOAD_BALANCE, child_proto=DPO_PROTO_IP4, parent_dpo=0x7fffb7b1f650) at /usr/src/vpp/src/vnet/dpo/dpo.c:428 #9 0x00007ffff75046d1 in dpo_stack (child_type=DPO_LOAD_BALANCE, child_proto=DPO_PROTO_IP4, dpo=0x7fffb7a7dca0, parent=0x7fffb7b1f650) at /usr/src/vpp/src/vnet/dpo/dpo.c:521 #10 0x00007ffff7510a94 in load_balance_set_bucket_i (lb=0x7fffb7a7dc80, bucket=0, buckets=0x7fffb7a7dca0, next=0x7fffb7b1f650) at /usr/src/vpp/src/vnet/dpo/load_balance.c:252 #11 0x00007ffff7511423 in load_balance_fill_buckets_norm (lb=0x7fffb7a7dc80, nhs=0x7fffb7b1f650, buckets=0x7fffb7a7dca0, n_buckets=1) at /usr/src/vpp/src/vnet/dpo/load_balance.c:525 #12 0x00007ffff7511846 in load_balance_fill_buckets (lb=0x7fffb7a7dc80, nhs=0x7fffb7b1f650, buckets=0x7fffb7a7dca0, n_buckets=1, flags=LOAD_BALANCE_FLAG_NONE) at /usr/src/vpp/src/vnet/dpo/load_balance.c:589 #13 0x00007ffff7511bf3 in load_balance_multipath_update (dpo=0x7fffb7a7d1d8, raw_nhs=0x7fffb7b1f600, flags=LOAD_BALANCE_FLAG_NONE) at /usr/src/vpp/src/vnet/dpo/load_balance.c:654 #14 0x00007ffff749f1d4 in fib_entry_src_mk_lb (fib_entry=0x7fffb7a7d1b0, esrc=0x7fffb7b1f570, fct=FIB_FORW_CHAIN_TYPE_UNICAST_IP4, dpo_lb=0x7fffb7a7d1d8) at /usr/src/vpp/src/vnet/fib/fib_entry_src.c:645 #15 0x00007ffff749f348 in fib_entry_src_action_install (fib_entry=0x7fffb7a7d1b0, source=FIB_SOURCE_FIRST) at /usr/src/vpp/src/vnet/fib/fib_entry_src.c:705 #16 0x00007ffff749fe14 in fib_entry_src_action_activate (fib_entry=0x7fffb7a7d1b0, source=FIB_SOURCE_FIRST) at /usr/src/vpp/src/vnet/fib/fib_entry_src.c:1078 #17 0x00007ffff7496170 in fib_entry_create_special (fib_index=2, prefix=0x7fffb507c7f0, source=FIB_SOURCE_FIRST, flags=(FIB_ENTRY_FLAG_EXCLUSIVE | FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT), dpo=0x7fffb507c7d8) at /usr/src/vpp/src/vnet/fib/fib_entry.c:775 #18 0x00007ffff747d3be in fib_table_entry_special_dpo_add (fib_index=2, prefix=0x7fffb507c7f0, source=FIB_SOURCE_FIRST, flags=(FIB_ENTRY_FLAG_EXCLUSIVE | FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT), dpo=0x7fffb507c7d8) at /usr/src/vpp/src/vnet/fib/fib_table.c:338 #19 0x00007fffad0cdaac in pfcp_add_del_ue_ip (ip=0x7fffb7b1e730, si=0x7fffb6827040, is_add=1) at /usr/src/vpp/src/plugins/upf/upf_pfcp.c:1192 The invocation is here: https://github.com/travelping/vpp/blob/feature/2001/upf-liusa-pfcp-socket/src/plugins/upf/upf_pfcp.c#L1191 Any hints on what I might be doing wrong? Many thanks, Andreas -- Andreas Schultz -- Principal Engineer t: +49 391 819099-224 ------------------------------- enabling your networks ----------------------------- Travelping GmbH Roentgenstraße 13 39108 Magdeburg Germany t: +49 391 819099-0 f: +49 391 819099-299 e: i...@travelping.com w: https://www.travelping.com/ Company registration: Amtsgericht Stendal Geschaeftsfuehrer: Holger Winkelmann Reg. No.: HRB 10578 VAT ID: DE236673780
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#15755): https://lists.fd.io/g/vpp-dev/message/15755 Mute This Topic: https://lists.fd.io/mt/71902419/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-