Subject: Re: [PATCH net-next 00/13] Add tc-taprio support for queueMaxSDU

From: Vinicius Costa Gomes <[email-masked]>
Date: Wed, 14 Sep 2022 14:47:08 -0700

Vladimir Oltean <[email-masked]> writes:

> Michael and Xiaoliang will probably be aware that the tc-taprio offload
> mode supported by the Felix DSA driver has limitations surrounding its
> guard bands.
>
> The initial discussion was at:
> https://lore.kernel.org/netdev/[email-masked]/
>
> with the latest status being that we now have a vsc9959_tas_guard_bands_update()
> method which makes a best-guess attempt at how much useful space to
> reserve for packet scheduling in a taprio interval, and how much to
> reserve for guard bands.
>
> IEEE 802.1Q actually does offer a tunable variable (queueMaxSDU) which
> can determine the max MTU supported per traffic class. In turn we can
> determine the size we need for the guard bands, depending on the
> queueMaxSDU. This way we can make the guard band of small taprio
> intervals smaller than one full MTU worth of transmission time, if we
> know that said traffic class will transport only smaller packets.
>
> Allow input of queueMaxSDU through netlink into tc-taprio, offload it to
> the hardware I have access to (LS1028A), and deny non-default values to
> everyone else.
>
> First 3 patches are some cleanups I made while figuring out what exactly
> gets called for taprio software mode, and what gets called for offload
> mode.
>
> Vladimir Oltean (13):
>   net/sched: taprio: remove redundant FULL_OFFLOAD_IS_ENABLED check in
>     taprio_enqueue
>   net/sched: taprio: stop going through private ops for dequeue and peek
>   net/sched: taprio: add extack messages in taprio_init

Indeed. I think the first three patches can be in a separate series.

>   net/sched: taprio: allow user input of per-tc max SDU
>   net: dsa: felix: offload per-tc max SDU from tc-taprio
>   net: enetc: cache accesses to &priv->si->hw
>   net: enetc: offload per-tc max SDU from tc-taprio
>   net: dsa: hellcreek: deny tc-taprio changes to per-tc max SDU
>   net: dsa: sja1105: deny tc-taprio changes to per-tc max SDU
>   tsnep: deny tc-taprio changes to per-tc max SDU
>   igc: deny tc-taprio changes to per-tc max SDU
>   net: stmmac: deny tc-taprio changes to per-tc max SDU
>   net: am65-cpsw: deny tc-taprio changes to per-tc max SDU
>
>  drivers/net/dsa/hirschmann/hellcreek.c        |   5 +
>  drivers/net/dsa/ocelot/felix_vsc9959.c        |  20 +-
>  drivers/net/dsa/sja1105/sja1105_tas.c         |   6 +-
>  drivers/net/ethernet/engleder/tsnep_tc.c      |   6 +-
>  drivers/net/ethernet/freescale/enetc/enetc.c  |  28 ++-
>  drivers/net/ethernet/freescale/enetc/enetc.h  |  12 +-
>  .../net/ethernet/freescale/enetc/enetc_pf.c   |  25 ++-
>  .../net/ethernet/freescale/enetc/enetc_qos.c  |  70 +++----
>  drivers/net/ethernet/intel/igc/igc_main.c     |   6 +-
>  .../net/ethernet/stmicro/stmmac/stmmac_tc.c   |   6 +-
>  drivers/net/ethernet/ti/am65-cpsw-qos.c       |   6 +-
>  include/net/pkt_sched.h                       |   1 +
>  include/uapi/linux/pkt_sched.h                |  11 +
>  net/sched/sch_taprio.c                        | 194 +++++++++++++-----
>  14 files changed, 283 insertions(+), 113 deletions(-)
>
> -- 
> 2.34.1
>

Cheers,
-- 
Vinicius