In linux kernel, why doesn't tcp_transmit_skb delete the skbuff in the write queue whereas udp_send_skb does
Hello,
I'm trying to implement a new protocol on top of UDP in the linux kernel. I need to implement flow control for this protocol but when I use the function udp_send_skb(), the transmitted skbuff gets removed from the write queue.
How does TCP manage to send an skbuff without removing it from the queue? I think the relevant tcp function is tcp_transmit_skb().
Once I understand this behaviour in TCP, I can do that in UDP. Or maybe someone can point out what to change in udp_send_skb (or in the functions called by it) to ensure that the skbuff is not deleted.
|