netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Po Liu <Po.Liu@nxp.com>
To: davem@davemloft.net, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org
Cc: vinicius.gomes@intel.com, po.liu@nxp.com, claudiu.manoil@nxp.com,
	vladimir.oltean@nxp.com, alexandru.marginean@nxp.com,
	xiaoliang.yang_1@nxp.com, roy.zang@nxp.com, mingkai.hu@nxp.com,
	jerry.huang@nxp.com, leoyang.li@nxp.com,
	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,
	Po Liu <Po.Liu@nxp.com>
Subject: [RFC,net-next  0/9] Introduce a flow gate control action and apply IEEE
Date: Fri,  6 Mar 2020 20:55:58 +0800	[thread overview]
Message-ID: <20200306125608.11717-1-Po.Liu@nxp.com> (raw)

This patch set is trying to intruduce a way to add tc flower offload
for the enetc IEEE 802.1Qci (PSFP) function. There are four main feature
parts in PSFP to implement the flow policing and filtering for ingress
flow with IEEE 802.1Qci features. They are stream identify(this is defined
in the P802.1cb exactly but needed by 802.1Qci), stream filtering, stream
gate and flow metering.

The stream gate function is the important part in the features. But
there is no compare actions in the qdisc filter part. The second patch
introduce a ingress frame gate control flow action. tc create a gate
action would provide a gate list to control class open/close state. when
the gate open state, the flow could pass but not when gate state is
close. The driver would repeat the gate list periodic. User also could
assign a time point to start the gate list by the basetime parameter. if
the basetime has passed current time, start time would calculate by the
cycletime of the gate list. And it is introduce a software simulator
gate control method.

The first patch is fix a flow offload can't provide dropped frame count
number issue. This would be used for getting the hardware offload dropped
frame.

The third patch is to adding the gate flow offloading.

The fourth patch is to add tc offload command in enetc. This is to
control the on/off for the tc flower offloading.

Now the enetc driver would got the gate control list and filter mac
address etc. So enetc would collected the parameters and create the
stream identify entry and stream gate control entry. Then driver would
create a stream filter entry by these inputs. Driver would maintain the
flow chain list. The fifth patch implement the stream gate and stream
filter and stream identify functions in driver by the tc flower actions
and tc filter parameters.

The sixth patch extend the police action with max frame size parameter.
This patch prepare for the PSFP per stream filtering by the frame size
policing.

The seventh patch add the max frame size policing into the stream
filtering function.

The eighth patch extend the police action with action index to the
driver. So driver could know which hardware entry to police the rate and
burst size.

The ninth patch add flow metering function in driver for the
IEEE802.1Qci with the police action 'index'/'burst'/'rate_bytes_ps'.

The iproute2 test patch need to upload to:

git://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git

There are some works still need to improve and I'd like your feedback:
- The gate action software simulator need to add admin/oper state
machine. This state machine would keep the previous operation gate list
before the new admin gate list start time arrived. Does it required for
admin/oper in software implement?

- More PSFP flow metering parameters. flow metering is an optional function
for a specific filter chain. Add more parameters this part would make
the flow metering more completely. Flow metering privde a two rate (CIR,
EIR) and two buckets (CBS, EBS) and mark flow three color(green,
yellow, red). Current tc flower offload only provide "burst" and
"rate_bytes_ps" in police action for driver. This patch set using these
two parameters to set one bucket and one rate. Each flow metering entry
own two sets buckets and two rate police. So the second rate/burst keep
disable.

