[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190423163244.0a665bb0@cakuba.netronome.com>
Date: Tue, 23 Apr 2019 16:32:44 -0700
From: Jakub Kicinski <jakub.kicinski@...ronome.com>
To: Stanislav Fomichev <sdf@...gle.com>
Cc: netdev@...r.kernel.org, bpf@...r.kernel.org, davem@...emloft.net,
ast@...nel.org, daniel@...earbox.net, quentin.monnet@...ronome.com
Subject: Re: [PATCH bpf-next 2/2] bpftool: show flow_dissector attachment
status
On Tue, 23 Apr 2019 16:22:00 -0700, Stanislav Fomichev wrote:
> +static int query_flow_dissector(struct bpf_attach_info *attach_info)
> +{
> + __u32 prog_ids[1] = {0};
> + __u32 prog_cnt = ARRAY_SIZE(prog_ids);
> + __u32 attach_flags;
> + int fd;
> + int err;
reverse christmas tree, please :)
Move the init into the code if necessary.
> + fd = open("/proc/self/ns/net", O_RDONLY);
> + if (fd < 0) {
> + p_err("can't open /proc/self/ns/net: %d",
> + strerror(errno));
> + return -1;
> + }
> + err = bpf_prog_query(fd, BPF_FLOW_DISSECTOR, 0,
> + &attach_flags, prog_ids, &prog_cnt);
> + close(fd);
> + if (err) {
> + if (errno == EINVAL) {
> + /* Older kernel's don't support querying
> + * flow dissector programs.
> + */
> + return 0;
> + }
> + p_err("can't query prog: %s", strerror(errno));
> + return -1;
> + }
> +
> + if (prog_cnt == 1)
> + attach_info->flow_dissector_id = prog_ids[0];
So the count can only be 0 or 1? Hm.
> + return 0;
> +}
Powered by blists - more mailing lists