DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
@ 2019-11-18 14:29 Gokul Bargaje
  2019-11-22 14:48 ` Ferruh Yigit
  2019-11-25 10:56 ` [dpdk-users] " Archit Pandey
  0 siblings, 2 replies; 7+ messages in thread
From: Gokul Bargaje @ 2019-11-18 14:29 UTC (permalink / raw)
  To: dev, users

Hi,

The timestamp assigned to packet at the time of enqueue (value of timestamp
field in mbuf), is it in milliseconds or microseconds or in cpu cycles?

How this timestamp is calculated? Is it calculated using the *rte_cycles.h*?

Thanks in advance!
--Gokul

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
  2019-11-18 14:29 [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK? Gokul Bargaje
@ 2019-11-22 14:48 ` Ferruh Yigit
  2019-11-22 17:00   ` Gokul Bargaje
  2019-11-25 10:56 ` [dpdk-users] " Archit Pandey
  1 sibling, 1 reply; 7+ messages in thread
From: Ferruh Yigit @ 2019-11-22 14:48 UTC (permalink / raw)
  To: Gokul Bargaje, dev, users

On 11/18/2019 2:29 PM, Gokul Bargaje wrote:
> Hi,
> 
> The timestamp assigned to packet at the time of enqueue (value of timestamp
> field in mbuf), is it in milliseconds or microseconds or in cpu cycles?

The unit is not defined [1]. 'rte_eth_read_clock()' was added [2] to help
converting it to time when it is clock counter.

[1]
918ae9dc775e ("mbuf: add a timestamp field")

[2]
5e741377657c ("ethdev: add API to read device clock")

> 
> How this timestamp is calculated? Is it calculated using the *rte_cycles.h*?
> 






^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
  2019-11-22 14:48 ` Ferruh Yigit
@ 2019-11-22 17:00   ` Gokul Bargaje
  2019-11-22 17:05     ` Stephen Hemminger
                       ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Gokul Bargaje @ 2019-11-22 17:00 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev, users

Thank you for the clarification. But I am still unable to understand how
exactly timestamp is calculated before assigning to a timestamp field.
Could you please tell me the steps to calculate the timestamp in DPDK?

I have to implement the PIE AQM algorithm in DPDK and for that, I need to
calculate the total time spent by the packet waiting in queue (i.e. the
difference between enqueue time and dequeue time).

Thanks,
Gokul

On Fri, Nov 22, 2019 at 8:18 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:

> On 11/18/2019 2:29 PM, Gokul Bargaje wrote:
> > Hi,
> >
> > The timestamp assigned to packet at the time of enqueue (value of
> timestamp
> > field in mbuf), is it in milliseconds or microseconds or in cpu cycles?
>
> The unit is not defined [1]. 'rte_eth_read_clock()' was added [2] to help
> converting it to time when it is clock counter.
>
> [1]
> 918ae9dc775e ("mbuf: add a timestamp field")
>
> [2]
> 5e741377657c ("ethdev: add API to read device clock")
>
> >
> > How this timestamp is calculated? Is it calculated using the
> *rte_cycles.h*?
> >
>
>
>
>
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
  2019-11-22 17:00   ` Gokul Bargaje
@ 2019-11-22 17:05     ` Stephen Hemminger
  2019-11-27 14:49     ` Tom Barbette
  2019-11-28  8:28     ` [dpdk-users] [dpdk-dev] " Harman Kalra
  2 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2019-11-22 17:05 UTC (permalink / raw)
  To: Gokul Bargaje; +Cc: Ferruh Yigit, dev, users

On Fri, 22 Nov 2019 22:30:11 +0530
Gokul Bargaje <gokulbargaje.182009@nitk.edu.in> wrote:

> Thank you for the clarification. But I am still unable to understand how
> exactly timestamp is calculated before assigning to a timestamp field.
> Could you please tell me the steps to calculate the timestamp in DPDK?
> 
> I have to implement the PIE AQM algorithm in DPDK and for that, I need to
> calculate the total time spent by the packet waiting in queue (i.e. the
> difference between enqueue time and dequeue time).

The use of timestamp field is very spotty.
Only mellanox implements it.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
  2019-11-18 14:29 [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK? Gokul Bargaje
  2019-11-22 14:48 ` Ferruh Yigit
@ 2019-11-25 10:56 ` Archit Pandey
  1 sibling, 0 replies; 7+ messages in thread
From: Archit Pandey @ 2019-11-25 10:56 UTC (permalink / raw)
  To: Gokul Bargaje, dev, users

 From lib/librte_mbuf/rte_mbuf_core.h:

|605 /** Valid if PKT_RX_TIMESTAMP is set. The unit and time reference 
606 * are not normalized but are always the same for a given port. 607 * 
Some devices allow to query rte_eth_read_clock that will return the 608 
* current device timestamp. 609 */ 610 uint64_t timestamp;|

|I believe the timestamp in mbuf is set by the NIC. If it isn't, 
librte_eventdev sets it using rte_get_tsc_cycle(). From 
/lib/librte_eventdev/rte_event_eth_rx_adapter.h |

22 * The adapter uses a EAL service core function for SW based packet transfer
23 * and uses the eventdev PMD functions to configure HW based packet transfer
24 * between the ethernet device and the event device. For SW based packet
25 * transfer, if the mbuf does not have a timestamp set, the adapter adds a
26 * timestamp to the mbuf using rte_get_tsc_cycles(), this provides a more
27 * accurate timestamp as compared to if the application were to set the time
28 * stamp since it avoids event device schedule latency.

Hope that helps!

On 11/18/2019 7:59 PM, Gokul Bargaje wrote:
> Hi,
>
> The timestamp assigned to packet at the time of enqueue (value of timestamp
> field in mbuf), is it in milliseconds or microseconds or in cpu cycles?
>
> How this timestamp is calculated? Is it calculated using the *rte_cycles.h*?
>
> Thanks in advance!
> --Gokul

-- 
Archit Pandey
Senior Year Undergraduate Student
Department of Computer Science and Engineering
National Institute of Technology Karnataka
Surathkal, India


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
  2019-11-22 17:00   ` Gokul Bargaje
  2019-11-22 17:05     ` Stephen Hemminger
@ 2019-11-27 14:49     ` Tom Barbette
  2019-11-28  8:28     ` [dpdk-users] [dpdk-dev] " Harman Kalra
  2 siblings, 0 replies; 7+ messages in thread
From: Tom Barbette @ 2019-11-27 14:49 UTC (permalink / raw)
  To: Gokul Bargaje, Ferruh Yigit; +Cc: dev, users

Hi Gokul,

As Setphen said, only Mellanox sets the hardware timestamp.

If you have a Mellanox card, you can actually follow the example given 
in the rxtx_callback sample application that precisely gives the number 
of CPU cycles a packet spent into the queue.


Tom

Le 22/11/2019 à 18:00, Gokul Bargaje a écrit :
> Thank you for the clarification. But I am still unable to understand how
> exactly timestamp is calculated before assigning to a timestamp field.
> Could you please tell me the steps to calculate the timestamp in DPDK?
> 
> I have to implement the PIE AQM algorithm in DPDK and for that, I need to
> calculate the total time spent by the packet waiting in queue (i.e. the
> difference between enqueue time and dequeue time).
> 
> Thanks,
> Gokul
> 
> On Fri, Nov 22, 2019 at 8:18 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> 
>> On 11/18/2019 2:29 PM, Gokul Bargaje wrote:
>>> Hi,
>>>
>>> The timestamp assigned to packet at the time of enqueue (value of
>> timestamp
>>> field in mbuf), is it in milliseconds or microseconds or in cpu cycles?
>>
>> The unit is not defined [1]. 'rte_eth_read_clock()' was added [2] to help
>> converting it to time when it is clock counter.
>>
>> [1]
>> 918ae9dc775e ("mbuf: add a timestamp field")
>>
>> [2]
>> 5e741377657c ("ethdev: add API to read device clock")
>>
>>>
>>> How this timestamp is calculated? Is it calculated using the
>> *rte_cycles.h*?
>>>
>>
>>
>>
>>
>>
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-users] [dpdk-dev] What is the 'unit of timestamp' assigned to mbuf packet in DPDK?
  2019-11-22 17:00   ` Gokul Bargaje
  2019-11-22 17:05     ` Stephen Hemminger
  2019-11-27 14:49     ` Tom Barbette
@ 2019-11-28  8:28     ` Harman Kalra
  2 siblings, 0 replies; 7+ messages in thread
From: Harman Kalra @ 2019-11-28  8:28 UTC (permalink / raw)
  To: Gokul Bargaje; +Cc: Ferruh Yigit, dev, users

On Fri, Nov 22, 2019 at 10:30:11PM +0530, Gokul Bargaje wrote:
> Thank you for the clarification. But I am still unable to understand how
> exactly timestamp is calculated before assigning to a timestamp field.
> Could you please tell me the steps to calculate the timestamp in DPDK?
> 
> I have to implement the PIE AQM algorithm in DPDK and for that, I need to
> calculate the total time spent by the packet waiting in queue (i.e. the
> difference between enqueue time and dequeue time).
> 
> Thanks,
> Gokul

Hi Gokul

octeontx2 also suports hardware timestamping, as soon as packet enter
the NIC queue, MAC writes the timestamp value to a memory location
(which is later read in mbuf->timestamp). Later using
'rte_eth_read_clock()' one can read the timestamp clock. Hence
"mbuf->timestamp - rte_eth_read_clock()" gives the time spent by packet
when it entered the queue to that point. As everybody suggested you can
refer rxtx_callback for more clarity. 
Octeontx2 driver also has 'rte_eth_read_clock()' eth op implemented

Thanks
Harman

> 
> On Fri, Nov 22, 2019 at 8:18 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> 
> > On 11/18/2019 2:29 PM, Gokul Bargaje wrote:
> > > Hi,
> > >
> > > The timestamp assigned to packet at the time of enqueue (value of
> > timestamp
> > > field in mbuf), is it in milliseconds or microseconds or in cpu cycles?
> >
> > The unit is not defined [1]. 'rte_eth_read_clock()' was added [2] to help
> > converting it to time when it is clock counter.
> >
> > [1]
> > 918ae9dc775e ("mbuf: add a timestamp field")
> >
> > [2]
> > 5e741377657c ("ethdev: add API to read device clock")
> >
> > >
> > > How this timestamp is calculated? Is it calculated using the
> > *rte_cycles.h*?
> > >
> >
> >
> >
> >
> >
> >

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-11-28  8:28 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-18 14:29 [dpdk-users] What is the 'unit of timestamp' assigned to mbuf packet in DPDK? Gokul Bargaje
2019-11-22 14:48 ` Ferruh Yigit
2019-11-22 17:00   ` Gokul Bargaje
2019-11-22 17:05     ` Stephen Hemminger
2019-11-27 14:49     ` Tom Barbette
2019-11-28  8:28     ` [dpdk-users] [dpdk-dev] " Harman Kalra
2019-11-25 10:56 ` [dpdk-users] " Archit Pandey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).