]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@kernel.org>
Sun, 5 Jul 2020 14:33:15 +0000 (14:33 +0000)
committerDavid Ahern <dsahern@kernel.org>
Sun, 5 Jul 2020 14:33:15 +0000 (14:33 +0000)
Update kernel headers to commit:
   e1f046704404 ("Merge branch 'qlogic-use-generic-power-management'")

Signed-off-by: David Ahern <dsahern@kernel.org>
include/uapi/linux/bpf.h
include/uapi/linux/devlink.h
include/uapi/linux/if_bridge.h
include/uapi/linux/if_link.h
include/uapi/linux/magic.h
include/uapi/linux/neighbour.h
include/uapi/linux/pkt_sched.h
include/uapi/linux/rtnetlink.h

index 6cad1444527aa9b11d3359f0f18ba8f128ab4414..bd1f439a17e6f5271b02934322c0fef68361d434 100644 (file)
@@ -653,7 +653,7 @@ union bpf_attr {
  *             Map value associated to *key*, or **NULL** if no entry was
  *             found.
  *
- * int bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
+ * long bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
  *     Description
  *             Add or update the value of the entry associated to *key* in
  *             *map* with *value*. *flags* is one of:
@@ -671,13 +671,13 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_map_delete_elem(struct bpf_map *map, const void *key)
+ * long bpf_map_delete_elem(struct bpf_map *map, const void *key)
  *     Description
  *             Delete entry with *key* from *map*.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
+ * long bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
  *     Description
  *             For tracing programs, safely attempt to read *size* bytes from
  *             kernel space address *unsafe_ptr* and store the data in *dst*.
@@ -695,7 +695,7 @@ union bpf_attr {
  *     Return
  *             Current *ktime*.
  *
- * int bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
+ * long bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
  *     Description
  *             This helper is a "printk()-like" facility for debugging. It
  *             prints a message defined by format *fmt* (of size *fmt_size*)
@@ -775,7 +775,7 @@ union bpf_attr {
  *     Return
  *             The SMP id of the processor running the program.
  *
- * int bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
+ * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
  *     Description
  *             Store *len* bytes from address *from* into the packet
  *             associated to *skb*, at *offset*. *flags* are a combination of
@@ -792,7 +792,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size)
+ * long bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size)
  *     Description
  *             Recompute the layer 3 (e.g. IP) checksum for the packet
  *             associated to *skb*. Computation is incremental, so the helper
@@ -817,7 +817,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags)
+ * long bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags)
  *     Description
  *             Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the
  *             packet associated to *skb*. Computation is incremental, so the
@@ -849,7 +849,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index)
+ * long bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index)
  *     Description
  *             This special helper is used to trigger a "tail call", or in
  *             other words, to jump into another eBPF program. The same stack
@@ -880,7 +880,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags)
+ * long bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags)
  *     Description
  *             Clone and redirect the packet associated to *skb* to another
  *             net device of index *ifindex*. Both ingress and egress
