mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2026-01-26 14:13:24 +00:00
uapi: update kernel headers
Add net_shaper.h and updates to bpf.h and capability.h Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
5734dc8aa7
commit
559b35abb5
@ -450,6 +450,7 @@ union bpf_iter_link_info {
|
||||
* * **struct bpf_map_info**
|
||||
* * **struct bpf_btf_info**
|
||||
* * **struct bpf_link_info**
|
||||
* * **struct bpf_token_info**
|
||||
*
|
||||
* Return
|
||||
* Returns zero on success. On error, -1 is returned and *errno*
|
||||
@ -906,6 +907,17 @@ union bpf_iter_link_info {
|
||||
* A new file descriptor (a nonnegative integer), or -1 if an
|
||||
* error occurred (in which case, *errno* is set appropriately).
|
||||
*
|
||||
* BPF_PROG_STREAM_READ_BY_FD
|
||||
* Description
|
||||
* Read data of a program's BPF stream. The program is identified
|
||||
* by *prog_fd*, and the stream is identified by the *stream_id*.
|
||||
* The data is copied to a buffer pointed to by *stream_buf*, and
|
||||
* filled less than or equal to *stream_buf_len* bytes.
|
||||
*
|
||||
* Return
|
||||
* Number of bytes read from the stream on success, or -1 if an
|
||||
* error occurred (in which case, *errno* is set appropriately).
|
||||
*
|
||||
* NOTES
|
||||
* eBPF objects (maps and programs) can be shared between processes.
|
||||
*
|
||||
@ -961,6 +973,7 @@ enum bpf_cmd {
|
||||
BPF_LINK_DETACH,
|
||||
BPF_PROG_BIND_MAP,
|
||||
BPF_TOKEN_CREATE,
|
||||
BPF_PROG_STREAM_READ_BY_FD,
|
||||
__MAX_BPF_CMD,
|
||||
};
|
||||
|
||||
@ -1463,6 +1476,11 @@ struct bpf_stack_build_id {
|
||||
|
||||
#define BPF_OBJ_NAME_LEN 16U
|
||||
|
||||
enum {
|
||||
BPF_STREAM_STDOUT = 1,
|
||||
BPF_STREAM_STDERR = 2,
|
||||
};
|
||||
|
||||
union bpf_attr {
|
||||
struct { /* anonymous struct used by BPF_MAP_CREATE command */
|
||||
__u32 map_type; /* one of enum bpf_map_type */
|
||||
@ -1794,6 +1812,13 @@ union bpf_attr {
|
||||
};
|
||||
__u64 expected_revision;
|
||||
} netkit;
|
||||
struct {
|
||||
union {
|
||||
__u32 relative_fd;
|
||||
__u32 relative_id;
|
||||
};
|
||||
__u64 expected_revision;
|
||||
} cgroup;
|
||||
};
|
||||
} link_create;
|
||||
|
||||
@ -1842,6 +1867,13 @@ union bpf_attr {
|
||||
__u32 bpffs_fd;
|
||||
} token_create;
|
||||
|
||||
struct {
|
||||
__aligned_u64 stream_buf;
|
||||
__u32 stream_buf_len;
|
||||
__u32 stream_id;
|
||||
__u32 prog_fd;
|
||||
} prog_stream_read;
|
||||
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* The description below is an attempt at providing documentation to eBPF
|
||||
@ -2403,7 +2435,7 @@ union bpf_attr {
|
||||
* into it. An example is available in file
|
||||
* *samples/bpf/trace_output_user.c* in the Linux kernel source
|
||||
* tree (the eBPF program counterpart is in
|
||||
* *samples/bpf/trace_output_kern.c*).
|
||||
* *samples/bpf/trace_output.bpf.c*).
|
||||
*
|
||||
* **bpf_perf_event_output**\ () achieves better performance
|
||||
* than **bpf_trace_printk**\ () for sharing data with user
|
||||
@ -6653,11 +6685,15 @@ struct bpf_link_info {
|
||||
struct {
|
||||
__aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
|
||||
__u32 tp_name_len; /* in/out: tp_name buffer len */
|
||||
__u32 :32;
|
||||
__u64 cookie;
|
||||
} raw_tracepoint;
|
||||
struct {
|
||||
__u32 attach_type;
|
||||
__u32 target_obj_id; /* prog_id for PROG_EXT, otherwise btf object id */
|
||||
__u32 target_btf_id; /* BTF type id inside the object */
|
||||
__u32 :32;
|
||||
__u64 cookie;
|
||||
} tracing;
|
||||
struct {
|
||||
__u64 cgroup_id;
|
||||
@ -6768,6 +6804,13 @@ struct bpf_link_info {
|
||||
};
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_token_info {
|
||||
__u64 allowed_cmds;
|
||||
__u64 allowed_maps;
|
||||
__u64 allowed_progs;
|
||||
__u64 allowed_attachs;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
/* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
|
||||
* by user and intended to be used by socket (e.g. to bind to, depends on
|
||||
* attach type).
|
||||
|
||||
@ -6,9 +6,10 @@
|
||||
* Alexander Kjeldaas <astor@guardian.no>
|
||||
* with help from Aleph1, Roland Buresund and Andrew Main.
|
||||
*
|
||||
* See here for the libcap library ("POSIX draft" compliance):
|
||||
* See here for the libcap2 library (compliant with Section 25 of
|
||||
* the withdrawn POSIX 1003.1e Draft 17):
|
||||
*
|
||||
* ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/
|
||||
* https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_CAPABILITY_H
|
||||
|
||||
95
include/uapi/linux/net_shaper.h
Normal file
95
include/uapi/linux/net_shaper.h
Normal file
@ -0,0 +1,95 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* Do not edit directly, auto-generated from: */
|
||||
/* Documentation/netlink/specs/net_shaper.yaml */
|
||||
/* YNL-GEN uapi header */
|
||||
|
||||
#ifndef _LINUX_NET_SHAPER_H
|
||||
#define _LINUX_NET_SHAPER_H
|
||||
|
||||
#define NET_SHAPER_FAMILY_NAME "net-shaper"
|
||||
#define NET_SHAPER_FAMILY_VERSION 1
|
||||
|
||||
/**
|
||||
* enum net_shaper_scope - Defines the shaper @id interpretation.
|
||||
* @NET_SHAPER_SCOPE_UNSPEC: The scope is not specified.
|
||||
* @NET_SHAPER_SCOPE_NETDEV: The main shaper for the given network device.
|
||||
* @NET_SHAPER_SCOPE_QUEUE: The shaper is attached to the given device queue,
|
||||
* the @id represents the queue number.
|
||||
* @NET_SHAPER_SCOPE_NODE: The shaper allows grouping of queues or other node
|
||||
* shapers; can be nested in either @netdev shapers or other @node shapers,
|
||||
* allowing placement in any location of the scheduling tree, except leaves
|
||||
* and root.
|
||||
*/
|
||||
enum net_shaper_scope {
|
||||
NET_SHAPER_SCOPE_UNSPEC,
|
||||
NET_SHAPER_SCOPE_NETDEV,
|
||||
NET_SHAPER_SCOPE_QUEUE,
|
||||
NET_SHAPER_SCOPE_NODE,
|
||||
|
||||
/* private: */
|
||||
__NET_SHAPER_SCOPE_MAX,
|
||||
NET_SHAPER_SCOPE_MAX = (__NET_SHAPER_SCOPE_MAX - 1)
|
||||
};
|
||||
|
||||
/**
|
||||
* enum net_shaper_metric - Different metric supported by the shaper.
|
||||
* @NET_SHAPER_METRIC_BPS: Shaper operates on a bits per second basis.
|
||||
* @NET_SHAPER_METRIC_PPS: Shaper operates on a packets per second basis.
|
||||
*/
|
||||
enum net_shaper_metric {
|
||||
NET_SHAPER_METRIC_BPS,
|
||||
NET_SHAPER_METRIC_PPS,
|
||||
};
|
||||
|
||||
enum {
|
||||
NET_SHAPER_A_HANDLE = 1,
|
||||
NET_SHAPER_A_METRIC,
|
||||
NET_SHAPER_A_BW_MIN,
|
||||
NET_SHAPER_A_BW_MAX,
|
||||
NET_SHAPER_A_BURST,
|
||||
NET_SHAPER_A_PRIORITY,
|
||||
NET_SHAPER_A_WEIGHT,
|
||||
NET_SHAPER_A_IFINDEX,
|
||||
NET_SHAPER_A_PARENT,
|
||||
NET_SHAPER_A_LEAVES,
|
||||
|
||||
__NET_SHAPER_A_MAX,
|
||||
NET_SHAPER_A_MAX = (__NET_SHAPER_A_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
NET_SHAPER_A_HANDLE_SCOPE = 1,
|
||||
NET_SHAPER_A_HANDLE_ID,
|
||||
|
||||
__NET_SHAPER_A_HANDLE_MAX,
|
||||
NET_SHAPER_A_HANDLE_MAX = (__NET_SHAPER_A_HANDLE_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
NET_SHAPER_A_CAPS_IFINDEX = 1,
|
||||
NET_SHAPER_A_CAPS_SCOPE,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_NESTING,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_BW_MIN,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_BW_MAX,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_BURST,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_PRIORITY,
|
||||
NET_SHAPER_A_CAPS_SUPPORT_WEIGHT,
|
||||
|
||||
__NET_SHAPER_A_CAPS_MAX,
|
||||
NET_SHAPER_A_CAPS_MAX = (__NET_SHAPER_A_CAPS_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
NET_SHAPER_CMD_GET = 1,
|
||||
NET_SHAPER_CMD_SET,
|
||||
NET_SHAPER_CMD_DELETE,
|
||||
NET_SHAPER_CMD_GROUP,
|
||||
NET_SHAPER_CMD_CAP_GET,
|
||||
|
||||
__NET_SHAPER_CMD_MAX,
|
||||
NET_SHAPER_CMD_MAX = (__NET_SHAPER_CMD_MAX - 1)
|
||||
};
|
||||
|
||||
#endif /* _LINUX_NET_SHAPER_H */
|
||||
Loading…
x
Reference in New Issue
Block a user