Update kernel headers

Update kernel headers to commit:
   e1f046704404 ("Merge branch 'qlogic-use-generic-power-management'")

Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
David Ahern 2020-07-05 14:33:15 +00:00
parent 468f787f64
commit e17466e484
8 changed files with 267 additions and 122 deletions

View File

@ -653,7 +653,7 @@ union bpf_attr {
* Map value associated to *key*, or **NULL** if no entry was * Map value associated to *key*, or **NULL** if no entry was
* found. * 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 * Description
* Add or update the value of the entry associated to *key* in * Add or update the value of the entry associated to *key* in
* *map* with *value*. *flags* is one of: * *map* with *value*. *flags* is one of:
@ -671,13 +671,13 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Delete entry with *key* from *map*. * Delete entry with *key* from *map*.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* For tracing programs, safely attempt to read *size* bytes from * For tracing programs, safely attempt to read *size* bytes from
* kernel space address *unsafe_ptr* and store the data in *dst*. * kernel space address *unsafe_ptr* and store the data in *dst*.
@ -695,7 +695,7 @@ union bpf_attr {
* Return * Return
* Current *ktime*. * Current *ktime*.
* *
* int bpf_trace_printk(const char *fmt, u32 fmt_size, ...) * long bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
* Description * Description
* This helper is a "printk()-like" facility for debugging. It * This helper is a "printk()-like" facility for debugging. It
* prints a message defined by format *fmt* (of size *fmt_size*) * prints a message defined by format *fmt* (of size *fmt_size*)
@ -775,7 +775,7 @@ union bpf_attr {
* Return * Return
* The SMP id of the processor running the program. * 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 * Description
* Store *len* bytes from address *from* into the packet * Store *len* bytes from address *from* into the packet
* associated to *skb*, at *offset*. *flags* are a combination of * associated to *skb*, at *offset*. *flags* are a combination of
@ -792,7 +792,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Recompute the layer 3 (e.g. IP) checksum for the packet * Recompute the layer 3 (e.g. IP) checksum for the packet
* associated to *skb*. Computation is incremental, so the helper * associated to *skb*. Computation is incremental, so the helper
@ -817,7 +817,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the * Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the
* packet associated to *skb*. Computation is incremental, so the * packet associated to *skb*. Computation is incremental, so the
@ -849,7 +849,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* This special helper is used to trigger a "tail call", or in * This special helper is used to trigger a "tail call", or in
* other words, to jump into another eBPF program. The same stack * other words, to jump into another eBPF program. The same stack
@ -880,7 +880,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Clone and redirect the packet associated to *skb* to another * Clone and redirect the packet associated to *skb* to another
* net device of index *ifindex*. Both ingress and egress * 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 * A 64-bit integer containing the current GID and UID, and
* created as such: *current_gid* **<< 32 \|** *current_uid*. * 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 * Description
* Copy the **comm** attribute of the current task into *buf* of * Copy the **comm** attribute of the current task into *buf* of
* *size_of_buf*. The **comm** attribute contains the name of * *size_of_buf*. The **comm** attribute contains the name of
@ -953,7 +953,7 @@ union bpf_attr {
* Return * Return
* The classid, or 0 for the default unconfigured classid. * 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 * Description
* Push a *vlan_tci* (VLAN tag control information) of protocol * Push a *vlan_tci* (VLAN tag control information) of protocol
* *vlan_proto* to the packet associated to *skb*, then update * *vlan_proto* to the packet associated to *skb*, then update
@ -969,7 +969,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Pop a VLAN header from the packet associated to *skb*. * Pop a VLAN header from the packet associated to *skb*.
* *
@ -981,7 +981,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Get tunnel metadata. This helper takes a pointer *key* to an * Get tunnel metadata. This helper takes a pointer *key* to an
* empty **struct bpf_tunnel_key** of **size**, that will be * empty **struct bpf_tunnel_key** of **size**, that will be
@ -1032,7 +1032,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Populate tunnel metadata for packet associated to *skb.* The * Populate tunnel metadata for packet associated to *skb.* The
* tunnel metadata is set to the contents of *key*, of *size*. 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 * The value of the perf event counter read from the map, or a
* negative error code in case of failure. * negative error code in case of failure.
* *
* int bpf_redirect(u32 ifindex, u64 flags) * long bpf_redirect(u32 ifindex, u64 flags)
* Description * Description
* Redirect the packet to another net device of index *ifindex*. * Redirect the packet to another net device of index *ifindex*.
* This helper is somewhat similar to **bpf_clone_redirect**\ * 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 * The realm of the route for the packet associated to *skb*, or 0
* if none was found. * 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 * Description
* Write raw *data* blob into a special BPF perf event held by * Write raw *data* blob into a special BPF perf event held by
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@ -1190,7 +1190,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* This helper was provided as an easy way to load data from a * 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 * packet. It can be used to load *len* bytes from *offset* from
@ -1207,7 +1207,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Walk a user or a kernel stack and return its id. To achieve * 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 * 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 * The checksum result, or a negative error code in case of
* failure. * 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 * Description
* Retrieve tunnel options metadata for the packet associated to * Retrieve tunnel options metadata for the packet associated to
* *skb*, and store the raw tunnel option data to the buffer *opt* * *skb*, and store the raw tunnel option data to the buffer *opt*
@ -1294,7 +1294,7 @@ union bpf_attr {
* Return * Return
* The size of the option data retrieved. * 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 * Description
* Set tunnel options metadata for the packet associated to *skb* * Set tunnel options metadata for the packet associated to *skb*
* to the option data contained in the raw buffer *opt* of *size*. * to the option data contained in the raw buffer *opt* of *size*.
@ -1304,7 +1304,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Change the protocol of the *skb* to *proto*. Currently * Change the protocol of the *skb* to *proto*. Currently
* supported are transition from IPv4 to IPv6, and from IPv6 to * supported are transition from IPv4 to IPv6, and from IPv6 to
@ -1331,7 +1331,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Change the packet type for the packet associated to *skb*. This * Change the packet type for the packet associated to *skb*. This
* comes down to setting *skb*\ **->pkt_type** to *type*, except * comes down to setting *skb*\ **->pkt_type** to *type*, except
@ -1358,7 +1358,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Check whether *skb* is a descendant of the cgroup2 held by * Check whether *skb* is a descendant of the cgroup2 held by
* *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*. * *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*.
@ -1389,7 +1389,7 @@ union bpf_attr {
* Return * Return
* A pointer to the current task struct. * 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 * Description
* Attempt in a safe way to write *len* bytes from the buffer * 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 * *src* to *dst* in memory. It only works for threads that are in
@ -1408,7 +1408,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Check whether the probe is being run is the context of a given * 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 * 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. * * 1, if the *skb* task does not belong to the cgroup2.
* * A negative error code, if an error occurred. * * 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 * Description
* Resize (trim or grow) the packet associated to *skb* to the * Resize (trim or grow) the packet associated to *skb* to the
* new *len*. The *flags* are reserved for future usage, and must * new *len*. The *flags* are reserved for future usage, and must
@ -1444,7 +1444,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Pull in non-linear data in case the *skb* is non-linear and not * 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 * 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 * recalculation the next time the kernel tries to access this
* hash or when the **bpf_get_hash_recalc**\ () helper is called. * 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 * Description
* Return the id of the current NUMA node. The primary use case * Return the id of the current NUMA node. The primary use case
* for this helper is the selection of sockets for the local NUMA * for this helper is the selection of sockets for the local NUMA
@ -1511,7 +1511,7 @@ union bpf_attr {
* Return * Return
* The id of current NUMA node. * 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 * Description
* Grows headroom of packet associated to *skb* and adjusts the * Grows headroom of packet associated to *skb* and adjusts the
* offset of the MAC header accordingly, adding *len* bytes of * offset of the MAC header accordingly, adding *len* bytes of
@ -1532,7 +1532,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that * Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that
* it is possible to use a negative value for *delta*. This helper * it is possible to use a negative value for *delta*. This helper
@ -1547,7 +1547,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Copy a NUL terminated string from an unsafe kernel address * Copy a NUL terminated string from an unsafe kernel address
* *unsafe_ptr* to *dst*. See **bpf_probe_read_kernel_str**\ () for * *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 * is returned (note that **overflowuid** might also be the actual
* UID value for the socket). * 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 * Description
* Set the full hash for *skb* (set the field *skb*\ **->hash**) * Set the full hash for *skb* (set the field *skb*\ **->hash**)
* to value *hash*. * to value *hash*.
* Return * Return
* 0 * 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 * Description
* Emulate a call to **setsockopt()** on the socket associated to * Emulate a call to **setsockopt()** on the socket associated to
* *bpf_socket*, which must be a full socket. The *level* at * *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: * * **SOL_SOCKET**, which supports the following *optname*\ s:
* **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**, * **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: * * **IPPROTO_TCP**, which supports the following *optname*\ s:
* **TCP_CONGESTION**, **TCP_BPF_IW**, * **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_IP**, which supports *optname* **IP_TOS**.
* * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**. * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Grow or shrink the room for data in the packet associated to * Grow or shrink the room for data in the packet associated to
* *skb* by *len_diff*, and according to the selected *mode*. * *skb* by *len_diff*, and according to the selected *mode*.
@ -1676,7 +1679,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Redirect the packet to the endpoint referenced by *map* at * Redirect the packet to the endpoint referenced by *map* at
* index *key*. Depending on its type, this *map* can contain * 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 * **XDP_REDIRECT** on success, or the value of the two lower bits
* of the *flags* argument on error. * 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 * Description
* Redirect the packet to the socket referenced by *map* (of type * Redirect the packet to the socket referenced by *map* (of type
* **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@ -1708,7 +1711,7 @@ union bpf_attr {
* Return * Return
* **SK_PASS** on success, or **SK_DROP** on error. * **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 * Description
* Add an entry to, or update a *map* referencing sockets. The * Add an entry to, or update a *map* referencing sockets. The
* *skops* is used as a new value for the entry associated to * *skops* is used as a new value for the entry associated to
@ -1727,7 +1730,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Adjust the address pointed by *xdp_md*\ **->data_meta** by * Adjust the address pointed by *xdp_md*\ **->data_meta** by
* *delta* (which can be positive or negative). Note that this * *delta* (which can be positive or negative). Note that this
@ -1756,7 +1759,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Read the value of a perf event counter, and store it into *buf* * 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 * of size *buf_size*. This helper relies on a *map* of type
@ -1806,7 +1809,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* For en eBPF program attached to a perf event, retrieve the * For en eBPF program attached to a perf event, retrieve the
* value of the event counter associated to *ctx* and store it in * value of the event counter associated to *ctx* and store it in
@ -1817,7 +1820,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Emulate a call to **getsockopt()** on the socket associated to * Emulate a call to **getsockopt()** on the socket associated to
* *bpf_socket*, which must be a full socket. The *level* at * *bpf_socket*, which must be a full socket. The *level* at
@ -1842,7 +1845,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Used for error injection, this helper uses kprobes to override * Used for error injection, this helper uses kprobes to override
* the return value of the probed function, and to set it to *rc*. * the return value of the probed function, and to set it to *rc*.
@ -1867,7 +1870,7 @@ union bpf_attr {
* Return * Return
* 0 * 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 * Description
* Attempt to set the value of the **bpf_sock_ops_cb_flags** field * Attempt to set the value of the **bpf_sock_ops_cb_flags** field
* for the full TCP socket associated to *bpf_sock_ops* to * 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 * be set is returned (which comes down to 0 if all bits were set
* as required). * 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 * Description
* This helper is used in programs implementing policies at the * This helper is used in programs implementing policies at the
* socket level. If the message *msg* is allowed to pass (i.e. if * socket level. If the message *msg* is allowed to pass (i.e. if
@ -1925,7 +1928,7 @@ union bpf_attr {
* Return * Return
* **SK_PASS** on success, or **SK_DROP** on error. * **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 * Description
* For socket policies, apply the verdict of the eBPF program to * For socket policies, apply the verdict of the eBPF program to
* the next *bytes* (number of bytes) of message *msg*. * the next *bytes* (number of bytes) of message *msg*.
@ -1959,7 +1962,7 @@ union bpf_attr {
* Return * Return
* 0 * 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 * Description
* For socket policies, prevent the execution of the verdict eBPF * For socket policies, prevent the execution of the verdict eBPF
* program for message *msg* until *bytes* (byte number) have been * program for message *msg* until *bytes* (byte number) have been
@ -1977,7 +1980,7 @@ union bpf_attr {
* Return * Return
* 0 * 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 * Description
* For socket policies, pull in non-linear data from user space * For socket policies, pull in non-linear data from user space
* for *msg* and set pointers *msg*\ **->data** and *msg*\ * for *msg* and set pointers *msg*\ **->data** and *msg*\
@ -2008,7 +2011,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Bind the socket associated to *ctx* to the address pointed by * Bind the socket associated to *ctx* to the address pointed by
* *addr*, of length *addr_len*. This allows for making outgoing * *addr*, of length *addr_len*. This allows for making outgoing
@ -2026,7 +2029,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is * Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is
* possible to both shrink and grow the packet tail. * possible to both shrink and grow the packet tail.
@ -2040,7 +2043,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Retrieve the XFRM state (IP transform framework, see also * Retrieve the XFRM state (IP transform framework, see also
* **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*. * **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*.
@ -2056,7 +2059,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Return a user or a kernel stack in bpf program provided buffer. * Return a user or a kernel stack in bpf program provided buffer.
* To achieve this, the helper needs *ctx*, which is a pointer * 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, * A non-negative value equal to or less than *size* on success,
* or a negative error in case of failure. * 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 * Description
* This helper is similar to **bpf_skb_load_bytes**\ () in that * This helper is similar to **bpf_skb_load_bytes**\ () in that
* it provides an easy way to load *len* bytes from *offset* * it provides an easy way to load *len* bytes from *offset*
@ -2111,7 +2114,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Do FIB lookup in kernel tables using parameters in *params*. * Do FIB lookup in kernel tables using parameters in *params*.
* If lookup is successful and result shows packet is to be * 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 * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
* packet is not forwarded or needs assist from full stack * 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 * Description
* Add an entry to, or update a sockhash *map* referencing sockets. * Add an entry to, or update a sockhash *map* referencing sockets.
* The *skops* is used as a new value for the entry associated to * The *skops* is used as a new value for the entry associated to
@ -2161,7 +2164,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* This helper is used in programs implementing policies at the * This helper is used in programs implementing policies at the
* socket level. If the message *msg* is allowed to pass (i.e. if * socket level. If the message *msg* is allowed to pass (i.e. if
@ -2175,7 +2178,7 @@ union bpf_attr {
* Return * Return
* **SK_PASS** on success, or **SK_DROP** on error. * **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 * Description
* This helper is used in programs implementing policies at the * This helper is used in programs implementing policies at the
* skb socket level. If the sk_buff *skb* is allowed to pass (i.e. * skb socket level. If the sk_buff *skb* is allowed to pass (i.e.
@ -2189,7 +2192,7 @@ union bpf_attr {
* Return * Return
* **SK_PASS** on success, or **SK_DROP** on error. * **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 * Description
* Encapsulate the packet associated to *skb* within a Layer 3 * Encapsulate the packet associated to *skb* within a Layer 3
* protocol header. This header is provided in the buffer at * protocol header. This header is provided in the buffer at
@ -2226,7 +2229,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Store *len* bytes from address *from* into the packet * Store *len* bytes from address *from* into the packet
* associated to *skb*, at *offset*. Only the flags, tag and TLVs * associated to *skb*, at *offset*. Only the flags, tag and TLVs
@ -2241,7 +2244,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Adjust the size allocated to TLVs in the outermost IPv6 * Adjust the size allocated to TLVs in the outermost IPv6
* Segment Routing Header contained in the packet associated to * Segment Routing Header contained in the packet associated to
@ -2257,7 +2260,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Apply an IPv6 Segment Routing action of type *action* to the * Apply an IPv6 Segment Routing action of type *action* to the
* packet associated to *skb*. Each action takes a parameter * packet associated to *skb*. Each action takes a parameter
@ -2286,7 +2289,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 0 on success, or a negative error in case of failure.
* *
* int bpf_rc_repeat(void *ctx) * long bpf_rc_repeat(void *ctx)
* Description * Description
* This helper is used in programs implementing IR decoding, to * This helper is used in programs implementing IR decoding, to
* report a successfully decoded repeat key message. This delays * report a successfully decoded repeat key message. This delays
@ -2305,7 +2308,7 @@ union bpf_attr {
* Return * Return
* 0 * 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 * Description
* This helper is used in programs implementing IR decoding, to * This helper is used in programs implementing IR decoding, to
* report a successfully decoded key press with *scancode*, * report a successfully decoded key press with *scancode*,
@ -2370,7 +2373,7 @@ union bpf_attr {
* Return * Return
* A pointer to the local storage area. * 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 * Description
* Select a **SO_REUSEPORT** socket from a * Select a **SO_REUSEPORT** socket from a
* **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*. * **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
@ -2471,7 +2474,7 @@ union bpf_attr {
* result is from *reuse*\ **->socks**\ [] using the hash of the * result is from *reuse*\ **->socks**\ [] using the hash of the
* tuple. * tuple.
* *
* int bpf_sk_release(struct bpf_sock *sock) * long bpf_sk_release(struct bpf_sock *sock)
* Description * Description
* Release the reference held by *sock*. *sock* must be a * Release the reference held by *sock*. *sock* must be a
* non-**NULL** pointer that was returned from * non-**NULL** pointer that was returned from
@ -2479,7 +2482,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Push an element *value* in *map*. *flags* is one of: * Push an element *value* in *map*. *flags* is one of:
* *
@ -2489,19 +2492,19 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Pop an element from *map*. * Pop an element from *map*.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Get an element from *map* without removing it. * Get an element from *map* without removing it.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* For socket policies, insert *len* bytes into *msg* at offset * For socket policies, insert *len* bytes into *msg* at offset
* *start*. * *start*.
@ -2517,7 +2520,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Will remove *len* bytes from a *msg* starting at byte *start*. * Will remove *len* bytes from a *msg* starting at byte *start*.
* This may result in **ENOMEM** errors under certain situations if * This may result in **ENOMEM** errors under certain situations if
@ -2529,7 +2532,7 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* This helper is used in programs implementing IR decoding, to * This helper is used in programs implementing IR decoding, to
* report a successfully decoded pointer movement. * report a successfully decoded pointer movement.
@ -2543,7 +2546,7 @@ union bpf_attr {
* Return * Return
* 0 * 0
* *
* int bpf_spin_lock(struct bpf_spin_lock *lock) * long bpf_spin_lock(struct bpf_spin_lock *lock)
* Description * Description
* Acquire a spinlock represented by the pointer *lock*, which is * Acquire a spinlock represented by the pointer *lock*, which is
* stored as part of a value of a map. Taking the lock allows to * stored as part of a value of a map. Taking the lock allows to
@ -2591,7 +2594,7 @@ union bpf_attr {
* Return * Return
* 0 * 0
* *
* int bpf_spin_unlock(struct bpf_spin_lock *lock) * long bpf_spin_unlock(struct bpf_spin_lock *lock)
* Description * Description
* Release the *lock* previously locked by a call to * Release the *lock* previously locked by a call to
* **bpf_spin_lock**\ (\ *lock*\ ). * **bpf_spin_lock**\ (\ *lock*\ ).
@ -2614,7 +2617,7 @@ union bpf_attr {
* A **struct bpf_tcp_sock** pointer on success, or **NULL** in * A **struct bpf_tcp_sock** pointer on success, or **NULL** in
* case of failure. * case of failure.
* *
* int bpf_skb_ecn_set_ce(struct sk_buff *skb) * long bpf_skb_ecn_set_ce(struct sk_buff *skb)
* Description * Description
* Set ECN (Explicit Congestion Notification) field of IP header * Set ECN (Explicit Congestion Notification) field of IP header
* to **CE** (Congestion Encountered) if current value is **ECT** * 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 * result is from *reuse*\ **->socks**\ [] using the hash of the
* tuple. * 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 * Description
* Check whether *iph* and *th* contain a valid SYN cookie ACK for * Check whether *iph* and *th* contain a valid SYN cookie ACK for
* the listening socket in *sk*. * 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 * 0 if *iph* and *th* are a valid SYN cookie ACK, or a negative
* error otherwise. * 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 * Description
* Get name of sysctl in /proc/sys/ and copy it into provided by * Get name of sysctl in /proc/sys/ and copy it into provided by
* program buffer *buf* of size *buf_len*. * 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 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
* truncated name in this case). * 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 * Description
* Get current value of sysctl as it is presented in /proc/sys * Get current value of sysctl as it is presented in /proc/sys
* (incl. newline, etc), and copy it as a string into provided * (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 * **-EINVAL** if current value was unavailable, e.g. because
* sysctl is uninitialized and read returns -EIO for it. * 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 * Description
* Get new value being written by user space to sysctl (before * Get new value being written by user space to sysctl (before
* the actual write happens) and copy it as a string into * the actual write happens) and copy it as a string into
@ -2718,7 +2721,7 @@ union bpf_attr {
* *
* **-EINVAL** if sysctl is being read. * **-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 * Description
* Override new value being written by user space to sysctl with * Override new value being written by user space to sysctl with
* value provided by program in buffer *buf* of size *buf_len*. * value provided by program in buffer *buf* of size *buf_len*.
@ -2735,7 +2738,7 @@ union bpf_attr {
* *
* **-EINVAL** if sysctl is being read. * **-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 * Description
* Convert the initial part of the string from buffer *buf* of * Convert the initial part of the string from buffer *buf* of
* size *buf_len* to a long integer according to the given base * 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. * **-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 * Description
* Convert the initial part of the string from buffer *buf* of * Convert the initial part of the string from buffer *buf* of
* size *buf_len* to an unsigned long integer according to the * 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 * **NULL** if not found or there was an error in adding
* a new bpf-local-storage. * 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 * Description
* Delete a bpf-local-storage from a *sk*. * Delete a bpf-local-storage from a *sk*.
* Return * Return
@ -2818,7 +2821,7 @@ union bpf_attr {
* *
* **-ENOENT** if the bpf-local-storage cannot be found. * **-ENOENT** if the bpf-local-storage cannot be found.
* *
* int bpf_send_signal(u32 sig) * long bpf_send_signal(u32 sig)
* Description * Description
* Send signal *sig* to the process of the current task. * Send signal *sig* to the process of the current task.
* The signal may be delivered to any of this process's threads. * 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 * **-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 * Description
* Write raw *data* blob into a special BPF perf event held by * Write raw *data* blob into a special BPF perf event held by
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@ -2883,21 +2886,21 @@ union bpf_attr {
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Safely attempt to read *size* bytes from user space address * Safely attempt to read *size* bytes from user space address
* *unsafe_ptr* and store the data in *dst*. * *unsafe_ptr* and store the data in *dst*.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Safely attempt to read *size* bytes from kernel space address * Safely attempt to read *size* bytes from kernel space address
* *unsafe_ptr* and store the data in *dst*. * *unsafe_ptr* and store the data in *dst*.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Copy a NUL terminated string from an unsafe user address * Copy a NUL terminated string from an unsafe user address
* *unsafe_ptr* to *dst*. The *size* should include the * *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 * including the trailing NUL character. On error, a negative
* value. * 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 * Description
* Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr* * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
* to *dst*. Same semantics as with **bpf_probe_read_user_str**\ () apply. * 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 * On success, the strictly positive length of the string, including
* the trailing NUL character. On error, a negative value. * 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 * Description
* Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**. * Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**.
* *rcv_nxt* is the ack_seq to be sent out. * *rcv_nxt* is the ack_seq to be sent out.
* Return * Return
* 0 on success, or a negative error in case of failure. * 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 * Description
* Send signal *sig* to the thread corresponding to the current task. * Send signal *sig* to the thread corresponding to the current task.
* Return * Return
@ -2976,7 +2979,7 @@ union bpf_attr {
* Return * Return
* The 64 bit jiffies * 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 * Description
* For an eBPF program attached to a perf event, retrieve the * For an eBPF program attached to a perf event, retrieve the
* branch records (**struct perf_branch_entry**) associated to *ctx* * branch records (**struct perf_branch_entry**) associated to *ctx*
@ -2995,7 +2998,7 @@ union bpf_attr {
* *
* **-ENOENT** if architecture does not support branch records. * **-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 * Description
* Returns 0 on success, values for *pid* and *tgid* as seen from the current * Returns 0 on success, values for *pid* and *tgid* as seen from the current
* *namespace* will be returned in *nsdata*. * *namespace* will be returned in *nsdata*.
@ -3007,7 +3010,7 @@ union bpf_attr {
* *
* **-ENOENT** if pidns does not exists for the current task. * **-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 * Description
* Write raw *data* blob into a special BPF perf event held by * Write raw *data* blob into a special BPF perf event held by
* *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@ -3062,7 +3065,7 @@ union bpf_attr {
* Return * Return
* The id is returned or 0 in case the id could not be retrieved. * 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 * Description
* Assign the *sk* to the *skb*. When combined with appropriate * Assign the *sk* to the *skb*. When combined with appropriate
* routing configuration to receive the packet towards the socket, * routing configuration to receive the packet towards the socket,
@ -3097,7 +3100,7 @@ union bpf_attr {
* Return * Return
* Current *ktime*. * 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 * Description
* **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print * **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print
* out the format string. * out the format string.
@ -3126,7 +3129,7 @@ union bpf_attr {
* *
* **-EOVERFLOW** if an overflow happened: The same object will be tried again. * **-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 * Description
* **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data. * **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data.
* The *m* represents the seq_file. The *data* and *len* represent the * The *m* represents the seq_file. The *data* and *len* represent the
@ -3168,7 +3171,7 @@ union bpf_attr {
* Return * Return
* The id is returned or 0 in case the id could not be retrieved. * 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 * Description
* Copy *size* bytes from *data* into a ring buffer *ringbuf*. * Copy *size* bytes from *data* into a ring buffer *ringbuf*.
* If BPF_RB_NO_WAKEUP is specified in *flags*, no notification of * If BPF_RB_NO_WAKEUP is specified in *flags*, no notification of
@ -3221,7 +3224,7 @@ union bpf_attr {
* Return * Return
* Requested value, or 0, if flags are not recognized. * 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 * Description
* Change the skbs checksum level by one layer up or down, or * Change the skbs checksum level by one layer up or down, or
* reset it entirely to none in order to have the stack perform * 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 * case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level
* is returned or the error code -EACCES in case the skb is not * is returned or the error code -EACCES in case the skb is not
* subject to CHECKSUM_UNNECESSARY. * 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) \ #define __BPF_FUNC_MAPPER(FN) \
FN(unspec), \ FN(unspec), \
@ -3389,7 +3455,14 @@ union bpf_attr {
FN(ringbuf_submit), \ FN(ringbuf_submit), \
FN(ringbuf_discard), \ FN(ringbuf_discard), \
FN(ringbuf_query), \ 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 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call * function eBPF program intends to call
@ -3761,6 +3834,19 @@ struct xdp_md {
__u32 egress_ifindex; /* txq->dev->ifindex */ __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 { enum sk_action {
SK_DROP = 0, SK_DROP = 0,
SK_PASS, SK_PASS,

View File

@ -451,6 +451,10 @@ enum devlink_attr {
DEVLINK_ATTR_TRAP_POLICER_RATE, /* u64 */ DEVLINK_ATTR_TRAP_POLICER_RATE, /* u64 */
DEVLINK_ATTR_TRAP_POLICER_BURST, /* 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 */ /* add new attributes above here, update the policy in devlink.c */
__DEVLINK_ATTR_MAX, __DEVLINK_ATTR_MAX,
@ -497,4 +501,12 @@ enum devlink_resource_unit {
DEVLINK_RESOURCE_UNIT_ENTRY, 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_ */ #endif /* _LINUX_DEVLINK_H_ */

View File

@ -166,6 +166,7 @@ enum {
IFLA_BRIDGE_MRP_RING_STATE, IFLA_BRIDGE_MRP_RING_STATE,
IFLA_BRIDGE_MRP_RING_ROLE, IFLA_BRIDGE_MRP_RING_ROLE,
IFLA_BRIDGE_MRP_START_TEST, IFLA_BRIDGE_MRP_START_TEST,
IFLA_BRIDGE_MRP_INFO,
__IFLA_BRIDGE_MRP_MAX, __IFLA_BRIDGE_MRP_MAX,
}; };
@ -228,6 +229,22 @@ enum {
#define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1) #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 { struct br_mrp_instance {
__u32 ring_id; __u32 ring_id;
__u32 p_ifindex; __u32 p_ifindex;

View File

@ -598,6 +598,7 @@ enum {
IFLA_BAREUDP_ETHERTYPE, IFLA_BAREUDP_ETHERTYPE,
IFLA_BAREUDP_SRCPORT_MIN, IFLA_BAREUDP_SRCPORT_MIN,
IFLA_BAREUDP_MULTIPROTO_MODE, IFLA_BAREUDP_MULTIPROTO_MODE,
IFLA_BAREUDP_RX_COLLECT_METADATA,
__IFLA_BAREUDP_MAX __IFLA_BAREUDP_MAX
}; };

View File

@ -94,6 +94,7 @@
#define BALLOON_KVM_MAGIC 0x13661366 #define BALLOON_KVM_MAGIC 0x13661366
#define ZSMALLOC_MAGIC 0x58295829 #define ZSMALLOC_MAGIC 0x58295829
#define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */ #define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */
#define DEVMEM_MAGIC 0x454d444d /* "DMEM" */
#define Z3FOLD_MAGIC 0x33 #define Z3FOLD_MAGIC 0x33
#define PPC_CMM_MAGIC 0xc7571590 #define PPC_CMM_MAGIC 0xc7571590

View File

@ -30,6 +30,7 @@ enum {
NDA_SRC_VNI, NDA_SRC_VNI,
NDA_PROTOCOL, /* Originator of entry */ NDA_PROTOCOL, /* Originator of entry */
NDA_NH_ID, NDA_NH_ID,
NDA_FDB_EXT_ATTRS,
__NDA_MAX __NDA_MAX
}; };
@ -172,4 +173,27 @@ enum {
}; };
#define NDTA_MAX (__NDTA_MAX - 1) #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 #endif

View File

@ -257,6 +257,8 @@ enum {
TCA_RED_STAB, TCA_RED_STAB,
TCA_RED_MAX_P, TCA_RED_MAX_P,
TCA_RED_FLAGS, /* bitfield32 */ TCA_RED_FLAGS, /* bitfield32 */
TCA_RED_EARLY_DROP_BLOCK, /* u32 */
TCA_RED_MARK_BLOCK, /* u32 */
__TCA_RED_MAX, __TCA_RED_MAX,
}; };

View File

@ -257,12 +257,12 @@ enum {
/* rtm_protocol */ /* rtm_protocol */
#define RTPROT_UNSPEC 0 #define RTPROT_UNSPEC 0
#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects; #define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
not used by current IPv4 */ not used by current IPv4 */
#define RTPROT_KERNEL 2 /* Route installed by kernel */ #define RTPROT_KERNEL 2 /* Route installed by kernel */
#define RTPROT_BOOT 3 /* Route installed during boot */ #define RTPROT_BOOT 3 /* Route installed during boot */
#define RTPROT_STATIC 4 /* Route installed by administrator */ #define RTPROT_STATIC 4 /* Route installed by administrator */
/* Values of protocol >= RTPROT_STATIC are not interpreted by kernel; /* Values of protocol >= RTPROT_STATIC are not interpreted by kernel;
they are just passed from user and back as is. they are just passed from user and back as is.
@ -271,22 +271,23 @@ enum {
avoid conflicts. avoid conflicts.
*/ */
#define RTPROT_GATED 8 /* Apparently, GateD */ #define RTPROT_GATED 8 /* Apparently, GateD */
#define RTPROT_RA 9 /* RDISC/ND router advertisements */ #define RTPROT_RA 9 /* RDISC/ND router advertisements */
#define RTPROT_MRT 10 /* Merit MRT */ #define RTPROT_MRT 10 /* Merit MRT */
#define RTPROT_ZEBRA 11 /* Zebra */ #define RTPROT_ZEBRA 11 /* Zebra */
#define RTPROT_BIRD 12 /* BIRD */ #define RTPROT_BIRD 12 /* BIRD */
#define RTPROT_DNROUTED 13 /* DECnet routing daemon */ #define RTPROT_DNROUTED 13 /* DECnet routing daemon */
#define RTPROT_XORP 14 /* XORP */ #define RTPROT_XORP 14 /* XORP */
#define RTPROT_NTK 15 /* Netsukuku */ #define RTPROT_NTK 15 /* Netsukuku */
#define RTPROT_DHCP 16 /* DHCP client */ #define RTPROT_DHCP 16 /* DHCP client */
#define RTPROT_MROUTED 17 /* Multicast daemon */ #define RTPROT_MROUTED 17 /* Multicast daemon */
#define RTPROT_BABEL 42 /* Babel daemon */ #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */
#define RTPROT_BGP 186 /* BGP Routes */ #define RTPROT_BABEL 42 /* Babel daemon */
#define RTPROT_ISIS 187 /* ISIS Routes */ #define RTPROT_BGP 186 /* BGP Routes */
#define RTPROT_OSPF 188 /* OSPF Routes */ #define RTPROT_ISIS 187 /* ISIS Routes */
#define RTPROT_RIP 189 /* RIP Routes */ #define RTPROT_OSPF 188 /* OSPF Routes */
#define RTPROT_EIGRP 192 /* EIGRP Routes */ #define RTPROT_RIP 189 /* RIP Routes */
#define RTPROT_EIGRP 192 /* EIGRP Routes */
/* rtm_scope /* rtm_scope
@ -775,6 +776,7 @@ enum {
#define RTEXT_FILTER_BRVLAN (1 << 1) #define RTEXT_FILTER_BRVLAN (1 << 1)
#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
#define RTEXT_FILTER_SKIP_STATS (1 << 3) #define RTEXT_FILTER_SKIP_STATS (1 << 3)
#define RTEXT_FILTER_MRP (1 << 4)
/* End of information exported to user level */ /* End of information exported to user level */