[dpdk-users] Sending packets without memory freeing

Wiles, Keith keith.wiles at intel.com
Wed Oct 28 16:00:20 CET 2015


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




More information about the users mailing list