Hi Vijay, That’s probably because packets are hitting an actual error and it seems the listen node is not reporting anything but syns received. Here’s a patch that might help [1]. It might not cherry-pick cleanly on 21.06.
Regards, Florin [1] https://gerrit.fd.io/r/c/vpp/+/35654 > On Mar 15, 2022, at 7:54 PM, Vijay Kumar <vjkumar2...@gmail.com> wrote: > > Hi Florin, > > I have the output of show node counters (show errors) taken on both 20.05 and > 21.06 vpp. In 21.06 I don't see any counters in tcp4-listen or tcp4-output > etc. > > Please let me know why SYN rcvd counter itself is not incremented but in the > earlier reply I already pasted the show trace ouput where we saw the SYN pkt > was landed on tcp4-litsen node. > > VPP 20.05 > =========== > pp# show node counters > Count Node Reason > 3 memif-input not ip packet > 10259 an_ppe_wfectrl wfectrl packets received > 10259 an_ppe_wfectrl wfectrl replies sent > 1 an_ppe_wfectrl wfectrl packet processing > failed > 8123 an_ppe_wfectrl session stat request > received > 1 an_ppe_wfectrl service construct config > request received > 1 an_ppe_wfectrl service construct config > request success > 1 an_ppe_wfectrl service config request > received > 1 an_ppe_wfectrl service config request > success > 1686 an_ppe_wfectrl dpi stats request received > 1686 an_ppe_wfectrl dpi stats request success > 70 an_ppe_wfectrl nat stats request received > 70 an_ppe_wfectrl nat stats request success > 70 an_ppe_wfectrl vpp stats request received > 70 an_ppe_wfectrl vpp stats request success > 1 an_ppe_wfectrl udp tunnel resource block > add request received > 1 an_ppe_wfectrl udp tunnel resource block > add request success > 1 an_ppe_wfectrl l3rm resource block update > request received > 1 an_ppe_wfectrl l3rm resource block update > request success > 1 an_ppe_wfectrl ue registration request > received > 17 an_ppe_wfectrl ike msg received from ikemgr > 17 an_ppe_wfectrl ike msg send to network > success > 3 an_ppe_wfectrl ipsec sa install msg > received from ikemgr > 3 an_ppe_wfectrl ipsec sa install msg > processed successfully > 1 an_ppe_vppctrl_input Success in insert in > ueidentifier > 1 an_ppe_vppctrl_input Success in insert in > uecontext > 2 an_ppe_vppctrl_input Downlink message sent to UE > successfully > 1 an_ppe_vppctrl_input TCP ESTABLISHMENT message > received > 1 an_ppe_vppctrl_input UPLINK NAS message received > 1 an_ppe_vppctrl_input NAS TCP CLOSE message > received > 7 an_ppe_router_input packets received in rtr > 7 an_ppe_router_input packets dropped to host. no > tacptcp session found > 17 an-ppe-isakmp4-output Total IKEV4 packets > dispatched to network > 17 an-ppe-isakmpmgr-input packets processed by > isakmpmgr input plugin > 17 an-ppe-isakmpmgr-input Received IKE packets > 17 an-ppe-isakmpmgr-input Successfully sent ike > message to Session Manager > 5 an-ppe-isakmpmgr-input Received ike exchange AUTH > packet > 4 an-ppe-isakmpmgr-input Received ike exchange > CREATE CHILD SA packet > 1 an-ppe-isakmpmgr-input Received ike exchange SA > INIT packet > 7 an-ppe-isakmpmgr-input Received ike exchange > INFORMATIONAL packet > 5 arp-reply ARP replies sent > 4 session-queue Packets transmitted > 17 ip4-udp-lookup No error > 1 tcp4-listen SYNs received > 2 tcp4-rcv-process Pure ACKs received > 1 tcp4-established Packets pushed into rx fifo > 2 tcp4-established Pure ACKs received > 1 tcp4-established FINs received > 5 tcp4-output Packets sent > 7 esp4-decrypt-tun ESP pkts received > 5 esp4-encrypt-tun ESP pkts received > 5 esp4-encrypt-tun total control pkts received > 7 ipsec4-tun-input good packets received > 2 ip4-local unknown ip protocol > 5 ethernet-input unknown vlan > vpp# > vpp# > > > > > > VPP 21.06 output > =============== > vpp# > vpp# show version > vpp v21.06.0-3~g2a4af2b5d-dirty built by an-vijay_kumar on 500aaad2d090 at > 2022-03-15T01:16:27 > vpp# > vpp# > vpp# show node counters > Count Node Reason > Severity > 1 null-node blackholed > packets error > 6690 an_ppe_wfectrl wfectrl packets > received error > 6690 an_ppe_wfectrl wfectrl > replies sent error > 1 an_ppe_wfectrl wfectrl packet > processing failed error > 5329 an_ppe_wfectrl session stat > request received error > 1 an_ppe_wfectrl service construct config > request received error > 1 an_ppe_wfectrl service construct config > request success error > 1 an_ppe_wfectrl service config > request received error > 1 an_ppe_wfectrl service config > request success error > 1068 an_ppe_wfectrl dpi stats request > received error > 1068 an_ppe_wfectrl dpi stats request > success error > 44 an_ppe_wfectrl nat stats request > received error > 44 an_ppe_wfectrl nat stats request > success error > 44 an_ppe_wfectrl vpp stats request > received error > 44 an_ppe_wfectrl vpp stats request > success error > 1 an_ppe_wfectrl udp tunnel resource block > add request received error > 1 an_ppe_wfectrl udp tunnel resource block > add request success error > 1 an_ppe_wfectrl l3rm resource block update > request received error > 1 an_ppe_wfectrl l3rm resource block > update request success error > 1 an_ppe_wfectrl ue registration > request received error > 1 an_ppe_wfectrl ue deregistration > request received error > 14 an_ppe_wfectrl ike msg received > from ikemgr error > 14 an_ppe_wfectrl ike msg send to > network success error > 3 an_ppe_wfectrl ipsec sa install msg > received from ikemgr error > 3 an_ppe_wfectrl ipsec sa delete msg > received from ikemgr error > 3 an_ppe_wfectrl ipsec sa install msg > processed successfully error > 3 an_ppe_wfectrl ipsec sa delete msg > processed successfully error > 1 an_ppe_vppctrl_input Success in delete in > ueidentifier error > 1 an_ppe_vppctrl_input Success in insert in > ueidentifier error > 1 an_ppe_vppctrl_input Success in insert > in uecontext error > 1 an_ppe_vppctrl_input Success in delete > in uecontext error > 5 an_ppe_router_input packets received > in rtr error > 5 an_ppe_router_input packets dropped to host. no > tacptcp session found error > 14 an-ppe-isakmp4-output Total IKEV4 packets > dispatched to network error > 14 an-ppe-isakmpmgr-input packets processed by > isakmpmgr input plugin error > 14 an-ppe-isakmpmgr-input Received IKE > packets error > 14 an-ppe-isakmpmgr-input Successfully sent ike > message to Session Manager error > 5 an-ppe-isakmpmgr-input Received ike exchange > AUTH packet error > 4 an-ppe-isakmpmgr-input Received ike exchange > CREATE CHILD SA packet error > 1 an-ppe-isakmpmgr-input Received ike exchange > SA INIT packet error > 4 an-ppe-isakmpmgr-input Received ike exchange > INFORMATIONAL packet error > 3 arp-reply ARP replies > sent error > 14 ip4-udp-lookup No error > error > 5 esp4-decrypt-tun ESP pkts > received error > 5 ipsec4-tun-input good packets > received error > 1 ip4-input ip4 ttl <= > 1 error > 1 ip4-icmp-error hop limit exceeded > response sent error > 27628 ethernet-input unknown > vlan error > vpp# > vpp# > > > > > On Wed, Mar 16, 2022 at 6:52 AM Florin Coras <fcoras.li...@gmail.com > <mailto:fcoras.li...@gmail.com>> wrote: > Hi Vijay, > > You won’t see the syn/syn-acks in traces because of the way they are > generated. Nonetheless, you can verify that the syns were received with “show > error” and check that the syn-acks were actually generated with a pcap trace > rxtx <output interface> > > Previously tracing worked because buffers were re-used and incoming packets > were directly sent to output. More recently we’ve started dispatching > syn-acks through the session layer in order to minimize size of tx bursts per > dispatch. > > Regards, > Florin > >> On Mar 15, 2022, at 6:08 PM, Vijay Kumar <vjkumar2...@gmail.com >> <mailto:vjkumar2...@gmail.com>> wrote: >> >> Hi Florin, >> >> Thanks for the quick response. >> >> It means it is expected to see the SYN pkts getting dropped after it is >> terminated but I was not able to see any SYN-ACK going out of VPP. >> >> In both, "show trace" cmd output and also the pcap taken at dspatch graph >> node level, I was not able to see the SYN-ACK going out. The route to the >> SYN-ACK destination (which is the original source that started SYN) is also >> present in the ip fib output. The configuration is the same that was working >> fine for me in vp 20.05. >> >> Is there anything that I can look at for the SYN-ACK not sending issue? >> >> >> >> On Wed, 16 Mar 2022, 00:40 Florin Coras, <fcoras.li...@gmail.com >> <mailto:fcoras.li...@gmail.com>> wrote: >> Hi Vijay, >> >> I see an_ppe_router_input forwards syns to tcp-input and those packets are >> delivered to tcp-listen, i.e., you’ve created a listener that’s matched by >> the incoming traffic. >> >> The thing to keep in mind is that tcp terminates incoming flows and it does >> not reuse buffers. That is, the syn hits the listen node and a syn-ack is >> programmed for this new connection that still needs to complete the >> handshake. The original syn packet is discarded and therefore you see it as >> a drop. >> >> Regards, >> Florin >> >>> On Mar 15, 2022, at 3:50 AM, Vijay Kumar <vjkumar2...@gmail.com >>> <mailto:vjkumar2...@gmail.com>> wrote: >>> >>> The is the output of show trace and show interface >>> ============================================ >>> >>> Packet 36 >>> >>> 00:03:26:875694: dpdk-input >>> VirtualFuncEthernet0/7/0 rx queue 0 >>> buffer 0x4c1b21: current data 0, length 138, buffer-pool 0, ref-count 1, >>> totlen-nifb 0, trace handle 0x1000023 >>> ext-hdr-valid >>> l4-cksum-computed l4-cksum-correct >>> PKT MBUF: port 0, nb_segs 1, pkt_len 138 >>> buf_len 2176, data_len 138, ol_flags 0x182, data_off 128, phys_addr >>> 0xc266c8c0 >>> packet_type 0x691 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0 >>> rss 0xde0c21da fdir.hi 0x0 fdir.lo 0xde0c21da >>> Packet Offload Flags >>> PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result >>> 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_NONFRAG (0x0600) Non-fragmented IP packet >>> IP4: fa:16:3e:4b:6b:42 -> fa:16:3e:97:04:19 802.1q vlan 1556 >>> IPSEC_ESP: 20.20.99.215 -> 80.80.80.80 >>> tos 0x00, ttl 64, length 120, checksum 0x21c9 dscp CS0 ecn NON_ECN >>> fragment id 0x0000, flags DONT_FRAGMENT >>> 00:03:26:875702: ethernet-input >>> frame: flags 0x3, hw-if-index 3, sw-if-index 3 >>> IP4: fa:16:3e:4b:6b:42 -> fa:16:3e:97:04:19 802.1q vlan 1556 >>> 00:03:26:875708: ip4-input >>> IPSEC_ESP: 20.20.99.215 -> 80.80.80.80 >>> tos 0x00, ttl 64, length 120, checksum 0x21c9 dscp CS0 ecn NON_ECN >>> fragment id 0x0000, flags DONT_FRAGMENT >>> 00:03:26:875714: ip4-lookup >>> fib 2 dpo-idx 27 flow hash: 0x00000000 >>> IPSEC_ESP: 20.20.99.215 -> 80.80.80.80 >>> tos 0x00, ttl 64, length 120, checksum 0x21c9 dscp CS0 ecn NON_ECN >>> fragment id 0x0000, flags DONT_FRAGMENT >>> 00:03:26:875715: ip4-local >>> IPSEC_ESP: 20.20.99.215 -> 80.80.80.80 >>> tos 0x00, ttl 64, length 120, checksum 0x21c9 dscp CS0 ecn NON_ECN >>> fragment id 0x0000, flags DONT_FRAGMENT >>> 00:03:26:875717: ipsec4-tun-input >>> IPSec: remote:20.20.99.215 spi:4213 (0x00001075) sa:1 tun:0 seq 1 sa >>> -2029505104 >>> 00:03:26:875719: esp4-decrypt-tun >>> esp: crypto aes-cbc-256 integrity sha1-96 pkt-seq 1 sa-seq 1 sa-seq-hi 0 >>> 00:03:26:875801: ip4-input-no-checksum >>> TCP: 44.44.44.44 -> 30.30.30.30 >>> tos 0x00, ttl 64, length 60, checksum 0x3cfa dscp CS0 ecn NON_ECN >>> fragment id 0x692e, flags DONT_FRAGMENT >>> TCP: 45723 -> 1234 >>> seq. 0x119d35d0 ack 0x00000000 >>> flags 0x02 SYN, tcp header: 40 bytes >>> window 64240, checksum 0xd6be >>> 00:03:26:875803: ip4-lookup >>> fib 2 dpo-idx 25 flow hash: 0x00000000 >>> TCP: 44.44.44.44 -> 30.30.30.30 >>> tos 0x00, ttl 64, length 60, checksum 0x3cfa dscp CS0 ecn NON_ECN >>> fragment id 0x692e, flags DONT_FRAGMENT >>> TCP: 45723 -> 1234 >>> seq. 0x119d35d0 ack 0x00000000 >>> flags 0x02 SYN, tcp header: 40 bytes >>> window 64240, checksum 0xd6be >>> 00:03:26:875803: ip4-local >>> TCP: 44.44.44.44 -> 30.30.30.30 >>> tos 0x00, ttl 64, length 60, checksum 0x3cfa dscp CS0 ecn NON_ECN >>> fragment id 0x692e, flags DONT_FRAGMENT >>> TCP: 45723 -> 1234 >>> seq. 0x119d35d0 ack 0x00000000 >>> flags 0x02 SYN, tcp header: 40 bytes >>> window 64240, checksum 0xd6be >>> 00:03:26:875805: an_ppe_router_input >>> AN_PPE_ROUTER_INPUT: sw_if_index 1, next index 3 >>> >>> 00:03:26:875819: tcp4-input >>> [0:0][T] :::0->:::0 state CLOSED >>> TCP: 45723 -> 1234 >>> seq. 0x119d35d0 ack 0x00000000 >>> flags 0x02 SYN, tcp header: 40 bytes >>> window 64240, checksum 0xd6be >>> 00:03:26:875826: tcp4-listen >>> 1234 -> 45723 (LISTEN) >>> >>> >>> Interface details >>> ==================== >>> vpp# show interface >>> Name Idx State MTU (L3/IP4/IP6/MPLS) >>> Counter Count >>> VirtualFuncEthernet0/7/0 3 up 1500/0/0/0 rx >>> packets 3922 >>> rx >>> bytes 239610 >>> tx >>> packets 17 >>> tx >>> bytes 6704 >>> drops >>> 3914 >>> VirtualFuncEthernet0/7/0.1557 13 up 1500/0/0/0 >>> VirtualFuncEthernet0/7/0.1556 14 up 1500/0/0/0 rx >>> packets 22 >>> rx >>> bytes 5130 >>> tx >>> packets 17 >>> tx >>> bytes 6704 >>> drops >>> 14 >>> ip4 >>> 19 >>> VirtualFuncEthernet0/8/0 4 down 9000/0/0/0 >>> gre1 2 up 9000/0/0/0 >>> ipip0 1 up 9000/0/0/0 rx >>> packets 5 >>> rx >>> bytes 500 >>> ip4 >>> 5 >>> local0 0 down 0/0/0/0 >>> loop2 8 up 9000/0/0/0 >>> loop3 9 up 9000/0/0/0 >>> loop4 10 up 9000/0/0/0 >>> loop5 11 up 9000/0/0/0 >>> loop6 12 up 9000/0/0/0 >>> memif0/0 5 up 0/65535/0/0 rx >>> packets 1036 >>> rx >>> bytes 67766832 >>> tx >>> packets 1049 >>> tx >>> bytes 67822842 >>> drops >>> 2 >>> ip4 >>> 1036 >>> memif128/0 6 up 0/65535/0/0 >>> memif192/0 7 up 0/65535/0/0 >>> memif210/0 15 up 0/65535/0/0 >>> memif210/1 16 up 0/65535/0/0 >>> vpp# >>> vpp# >>> >>> On Tue, Mar 15, 2022 at 2:32 PM Vijay Kumar via lists.fd.io >>> <http://lists.fd.io/> <vjkumar2003=gmail....@lists.fd.io >>> <mailto:gmail....@lists.fd.io>> wrote: >>> Hi experts, >>> >>> I recently integrated vpp stack 21.06 and am running my NAS TCP protocol >>> test cases. The pcap dispatch trace that I captured shows the TCP SYN >>> packets are coming to tcp-input() and then to tcp-listen() but from here >>> pkts are dropped instead of going to tcp-output() graph nodes for sending >>> the SYN-ACK >>> >>> NOTE >>> ========= >>> The session layer is enabled and the TCP listen IP/port is also showing in >>> the session verbose command. >>> >>> The same test case used to work fine in the VPP 20.05. Am I missing >>> anything? >>> Let me know if there is anything I need to look at. >>> >>> vpp# show session verbose >>> Connection State >>> Rx-f Tx-f >>> [0:0][T] 30.30.30.30:1234->0.0.0.0:0 <http://0.0.0.0:0/> >>> LISTEN 0 0 >>> Thread 0: active sessions 1 >>> Thread 1: no sessions >>> >>> >>> >>> >>> >>> >> >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#21033): https://lists.fd.io/g/vpp-dev/message/21033 Mute This Topic: https://lists.fd.io/mt/89793823/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-