Jamal Hadi Salim <j...@mojatatu.com> wrote: > BTW, returning NET_XMIT_CN could be confusing to tcp; > it does not mean that the packet that we are getting return > code for was dropped; it could mean _another_ packet in > the queue was dropped.
Yes, but we currently conceal NET_XMIT_CN from upper layer (tcp) via the net_xmit_* macros: #define net_xmit_eval(e) ((e) == NET_XMIT_CN ? 0 : (e)) #define net_xmit_errno(e) ((e) != NET_XMIT_CN ? -ENOBUFS : 0) Might be worth changing this so tcp reduces cwnd in _CN case too.