Commit 53e6af3a authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov

libbpf: remove deprecated XDP APIs

Get rid of deprecated bpf_set_link*() and bpf_get_link*() APIs.
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20220627211527.2245459-4-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 765a3413
...@@ -1164,15 +1164,6 @@ LIBBPF_API int bpf_map__get_next_key(const struct bpf_map *map, ...@@ -1164,15 +1164,6 @@ LIBBPF_API int bpf_map__get_next_key(const struct bpf_map *map,
*/ */
LIBBPF_API long libbpf_get_error(const void *ptr); LIBBPF_API long libbpf_get_error(const void *ptr);
/* XDP related API */
struct xdp_link_info {
__u32 prog_id;
__u32 drv_prog_id;
__u32 hw_prog_id;
__u32 skb_prog_id;
__u8 attach_mode;
};
struct bpf_xdp_set_link_opts { struct bpf_xdp_set_link_opts {
size_t sz; size_t sz;
int old_fd; int old_fd;
...@@ -1180,17 +1171,6 @@ struct bpf_xdp_set_link_opts { ...@@ -1180,17 +1171,6 @@ struct bpf_xdp_set_link_opts {
}; };
#define bpf_xdp_set_link_opts__last_field old_fd #define bpf_xdp_set_link_opts__last_field old_fd
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_attach() instead")
LIBBPF_API int bpf_set_link_xdp_fd(int ifindex, int fd, __u32 flags);
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_attach() instead")
LIBBPF_API int bpf_set_link_xdp_fd_opts(int ifindex, int fd, __u32 flags,
const struct bpf_xdp_set_link_opts *opts);
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_query_id() instead")
LIBBPF_API int bpf_get_link_xdp_id(int ifindex, __u32 *prog_id, __u32 flags);
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_xdp_query() instead")
LIBBPF_API int bpf_get_link_xdp_info(int ifindex, struct xdp_link_info *info,
size_t info_size, __u32 flags);
struct bpf_xdp_attach_opts { struct bpf_xdp_attach_opts {
size_t sz; size_t sz;
int old_prog_fd; int old_prog_fd;
......
...@@ -91,7 +91,6 @@ LIBBPF_0.0.1 { ...@@ -91,7 +91,6 @@ LIBBPF_0.0.1 {
bpf_prog_linfo__lfind_addr_func; bpf_prog_linfo__lfind_addr_func;
bpf_prog_linfo__lfind; bpf_prog_linfo__lfind;
bpf_raw_tracepoint_open; bpf_raw_tracepoint_open;
bpf_set_link_xdp_fd;
bpf_task_fd_query; bpf_task_fd_query;
btf__fd; btf__fd;
btf__find_by_name; btf__find_by_name;
...@@ -120,7 +119,6 @@ LIBBPF_0.0.2 { ...@@ -120,7 +119,6 @@ LIBBPF_0.0.2 {
bpf_map_lookup_elem_flags; bpf_map_lookup_elem_flags;
bpf_object__btf; bpf_object__btf;
bpf_object__find_map_fd_by_name; bpf_object__find_map_fd_by_name;
bpf_get_link_xdp_id;
btf__dedup; btf__dedup;
btf__get_map_kv_tids; btf__get_map_kv_tids;
btf__get_nr_types; btf__get_nr_types;
...@@ -172,7 +170,6 @@ LIBBPF_0.0.5 { ...@@ -172,7 +170,6 @@ LIBBPF_0.0.5 {
LIBBPF_0.0.6 { LIBBPF_0.0.6 {
global: global:
bpf_get_link_xdp_info;
bpf_map__get_pin_path; bpf_map__get_pin_path;
bpf_map__is_pinned; bpf_map__is_pinned;
bpf_map__set_pin_path; bpf_map__set_pin_path;
...@@ -231,7 +228,6 @@ LIBBPF_0.0.8 { ...@@ -231,7 +228,6 @@ LIBBPF_0.0.8 {
bpf_program__is_lsm; bpf_program__is_lsm;
bpf_program__set_attach_target; bpf_program__set_attach_target;
bpf_program__set_lsm; bpf_program__set_lsm;
bpf_set_link_xdp_fd_opts;
} LIBBPF_0.0.7; } LIBBPF_0.0.7;
LIBBPF_0.0.9 { LIBBPF_0.0.9 {
......
...@@ -27,6 +27,14 @@ typedef int (*libbpf_dump_nlmsg_t)(void *cookie, void *msg, struct nlattr **tb); ...@@ -27,6 +27,14 @@ typedef int (*libbpf_dump_nlmsg_t)(void *cookie, void *msg, struct nlattr **tb);
typedef int (*__dump_nlmsg_t)(struct nlmsghdr *nlmsg, libbpf_dump_nlmsg_t, typedef int (*__dump_nlmsg_t)(struct nlmsghdr *nlmsg, libbpf_dump_nlmsg_t,
void *cookie); void *cookie);
struct xdp_link_info {
__u32 prog_id;
__u32 drv_prog_id;
__u32 hw_prog_id;
__u32 skb_prog_id;
__u8 attach_mode;
};
struct xdp_id_md { struct xdp_id_md {
int ifindex; int ifindex;
__u32 flags; __u32 flags;
...@@ -288,31 +296,6 @@ int bpf_xdp_detach(int ifindex, __u32 flags, const struct bpf_xdp_attach_opts *o ...@@ -288,31 +296,6 @@ int bpf_xdp_detach(int ifindex, __u32 flags, const struct bpf_xdp_attach_opts *o
return bpf_xdp_attach(ifindex, -1, flags, opts); return bpf_xdp_attach(ifindex, -1, flags, opts);
} }
int bpf_set_link_xdp_fd_opts(int ifindex, int fd, __u32 flags,
const struct bpf_xdp_set_link_opts *opts)
{
int old_fd = -1, ret;
if (!OPTS_VALID(opts, bpf_xdp_set_link_opts))
return libbpf_err(-EINVAL);
if (OPTS_HAS(opts, old_fd)) {
old_fd = OPTS_GET(opts, old_fd, -1);
flags |= XDP_FLAGS_REPLACE;
}
ret = __bpf_set_link_xdp_fd_replace(ifindex, fd, old_fd, flags);
return libbpf_err(ret);
}
int bpf_set_link_xdp_fd(int ifindex, int fd, __u32 flags)
{
int ret;
ret = __bpf_set_link_xdp_fd_replace(ifindex, fd, 0, flags);
return libbpf_err(ret);
}
static int __dump_link_nlmsg(struct nlmsghdr *nlh, static int __dump_link_nlmsg(struct nlmsghdr *nlh,
libbpf_dump_nlmsg_t dump_link_nlmsg, void *cookie) libbpf_dump_nlmsg_t dump_link_nlmsg, void *cookie)
{ {
...@@ -413,30 +396,6 @@ int bpf_xdp_query(int ifindex, int xdp_flags, struct bpf_xdp_query_opts *opts) ...@@ -413,30 +396,6 @@ int bpf_xdp_query(int ifindex, int xdp_flags, struct bpf_xdp_query_opts *opts)
return 0; return 0;
} }
int bpf_get_link_xdp_info(int ifindex, struct xdp_link_info *info,
size_t info_size, __u32 flags)
{
LIBBPF_OPTS(bpf_xdp_query_opts, opts);
size_t sz;
int err;
if (!info_size)
return libbpf_err(-EINVAL);
err = bpf_xdp_query(ifindex, flags, &opts);
if (err)
return libbpf_err(err);
/* struct xdp_link_info field layout matches struct bpf_xdp_query_opts
* layout after sz field
*/
sz = min(info_size, offsetofend(struct xdp_link_info, attach_mode));
memcpy(info, &opts.prog_id, sz);
memset((void *)info + sz, 0, info_size - sz);
return 0;
}
int bpf_xdp_query_id(int ifindex, int flags, __u32 *prog_id) int bpf_xdp_query_id(int ifindex, int flags, __u32 *prog_id)
{ {
LIBBPF_OPTS(bpf_xdp_query_opts, opts); LIBBPF_OPTS(bpf_xdp_query_opts, opts);
...@@ -463,11 +422,6 @@ int bpf_xdp_query_id(int ifindex, int flags, __u32 *prog_id) ...@@ -463,11 +422,6 @@ int bpf_xdp_query_id(int ifindex, int flags, __u32 *prog_id)
} }
int bpf_get_link_xdp_id(int ifindex, __u32 *prog_id, __u32 flags)
{
return bpf_xdp_query_id(ifindex, flags, prog_id);
}
typedef int (*qdisc_config_t)(struct libbpf_nla_req *req); typedef int (*qdisc_config_t)(struct libbpf_nla_req *req);
static int clsact_config(struct libbpf_nla_req *req) static int clsact_config(struct libbpf_nla_req *req)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment