Subject: Re: Basic PCP/DEI-based queue classification

From: Jakub Kicinski <[email-masked]>
Date: Wed, 24 Aug 2022 17:54:53 -0700

On Wed, 24 Aug 2022 21:36:54 +0200 Petr Machata wrote:
> > So far only subtle changes. Now how do you see trust going in. Can you
> > elaborate a little on the policy selector you mentioned?  
> 
> Sure. In my mind the policy is a array that describes the order in which
> APP rules are applied. "default" is implicitly last.
> 
> So "trust DSCP" has a policy of just [DSCP]. "Trust PCP" of [PCP].
> "Trust DSCP, then PCP" of [DSCP, PCP]. "Trust port" (i.e. just default)
> is simply []. Etc.
> 
> Individual drivers validate whether their device can implement the
> policy.
> 
> I expect most devices to really just support the DSCP and PCP parts, but
> this is flexible in allowing more general configuration in devices that
> allow it.
> 
> ABI-wise it is tempting to reuse APP to assign priority to selectors in
> the same way that it currently assigns priority to field values:
> 
> # dcb app replace dev X sel-prio dscp:2 pcp:1
> 
> But that feels like a hack. It will probably be better to have a
> dedicated object for this:
> 
> # dcb app-policy set dev X sel-order dscp pcp
> 
> This can be sliced in different ways that we can bikeshed to death
> later. Does the above basically address your request?

For an uneducated maintainer like myself, how do embedded people look
at DCB? Only place I've seen it used is in RDMA clusers. I suggested 
to Vladimir to look at DCBNL for frame preemption because it's the only
existing API we have that's vaguely relevant to HW/prio control but he
ended up going with ethtool.
No preference here, just trying to map it out in my head.