On Mon, 25 Jun 2018 23:01:39 +0200, Jiri Pirko wrote: > From: Jiri Pirko <j...@mellanox.com> > > 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. And that's needed because once any rule is added the tcam config can no longer be easily modified?