@@ -916,7 +916,7 @@ union bpf_attr {
  *             A 64-bit integer containing the current GID and UID, and
  *             created as such: *current_gid* **<< 32 \|** *current_uid*.
  *
- * int bpf_get_current_comm(void *buf, u32 size_of_buf)
+ * long bpf_get_current_comm(void *buf, u32 size_of_buf)
  *     Description
  *             Copy the **comm** attribute of the current task into *buf* of
  *             *size_of_buf*. The **comm** attribute contains the name of
@@ -953,7 +953,7 @@ union bpf_attr {
  *     Return
  *             The classid, or 0 for the default unconfigured classid.
  *
- * int bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
+ * long bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
  *     Description
  *             Push a *vlan_tci* (VLAN tag control information) of protocol
  *             *vlan_proto* to the packet associated to *skb*, then update
@@ -969,7 +969,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_vlan_pop(struct sk_buff *skb)
+ * long bpf_skb_vlan_pop(struct sk_buff *skb)
  *     Description
  *             Pop a VLAN header from the packet associated to *skb*.
  *
@@ -981,7 +981,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
+ * long bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
  *     Description
  *             Get tunnel metadata. This helper takes a pointer *key* to an
  *             empty **struct bpf_tunnel_key** of **size**, that will be
@@ -1032,7 +1032,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
+ * long bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
  *     Description
  *             Populate tunnel metadata for packet associated to *skb.* The
  *             tunnel metadata is set to the contents of *key*, of *size*. The
@@ -1098,7 +1098,7 @@ union bpf_attr {
  *             The value of the perf event counter read from the map, or a
  *             negative error code in case of failure.
  *
- * int bpf_redirect(u32 ifindex, u64 flags)
+ * long bpf_redirect(u32 ifindex, u64 flags)
  *     Description
  *             Redirect the packet to another net device of index *ifindex*.
  *             This helper is somewhat similar to **bpf_clone_redirect**\
@@ -1145,7 +1145,7 @@ union bpf_attr {
  *             The realm of the route for the packet associated to *skb*, or 0
  *             if none was found.
  *
- * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * long bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
  *     Description
  *             Write raw *data* blob into a special BPF perf event held by
  *             *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -1190,7 +1190,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
+ * long bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
  *     Description
  *             This helper was provided as an easy way to load data from a
  *             packet. It can be used to load *len* bytes from *offset* from
@@ -1207,7 +1207,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
+ * long bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
  *     Description
  *             Walk a user or a kernel stack and return its id. To achieve
  *             this, the helper needs *ctx*, which is a pointer to the context
@@ -1276,7 +1276,7 @@ union bpf_attr {
  *             The checksum result, or a negative error code in case of
  *             failure.
  *
- * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
+ * long bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
  *     Description
  *             Retrieve tunnel options metadata for the packet associated to
  *             *skb*, and store the raw tunnel option data to the buffer *opt*
@@ -1294,7 +1294,7 @@ union bpf_attr {
  *     Return
  *             The size of the option data retrieved.
  *
- * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
+ * long bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
  *     Description
  *             Set tunnel options metadata for the packet associated to *skb*
  *             to the option data contained in the raw buffer *opt* of *size*.
@@ -1304,7 +1304,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags)
+ * long bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags)
  *     Description
  *             Change the protocol of the *skb* to *proto*. Currently
  *             supported are transition from IPv4 to IPv6, and from IPv6 to
@@ -1331,7 +1331,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_change_type(struct sk_buff *skb, u32 type)
+ * long bpf_skb_change_type(struct sk_buff *skb, u32 type)
  *     Description
  *             Change the packet type for the packet associated to *skb*. This
  *             comes down to setting *skb*\ **->pkt_type** to *type*, except
@@ -1358,7 +1358,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index)
+ * long bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index)
  *     Description
  *             Check whether *skb* is a descendant of the cgroup2 held by
  *             *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*.
@@ -1389,7 +1389,7 @@ union bpf_attr {
  *     Return
  *             A pointer to the current task struct.
  *
- * int bpf_probe_write_user(void *dst, const void *src, u32 len)
+ * long bpf_probe_write_user(void *dst, const void *src, u32 len)
  *     Description
  *             Attempt in a safe way to write *len* bytes from the buffer
  *             *src* to *dst* in memory. It only works for threads that are in
@@ -1408,7 +1408,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_current_task_under_cgroup(struct bpf_map *map, u32 index)
+ * long bpf_current_task_under_cgroup(struct bpf_map *map, u32 index)
  *     Description
  *             Check whether the probe is being run is the context of a given
  *             subset of the cgroup2 hierarchy. The cgroup2 to test is held by
@@ -1420,7 +1420,7 @@ union bpf_attr {
  *             * 1, if the *skb* task does not belong to the cgroup2.
  *             * A negative error code, if an error occurred.
  *
- * int bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
+ * long bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
  *     Description
  *             Resize (trim or grow) the packet associated to *skb* to the
  *             new *len*. The *flags* are reserved for future usage, and must
@@ -1444,7 +1444,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_pull_data(struct sk_buff *skb, u32 len)
+ * long bpf_skb_pull_data(struct sk_buff *skb, u32 len)
  *     Description
  *             Pull in non-linear data in case the *skb* is non-linear and not
  *             all of *len* are part of the linear section. Make *len* bytes
@@ -1500,7 +1500,7 @@ union bpf_attr {
  *             recalculation the next time the kernel tries to access this
  *             hash or when the **bpf_get_hash_recalc**\ () helper is called.
  *
- * int bpf_get_numa_node_id(void)
+ * long bpf_get_numa_node_id(void)
  *     Description
  *             Return the id of the current NUMA node. The primary use case
  *             for this helper is the selection of sockets for the local NUMA
@@ -1511,7 +1511,7 @@ union bpf_attr {
  *     Return
  *             The id of current NUMA node.
  *
- * int bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags)
+ * long bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags)
  *     Description
  *             Grows headroom of packet associated to *skb* and adjusts the
  *             offset of the MAC header accordingly, adding *len* bytes of
@@ -1532,7 +1532,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta)
+ * long bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta)
  *     Description
  *             Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that
  *             it is possible to use a negative value for *delta*. This helper
@@ -1547,7 +1547,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
+ * long bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
  *     Description
  *             Copy a NUL terminated string from an unsafe kernel address
  *             *unsafe_ptr* to *dst*. See **bpf_probe_read_kernel_str**\ () for
@@ -1595,14 +1595,14 @@ union bpf_attr {
  *             is returned (note that **overflowuid** might also be the actual
  *             UID value for the socket).
  *
- * u32 bpf_set_hash(struct sk_buff *skb, u32 hash)
+ * long bpf_set_hash(struct sk_buff *skb, u32 hash)
  *     Description
  *             Set the full hash for *skb* (set the field *skb*\ **->hash**)
  *             to value *hash*.
  *     Return
  *             0
  *
- * int bpf_setsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
+ * long bpf_setsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
  *     Description
  *             Emulate a call to **setsockopt()** on the socket associated to
  *             *bpf_socket*, which must be a full socket. The *level* at
@@ -1621,16 +1621,19 @@ union bpf_attr {
  *
  *             * **SOL_SOCKET**, which supports the following *optname*\ s:
  *               **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**,
- *               **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**.
+ *               **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**,
+ *               **SO_BINDTODEVICE**, **SO_KEEPALIVE**.
  *             * **IPPROTO_TCP**, which supports the following *optname*\ s:
  *               **TCP_CONGESTION**, **TCP_BPF_IW**,
- *               **TCP_BPF_SNDCWND_CLAMP**.
+ *               **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**,
+ *               **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**,
+ *               **TCP_SYNCNT**, **TCP_USER_TIMEOUT**.
  *             * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
  *             * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
+ * long bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
  *     Description
  *             Grow or shrink the room for data in the packet associated to
  *             *skb* by *len_diff*, and according to the selected *mode*.
@@ -1676,7 +1679,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
+ * long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
  *     Description
  *             Redirect the packet to the endpoint referenced by *map* at
  *             index *key*. Depending on its type, this *map* can contain
@@ -1697,7 +1700,7 @@ union bpf_attr {
  *             **XDP_REDIRECT** on success, or the value of the two lower bits
  *             of the *flags* argument on error.
  *
- * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
+ * long bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
  *     Description
  *             Redirect the packet to the socket referenced by *map* (of type
  *             **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@@ -1708,7 +1711,7 @@ union bpf_attr {
  *     Return
  *             **SK_PASS** on success, or **SK_DROP** on error.
  *
- * int bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
+ * long bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             Add an entry to, or update a *map* referencing sockets. The
  *             *skops* is used as a new value for the entry associated to
@@ -1727,7 +1730,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta)
+ * long bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta)
  *     Description
  *             Adjust the address pointed by *xdp_md*\ **->data_meta** by
  *             *delta* (which can be positive or negative). Note that this
@@ -1756,7 +1759,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size)
+ * long bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size)
  *     Description
  *             Read the value of a perf event counter, and store it into *buf*
  *             of size *buf_size*. This helper relies on a *map* of type
@@ -1806,7 +1809,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size)
+ * long bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size)
  *     Description
  *             For en eBPF program attached to a perf event, retrieve the
  *             value of the event counter associated to *ctx* and store it in
@@ -1817,7 +1820,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_getsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
+ * long bpf_getsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
  *     Description
  *             Emulate a call to **getsockopt()** on the socket associated to
  *             *bpf_socket*, which must be a full socket. The *level* at
@@ -1842,7 +1845,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_override_return(struct pt_regs *regs, u64 rc)
+ * long bpf_override_return(struct pt_regs *regs, u64 rc)
  *     Description
  *             Used for error injection, this helper uses kprobes to override
  *             the return value of the probed function, and to set it to *rc*.
@@ -1867,7 +1870,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval)
+ * long bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval)
  *     Description
  *             Attempt to set the value of the **bpf_sock_ops_cb_flags** field
  *             for the full TCP socket associated to *bpf_sock_ops* to
