yamt opened a new pull request #4142:
URL: https://github.com/apache/incubator-nuttx/pull/4142


   ## Summary
   
   Consider a bi-directional TCP connection:
   
   1. we use all IOBs for tx queue
   2. we advertize zero recv window because we have no free IOBs
   3. if the peer tcp does the same thing,
      both sides advertize zero window and can not drain the tx queue.
   
   For a similar stall to happen, the peer doesn't need to be
   a naive tcp implementation like nuttx. A naive application blocking
   on send() without draining its read buffer is enough.
   (Probably such an application should be fixed to drain rx even
   when tx is full. However, it's another story.)
   
   This commit avoids the situation by prevent tx from grabbing
   the all IOBs in the first place. (assuming CONFIG_IOB_THROTTLE > 0)
   
   
   ## Impact
   
   tcp
   
   ## Testing
   
   sim/vpnkit against a linux app
   (i often see the symptom described above with this setup.
   but i haven't investigated the linux app is a "naive" app mentioned above.)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to