Re: [PATCH bpf-next v2 0/3] xsk: TX metadata txtime support

From: Jesper Dangaard Brouer
Date: Fri Dec 01 2023 - 10:39:49 EST




On 12/1/23 16:09, Willem de Bruijn wrote:
Song, Yoong Siang wrote:
On Friday, December 1, 2023 6:46 PM, Jesper Dangaard Brouer <hawk@xxxxxxxxxx> wrote:
On 12/1/23 07:24, Song Yoong Siang wrote:
This series expands XDP TX metadata framework to include ETF HW offload.

Changes since v1:
- rename Time-Based Scheduling (TBS) to Earliest TxTime First (ETF)
- rename launch-time to txtime


I strongly disagree with this renaming (sorry to disagree with Willem).

The i210 and i225 chips call this LaunchTime in their programmers
datasheets, and even in the driver code[1].

Using this "txtime" name in the code is also confusing, because how can
people reading the code know the difference between:
- tmo_request_timestamp and tmo_request_txtime


Hi Jesper and Willem,

How about using "launch_time" for the flag/variable and
"Earliest TxTime First" for the description/comments?


I don't follow why you are calling the feature:
- "Earliest TxTime First" (ETF).
- AFAIK this just reference an qdisc name (that most don't know exists)


I don't particularly care which term we use, as long as we're
consistent. Especially, don't keep introducing new synonyms.

The fact that one happens to be one vendor's marketing term does not
make it preferable, IMHO. On the contrary.


These kind of hardware features are defined as part of Time Sensitive
Networking (TSN).
I believe these TSN features are defined as part of IEEE 802.1Qbv (2015)
and according to Wikipedia[2] incorporated into IEEE 802.1Q.

[2] https://en.wikipedia.org/wiki/Time-Sensitive_Networking


SO_TXTIME is in the ABI, and EDT has been used publicly in kernel
patches and conference talks, e.g., Van Jacobson's Netdev 0x12
keynote. Those are vendor agnostic commonly used terms.


I agree that EDT (Earliest Departure Time) have become a thing and term
in our community.
We could associate this feature with this.
I do fear what hardware behavior will be it if I e.g. ask it to send a
packet 2 sec in the future on i225 which max support 1 sec.
Will hardware send it at 1 sec?
Because then I'm violating the *Earliest* Departure Time.


But as long as Launch Time is not an Intel only trademark, fine to
select that.

The IEEE 802.1Qbv is sometimes called Time-Aware Shaper (TAS), but I
don't like to for us to name this after this. This features is simply
taking advantage of exposing one of the hardware building blocks
(controlling/setting packet "launch time") that can be used for
implementing a TAS.

I like the name "launch time" because it doesn't get easily confused
with other timestamps, and intuitively describes packet will be send at
a specific time (likely in future).

--Jesper