Hi Florin,

That's fine.  You can submit the changes to the vpp latest branch while I
maintain the patch in my private branch





On Mon, 21 Mar 2022, 03:50 Florin Coras, <fcoras.li...@gmail.com> wrote:

> Hi Vijay,
>
> Glad it helped!
>
> The patch does not cleanly cherry-pick through gerrit and 21.06 is pretty
> old at this point, i.e., not sure if we’re planning any maintenance release
> at this point. Unfortunately that means your only options are either to
> switch to 22.02, I already cherry-picked the patch, or to maintain the fix
> in a private branch.
>
> Regards,
> Florin
>
> On Mar 20, 2022, at 4:27 AM, Vijay Kumar <vjkumar2...@gmail.com> wrote:
>
> Hi Florin,
>
> Thanks for the wonderful suggestion.
>
> Upon adding the below option the tcp_listen works fine. The syn-ack is
> being sent from vpp to peer and the TCP handshake is completing
> successfully.
>
> a->options[APP_OPTIONS_ADD_SEGMENT_SIZE] = segment_size;
>
> As you mentioned, earlier there was only one listener but now we added to
> more ALG applications that are also listening on TCP. Hence this
> option becomes mandatory for me.
>
> Florin, can u pls commit the code changes that you shared in this patch.
> The 21.06 code was buggy and it was not reporting any error in the
> tcp46_listen_inline() node.
>
> https://gerrit.fd.io/r/c/vpp/+/35654
>
>
> Thanks.
>
>
> On Thu, Mar 17, 2022 at 12:07 AM Florin Coras <fcoras.li...@gmail.com>
> wrote:
>
>> Hi Vijay,
>>
>> Yes, APP_OPTIONS_ADD_SEGMENT_SIZE will be needed if any listeners are
>> used. It was there before but was not needed if only one listener was
>> configured.
>>
>> Regards,
>> Florin
>>
>> On Mar 16, 2022, at 11:15 AM, Vijay Kumar <vjkumar2...@gmail.com> wrote:
>>
>> Hi Florin,
>>
>> My application code has not changed b/w 20.05 and 21.06. The below is the
>> code snippet of my application that binds the TCP  listen IP/Port
>> The option that you mentioned "*APP_OPTIONS_ADD_SEGMENT_SIZE*" is not
>> set in my application code but "*APP_OPTIONS_SEGMENT_SIZE*" is set.
>>
>> My application code pasted below worked fine in VPP 20.05 but not in 21.06
>> Is the missing option "*APP_OPTIONS_ADD_SEGMENT_SIZ*E" important to be
>> set in 21.06 VPP?
>>
>>
>> static int nas_server_attach (u32 *nasAppIndex)
>> {
>>     an_ppe_nas_main_t *pm = &an_ppe_nas_main;
>>     u64 options[APP_OPTIONS_N_OPTIONS];
>>     vnet_app_attach_args_t _a, *a = &_a;
>>     u32 segment_size = 512 << 20;
>>
>>     clib_memset (a, 0, sizeof (*a));
>>     clib_memset (options, 0, sizeof (options));
>>
>>     if (pm->private_segment_size)
>>         segment_size = pm->private_segment_size;
>>     a->name = format (0, "nas-tcp-server");
>>     a->api_client_index = APP_INVALID_INDEX;
>>     a->session_cb_vft = &nas_server_session_cb_vft;
>>     a->options = options;
>>     a->options[APP_OPTIONS_SEGMENT_SIZE] = segment_size;
>>     a->options[APP_OPTIONS_RX_FIFO_SIZE] = pm->fifo_size;
>>     a->options[APP_OPTIONS_TX_FIFO_SIZE] = pm->fifo_size;
>>     a->options[APP_OPTIONS_PRIVATE_SEGMENT_COUNT] =
>> pm->private_segment_count;
>>     a->options[APP_OPTIONS_PREALLOC_FIFO_PAIRS] =
>>         pm->prealloc_fifos ? pm->prealloc_fifos : 0;
>>
>>     a->options[APP_OPTIONS_FLAGS] = APP_OPTIONS_FLAGS_IS_BUILTIN;
>>
>>     if (vnet_application_attach (a))
>>     {
>>     NAS_DBG("Failed to attach ");
>>         return -1;
>>     }
>>     *nasAppIndex = a->app_index;
>>     pm->app_index = a->app_index;
>>
>>     vec_free (a->name);
>>     return 0;
>> }
>>
>>
>>
>> Regards,
>> Vijay
>>
>> On Wed, Mar 16, 2022 at 10:19 PM Florin Coras <fcoras.li...@gmail.com>
>> wrote:
>>
>>> Hi Vijay,
>>>
>>> That’s a sign that either fifo allocations failed (not enough memory in
>>> the fifo segment) or that the app refused the session
>>> (app_worker_accept_notify returns non zero).
>>>
>>> Here’s a guess, your app does not set APP_OPTIONS_ADD_SEGMENT_SIZE in
>>> the attach options passed to vnet_application_attach. Some vpp versions ago
>>> we switched to using the first fifo segment as connects segment and all
>>> listeners allocate their first segments based on size provided with this
>>> option. If not provided, listeners fail to allocate segments.
>>>
>>> Regards,
>>> Florin
>>>
>>> On Mar 16, 2022, at 3:49 AM, Vijay Kumar <vjkumar2...@gmail.com> wrote:
>>>
>>> Hi Florin,
>>>
>>> The patch helped me to find the exact point of failure in
>>> tcp46_listen_inline() graph node.
>>> When I tested again, I get the below error and it maps to this error
>>> code "TCP_ERROR_CREATE_SESSION_FAIL"
>>> This counter is incremented when the call to function
>>> session_stream_accept() returns failure.
>>>
>>> Is there any potential reason why allocation fails at this place?
>>>
>>>
>>> show errors output
>>> ===============
>>>         4             arp-reply                                 ARP
>>> replies sent                      error
>>>         14           ip4-udp-lookup                                  No
>>> error                          error
>>>          5            tcp4-listen                         Sessions
>>> couldn't be allocated               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
>>>       3346           ethernet-input
>>>  unknown vlan                        error
>>>
>>>
>>> On Wed, Mar 16, 2022 at 1:31 PM Vijay Kumar <vjkumar2...@gmail.com>
>>> wrote:
>>>
>>>> Hi Florin,
>>>>
>>>> Thanks for the clarification about the TCP changes b/w the 2 releases
>>>>
>>>> I will use your patch, hopefully I will catch the issue about where the
>>>> drops are. I will try to debug further.
>>>> I will revert back if required.
>>>>
>>>>
>>>> Regards.
>>>>
>>>> On Wed, Mar 16, 2022 at 11:12 AM Florin Coras <fcoras.li...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Vijay,
>>>>>
>>>>> On Mar 15, 2022, at 9:58 PM, Vijay Kumar <vjkumar2...@gmail.com>
>>>>> wrote:
>>>>>
>>>>> Hi florin,
>>>>>
>>>>> Thanks a lot for helping me out. I will try your patch and update you
>>>>> with the result.
>>>>>
>>>>>
>>>>> Thanks!
>>>>>
>>>>>
>>>>>
>>>>> A general observation
>>>>> ======================
>>>>> In my setup, I think the SYN pkt is dropped much before the SYNS_RCVD
>>>>> counter is incremented.
>>>>>
>>>>>
>>>>> That’s what I’d expect as well.
>>>>>
>>>>>
>>>>> I have seen a lot of changes b/w 20.05 and 21.06 code, like in the
>>>>> graph node tcp46_listen_inline() of VPP 20.05 the SYN  pkt trace function
>>>>> is called towards the end i.e. after calling tcp_send_synack() but in 
>>>>> 21.06
>>>>> code, the tcp46_listen_trace_frame() is called at the very beginning
>>>>> of tcp46_listen_inline() graph node.
>>>>>
>>>>> I think moving the pkt trace macro to the end of the function is good
>>>>> (placing it close to the line that calls tcp_send_synack), otherwise it 
>>>>> can
>>>>> mislead us and will not help debugging.
>>>>>
>>>>>
>>>>> Most of the changes were code refactoring/cleanup and buffer handling
>>>>> optimizations, not protocol related. TCP tracing, at least as it is now,
>>>>> doesn’t provide info about the errors hit, instead it reports the
>>>>> connections hit and the reporting of errors is done through node and
>>>>> session counters (see show session verbose 2). Obviously that didn’t work
>>>>> properly for the listen node.
>>>>>
>>>>> Regards,
>>>>> Florin
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Mar 16, 2022 at 10:22 AM Florin Coras <fcoras.li...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> 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>
>>>>>> 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>
>>>>>>> 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>
>>>>>>> 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>
>>>>>>>> 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
>>>>>>>> <vjkumar2003=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
>>>>>>>>>  LISTEN         0         0
>>>>>>>>> Thread 0: active sessions 1
>>>>>>>>> Thread 1: no sessions
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> 
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#21078): https://lists.fd.io/g/vpp-dev/message/21078
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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to