On 10/28/15, 9:52 AM, "users on behalf of ????????? ????????" <users-bounces at dpdk.org on behalf of cidjey1991 at mail.ru> wrote:
> Hello, I'm developing a TCP reassembler of some sorts based on DPDK. > Currently I'm working on TCP segments retransmission (because of time out). > >To do so, I've developed the next idea: how about to keep every outgoing >packet in a queue and remove them from there when the corresponding ACK has >arrived. So the plan is simple: build a packet, push it into the queue, send >it, wait for the ACK, remove the packet from the queue. If the retransmission >time is out, retransmit the packet. > >But this simple plan seems to be impractible, for DPDK frees mbufs when >sending packets. So I really have to just copy all the packets before sending >them, which is not a good idea, of course. If you increment the refcnt then you can hold on to the mbuf after the driver frees the packet. > >So I've thought that it could be nice to have an opportunity sometimes to send >packets without actually freeing mbufs so that we could retransmit them if we >have such a need. > >P.S. Right now my actual plan is to go to the depths of DPDK, find the sending >packets function and modify it a bit so it doesn't free the memory. But I have >a suspision that it won't end well :) > >P.S.S. Or maybe I'm missing something and there's an opportunity to send >packets without freeing the memory after all? > > > ? Regards, ++Keith Wiles Intel Corporation
