From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Ahern Subject: Re: [patch net-next v4 00/10] net: sched: allow qdiscs to share filter block instances Date: Sat, 23 Dec 2017 19:54:47 -0600 Message-ID: References: <20171223155436.9014-1-jiri@resnulli.us> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: davem@davemloft.net, jhs@mojatatu.com, xiyou.wangcong@gmail.com, mlxsw@mellanox.com, andrew@lunn.ch, vivien.didelot@savoirfairelinux.com, f.fainelli@gmail.com, michael.chan@broadcom.com, ganeshgr@chelsio.com, saeedm@mellanox.com, matanb@mellanox.com, leonro@mellanox.com, idosch@mellanox.com, jakub.kicinski@netronome.com, simon.horman@netronome.com, pieter.jansenvanvuuren@netronome.com, john.hurley@netronome.com, alexander.h.duyck@intel.com, ogerlitz@mellanox.com, john.fastabend@gmail.com, daniel@iogearbox.net To: Jiri Pirko , netdev@vger.kernel.org Return-path: Received: from mail-it0-f49.google.com ([209.85.214.49]:40075 "EHLO mail-it0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750810AbdLXByu (ORCPT ); Sat, 23 Dec 2017 20:54:50 -0500 Received: by mail-it0-f49.google.com with SMTP id f190so18318318ita.5 for ; Sat, 23 Dec 2017 17:54:49 -0800 (PST) In-Reply-To: <20171223155436.9014-1-jiri@resnulli.us> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 12/23/17 9:54 AM, Jiri Pirko wrote: > So back to the example. First, we create 2 qdiscs. Both will share > block number 22. "22" is just an identification. If we don't pass any > block number, a new one will be generated by kernel: > > $ tc qdisc add dev ens7 ingress block 22 > ^^^^^^^^ > $ tc qdisc add dev ens8 ingress block 22 > ^^^^^^^^ > > Now if we list the qdiscs, we will see the block index in the output: > > $ tc qdisc > qdisc ingress ffff: dev ens7 parent ffff:fff1 block 22 > qdisc ingress ffff: dev ens8 parent ffff:fff1 block 22 > > To make is more visual, the situation looks like this: > > ens7 ingress qdisc ens7 ingress qdisc > | | > | | > +----------> block 22 <----------+ > > Unlimited number of qdiscs may share the same block. > > Now we can add filter to any of qdiscs sharing the same block: > > $ tc filter add dev ens7 ingress protocol ip pref 25 flower dst_ip 192.168.0.0/16 action drop Allowing config of a shared block through any qdisc that references it is akin to me allowing nexthop objects to be manipulated by any route that references it -- sure, it could be done but causes a lot surprises to the user. You are adding a new tc object -- a shared block. Why the resistance to creating a proper API for managing it?