Po Liu (9):
  net: qos offload add flow status with dropped count
  net: qos: introduce a gate control flow action
  net: schedule: add action gate offloading
  net: enetc: add hw tc hw offload features for PSPF capability
  net: enetc: add tc flower psfp offload driver
  net: qos: add tc police offloading action with max frame size limit
  net: enetc: add support max frame size for tc flower offload
  net: qos: police action add index for tc flower offloading
  net: enetc add tc flower offload flow metering policing action

 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c  |    2 +-
 .../ethernet/chelsio/cxgb4/cxgb4_tc_flower.c  |    2 +-
 .../chelsio/cxgb4/cxgb4_tc_matchall.c         |    2 +-
 drivers/net/ethernet/freescale/enetc/enetc.c  |   34 +-
 drivers/net/ethernet/freescale/enetc/enetc.h  |   86 ++
 .../net/ethernet/freescale/enetc/enetc_hw.h   |  183 +++
 .../net/ethernet/freescale/enetc/enetc_pf.c   |    6 +
 .../net/ethernet/freescale/enetc/enetc_qos.c  | 1228 ++++++++++++++++-
 .../net/ethernet/mellanox/mlx5/core/en_tc.c   |    4 +-
 .../ethernet/mellanox/mlxsw/spectrum_flower.c |    2 +-
 drivers/net/ethernet/mscc/ocelot_flower.c     |    2 +-
 .../ethernet/netronome/nfp/flower/offload.c   |    2 +-
 .../ethernet/netronome/nfp/flower/qos_conf.c  |    2 +-
 include/net/act_api.h                         |   11 +-
 include/net/flow_offload.h                    |   17 +-
 include/net/pkt_cls.h                         |    5 +-
 include/net/tc_act/tc_gate.h                  |  169 +++
 include/net/tc_act/tc_police.h                |   10 +
 include/uapi/linux/pkt_cls.h                  |    1 +
 include/uapi/linux/tc_act/tc_gate.h           |   47 +
 net/sched/Kconfig                             |   15 +
 net/sched/Makefile                            |    1 +
 net/sched/act_api.c                           |   12 +-
 net/sched/act_ct.c                            |    6 +-
 net/sched/act_gact.c                          |    7 +-
 net/sched/act_gate.c                          |  645 +++++++++
 net/sched/act_mirred.c                        |    6 +-
 net/sched/act_police.c                        |    6 +-
 net/sched/act_vlan.c                          |    6 +-
 net/sched/cls_api.c                           |   35 +
 net/sched/cls_flower.c                        |    3 +-
 net/sched/cls_matchall.c                      |    3 +-
 32 files changed, 2515 insertions(+), 45 deletions(-)
 create mode 100644 include/net/tc_act/tc_gate.h
 create mode 100644 include/uapi/linux/tc_act/tc_gate.h
 create mode 100644 net/sched/act_gate.c

