Subject: Re: [patch net-next 0/9] net: sched: introduce chain templates support with offloading to mlxsw

From: Jiri Pirko <[email-masked]>
Date: Tue, 26 Jun 2018 08:43:55 +0200

Tue, Jun 26, 2018 at 06:58:50AM CEST, [email-masked] wrote:
>On Mon, 25 Jun 2018 23:01:39 +0200, Jiri Pirko wrote:
>> From: Jiri Pirko <[email-masked]>
>> 
>> For the TC clsact offload these days, some of HW drivers need
>> to hold a magic ball. The reason is, with the first inserted rule inside
>> HW they need to guess what fields will be used for the matching. If
>> later on this guess proves to be wrong and user adds a filter with a
>> different field to match, there's a problem. Mlxsw resolves it now with
>> couple of patterns. Those try to cover as many match fields as possible.
>> This aproach is far from optimal, both performance-wise and scale-wise.
>> Also, there is a combination of filters that in certain order won't
>> succeed.
>> 
>> Most of the time, when user inserts filters in chain, he knows right away
>> how the filters are going to look like - what type and option will they
>> have. For example, he knows that he will only insert filters of type
>> flower matching destination IP address. He can specify a template that
>> would cover all the filters in the chain.
>
>Perhaps it's lack of sleep, but this paragraph threw me a little off
>the track.  IIUC the goal of this set is to provide a way to inform the
>HW about expected matches before any rule is programmed into the HW.
>Not before any rule is added to a particular chain.  One can just use
>the first rule in the chain to make a guess about the chain, but thanks
>to this set user can configure *all* chains before any rules are added.

The template is per-chain. User can use template for chain x and
not-use it for chain y. Up to him.

>
>And that's needed because once any rule is added the tcam config can no
>longer be easily modified?

Yes.