Subject: RE: [EXT] Re: [v1,net-next, 1/2] ethtool: add setting frame preemption of traffic classes

From: Vinicius Costa Gomes <[email-masked]>
Date: Thu, 12 Mar 2020 16:34:50 -0700

Hi,

Po Liu <[email-masked]> writes:

> Hi Vinicius,
>
>
> Br,
> Po Liu
>
>> -----Original Message-----
>> From: Vinicius Costa Gomes <[email-masked]>
>> Sent: 2020年2月22日 5:44
>> To: Po Liu <[email-masked]>; [email-masked];
>> [email-masked]; [email-masked]; [email-masked];
>> [email-masked]; [email-masked]; [email-masked];
>> [email-masked]; [email-masked]; [email-masked];
>> [email-masked]; [email-masked]; [email-masked]; linux-
>> [email-masked]; [email-masked]
>> Cc: [email-masked]; Claudiu Manoil
>> <[email-masked]>; Vladimir Oltean <[email-masked]>;
>> Alexandru Marginean <[email-masked]>; Xiaoliang Yang
>> <[email-masked]>; Roy Zang <[email-masked]>; Mingkai Hu
>> <[email-masked]>; Jerry Huang <[email-masked]>; Leo Li
>> <[email-masked]>; Po Liu <[email-masked]>
>> Subject: [EXT] Re: [v1,net-next, 1/2] ethtool: add setting frame preemption of
>> traffic classes
>> 
>> Caution: EXT Email
>> 
>> Hi,
>> 
>> Po Liu <[email-masked]> writes:
>> 
>> > IEEE Std 802.1Qbu standard defined the frame preemption of port
>> > traffic classes. This patch introduce a method to set traffic classes
>> > preemption. Add a parameter 'preemption' in struct
>> > ethtool_link_settings. The value will be translated to a binary, each
>> > bit represent a traffic class. Bit "1" means preemptable traffic
>> > class. Bit "0" means express traffic class.  MSB represent high number
>> > traffic class.
>> >
>> > If hardware support the frame preemption, driver could set the
>> > ethernet device with hw_features and features with NETIF_F_PREEMPTION
>> > when initializing the port driver.
>> >
>> > User can check the feature 'tx-preemption' by command 'ethtool -k
>> > devname'. If hareware set preemption feature. The property would be a
>> > fixed value 'on' if hardware support the frame preemption.
>> > Feature would show a fixed value 'off' if hardware don't support the
>> > frame preemption.
>> >
>> > Command 'ethtool devname' and 'ethtool -s devname preemption N'
>> > would show/set which traffic classes are frame preemptable.
>> >
>> > Port driver would implement the frame preemption in the function
>> > get_link_ksettings() and set_link_ksettings() in the struct ethtool_ops.
>> >
>> 
>> Any updates on this series? If you think that there's something that I could help,
>> just tell.
>
> Sorry for the long time not involve the discussion. I am focus on other tsn code for tc flower.
> If you can take more about this preemption serial, that would be good.
>
> I summary some suggestions from Marali Karicheri and Ivan Khornonzhuk and by you and also others:
> - Add config the fragment size, hold advance, release advance and flags;
>     My comments about the fragment size is in the Qbu spec limit the fragment size " the minimum non-final fragment size is 64,
> 128, 192, or 256 octets " this setting would affect the guardband setting for Qbv. But the ethtool setting could not involve this issues but by the taprio side.
> - " Furthermore, this setting could be extend for a serial setting for mac and traffic class."  "Better not to using the traffic class concept."
>    Could adding a serial setting by "ethtool --preemption xxx" or other name. I don' t think it is good to involve in the queue control since queues number may bigger than the TC number.
> - The ethtool is the better choice to configure the preemption
>   I agree.

Just a quick update. I was able to dedicate some time to this, and have
something aproaching RFC-quality, but it needs more testing.

So, question, what were you using for testing this? Anything special?

And btw, thanks for the summary of the discussion.

> Thanks！
>> Cheers,
>> --
>> Vinicius

-- 
Vinicius