From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, nirranjan@chelsio.com, vishal@chelsio.com,
dt@chelsio.com
Subject: [PATCH net-next v4 0/3] cxgb4: add TC-MATCHALL classifier offload
Date: Mon, 18 Nov 2019 22:30:16 +0530 [thread overview]
Message-ID: <cover.1574089391.git.rahul.lakkireddy@chelsio.com> (raw)
This series of patches add support to offload TC-MATCHALL classifier
to hardware to classify all outgoing and incoming traffic on the
underlying port. Only 1 egress and 1 ingress rule each can be
offloaded on the underlying port.
Patch 1 adds support for TC-MATCHALL classifier offload on the egress
side. TC-POLICE is the only action that can be offloaded on the egress
side and is used to rate limit all outgoing traffic to specified max
rate.
Patch 2 adds logic to reject the current rule offload if its priority
conflicts with existing rules in the TCAM.
Patch 3 adds support for TC-MATCHALL classifier offload on the ingress
side. The same set of actions supported by existing TC-FLOWER
classifier offload can be applied on all the incoming traffic.
Thanks,
Rahul
---
v4:
- Removed check in patch 1 to reject police offload if prio is not 1.
- Moved TC_SETUP_BLOCK code to separate function in patch 1.
- Added logic to ensure the prio passed by TC doesn't conflict with
other rules in TCAM in patch 2.
- Higher index has lower priority than lower index in TCAM. So, rework
cxgb4_get_free_ftid() to search free index from end of TCAM in
descending order in patch 2.
- Added check to ensure the matchall rule's prio doesn't conflict with
other rules in TCAM in patch 3.
- Added logic to fill default mask for VIID, if none has been
provided, to prevent conflict with duplicate VIID rules in patch 3.
- Used existing variables in private structure to fill VIID info,
instead of extracting the info manually in patch 3.
v3:
- Added check in patch 1 to reject police offload if prio is not 1.
- Assign block_shared variable only for TC_SETUP_BLOCK in patch 1.
v2:
- Added check to reject flow block sharing for policers in patch 1.
- Removed logic to fetch free index from end of TCAM in patch 2.
Must maintain the same ordering as in kernel.
Rahul Lakkireddy (3):
cxgb4: add TC-MATCHALL classifier egress offload
cxgb4: check rule prio conflicts before offload
cxgb4: add TC-MATCHALL classifier ingress offload
drivers/net/ethernet/chelsio/cxgb4/Makefile | 3 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 11 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_filter.c | 119 ++++--
.../net/ethernet/chelsio/cxgb4/cxgb4_filter.h | 1 +
.../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 91 ++++-
.../ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 52 ++-
.../ethernet/chelsio/cxgb4/cxgb4_tc_flower.h | 6 +
.../chelsio/cxgb4/cxgb4_tc_matchall.c | 354 ++++++++++++++++++
.../chelsio/cxgb4/cxgb4_tc_matchall.h | 49 +++
.../ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c | 5 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c | 36 +-
drivers/net/ethernet/chelsio/cxgb4/sched.c | 56 ++-
drivers/net/ethernet/chelsio/cxgb4/sched.h | 1 +
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11 +-
14 files changed, 707 insertions(+), 88 deletions(-)
create mode 100644 drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c
create mode 100644 drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.h
--
2.24.0
next reply other threads:[~2019-11-18 17:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-18 17:00 Rahul Lakkireddy [this message]
2019-11-18 17:00 ` [PATCH net-next v4 1/3] cxgb4: add TC-MATCHALL classifier egress offload Rahul Lakkireddy
2019-11-18 17:00 ` [PATCH net-next v4 2/3] cxgb4: check rule prio conflicts before offload Rahul Lakkireddy
2019-11-18 23:36 ` Jakub Kicinski
2019-11-19 4:27 ` Rahul Lakkireddy
2019-11-19 20:15 ` Jakub Kicinski
2019-11-18 17:00 ` [PATCH net-next v4 3/3] cxgb4: add TC-MATCHALL classifier ingress offload Rahul Lakkireddy
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=cover.1574089391.git.rahul.lakkireddy@chelsio.com \
--to=rahul.lakkireddy@chelsio.com \
--cc=davem@davemloft.net \
--cc=dt@chelsio.com \
--cc=netdev@vger.kernel.org \
--cc=nirranjan@chelsio.com \
--cc=vishal@chelsio.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.