Re: [PATCH RFC V1 net-next 0/6] Time based packet transmission

From: Vinicius Costa Gomes
Date: Tue Dec 05 2017 - 16:22:14 EST


Hi David,

David Miller <davem@xxxxxxxxxxxxx> writes:

> From: Richard Cochran <rcochran@xxxxxxxxxxxxx>
> Date: Mon, 18 Sep 2017 09:41:15 +0200
>
>> - The driver does not handle out of order packets. If user space
>> sends a packet with an earlier Tx time, then the code should stop
>> the queue, reshuffle the descriptors accordingly, and then
>> restart the queue.
>
> The user should simply be not allowed to do this.
>
> Once the packet is in the device queue, that's it. You cannot insert
> a new packet to be transmitted before an already hw queued packet,
> period.
>
> Any out of order request should be rejected with an error.

Just to clarify, I agree that after after the packet is enqueued to the
HW, there's no going back, in another words, we must never enqueue
anything to the HW with a timestamp earlier than the last enqueued
packet.

But re-ordering packets at the Qdisc level is, I think, necessary: two
applications (one (A) with period of 50us and the other (B) of 100us),
if it happens that (B) enqueues its packet before (A), I think, we would
have a problem.

The problem is deciding for how long we should keep packets in the Qdisc
queue. In the implementation we are working on, this is left for the
user to decide.

Or do you have a reason for not doing *any* kind of re-ordering?

>
> I'd say the same is true for requests to send packets timed
> in the past.

+1


Cheers,
--
Vinicius