Hello, all

I am now debugging an issue observed in echo server/client. If nclients == 
small number, then everything goes smoothly, but if nclients is big, such as 
500, 1000, echo client will hang without printing final report, and debug shows 
that echo client is waiting for response from server as it is expecting server 
to send bytes_to_receive to client.  The problems occurs in both TCP and TLS 
protocol.

if (sp->bytes_to_receive > 0)
        {
          delete_session = 0;
        }

My assumption is that due to the big traffic, some packet is missing and 
re-transmission does not work well. Below the info for normal case, where 
nclients == 100.


DBGvpp# show error

   Count                    Node                  Reason

       600              session-queue             Packets transmitted

       100            tcp4-rcv-process            Pure ACKs received

       100            tcp4-rcv-process            FINs received

       600            tcp4-established            Packets pushed into rx fifo

       600            tcp4-established            Pure ACKs received

        32                ip4-glean               address overflow drops

         1                ip4-glean               ARP requests sent

         1                arp-input               ARP request IP4 source 
address learned





Server:

DBGvpp# show error

   Count                    Node                  Reason

       600              session-queue             Packets transmitted

       100               tcp4-listen              SYNs received

       200            tcp4-rcv-process            Pure ACKs received

       600            tcp4-established            Packets pushed into rx fifo

       600            tcp4-established            Pure ACKs received

       100            tcp4-established            FINs received

         1                arp-input               ARP replies sent


Below is the info when nclients == 500.


Client:



DBGvpp# show error

   Count                    Node                  Reason

      3104              session-queue             Packets transmitted

       498            tcp4-rcv-process            Pure ACKs received

       498            tcp4-rcv-process            FINs received

      2998            tcp4-established            Packets pushed into rx fifo

      2892            tcp4-established            Pure ACKs received

       106            tcp4-established            Duplicate ACK



Server:

DBGvpp# show error

   Count                    Node                  Reason

      2998              session-queue             Packets transmitted

       500               tcp4-listen              SYNs received

       998            tcp4-rcv-process            Pure ACKs received

      2996            tcp4-established            Packets pushed into rx fifo/

         2            tcp4-established            OOO packets pushed into rx 
fifo

      2476            tcp4-established            Pure ACKs received

       498            tcp4-established            FINs received

We can see that in clients side, packets transmission is 3104, which is bigger 
than normal case 600*5, but in the server side, the recived packet is only 
2996, which is below 3000, which causes only 498 FIN is sent from client, so 2 
live session makes "test echo" hang until timeout.


Thanks
Ping

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10233): https://lists.fd.io/g/vpp-dev/message/10233
Mute This Topic: https://lists.fd.io/mt/24876529/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