@@ -1911,7 +1914,7 @@ union bpf_attr {
  *             be set is returned (which comes down to 0 if all bits were set
  *             as required).
  *
- * int bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags)
+ * long bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags)
  *     Description
  *             This helper is used in programs implementing policies at the
  *             socket level. If the message *msg* is allowed to pass (i.e. if
@@ -1925,7 +1928,7 @@ union bpf_attr {
  *     Return
  *             **SK_PASS** on success, or **SK_DROP** on error.
  *
- * int bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes)
+ * long bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes)
  *     Description
  *             For socket policies, apply the verdict of the eBPF program to
  *             the next *bytes* (number of bytes) of message *msg*.
@@ -1959,7 +1962,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes)
+ * long bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes)
  *     Description
  *             For socket policies, prevent the execution of the verdict eBPF
  *             program for message *msg* until *bytes* (byte number) have been
@@ -1977,7 +1980,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags)
+ * long bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags)
  *     Description
  *             For socket policies, pull in non-linear data from user space
  *             for *msg* and set pointers *msg*\ **->data** and *msg*\
@@ -2008,7 +2011,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len)
+ * long bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len)
  *     Description
  *             Bind the socket associated to *ctx* to the address pointed by
  *             *addr*, of length *addr_len*. This allows for making outgoing
@@ -2026,7 +2029,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta)
+ * long bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta)
  *     Description
  *             Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is
  *             possible to both shrink and grow the packet tail.
@@ -2040,7 +2043,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags)
+ * long bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags)
  *     Description
  *             Retrieve the XFRM state (IP transform framework, see also
  *             **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*.
@@ -2056,7 +2059,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
+ * long bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
  *     Description
  *             Return a user or a kernel stack in bpf program provided buffer.
  *             To achieve this, the helper needs *ctx*, which is a pointer
@@ -2089,7 +2092,7 @@ union bpf_attr {
  *             A non-negative value equal to or less than *size* on success,
  *             or a negative error in case of failure.
  *
- * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
+ * long bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
  *     Description
  *             This helper is similar to **bpf_skb_load_bytes**\ () in that
  *             it provides an easy way to load *len* bytes from *offset*
@@ -2111,7 +2114,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags)
+ * long bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags)
  *     Description
  *             Do FIB lookup in kernel tables using parameters in *params*.
  *             If lookup is successful and result shows packet is to be