-- 
2.17.1


             reply	other threads:[~2020-03-06 13:14 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-06 12:55 Po Liu [this message]
2020-03-06 12:55 ` [RFC,net-next 1/9] net: qos offload add flow status with dropped count Po Liu
2020-03-06 12:56 ` [RFC,net-next 2/9] net: qos: introduce a gate control flow action Po Liu
2020-03-06 19:11   ` Jakub Kicinski
2020-03-07  6:05     ` [EXT] " Po Liu
2020-03-12 22:14   ` Vinicius Costa Gomes
2020-03-13  3:47     ` [EXT] " Po Liu
2020-03-13 18:36   ` Cong Wang
2020-03-14  4:09     ` [EXT] " Po Liu
2020-03-06 12:56 ` [RFC,net-next 3/9] net: schedule: add action gate offloading Po Liu
2020-03-06 19:02   ` Jakub Kicinski
2020-03-06 19:19     ` Jakub Kicinski
2020-03-07  4:38       ` [EXT] " Po Liu
2020-03-06 12:56 ` [RFC,net-next 4/9] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-03-06 12:56 ` [RFC,net-next 5/9] net: enetc: add tc flower psfp offload driver Po Liu
2020-03-12 22:14   ` Vinicius Costa Gomes
2020-03-13  5:59     ` [EXT] " Po Liu
2020-03-06 12:56 ` [RFC,net-next 6/9] net: qos: add tc police offloading action with max frame size limit Po Liu
2020-06-23  6:34   ` [v1,net-next 1/4] " Po Liu
2020-06-23  6:34     ` [v1,net-next 2/4] net: enetc: add support max frame size for tc flower offload Po Liu
2020-06-23  6:34     ` [v1,net-next 3/4] net: qos: police action add index for tc flower offloading Po Liu
2020-06-23  7:09       ` Ido Schimmel
2020-06-23  7:39         ` [EXT] " Po Liu
2020-06-23 10:08       ` Jamal Hadi Salim
2020-06-23  6:34     ` [v1,net-next 4/4] net: enetc add tc flower offload flow metering policing action Po Liu
2020-06-23 14:54       ` kernel test robot
2020-06-23 15:08       ` kernel test robot
2020-06-24  9:36       ` [v2,net-next 1/4] net: qos: add tc police offloading action with max frame size limit Po Liu
2020-06-24  9:36         ` [v2,net-next 2/4] net: enetc: add support max frame size for tc flower offload Po Liu
2020-06-25  5:04           ` David Miller
2020-06-24  9:36         ` [v2,net-next 3/4] net: qos: police action add index for tc flower offloading Po Liu
2020-06-25  5:04           ` David Miller
2020-06-24  9:36         ` [v2,net-next 4/4] net: enetc add tc flower offload flow metering policing action Po Liu
2020-06-25  5:04           ` David Miller
2020-06-25  5:04         ` [v2,net-next 1/4] net: qos: add tc police offloading action with max frame size limit David Miller
2020-06-23  7:01     ` [v1,net-next " Ido Schimmel
2020-03-06 12:56 ` [RFC,net-next 7/9] net: enetc: add support max frame size for tc flower offload Po Liu
2020-03-06 12:56 ` [RFC,net-next 8/9] net: qos: police action add index for tc flower offloading Po Liu
2020-06-21 10:04   ` Ido Schimmel
2020-03-06 12:56 ` [RFC,net-next 9/9] net: enetc add tc flower offload flow metering policing action Po Liu
2020-03-06 12:56 ` [RFC, iproute2-next] iproute2:tc:action: add a gate control action Po Liu
2020-03-24  3:47   ` [v1,net-next 0/5] Introduce a flow gate control action and apply IEEE Po Liu
2020-03-24  3:47     ` [v1,net-next 1/5] net: qos offload add flow status with dropped count Po Liu
2020-03-24 10:01       ` Jiri Pirko
2020-03-24 13:04         ` [EXT] " Po Liu
2020-03-24  3:47     ` [v1,net-next 2/5] net: qos: introduce a gate control flow action Po Liu
2020-03-24 10:19       ` Jiri Pirko
2020-03-24 10:28         ` [EXT] " Po Liu
2020-03-24  3:47     ` [v1,net-next 3/5] net: schedule: add action gate offloading Po Liu
2020-03-24  3:47     ` [v1,net-next 4/5] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-03-24 11:18       ` kbuild test robot
2020-03-24 12:14       ` Jiri Pirko
2020-03-24  3:47     ` [v1,net-next 5/5] net: enetc: add tc flower psfp offload driver Po Liu
2020-03-24 12:53       ` kbuild test robot
2020-03-24  3:47     ` [v1,iproute2 1/2] iproute2:tc:action: add a gate control action Po Liu
2020-03-24 21:59       ` Stephen Hemminger
2020-03-25  2:40         ` [EXT] " Po Liu
2020-03-24  3:47     ` [v1,iproute2 2/2] iproute2: add gate action man page Po Liu
2020-04-14  5:40       ` [v2,net-next 0/4] Introduce a flow gate control action and apply IEEE Po Liu
2020-04-14  5:40         ` [ v2,net-next 1/4] net: qos: introduce a gate control flow action Po Liu
2020-04-14  5:40         ` [ v2,net-next 2/4] net: schedule: add action gate offloading Po Liu
2020-04-14  5:40         ` [ v2,net-next 3/4] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-04-14  5:40         ` [ v2,net-next 4/4] net: enetc: add tc flower psfp offload driver Po Liu
2020-04-14 23:41         ` [v2,net-next 0/4] Introduce a flow gate control action and apply IEEE David Miller
2020-04-18  1:12       ` Po Liu
2020-04-18  1:12         ` [ v2,net-next 1/4] net: qos: introduce a gate control flow action Po Liu
2020-04-18  1:12         ` [ v2,net-next 2/4] net: schedule: add action gate offloading Po Liu
2020-04-18  1:12         ` [ v2,net-next 3/4] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-04-18  1:12         ` [ v2,net-next 4/4] net: enetc: add tc flower psfp offload driver Po Liu
2020-04-18 22:52           ` Vladimir Oltean
2020-04-19  1:44             ` [EXT] " Po Liu
2020-04-22  2:48           ` [v3,net-next 0/4] Introduce a flow gate control action and apply IEEE Po Liu
2020-04-22  2:48             ` [v3,net-next 1/4] net: qos: introduce a gate control flow action Po Liu
2020-04-22 13:23               ` Vlad Buslov
2020-04-23  3:14                 ` [EXT] " Po Liu
2020-04-23  7:43                   ` Vlad Buslov
2020-04-23  8:32                     ` Po Liu
2020-04-23  9:15                       ` Po Liu
2020-04-23 11:14                         ` Vlad Buslov
2020-04-23 11:03                       ` Vlad Buslov
2020-04-22 19:19               ` Allan W. Nielsen
2020-04-22 19:28                 ` Vladimir Oltean
2020-04-22 20:05                   ` Dave Taht
2020-04-23  3:29                     ` [EXT] " Po Liu
2020-04-23 19:11                   ` Allan W. Nielsen
2020-04-23  3:27                 ` [EXT] " Po Liu
2020-04-23 17:38               ` Vinicius Costa Gomes
2020-04-23 19:17                 ` Allan W. Nielsen
2020-04-24  3:23                 ` [EXT] " Po Liu
2020-04-24 17:41                   ` Vinicius Costa Gomes
2020-04-25  1:49                     ` Po Liu
2020-04-22  2:48             ` [v3,net-next 2/4] net: schedule: add action gate offloading Po Liu
2020-04-22 14:14               ` Vlad Buslov
2020-04-22  2:48             ` [v3,net-next 3/4] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-04-22  2:48             ` [v3,net-next 4/4] net: enetc: add tc flower psfp offload driver Po Liu
2020-04-28  3:34               ` [v4,net-next 0/4] Introduce a flow gate control action and apply IEEE Po Liu
2020-04-28  3:34                 ` [v4,net-next 1/4] net: qos: introduce a gate control flow action Po Liu
2020-04-29 17:04                   ` Vlad Buslov
2020-04-30  0:52                     ` [EXT] " Po Liu
2020-04-28  3:34                 ` [v4,net-next 2/4] net: schedule: add action gate offloading Po Liu
2020-04-29 17:40                   ` Vlad Buslov
2020-04-28  3:34                 ` [v4,net-next 3/4] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-04-28  3:34                 ` [v4,net-next 4/4] net: enetc: add tc flower psfp offload driver Po Liu
2020-05-01  0:53                   ` [v5,net-next 0/4] Introduce a flow gate control action and apply IEEE Po Liu
2020-05-01  0:53                     ` [v5,net-next 1/4] net: qos: introduce a gate control flow action Po Liu
2020-05-01  0:53                     ` [v5,net-next 2/4] net: schedule: add action gate offloading Po Liu
2020-05-01  0:53                     ` [v5,net-next 3/4] net: enetc: add hw tc hw offload features for PSPF capability Po Liu
2020-05-01  0:53                     ` [v5,net-next 4/4] net: enetc: add tc flower psfp offload driver Po Liu
2020-05-03  6:32                       ` [v3,iproute2 1/2] iproute2:tc:action: add a gate control action Po Liu
2020-05-03  6:32                         ` [v3,iproute2 2/2] iproute2: add gate action man page Po Liu
2020-05-06  8:40                           ` [v4,iproute2-next 1/2] iproute2-next:tc:action: add a gate control action Po Liu
2020-05-06  8:40                             ` [v4,iproute2-next 2/2] iproute2-next: add gate action man page Po Liu
2020-05-08  7:02                               ` [v5,iproute2-next 1/2] iproute2-next:tc:action: add a gate control action Po Liu
2020-05-08  7:02                                 ` [v5,iproute2-next 2/2] iproute2-next: add gate action man page Po Liu
2020-05-13  2:21                                 ` [v5,iproute2-next 1/2] iproute2-next:tc:action: add a gate control action David Ahern
2020-05-06 12:54                             ` [v4,iproute2-next " Davide Caratti
2020-05-07  2:28                               ` [EXT] " Po Liu
2020-05-06 15:21                             ` Stephen Hemminger
2020-05-05  0:05                         ` [v3,iproute2 1/2] iproute2:tc:action: " Stephen Hemminger
2020-05-05  0:06                         ` Stephen Hemminger
2020-05-01 23:08                     ` [v5,net-next 0/4] Introduce a flow gate control action and apply IEEE David Miller
2020-06-19  6:01     ` [v2,net-next] net: qos offload add flow status with dropped count Po Liu
2020-06-19  7:03       ` Simon Horman
2020-06-19 18:00       ` Vlad Buslov
2020-06-19 19:54       ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200306125608.11717-1-Po.Liu@nxp.com \
    --to=po.liu@nxp.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandru.marginean@nxp.com \
    --cc=andre.guedes@linux.intel.com \
    --cc=claudiu.manoil@nxp.com \
    --cc=davem@davemloft.net \
    --cc=idosch@mellanox.com \
    --cc=ivan.khoronzhuk@linaro.org \
    --cc=jakub.kicinski@netronome.com \
    --cc=jerry.huang@nxp.com \
    --cc=jhs@mojatatu.com \
    --cc=jiri@mellanox.com \
    --cc=john.hurley@netronome.com \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=leoyang.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m-karicheri2@ti.com \
    --cc=michael.chan@broadcom.com \
    --cc=mingkai.hu@nxp.com \
    --cc=moshe@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=pieter.jansenvanvuuren@netronome.com \
    --cc=roy.zang@nxp.com \
    --cc=saeedm@mellanox.com \
    --cc=simon.horman@netronome.com \
    --cc=vinicius.gomes@intel.com \
    --cc=vishal@chelsio.com \
    --cc=vladimir.oltean@nxp.com \
    --cc=xiaoliang.yang_1@nxp.com \
    --cc=xiyou.wangcong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).