From: Daniel Borkmann <daniel@iogearbox•net>
To: Jakub Kicinski <jakub.kicinski@netronome•com>, netdev@vger•kernel.org
Cc: ast@kernel•org, dinan.gunawardena@netronome•com,
john.fastabend@gmail•com
Subject: Re: [RFC 06/12] nfp: add hardware cls_bpf offload
Date: Thu, 02 Jun 2016 01:03:03 +0200 [thread overview]
Message-ID: <574F69A7.2020903@iogearbox.net> (raw)
In-Reply-To: <1464799814-4453-7-git-send-email-jakub.kicinski@netronome.com>
On 06/01/2016 06:50 PM, Jakub Kicinski wrote:
> Add hardware cls_bpf offload on our smart NICs. Detect if
> capable firmware is loaded and use it to load the code JITed
> with just added translator onto programmable engines.
>
> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome•com>
> Reviewed-by: Dinan Gunawardena <dgunawardena@netronome•com>
> Reviewed-by: Simon Horman <simon.horman@netronome•com>
[...]
> @@ -2386,6 +2387,21 @@ static struct rtnl_link_stats64 *nfp_net_stat64(struct net_device *netdev,
> return stats;
> }
>
> +static int
> +nfp_net_setup_tc(struct net_device *netdev, u32 handle, __be16 proto,
> + struct tc_to_netdev *tc)
> +{
> + struct nfp_net *nn = netdev_priv(netdev);
> +
> + if (TC_H_MAJ(handle) != TC_H_MAJ(TC_H_INGRESS))
> + return -EINVAL;
General question (maybe also to John, since this construct is used elsewhere too),
does this handle the case with sch_clsact since they share the same major code?
F.e. I have the subclass with minor number TC_H_MIN_INGRESS offloaded, but can still
use TC_H_MIN_EGRESS part in SW at the same time? Do we make sure to separate that?
If not, should this info be passed via tc_to_netdev?
> + if (tc->type == TC_SETUP_CLSBPF && nn->cap & NFP_NET_CFG_CTRL_BPF)
> + return nfp_net_bpf_offload(nn, handle, proto, tc->cls_bpf);
> +
> + return -EINVAL;
> +}
> +
> static int nfp_net_set_features(struct net_device *netdev,
> netdev_features_t features)
> {
> @@ -2440,6 +2456,11 @@ static int nfp_net_set_features(struct net_device *netdev,
> new_ctrl &= ~NFP_NET_CFG_CTRL_GATHER;
> }
>
> + if (changed & NETIF_F_HW_TC && nn->ctrl & NFP_NET_CFG_CTRL_BPF) {
> + nn_err(nn, "Cannot disable HW TC offload while in use\n");
> + return -EBUSY;
> + }
> +
next prev parent reply other threads:[~2016-06-01 23:03 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-01 16:50 [RFC 00/12] BPF hardware offload via cls_bpf Jakub Kicinski
2016-06-01 16:50 ` [RFC 01/12] add basic register-field manipulation macros Jakub Kicinski
2016-06-01 20:15 ` Hannes Frederic Sowa
2016-06-01 23:08 ` Jakub Kicinski
2016-06-02 12:01 ` Hannes Frederic Sowa
2016-06-01 16:50 ` [RFC 02/12] net: cls_bpf: add hardware offload Jakub Kicinski
2016-06-01 17:13 ` John Fastabend
2016-06-01 20:59 ` Jakub Kicinski
2016-06-01 19:34 ` Daniel Borkmann
2016-06-02 7:17 ` Jiri Pirko
2016-06-02 12:07 ` Jakub Kicinski
2016-06-01 16:50 ` [RFC 03/12] net: cls_bpf: limit hardware offload by software-only flag Jakub Kicinski
2016-06-01 17:16 ` John Fastabend
2016-06-01 17:16 ` John Fastabend
2016-06-01 19:40 ` Daniel Borkmann
2016-06-01 21:05 ` Jakub Kicinski
2016-06-01 21:21 ` Daniel Borkmann
2016-06-01 21:26 ` Jakub Kicinski
2016-06-01 21:31 ` Daniel Borkmann
2016-06-02 7:24 ` Jiri Pirko
2016-06-01 16:50 ` [RFC 04/12] net: cls_bpf: add support for marking filters as hardware-only Jakub Kicinski
2016-06-01 17:19 ` John Fastabend
2016-06-01 19:57 ` Daniel Borkmann
2016-06-01 16:50 ` [RFC 05/12] nfp: add BPF to NFP code translator Jakub Kicinski
2016-06-01 20:03 ` Daniel Borkmann
2016-06-01 20:09 ` John Fastabend
2016-06-01 20:15 ` Alexei Starovoitov
2016-06-01 21:23 ` Jakub Kicinski
2016-06-02 16:21 ` John Fastabend
2016-06-01 16:50 ` [RFC 06/12] nfp: add hardware cls_bpf offload Jakub Kicinski
2016-06-01 20:20 ` Daniel Borkmann
2016-06-01 20:52 ` Alexei Starovoitov
2016-06-01 21:15 ` Jakub Kicinski
2016-06-01 21:51 ` Alexei Starovoitov
2016-06-01 21:16 ` Daniel Borkmann
2016-06-01 21:36 ` John Fastabend
2016-06-02 6:57 ` Jiri Pirko
2016-06-02 12:13 ` Jakub Kicinski
2016-06-02 12:30 ` Daniel Borkmann
2016-06-01 23:03 ` Daniel Borkmann [this message]
2016-06-01 16:50 ` [RFC 07/12] nfp: add skb mark support to the bpf offload Jakub Kicinski
2016-06-01 21:56 ` Alexei Starovoitov
2016-06-01 22:19 ` Jakub Kicinski
2016-06-01 22:30 ` Daniel Borkmann
2016-06-01 23:01 ` Jakub Kicinski
2016-06-01 16:50 ` [RFC 08/12] net: cls_bpf: allow offloaded filters to update stats Jakub Kicinski
2016-06-01 17:20 ` John Fastabend
2016-06-01 22:09 ` Daniel Borkmann
2016-06-01 16:50 ` [RFC 09/12] nfp: report statistics of offloaded filters Jakub Kicinski
2016-06-01 16:50 ` [RFC 10/12] nfp: bpf: optimize register init Jakub Kicinski
2016-06-01 16:50 ` [RFC 11/12] nfp: bpf: add register rename Jakub Kicinski
2016-06-01 16:50 ` [RFC 12/12] nfp: bpf: add denser mode of execution Jakub Kicinski
2016-06-01 22:01 ` Alexei Starovoitov
2016-06-01 22:47 ` Jakub Kicinski
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=574F69A7.2020903@iogearbox.net \
--to=daniel@iogearbox$(echo .)net \
--cc=ast@kernel$(echo .)org \
--cc=dinan.gunawardena@netronome$(echo .)com \
--cc=jakub.kicinski@netronome$(echo .)com \
--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