From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: Re: [patch net-next 0/9] net: sched: introduce chain templates support with offloading to mlxsw Date: Mon, 25 Jun 2018 21:58:50 -0700 Message-ID: <20180625215850.001276b8@cakuba.netronome.com> References: <20180625210148.9386-1-jiri@resnulli.us> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, davem@davemloft.net, jhs@mojatatu.com, xiyou.wangcong@gmail.com, simon.horman@netronome.com, john.hurley@netronome.com, dsahern@gmail.com, mlxsw@mellanox.com To: Jiri Pirko Return-path: Received: from mail-qk0-f195.google.com ([209.85.220.195]:33516 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750873AbeFZE6z (ORCPT ); Tue, 26 Jun 2018 00:58:55 -0400 Received: by mail-qk0-f195.google.com with SMTP id c131-v6so8854009qkb.0 for ; Mon, 25 Jun 2018 21:58:54 -0700 (PDT) In-Reply-To: <20180625210148.9386-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org List-ID: On Mon, 25 Jun 2018 23:01:39 +0200, Jiri Pirko wrote: > From: Jiri Pirko > > 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?