public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Jamal Hadi Salim <jhs@mojatatu•com>
To: John Fastabend <john.fastabend@gmail•com>,
	jiri@resnulli•us, amir@vadai•me, davem@davemloft•net
Cc: netdev@vger•kernel.org, jeffrey.t.kirsher@intel•com
Subject: Re: [net-next PATCH v3 7/8] net: ixgbe: add support for tc_u32 offload
Date: Wed, 17 Feb 2016 06:17:26 -0500	[thread overview]
Message-ID: <56C456C6.60308@mojatatu.com> (raw)
In-Reply-To: <20160217051853.17139.76889.stgit@john-Precision-Tower-5810>

On 16-02-17 12:18 AM, 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
>

Note: i dont see anything that says "hw". Are you delegating ht 0x800
for h/w only? It is the default ht; so may not be the best choice.

> <-- hardware has dst/src ip match rule installed -->
>
>   #tc filter del dev eth4 parent ffff: prio 49152

Would be useful to dump the installed rule so user gets to
see kernel-assigned prio 49152. The better way
to do this is use the handle 800::1 as opposed to prio.

>   #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 -->
>

All looks cool but I am just worried about the lack of intent that
something needs to go to hw vs sw. Other worry:
What happens when things fail to install in hw?
As it stands right now your assumption is all default rules go to h/w.
And failure to install is not handled.
I know Dave wants to push this in so a followup sets of patches to
address this is fine by me. Otherwise if it is not too much work, please
address this.

cheers,
jamal

  reply	other threads:[~2016-02-17 11:17 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-17  5:15 [net-next PATCH v3 0/8] tc offload for cls_u32 on ixgbe John Fastabend
2016-02-17  5:16 ` [net-next PATCH v3 1/8] net: rework ndo tc op to consume additional qdisc handle parameter John Fastabend
2016-02-17 10:42   ` Jamal Hadi Salim
2016-02-17  5:16 ` [net-next PATCH v3 2/8] net: rework setup_tc ndo op to consume general tc operand John Fastabend
2016-02-17 10:42   ` Jamal Hadi Salim
2016-02-17  5:17 ` [net-next PATCH v3 3/8] net: sched: add cls_u32 offload hooks for netdevs John Fastabend
2016-02-17  7:02   ` Jiri Pirko
2016-02-17 10:59   ` Jamal Hadi Salim
2016-02-17 14:24     ` John Fastabend
2016-02-17 23:07       ` John Fastabend
2016-02-18  9:23         ` Amir Vadai"
2016-02-19  3:37           ` Simon Horman
2016-02-19  8:16           ` Or Gerlitz
2016-02-18 12:14         ` Jamal Hadi Salim
2016-02-18 15:24           ` John Fastabend
2016-02-19 12:52             ` Jamal Hadi Salim
2016-02-17  5:17 ` [net-next PATCH v3 4/8] net: add tc offload feature flag John Fastabend
2016-02-17 11:01   ` Jamal Hadi Salim
2016-02-17  5:18 ` [net-next PATCH v3 5/8] net: tc: helper functions to query action types John Fastabend
2016-02-17  7:03   ` Jiri Pirko
2016-02-17 11:02   ` Jamal Hadi Salim
2016-02-17  5:18 ` [net-next PATCH v3 6/8] net: ixgbe: add minimal parser details for ixgbe John Fastabend
2016-02-17 11:06   ` Jamal Hadi Salim
2016-02-17 15:09     ` David Miller
2016-02-17 15:14       ` John Fastabend
2016-02-17 18:01   ` Rustad, Mark D
2016-02-17 22:34     ` John Fastabend
2016-02-17  5:18 ` [net-next PATCH v3 7/8] net: ixgbe: add support for tc_u32 offload John Fastabend
2016-02-17 11:17   ` Jamal Hadi Salim [this message]
2016-02-17 11:42     ` Jiri Pirko
2016-02-17 11:47       ` Jamal Hadi Salim
2016-02-17 14:25         ` John Fastabend
2016-02-17  5:19 ` [net-next PATCH v3 8/8] net: ixgbe: abort with cls u32 divisor groups greater than 1 John Fastabend
2016-02-17 14:48 ` [net-next PATCH v3 0/8] tc offload for cls_u32 on ixgbe 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=56C456C6.60308@mojatatu.com \
    --to=jhs@mojatatu$(echo .)com \
    --cc=amir@vadai$(echo .)me \
    --cc=davem@davemloft$(echo .)net \
    --cc=jeffrey.t.kirsher@intel$(echo .)com \
    --cc=jiri@resnulli$(echo .)us \
    --cc=john.fastabend@gmail$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    /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