Re: [PATCH net-next v1 2/2] net: dsa: microchip: Add partial ACL support for ksz9477 switches

From: Vladimir Oltean
Date: Tue Apr 18 2023 - 08:10:40 EST


On Tue, Apr 18, 2023 at 09:24:50AM +0200, Oleksij Rempel wrote:
> On Sun, Apr 16, 2023 at 07:59:04PM +0300, Vladimir Oltean wrote:
> > On Thu, Apr 13, 2023 at 06:29:36AM +0200, Oleksij Rempel wrote:
> > > According to KSZ9477S 5.2.8.2 Port Priority Control Register
> > > "To achieve the desired functionality, do not set more than one bit at a
> > > time in this register.
> > > ...
> > > Bit 6 - OR’ed Priority
> > > ...
> > > Bit 2 - 802.1p Priority Classification
> > > Bit 1 - Diffserv Priority Classification
> > > Bit 0 - ACL Priority Classification
> > > "
> > > @Arun what will happen if multiple engines are used for packet
> > > prioritization? For example ACL || Diffserv || 802.1p... ?
> > > If I see it correctly, it is possible but not recommended. Should I
> > > prevent usage of multiple prio sources?
> >
> > You could try and find out which one takes priority... we support VLAN
> > PCP and DSCP prioritization through the dcbnl application priority table.
>
> What will be the mainlineable interface for the DSCP support for KSZ8 series?
> If i see it correctly, it should be possible to use tc:
> tc filter add dev lan2 ingress protocol ip flower ip_tos 0x28 skip_sw skbedit priority 7
> or dcb:
> dcb app add dev lan2 dscp-prio 28:7
>
> dcb implementation seems to have some advantages, since it will
> allow to use OpenLLDP to configure traffic priorities. Correct?

Switch driver writers (DSA/felix/ocelot, sparx5, mlxsw/spectrum) seem to
have decided that basic QoS classification (VLAN PCP, IP DSCP) should go
through something more simple for the user to digest than tc, which
should be used only for advanced QoS classification, and which, in
general, can have all sorts of gotchas preventing easy portability
(I'm thinking of chains, for example). I would say go for dcbnl.
Daniel Machon, with Petr's help, added support for VLAN PCP
prioritization there as well, so it should be fairly usable now.