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

Murali Karicheri
2020-02-25T19:48:49Z

Hi Po,

On 02/21/2020 10:26 PM, Po Liu wrote:
> Hi Vinicius,
>
>
> Br,
> Po Liu
>
>> -----Original Message-----
>> From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
>> Sent: 2020年2月22日 5:44
>> To: Po Liu <po.liu@nxp.com>; davem@davemloft.net;
>> hauke.mehrtens@intel.com; gregkh@linuxfoundation.org; allison@lohutok.net;
>> tglx@linutronix.de; hkallweit1@gmail.com; saeedm@mellanox.com;
>> andrew@lunn.ch; f.fainelli@gmail.com; alexandru.ardelean@analog.com;
>> jiri@mellanox.com; ayal@mellanox.com; pablo@netfilter.org; linux-
>> kernel@vger.kernel.org; netdev@vger.kernel.org
>> Cc: simon.horman@netronome.com; Claudiu Manoil
>> <claudiu.manoil@nxp.com>; Vladimir Oltean <vladimir.oltean@nxp.com>;
>> Alexandru Marginean <alexandru.marginean@nxp.com>; Xiaoliang Yang
>> <xiaoliang.yang_1@nxp.com>; Roy Zang <roy.zang@nxp.com>; Mingkai Hu
>> <mingkai.hu@nxp.com>; Jerry Huang <jerry.huang@nxp.com>; Leo Li
>> <leoyang.li@nxp.com>; Po Liu <po.liu@nxp.com>
>> Subject: [EXT] Re: [v1,net-next, 1/2] ethtool: add setting frame preemption of
>> traffic classes
>>
>> Caution: EXT Email
>>
>> Hi,
>>
>> Po Liu <po.liu@nxp.com> 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:

It is Murali :)

> - Add config the fragment size, hold advance, release advance and flags;

- I believe hold advance, release advance values are read only

> 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."
- Couldn't understand the above? Could you please explain a bit more
on what you meant here?

Murali
> 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.
>
> Thanks！
>>
>>
>> Cheers,
>> --
>> Vinicius

--
Murali Karicheri
Texas Instruments