Hi!

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.

Thanks,
Karthik

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
company.

Reply via email to