@@ -2142,7 +2145,7 @@ union bpf_attr {
  *             * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
  *               packet is not forwarded or needs assist from full stack
  *
- * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
+ * long bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             Add an entry to, or update a sockhash *map* referencing sockets.
  *             The *skops* is used as a new value for the entry associated to
@@ -2161,7 +2164,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags)
+ * long bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             This helper is used in programs implementing policies at the
  *             socket level. If the message *msg* is allowed to pass (i.e. if
@@ -2175,7 +2178,7 @@ union bpf_attr {
  *     Return
  *             **SK_PASS** on success, or **SK_DROP** on error.
  *
- * int bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags)
+ * long bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             This helper is used in programs implementing policies at the
  *             skb socket level. If the sk_buff *skb* is allowed to pass (i.e.
@@ -2189,7 +2192,7 @@ union bpf_attr {
  *     Return
  *             **SK_PASS** on success, or **SK_DROP** on error.
  *
- * int bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len)
+ * long bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len)
  *     Description
  *             Encapsulate the packet associated to *skb* within a Layer 3
  *             protocol header. This header is provided in the buffer at
@@ -2226,7 +2229,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len)
+ * long bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len)
  *     Description
  *             Store *len* bytes from address *from* into the packet
  *             associated to *skb*, at *offset*. Only the flags, tag and TLVs
@@ -2241,7 +2244,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta)
+ * long bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta)
  *     Description
  *             Adjust the size allocated to TLVs in the outermost IPv6
  *             Segment Routing Header contained in the packet associated to
@@ -2257,7 +2260,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len)
+ * long bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len)
  *     Description
  *             Apply an IPv6 Segment Routing action of type *action* to the
  *             packet associated to *skb*. Each action takes a parameter
@@ -2286,7 +2289,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_rc_repeat(void *ctx)
+ * long bpf_rc_repeat(void *ctx)
  *     Description
  *             This helper is used in programs implementing IR decoding, to
  *             report a successfully decoded repeat key message. This delays
@@ -2305,7 +2308,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle)
+ * long bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle)
  *     Description
  *             This helper is used in programs implementing IR decoding, to
  *             report a successfully decoded key press with *scancode*,
