From: "Amir Vadai\"" <amir@vadai•me>
To: John Fastabend <john.fastabend@gmail•com>
Cc: ogerlitz@mellanox•com, jiri@resnulli•us, jhs@mojatatu•com,
jeffrey.t.kirsher@intel•com, netdev@vger•kernel.org,
davem@davemloft•net
Subject: Re: [net-next PATCH 7/7] net: ixgbe: add support for tc_u32 offload
Date: Wed, 3 Feb 2016 12:07:16 +0200 [thread overview]
Message-ID: <20160203100716.GA20905@office.Home> (raw)
In-Reply-To: <20160203092959.1356.91778.stgit@john-Precision-Tower-5810>
On Wed, Feb 03, 2016 at 01:29:59AM -0800, John Fastabend wrote:
> This adds initial support for offloading the u32 tc classifier. This
> initial implementation only implements a few base matches and actions
> to illustrate the use of the infrastructure patches.
>
> However it is an interesting subset because it handles the u32 next
> hdr logic to correctly map tcp packets from ip headers using the ihl
> and protocol fields. After this is accepted we can extend the match
> and action fields easily by updating the model header file.
>
> Also only the drop action is supported initially.
>
> Here is a short test script,
>
> #tc qdisc add dev eth4 ingress
> #tc filter add dev eth4 parent ffff: protocol ip \
> u32 ht 800: order 1 \
> match ip dst 15.0.0.1/32 match ip src 15.0.0.2/32 action drop
>
> <-- hardware has dst/src ip match rule installed -->
>
> #tc filter del dev eth4 parent ffff: prio 49152
> #tc filter add dev eth4 parent ffff: protocol ip prio 99 \
> handle 1: u32 divisor 1
> #tc filter add dev eth4 protocol ip parent ffff: prio 99 \
> u32 ht 800: order 1 link 1: \
> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
> #tc filter add dev eth4 parent ffff: protocol ip \
> u32 ht 1: order 3 match tcp src 23 ffff action drop
>
> <-- hardware has tcp src port rule installed -->
>
> #tc qdisc del dev eth4 parent ffff:
>
> <-- hardware cleaned up -->
>
> Signed-off-by: John Fastabend <john.r.fastabend@intel•com>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe.h | 3
> drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 6 -
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 196 ++++++++++++++++++++++
> 3 files changed, 198 insertions(+), 7 deletions(-)
>
What are you doing w.r.t priorities? Are the filters processed by the
order of the priorities?
[...]
>
> -static int ixgbe_update_ethtool_fdir_entry(struct ixgbe_adapter *adapter,
> - struct ixgbe_fdir_filter *input,
> - u16 sw_idx)
> +int ixgbe_update_ethtool_fdir_entry(struct ixgbe_adapter *adapter,
> + struct ixgbe_fdir_filter *input,
> + u16 sw_idx)
> {
> struct ixgbe_hw *hw = &adapter->hw;
> struct hlist_node *node2;
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 03e236c..a1a91bf 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -51,6 +51,7 @@
> #include <linux/prefetch.h>
> #include <scsi/fc/fc_fcoe.h>
> #include <net/vxlan.h>
> +#include <net/pkt_cls.h>
>
> #ifdef CONFIG_OF
> #include <linux/of_net.h>
> @@ -8200,10 +8201,197 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
> return 0;
> }
>
> +#include <net/tc_act/tc_gact.h>
> +#include "ixgbe_model.h"
Did you leave those #include's in the middle of the file on purpose?
[...]
next prev parent reply other threads:[~2016-02-03 10:04 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-03 9:27 [net-next PATCH 0/7] tc offload for cls_u32 on ixgbe John Fastabend
2016-02-03 9:27 ` [net-next PATCH 1/7] net: rework ndo tc op to consume additional qdisc handle parameter John Fastabend
2016-02-03 9:58 ` kbuild test robot
2016-02-03 9:59 ` kbuild test robot
2016-02-03 11:44 ` kbuild test robot
2016-02-03 9:28 ` [net-next PATCH 2/7] net: rework setup_tc ndo op to consume general tc operand John Fastabend
2016-02-03 9:28 ` [net-next PATCH 3/7] net: sched: add cls_u32 offload hooks for netdevs John Fastabend
2016-02-03 10:14 ` kbuild test robot
2016-02-04 13:18 ` Amir Vadai"
2016-02-09 11:09 ` Fastabend, John R
2016-02-03 9:28 ` [net-next PATCH 4/7] net: add tc offload feature flag John Fastabend
2016-02-03 9:29 ` [net-next PATCH 5/7] net: tc: helper functions to query action types John Fastabend
2016-02-03 9:29 ` [net-next PATCH 6/7] net: ixgbe: add minimal parser details for ixgbe John Fastabend
2016-02-03 9:29 ` [net-next PATCH 7/7] net: ixgbe: add support for tc_u32 offload John Fastabend
2016-02-03 10:07 ` Amir Vadai" [this message]
2016-02-03 10:26 ` John Fastabend
2016-02-03 12:46 ` Jamal Hadi Salim
2016-02-03 19:02 ` Fastabend, John R
2016-02-09 11:30 ` Fastabend, John R
2016-02-04 7:30 ` Amir Vadai"
2016-02-04 8:23 ` Fastabend, John R
2016-02-04 12:12 ` Amir Vadai"
2016-02-09 11:27 ` Fastabend, John R
2016-02-03 10:11 ` [net-next PATCH 0/7] tc offload for cls_u32 on ixgbe Amir Vadai"
2016-02-03 10:21 ` John Fastabend
2016-02-03 10:31 ` Or Gerlitz
2016-02-03 12:21 ` Jamal Hadi Salim
2016-02-03 18:48 ` Fastabend, John R
2016-02-04 13:12 ` Jamal Hadi Salim
2016-02-09 11:24 ` Fastabend, John R
2016-02-09 12:20 ` Jamal Hadi Salim
2016-02-04 9:16 ` Jiri Pirko
2016-02-04 23:19 ` Pablo Neira Ayuso
2016-02-09 11:06 ` Fastabend, John R
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=20160203100716.GA20905@office.Home \
--to=amir@vadai$(echo .)me \
--cc=davem@davemloft$(echo .)net \
--cc=jeffrey.t.kirsher@intel$(echo .)com \
--cc=jhs@mojatatu$(echo .)com \
--cc=jiri@resnulli$(echo .)us \
--cc=john.fastabend@gmail$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=ogerlitz@mellanox$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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