Hi all, we are using VPP with several FIB tables and when we use 'next-hop-table' the ip4-lookup results somehow in 'unknown ip protocol'. Can you please help?
Our setup: * 1 (out of 2) with VPP and a DPDK interface The VPP version is (both nodes): vpp# show version verbose Version: v21.06-rc2~6-gf377e9545 Compiled by: suse Compile host: SUSE Compile date: 2021-06-24T14:02:01 Compile location: /root/vpp-32298/vpp Compiler: GCC 7.5.0 Current PID: 22527 The VPP config uses the DPDK interface (both nodes): vpp# show hardware-interfaces NCIC-1-v1 Name Idx Link Hardware NCIC-1-v1 3 up NCIC-1-v1 Link speed: 40 Gbps RX Queues: queue thread mode 0 vpp_wk_0 (1) polling Ethernet address 72:a6:1e:ae:cd:f1 Intel iAVF carrier up full duplex mtu 9206 flags: admin-up pmd maybe-multiseg subif tx-offload intel-phdr-cksum rx-ip4-cksum int-unmaskable Devargs: rx: queues 1 (max 256), desc 1024 (min 64 max 4096 align 32) tx: queues 3 (max 256), desc 1024 (min 64 max 4096 align 32) pci: device 8086:154c subsystem 1028:0000 address 0000:17:0e.01 numa 0 max rx packet len: 9728 promiscuous: unicast off all-multicast on vlan offload: strip off filter off qinq off rx offload avail: vlan-strip ipv4-cksum udp-cksum tcp-cksum qinq-strip outer-ipv4-cksum vlan-filter jumbo-frame scatter rss-hash rx offload active: ipv4-cksum jumbo-frame scatter tx offload avail: vlan-insert ipv4-cksum udp-cksum tcp-cksum sctp-cksum tcp-tso outer-ipv4-cksum qinq-insert vxlan-tnl-tso gre-tnl-tso ipip-tnl-tso geneve-tnl-tso multi-segs mbuf-fast-free tx offload active: udp-cksum tcp-cksum multi-segs rss avail: ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp ipv4-other ipv4 ipv6-frag ipv6-tcp ipv6-udp ipv6-sctp ipv6-other ipv6 rss active: none tx burst function: iavf_xmit_pkts rx burst function: iavf_recv_scattered_pkts_vec_avx2 The VPP config is (there is a veth-pair configured on the host): create host-interface name Vpp2Host set interface state host-Vpp2Host up ip table add 4093 create sub-interfaces host-Vpp2Host 4093 set interface state host-Vpp2Host.4093 up set interface ip table host-Vpp2Host.4093 4093 set interface ip address host-Vpp2Host.4093 198.19.255.249/29 set interface state NCIC-1-v1 up ip table add 1 create sub-interfaces NCIC-1-v1 1 set interface state NCIC-1-v1.1 up set interface ip table NCIC-1-v1.1 1 set interface ip address NCIC-1-v1.1 10.10.203.3/29 ip route add 198.19.255.248/29 table 1 via 198.19.255.249 next-hop-table 4093 When a packet is received (curl -k -vv https://198.19.255.253:8443/... ) we see the following trace on dpdk-input: NCIC-1-v1 rx queue 0 buffer 0x14296: current data 0, length 78, buffer-pool 0, ref-count 1, totlen-nifb 0, trace handle 0x1000016 ext-hdr-valid l4-cksum-computed l4-cksum-correct PKT MBUF: port 2, nb_segs 1, pkt_len 78 buf_len 2176, data_len 78, ol_flags 0x180, data_off 128, phys_addr 0x50a600 packet_type 0x191 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0 rss 0x0 fdir.hi 0x0 fdir.lo 0x0 Packet Offload Flags PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid Packet Types RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without extension headers RTE_PTYPE_L4_TCP (0x0100) TCP packet IP4: 86:ca:f3:a1:20:fc -> 1e:a0:ab:00:2a:ea 802.1q vlan 1 TCP: 172.17.41.8 -> 198.19.255.253 tos 0x00, ttl 64, length 60, checksum 0x7bc3 dscp CS0 ecn NON_ECN fragment id 0x23ce, flags DONT_FRAGMENT TCP: 41834 -> 8443 seq. 0xbd8844b4 ack 0x00000000 flags 0x02 SYN, tcp header: 40 bytes window 29200, checksum 0xa704 18:41:55:850222: ethernet-input frame: flags 0x3, hw-if-index 3, sw-if-index 3 IP4: 86:ca:f3:a1:20:fc -> 1e:a0:ab:00:2a:ea 802.1q vlan 1 18:41:55:850224: ip4-input TCP: 172.17.41.8 -> 198.19.255.253 tos 0x00, ttl 64, length 60, checksum 0x7bc3 dscp CS0 ecn NON_ECN fragment id 0x23ce, flags DONT_FRAGMENT TCP: 41834 -> 8443 seq. 0xbd8844b4 ack 0x00000000 flags 0x02 SYN, tcp header: 40 bytes window 29200, checksum 0xa704 18:41:55:850225: ip4-lookup fib 4 dpo-idx 57 flow hash: 0x00000000 TCP: 172.17.41.8 -> 198.19.255.253 tos 0x00, ttl 64, length 60, checksum 0x7bc3 dscp CS0 ecn NON_ECN fragment id 0x23ce, flags DONT_FRAGMENT TCP: 41834 -> 8443 seq. 0xbd8844b4 ack 0x00000000 flags 0x02 SYN, tcp header: 40 bytes window 29200, checksum 0xa704 18:41:55:850226: ip4-load-balance fib 4 dpo-idx 18 flow hash: 0x00000000 TCP: 172.17.41.8 -> 198.19.255.253 tos 0x00, ttl 64, length 60, checksum 0x7bc3 dscp CS0 ecn NON_ECN fragment id 0x23ce, flags DONT_FRAGMENT TCP: 41834 -> 8443 seq. 0xbd8844b4 ack 0x00000000 flags 0x02 SYN, tcp header: 40 bytes window 29200, checksum 0xa704 18:41:55:850228: ip4-local TCP: 172.17.41.8 -> 198.19.255.253 tos 0x00, ttl 64, length 60, checksum 0x7bc3 dscp CS0 ecn NON_ECN fragment id 0x23ce, flags DONT_FRAGMENT TCP: 41834 -> 8443 seq. 0xbd8844b4 ack 0x00000000 flags 0x02 SYN, tcp header: 40 bytes window 29200, checksum 0xa704 18:41:55:850230: ip4-punt TCP: 172.17.41.8 -> 198.19.255.253 tos 0x00, ttl 64, length 60, checksum 0x7bc3 dscp CS0 ecn NON_ECN fragment id 0x23ce, flags DONT_FRAGMENT TCP: 41834 -> 8443 seq. 0xbd8844b4 ack 0x00000000 flags 0x02 SYN, tcp header: 40 bytes window 29200, checksum 0xa704 18:41:55:850231: error-punt rx:NCIC-1-v1.1 18:41:55:850232: punt ip4-local: unknown ip protocol And the following is the relevant part in the FIB table: vpp# show ip fib table 1 ipv4-VRF:1, fib_index:4, flow hash:[src dst sport dport proto ] epoch:0 flags:none locks:[API:1, CLI:2, adjacency:1, recursive-resolution:1, ] : 198.19.255.248/29 unicast-ip4-chain [@0]: dpo-load-balance: [proto:ip4 index:67 buckets:1 uRPF:75 to:[1447:116264]] [0] [@11]: dpo-load-balance: [proto:ip4 index:57 buckets:1 uRPF:65 to:[6:576] via:[1447:116264]] [0] [@2]: dpo-receive: 198.19.255.249 on host-Vpp2Host.4093 The uRPF seems to be empty: vpp# show fib uRPF 65@uPRF-list:65 len:0 itfs:[] A ping was working fine but the curl command failed. Is there some additional configuration needed to allow ports via 'next-hop-table' or is this a bug in VPP? Any hint on how to solve this is appreciated. Thank you and best regards, Mechthild Buescher
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19660): https://lists.fd.io/g/vpp-dev/message/19660 Mute This Topic: https://lists.fd.io/mt/83895986/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-