RE: Re: [RFC,net-next 8/9] net: qos: police action add index for tc flower offloading

From: Po Liu <hidden>
Date: 2020-06-22 01:19:34
Also in: lkml

Hi Ido,

-----Original Message-----
From: Ido Schimmel <redacted>
Sent: 2020年6月21日 18:04
To: Po Liu <redacted>
Cc: davem@davemloft.net; linux-kernel@vger.kernel.org;
netdev@vger.kernel.org; vinicius.gomes@intel.com; Claudiu Manoil
[off-list ref]; Vladimir Oltean [off-list ref];
Alexandru Marginean [off-list ref]; Xiaoliang Yang
[off-list ref]; Roy Zang [off-list ref]; Mingkai Hu
[off-list ref]; Jerry Huang [off-list ref]; Leo Li
[off-list ref]; michael.chan@broadcom.com; vishal@chelsio.com;
saeedm@mellanox.com; leon@kernel.org; jiri@mellanox.com;
idosch@mellanox.com; alexandre.belloni@bootlin.com;
UNGLinuxDriver@microchip.com; kuba@kernel.org; jhs@mojatatu.com;
xiyou.wangcong@gmail.com; john.hurley@netronome.com;
simon.horman@netronome.com;
pieter.jansenvanvuuren@netronome.com; pablo@netfilter.org;
moshe@mellanox.com; ivan.khoronzhuk@linaro.org; m-karicheri2@ti.com;
andre.guedes@linux.intel.com; jakub.kicinski@netronome.com
Subject: Re: [RFC,net-next 8/9] net: qos: police action add index for
tc flower offloading


On Fri, Mar 06, 2020 at 08:56:06PM +0800, Po Liu wrote:
quoted
Hardware may own many entries for police flow. So that make one(or
 multi) flow to be policed by one hardware entry. This patch add the
police action index provide to the driver side make it mapping the
driver hardware entry index.

Signed-off-by: Po Liu <redacted>
Hi,

I started looking into tc-police offload in mlxsw and remembered your
patch. Are you planning to formally submit it? I'm asking because in mlxsw
it is also possible to share the same policer between multiple filters.
Yes, I am preparing the patches and push again very soon. The patches will add mtu and index for offloading as first step. 
The next step is seeking method to  implement two color + two buckets mode but seems absent one bucket in policing action. The current burst + rate_bytes_ps only can only implement one color+ one bucket policing. 
Thanks
quoted
---
 include/net/flow_offload.h | 1 +
 net/sched/cls_api.c        | 1 +
 2 files changed, 2 insertions(+)
diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h
index 54df87328edc..3b78b15ed20b 100644
--- a/include/net/flow_offload.h
+++ b/include/net/flow_offload.h
@@ -201,6 +201,7 @@ struct flow_action_entry {
                      bool                    truncate;
              } sample;
              struct {                                /* FLOW_ACTION_POLICE */
+                     u32                     index;
                      s64                     burst;
                      u64                     rate_bytes_ps;
                      u32                     mtu;
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index
363d3991793d..ce846a9dadc1 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -3584,6 +3584,7 @@ int tc_setup_flow_action(struct flow_action
*flow_action,
quoted
                      entry->police.rate_bytes_ps =
                              tcf_police_rate_bytes_ps(act);
                      entry->police.mtu = tcf_police_mtu(act);
+                     entry->police.index = act->tcfa_index;
              } else if (is_tcf_ct(act)) {
                      entry->id = FLOW_ACTION_CT;
                      entry->ct.action = tcf_ct_action(act);
--
2.17.1
Thanks a lot!
Br,
Po Liu
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help