>From the trace output, it looks like VPP thinks 198.19.255.253 is one of its 
>interface address, and hence try to deliver it locally. As there is no 
>configured listener for TCP packets, it default to punting, and as there is no 
>punt rule it drops.

Can you share the output of 'show int addr' and 'sh ip fib 198.19.255.253'?

Best
ben

> -----Original Message-----
> From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Mechthild
> Buescher via lists.fd.io
> Sent: mercredi 30 juin 2021 18:06
> To: vpp-dev@lists.fd.io
> Subject: [vpp-dev] next-hop-table between two FIB tables results in punt
> and 'unknown ip protocol'
> 
> 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 (#19661): https://lists.fd.io/g/vpp-dev/message/19661
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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to