From: Daniel Borkmann <daniel@iogearbox•net>
To: Brenden Blanco <bblanco@plumgrid•com>,
davem@davemloft•net, netdev@vger•kernel.org
Cc: Jamal Hadi Salim <jhs@mojatatu•com>,
Saeed Mahameed <saeedm@dev•mellanox.co.il>,
Martin KaFai Lau <kafai@fb•com>,
Jesper Dangaard Brouer <brouer@redhat•com>,
Ari Saha <as754m@att•com>,
Alexei Starovoitov <alexei.starovoitov@gmail•com>,
Or Gerlitz <gerlitz.or@gmail•com>,
john.fastabend@gmail•com, hannes@stressinduktion•org,
Thomas Graf <tgraf@suug•ch>, Tom Herbert <tom@herbertland•com>,
Tariq Toukan <ttoukan.linux@gmail•com>
Subject: Re: [PATCH v10 04/12] rtnl: add option for setting link xdp prog
Date: Wed, 20 Jul 2016 10:38:49 +0200 [thread overview]
Message-ID: <578F3899.2030605@iogearbox.net> (raw)
In-Reply-To: <1468955817-10604-5-git-send-email-bblanco@plumgrid.com>
On 07/19/2016 09:16 PM, Brenden Blanco wrote:
> Sets the bpf program represented by fd as an early filter in the rx path
> of the netdev. The fd must have been created as BPF_PROG_TYPE_XDP.
> Providing a negative value as fd clears the program. Getting the fd back
> via rtnl is not possible, therefore reading of this value merely
> provides a bool whether the program is valid on the link or not.
>
> Signed-off-by: Brenden Blanco <bblanco@plumgrid•com>
[...]
> @@ -2054,6 +2101,23 @@ static int do_setlink(const struct sk_buff *skb,
> status |= DO_SETLINK_NOTIFY;
> }
>
> + if (tb[IFLA_XDP]) {
> + struct nlattr *xdp[IFLA_XDP_MAX + 1];
> +
> + err = nla_parse_nested(xdp, IFLA_XDP_MAX, tb[IFLA_XDP],
> + ifla_xdp_policy);
> + if (err < 0)
> + goto errout;
> +
> + if (xdp[IFLA_XDP_FD]) {
> + err = dev_change_xdp_fd(dev,
> + nla_get_s32(xdp[IFLA_XDP_FD]));
> + if (err)
> + goto errout;
> + status |= DO_SETLINK_NOTIFY;
> + }
For the setlink case IFLA_XDP_ATTACHED has no meaning currently, so I'd
suggest it would be good to be strict and still add a:
/* Only used in rtnl_fill_ifinfo currently. */
if (xdp[IFLA_XDP_ATTACHED]) {
err = -EINVAL;
goto errout;
}
> + }
> +
> errout:
> if (status & DO_SETLINK_MODIFIED) {
> if (status & DO_SETLINK_NOTIFY)
>
next prev parent reply other threads:[~2016-07-20 8:38 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-19 19:16 [PATCH v10 00/12] Add driver bpf hook for early packet drop and forwarding Brenden Blanco
2016-07-19 19:16 ` [PATCH v10 01/12] bpf: add bpf_prog_add api for bulk prog refcnt Brenden Blanco
2016-07-19 21:46 ` Alexei Starovoitov
2016-07-19 19:16 ` [PATCH v10 02/12] bpf: add XDP prog type for early driver filter Brenden Blanco
2016-07-19 21:33 ` Alexei Starovoitov
2016-07-19 19:16 ` [PATCH v10 03/12] net: add ndo to setup/query xdp prog in adapter rx Brenden Blanco
2016-07-19 19:16 ` [PATCH v10 04/12] rtnl: add option for setting link xdp prog Brenden Blanco
2016-07-20 8:38 ` Daniel Borkmann [this message]
2016-07-20 17:35 ` Brenden Blanco
2016-07-19 19:16 ` [PATCH v10 05/12] net/mlx4_en: add support for fast rx drop bpf program Brenden Blanco
2016-07-19 21:41 ` Alexei Starovoitov
2016-07-20 9:07 ` Daniel Borkmann
2016-07-20 17:33 ` Brenden Blanco
2016-07-24 11:56 ` Jesper Dangaard Brouer
2016-07-24 16:57 ` Tom Herbert
2016-07-24 20:34 ` Daniel Borkmann
2016-07-19 19:16 ` [PATCH v10 06/12] Add sample for adding simple drop program to link Brenden Blanco
2016-07-19 21:44 ` Alexei Starovoitov
2016-07-19 19:16 ` [PATCH v10 07/12] net/mlx4_en: add page recycle to prepare rx ring for tx support Brenden Blanco
2016-07-19 21:49 ` Alexei Starovoitov
2016-07-25 7:35 ` Eric Dumazet
2016-08-03 17:45 ` order-0 vs order-N driver allocation. Was: " Alexei Starovoitov
2016-08-04 16:19 ` Jesper Dangaard Brouer
2016-08-05 0:30 ` Alexander Duyck
2016-08-05 3:55 ` Alexei Starovoitov
2016-08-05 15:15 ` Alexander Duyck
2016-08-05 15:33 ` David Laight
2016-08-05 16:00 ` Alexander Duyck
2016-08-05 7:15 ` Eric Dumazet
2016-08-08 2:15 ` Alexei Starovoitov
2016-08-08 8:01 ` Jesper Dangaard Brouer
2016-08-08 18:34 ` Alexei Starovoitov
2016-08-09 12:14 ` Jesper Dangaard Brouer
2016-07-19 19:16 ` [PATCH v10 08/12] bpf: add XDP_TX xdp_action for direct forwarding Brenden Blanco
2016-07-19 21:53 ` Alexei Starovoitov
2016-07-19 19:16 ` [PATCH v10 09/12] net/mlx4_en: break out tx_desc write into separate function Brenden Blanco
2016-07-19 19:16 ` [PATCH v10 10/12] net/mlx4_en: add xdp forwarding and data write support Brenden Blanco
2016-07-19 19:16 ` [PATCH v10 11/12] bpf: enable direct packet data write for xdp progs Brenden Blanco
2016-07-19 21:59 ` Alexei Starovoitov
2016-07-19 19:16 ` [PATCH v10 12/12] bpf: add sample for xdp forwarding and rewrite Brenden Blanco
2016-07-19 22:05 ` Alexei Starovoitov
2016-07-20 17:38 ` Brenden Blanco
2016-07-27 18:25 ` Jesper Dangaard Brouer
2016-08-03 17:01 ` Tom Herbert
2016-08-03 17:11 ` Alexei Starovoitov
2016-08-03 17:29 ` Tom Herbert
2016-08-03 18:29 ` David Miller
2016-08-03 18:29 ` Brenden Blanco
2016-08-03 18:31 ` David Miller
2016-08-03 19:06 ` Tom Herbert
2016-08-03 22:36 ` Alexei Starovoitov
2016-08-03 23:18 ` Daniel Borkmann
2016-07-20 5:09 ` [PATCH v10 00/12] Add driver bpf hook for early packet drop and forwarding David Miller
[not found] ` <6a09ce5d-f902-a576-e44e-8e1e111ae26b@gmail.com>
2016-07-20 14:08 ` Brenden Blanco
2016-07-20 19:14 ` 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=578F3899.2030605@iogearbox.net \
--to=daniel@iogearbox$(echo .)net \
--cc=alexei.starovoitov@gmail$(echo .)com \
--cc=as754m@att$(echo .)com \
--cc=bblanco@plumgrid$(echo .)com \
--cc=brouer@redhat$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=gerlitz.or@gmail$(echo .)com \
--cc=hannes@stressinduktion$(echo .)org \
--cc=jhs@mojatatu$(echo .)com \
--cc=john.fastabend@gmail$(echo .)com \
--cc=kafai@fb$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=saeedm@dev$(echo .)mellanox.co.il \
--cc=tgraf@suug$(echo .)ch \
--cc=tom@herbertland$(echo .)com \
--cc=ttoukan.linux@gmail$(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