@@ -2370,7 +2373,7 @@ union bpf_attr {
  *     Return
  *             A pointer to the local storage area.
  *
- * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
+ * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             Select a **SO_REUSEPORT** socket from a
  *             **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
@@ -2471,7 +2474,7 @@ union bpf_attr {
  *             result is from *reuse*\ **->socks**\ [] using the hash of the
  *             tuple.
  *
- * int bpf_sk_release(struct bpf_sock *sock)
+ * long bpf_sk_release(struct bpf_sock *sock)
  *     Description
  *             Release the reference held by *sock*. *sock* must be a
  *             non-**NULL** pointer that was returned from
@@ -2479,7 +2482,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
+ * long bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
  *     Description
  *             Push an element *value* in *map*. *flags* is one of:
  *
@@ -2489,19 +2492,19 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_map_pop_elem(struct bpf_map *map, void *value)
+ * long bpf_map_pop_elem(struct bpf_map *map, void *value)
  *     Description
  *             Pop an element from *map*.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_map_peek_elem(struct bpf_map *map, void *value)
+ * long bpf_map_peek_elem(struct bpf_map *map, void *value)
  *     Description
  *             Get an element from *map* without removing it.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
+ * long bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
  *     Description
  *             For socket policies, insert *len* bytes into *msg* at offset
  *             *start*.
@@ -2517,7 +2520,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
+ * long bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
  *     Description
  *             Will remove *len* bytes from a *msg* starting at byte *start*.
  *             This may result in **ENOMEM** errors under certain situations if
@@ -2529,7 +2532,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
+ * long bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
  *     Description
  *             This helper is used in programs implementing IR decoding, to
  *             report a successfully decoded pointer movement.
@@ -2543,7 +2546,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_spin_lock(struct bpf_spin_lock *lock)
+ * long bpf_spin_lock(struct bpf_spin_lock *lock)
  *     Description
  *             Acquire a spinlock represented by the pointer *lock*, which is
  *             stored as part of a value of a map. Taking the lock allows to
@@ -2591,7 +2594,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_spin_unlock(struct bpf_spin_lock *lock)
+ * long bpf_spin_unlock(struct bpf_spin_lock *lock)
  *     Description
  *             Release the *lock* previously locked by a call to
  *             **bpf_spin_lock**\ (\ *lock*\ ).
@@ -2614,7 +2617,7 @@ union bpf_attr {
  *             A **struct bpf_tcp_sock** pointer on success, or **NULL** in
  *             case of failure.
  *
- * int bpf_skb_ecn_set_ce(struct sk_buff *skb)
+ * long bpf_skb_ecn_set_ce(struct sk_buff *skb)
  *     Description
  *             Set ECN (Explicit Congestion Notification) field of IP header
  *             to **CE** (Congestion Encountered) if current value is **ECT**
@@ -2651,7 +2654,7 @@ union bpf_attr {
  *             result is from *reuse*\ **->socks**\ [] using the hash of the
  *             tuple.
  *
- * int bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
+ * long bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
  *     Description
  *             Check whether *iph* and *th* contain a valid SYN cookie ACK for
  *             the listening socket in *sk*.
@@ -2666,7 +2669,7 @@ union bpf_attr {
  *             0 if *iph* and *th* are a valid SYN cookie ACK, or a negative
  *             error otherwise.
  *
- * int bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
+ * long bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
  *     Description
  *             Get name of sysctl in /proc/sys/ and copy it into provided by
  *             program buffer *buf* of size *buf_len*.
@@ -2682,7 +2685,7 @@ union bpf_attr {
  *             **-E2BIG** if the buffer wasn't big enough (*buf* will contain
  *             truncated name in this case).
  *
- * int bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
+ * long bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
  *     Description
  *             Get current value of sysctl as it is presented in /proc/sys
  *             (incl. newline, etc), and copy it as a string into provided
@@ -2701,7 +2704,7 @@ union bpf_attr {
  *             **-EINVAL** if current value was unavailable, e.g. because
  *             sysctl is uninitialized and read returns -EIO for it.
  *
- * int bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
+ * long bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
  *     Description
  *             Get new value being written by user space to sysctl (before
  *             the actual write happens) and copy it as a string into
@@ -2718,7 +2721,7 @@ union bpf_attr {
  *
  *             **-EINVAL** if sysctl is being read.
  *
- * int bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
+ * long bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
  *     Description
  *             Override new value being written by user space to sysctl with
  *             value provided by program in buffer *buf* of size *buf_len*.
@@ -2735,7 +2738,7 @@ union bpf_attr {
  *
  *             **-EINVAL** if sysctl is being read.
  *
- * int bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
+ * long bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
  *     Description
  *             Convert the initial part of the string from buffer *buf* of
  *             size *buf_len* to a long integer according to the given base
@@ -2759,7 +2762,7 @@ union bpf_attr {
  *
  *             **-ERANGE** if resulting value was out of range.
  *
- * int bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
+ * long bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
  *     Description
  *             Convert the initial part of the string from buffer *buf* of
  *             size *buf_len* to an unsigned long integer according to the
@@ -2810,7 +2813,7 @@ union bpf_attr {
  *             **NULL** if not found or there was an error in adding
  *             a new bpf-local-storage.
  *
- * int bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
+ * long bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
  *     Description
  *             Delete a bpf-local-storage from a *sk*.
  *     Return
@@ -2818,7 +2821,7 @@ union bpf_attr {
  *
  *             **-ENOENT** if the bpf-local-storage cannot be found.
  *
- * int bpf_send_signal(u32 sig)
+ * long bpf_send_signal(u32 sig)
  *     Description
  *             Send signal *sig* to the process of the current task.
  *             The signal may be delivered to any of this process's threads.
@@ -2859,7 +2862,7 @@ union bpf_attr {
  *
  *             **-EPROTONOSUPPORT** IP packet version is not 4 or 6
  *
- * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * long bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
  *     Description
  *             Write raw *data* blob into a special BPF perf event held by
  *             *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -2883,21 +2886,21 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
+ * long bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
  *     Description
  *             Safely attempt to read *size* bytes from user space address
  *             *unsafe_ptr* and store the data in *dst*.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
+ * long bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
  *     Description
  *             Safely attempt to read *size* bytes from kernel space address
  *             *unsafe_ptr* and store the data in *dst*.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
+ * long bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
  *     Description
  *             Copy a NUL terminated string from an unsafe user address
  *             *unsafe_ptr* to *dst*. The *size* should include the
@@ -2941,7 +2944,7 @@ union bpf_attr {
  *             including the trailing NUL character. On error, a negative
  *             value.
  *
- * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
+ * long bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
  *     Description
  *             Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
  *             to *dst*. Same semantics as with **bpf_probe_read_user_str**\ () apply.
@@ -2949,14 +2952,14 @@ union bpf_attr {
  *             On success, the strictly positive length of the string, including
  *             the trailing NUL character. On error, a negative value.
  *
- * int bpf_tcp_send_ack(void *tp, u32 rcv_nxt)
+ * long bpf_tcp_send_ack(void *tp, u32 rcv_nxt)
  *     Description
  *             Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**.
  *             *rcv_nxt* is the ack_seq to be sent out.
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_send_signal_thread(u32 sig)
+ * long bpf_send_signal_thread(u32 sig)
  *     Description
  *             Send signal *sig* to the thread corresponding to the current task.
  *     Return
@@ -2976,7 +2979,7 @@ union bpf_attr {
  *     Return
  *             The 64 bit jiffies
  *
- * int bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags)
+ * long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags)
  *     Description
  *             For an eBPF program attached to a perf event, retrieve the
  *             branch records (**struct perf_branch_entry**) associated to *ctx*
@@ -2995,7 +2998,7 @@ union bpf_attr {
  *
  *             **-ENOENT** if architecture does not support branch records.
  *
- * int bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
+ * long bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
  *     Description
  *             Returns 0 on success, values for *pid* and *tgid* as seen from the current
  *             *namespace* will be returned in *nsdata*.
@@ -3007,7 +3010,7 @@ union bpf_attr {
  *
  *             **-ENOENT** if pidns does not exists for the current task.
  *
- * int bpf_xdp_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * long bpf_xdp_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
  *     Description
  *             Write raw *data* blob into a special BPF perf event held by
  *             *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -3062,7 +3065,7 @@ union bpf_attr {
  *     Return
  *             The id is returned or 0 in case the id could not be retrieved.
  *
- * int bpf_sk_assign(struct sk_buff *skb, struct bpf_sock *sk, u64 flags)
+ * long bpf_sk_assign(struct sk_buff *skb, struct bpf_sock *sk, u64 flags)
  *     Description
  *             Assign the *sk* to the *skb*. When combined with appropriate
  *             routing configuration to receive the packet towards the socket,
@@ -3097,7 +3100,7 @@ union bpf_attr {
  *     Return
  *             Current *ktime*.
  *
- * int bpf_seq_printf(struct seq_file *m, const char *fmt, u32 fmt_size, const void *data, u32 data_len)
+ * long bpf_seq_printf(struct seq_file *m, const char *fmt, u32 fmt_size, const void *data, u32 data_len)
  *     Description
  *             **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print
  *             out the format string.
@@ -3126,7 +3129,7 @@ union bpf_attr {
  *
  *             **-EOVERFLOW** if an overflow happened: The same object will be tried again.
  *
- * int bpf_seq_write(struct seq_file *m, const void *data, u32 len)
+ * long bpf_seq_write(struct seq_file *m, const void *data, u32 len)
  *     Description
  *             **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data.
  *             The *m* represents the seq_file. The *data* and *len* represent the
@@ -3168,7 +3171,7 @@ union bpf_attr {
  *     Return
  *             The id is returned or 0 in case the id could not be retrieved.
  *
- * void *bpf_ringbuf_output(void *ringbuf, void *data, u64 size, u64 flags)
+ * int bpf_ringbuf_output(void *ringbuf, void *data, u64 size, u64 flags)
  *     Description
  *             Copy *size* bytes from *data* into a ring buffer *ringbuf*.
  *             If BPF_RB_NO_WAKEUP is specified in *flags*, no notification of
@@ -3221,7 +3224,7 @@ union bpf_attr {
  *     Return
  *             Requested value, or 0, if flags are not recognized.
  *
- * int bpf_csum_level(struct sk_buff *skb, u64 level)
+ * long bpf_csum_level(struct sk_buff *skb, u64 level)
  *     Description
  *             Change the skbs checksum level by one layer up or down, or
  *             reset it entirely to none in order to have the stack perform
@@ -3252,6 +3255,69 @@ union bpf_attr {
  *             case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level
  *             is returned or the error code -EACCES in case the skb is not
  *             subject to CHECKSUM_UNNECESSARY.
+ *
+ * struct tcp6_sock *bpf_skc_to_tcp6_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *tcp6_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or NULL otherwise.
+ *
+ * struct tcp_sock *bpf_skc_to_tcp_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *tcp_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or NULL otherwise.
+ *
+ * struct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *tcp_timewait_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or NULL otherwise.
+ *
+ * struct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *tcp_request_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or NULL otherwise.
+ *
+ * struct udp6_sock *bpf_skc_to_udp6_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *udp6_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or NULL otherwise.
+ *
+ * long bpf_get_task_stack(struct task_struct *task, void *buf, u32 size, u64 flags)
+ *     Description
+ *             Return a user or a kernel stack in bpf program provided buffer.
+ *             To achieve this, the helper needs *task*, which is a valid
+ *             pointer to struct task_struct. To store the stacktrace, the
+ *             bpf program provides *buf* with a nonnegative *size*.
+ *
+ *             The last argument, *flags*, holds the number of stack frames to
+ *             skip (from 0 to 255), masked with
+ *             **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set
+ *             the following flags:
+ *
+ *             **BPF_F_USER_STACK**
+ *                     Collect a user space stack instead of a kernel stack.
+ *             **BPF_F_USER_BUILD_ID**
+ *                     Collect buildid+offset instead of ips for user stack,
+ *                     only valid if **BPF_F_USER_STACK** is also specified.
+ *
+ *             **bpf_get_task_stack**\ () can collect up to
+ *             **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject
+ *             to sufficient large buffer size. Note that
+ *             this limit can be controlled with the **sysctl** program, and
+ *             that it should be manually increased in order to profile long
+ *             user stacks (such as stacks for Java programs). To do so, use:
+ *
+ *             ::
+ *
+ *                     # sysctl kernel.perf_event_max_stack=<new value>
+ *     Return
+ *             A non-negative value equal to or less than *size* on success,
+ *             or a negative error in case of failure.
+ *
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -3389,7 +3455,14 @@ union bpf_attr {
        FN(ringbuf_submit),             \
        FN(ringbuf_discard),            \
        FN(ringbuf_query),              \
-       FN(csum_level),
+       FN(csum_level),                 \
+       FN(skc_to_tcp6_sock),           \
+       FN(skc_to_tcp_sock),            \
+       FN(skc_to_tcp_timewait_sock),   \
+       FN(skc_to_tcp_request_sock),    \
+       FN(skc_to_udp6_sock),           \
+       FN(get_task_stack),             \
+       /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call
@@ -3761,6 +3834,19 @@ struct xdp_md {
        __u32 egress_ifindex;  /* txq->dev->ifindex */
 };
 
+/* DEVMAP map-value layout
+ *
+ * The struct data-layout of map-value is a configuration interface.
+ * New members can only be added to the end of this structure.
+ */
+struct bpf_devmap_val {
+       __u32 ifindex;   /* device index */
+       union {
+               int   fd;  /* prog fd on map write */
+               __u32 id;  /* prog id on map read */
+       } bpf_prog;
+};
+
 enum sk_action {
        SK_DROP = 0,
        SK_PASS,
index 7b600bf1a251477519336a7a603d77d0bf576377..d3ee69babab75ca3be01e44a9d69dc23468b3612 100644 (file)
@@ -451,6 +451,10 @@ enum devlink_attr {
        DEVLINK_ATTR_TRAP_POLICER_RATE,                 /* u64 */
        DEVLINK_ATTR_TRAP_POLICER_BURST,                /* u64 */
 
+       DEVLINK_ATTR_PORT_FUNCTION,                     /* nested */
+
+       DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER,  /* string */
+
        /* add new attributes above here, update the policy in devlink.c */
 
        __DEVLINK_ATTR_MAX,
@@ -497,4 +501,12 @@ enum devlink_resource_unit {
        DEVLINK_RESOURCE_UNIT_ENTRY,
 };
 
+enum devlink_port_function_attr {
+       DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
+       DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR,     /* binary */
+
+       __DEVLINK_PORT_FUNCTION_ATTR_MAX,
+       DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
+};
+
 #endif /* _LINUX_DEVLINK_H_ */
index 73e2d8623f34777199b4ff8a5cec5922a49d9c31..7ae40f233162d590018c98eb5f5478c5300d03ee 100644 (file)
@@ -166,6 +166,7 @@ enum {
        IFLA_BRIDGE_MRP_RING_STATE,
        IFLA_BRIDGE_MRP_RING_ROLE,
        IFLA_BRIDGE_MRP_START_TEST,
+       IFLA_BRIDGE_MRP_INFO,
        __IFLA_BRIDGE_MRP_MAX,
 };
 
@@ -228,6 +229,22 @@ enum {
 
 #define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1)
 
+enum {
+       IFLA_BRIDGE_MRP_INFO_UNSPEC,
+       IFLA_BRIDGE_MRP_INFO_RING_ID,
+       IFLA_BRIDGE_MRP_INFO_P_IFINDEX,
+       IFLA_BRIDGE_MRP_INFO_S_IFINDEX,
+       IFLA_BRIDGE_MRP_INFO_PRIO,
+       IFLA_BRIDGE_MRP_INFO_RING_STATE,
+       IFLA_BRIDGE_MRP_INFO_RING_ROLE,
+       IFLA_BRIDGE_MRP_INFO_TEST_INTERVAL,
+       IFLA_BRIDGE_MRP_INFO_TEST_MAX_MISS,
+       IFLA_BRIDGE_MRP_INFO_TEST_MONITOR,
+       __IFLA_BRIDGE_MRP_INFO_MAX,
+};
+
+#define IFLA_BRIDGE_MRP_INFO_MAX (__IFLA_BRIDGE_MRP_INFO_MAX - 1)
+
 struct br_mrp_instance {
        __u32 ring_id;
        __u32 p_ifindex;
index a8901a39a345ecfc951acc35bda3dfdd63277f51..4e1b6ecf79d6c6c19b16f004d47ade09a7ff607b 100644 (file)
@@ -598,6 +598,7 @@ enum {
        IFLA_BAREUDP_ETHERTYPE,
        IFLA_BAREUDP_SRCPORT_MIN,
        IFLA_BAREUDP_MULTIPROTO_MODE,
+       IFLA_BAREUDP_RX_COLLECT_METADATA,
        __IFLA_BAREUDP_MAX
 };
 
index d78064007b1798d8ab9b4381969f8755733bfcb0..f3956fc11de68cf20e535449cb7200ce20207c8b 100644 (file)
@@ -94,6 +94,7 @@
 #define BALLOON_KVM_MAGIC      0x13661366
 #define ZSMALLOC_MAGIC         0x58295829
 #define DMA_BUF_MAGIC          0x444d4142      /* "DMAB" */
+#define DEVMEM_MAGIC           0x454d444d      /* "DMEM" */
 #define Z3FOLD_MAGIC           0x33
 #define PPC_CMM_MAGIC          0xc7571590
 
index eefcda8ca44e9c780017d45b6bc7e81af3029453..dc8b72201f6c5b19a96214f3029be292a3019665 100644 (file)
@@ -30,6 +30,7 @@ enum {
        NDA_SRC_VNI,
        NDA_PROTOCOL,  /* Originator of entry */
        NDA_NH_ID,
+       NDA_FDB_EXT_ATTRS,
        __NDA_MAX
 };
 
@@ -172,4 +173,27 @@ enum {
 };
 #define NDTA_MAX (__NDTA_MAX - 1)
 
+ /* FDB activity notification bits used in NFEA_ACTIVITY_NOTIFY:
+  * - FDB_NOTIFY_BIT - notify on activity/expire for any entry
+  * - FDB_NOTIFY_INACTIVE_BIT - mark as inactive to avoid multiple notifications
+  */
+enum {
+       FDB_NOTIFY_BIT          = (1 << 0),
+       FDB_NOTIFY_INACTIVE_BIT = (1 << 1)
+};
+
+/* embedded into NDA_FDB_EXT_ATTRS:
+ * [NDA_FDB_EXT_ATTRS] = {
+ *     [NFEA_ACTIVITY_NOTIFY]
+ *     ...
+ * }
+ */
+enum {
+       NFEA_UNSPEC,
+       NFEA_ACTIVITY_NOTIFY,
+       NFEA_DONT_REFRESH,
+       __NFEA_MAX
+};
+#define NFEA_MAX (__NFEA_MAX - 1)
+
 #endif
index a95f3ae7ab37c857ff09cba39eca65fea9ce92aa..9e7c2c6078456bdc8dad240e844cfd42144bb024 100644 (file)
@@ -257,6 +257,8 @@ enum {
        TCA_RED_STAB,
        TCA_RED_MAX_P,
        TCA_RED_FLAGS,          /* bitfield32 */
+       TCA_RED_EARLY_DROP_BLOCK, /* u32 */
+       TCA_RED_MARK_BLOCK,     /* u32 */
        __TCA_RED_MAX,
 };
 
index bcb1ba4d0146ef21856bc9206a9d6878e81126ee..5ad84e663d013f10386402b4b04b2cb58d1c7ff7 100644 (file)
@@ -257,12 +257,12 @@ enum {
 
 /* rtm_protocol */
 
-#define RTPROT_UNSPEC  0
-#define RTPROT_REDIRECT        1       /* Route installed by ICMP redirects;
-                                  not used by current IPv4 */
-#define RTPROT_KERNEL  2       /* Route installed by kernel            */
-#define RTPROT_BOOT    3       /* Route installed during boot          */
-#define RTPROT_STATIC  4       /* Route installed by administrator     */
+#define RTPROT_UNSPEC          0
+#define RTPROT_REDIRECT                1       /* Route installed by ICMP redirects;
+                                          not used by current IPv4 */
+#define RTPROT_KERNEL          2       /* Route installed by kernel            */
+#define RTPROT_BOOT            3       /* Route installed during boot          */
+#define RTPROT_STATIC          4       /* Route installed by administrator     */
 
 /* Values of protocol >= RTPROT_STATIC are not interpreted by kernel;
    they are just passed from user and back as is.
@@ -271,22 +271,23 @@ enum {
    avoid conflicts.
  */
 
-#define RTPROT_GATED   8       /* Apparently, GateD */
-#define RTPROT_RA      9       /* RDISC/ND router advertisements */
-#define RTPROT_MRT     10      /* Merit MRT */
-#define RTPROT_ZEBRA   11      /* Zebra */
-#define RTPROT_BIRD    12      /* BIRD */
-#define RTPROT_DNROUTED        13      /* DECnet routing daemon */
-#define RTPROT_XORP    14      /* XORP */
-#define RTPROT_NTK     15      /* Netsukuku */
-#define RTPROT_DHCP    16      /* DHCP client */
-#define RTPROT_MROUTED 17      /* Multicast daemon */
-#define RTPROT_BABEL   42      /* Babel daemon */
-#define RTPROT_BGP     186     /* BGP Routes */
-#define RTPROT_ISIS    187     /* ISIS Routes */
-#define RTPROT_OSPF    188     /* OSPF Routes */
-#define RTPROT_RIP     189     /* RIP Routes */
-#define RTPROT_EIGRP   192     /* EIGRP Routes */
+#define RTPROT_GATED           8       /* Apparently, GateD */
+#define RTPROT_RA              9       /* RDISC/ND router advertisements */
+#define RTPROT_MRT             10      /* Merit MRT */
+#define RTPROT_ZEBRA           11      /* Zebra */
+#define RTPROT_BIRD            12      /* BIRD */
+#define RTPROT_DNROUTED                13      /* DECnet routing daemon */
+#define RTPROT_XORP            14      /* XORP */
+#define RTPROT_NTK             15      /* Netsukuku */
+#define RTPROT_DHCP            16      /* DHCP client */
+#define RTPROT_MROUTED         17      /* Multicast daemon */
+#define RTPROT_KEEPALIVED      18      /* Keepalived daemon */
+#define RTPROT_BABEL           42      /* Babel daemon */
+#define RTPROT_BGP             186     /* BGP Routes */
+#define RTPROT_ISIS            187     /* ISIS Routes */
+#define RTPROT_OSPF            188     /* OSPF Routes */
+#define RTPROT_RIP             189     /* RIP Routes */
+#define RTPROT_EIGRP           192     /* EIGRP Routes */
 
 /* rtm_scope
 
@@ -775,6 +776,7 @@ enum {
 #define RTEXT_FILTER_BRVLAN    (1 << 1)
 #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
 #define        RTEXT_FILTER_SKIP_STATS (1 << 3)
+#define RTEXT_FILTER_MRP       (1 << 4)
 
 /* End of information exported to user level */