|
|
8def76 |
From 356758b3303ab24b6fe8dccf94ed98ed7cbad224 Mon Sep 17 00:00:00 2001
|
|
|
8def76 |
From: Andrea Claudi <aclaudi@redhat.com>
|
|
|
8def76 |
Date: Thu, 13 Jun 2019 14:37:57 +0200
|
|
|
8def76 |
Subject: [PATCH] Update kernel headers
|
|
|
8def76 |
|
|
|
8def76 |
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1716361
|
|
|
8def76 |
Upstream Status: iproute2.git commit 17689d3075c8b
|
|
|
8def76 |
|
|
|
8def76 |
commit 17689d3075c8b9a29b8f398a57defb9dcabafe81
|
|
|
8def76 |
Author: David Ahern <dsahern@gmail.com>
|
|
|
8def76 |
Date: Wed Dec 19 12:47:29 2018 -0800
|
|
|
8def76 |
|
|
|
8def76 |
Update kernel headers
|
|
|
8def76 |
|
|
|
8def76 |
Update kernel headers to commit
|
|
|
8def76 |
055722716c39 ("tipc: fix uninitialized value for broadcast retransmission")
|
|
|
8def76 |
|
|
|
8def76 |
Signed-off-by: David Ahern <dsahern@gmail.com>
|
|
|
8def76 |
---
|
|
|
8def76 |
include/uapi/linux/bpf.h | 175 +++++++++++++++++++++--------
|
|
|
8def76 |
include/uapi/linux/btf.h | 18 ++-
|
|
|
8def76 |
include/uapi/linux/if_bridge.h | 21 ++++
|
|
|
8def76 |
include/uapi/linux/if_link.h | 1 +
|
|
|
8def76 |
include/uapi/linux/if_tun.h | 1 +
|
|
|
8def76 |
include/uapi/linux/neighbour.h | 1 +
|
|
|
8def76 |
include/uapi/linux/net_namespace.h | 2 +
|
|
|
8def76 |
include/uapi/linux/snmp.h | 1 +
|
|
|
8def76 |
8 files changed, 171 insertions(+), 49 deletions(-)
|
|
|
8def76 |
|
|
|
8def76 |
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
|
|
|
8def76 |
index ff651ca661308..960a7f0a4d99b 100644
|
|
|
8def76 |
--- a/include/uapi/linux/bpf.h
|
|
|
8def76 |
+++ b/include/uapi/linux/bpf.h
|
|
|
8def76 |
@@ -232,6 +232,20 @@ enum bpf_attach_type {
|
|
|
8def76 |
*/
|
|
|
8def76 |
#define BPF_F_STRICT_ALIGNMENT (1U << 0)
|
|
|
8def76 |
|
|
|
8def76 |
+/* If BPF_F_ANY_ALIGNMENT is used in BPF_PROF_LOAD command, the
|
|
|
8def76 |
+ * verifier will allow any alignment whatsoever. On platforms
|
|
|
8def76 |
+ * with strict alignment requirements for loads ands stores (such
|
|
|
8def76 |
+ * as sparc and mips) the verifier validates that all loads and
|
|
|
8def76 |
+ * stores provably follow this requirement. This flag turns that
|
|
|
8def76 |
+ * checking and enforcement off.
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * It is mostly used for testing when we want to validate the
|
|
|
8def76 |
+ * context and memory access aspects of the verifier, but because
|
|
|
8def76 |
+ * of an unaligned access the alignment check would trigger before
|
|
|
8def76 |
+ * the one we are interested in.
|
|
|
8def76 |
+ */
|
|
|
8def76 |
+#define BPF_F_ANY_ALIGNMENT (1U << 1)
|
|
|
8def76 |
+
|
|
|
8def76 |
/* when bpf_ldimm64->src_reg == BPF_PSEUDO_MAP_FD, bpf_ldimm64->imm == fd */
|
|
|
8def76 |
#define BPF_PSEUDO_MAP_FD 1
|
|
|
8def76 |
|
|
|
8def76 |
@@ -257,9 +271,6 @@ enum bpf_attach_type {
|
|
|
8def76 |
/* Specify numa node during map creation */
|
|
|
8def76 |
#define BPF_F_NUMA_NODE (1U << 2)
|
|
|
8def76 |
|
|
|
8def76 |
-/* flags for BPF_PROG_QUERY */
|
|
|
8def76 |
-#define BPF_F_QUERY_EFFECTIVE (1U << 0)
|
|
|
8def76 |
-
|
|
|
8def76 |
#define BPF_OBJ_NAME_LEN 16U
|
|
|
8def76 |
|
|
|
8def76 |
/* Flags for accessing BPF object */
|
|
|
8def76 |
@@ -269,6 +280,12 @@ enum bpf_attach_type {
|
|
|
8def76 |
/* Flag for stack_map, store build_id+offset instead of pointer */
|
|
|
8def76 |
#define BPF_F_STACK_BUILD_ID (1U << 5)
|
|
|
8def76 |
|
|
|
8def76 |
+/* Zero-initialize hash function seed. This should only be used for testing. */
|
|
|
8def76 |
+#define BPF_F_ZERO_SEED (1U << 6)
|
|
|
8def76 |
+
|
|
|
8def76 |
+/* flags for BPF_PROG_QUERY */
|
|
|
8def76 |
+#define BPF_F_QUERY_EFFECTIVE (1U << 0)
|
|
|
8def76 |
+
|
|
|
8def76 |
enum bpf_stack_build_id_status {
|
|
|
8def76 |
/* user space need an empty entry to identify end of a trace */
|
|
|
8def76 |
BPF_STACK_BUILD_ID_EMPTY = 0,
|
|
|
8def76 |
@@ -335,6 +352,13 @@ union bpf_attr {
|
|
|
8def76 |
* (context accesses, allowed helpers, etc).
|
|
|
8def76 |
*/
|
|
|
8def76 |
__u32 expected_attach_type;
|
|
|
8def76 |
+ __u32 prog_btf_fd; /* fd pointing to BTF type data */
|
|
|
8def76 |
+ __u32 func_info_rec_size; /* userspace bpf_func_info size */
|
|
|
8def76 |
+ __aligned_u64 func_info; /* func info */
|
|
|
8def76 |
+ __u32 func_info_cnt; /* number of bpf_func_info records */
|
|
|
8def76 |
+ __u32 line_info_rec_size; /* userspace bpf_line_info size */
|
|
|
8def76 |
+ __aligned_u64 line_info; /* line info */
|
|
|
8def76 |
+ __u32 line_info_cnt; /* number of bpf_line_info records */
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
struct { /* anonymous struct used by BPF_OBJ_* commands */
|
|
|
8def76 |
@@ -353,8 +377,11 @@ union bpf_attr {
|
|
|
8def76 |
struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
|
|
|
8def76 |
__u32 prog_fd;
|
|
|
8def76 |
__u32 retval;
|
|
|
8def76 |
- __u32 data_size_in;
|
|
|
8def76 |
- __u32 data_size_out;
|
|
|
8def76 |
+ __u32 data_size_in; /* input: len of data_in */
|
|
|
8def76 |
+ __u32 data_size_out; /* input/output: len of data_out
|
|
|
8def76 |
+ * returns ENOSPC if data_out
|
|
|
8def76 |
+ * is too small.
|
|
|
8def76 |
+ */
|
|
|
8def76 |
__aligned_u64 data_in;
|
|
|
8def76 |
__aligned_u64 data_out;
|
|
|
8def76 |
__u32 repeat;
|
|
|
8def76 |
@@ -475,18 +502,6 @@ union bpf_attr {
|
|
|
8def76 |
* Return
|
|
|
8def76 |
* 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
*
|
|
|
8def76 |
- * int bpf_map_pop_elem(struct bpf_map *map, void *value)
|
|
|
8def76 |
- * Description
|
|
|
8def76 |
- * Pop an element from *map*.
|
|
|
8def76 |
- * Return
|
|
|
8def76 |
- * 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
- *
|
|
|
8def76 |
- * int bpf_map_peek_elem(struct bpf_map *map, void *value)
|
|
|
8def76 |
- * Description
|
|
|
8def76 |
- * Get an element from *map* without removing it.
|
|
|
8def76 |
- * Return
|
|
|
8def76 |
- * 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
- *
|
|
|
8def76 |
* int bpf_probe_read(void *dst, u32 size, const void *src)
|
|
|
8def76 |
* Description
|
|
|
8def76 |
* For tracing programs, safely attempt to read *size* bytes from
|
|
|
8def76 |
@@ -1910,9 +1925,9 @@ union bpf_attr {
|
|
|
8def76 |
* is set to metric from route (IPv4/IPv6 only), and ifindex
|
|
|
8def76 |
* is set to the device index of the nexthop from the FIB lookup.
|
|
|
8def76 |
*
|
|
|
8def76 |
- * *plen* argument is the size of the passed in struct.
|
|
|
8def76 |
- * *flags* argument can be a combination of one or more of the
|
|
|
8def76 |
- * following values:
|
|
|
8def76 |
+ * *plen* argument is the size of the passed in struct.
|
|
|
8def76 |
+ * *flags* argument can be a combination of one or more of the
|
|
|
8def76 |
+ * following values:
|
|
|
8def76 |
*
|
|
|
8def76 |
* **BPF_FIB_LOOKUP_DIRECT**
|
|
|
8def76 |
* Do a direct table lookup vs full lookup using FIB
|
|
|
8def76 |
@@ -1921,9 +1936,9 @@ union bpf_attr {
|
|
|
8def76 |
* Perform lookup from an egress perspective (default is
|
|
|
8def76 |
* ingress).
|
|
|
8def76 |
*
|
|
|
8def76 |
- * *ctx* is either **struct xdp_md** for XDP programs or
|
|
|
8def76 |
- * **struct sk_buff** tc cls_act programs.
|
|
|
8def76 |
- * Return
|
|
|
8def76 |
+ * *ctx* is either **struct xdp_md** for XDP programs or
|
|
|
8def76 |
+ * **struct sk_buff** tc cls_act programs.
|
|
|
8def76 |
+ * Return
|
|
|
8def76 |
* * < 0 if any input argument is invalid
|
|
|
8def76 |
* * 0 on success (packet is forwarded, nexthop neighbor exists)
|
|
|
8def76 |
* * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
|
|
|
8def76 |
@@ -2068,8 +2083,8 @@ union bpf_attr {
|
|
|
8def76 |
* translated to a keycode using the rc keymap, and reported as
|
|
|
8def76 |
* an input key down event. After a period a key up event is
|
|
|
8def76 |
* generated. This period can be extended by calling either
|
|
|
8def76 |
- * **bpf_rc_keydown** () again with the same values, or calling
|
|
|
8def76 |
- * **bpf_rc_repeat** ().
|
|
|
8def76 |
+ * **bpf_rc_keydown**\ () again with the same values, or calling
|
|
|
8def76 |
+ * **bpf_rc_repeat**\ ().
|
|
|
8def76 |
*
|
|
|
8def76 |
* Some protocols include a toggle bit, in case the button was
|
|
|
8def76 |
* released and pressed again between consecutive scancodes.
|
|
|
8def76 |
@@ -2152,21 +2167,22 @@ union bpf_attr {
|
|
|
8def76 |
* The *flags* meaning is specific for each map type,
|
|
|
8def76 |
* and has to be 0 for cgroup local storage.
|
|
|
8def76 |
*
|
|
|
8def76 |
- * Depending on the bpf program type, a local storage area
|
|
|
8def76 |
- * can be shared between multiple instances of the bpf program,
|
|
|
8def76 |
+ * Depending on the BPF program type, a local storage area
|
|
|
8def76 |
+ * can be shared between multiple instances of the BPF program,
|
|
|
8def76 |
* running simultaneously.
|
|
|
8def76 |
*
|
|
|
8def76 |
* A user should care about the synchronization by himself.
|
|
|
8def76 |
- * For example, by using the BPF_STX_XADD instruction to alter
|
|
|
8def76 |
+ * For example, by using the **BPF_STX_XADD** instruction to alter
|
|
|
8def76 |
* the shared data.
|
|
|
8def76 |
* Return
|
|
|
8def76 |
- * Pointer to the local storage area.
|
|
|
8def76 |
+ * A pointer to the local storage area.
|
|
|
8def76 |
*
|
|
|
8def76 |
* int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
|
|
|
8def76 |
* Description
|
|
|
8def76 |
- * Select a SO_REUSEPORT sk from a BPF_MAP_TYPE_REUSEPORT_ARRAY map
|
|
|
8def76 |
- * It checks the selected sk is matching the incoming
|
|
|
8def76 |
- * request in the skb.
|
|
|
8def76 |
+ * Select a **SO_REUSEPORT** socket from a
|
|
|
8def76 |
+ * **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
|
|
|
8def76 |
+ * It checks the selected socket is matching the incoming
|
|
|
8def76 |
+ * request in the socket buffer.
|
|
|
8def76 |
* Return
|
|
|
8def76 |
* 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
*
|
|
|
8def76 |
@@ -2174,7 +2190,7 @@ union bpf_attr {
|
|
|
8def76 |
* Description
|
|
|
8def76 |
* Look for TCP socket matching *tuple*, optionally in a child
|
|
|
8def76 |
* network namespace *netns*. The return value must be checked,
|
|
|
8def76 |
- * and if non-NULL, released via **bpf_sk_release**\ ().
|
|
|
8def76 |
+ * and if non-**NULL**, released via **bpf_sk_release**\ ().
|
|
|
8def76 |
*
|
|
|
8def76 |
* The *ctx* should point to the context of the program, such as
|
|
|
8def76 |
* the skb or socket (depending on the hook in use). This is used
|
|
|
8def76 |
@@ -2202,15 +2218,15 @@ union bpf_attr {
|
|
|
8def76 |
* This helper is available only if the kernel was compiled with
|
|
|
8def76 |
* **CONFIG_NET** configuration option.
|
|
|
8def76 |
* Return
|
|
|
8def76 |
- * Pointer to *struct bpf_sock*, or NULL in case of failure.
|
|
|
8def76 |
- * For sockets with reuseport option, the *struct bpf_sock*
|
|
|
8def76 |
- * result is from reuse->socks[] using the hash of the tuple.
|
|
|
8def76 |
+ * Pointer to **struct bpf_sock**, or **NULL** in case of failure.
|
|
|
8def76 |
+ * For sockets with reuseport option, the **struct bpf_sock**
|
|
|
8def76 |
+ * result is from **reuse->socks**\ [] using the hash of the tuple.
|
|
|
8def76 |
*
|
|
|
8def76 |
* struct bpf_sock *bpf_sk_lookup_udp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u64 netns, u64 flags)
|
|
|
8def76 |
* Description
|
|
|
8def76 |
* Look for UDP socket matching *tuple*, optionally in a child
|
|
|
8def76 |
* network namespace *netns*. The return value must be checked,
|
|
|
8def76 |
- * and if non-NULL, released via **bpf_sk_release**\ ().
|
|
|
8def76 |
+ * and if non-**NULL**, released via **bpf_sk_release**\ ().
|
|
|
8def76 |
*
|
|
|
8def76 |
* The *ctx* should point to the context of the program, such as
|
|
|
8def76 |
* the skb or socket (depending on the hook in use). This is used
|
|
|
8def76 |
@@ -2238,33 +2254,71 @@ union bpf_attr {
|
|
|
8def76 |
* This helper is available only if the kernel was compiled with
|
|
|
8def76 |
* **CONFIG_NET** configuration option.
|
|
|
8def76 |
* Return
|
|
|
8def76 |
- * Pointer to *struct bpf_sock*, or NULL in case of failure.
|
|
|
8def76 |
- * For sockets with reuseport option, the *struct bpf_sock*
|
|
|
8def76 |
- * result is from reuse->socks[] using the hash of the tuple.
|
|
|
8def76 |
+ * Pointer to **struct bpf_sock**, or **NULL** in case of failure.
|
|
|
8def76 |
+ * For sockets with reuseport option, the **struct bpf_sock**
|
|
|
8def76 |
+ * result is from **reuse->socks**\ [] using the hash of the tuple.
|
|
|
8def76 |
*
|
|
|
8def76 |
- * int bpf_sk_release(struct bpf_sock *sk)
|
|
|
8def76 |
+ * int bpf_sk_release(struct bpf_sock *sock)
|
|
|
8def76 |
* Description
|
|
|
8def76 |
- * Release the reference held by *sock*. *sock* must be a non-NULL
|
|
|
8def76 |
- * pointer that was returned from bpf_sk_lookup_xxx\ ().
|
|
|
8def76 |
+ * Release the reference held by *sock*. *sock* must be a
|
|
|
8def76 |
+ * non-**NULL** pointer that was returned from
|
|
|
8def76 |
+ * **bpf_sk_lookup_xxx**\ ().
|
|
|
8def76 |
* Return
|
|
|
8def76 |
* 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
*
|
|
|
8def76 |
+ * int bpf_map_pop_elem(struct bpf_map *map, void *value)
|
|
|
8def76 |
+ * Description
|
|
|
8def76 |
+ * Pop an element from *map*.
|
|
|
8def76 |
+ * Return
|
|
|
8def76 |
+ * 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * int bpf_map_peek_elem(struct bpf_map *map, void *value)
|
|
|
8def76 |
+ * Description
|
|
|
8def76 |
+ * Get an element from *map* without removing it.
|
|
|
8def76 |
+ * Return
|
|
|
8def76 |
+ * 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
+ *
|
|
|
8def76 |
* int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
|
|
|
8def76 |
* Description
|
|
|
8def76 |
- * For socket policies, insert *len* bytes into msg at offset
|
|
|
8def76 |
+ * For socket policies, insert *len* bytes into *msg* at offset
|
|
|
8def76 |
* *start*.
|
|
|
8def76 |
*
|
|
|
8def76 |
* If a program of type **BPF_PROG_TYPE_SK_MSG** is run on a
|
|
|
8def76 |
- * *msg* it may want to insert metadata or options into the msg.
|
|
|
8def76 |
+ * *msg* it may want to insert metadata or options into the *msg*.
|
|
|
8def76 |
* This can later be read and used by any of the lower layer BPF
|
|
|
8def76 |
* hooks.
|
|
|
8def76 |
*
|
|
|
8def76 |
* This helper may fail if under memory pressure (a malloc
|
|
|
8def76 |
* fails) in these cases BPF programs will get an appropriate
|
|
|
8def76 |
* error and BPF programs will need to handle them.
|
|
|
8def76 |
+ * Return
|
|
|
8def76 |
+ * 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
*
|
|
|
8def76 |
+ * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags)
|
|
|
8def76 |
+ * Description
|
|
|
8def76 |
+ * Will remove *pop* bytes from a *msg* starting at byte *start*.
|
|
|
8def76 |
+ * This may result in **ENOMEM** errors under certain situations if
|
|
|
8def76 |
+ * an allocation and copy are required due to a full ring buffer.
|
|
|
8def76 |
+ * However, the helper will try to avoid doing the allocation
|
|
|
8def76 |
+ * if possible. Other errors can occur if input parameters are
|
|
|
8def76 |
+ * invalid either due to *start* byte not being valid part of *msg*
|
|
|
8def76 |
+ * payload and/or *pop* value being to large.
|
|
|
8def76 |
* Return
|
|
|
8def76 |
* 0 on success, or a negative error in case of failure.
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * int bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
|
|
|
8def76 |
+ * Description
|
|
|
8def76 |
+ * This helper is used in programs implementing IR decoding, to
|
|
|
8def76 |
+ * report a successfully decoded pointer movement.
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * The *ctx* should point to the lirc sample as passed into
|
|
|
8def76 |
+ * the program.
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * This helper is only available is the kernel was compiled with
|
|
|
8def76 |
+ * the **CONFIG_BPF_LIRC_MODE2** configuration option set to
|
|
|
8def76 |
+ * "**y**".
|
|
|
8def76 |
+ * Return
|
|
|
8def76 |
+ * 0
|
|
|
8def76 |
*/
|
|
|
8def76 |
#define __BPF_FUNC_MAPPER(FN) \
|
|
|
8def76 |
FN(unspec), \
|
|
|
8def76 |
@@ -2357,7 +2411,9 @@ union bpf_attr {
|
|
|
8def76 |
FN(map_push_elem), \
|
|
|
8def76 |
FN(map_pop_elem), \
|
|
|
8def76 |
FN(map_peek_elem), \
|
|
|
8def76 |
- FN(msg_push_data),
|
|
|
8def76 |
+ FN(msg_push_data), \
|
|
|
8def76 |
+ FN(msg_pop_data), \
|
|
|
8def76 |
+ FN(rc_pointer_rel),
|
|
|
8def76 |
|
|
|
8def76 |
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
|
|
8def76 |
* function eBPF program intends to call
|
|
|
8def76 |
@@ -2474,6 +2530,8 @@ struct __sk_buff {
|
|
|
8def76 |
|
|
|
8def76 |
__u32 data_meta;
|
|
|
8def76 |
__bpf_md_ptr(struct bpf_flow_keys *, flow_keys);
|
|
|
8def76 |
+ __u64 tstamp;
|
|
|
8def76 |
+ __u32 wire_len;
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
struct bpf_tunnel_key {
|
|
|
8def76 |
@@ -2649,6 +2707,16 @@ struct bpf_prog_info {
|
|
|
8def76 |
__u32 nr_jited_func_lens;
|
|
|
8def76 |
__aligned_u64 jited_ksyms;
|
|
|
8def76 |
__aligned_u64 jited_func_lens;
|
|
|
8def76 |
+ __u32 btf_id;
|
|
|
8def76 |
+ __u32 func_info_rec_size;
|
|
|
8def76 |
+ __aligned_u64 func_info;
|
|
|
8def76 |
+ __u32 nr_func_info;
|
|
|
8def76 |
+ __u32 nr_line_info;
|
|
|
8def76 |
+ __aligned_u64 line_info;
|
|
|
8def76 |
+ __aligned_u64 jited_line_info;
|
|
|
8def76 |
+ __u32 nr_jited_line_info;
|
|
|
8def76 |
+ __u32 line_info_rec_size;
|
|
|
8def76 |
+ __u32 jited_line_info_rec_size;
|
|
|
8def76 |
} __attribute__((aligned(8)));
|
|
|
8def76 |
|
|
|
8def76 |
struct bpf_map_info {
|
|
|
8def76 |
@@ -2960,4 +3028,19 @@ struct bpf_flow_keys {
|
|
|
8def76 |
};
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
+struct bpf_func_info {
|
|
|
8def76 |
+ __u32 insn_off;
|
|
|
8def76 |
+ __u32 type_id;
|
|
|
8def76 |
+};
|
|
|
8def76 |
+
|
|
|
8def76 |
+#define BPF_LINE_INFO_LINE_NUM(line_col) ((line_col) >> 10)
|
|
|
8def76 |
+#define BPF_LINE_INFO_LINE_COL(line_col) ((line_col) & 0x3ff)
|
|
|
8def76 |
+
|
|
|
8def76 |
+struct bpf_line_info {
|
|
|
8def76 |
+ __u32 insn_off;
|
|
|
8def76 |
+ __u32 file_name_off;
|
|
|
8def76 |
+ __u32 line_off;
|
|
|
8def76 |
+ __u32 line_col;
|
|
|
8def76 |
+};
|
|
|
8def76 |
+
|
|
|
8def76 |
#endif /* __LINUX_BPF_H__ */
|
|
|
8def76 |
diff --git a/include/uapi/linux/btf.h b/include/uapi/linux/btf.h
|
|
|
8def76 |
index 8d2a8ffad56f9..f43d5a8e13d31 100644
|
|
|
8def76 |
--- a/include/uapi/linux/btf.h
|
|
|
8def76 |
+++ b/include/uapi/linux/btf.h
|
|
|
8def76 |
@@ -40,7 +40,8 @@ struct btf_type {
|
|
|
8def76 |
/* "size" is used by INT, ENUM, STRUCT and UNION.
|
|
|
8def76 |
* "size" tells the size of the type it is describing.
|
|
|
8def76 |
*
|
|
|
8def76 |
- * "type" is used by PTR, TYPEDEF, VOLATILE, CONST and RESTRICT.
|
|
|
8def76 |
+ * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
|
|
|
8def76 |
+ * FUNC and FUNC_PROTO.
|
|
|
8def76 |
* "type" is a type_id referring to another type.
|
|
|
8def76 |
*/
|
|
|
8def76 |
union {
|
|
|
8def76 |
@@ -64,8 +65,10 @@ struct btf_type {
|
|
|
8def76 |
#define BTF_KIND_VOLATILE 9 /* Volatile */
|
|
|
8def76 |
#define BTF_KIND_CONST 10 /* Const */
|
|
|
8def76 |
#define BTF_KIND_RESTRICT 11 /* Restrict */
|
|
|
8def76 |
-#define BTF_KIND_MAX 11
|
|
|
8def76 |
-#define NR_BTF_KINDS 12
|
|
|
8def76 |
+#define BTF_KIND_FUNC 12 /* Function */
|
|
|
8def76 |
+#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */
|
|
|
8def76 |
+#define BTF_KIND_MAX 13
|
|
|
8def76 |
+#define NR_BTF_KINDS 14
|
|
|
8def76 |
|
|
|
8def76 |
/* For some specific BTF_KIND, "struct btf_type" is immediately
|
|
|
8def76 |
* followed by extra data.
|
|
|
8def76 |
@@ -110,4 +113,13 @@ struct btf_member {
|
|
|
8def76 |
__u32 offset; /* offset in bits */
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
+/* BTF_KIND_FUNC_PROTO is followed by multiple "struct btf_param".
|
|
|
8def76 |
+ * The exact number of btf_param is stored in the vlen (of the
|
|
|
8def76 |
+ * info in "struct btf_type").
|
|
|
8def76 |
+ */
|
|
|
8def76 |
+struct btf_param {
|
|
|
8def76 |
+ __u32 name_off;
|
|
|
8def76 |
+ __u32 type;
|
|
|
8def76 |
+};
|
|
|
8def76 |
+
|
|
|
8def76 |
#endif /* __LINUX_BTF_H__ */
|
|
|
8def76 |
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
|
|
|
8def76 |
index bdfecf9411320..04f763cf53029 100644
|
|
|
8def76 |
--- a/include/uapi/linux/if_bridge.h
|
|
|
8def76 |
+++ b/include/uapi/linux/if_bridge.h
|
|
|
8def76 |
@@ -292,4 +292,25 @@ struct br_mcast_stats {
|
|
|
8def76 |
__u64 mcast_bytes[BR_MCAST_DIR_SIZE];
|
|
|
8def76 |
__u64 mcast_packets[BR_MCAST_DIR_SIZE];
|
|
|
8def76 |
};
|
|
|
8def76 |
+
|
|
|
8def76 |
+/* bridge boolean options
|
|
|
8def76 |
+ * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * IMPORTANT: if adding a new option do not forget to handle
|
|
|
8def76 |
+ * it in br_boolopt_toggle/get and bridge sysfs
|
|
|
8def76 |
+ */
|
|
|
8def76 |
+enum br_boolopt_id {
|
|
|
8def76 |
+ BR_BOOLOPT_NO_LL_LEARN,
|
|
|
8def76 |
+ BR_BOOLOPT_MAX
|
|
|
8def76 |
+};
|
|
|
8def76 |
+
|
|
|
8def76 |
+/* struct br_boolopt_multi - change multiple bridge boolean options
|
|
|
8def76 |
+ *
|
|
|
8def76 |
+ * @optval: new option values (bit per option)
|
|
|
8def76 |
+ * @optmask: options to change (bit per option)
|
|
|
8def76 |
+ */
|
|
|
8def76 |
+struct br_boolopt_multi {
|
|
|
8def76 |
+ __u32 optval;
|
|
|
8def76 |
+ __u32 optmask;
|
|
|
8def76 |
+};
|
|
|
8def76 |
#endif /* _LINUX_IF_BRIDGE_H */
|
|
|
8def76 |
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
|
|
|
8def76 |
index 52e95197e0790..8e6087aee2c29 100644
|
|
|
8def76 |
--- a/include/uapi/linux/if_link.h
|
|
|
8def76 |
+++ b/include/uapi/linux/if_link.h
|
|
|
8def76 |
@@ -286,6 +286,7 @@ enum {
|
|
|
8def76 |
IFLA_BR_MCAST_IGMP_VERSION,
|
|
|
8def76 |
IFLA_BR_MCAST_MLD_VERSION,
|
|
|
8def76 |
IFLA_BR_VLAN_STATS_PER_PORT,
|
|
|
8def76 |
+ IFLA_BR_MULTI_BOOLOPT,
|
|
|
8def76 |
__IFLA_BR_MAX,
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h
|
|
|
8def76 |
index be9b744a16458..2f01165514a77 100644
|
|
|
8def76 |
--- a/include/uapi/linux/if_tun.h
|
|
|
8def76 |
+++ b/include/uapi/linux/if_tun.h
|
|
|
8def76 |
@@ -59,6 +59,7 @@
|
|
|
8def76 |
#define TUNGETVNETBE _IOR('T', 223, int)
|
|
|
8def76 |
#define TUNSETSTEERINGEBPF _IOR('T', 224, int)
|
|
|
8def76 |
#define TUNSETFILTEREBPF _IOR('T', 225, int)
|
|
|
8def76 |
+#define TUNSETCARRIER _IOW('T', 226, int)
|
|
|
8def76 |
|
|
|
8def76 |
/* TUNSETIFF ifr flags */
|
|
|
8def76 |
#define IFF_TUN 0x0001
|
|
|
8def76 |
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
|
|
|
8def76 |
index 998155444e0db..cd144e3099a3c 100644
|
|
|
8def76 |
--- a/include/uapi/linux/neighbour.h
|
|
|
8def76 |
+++ b/include/uapi/linux/neighbour.h
|
|
|
8def76 |
@@ -28,6 +28,7 @@ enum {
|
|
|
8def76 |
NDA_MASTER,
|
|
|
8def76 |
NDA_LINK_NETNSID,
|
|
|
8def76 |
NDA_SRC_VNI,
|
|
|
8def76 |
+ NDA_PROTOCOL, /* Originator of entry */
|
|
|
8def76 |
__NDA_MAX
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
diff --git a/include/uapi/linux/net_namespace.h b/include/uapi/linux/net_namespace.h
|
|
|
8def76 |
index 6d64d0716800f..fa81f1e5ffa8f 100644
|
|
|
8def76 |
--- a/include/uapi/linux/net_namespace.h
|
|
|
8def76 |
+++ b/include/uapi/linux/net_namespace.h
|
|
|
8def76 |
@@ -16,6 +16,8 @@ enum {
|
|
|
8def76 |
NETNSA_NSID,
|
|
|
8def76 |
NETNSA_PID,
|
|
|
8def76 |
NETNSA_FD,
|
|
|
8def76 |
+ NETNSA_TARGET_NSID,
|
|
|
8def76 |
+ NETNSA_CURRENT_NSID,
|
|
|
8def76 |
__NETNSA_MAX,
|
|
|
8def76 |
};
|
|
|
8def76 |
|
|
|
8def76 |
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
|
|
|
8def76 |
index f80135e5feaa8..86dc24a96c90a 100644
|
|
|
8def76 |
--- a/include/uapi/linux/snmp.h
|
|
|
8def76 |
+++ b/include/uapi/linux/snmp.h
|
|
|
8def76 |
@@ -243,6 +243,7 @@ enum
|
|
|
8def76 |
LINUX_MIB_TCPREQQFULLDROP, /* TCPReqQFullDrop */
|
|
|
8def76 |
LINUX_MIB_TCPRETRANSFAIL, /* TCPRetransFail */
|
|
|
8def76 |
LINUX_MIB_TCPRCVCOALESCE, /* TCPRcvCoalesce */
|
|
|
8def76 |
+ LINUX_MIB_TCPBACKLOGCOALESCE, /* TCPBacklogCoalesce */
|
|
|
8def76 |
LINUX_MIB_TCPOFOQUEUE, /* TCPOFOQueue */
|
|
|
8def76 |
LINUX_MIB_TCPOFODROP, /* TCPOFODrop */
|
|
|
8def76 |
LINUX_MIB_TCPOFOMERGE, /* TCPOFOMerge */
|
|
|
8def76 |
--
|
|
|
8def76 |
2.20.1
|
|
|
8def76 |
|