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:
Stephen Hemminger 2025-08-05 10:47:01 -07:00
parent 5734dc8aa7
commit 559b35abb5
3 changed files with 142 additions and 3 deletions

View File

@ -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).

View File

@ -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

View 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 */