[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20200917.170156.134829479537549493.davem@davemloft.net>
Date: Thu, 17 Sep 2020 17:01:56 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: idosch@...sch.org
Cc: netdev@...r.kernel.org, kuba@...nel.org, jiri@...dia.com,
petrm@...dia.com, mlxsw@...dia.com, idosch@...dia.com
Subject: Re: [PATCH net-next 0/3] mlxsw: Support dcbnl_setbuffer,
dcbnl_getbuffer
From: Ido Schimmel <idosch@...sch.org>
Date: Thu, 17 Sep 2020 09:49:00 +0300
> From: Ido Schimmel <idosch@...dia.com>
>
> Petr says:
>
> On Spectrum, port buffers, also called port headroom, is where packets are
> stored while they are parsed and the forwarding decision is being made. For
> lossless traffic flows, in case shared buffer admission is not allowed,
> headroom is also where to put the extra traffic received before the sent
> PAUSE takes effect.
>
> Linux supports two DCB interfaces related to the headroom: dcbnl_setbuffer
> for configuration, and dcbnl_getbuffer for inspection. This patch set
> implements them.
>
> With dcbnl_setbuffer in place, there will be two sources of authority over
> the ingress configuration: the DCB ETS hook, because ETS configuration is
> mirrored to ingress, and the DCB setbuffer hook. mlxsw is in a similar
> situation on the egress side, where there are two sources of the ETS
> configuration: the DCB ETS hook, and the TC qdisc hooks. This is a
> non-intuitive situation, because the way the ASIC ends up being configured
> depends not only on the actual configured bits, but also on the order in
> which they were configured.
>
> To prevent these issues on the ingress side, two configuration modes will
> exist: DCB mode and TC mode. DCB ETS will keep getting projected to ingress
> in the (default) DCB mode. When a qdisc is installed on a port, it will be
> switched to the TC mode, the ingress configuration will be done through the
> dcbnl_setbuffer callback. The reason is that the dcbnl_setbuffer hook is
> not standardized and supported by lldpad. Projecting DCB ETS configuration
> to ingress is a reasonable heuristic to configure ingress especially when
> PFC is in effect.
>
> In patch #1, the toggle between the DCB and TC modes of headroom
> configuration, described above, is introduced.
>
> Patch #2 implements dcbnl_getbuffer and dcbnl_setbuffer. dcbnl_getbuffer
> can be always used to determine the current port headroom configuration.
> dcbnl_setbuffer is only permitted in the TC mode.
>
> In patch #3, make the qdisc module toggle the headroom mode from DCB to TC
> and back, depending on whether there is an offloaded qdisc on the port.
Series applied, thank you.
Powered by blists - more mailing lists