Eric,
On Tuesday 13 September 2011 wrote Eric Dumazet:
I suggest you read dev_queue_xmit_nit() : Every xmit packet can be
cloned right here.
By the time tcp_retransmit_skb() is called, cloned skb might still be
in a AF_PACKET queue (or even a device TX queue)
Thanks for the clear answer.
So, basically every call to tcp_retransmit_skb on an skb that is also still
hold in an AF_PACKET queue will end up in pskb_copy, because:
1. it has been cloned previously in tcp_transmit_skb()
2. The data_ref > 1 because it's clone is still in an AF_PACKET queue.
Please correct me, if I'm wrong.
Christoph
--
Christoph Paasch
PhD Student
IP Networking Lab --- http://inl.info.ucl.ac.be
MultiPath TCP in the Linux Kernel --- http://inl.info.ucl.ac.be/mptcp
Université Catholique de Louvain
www.rollerbulls.be
--