[dpdk-dev] Drop pkts whenever port link status changes

Karthikraj palanichamy karthikraj.palanichamy at veryxtech.com
Fri Jun 23 13:20:44 CEST 2017


I am using DPDK to develop a delay measurement application.

I put a timestamp in the packet and call rte_eth_tx_burst(). The 
receiving end would just loopback the packet.

Using the timestamp that I had put, and the current time, I am able to 
calculate the delay in the network.

But when the link goes down and up, I am observing huge delay.

This is because the packets which are placed in the ring just before the 
link got down, are transmitted once the link is up.
E.g. If it took 500ms between link down and up, I will get (current time 
- timestamp) as 500ms.

Do you have a solution to solve this? Is there any way we can instruct 
to drop the packets when link is down (or) cleanup the queue and start 
fresh when the link is up?

Note : I have  registered a link status callback function. 
(rte_eth_dev_callback_register(portid, RTE_ETH_EVENT_INTR_LSC, 
linkStatusCheck, NULL)).
So I can know the link status as earlier as possible and prevent doing 
rte_eth_tx_burst() if link is down.
But still in case of race scenarios, pkts placed in the ring before the 
link got down may get transmitted after the link gets up.


DISCLAIMER: Privileged and/or Confidential information may be
contained in this message. If you are not the addressee of this message,
you may not copy, use or deliver this message to anyone. In such
event,you should destroy the message and kindly notify the sender by
reply e-mail.
It is understood that opinions or conclusions that do not relate to the
official business of the company are neither given nor endorsed by the

More information about the dev mailing list