History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

Pull networking updates from David Miller: 1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan. 2) Support UDP segmentation in code TSO code, from Eric Dumazet. 3) Allow flashing different flash images in cxgb4 driver, from Vishal Kulkarni. 4) Add drop frames counter and flow status to tc flower offloading, from Po Liu. 5) Support n-tuple filters in cxgb4, from Vishal Kulkarni. 6) Various new indirect call avoidance, from Eric Dumazet and Brian Vazquez. 7) Fix BPF verifier failures on 32-bit pointer arithmetic, from Yonghong Song. 8) Support querying and setting hardware address of a port function via devlink, use this in mlx5, from Parav Pandit. 9) Support hw ipsec offload on bonding slaves, from Jarod Wilson. 10) Switch qca8k driver over to phylink, from Jonathan McDowell. 11) In bpftool, show list of processes holding BPF FD references to maps, programs, links, and btf objects. From Andrii Nakryiko. 12) Several conversions over to generic power management, from Vaibhav Gupta. 13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry Yakunin. 14) Various https url conversions, from Alexander A. Klimov. 15) Timestamping and PHC support for mscc PHY driver, from Antoine Tenart. 16) Support bpf iterating over tcp and udp sockets, from Yonghong Song. 17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov. 18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan. 19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several drivers. From Luc Van Oostenryck. 20) XDP support for xen-netfront, from Denis Kirjanov. 21) Support receive buffer autotuning in MPTCP, from Florian Westphal. 22) Support EF100 chip in sfc driver, from Edward Cree. 23) Add XDP support to mvpp2 driver, from Matteo Croce. 24) Support MPTCP in sock_diag, from Paolo Abeni. 25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic infrastructure, from Jakub Kicinski. 26) Several pci_ --> dma_ API conversions, from Christophe JAILLET. 27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel. 28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki. 29) Refactor a lot of networking socket option handling code in order to avoid set_fs() calls, from Christoph Hellwig. 30) Add rfc4884 support to icmp code, from Willem de Bruijn. 31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei. 32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin. 33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin. 34) Support TCP syncookies in MPTCP, from Flowian Westphal. 35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano Brivio. * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits) net: thunderx: initialize VF's mailbox mutex before first usage usb: hso: remove bogus check for EINPROGRESS usb: hso: no complaint about kmalloc failure hso: fix bailout in error case of probe ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM selftests/net: relax cpu affinity requirement in msg_zerocopy test mptcp: be careful on subflow creation selftests: rtnetlink: make kci_test_encap() return sub-test result selftests: rtnetlink: correct the final return value for the test net: dsa: sja1105: use detected device id instead of DT one on mismatch tipc: set ub->ifindex for local ipv6 address ipv6: add ipv6_dev_find() net: openvswitch: silence suspicious RCU usage warning Revert "vxlan: fix tos value before xmit" ptp: only allow phase values lower than 1 period farsync: switch from 'pci_' to 'dma_' API wan: wanxl: switch from 'pci_' to 'dma_' API hv_netvsc: do not use VF device if link is down dpaa2-eth: Fix passing zero to 'PTR_ERR' warning net: macb: Properly handle phylink on at91sam9x ...

Linus Torvalds committed 6 years ago

Commit 47ec5302 parents 8186749 c1055b72088 files · +117531 −41040Browse files

Showing the changes to include/uapi/linux (36 of 2088 files). Show all

Unified · Split

36 files
  1. include/uapi/linux/atmioc.h +1 −1
  2. include/uapi/linux/batadv_packet.h +25 −25
  3. include/uapi/linux/batman_adv.h +4 −3
  4. include/uapi/linux/bpf.h +289 −104
  5. include/uapi/linux/caif/caif_socket.h +1 −1
  6. include/uapi/linux/devlink.h +15 −0
  7. include/uapi/linux/errqueue.h +13 −1
  8. include/uapi/linux/ethtool.h +87 −0
  9. include/uapi/linux/ethtool_netlink.h +57 −0
  10. include/uapi/linux/hsr_netlink.h +1 −1
  11. include/uapi/linux/icmp.h +22 −0
  12. include/uapi/linux/icmpv6.h +1 −0
  13. include/uapi/linux/if_bridge.h +75 −0
  14. include/uapi/linux/if_link.h +22 −1
  15. include/uapi/linux/if_xdp.h +4 −1
  16. include/uapi/linux/in.h +1 −0
  17. include/uapi/linux/in6.h +1 −0
  18. include/uapi/linux/inet_diag.h +1 −0
  19. include/uapi/linux/mdio.h +26 −0
  20. include/uapi/linux/mptcp.h +17 −0
  21. include/uapi/linux/mrp_bridge.h +38 −0
  22. include/uapi/linux/neighbour.h +24 −0
  23. include/uapi/linux/netfilter/nf_tables.h +14 −0
  24. include/uapi/linux/netfilter/xt_connmark.h +1 −1
  25. include/uapi/linux/nl80211.h +72 −22
  26. include/uapi/linux/openvswitch.h +2 −1
  27. include/uapi/linux/pkt_cls.h +3 −0
  28. include/uapi/linux/pkt_sched.h +2 −0
  29. include/uapi/linux/ptp_clock.h +30 −4
  30. include/uapi/linux/rtnetlink.h +24 −22
  31. include/uapi/linux/seg6_iptunnel.h +0 −21
  32. include/uapi/linux/snmp.h +1 −0
  33. include/uapi/linux/tcp.h +1 −0
  34. include/uapi/linux/wireless.h +1 −1
  35. include/uapi/linux/xdp_diag.h +11 −0
  36. include/uapi/linux/xfrm.h +1 −0
include/uapi/linux/atmioc.h+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
55
66
77 /*
8− * See http://icawww1.epfl.ch/linux-atm/magic.html for the complete list of
8+ * See https://icawww1.epfl.ch/linux-atm/magic.html for the complete list of
99 * "magic" ioctl numbers.
1010 */
1111
include/uapi/linux/batadv_packet.h+25−25
@@ -72,8 +72,8 @@ enum batadv_subtype { · 71 unmodified lines
7272
7373 /**
7474 * enum batadv_iv_flags - flags used in B.A.T.M.A.N. IV OGM packets
75− * @BATADV_NOT_BEST_NEXT_HOP: flag is set when ogm packet is forwarded and was
76− * previously received from someone else than the best neighbor.
75+ * @BATADV_NOT_BEST_NEXT_HOP: flag is set when the ogm packet is forwarded and
76+ * was previously received from someone other than the best neighbor.
7777 * @BATADV_PRIMARIES_FIRST_HOP: flag unused.
7878 * @BATADV_DIRECTLINK: flag is for the first hop or if rebroadcasted from a
7979 * one hop neighbor on the interface where it was originally received.
@@ -195,8 +195,8 @@ struct batadv_bla_claim_dst { · 115 unmodified lines
195195 /**
196196 * struct batadv_ogm_packet - ogm (routing protocol) packet
197197 * @packet_type: batman-adv packet type, part of the general header
198− * @version: batman-adv protocol version, part of the genereal header
199− * @ttl: time to live for this packet, part of the genereal header
198+ * @version: batman-adv protocol version, part of the general header
199+ * @ttl: time to live for this packet, part of the general header
200200 * @flags: contains routing relevant flags - see enum batadv_iv_flags
201201 * @seqno: sequence identification
202202 * @orig: address of the source node
@@ -247,7 +247,7 @@ struct batadv_ogm2_packet { · 44 unmodified lines
247247 /**
248248 * struct batadv_elp_packet - elp (neighbor discovery) packet
249249 * @packet_type: batman-adv packet type, part of the general header
250− * @version: batman-adv protocol version, part of the genereal header
250+ * @version: batman-adv protocol version, part of the general header
251251 * @orig: originator mac address
252252 * @seqno: sequence number
253253 * @elp_interval: currently used ELP sending interval in ms
@@ -265,15 +265,15 @@ struct batadv_elp_packet { · 11 unmodified lines
265265 /**
266266 * struct batadv_icmp_header - common members among all the ICMP packets
267267 * @packet_type: batman-adv packet type, part of the general header
268− * @version: batman-adv protocol version, part of the genereal header
269− * @ttl: time to live for this packet, part of the genereal header
268+ * @version: batman-adv protocol version, part of the general header
269+ * @ttl: time to live for this packet, part of the general header
270270 * @msg_type: ICMP packet type
271271 * @dst: address of the destination node
272272 * @orig: address of the source node
273273 * @uid: local ICMP socket identifier
274274 * @align: not used - useful for alignment purposes only
275275 *
276− * This structure is used for ICMP packets parsing only and it is never sent
276+ * This structure is used for ICMP packet parsing only and it is never sent
277277 * over the wire. The alignment field at the end is there to ensure that
278278 * members are padded the same way as they are in real packets.
279279 */
@@ -291,8 +291,8 @@ struct batadv_icmp_header { · 11 unmodified lines
291291 /**
292292 * struct batadv_icmp_packet - ICMP packet
293293 * @packet_type: batman-adv packet type, part of the general header
294− * @version: batman-adv protocol version, part of the genereal header
295− * @ttl: time to live for this packet, part of the genereal header
294+ * @version: batman-adv protocol version, part of the general header
295+ * @ttl: time to live for this packet, part of the general header
296296 * @msg_type: ICMP packet type
297297 * @dst: address of the destination node
298298 * @orig: address of the source node
@@ -315,8 +315,8 @@ struct batadv_icmp_packet { · 16 unmodified lines
315315 /**
316316 * struct batadv_icmp_tp_packet - ICMP TP Meter packet
317317 * @packet_type: batman-adv packet type, part of the general header
318− * @version: batman-adv protocol version, part of the genereal header
319− * @ttl: time to live for this packet, part of the genereal header
318+ * @version: batman-adv protocol version, part of the general header
319+ * @ttl: time to live for this packet, part of the general header
320320 * @msg_type: ICMP packet type
321321 * @dst: address of the destination node
322322 * @orig: address of the source node
@@ -358,8 +358,8 @@ enum batadv_icmp_tp_subtype { · 35 unmodified lines
358358 /**
359359 * struct batadv_icmp_packet_rr - ICMP RouteRecord packet
360360 * @packet_type: batman-adv packet type, part of the general header
361− * @version: batman-adv protocol version, part of the genereal header
362− * @ttl: time to live for this packet, part of the genereal header
361+ * @version: batman-adv protocol version, part of the general header
362+ * @ttl: time to live for this packet, part of the general header
363363 * @msg_type: ICMP packet type
364364 * @dst: address of the destination node
365365 * @orig: address of the source node
@@ -397,8 +397,8 @@ struct batadv_icmp_packet_rr { · 31 unmodified lines
397397 /**
398398 * struct batadv_unicast_packet - unicast packet for network payload
399399 * @packet_type: batman-adv packet type, part of the general header
400− * @version: batman-adv protocol version, part of the genereal header
401− * @ttl: time to live for this packet, part of the genereal header
400+ * @version: batman-adv protocol version, part of the general header
401+ * @ttl: time to live for this packet, part of the general header
402402 * @ttvn: translation table version number
403403 * @dest: originator destination of the unicast packet
404404 */
@@ -433,8 +433,8 @@ struct batadv_unicast_4addr_packet { · 28 unmodified lines
433433 /**
434434 * struct batadv_frag_packet - fragmented packet
435435 * @packet_type: batman-adv packet type, part of the general header
436− * @version: batman-adv protocol version, part of the genereal header
437− * @ttl: time to live for this packet, part of the genereal header
436+ * @version: batman-adv protocol version, part of the general header
437+ * @ttl: time to live for this packet, part of the general header
438438 * @dest: final destination used when routing fragments
439439 * @orig: originator of the fragment used when merging the packet
440440 * @no: fragment number within this sequence
@@ -467,8 +467,8 @@ struct batadv_frag_packet { · 26 unmodified lines
467467 /**
468468 * struct batadv_bcast_packet - broadcast packet for network payload
469469 * @packet_type: batman-adv packet type, part of the general header
470− * @version: batman-adv protocol version, part of the genereal header
471− * @ttl: time to live for this packet, part of the genereal header
470+ * @version: batman-adv protocol version, part of the general header
471+ * @ttl: time to live for this packet, part of the general header
472472 * @reserved: reserved byte for alignment
473473 * @seqno: sequence identification
474474 * @orig: originator of the broadcast packet
@@ -488,10 +488,10 @@ struct batadv_bcast_packet { · 13 unmodified lines
488488 /**
489489 * struct batadv_coded_packet - network coded packet
490490 * @packet_type: batman-adv packet type, part of the general header
491− * @version: batman-adv protocol version, part of the genereal header
492− * @ttl: time to live for this packet, part of the genereal header
491+ * @version: batman-adv protocol version, part of the general header
492+ * @ttl: time to live for this packet, part of the general header
493493 * @first_source: original source of first included packet
494− * @first_orig_dest: original destinal of first included packet
494+ * @first_orig_dest: original destination of first included packet
495495 * @first_crc: checksum of first included packet
496496 * @first_ttvn: tt-version number of first included packet
497497 * @second_ttl: ttl of second packet
@@ -523,8 +523,8 @@ struct batadv_coded_packet { · 25 unmodified lines
523523 /**
524524 * struct batadv_unicast_tvlv_packet - generic unicast packet with tvlv payload
525525 * @packet_type: batman-adv packet type, part of the general header
526− * @version: batman-adv protocol version, part of the genereal header
527− * @ttl: time to live for this packet, part of the genereal header
526+ * @version: batman-adv protocol version, part of the general header
527+ * @ttl: time to live for this packet, part of the general header
528528 * @reserved: reserved field (for packet alignment)
529529 * @src: address of the source
530530 * @dst: address of the destination
include/uapi/linux/batman_adv.h+4−3
@@ -69,7 +69,7 @@ enum batadv_tt_client_flags { · 68 unmodified lines
6969
7070 /**
7171 * @BATADV_TT_CLIENT_TEMP: this global client has been detected to be
72− * part of the network but no nnode has already announced it
72+ * part of the network but no node has already announced it
7373 */
7474 BATADV_TT_CLIENT_TEMP = (1 << 11),
7575 };
@@ -131,7 +131,7 @@ enum batadv_gw_modes { · 55 unmodified lines
131131 /** @BATADV_GW_MODE_CLIENT: send DHCP requests to gw servers */
132132 BATADV_GW_MODE_CLIENT,
133133
134− /** @BATADV_GW_MODE_SERVER: announce itself as gatway server */
134+ /** @BATADV_GW_MODE_SERVER: announce itself as gateway server */
135135 BATADV_GW_MODE_SERVER,
136136 };
137137
@@ -427,7 +427,8 @@ enum batadv_nl_attrs { · 289 unmodified lines
427427
428428 /**
429429 * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied
430− * to an originator message's tq-field on every hop.
430+ * to an originator message's tq-field on every hop and/or per
431+ * hard interface
431432 */
432433 BATADV_ATTR_HOP_PENALTY,
433434
include/uapi/linux/bpf.h+289−104
@@ -117,6 +117,7 @@ enum bpf_cmd { · 116 unmodified lines
117117 BPF_LINK_GET_NEXT_ID,
118118 BPF_ENABLE_STATS,
119119 BPF_ITER_CREATE,
120+ BPF_LINK_DETACH,
120121 };
121122
122123 enum bpf_map_type {
@@ -189,6 +190,7 @@ enum bpf_prog_type { · 66 unmodified lines
189190 BPF_PROG_TYPE_STRUCT_OPS,
190191 BPF_PROG_TYPE_EXT,
191192 BPF_PROG_TYPE_LSM,
193+ BPF_PROG_TYPE_SK_LOOKUP,
192194 };
193195
194196 enum bpf_attach_type {
@@ -226,6 +228,10 @@ enum bpf_attach_type { · 31 unmodified lines
226228 BPF_CGROUP_INET4_GETSOCKNAME,
227229 BPF_CGROUP_INET6_GETSOCKNAME,
228230 BPF_XDP_DEVMAP,
231+ BPF_CGROUP_INET_SOCK_RELEASE,
232+ BPF_XDP_CPUMAP,
233+ BPF_SK_LOOKUP,
234+ BPF_XDP,
229235 __MAX_BPF_ATTACH_TYPE
230236 };
231237
@@ -238,10 +244,18 @@ enum bpf_link_type { · 6 unmodified lines
238244 BPF_LINK_TYPE_CGROUP = 3,
239245 BPF_LINK_TYPE_ITER = 4,
240246 BPF_LINK_TYPE_NETNS = 5,
247+ BPF_LINK_TYPE_XDP = 6,
241248
242249 MAX_BPF_LINK_TYPE,
243250 };
244251
252+enum bpf_iter_link_info {
253+ BPF_ITER_LINK_UNSPEC = 0,
254+ BPF_ITER_LINK_MAP_FD = 1,
255+
256+ MAX_BPF_ITER_LINK_INFO,
257+};
258+
245259 /* cgroup-bpf attach flags used in BPF_PROG_ATTACH command
246260 *
247261 * NONE(default): No further bpf programs allowed in the subtree.
@@ -603,7 +617,10 @@ union bpf_attr { · 355 unmodified lines
603617
604618 struct { /* struct used by BPF_LINK_CREATE command */
605619 __u32 prog_fd; /* eBPF program to attach */
606− __u32 target_fd; /* object to attach to */
620+ union {
621+ __u32 target_fd; /* object to attach to */
622+ __u32 target_ifindex; /* target ifindex */
623+ };
607624 __u32 attach_type; /* attach type */
608625 __u32 flags; /* extra flags */
609626 } link_create;
@@ -618,6 +635,10 @@ union bpf_attr { · 8 unmodified lines
618635 __u32 old_prog_fd;
619636 } link_update;
620637
638+ struct {
639+ __u32 link_fd;
640+ } link_detach;
641+
621642 struct { /* struct used by BPF_ENABLE_STATS command */
622643 __u32 type;
623644 } enable_stats;
@@ -653,7 +674,7 @@ union bpf_attr { · 29 unmodified lines
653674 * Map value associated to *key*, or **NULL** if no entry was
654675 * found.
655676 *
656− * int bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
677+ * long bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
657678 * Description
658679 * Add or update the value of the entry associated to *key* in
659680 * *map* with *value*. *flags* is one of:
@@ -671,13 +692,13 @@ union bpf_attr { · 11 unmodified lines
671692 * Return
672693 * 0 on success, or a negative error in case of failure.
673694 *
674− * int bpf_map_delete_elem(struct bpf_map *map, const void *key)
695+ * long bpf_map_delete_elem(struct bpf_map *map, const void *key)
675696 * Description
676697 * Delete entry with *key* from *map*.
677698 * Return
678699 * 0 on success, or a negative error in case of failure.
679700 *
680− * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
701+ * long bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
681702 * Description
682703 * For tracing programs, safely attempt to read *size* bytes from
683704 * kernel space address *unsafe_ptr* and store the data in *dst*.
@@ -695,7 +716,7 @@ union bpf_attr { · 11 unmodified lines
695716 * Return
696717 * Current *ktime*.
697718 *
698− * int bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
719+ * long bpf_trace_printk(const char *fmt, u32 fmt_size, ...)
699720 * Description
700721 * This helper is a "printk()-like" facility for debugging. It
701722 * prints a message defined by format *fmt* (of size *fmt_size*)
@@ -775,7 +796,7 @@ union bpf_attr { · 73 unmodified lines
775796 * Return
776797 * The SMP id of the processor running the program.
777798 *
778− * int bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
799+ * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
779800 * Description
780801 * Store *len* bytes from address *from* into the packet
781802 * associated to *skb*, at *offset*. *flags* are a combination of
@@ -792,7 +813,7 @@ union bpf_attr { · 10 unmodified lines
792813 * Return
793814 * 0 on success, or a negative error in case of failure.
794815 *
795− * int bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size)
816+ * long bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size)
796817 * Description
797818 * Recompute the layer 3 (e.g. IP) checksum for the packet
798819 * associated to *skb*. Computation is incremental, so the helper
@@ -817,7 +838,7 @@ union bpf_attr { · 18 unmodified lines
817838 * Return
818839 * 0 on success, or a negative error in case of failure.
819840 *
820− * int bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags)
841+ * long bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags)
821842 * Description
822843 * Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the
823844 * packet associated to *skb*. Computation is incremental, so the
@@ -849,7 +870,7 @@ union bpf_attr { · 25 unmodified lines
849870 * Return
850871 * 0 on success, or a negative error in case of failure.
851872 *
852− * int bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index)
873+ * long bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index)
853874 * Description
854875 * This special helper is used to trigger a "tail call", or in
855876 * other words, to jump into another eBPF program. The same stack
@@ -880,7 +901,7 @@ union bpf_attr { · 24 unmodified lines
880901 * Return
881902 * 0 on success, or a negative error in case of failure.
882903 *
883− * int bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags)
904+ * long bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags)
884905 * Description
885906 * Clone and redirect the packet associated to *skb* to another
886907 * net device of index *ifindex*. Both ingress and egress
@@ -916,7 +937,7 @@ union bpf_attr { · 29 unmodified lines
916937 * A 64-bit integer containing the current GID and UID, and
917938 * created as such: *current_gid* **<< 32 \|** *current_uid*.
918939 *
919− * int bpf_get_current_comm(void *buf, u32 size_of_buf)
940+ * long bpf_get_current_comm(void *buf, u32 size_of_buf)
920941 * Description
921942 * Copy the **comm** attribute of the current task into *buf* of
922943 * *size_of_buf*. The **comm** attribute contains the name of
@@ -953,7 +974,7 @@ union bpf_attr { · 30 unmodified lines
953974 * Return
954975 * The classid, or 0 for the default unconfigured classid.
955976 *
956− * int bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
977+ * long bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci)
957978 * Description
958979 * Push a *vlan_tci* (VLAN tag control information) of protocol
959980 * *vlan_proto* to the packet associated to *skb*, then update
@@ -969,7 +990,7 @@ union bpf_attr { · 9 unmodified lines
969990 * Return
970991 * 0 on success, or a negative error in case of failure.
971992 *
972− * int bpf_skb_vlan_pop(struct sk_buff *skb)
993+ * long bpf_skb_vlan_pop(struct sk_buff *skb)
973994 * Description
974995 * Pop a VLAN header from the packet associated to *skb*.
975996 *
@@ -981,7 +1002,7 @@ union bpf_attr { · 5 unmodified lines
9811002 * Return
9821003 * 0 on success, or a negative error in case of failure.
9831004 *
984− * int bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
1005+ * long bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
9851006 * Description
9861007 * Get tunnel metadata. This helper takes a pointer *key* to an
9871008 * empty **struct bpf_tunnel_key** of **size**, that will be
@@ -1032,7 +1053,7 @@ union bpf_attr { · 44 unmodified lines
10321053 * Return
10331054 * 0 on success, or a negative error in case of failure.
10341055 *
1035− * int bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
1056+ * long bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags)
10361057 * Description
10371058 * Populate tunnel metadata for packet associated to *skb.* The
10381059 * tunnel metadata is set to the contents of *key*, of *size*. The
@@ -1098,7 +1119,7 @@ union bpf_attr { · 59 unmodified lines
10981119 * The value of the perf event counter read from the map, or a
10991120 * negative error code in case of failure.
11001121 *
1101− * int bpf_redirect(u32 ifindex, u64 flags)
1122+ * long bpf_redirect(u32 ifindex, u64 flags)
11021123 * Description
11031124 * Redirect the packet to another net device of index *ifindex*.
11041125 * This helper is somewhat similar to **bpf_clone_redirect**\
@@ -1145,7 +1166,7 @@ union bpf_attr { · 40 unmodified lines
11451166 * The realm of the route for the packet associated to *skb*, or 0
11461167 * if none was found.
11471168 *
1148− * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
1169+ * long bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
11491170 * Description
11501171 * Write raw *data* blob into a special BPF perf event held by
11511172 * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -1190,7 +1211,7 @@ union bpf_attr { · 38 unmodified lines
11901211 * Return
11911212 * 0 on success, or a negative error in case of failure.
11921213 *
1193− * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
1214+ * long bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
11941215 * Description
11951216 * This helper was provided as an easy way to load data from a
11961217 * packet. It can be used to load *len* bytes from *offset* from
@@ -1207,7 +1228,7 @@ union bpf_attr { · 10 unmodified lines
12071228 * Return
12081229 * 0 on success, or a negative error in case of failure.
12091230 *
1210− * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
1231+ * long bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
12111232 * Description
12121233 * Walk a user or a kernel stack and return its id. To achieve
12131234 * this, the helper needs *ctx*, which is a pointer to the context
@@ -1276,7 +1297,7 @@ union bpf_attr { · 62 unmodified lines
12761297 * The checksum result, or a negative error code in case of
12771298 * failure.
12781299 *
1279− * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
1300+ * long bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
12801301 * Description
12811302 * Retrieve tunnel options metadata for the packet associated to
12821303 * *skb*, and store the raw tunnel option data to the buffer *opt*
@@ -1294,7 +1315,7 @@ union bpf_attr { · 11 unmodified lines
12941315 * Return
12951316 * The size of the option data retrieved.
12961317 *
1297− * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
1318+ * long bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
12981319 * Description
12991320 * Set tunnel options metadata for the packet associated to *skb*
13001321 * to the option data contained in the raw buffer *opt* of *size*.
@@ -1304,7 +1325,7 @@ union bpf_attr { · 3 unmodified lines
13041325 * Return
13051326 * 0 on success, or a negative error in case of failure.
13061327 *
1307− * int bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags)
1328+ * long bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags)
13081329 * Description
13091330 * Change the protocol of the *skb* to *proto*. Currently
13101331 * supported are transition from IPv4 to IPv6, and from IPv6 to
@@ -1331,7 +1352,7 @@ union bpf_attr { · 20 unmodified lines
13311352 * Return
13321353 * 0 on success, or a negative error in case of failure.
13331354 *
1334− * int bpf_skb_change_type(struct sk_buff *skb, u32 type)
1355+ * long bpf_skb_change_type(struct sk_buff *skb, u32 type)
13351356 * Description
13361357 * Change the packet type for the packet associated to *skb*. This
13371358 * comes down to setting *skb*\ **->pkt_type** to *type*, except
@@ -1358,7 +1379,7 @@ union bpf_attr { · 20 unmodified lines
13581379 * Return
13591380 * 0 on success, or a negative error in case of failure.
13601381 *
1361− * int bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index)
1382+ * long bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index)
13621383 * Description
13631384 * Check whether *skb* is a descendant of the cgroup2 held by
13641385 * *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*.
@@ -1389,7 +1410,7 @@ union bpf_attr { · 24 unmodified lines
13891410 * Return
13901411 * A pointer to the current task struct.
13911412 *
1392− * int bpf_probe_write_user(void *dst, const void *src, u32 len)
1413+ * long bpf_probe_write_user(void *dst, const void *src, u32 len)
13931414 * Description
13941415 * Attempt in a safe way to write *len* bytes from the buffer
13951416 * *src* to *dst* in memory. It only works for threads that are in
@@ -1408,7 +1429,7 @@ union bpf_attr { · 12 unmodified lines
14081429 * Return
14091430 * 0 on success, or a negative error in case of failure.
14101431 *
1411− * int bpf_current_task_under_cgroup(struct bpf_map *map, u32 index)
1432+ * long bpf_current_task_under_cgroup(struct bpf_map *map, u32 index)
14121433 * Description
14131434 * Check whether the probe is being run is the context of a given
14141435 * subset of the cgroup2 hierarchy. The cgroup2 to test is held by
@@ -1420,7 +1441,7 @@ union bpf_attr { · 5 unmodified lines
14201441 * * 1, if the *skb* task does not belong to the cgroup2.
14211442 * * A negative error code, if an error occurred.
14221443 *
1423− * int bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
1444+ * long bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
14241445 * Description
14251446 * Resize (trim or grow) the packet associated to *skb* to the
14261447 * new *len*. The *flags* are reserved for future usage, and must
@@ -1444,7 +1465,7 @@ union bpf_attr { · 17 unmodified lines
14441465 * Return
14451466 * 0 on success, or a negative error in case of failure.
14461467 *
1447− * int bpf_skb_pull_data(struct sk_buff *skb, u32 len)
1468+ * long bpf_skb_pull_data(struct sk_buff *skb, u32 len)
14481469 * Description
14491470 * Pull in non-linear data in case the *skb* is non-linear and not
14501471 * all of *len* are part of the linear section. Make *len* bytes
@@ -1500,7 +1521,7 @@ union bpf_attr { · 49 unmodified lines
15001521 * recalculation the next time the kernel tries to access this
15011522 * hash or when the **bpf_get_hash_recalc**\ () helper is called.
15021523 *
1503− * int bpf_get_numa_node_id(void)
1524+ * long bpf_get_numa_node_id(void)
15041525 * Description
15051526 * Return the id of the current NUMA node. The primary use case
15061527 * for this helper is the selection of sockets for the local NUMA
@@ -1511,7 +1532,7 @@ union bpf_attr { · 4 unmodified lines
15111532 * Return
15121533 * The id of current NUMA node.
15131534 *
1514− * int bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags)
1535+ * long bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags)
15151536 * Description
15161537 * Grows headroom of packet associated to *skb* and adjusts the
15171538 * offset of the MAC header accordingly, adding *len* bytes of
@@ -1532,7 +1553,7 @@ union bpf_attr { · 14 unmodified lines
15321553 * Return
15331554 * 0 on success, or a negative error in case of failure.
15341555 *
1535− * int bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta)
1556+ * long bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta)
15361557 * Description
15371558 * Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that
15381559 * it is possible to use a negative value for *delta*. This helper
@@ -1547,7 +1568,7 @@ union bpf_attr { · 8 unmodified lines
15471568 * Return
15481569 * 0 on success, or a negative error in case of failure.
15491570 *
1550− * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
1571+ * long bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
15511572 * Description
15521573 * Copy a NUL terminated string from an unsafe kernel address
15531574 * *unsafe_ptr* to *dst*. See **bpf_probe_read_kernel_str**\ () for
@@ -1595,14 +1616,14 @@ union bpf_attr { · 41 unmodified lines
15951616 * is returned (note that **overflowuid** might also be the actual
15961617 * UID value for the socket).
15971618 *
1598− * u32 bpf_set_hash(struct sk_buff *skb, u32 hash)
1619+ * long bpf_set_hash(struct sk_buff *skb, u32 hash)
15991620 * Description
16001621 * Set the full hash for *skb* (set the field *skb*\ **->hash**)
16011622 * to value *hash*.
16021623 * Return
16031624 * 0
16041625 *
1605− * int bpf_setsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
1626+ * long bpf_setsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
16061627 * Description
16071628 * Emulate a call to **setsockopt()** on the socket associated to
16081629 * *bpf_socket*, which must be a full socket. The *level* at
@@ -1621,16 +1642,19 @@ union bpf_attr { · 12 unmodified lines
16211642 *
16221643 * * **SOL_SOCKET**, which supports the following *optname*\ s:
16231644 * **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**,
1624− * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**.
1645+ * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**,
1646+ * **SO_BINDTODEVICE**, **SO_KEEPALIVE**.
16251647 * * **IPPROTO_TCP**, which supports the following *optname*\ s:
16261648 * **TCP_CONGESTION**, **TCP_BPF_IW**,
1627− * **TCP_BPF_SNDCWND_CLAMP**.
1649+ * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**,
1650+ * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**,
1651+ * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**.
16281652 * * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
16291653 * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
16301654 * Return
16311655 * 0 on success, or a negative error in case of failure.
16321656 *
1633− * int bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
1657+ * long bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
16341658 * Description
16351659 * Grow or shrink the room for data in the packet associated to
16361660 * *skb* by *len_diff*, and according to the selected *mode*.
@@ -1676,7 +1700,7 @@ union bpf_attr { · 39 unmodified lines
16761700 * Return
16771701 * 0 on success, or a negative error in case of failure.
16781702 *
1679− * int bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
1703+ * long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
16801704 * Description
16811705 * Redirect the packet to the endpoint referenced by *map* at
16821706 * index *key*. Depending on its type, this *map* can contain
@@ -1697,7 +1721,7 @@ union bpf_attr { · 14 unmodified lines
16971721 * **XDP_REDIRECT** on success, or the value of the two lower bits
16981722 * of the *flags* argument on error.
16991723 *
1700− * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
1724+ * long bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
17011725 * Description
17021726 * Redirect the packet to the socket referenced by *map* (of type
17031727 * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@@ -1708,7 +1732,7 @@ union bpf_attr { · 4 unmodified lines
17081732 * Return
17091733 * **SK_PASS** on success, or **SK_DROP** on error.
17101734 *
1711− * int bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
1735+ * long bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
17121736 * Description
17131737 * Add an entry to, or update a *map* referencing sockets. The
17141738 * *skops* is used as a new value for the entry associated to
@@ -1727,7 +1751,7 @@ union bpf_attr { · 12 unmodified lines
17271751 * Return
17281752 * 0 on success, or a negative error in case of failure.
17291753 *
1730− * int bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta)
1754+ * long bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta)
17311755 * Description
17321756 * Adjust the address pointed by *xdp_md*\ **->data_meta** by
17331757 * *delta* (which can be positive or negative). Note that this
@@ -1756,7 +1780,7 @@ union bpf_attr { · 22 unmodified lines
17561780 * Return
17571781 * 0 on success, or a negative error in case of failure.
17581782 *
1759− * int bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size)
1783+ * long bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size)
17601784 * Description
17611785 * Read the value of a perf event counter, and store it into *buf*
17621786 * of size *buf_size*. This helper relies on a *map* of type
@@ -1806,7 +1830,7 @@ union bpf_attr { · 43 unmodified lines
18061830 * Return
18071831 * 0 on success, or a negative error in case of failure.
18081832 *
1809− * int bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size)
1833+ * long bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size)
18101834 * Description
18111835 * For en eBPF program attached to a perf event, retrieve the
18121836 * value of the event counter associated to *ctx* and store it in
@@ -1817,7 +1841,7 @@ union bpf_attr { · 4 unmodified lines
18171841 * Return
18181842 * 0 on success, or a negative error in case of failure.
18191843 *
1820− * int bpf_getsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
1844+ * long bpf_getsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen)
18211845 * Description
18221846 * Emulate a call to **getsockopt()** on the socket associated to
18231847 * *bpf_socket*, which must be a full socket. The *level* at
@@ -1842,7 +1866,7 @@ union bpf_attr { · 18 unmodified lines
18421866 * Return
18431867 * 0 on success, or a negative error in case of failure.
18441868 *
1845− * int bpf_override_return(struct pt_regs *regs, u64 rc)
1869+ * long bpf_override_return(struct pt_regs *regs, u64 rc)
18461870 * Description
18471871 * Used for error injection, this helper uses kprobes to override
18481872 * the return value of the probed function, and to set it to *rc*.
@@ -1867,7 +1891,7 @@ union bpf_attr { · 18 unmodified lines
18671891 * Return
18681892 * 0
18691893 *
1870− * int bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval)
1894+ * long bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval)
18711895 * Description
18721896 * Attempt to set the value of the **bpf_sock_ops_cb_flags** field
18731897 * for the full TCP socket associated to *bpf_sock_ops* to
@@ -1911,7 +1935,7 @@ union bpf_attr { · 37 unmodified lines
19111935 * be set is returned (which comes down to 0 if all bits were set
19121936 * as required).
19131937 *
1914− * int bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags)
1938+ * long bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags)
19151939 * Description
19161940 * This helper is used in programs implementing policies at the
19171941 * socket level. If the message *msg* is allowed to pass (i.e. if
@@ -1925,7 +1949,7 @@ union bpf_attr { · 7 unmodified lines
19251949 * Return
19261950 * **SK_PASS** on success, or **SK_DROP** on error.
19271951 *
1928− * int bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes)
1952+ * long bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes)
19291953 * Description
19301954 * For socket policies, apply the verdict of the eBPF program to
19311955 * the next *bytes* (number of bytes) of message *msg*.
@@ -1959,7 +1983,7 @@ union bpf_attr { · 27 unmodified lines
19591983 * Return
19601984 * 0
19611985 *
1962− * int bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes)
1986+ * long bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes)
19631987 * Description
19641988 * For socket policies, prevent the execution of the verdict eBPF
19651989 * program for message *msg* until *bytes* (byte number) have been
@@ -1977,7 +2001,7 @@ union bpf_attr { · 11 unmodified lines
19772001 * Return
19782002 * 0
19792003 *
1980− * int bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags)
2004+ * long bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags)
19812005 * Description
19822006 * For socket policies, pull in non-linear data from user space
19832007 * for *msg* and set pointers *msg*\ **->data** and *msg*\
@@ -2008,7 +2032,7 @@ union bpf_attr { · 24 unmodified lines
20082032 * Return
20092033 * 0 on success, or a negative error in case of failure.
20102034 *
2011− * int bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len)
2035+ * long bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len)
20122036 * Description
20132037 * Bind the socket associated to *ctx* to the address pointed by
20142038 * *addr*, of length *addr_len*. This allows for making outgoing
@@ -2026,7 +2050,7 @@ union bpf_attr { · 11 unmodified lines
20262050 * Return
20272051 * 0 on success, or a negative error in case of failure.
20282052 *
2029− * int bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta)
2053+ * long bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta)
20302054 * Description
20312055 * Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is
20322056 * possible to both shrink and grow the packet tail.
@@ -2040,7 +2064,7 @@ union bpf_attr { · 7 unmodified lines
20402064 * Return
20412065 * 0 on success, or a negative error in case of failure.
20422066 *
2043− * int bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags)
2067+ * long bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags)
20442068 * Description
20452069 * Retrieve the XFRM state (IP transform framework, see also
20462070 * **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*.
@@ -2056,7 +2080,7 @@ union bpf_attr { · 9 unmodified lines
20562080 * Return
20572081 * 0 on success, or a negative error in case of failure.
20582082 *
2059− * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
2083+ * long bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
20602084 * Description
20612085 * Return a user or a kernel stack in bpf program provided buffer.
20622086 * To achieve this, the helper needs *ctx*, which is a pointer
@@ -2089,7 +2113,7 @@ union bpf_attr { · 26 unmodified lines
20892113 * A non-negative value equal to or less than *size* on success,
20902114 * or a negative error in case of failure.
20912115 *
2092− * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
2116+ * long bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
20932117 * Description
20942118 * This helper is similar to **bpf_skb_load_bytes**\ () in that
20952119 * it provides an easy way to load *len* bytes from *offset*
@@ -2111,7 +2135,7 @@ union bpf_attr { · 15 unmodified lines
21112135 * Return
21122136 * 0 on success, or a negative error in case of failure.
21132137 *
2114− * int bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags)
2138+ * long bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags)
21152139 * Description
21162140 * Do FIB lookup in kernel tables using parameters in *params*.
21172141 * If lookup is successful and result shows packet is to be
@@ -2142,7 +2166,7 @@ union bpf_attr { · 24 unmodified lines
21422166 * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
21432167 * packet is not forwarded or needs assist from full stack
21442168 *
2145− * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
2169+ * long bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
21462170 * Description
21472171 * Add an entry to, or update a sockhash *map* referencing sockets.
21482172 * The *skops* is used as a new value for the entry associated to
@@ -2161,7 +2185,7 @@ union bpf_attr { · 12 unmodified lines
21612185 * Return
21622186 * 0 on success, or a negative error in case of failure.
21632187 *
2164− * int bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags)
2188+ * long bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags)
21652189 * Description
21662190 * This helper is used in programs implementing policies at the
21672191 * socket level. If the message *msg* is allowed to pass (i.e. if
@@ -2175,7 +2199,7 @@ union bpf_attr { · 7 unmodified lines
21752199 * Return
21762200 * **SK_PASS** on success, or **SK_DROP** on error.
21772201 *
2178− * int bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags)
2202+ * long bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags)
21792203 * Description
21802204 * This helper is used in programs implementing policies at the
21812205 * skb socket level. If the sk_buff *skb* is allowed to pass (i.e.
@@ -2189,7 +2213,7 @@ union bpf_attr { · 7 unmodified lines
21892213 * Return
21902214 * **SK_PASS** on success, or **SK_DROP** on error.
21912215 *
2192− * int bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len)
2216+ * long bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len)
21932217 * Description
21942218 * Encapsulate the packet associated to *skb* within a Layer 3
21952219 * protocol header. This header is provided in the buffer at
@@ -2226,7 +2250,7 @@ union bpf_attr { · 30 unmodified lines
22262250 * Return
22272251 * 0 on success, or a negative error in case of failure.
22282252 *
2229− * int bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len)
2253+ * long bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len)
22302254 * Description
22312255 * Store *len* bytes from address *from* into the packet
22322256 * associated to *skb*, at *offset*. Only the flags, tag and TLVs
@@ -2241,7 +2265,7 @@ union bpf_attr { · 8 unmodified lines
22412265 * Return
22422266 * 0 on success, or a negative error in case of failure.
22432267 *
2244− * int bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta)
2268+ * long bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta)
22452269 * Description
22462270 * Adjust the size allocated to TLVs in the outermost IPv6
22472271 * Segment Routing Header contained in the packet associated to
@@ -2257,7 +2281,7 @@ union bpf_attr { · 9 unmodified lines
22572281 * Return
22582282 * 0 on success, or a negative error in case of failure.
22592283 *
2260− * int bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len)
2284+ * long bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len)
22612285 * Description
22622286 * Apply an IPv6 Segment Routing action of type *action* to the
22632287 * packet associated to *skb*. Each action takes a parameter
@@ -2286,7 +2310,7 @@ union bpf_attr { · 22 unmodified lines
22862310 * Return
22872311 * 0 on success, or a negative error in case of failure.
22882312 *
2289− * int bpf_rc_repeat(void *ctx)
2313+ * long bpf_rc_repeat(void *ctx)
22902314 * Description
22912315 * This helper is used in programs implementing IR decoding, to
22922316 * report a successfully decoded repeat key message. This delays
@@ -2305,7 +2329,7 @@ union bpf_attr { · 12 unmodified lines
23052329 * Return
23062330 * 0
23072331 *
2308− * int bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle)
2332+ * long bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle)
23092333 * Description
23102334 * This helper is used in programs implementing IR decoding, to
23112335 * report a successfully decoded key press with *scancode*,
@@ -2370,7 +2394,7 @@ union bpf_attr { · 58 unmodified lines
23702394 * Return
23712395 * A pointer to the local storage area.
23722396 *
2373− * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
2397+ * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
23742398 * Description
23752399 * Select a **SO_REUSEPORT** socket from a
23762400 * **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
@@ -2415,7 +2439,7 @@ union bpf_attr { · 38 unmodified lines
24152439 * Look for an IPv6 socket.
24162440 *
24172441 * If the *netns* is a negative signed 32-bit integer, then the
2418− * socket lookup table in the netns associated with the *ctx* will
2442+ * socket lookup table in the netns associated with the *ctx*
24192443 * will be used. For the TC hooks, this is the netns of the device
24202444 * in the skb. For socket hooks, this is the netns of the socket.
24212445 * If *netns* is any other signed 32-bit value greater than or
@@ -2452,7 +2476,7 @@ union bpf_attr { · 30 unmodified lines
24522476 * Look for an IPv6 socket.
24532477 *
24542478 * If the *netns* is a negative signed 32-bit integer, then the
2455− * socket lookup table in the netns associated with the *ctx* will
2479+ * socket lookup table in the netns associated with the *ctx*
24562480 * will be used. For the TC hooks, this is the netns of the device
24572481 * in the skb. For socket hooks, this is the netns of the socket.
24582482 * If *netns* is any other signed 32-bit value greater than or
@@ -2471,7 +2495,7 @@ union bpf_attr { · 12 unmodified lines
24712495 * result is from *reuse*\ **->socks**\ [] using the hash of the
24722496 * tuple.
24732497 *
2474− * int bpf_sk_release(struct bpf_sock *sock)
2498+ * long bpf_sk_release(struct bpf_sock *sock)
24752499 * Description
24762500 * Release the reference held by *sock*. *sock* must be a
24772501 * non-**NULL** pointer that was returned from
@@ -2479,7 +2503,7 @@ union bpf_attr { · 1 unmodified line
24792503 * Return
24802504 * 0 on success, or a negative error in case of failure.
24812505 *
2482− * int bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
2506+ * long bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
24832507 * Description
24842508 * Push an element *value* in *map*. *flags* is one of:
24852509 *
@@ -2489,19 +2513,19 @@ union bpf_attr { · 3 unmodified lines
24892513 * Return
24902514 * 0 on success, or a negative error in case of failure.
24912515 *
2492− * int bpf_map_pop_elem(struct bpf_map *map, void *value)
2516+ * long bpf_map_pop_elem(struct bpf_map *map, void *value)
24932517 * Description
24942518 * Pop an element from *map*.
24952519 * Return
24962520 * 0 on success, or a negative error in case of failure.
24972521 *
2498− * int bpf_map_peek_elem(struct bpf_map *map, void *value)
2522+ * long bpf_map_peek_elem(struct bpf_map *map, void *value)
24992523 * Description
25002524 * Get an element from *map* without removing it.
25012525 * Return
25022526 * 0 on success, or a negative error in case of failure.
25032527 *
2504− * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
2528+ * long bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
25052529 * Description
25062530 * For socket policies, insert *len* bytes into *msg* at offset
25072531 * *start*.
@@ -2517,7 +2541,7 @@ union bpf_attr { · 9 unmodified lines
25172541 * Return
25182542 * 0 on success, or a negative error in case of failure.
25192543 *
2520− * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
2544+ * long bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
25212545 * Description
25222546 * Will remove *len* bytes from a *msg* starting at byte *start*.
25232547 * This may result in **ENOMEM** errors under certain situations if
@@ -2529,7 +2553,7 @@ union bpf_attr { · 5 unmodified lines
25292553 * Return
25302554 * 0 on success, or a negative error in case of failure.
25312555 *
2532− * int bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
2556+ * long bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
25332557 * Description
25342558 * This helper is used in programs implementing IR decoding, to
25352559 * report a successfully decoded pointer movement.
@@ -2543,7 +2567,7 @@ union bpf_attr { · 7 unmodified lines
25432567 * Return
25442568 * 0
25452569 *
2546− * int bpf_spin_lock(struct bpf_spin_lock *lock)
2570+ * long bpf_spin_lock(struct bpf_spin_lock *lock)
25472571 * Description
25482572 * Acquire a spinlock represented by the pointer *lock*, which is
25492573 * stored as part of a value of a map. Taking the lock allows to
@@ -2591,7 +2615,7 @@ union bpf_attr { · 41 unmodified lines
25912615 * Return
25922616 * 0
25932617 *
2594− * int bpf_spin_unlock(struct bpf_spin_lock *lock)
2618+ * long bpf_spin_unlock(struct bpf_spin_lock *lock)
25952619 * Description
25962620 * Release the *lock* previously locked by a call to
25972621 * **bpf_spin_lock**\ (\ *lock*\ ).
@@ -2614,7 +2638,7 @@ union bpf_attr { · 16 unmodified lines
26142638 * A **struct bpf_tcp_sock** pointer on success, or **NULL** in
26152639 * case of failure.
26162640 *
2617− * int bpf_skb_ecn_set_ce(struct sk_buff *skb)
2641+ * long bpf_skb_ecn_set_ce(struct sk_buff *skb)
26182642 * Description
26192643 * Set ECN (Explicit Congestion Notification) field of IP header
26202644 * to **CE** (Congestion Encountered) if current value is **ECT**
@@ -2651,7 +2675,7 @@ union bpf_attr { · 30 unmodified lines
26512675 * result is from *reuse*\ **->socks**\ [] using the hash of the
26522676 * tuple.
26532677 *
2654− * int bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
2678+ * long bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
26552679 * Description
26562680 * Check whether *iph* and *th* contain a valid SYN cookie ACK for
26572681 * the listening socket in *sk*.
@@ -2666,7 +2690,7 @@ union bpf_attr { · 8 unmodified lines
26662690 * 0 if *iph* and *th* are a valid SYN cookie ACK, or a negative
26672691 * error otherwise.
26682692 *
2669− * int bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
2693+ * long bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags)
26702694 * Description
26712695 * Get name of sysctl in /proc/sys/ and copy it into provided by
26722696 * program buffer *buf* of size *buf_len*.
@@ -2682,7 +2706,7 @@ union bpf_attr { · 9 unmodified lines
26822706 * **-E2BIG** if the buffer wasn't big enough (*buf* will contain
26832707 * truncated name in this case).
26842708 *
2685− * int bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
2709+ * long bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
26862710 * Description
26872711 * Get current value of sysctl as it is presented in /proc/sys
26882712 * (incl. newline, etc), and copy it as a string into provided
@@ -2701,7 +2725,7 @@ union bpf_attr { · 12 unmodified lines
27012725 * **-EINVAL** if current value was unavailable, e.g. because
27022726 * sysctl is uninitialized and read returns -EIO for it.
27032727 *
2704− * int bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
2728+ * long bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len)
27052729 * Description
27062730 * Get new value being written by user space to sysctl (before
27072731 * the actual write happens) and copy it as a string into
@@ -2718,7 +2742,7 @@ union bpf_attr { · 10 unmodified lines
27182742 *
27192743 * **-EINVAL** if sysctl is being read.
27202744 *
2721− * int bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
2745+ * long bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len)
27222746 * Description
27232747 * Override new value being written by user space to sysctl with
27242748 * value provided by program in buffer *buf* of size *buf_len*.
@@ -2735,7 +2759,7 @@ union bpf_attr { · 10 unmodified lines
27352759 *
27362760 * **-EINVAL** if sysctl is being read.
27372761 *
2738− * int bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
2762+ * long bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
27392763 * Description
27402764 * Convert the initial part of the string from buffer *buf* of
27412765 * size *buf_len* to a long integer according to the given base
@@ -2759,7 +2783,7 @@ union bpf_attr { · 17 unmodified lines
27592783 *
27602784 * **-ERANGE** if resulting value was out of range.
27612785 *
2762− * int bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
2786+ * long bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
27632787 * Description
27642788 * Convert the initial part of the string from buffer *buf* of
27652789 * size *buf_len* to an unsigned long integer according to the
@@ -2810,7 +2834,7 @@ union bpf_attr { · 44 unmodified lines
28102834 * **NULL** if not found or there was an error in adding
28112835 * a new bpf-local-storage.
28122836 *
2813− * int bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
2837+ * long bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk)
28142838 * Description
28152839 * Delete a bpf-local-storage from a *sk*.
28162840 * Return
@@ -2818,7 +2842,7 @@ union bpf_attr { · 1 unmodified line
28182842 *
28192843 * **-ENOENT** if the bpf-local-storage cannot be found.
28202844 *
2821− * int bpf_send_signal(u32 sig)
2845+ * long bpf_send_signal(u32 sig)
28222846 * Description
28232847 * Send signal *sig* to the process of the current task.
28242848 * The signal may be delivered to any of this process's threads.
@@ -2859,7 +2883,7 @@ union bpf_attr { · 34 unmodified lines
28592883 *
28602884 * **-EPROTONOSUPPORT** IP packet version is not 4 or 6
28612885 *
2862− * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
2886+ * long bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
28632887 * Description
28642888 * Write raw *data* blob into a special BPF perf event held by
28652889 * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -2883,21 +2907,21 @@ union bpf_attr { · 17 unmodified lines
28832907 * Return
28842908 * 0 on success, or a negative error in case of failure.
28852909 *
2886− * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
2910+ * long bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
28872911 * Description
28882912 * Safely attempt to read *size* bytes from user space address
28892913 * *unsafe_ptr* and store the data in *dst*.
28902914 * Return
28912915 * 0 on success, or a negative error in case of failure.
28922916 *
2893− * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
2917+ * long bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
28942918 * Description
28952919 * Safely attempt to read *size* bytes from kernel space address
28962920 * *unsafe_ptr* and store the data in *dst*.
28972921 * Return
28982922 * 0 on success, or a negative error in case of failure.
28992923 *
2900− * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
2924+ * long bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
29012925 * Description
29022926 * Copy a NUL terminated string from an unsafe user address
29032927 * *unsafe_ptr* to *dst*. The *size* should include the
@@ -2941,7 +2965,7 @@ union bpf_attr { · 37 unmodified lines
29412965 * including the trailing NUL character. On error, a negative
29422966 * value.
29432967 *
2944− * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
2968+ * long bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
29452969 * Description
29462970 * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
29472971 * to *dst*. Same semantics as with **bpf_probe_read_user_str**\ () apply.
@@ -2949,14 +2973,14 @@ union bpf_attr { · 1 unmodified line
29492973 * On success, the strictly positive length of the string, including
29502974 * the trailing NUL character. On error, a negative value.
29512975 *
2952− * int bpf_tcp_send_ack(void *tp, u32 rcv_nxt)
2976+ * long bpf_tcp_send_ack(void *tp, u32 rcv_nxt)
29532977 * Description
29542978 * Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**.
29552979 * *rcv_nxt* is the ack_seq to be sent out.
29562980 * Return
29572981 * 0 on success, or a negative error in case of failure.
29582982 *
2959− * int bpf_send_signal_thread(u32 sig)
2983+ * long bpf_send_signal_thread(u32 sig)
29602984 * Description
29612985 * Send signal *sig* to the thread corresponding to the current task.
29622986 * Return
@@ -2976,7 +3000,7 @@ union bpf_attr { · 13 unmodified lines
29763000 * Return
29773001 * The 64 bit jiffies
29783002 *
2979− * int bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags)
3003+ * long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags)
29803004 * Description
29813005 * For an eBPF program attached to a perf event, retrieve the
29823006 * branch records (**struct perf_branch_entry**) associated to *ctx*
@@ -2995,7 +3019,7 @@ union bpf_attr { · 12 unmodified lines
29953019 *
29963020 * **-ENOENT** if architecture does not support branch records.
29973021 *
2998− * int bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
3022+ * long bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
29993023 * Description
30003024 * Returns 0 on success, values for *pid* and *tgid* as seen from the current
30013025 * *namespace* will be returned in *nsdata*.
@@ -3007,7 +3031,7 @@ union bpf_attr { · 5 unmodified lines
30073031 *
30083032 * **-ENOENT** if pidns does not exists for the current task.
30093033 *
3010− * int bpf_xdp_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
3034+ * long bpf_xdp_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
30113035 * Description
30123036 * Write raw *data* blob into a special BPF perf event held by
30133037 * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -3062,8 +3086,12 @@ union bpf_attr { · 48 unmodified lines
30623086 * Return
30633087 * The id is returned or 0 in case the id could not be retrieved.
30643088 *
3065− * int bpf_sk_assign(struct sk_buff *skb, struct bpf_sock *sk, u64 flags)
3089+ * long bpf_sk_assign(struct sk_buff *skb, struct bpf_sock *sk, u64 flags)
30663090 * Description
3091+ * Helper is overloaded depending on BPF program type. This
3092+ * description applies to **BPF_PROG_TYPE_SCHED_CLS** and
3093+ * **BPF_PROG_TYPE_SCHED_ACT** programs.
3094+ *
30673095 * Assign the *sk* to the *skb*. When combined with appropriate
30683096 * routing configuration to receive the packet towards the socket,
30693097 * will cause *skb* to be delivered to the specified socket.
@@ -3089,6 +3117,56 @@ union bpf_attr { · 19 unmodified lines
30893117 * **-ESOCKTNOSUPPORT** if the socket type is not supported
30903118 * (reuseport).
30913119 *
3120+ * long bpf_sk_assign(struct bpf_sk_lookup *ctx, struct bpf_sock *sk, u64 flags)
3121+ * Description
3122+ * Helper is overloaded depending on BPF program type. This
3123+ * description applies to **BPF_PROG_TYPE_SK_LOOKUP** programs.
3124+ *
3125+ * Select the *sk* as a result of a socket lookup.
3126+ *
3127+ * For the operation to succeed passed socket must be compatible
3128+ * with the packet description provided by the *ctx* object.
3129+ *
3130+ * L4 protocol (**IPPROTO_TCP** or **IPPROTO_UDP**) must
3131+ * be an exact match. While IP family (**AF_INET** or
3132+ * **AF_INET6**) must be compatible, that is IPv6 sockets
3133+ * that are not v6-only can be selected for IPv4 packets.
3134+ *
3135+ * Only TCP listeners and UDP unconnected sockets can be
3136+ * selected. *sk* can also be NULL to reset any previous
3137+ * selection.
3138+ *
3139+ * *flags* argument can combination of following values:
3140+ *
3141+ * * **BPF_SK_LOOKUP_F_REPLACE** to override the previous
3142+ * socket selection, potentially done by a BPF program
3143+ * that ran before us.
3144+ *
3145+ * * **BPF_SK_LOOKUP_F_NO_REUSEPORT** to skip
3146+ * load-balancing within reuseport group for the socket
3147+ * being selected.
3148+ *
3149+ * On success *ctx->sk* will point to the selected socket.
3150+ *
3151+ * Return
3152+ * 0 on success, or a negative errno in case of failure.
3153+ *
3154+ * * **-EAFNOSUPPORT** if socket family (*sk->family*) is
3155+ * not compatible with packet family (*ctx->family*).
3156+ *
3157+ * * **-EEXIST** if socket has been already selected,
3158+ * potentially by another program, and
3159+ * **BPF_SK_LOOKUP_F_REPLACE** flag was not specified.
3160+ *
3161+ * * **-EINVAL** if unsupported flags were specified.
3162+ *
3163+ * * **-EPROTOTYPE** if socket L4 protocol
3164+ * (*sk->protocol*) doesn't match packet protocol
3165+ * (*ctx->protocol*).
3166+ *
3167+ * * **-ESOCKTNOSUPPORT** if socket is not in allowed
3168+ * state (TCP listening or UDP unconnected).
3169+ *
30923170 * u64 bpf_ktime_get_boot_ns(void)
30933171 * Description
30943172 * Return the time elapsed since system boot, in nanoseconds.
@@ -3097,7 +3175,7 @@ union bpf_attr { · 2 unmodified lines
30973175 * Return
30983176 * Current *ktime*.
30993177 *
3100− * int bpf_seq_printf(struct seq_file *m, const char *fmt, u32 fmt_size, const void *data, u32 data_len)
3178+ * long bpf_seq_printf(struct seq_file *m, const char *fmt, u32 fmt_size, const void *data, u32 data_len)
31013179 * Description
31023180 * **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print
31033181 * out the format string.
@@ -3126,7 +3204,7 @@ union bpf_attr { · 22 unmodified lines
31263204 *
31273205 * **-EOVERFLOW** if an overflow happened: The same object will be tried again.
31283206 *
3129− * int bpf_seq_write(struct seq_file *m, const void *data, u32 len)
3207+ * long bpf_seq_write(struct seq_file *m, const void *data, u32 len)
31303208 * Description
31313209 * **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data.
31323210 * The *m* represents the seq_file. The *data* and *len* represent the
@@ -3168,7 +3246,7 @@ union bpf_attr { · 35 unmodified lines
31683246 * Return
31693247 * The id is returned or 0 in case the id could not be retrieved.
31703248 *
3171− * int bpf_ringbuf_output(void *ringbuf, void *data, u64 size, u64 flags)
3249+ * long bpf_ringbuf_output(void *ringbuf, void *data, u64 size, u64 flags)
31723250 * Description
31733251 * Copy *size* bytes from *data* into a ring buffer *ringbuf*.
31743252 * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification
@@ -3222,7 +3300,7 @@ union bpf_attr { · 47 unmodified lines
32223300 * Return
32233301 * Requested value, or 0, if *flags* are not recognized.
32243302 *
3225− * int bpf_csum_level(struct sk_buff *skb, u64 level)
3303+ * long bpf_csum_level(struct sk_buff *skb, u64 level)
32263304 * Description
32273305 * Change the skbs checksum level by one layer up or down, or
32283306 * reset it entirely to none in order to have the stack perform
@@ -3253,6 +3331,69 @@ union bpf_attr { · 24 unmodified lines
32533331 * case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level
32543332 * is returned or the error code -EACCES in case the skb is not
32553333 * subject to CHECKSUM_UNNECESSARY.
3334+ *
3335+ * struct tcp6_sock *bpf_skc_to_tcp6_sock(void *sk)
3336+ * Description
3337+ * Dynamically cast a *sk* pointer to a *tcp6_sock* pointer.
3338+ * Return
3339+ * *sk* if casting is valid, or NULL otherwise.
3340+ *
3341+ * struct tcp_sock *bpf_skc_to_tcp_sock(void *sk)
3342+ * Description
3343+ * Dynamically cast a *sk* pointer to a *tcp_sock* pointer.
3344+ * Return
3345+ * *sk* if casting is valid, or NULL otherwise.
3346+ *
3347+ * struct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *sk)
3348+ * Description
3349+ * Dynamically cast a *sk* pointer to a *tcp_timewait_sock* pointer.
3350+ * Return
3351+ * *sk* if casting is valid, or NULL otherwise.
3352+ *
3353+ * struct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *sk)
3354+ * Description
3355+ * Dynamically cast a *sk* pointer to a *tcp_request_sock* pointer.
3356+ * Return
3357+ * *sk* if casting is valid, or NULL otherwise.
3358+ *
3359+ * struct udp6_sock *bpf_skc_to_udp6_sock(void *sk)
3360+ * Description
3361+ * Dynamically cast a *sk* pointer to a *udp6_sock* pointer.
3362+ * Return
3363+ * *sk* if casting is valid, or NULL otherwise.
3364+ *
3365+ * long bpf_get_task_stack(struct task_struct *task, void *buf, u32 size, u64 flags)
3366+ * Description
3367+ * Return a user or a kernel stack in bpf program provided buffer.
3368+ * To achieve this, the helper needs *task*, which is a valid
3369+ * pointer to struct task_struct. To store the stacktrace, the
3370+ * bpf program provides *buf* with a nonnegative *size*.
3371+ *
3372+ * The last argument, *flags*, holds the number of stack frames to
3373+ * skip (from 0 to 255), masked with
3374+ * **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set
3375+ * the following flags:
3376+ *
3377+ * **BPF_F_USER_STACK**
3378+ * Collect a user space stack instead of a kernel stack.
3379+ * **BPF_F_USER_BUILD_ID**
3380+ * Collect buildid+offset instead of ips for user stack,
3381+ * only valid if **BPF_F_USER_STACK** is also specified.
3382+ *
3383+ * **bpf_get_task_stack**\ () can collect up to
3384+ * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject
3385+ * to sufficient large buffer size. Note that
3386+ * this limit can be controlled with the **sysctl** program, and
3387+ * that it should be manually increased in order to profile long
3388+ * user stacks (such as stacks for Java programs). To do so, use:
3389+ *
3390+ * ::
3391+ *
3392+ * # sysctl kernel.perf_event_max_stack=<new value>
3393+ * Return
3394+ * A non-negative value equal to or less than *size* on success,
3395+ * or a negative error in case of failure.
3396+ *
32563397 */
32573398 #define __BPF_FUNC_MAPPER(FN) \
32583399 FN(unspec), \
@@ -3390,7 +3531,14 @@ union bpf_attr { · 131 unmodified lines
33903531 FN(ringbuf_submit), \
33913532 FN(ringbuf_discard), \
33923533 FN(ringbuf_query), \
3393− FN(csum_level),
3534+ FN(csum_level), \
3535+ FN(skc_to_tcp6_sock), \
3536+ FN(skc_to_tcp_sock), \
3537+ FN(skc_to_tcp_timewait_sock), \
3538+ FN(skc_to_tcp_request_sock), \
3539+ FN(skc_to_udp6_sock), \
3540+ FN(get_task_stack), \
3541+ /* */
33943542
33953543 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
33963544 * function eBPF program intends to call
@@ -3532,6 +3680,12 @@ enum { · 135 unmodified lines
35323680 BPF_RINGBUF_HDR_SZ = 8,
35333681 };
35343682
3683+/* BPF_FUNC_sk_assign flags in bpf_sk_lookup context. */
3684+enum {
3685+ BPF_SK_LOOKUP_F_REPLACE = (1ULL << 0),
3686+ BPF_SK_LOOKUP_F_NO_REUSEPORT = (1ULL << 1),
3687+};
3688+
35353689 /* Mode for BPF_FUNC_skb_adjust_room helper. */
35363690 enum bpf_adj_room_mode {
35373691 BPF_ADJ_ROOM_NET,
@@ -3775,6 +3929,19 @@ struct bpf_devmap_val { · 237 unmodified lines
37753929 } bpf_prog;
37763930 };
37773931
3932+/* CPUMAP map-value layout
3933+ *
3934+ * The struct data-layout of map-value is a configuration interface.
3935+ * New members can only be added to the end of this structure.
3936+ */
3937+struct bpf_cpumap_val {
3938+ __u32 qsize; /* queue size to remote target CPU */
3939+ union {
3940+ int fd; /* prog fd on map write */
3941+ __u32 id; /* prog id on map read */
3942+ } bpf_prog;
3943+};
3944+
37783945 enum sk_action {
37793946 SK_DROP = 0,
37803947 SK_PASS,
@@ -3907,12 +4074,15 @@ struct bpf_link_info { · 126 unmodified lines
39074074 __u32 netns_ino;
39084075 __u32 attach_type;
39094076 } netns;
4077+ struct {
4078+ __u32 ifindex;
4079+ } xdp;
39104080 };
39114081 } __attribute__((aligned(8)));
39124082
39134083 /* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
39144084 * by user and intended to be used by socket (e.g. to bind to, depends on
3915− * attach attach type).
4085+ * attach type).
39164086 */
39174087 struct bpf_sock_addr {
39184088 __u32 user_family; /* Allows 4-byte read, but no write. */
@@ -4261,4 +4431,19 @@ struct bpf_pidns_info { · 342 unmodified lines
42614431 __u32 pid;
42624432 __u32 tgid;
42634433 };
4434+
4435+/* User accessible data for SK_LOOKUP programs. Add new fields at the end. */
4436+struct bpf_sk_lookup {
4437+ __bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */
4438+
4439+ __u32 family; /* Protocol family (AF_INET, AF_INET6) */
4440+ __u32 protocol; /* IP protocol (IPPROTO_TCP, IPPROTO_UDP) */
4441+ __u32 remote_ip4; /* Network byte order */
4442+ __u32 remote_ip6[4]; /* Network byte order */
4443+ __u32 remote_port; /* Network byte order */
4444+ __u32 local_ip4; /* Network byte order */
4445+ __u32 local_ip6[4]; /* Network byte order */
4446+ __u32 local_port; /* Host byte order */
4447+};
4448+
42644449 #endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/caif/caif_socket.h+1−1
@@ -169,7 +169,7 @@ struct sockaddr_caif { · 168 unmodified lines
169169 * @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are
170170 * available. Either a high bandwidth
171171 * link can be selected (CAIF_LINK_HIGH_BANDW) or
172− * or a low latency link (CAIF_LINK_LOW_LATENCY).
172+ * a low latency link (CAIF_LINK_LOW_LATENCY).
173173 * This option is of type __u32.
174174 * Alternatively SO_BINDTODEVICE can be used.
175175 *
include/uapi/linux/devlink.h+15−0
@@ -451,6 +451,13 @@ enum devlink_attr { · 450 unmodified lines
451451 DEVLINK_ATTR_TRAP_POLICER_RATE, /* u64 */
452452 DEVLINK_ATTR_TRAP_POLICER_BURST, /* u64 */
453453
454+ DEVLINK_ATTR_PORT_FUNCTION, /* nested */
455+
456+ DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER, /* string */
457+
458+ DEVLINK_ATTR_PORT_LANES, /* u32 */
459+ DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */
460+
454461 /* add new attributes above here, update the policy in devlink.c */
455462
456463 __DEVLINK_ATTR_MAX,
@@ -497,4 +504,12 @@ enum devlink_resource_unit { · 40 unmodified lines
497504 DEVLINK_RESOURCE_UNIT_ENTRY,
498505 };
499506
507+enum devlink_port_function_attr {
508+ DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
509+ DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */
510+
511+ __DEVLINK_PORT_FUNCTION_ATTR_MAX,
512+ DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
513+};
514+
500515 #endif /* _UAPI_LINUX_DEVLINK_H_ */
include/uapi/linux/errqueue.h+13−1
@@ -5,6 +5,13 @@ · 4 unmodified lines
55 #include <linux/types.h>
66 #include <linux/time_types.h>
77
8+/* RFC 4884: return offset to extension struct + validation */
9+struct sock_ee_data_rfc4884 {
10+ __u16 len;
11+ __u8 flags;
12+ __u8 reserved;
13+};
14+
815 struct sock_extended_err {
916 __u32 ee_errno;
1017 __u8 ee_origin;
@@ -12,7 +19,10 @@ struct sock_extended_err { · 1 unmodified line
1219 __u8 ee_code;
1320 __u8 ee_pad;
1421 __u32 ee_info;
15− __u32 ee_data;
22+ union {
23+ __u32 ee_data;
24+ struct sock_ee_data_rfc4884 ee_rfc4884;
25+ };
1626 };
1727
1828 #define SO_EE_ORIGIN_NONE 0
@@ -31,6 +41,8 @@ struct sock_extended_err { · 12 unmodified lines
3141 #define SO_EE_CODE_TXTIME_INVALID_PARAM 1
3242 #define SO_EE_CODE_TXTIME_MISSED 2
3343
44+#define SO_EE_RFC4884_FLAG_INVALID 1
45+
3446 /**
3547 * struct scm_timestamping - timestamps exposed through cmsg
3648 *
include/uapi/linux/ethtool.h+87−0
@@ -579,6 +579,76 @@ struct ethtool_pauseparam { · 578 unmodified lines
579579 __u32 tx_pause;
580580 };
581581
582+/**
583+ * enum ethtool_link_ext_state - link extended state
584+ */
585+enum ethtool_link_ext_state {
586+ ETHTOOL_LINK_EXT_STATE_AUTONEG,
587+ ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
588+ ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH,
589+ ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY,
590+ ETHTOOL_LINK_EXT_STATE_NO_CABLE,
591+ ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE,
592+ ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE,
593+ ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
594+ ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
595+ ETHTOOL_LINK_EXT_STATE_OVERHEAT,
596+};
597+
598+/**
599+ * enum ethtool_link_ext_substate_autoneg - more information in addition to
600+ * ETHTOOL_LINK_EXT_STATE_AUTONEG.
601+ */
602+enum ethtool_link_ext_substate_autoneg {
603+ ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
604+ ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
605+ ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED,
606+ ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE,
607+ ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE,
608+ ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
609+};
610+
611+/**
612+ * enum ethtool_link_ext_substate_link_training - more information in addition to
613+ * ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
614+ */
615+enum ethtool_link_ext_substate_link_training {
616+ ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
617+ ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT,
618+ ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY,
619+ ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
620+};
621+
622+/**
623+ * enum ethtool_link_ext_substate_logical_mismatch - more information in addition
624+ * to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
625+ */
626+enum ethtool_link_ext_substate_link_logical_mismatch {
627+ ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
628+ ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK,
629+ ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS,
630+ ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED,
631+ ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
632+};
633+
634+/**
635+ * enum ethtool_link_ext_substate_bad_signal_integrity - more information in
636+ * addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
637+ */
638+enum ethtool_link_ext_substate_bad_signal_integrity {
639+ ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
640+ ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
641+};
642+
643+/**
644+ * enum ethtool_link_ext_substate_cable_issue - more information in
645+ * addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE.
646+ */
647+enum ethtool_link_ext_substate_cable_issue {
648+ ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
649+ ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
650+};
651+
582652 #define ETH_GSTRING_LEN 32
583653
584654 /**
@@ -599,6 +669,7 @@ struct ethtool_pauseparam { · 14 unmodified lines
599669 * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags
600670 * @ETH_SS_TS_TX_TYPES: timestamping Tx types
601671 * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
672+ * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
602673 */
603674 enum ethtool_stringset {
604675 ETH_SS_TEST = 0,
@@ -616,6 +687,7 @@ enum ethtool_stringset { · 11 unmodified lines
616687 ETH_SS_SOF_TIMESTAMPING,
617688 ETH_SS_TS_TX_TYPES,
618689 ETH_SS_TS_RX_FILTERS,
690+ ETH_SS_UDP_TUNNEL_TYPES,
619691
620692 /* add new constants above here */
621693 ETH_SS_COUNT
@@ -1530,6 +1602,21 @@ enum ethtool_link_mode_bit_indices { · 908 unmodified lines
15301602 ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
15311603 ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
15321604 ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
1605+ ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
1606+ ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
1607+ ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
1608+ ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
1609+ ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
1610+ ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
1611+ ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
1612+ ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
1613+ ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
1614+ ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
1615+ ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
1616+ ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
1617+ ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
1618+ ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
1619+ ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
15331620 /* must be last entry */
15341621 __ETHTOOL_LINK_MODE_MASK_NBITS
15351622 };
include/uapi/linux/ethtool_netlink.h+57−0
@@ -41,6 +41,7 @@ enum { · 40 unmodified lines
4141 ETHTOOL_MSG_TSINFO_GET,
4242 ETHTOOL_MSG_CABLE_TEST_ACT,
4343 ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
44+ ETHTOOL_MSG_TUNNEL_INFO_GET,
4445
4546 /* add new constants above here */
4647 __ETHTOOL_MSG_USER_CNT,
@@ -236,6 +237,8 @@ enum { · 189 unmodified lines
236237 ETHTOOL_A_LINKSTATE_LINK, /* u8 */
237238 ETHTOOL_A_LINKSTATE_SQI, /* u32 */
238239 ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */
240+ ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */
241+ ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */
239242
240243 /* add new constants above here */
241244 __ETHTOOL_A_LINKSTATE_CNT,
@@ -554,6 +557,60 @@ enum { · 312 unmodified lines
554557 ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1
555558 };
556559
560+/* TUNNEL INFO */
561+
562+enum {
563+ ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,
564+ ETHTOOL_UDP_TUNNEL_TYPE_GENEVE,
565+ ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE,
566+
567+ __ETHTOOL_UDP_TUNNEL_TYPE_CNT
568+};
569+
570+enum {
571+ ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC,
572+
573+ ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT, /* be16 */
574+ ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE, /* u32 */
575+
576+ /* add new constants above here */
577+ __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT,
578+ ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1)
579+};
580+
581+enum {
582+ ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC,
583+
584+ ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE, /* u32 */
585+ ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES, /* bitset */
586+ ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY, /* nest - _UDP_ENTRY_* */
587+
588+ /* add new constants above here */
589+ __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT,
590+ ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1)
591+};
592+
593+enum {
594+ ETHTOOL_A_TUNNEL_UDP_UNSPEC,
595+
596+ ETHTOOL_A_TUNNEL_UDP_TABLE, /* nest - _UDP_TABLE_* */
597+
598+ /* add new constants above here */
599+ __ETHTOOL_A_TUNNEL_UDP_CNT,
600+ ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1)
601+};
602+
603+enum {
604+ ETHTOOL_A_TUNNEL_INFO_UNSPEC,
605+ ETHTOOL_A_TUNNEL_INFO_HEADER, /* nest - _A_HEADER_* */
606+
607+ ETHTOOL_A_TUNNEL_INFO_UDP_PORTS, /* nest - _UDP_TABLE */
608+
609+ /* add new constants above here */
610+ __ETHTOOL_A_TUNNEL_INFO_CNT,
611+ ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
612+};
613+
557614 /* generic netlink info */
558615 #define ETHTOOL_GENL_NAME "ethtool"
559616 #define ETHTOOL_GENL_VERSION 1
include/uapi/linux/hsr_netlink.h+1−1
@@ -17,7 +17,7 @@ · 16 unmodified lines
1717 /* Generic Netlink HSR family definition
1818 */
1919
20−/* attributes */
20+/* attributes for HSR or PRP node */
2121 enum {
2222 HSR_A_UNSPEC,
2323 HSR_A_NODE_ADDR,
include/uapi/linux/icmp.h+22−0
@@ -19,6 +19,7 @@ · 18 unmodified lines
1919 #define _UAPI_LINUX_ICMP_H
2020
2121 #include <linux/types.h>
22+#include <asm/byteorder.h>
2223
2324 #define ICMP_ECHOREPLY 0 /* Echo Reply */
2425 #define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
@@ -95,5 +96,26 @@ struct icmp_filter { · 70 unmodified lines
9596 __u32 data;
9697 };
9798
99+/* RFC 4884 extension struct: one per message */
100+struct icmp_ext_hdr {
101+#if defined(__LITTLE_ENDIAN_BITFIELD)
102+ __u8 reserved1:4,
103+ version:4;
104+#elif defined(__BIG_ENDIAN_BITFIELD)
105+ __u8 version:4,
106+ reserved1:4;
107+#else
108+#error "Please fix <asm/byteorder.h>"
109+#endif
110+ __u8 reserved2;
111+ __sum16 checksum;
112+};
113+
114+/* RFC 4884 extension object header: one for each object */
115+struct icmp_extobj_hdr {
116+ __be16 length;
117+ __u8 class_num;
118+ __u8 class_type;
119+};
98120
99121 #endif /* _UAPI_LINUX_ICMP_H */
include/uapi/linux/icmpv6.h+1−0
@@ -68,6 +68,7 @@ struct icmp6hdr { · 67 unmodified lines
6868 #define icmp6_mtu icmp6_dataun.un_data32[0]
6969 #define icmp6_unused icmp6_dataun.un_data32[0]
7070 #define icmp6_maxdelay icmp6_dataun.un_data16[0]
71+#define icmp6_datagram_len icmp6_dataun.un_data8[0]
7172 #define icmp6_router icmp6_dataun.u_nd_advt.router
7273 #define icmp6_solicited icmp6_dataun.u_nd_advt.solicited
7374 #define icmp6_override icmp6_dataun.u_nd_advt.override
include/uapi/linux/if_bridge.h+75−0
@@ -166,6 +166,10 @@ enum { · 165 unmodified lines
166166 IFLA_BRIDGE_MRP_RING_STATE,
167167 IFLA_BRIDGE_MRP_RING_ROLE,
168168 IFLA_BRIDGE_MRP_START_TEST,
169+ IFLA_BRIDGE_MRP_INFO,
170+ IFLA_BRIDGE_MRP_IN_ROLE,
171+ IFLA_BRIDGE_MRP_IN_STATE,
172+ IFLA_BRIDGE_MRP_START_IN_TEST,
169173 __IFLA_BRIDGE_MRP_MAX,
170174 };
171175
@@ -228,6 +232,58 @@ enum { · 56 unmodified lines
228232
229233 #define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1)
230234
235+enum {
236+ IFLA_BRIDGE_MRP_INFO_UNSPEC,
237+ IFLA_BRIDGE_MRP_INFO_RING_ID,
238+ IFLA_BRIDGE_MRP_INFO_P_IFINDEX,
239+ IFLA_BRIDGE_MRP_INFO_S_IFINDEX,
240+ IFLA_BRIDGE_MRP_INFO_PRIO,
241+ IFLA_BRIDGE_MRP_INFO_RING_STATE,
242+ IFLA_BRIDGE_MRP_INFO_RING_ROLE,
243+ IFLA_BRIDGE_MRP_INFO_TEST_INTERVAL,
244+ IFLA_BRIDGE_MRP_INFO_TEST_MAX_MISS,
245+ IFLA_BRIDGE_MRP_INFO_TEST_MONITOR,
246+ IFLA_BRIDGE_MRP_INFO_I_IFINDEX,
247+ IFLA_BRIDGE_MRP_INFO_IN_STATE,
248+ IFLA_BRIDGE_MRP_INFO_IN_ROLE,
249+ IFLA_BRIDGE_MRP_INFO_IN_TEST_INTERVAL,
250+ IFLA_BRIDGE_MRP_INFO_IN_TEST_MAX_MISS,
251+ __IFLA_BRIDGE_MRP_INFO_MAX,
252+};
253+
254+#define IFLA_BRIDGE_MRP_INFO_MAX (__IFLA_BRIDGE_MRP_INFO_MAX - 1)
255+
256+enum {
257+ IFLA_BRIDGE_MRP_IN_STATE_UNSPEC,
258+ IFLA_BRIDGE_MRP_IN_STATE_IN_ID,
259+ IFLA_BRIDGE_MRP_IN_STATE_STATE,
260+ __IFLA_BRIDGE_MRP_IN_STATE_MAX,
261+};
262+
263+#define IFLA_BRIDGE_MRP_IN_STATE_MAX (__IFLA_BRIDGE_MRP_IN_STATE_MAX - 1)
264+
265+enum {
266+ IFLA_BRIDGE_MRP_IN_ROLE_UNSPEC,
267+ IFLA_BRIDGE_MRP_IN_ROLE_RING_ID,
268+ IFLA_BRIDGE_MRP_IN_ROLE_IN_ID,
269+ IFLA_BRIDGE_MRP_IN_ROLE_ROLE,
270+ IFLA_BRIDGE_MRP_IN_ROLE_I_IFINDEX,
271+ __IFLA_BRIDGE_MRP_IN_ROLE_MAX,
272+};
273+
274+#define IFLA_BRIDGE_MRP_IN_ROLE_MAX (__IFLA_BRIDGE_MRP_IN_ROLE_MAX - 1)
275+
276+enum {
277+ IFLA_BRIDGE_MRP_START_IN_TEST_UNSPEC,
278+ IFLA_BRIDGE_MRP_START_IN_TEST_IN_ID,
279+ IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL,
280+ IFLA_BRIDGE_MRP_START_IN_TEST_MAX_MISS,
281+ IFLA_BRIDGE_MRP_START_IN_TEST_PERIOD,
282+ __IFLA_BRIDGE_MRP_START_IN_TEST_MAX,
283+};
284+
285+#define IFLA_BRIDGE_MRP_START_IN_TEST_MAX (__IFLA_BRIDGE_MRP_START_IN_TEST_MAX - 1)
286+
231287 struct br_mrp_instance {
232288 __u32 ring_id;
233289 __u32 p_ifindex;
@@ -253,6 +309,25 @@ struct br_mrp_start_test { · 19 unmodified lines
253309 __u32 monitor;
254310 };
255311
312+struct br_mrp_in_state {
313+ __u32 in_state;
314+ __u16 in_id;
315+};
316+
317+struct br_mrp_in_role {
318+ __u32 ring_id;
319+ __u32 in_role;
320+ __u32 i_ifindex;
321+ __u16 in_id;
322+};
323+
324+struct br_mrp_start_in_test {
325+ __u32 interval;
326+ __u32 max_miss;
327+ __u32 period;
328+ __u16 in_id;
329+};
330+
256331 struct bridge_stp_xstats {
257332 __u64 transition_blk;
258333 __u64 transition_fwd;
include/uapi/linux/if_link.h+22−1
@@ -170,12 +170,22 @@ enum { · 169 unmodified lines
170170 IFLA_PROP_LIST,
171171 IFLA_ALT_IFNAME, /* Alternative ifname */
172172 IFLA_PERM_ADDRESS,
173+ IFLA_PROTO_DOWN_REASON,
173174 __IFLA_MAX
174175 };
175176
176177
177178 #define IFLA_MAX (__IFLA_MAX - 1)
178179
180+enum {
181+ IFLA_PROTO_DOWN_REASON_UNSPEC,
182+ IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */
183+ IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */
184+
185+ __IFLA_PROTO_DOWN_REASON_CNT,
186+ IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1
187+};
188+
179189 /* backwards compatibility for userspace */
180190 #ifndef __KERNEL__
181191 #define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
@@ -344,6 +354,7 @@ enum { · 162 unmodified lines
344354 IFLA_BRPORT_ISOLATED,
345355 IFLA_BRPORT_BACKUP_PORT,
346356 IFLA_BRPORT_MRP_RING_OPEN,
357+ IFLA_BRPORT_MRP_IN_OPEN,
347358 __IFLA_BRPORT_MAX
348359 };
349360 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -906,7 +917,14 @@ enum { · 556 unmodified lines
906917 #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
907918
908919
909−/* HSR section */
920+/* HSR/PRP section, both uses same interface */
921+
922+/* Different redundancy protocols for hsr device */
923+enum {
924+ HSR_PROTOCOL_HSR,
925+ HSR_PROTOCOL_PRP,
926+ HSR_PROTOCOL_MAX,
927+};
910928
911929 enum {
912930 IFLA_HSR_UNSPEC,
@@ -916,6 +934,9 @@ enum { · 3 unmodified lines
916934 IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */
917935 IFLA_HSR_SEQ_NR,
918936 IFLA_HSR_VERSION, /* HSR version */
937+ IFLA_HSR_PROTOCOL, /* Indicate different protocol than
938+ * HSR. For example PRP.
939+ */
919940 __IFLA_HSR_MAX,
920941 };
921942
include/uapi/linux/if_xdp.h+4−1
@@ -73,9 +73,12 @@ struct xdp_umem_reg { · 72 unmodified lines
7373 };
7474
7575 struct xdp_statistics {
76− __u64 rx_dropped; /* Dropped for reasons other than invalid desc */
76+ __u64 rx_dropped; /* Dropped for other reasons */
7777 __u64 rx_invalid_descs; /* Dropped due to invalid descriptor */
7878 __u64 tx_invalid_descs; /* Dropped due to invalid descriptor */
79+ __u64 rx_ring_full; /* Dropped due to rx ring being full */
80+ __u64 rx_fill_ring_empty_descs; /* Failed to retrieve item from fill ring */
81+ __u64 tx_ring_empty_descs; /* Failed to retrieve item from tx ring */
7982 };
8083
8184 struct xdp_options {
include/uapi/linux/in.h+1−0
@@ -123,6 +123,7 @@ struct in_addr { · 122 unmodified lines
123123 #define IP_CHECKSUM 23
124124 #define IP_BIND_ADDRESS_NO_PORT 24
125125 #define IP_RECVFRAGSIZE 25
126+#define IP_RECVERR_RFC4884 26
126127
127128 /* IP_MTU_DISCOVER values */
128129 #define IP_PMTUDISC_DONT 0 /* Never send DF frames */
include/uapi/linux/in6.h+1−0
@@ -179,6 +179,7 @@ struct in6_flowlabel_req { · 178 unmodified lines
179179 #define IPV6_LEAVE_ANYCAST 28
180180 #define IPV6_MULTICAST_ALL 29
181181 #define IPV6_ROUTER_ALERT_ISOLATE 30
182+#define IPV6_RECVERR_RFC4884 31
182183
183184 /* IPV6_MTU_DISCOVER values */
184185 #define IPV6_PMTUDISC_DONT 0
include/uapi/linux/inet_diag.h+1−0
@@ -65,6 +65,7 @@ enum { · 64 unmodified lines
6565 INET_DIAG_REQ_NONE,
6666 INET_DIAG_REQ_BYTECODE,
6767 INET_DIAG_REQ_SK_BPF_STORAGES,
68+ INET_DIAG_REQ_PROTOCOL,
6869 __INET_DIAG_REQ_MAX,
6970 };
7071
include/uapi/linux/mdio.h+26−0
@@ -324,4 +324,30 @@ static inline __u16 mdio_phy_id_c45(int prtad, int devad) · 323 unmodified lines
324324 return MDIO_PHY_ID_C45 | (prtad << 5) | devad;
325325 }
326326
327+/* UsxgmiiChannelInfo[15:0] for USXGMII in-band auto-negotiation.*/
328+#define MDIO_USXGMII_EEE_CLK_STP 0x0080 /* EEE clock stop supported */
329+#define MDIO_USXGMII_EEE 0x0100 /* EEE supported */
330+#define MDIO_USXGMII_SPD_MASK 0x0e00 /* USXGMII speed mask */
331+#define MDIO_USXGMII_FULL_DUPLEX 0x1000 /* USXGMII full duplex */
332+#define MDIO_USXGMII_DPX_SPD_MASK 0x1e00 /* USXGMII duplex and speed bits */
333+#define MDIO_USXGMII_10 0x0000 /* 10Mbps */
334+#define MDIO_USXGMII_10HALF 0x0000 /* 10Mbps half-duplex */
335+#define MDIO_USXGMII_10FULL 0x1000 /* 10Mbps full-duplex */
336+#define MDIO_USXGMII_100 0x0200 /* 100Mbps */
337+#define MDIO_USXGMII_100HALF 0x0200 /* 100Mbps half-duplex */
338+#define MDIO_USXGMII_100FULL 0x1200 /* 100Mbps full-duplex */
339+#define MDIO_USXGMII_1000 0x0400 /* 1000Mbps */
340+#define MDIO_USXGMII_1000HALF 0x0400 /* 1000Mbps half-duplex */
341+#define MDIO_USXGMII_1000FULL 0x1400 /* 1000Mbps full-duplex */
342+#define MDIO_USXGMII_10G 0x0600 /* 10Gbps */
343+#define MDIO_USXGMII_10GHALF 0x0600 /* 10Gbps half-duplex */
344+#define MDIO_USXGMII_10GFULL 0x1600 /* 10Gbps full-duplex */
345+#define MDIO_USXGMII_2500 0x0800 /* 2500Mbps */
346+#define MDIO_USXGMII_2500HALF 0x0800 /* 2500Mbps half-duplex */
347+#define MDIO_USXGMII_2500FULL 0x1800 /* 2500Mbps full-duplex */
348+#define MDIO_USXGMII_5000 0x0a00 /* 5000Mbps */
349+#define MDIO_USXGMII_5000HALF 0x0a00 /* 5000Mbps half-duplex */
350+#define MDIO_USXGMII_5000FULL 0x1a00 /* 5000Mbps full-duplex */
351+#define MDIO_USXGMII_LINK 0x8000 /* PHY link with copper-side partner */
352+
327353 #endif /* _UAPI__LINUX_MDIO_H__ */
include/uapi/linux/mptcp.h+17−0
@@ -86,4 +86,21 @@ enum { · 85 unmodified lines
8686 __MPTCP_PM_CMD_AFTER_LAST
8787 };
8888
89+#define MPTCP_INFO_FLAG_FALLBACK _BITUL(0)
90+#define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1)
91+
92+struct mptcp_info {
93+ __u8 mptcpi_subflows;
94+ __u8 mptcpi_add_addr_signal;
95+ __u8 mptcpi_add_addr_accepted;
96+ __u8 mptcpi_subflows_max;
97+ __u8 mptcpi_add_addr_signal_max;
98+ __u8 mptcpi_add_addr_accepted_max;
99+ __u32 mptcpi_flags;
100+ __u32 mptcpi_token;
101+ __u64 mptcpi_write_seq;
102+ __u64 mptcpi_snd_una;
103+ __u64 mptcpi_rcv_nxt;
104+};
105+
89106 #endif /* _UAPI_MPTCP_H */
include/uapi/linux/mrp_bridge.h+38−0
@@ -21,11 +21,22 @@ enum br_mrp_ring_role_type { · 20 unmodified lines
2121 BR_MRP_RING_ROLE_MRA,
2222 };
2323
24+enum br_mrp_in_role_type {
25+ BR_MRP_IN_ROLE_DISABLED,
26+ BR_MRP_IN_ROLE_MIC,
27+ BR_MRP_IN_ROLE_MIM,
28+};
29+
2430 enum br_mrp_ring_state_type {
2531 BR_MRP_RING_STATE_OPEN,
2632 BR_MRP_RING_STATE_CLOSED,
2733 };
2834
35+enum br_mrp_in_state_type {
36+ BR_MRP_IN_STATE_OPEN,
37+ BR_MRP_IN_STATE_CLOSED,
38+};
39+
2940 enum br_mrp_port_state_type {
3041 BR_MRP_PORT_STATE_DISABLED,
3142 BR_MRP_PORT_STATE_BLOCKED,
@@ -36,6 +47,7 @@ enum br_mrp_port_state_type { · 4 unmodified lines
3647 enum br_mrp_port_role_type {
3748 BR_MRP_PORT_ROLE_PRIMARY,
3849 BR_MRP_PORT_ROLE_SECONDARY,
50+ BR_MRP_PORT_ROLE_INTER,
3951 };
4052
4153 enum br_mrp_tlv_header_type {
@@ -45,6 +57,10 @@ enum br_mrp_tlv_header_type { · 3 unmodified lines
4557 BR_MRP_TLV_HEADER_RING_TOPO = 0x3,
4658 BR_MRP_TLV_HEADER_RING_LINK_DOWN = 0x4,
4759 BR_MRP_TLV_HEADER_RING_LINK_UP = 0x5,
60+ BR_MRP_TLV_HEADER_IN_TEST = 0x6,
61+ BR_MRP_TLV_HEADER_IN_TOPO = 0x7,
62+ BR_MRP_TLV_HEADER_IN_LINK_DOWN = 0x8,
63+ BR_MRP_TLV_HEADER_IN_LINK_UP = 0x9,
4864 BR_MRP_TLV_HEADER_OPTION = 0x7f,
4965 };
5066
@@ -118,4 +134,26 @@ struct br_mrp_oui_hdr { · 67 unmodified lines
118134 __u8 oui[MRP_OUI_LENGTH];
119135 };
120136
137+struct br_mrp_in_test_hdr {
138+ __be16 id;
139+ __u8 sa[ETH_ALEN];
140+ __be16 port_role;
141+ __be16 state;
142+ __be16 transitions;
143+ __be32 timestamp;
144+};
145+
146+struct br_mrp_in_topo_hdr {
147+ __u8 sa[ETH_ALEN];
148+ __be16 id;
149+ __be16 interval;
150+};
151+
152+struct br_mrp_in_link_hdr {
153+ __u8 sa[ETH_ALEN];
154+ __be16 port_role;
155+ __be16 id;
156+ __be16 interval;
157+};
158+
121159 #endif
include/uapi/linux/neighbour.h+24−0
@@ -30,6 +30,7 @@ enum { · 29 unmodified lines
3030 NDA_SRC_VNI,
3131 NDA_PROTOCOL, /* Originator of entry */
3232 NDA_NH_ID,
33+ NDA_FDB_EXT_ATTRS,
3334 __NDA_MAX
3435 };
3536
@@ -172,4 +173,27 @@ enum { · 136 unmodified lines
172173 };
173174 #define NDTA_MAX (__NDTA_MAX - 1)
174175
176+ /* FDB activity notification bits used in NFEA_ACTIVITY_NOTIFY:
177+ * - FDB_NOTIFY_BIT - notify on activity/expire for any entry
178+ * - FDB_NOTIFY_INACTIVE_BIT - mark as inactive to avoid multiple notifications
179+ */
180+enum {
181+ FDB_NOTIFY_BIT = (1 << 0),
182+ FDB_NOTIFY_INACTIVE_BIT = (1 << 1)
183+};
184+
185+/* embedded into NDA_FDB_EXT_ATTRS:
186+ * [NDA_FDB_EXT_ATTRS] = {
187+ * [NFEA_ACTIVITY_NOTIFY]
188+ * ...
189+ * }
190+ */
191+enum {
192+ NFEA_UNSPEC,
193+ NFEA_ACTIVITY_NOTIFY,
194+ NFEA_DONT_REFRESH,
195+ __NFEA_MAX
196+};
197+#define NFEA_MAX (__NFEA_MAX - 1)
198+
175199 #endif
include/uapi/linux/netfilter/nf_tables.h+14−0
@@ -184,6 +184,15 @@ enum nft_table_attributes { · 183 unmodified lines
184184 };
185185 #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
186186
187+enum nft_chain_flags {
188+ NFT_CHAIN_BASE = (1 << 0),
189+ NFT_CHAIN_HW_OFFLOAD = (1 << 1),
190+ NFT_CHAIN_BINDING = (1 << 2),
191+};
192+#define NFT_CHAIN_FLAGS (NFT_CHAIN_BASE | \
193+ NFT_CHAIN_HW_OFFLOAD | \
194+ NFT_CHAIN_BINDING)
195+
187196 /**
188197 * enum nft_chain_attributes - nf_tables chain netlink attributes
189198 *
@@ -196,6 +205,7 @@ enum nft_table_attributes { · 6 unmodified lines
196205 * @NFTA_CHAIN_TYPE: type name of the string (NLA_NUL_STRING)
197206 * @NFTA_CHAIN_COUNTERS: counter specification of the chain (NLA_NESTED: nft_counter_attributes)
198207 * @NFTA_CHAIN_FLAGS: chain flags
208+ * @NFTA_CHAIN_ID: uniquely identifies a chain in a transaction (NLA_U32)
199209 */
200210 enum nft_chain_attributes {
201211 NFTA_CHAIN_UNSPEC,
@@ -209,6 +219,7 @@ enum nft_chain_attributes { · 7 unmodified lines
209219 NFTA_CHAIN_COUNTERS,
210220 NFTA_CHAIN_PAD,
211221 NFTA_CHAIN_FLAGS,
222+ NFTA_CHAIN_ID,
212223 __NFTA_CHAIN_MAX
213224 };
214225 #define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
@@ -238,6 +249,7 @@ enum nft_rule_attributes { · 23 unmodified lines
238249 NFTA_RULE_PAD,
239250 NFTA_RULE_ID,
240251 NFTA_RULE_POSITION_ID,
252+ NFTA_RULE_CHAIN_ID,
241253 __NFTA_RULE_MAX
242254 };
243255 #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
@@ -468,11 +480,13 @@ enum nft_data_attributes { · 224 unmodified lines
468480 *
469481 * @NFTA_VERDICT_CODE: nf_tables verdict (NLA_U32: enum nft_verdicts)
470482 * @NFTA_VERDICT_CHAIN: jump target chain name (NLA_STRING)
483+ * @NFTA_VERDICT_CHAIN_ID: jump target chain ID (NLA_U32)
471484 */
472485 enum nft_verdict_attributes {
473486 NFTA_VERDICT_UNSPEC,
474487 NFTA_VERDICT_CODE,
475488 NFTA_VERDICT_CHAIN,
489+ NFTA_VERDICT_CHAIN_ID,
476490 __NFTA_VERDICT_MAX
477491 };
478492 #define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1)
include/uapi/linux/netfilter/xt_connmark.h+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
44
55 #include <linux/types.h>
66
7−/* Copyright (C) 2002,2004 MARA Systems AB <http://www.marasystems.com>
7+/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
88 * by Henrik Nordstrom <hno@marasystems.com>
99 *
1010 * This program is free software; you can redistribute it and/or modify
include/uapi/linux/nl80211.h+72−22
@@ -183,18 +183,27 @@ · 182 unmodified lines
183183 *
184184 * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers
185185 * can indicate they support offloading EAPOL handshakes for WPA/WPA2
186− * preshared key authentication. In %NL80211_CMD_CONNECT the preshared
187− * key should be specified using %NL80211_ATTR_PMK. Drivers supporting
188− * this offload may reject the %NL80211_CMD_CONNECT when no preshared
189− * key material is provided, for example when that driver does not
190− * support setting the temporal keys through %CMD_NEW_KEY.
186+ * preshared key authentication in station mode. In %NL80211_CMD_CONNECT
187+ * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
188+ * supporting this offload may reject the %NL80211_CMD_CONNECT when no
189+ * preshared key material is provided, for example when that driver does
190+ * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
191191 *
192192 * Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be
193193 * set by drivers indicating offload support of the PTK/GTK EAPOL
194− * handshakes during 802.1X authentication. In order to use the offload
195− * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS
196− * attribute flag. Drivers supporting this offload may reject the
197− * %NL80211_CMD_CONNECT when the attribute flag is not present.
194+ * handshakes during 802.1X authentication in station mode. In order to
195+ * use the offload the %NL80211_CMD_CONNECT should have
196+ * %NL80211_ATTR_WANT_1X_4WAY_HS attribute flag. Drivers supporting this
197+ * offload may reject the %NL80211_CMD_CONNECT when the attribute flag is
198+ * not present.
199+ *
200+ * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK flag drivers
201+ * can indicate they support offloading EAPOL handshakes for WPA/WPA2
202+ * preshared key authentication in AP mode. In %NL80211_CMD_START_AP
203+ * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers
204+ * supporting this offload may reject the %NL80211_CMD_START_AP when no
205+ * preshared key material is provided, for example when that driver does
206+ * not support setting the temporal keys through %NL80211_CMD_NEW_KEY.
198207 *
199208 * For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK
200209 * using %NL80211_CMD_SET_PMK. For offloaded FT support also
@@ -363,7 +372,7 @@ · 162 unmodified lines
363372 * @NL80211_CMD_SET_STATION: Set station attributes for station identified by
364373 * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
365374 * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the
366− * the interface identified by %NL80211_ATTR_IFINDEX.
375+ * interface identified by %NL80211_ATTR_IFINDEX.
367376 * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
368377 * or, if no MAC address given, all stations, on the interface identified
369378 * by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
@@ -383,7 +392,7 @@ · 13 unmodified lines
383392 * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by
384393 * %NL80211_ATTR_MAC.
385394 * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
386− * the interface identified by %NL80211_ATTR_IFINDEX.
395+ * interface identified by %NL80211_ATTR_IFINDEX.
387396 * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
388397 * or, if no MAC address given, all mesh paths, on the interface identified
389398 * by %NL80211_ATTR_IFINDEX.
@@ -934,7 +943,7 @@ · 544 unmodified lines
934943 * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules.
935944 *
936945 * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the
937− * the new channel information (Channel Switch Announcement - CSA)
946+ * new channel information (Channel Switch Announcement - CSA)
938947 * in the beacon for some time (as defined in the
939948 * %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
940949 * new channel. Userspace provides the new channel information (using
@@ -1113,7 +1122,7 @@ · 172 unmodified lines
11131122 * randomization may be enabled and configured by specifying the
11141123 * %NL80211_ATTR_MAC and %NL80211_ATTR_MAC_MASK attributes.
11151124 * If a timeout is requested, use the %NL80211_ATTR_TIMEOUT attribute.
1116− * A u64 cookie for further %NL80211_ATTR_COOKIE use is is returned in
1125+ * A u64 cookie for further %NL80211_ATTR_COOKIE use is returned in
11171126 * the netlink extended ack message.
11181127 *
11191128 * To cancel a measurement, close the socket that requested it.
@@ -1511,7 +1520,7 @@ enum nl80211_commands { · 391 unmodified lines
15111520 * rates as defined by IEEE 802.11 7.3.2.2 but without the length
15121521 * restriction (at most %NL80211_MAX_SUPP_RATES).
15131522 * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
1514− * to, or the AP interface the station was originally added to to.
1523+ * to, or the AP interface the station was originally added to.
15151524 * @NL80211_ATTR_STA_INFO: information about a station, part of station info
15161525 * given for %NL80211_CMD_GET_STATION, nested attribute containing
15171526 * info as possible, see &enum nl80211_sta_info.
@@ -2084,7 +2093,7 @@ enum nl80211_commands { · 566 unmodified lines
20842093 * @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels.
20852094 *
20862095 * @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported
2087− * supported operating classes.
2096+ * operating classes.
20882097 *
20892098 * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space
20902099 * controls DFS operation in IBSS mode. If the flag is included in
@@ -2362,10 +2371,11 @@ enum nl80211_commands { · 271 unmodified lines
23622371 *
23632372 * @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with
23642373 * %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID.
2365− * For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way
2366− * handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is
2367− * used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute
2368− * specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well.
2374+ * For %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP it is used to provide
2375+ * PSK for offloading 4-way handshake for WPA/WPA2-PSK networks. For 802.1X
2376+ * authentication it is used with %NL80211_CMD_SET_PMK. For offloaded FT
2377+ * support this attribute specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME
2378+ * is included as well.
23692379 *
23702380 * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to
23712381 * indicate that it supports multiple active scheduled scan requests.
@@ -2395,7 +2405,7 @@ enum nl80211_commands { · 23 unmodified lines
23952405 * nl80211_txq_stats)
23962406 * @NL80211_ATTR_TXQ_LIMIT: Total packet limit for the TXQ queues for this phy.
23972407 * The smaller of this and the memory limit is enforced.
2398− * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory memory limit (in bytes) for the
2408+ * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory limit (in bytes) for the
23992409 * TXQ queues for this phy. The smaller of this and the packet limit is
24002410 * enforced.
24012411 * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
@@ -3370,6 +3380,8 @@ enum nl80211_sta_bss_param { · 968 unmodified lines
33703380 * @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
33713381 * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
33723382 * of STA's association
3383+ * @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a
3384+ * authentication server (u8, 0 or 1)
33733385 * @__NL80211_STA_INFO_AFTER_LAST: internal
33743386 * @NL80211_STA_INFO_MAX: highest possible station info attribute
33753387 */
@@ -3417,6 +3429,7 @@ enum nl80211_sta_info { · 41 unmodified lines
34173429 NL80211_STA_INFO_AIRTIME_WEIGHT,
34183430 NL80211_STA_INFO_AIRTIME_LINK_METRIC,
34193431 NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
3432+ NL80211_STA_INFO_CONNECTED_TO_AS,
34203433
34213434 /* keep last */
34223435 __NL80211_STA_INFO_AFTER_LAST,
@@ -4236,6 +4249,16 @@ enum nl80211_mesh_power_mode { · 813 unmodified lines
42364249 * field. If left unset then the mesh formation field will only
42374250 * advertise such if there is an active root mesh path.
42384251 *
4252+ * @NL80211_MESHCONF_NOLEARN: Try to avoid multi-hop path discovery (e.g.
4253+ * PREQ/PREP for HWMP) if the destination is a direct neighbor. Note that
4254+ * this might not be the optimal decision as a multi-hop route might be
4255+ * better. So if using this setting you will likely also want to disable
4256+ * dot11MeshForwarding and use another mesh routing protocol on top.
4257+ *
4258+ * @NL80211_MESHCONF_CONNECTED_TO_AS: If set to true then this mesh STA
4259+ * will advertise that it is connected to a authentication server
4260+ * in the mesh formation field.
4261+ *
42394262 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
42404263 */
42414264 enum nl80211_meshconf_params {
@@ -4269,6 +4292,8 @@ enum nl80211_meshconf_params { · 27 unmodified lines
42694292 NL80211_MESHCONF_AWAKE_WINDOW,
42704293 NL80211_MESHCONF_PLINK_TIMEOUT,
42714294 NL80211_MESHCONF_CONNECTED_TO_GATE,
4295+ NL80211_MESHCONF_NOLEARN,
4296+ NL80211_MESHCONF_CONNECTED_TO_AS,
42724297
42734298 /* keep last */
42744299 __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -4437,6 +4462,11 @@ enum nl80211_key_mode { · 162 unmodified lines
44374462 * attribute must be provided as well
44384463 * @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel
44394464 * @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel
4465+ * @NL80211_CHAN_WIDTH_1: 1 MHz OFDM channel
4466+ * @NL80211_CHAN_WIDTH_2: 2 MHz OFDM channel
4467+ * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
4468+ * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
4469+ * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
44404470 */
44414471 enum nl80211_chan_width {
44424472 NL80211_CHAN_WIDTH_20_NOHT,
@@ -4447,6 +4477,11 @@ enum nl80211_chan_width { · 4 unmodified lines
44474477 NL80211_CHAN_WIDTH_160,
44484478 NL80211_CHAN_WIDTH_5,
44494479 NL80211_CHAN_WIDTH_10,
4480+ NL80211_CHAN_WIDTH_1,
4481+ NL80211_CHAN_WIDTH_2,
4482+ NL80211_CHAN_WIDTH_4,
4483+ NL80211_CHAN_WIDTH_8,
4484+ NL80211_CHAN_WIDTH_16,
44504485 };
44514486
44524487 /**
@@ -4457,11 +4492,15 @@ enum nl80211_chan_width { · 4 unmodified lines
44574492 * @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible
44584493 * @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide
44594494 * @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide
4495+ * @NL80211_BSS_CHAN_WIDTH_1: control channel is 1 MHz wide
4496+ * @NL80211_BSS_CHAN_WIDTH_2: control channel is 2 MHz wide
44604497 */
44614498 enum nl80211_bss_scan_width {
44624499 NL80211_BSS_CHAN_WIDTH_20,
44634500 NL80211_BSS_CHAN_WIDTH_10,
44644501 NL80211_BSS_CHAN_WIDTH_5,
4502+ NL80211_BSS_CHAN_WIDTH_1,
4503+ NL80211_BSS_CHAN_WIDTH_2,
44654504 };
44664505
44674506 /**
@@ -4740,6 +4779,7 @@ enum nl80211_txrate_gi { · 272 unmodified lines
47404779 * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
47414780 * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
47424781 * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
4782+ * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
47434783 * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
47444784 * since newer kernel versions may support more bands
47454785 */
@@ -4748,6 +4788,7 @@ enum nl80211_band { · 2 unmodified lines
47484788 NL80211_BAND_5GHZ,
47494789 NL80211_BAND_60GHZ,
47504790 NL80211_BAND_6GHZ,
4791+ NL80211_BAND_S1GHZ,
47514792
47524793 NUM_NL80211_BANDS,
47534794 };
@@ -5636,7 +5677,7 @@ enum nl80211_feature_flags { · 882 unmodified lines
56365677 * enum nl80211_ext_feature_index - bit index of extended features.
56375678 * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates.
56385679 * @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can
5639− * can request to use RRM (see %NL80211_ATTR_USE_RRM) with
5680+ * request to use RRM (see %NL80211_ATTR_USE_RRM) with
56405681 * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
56415682 * the ASSOC_REQ_USE_RRM flag in the association request even if
56425683 * NL80211_FEATURE_QUIET is not advertized.
@@ -5773,6 +5814,13 @@ enum nl80211_feature_flags { · 130 unmodified lines
57735814 * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver
57745815 * can report tx status for control port over nl80211 tx operations.
57755816 *
5817+ * @NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION: Driver supports Operating
5818+ * Channel Validation (OCV) when using driver's SME for RSNA handshakes.
5819+ *
5820+ * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK: Device wants to do 4-way
5821+ * handshake with PSK in AP mode (PSK is passed as part of the start AP
5822+ * command).
5823+ *
57765824 * @NUM_NL80211_EXT_FEATURES: number of extended features.
57775825 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
57785826 */
@@ -5828,6 +5876,8 @@ enum nl80211_ext_feature_index { · 49 unmodified lines
58285876 NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
58295877 NL80211_EXT_FEATURE_SCAN_FREQ_KHZ,
58305878 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
5879+ NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
5880+ NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
58315881
58325882 /* add new features before the definition below */
58335883 NUM_NL80211_EXT_FEATURES,
@@ -6045,7 +6095,7 @@ enum nl80211_dfs_state { · 211 unmodified lines
60456095 };
60466096
60476097 /**
6048− * enum enum nl80211_protocol_features - nl80211 protocol features
6098+ * enum nl80211_protocol_features - nl80211 protocol features
60496099 * @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting
60506100 * wiphy dumps (if requested by the application with the attribute
60516101 * %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the
include/uapi/linux/openvswitch.h+2−1
@@ -86,6 +86,7 @@ enum ovs_datapath_attr { · 85 unmodified lines
8686 OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */
8787 OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */
8888 OVS_DP_ATTR_PAD,
89+ OVS_DP_ATTR_MASKS_CACHE_SIZE,
8990 __OVS_DP_ATTR_MAX
9091 };
9192
@@ -102,8 +103,8 @@ struct ovs_dp_megaflow_stats { · 10 unmodified lines
102103 __u64 n_mask_hit; /* Number of masks used for flow lookups. */
103104 __u32 n_masks; /* Number of masks for the datapath. */
104105 __u32 pad0; /* Pad for future expension. */
106+ __u64 n_cache_hit; /* Number of cache matches for flow lookups. */
105107 __u64 pad1; /* Pad for future expension. */
106− __u64 pad2; /* Pad for future expension. */
107108 };
108109
109110 struct ovs_vport_stats {
include/uapi/linux/pkt_cls.h+3−0
@@ -578,6 +578,9 @@ enum { · 577 unmodified lines
578578
579579 TCA_FLOWER_KEY_MPLS_OPTS,
580580
581+ TCA_FLOWER_KEY_HASH, /* u32 */
582+ TCA_FLOWER_KEY_HASH_MASK, /* u32 */
583+
581584 __TCA_FLOWER_MAX,
582585 };
583586
include/uapi/linux/pkt_sched.h+2−0
@@ -257,6 +257,8 @@ enum { · 256 unmodified lines
257257 TCA_RED_STAB,
258258 TCA_RED_MAX_P,
259259 TCA_RED_FLAGS, /* bitfield32 */
260+ TCA_RED_EARLY_DROP_BLOCK, /* u32 */
261+ TCA_RED_MARK_BLOCK, /* u32 */
260262 __TCA_RED_MAX,
261263 };
262264
include/uapi/linux/ptp_clock.h+30−4
@@ -53,12 +53,16 @@ · 52 unmodified lines
5353 /*
5454 * Bits of the ptp_perout_request.flags field:
5555 */
56−#define PTP_PEROUT_ONE_SHOT (1<<0)
56+#define PTP_PEROUT_ONE_SHOT (1<<0)
57+#define PTP_PEROUT_DUTY_CYCLE (1<<1)
58+#define PTP_PEROUT_PHASE (1<<2)
5759
5860 /*
5961 * flag fields valid for the new PTP_PEROUT_REQUEST2 ioctl.
6062 */
61−#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT)
63+#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT | \
64+ PTP_PEROUT_DUTY_CYCLE | \
65+ PTP_PEROUT_PHASE)
6266
6367 /*
6468 * No flags are valid for the original PTP_PEROUT_REQUEST ioctl
@@ -101,11 +105,33 @@ struct ptp_extts_request { · 36 unmodified lines
101105 };
102106
103107 struct ptp_perout_request {
104− struct ptp_clock_time start; /* Absolute start time. */
108+ union {
109+ /*
110+ * Absolute start time.
111+ * Valid only if (flags & PTP_PEROUT_PHASE) is unset.
112+ */
113+ struct ptp_clock_time start;
114+ /*
115+ * Phase offset. The signal should start toggling at an
116+ * unspecified integer multiple of the period, plus this value.
117+ * The start time should be "as soon as possible".
118+ * Valid only if (flags & PTP_PEROUT_PHASE) is set.
119+ */
120+ struct ptp_clock_time phase;
121+ };
105122 struct ptp_clock_time period; /* Desired period, zero means disable. */
106123 unsigned int index; /* Which channel to configure. */
107124 unsigned int flags;
108− unsigned int rsv[4]; /* Reserved for future use. */
125+ union {
126+ /*
127+ * The "on" time of the signal.
128+ * Must be lower than the period.
129+ * Valid only if (flags & PTP_PEROUT_DUTY_CYCLE) is set.
130+ */
131+ struct ptp_clock_time on;
132+ /* Reserved for future use. */
133+ unsigned int rsv[4];
134+ };
109135 };
110136
111137 #define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */
include/uapi/linux/rtnetlink.h+24−22
@@ -257,12 +257,12 @@ enum { · 256 unmodified lines
257257
258258 /* rtm_protocol */
259259
260−#define RTPROT_UNSPEC 0
261−#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
262− not used by current IPv4 */
263−#define RTPROT_KERNEL 2 /* Route installed by kernel */
264−#define RTPROT_BOOT 3 /* Route installed during boot */
265−#define RTPROT_STATIC 4 /* Route installed by administrator */
260+#define RTPROT_UNSPEC 0
261+#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
262+ not used by current IPv4 */
263+#define RTPROT_KERNEL 2 /* Route installed by kernel */
264+#define RTPROT_BOOT 3 /* Route installed during boot */
265+#define RTPROT_STATIC 4 /* Route installed by administrator */
266266
267267 /* Values of protocol >= RTPROT_STATIC are not interpreted by kernel;
268268 they are just passed from user and back as is.
@@ -271,22 +271,23 @@ enum { · 2 unmodified lines
271271 avoid conflicts.
272272 */
273273
274−#define RTPROT_GATED 8 /* Apparently, GateD */
275−#define RTPROT_RA 9 /* RDISC/ND router advertisements */
276−#define RTPROT_MRT 10 /* Merit MRT */
277−#define RTPROT_ZEBRA 11 /* Zebra */
278−#define RTPROT_BIRD 12 /* BIRD */
279−#define RTPROT_DNROUTED 13 /* DECnet routing daemon */
280−#define RTPROT_XORP 14 /* XORP */
281−#define RTPROT_NTK 15 /* Netsukuku */
282−#define RTPROT_DHCP 16 /* DHCP client */
283−#define RTPROT_MROUTED 17 /* Multicast daemon */
284−#define RTPROT_BABEL 42 /* Babel daemon */
285−#define RTPROT_BGP 186 /* BGP Routes */
286−#define RTPROT_ISIS 187 /* ISIS Routes */
287−#define RTPROT_OSPF 188 /* OSPF Routes */
288−#define RTPROT_RIP 189 /* RIP Routes */
289−#define RTPROT_EIGRP 192 /* EIGRP Routes */
274+#define RTPROT_GATED 8 /* Apparently, GateD */
275+#define RTPROT_RA 9 /* RDISC/ND router advertisements */
276+#define RTPROT_MRT 10 /* Merit MRT */
277+#define RTPROT_ZEBRA 11 /* Zebra */
278+#define RTPROT_BIRD 12 /* BIRD */
279+#define RTPROT_DNROUTED 13 /* DECnet routing daemon */
280+#define RTPROT_XORP 14 /* XORP */
281+#define RTPROT_NTK 15 /* Netsukuku */
282+#define RTPROT_DHCP 16 /* DHCP client */
283+#define RTPROT_MROUTED 17 /* Multicast daemon */
284+#define RTPROT_KEEPALIVED 18 /* Keepalived daemon */
285+#define RTPROT_BABEL 42 /* Babel daemon */
286+#define RTPROT_BGP 186 /* BGP Routes */
287+#define RTPROT_ISIS 187 /* ISIS Routes */
288+#define RTPROT_OSPF 188 /* OSPF Routes */
289+#define RTPROT_RIP 189 /* RIP Routes */
290+#define RTPROT_EIGRP 192 /* EIGRP Routes */
290291
291292 /* rtm_scope
292293
@@ -777,6 +778,7 @@ enum { · 484 unmodified lines
777778 #define RTEXT_FILTER_BRVLAN (1 << 1)
778779 #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
779780 #define RTEXT_FILTER_SKIP_STATS (1 << 3)
781+#define RTEXT_FILTER_MRP (1 << 4)
780782
781783 /* End of information exported to user level */
782784
include/uapi/linux/seg6_iptunnel.h+0−21
@@ -37,25 +37,4 @@ enum { · 36 unmodified lines
3737 SEG6_IPTUN_MODE_L2ENCAP,
3838 };
3939
40−#ifdef __KERNEL__
41−
42−static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
43−{
44− int head = 0;
45−
46− switch (tuninfo->mode) {
47− case SEG6_IPTUN_MODE_INLINE:
48− break;
49− case SEG6_IPTUN_MODE_ENCAP:
50− head = sizeof(struct ipv6hdr);
51− break;
52− case SEG6_IPTUN_MODE_L2ENCAP:
53− return 0;
54− }
55−
56− return ((tuninfo->srh->hdrlen + 1) << 3) + head;
57−}
58−
59−#endif
60−
6140 #endif
include/uapi/linux/snmp.h+1−0
@@ -287,6 +287,7 @@ enum · 286 unmodified lines
287287 LINUX_MIB_TCPFASTOPENPASSIVEALTKEY, /* TCPFastOpenPassiveAltKey */
288288 LINUX_MIB_TCPTIMEOUTREHASH, /* TCPTimeoutRehash */
289289 LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */
290+ LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */
290291 __LINUX_MIB_MAX
291292 };
292293
include/uapi/linux/tcp.h+1−0
@@ -313,6 +313,7 @@ enum { · 312 unmodified lines
313313 TCP_NLA_SRTT, /* smoothed RTT in usecs */
314314 TCP_NLA_TIMEOUT_REHASH, /* Timeout-triggered rehash attempts */
315315 TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */
316+ TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */
316317 };
317318
318319 /* for TCP_MD5SIG socket option */
include/uapi/linux/wireless.h+1−1
@@ -914,7 +914,7 @@ union iwreq_data { · 913 unmodified lines
914914 struct iw_param sens; /* signal level threshold */
915915 struct iw_param bitrate; /* default bit rate */
916916 struct iw_param txpower; /* default transmit power */
917− struct iw_param rts; /* RTS threshold threshold */
917+ struct iw_param rts; /* RTS threshold */
918918 struct iw_param frag; /* Fragmentation threshold */
919919 __u32 mode; /* Operation mode */
920920 struct iw_param retry; /* Retry limits & lifetime */
include/uapi/linux/xdp_diag.h+11−0
@@ -30,6 +30,7 @@ struct xdp_diag_msg { · 29 unmodified lines
3030 #define XDP_SHOW_RING_CFG (1 << 1)
3131 #define XDP_SHOW_UMEM (1 << 2)
3232 #define XDP_SHOW_MEMINFO (1 << 3)
33+#define XDP_SHOW_STATS (1 << 4)
3334
3435 enum {
3536 XDP_DIAG_NONE,
@@ -41,6 +42,7 @@ enum { · 5 unmodified lines
4142 XDP_DIAG_UMEM_FILL_RING,
4243 XDP_DIAG_UMEM_COMPLETION_RING,
4344 XDP_DIAG_MEMINFO,
45+ XDP_DIAG_STATS,
4446 __XDP_DIAG_MAX,
4547 };
4648
@@ -69,4 +71,13 @@ struct xdp_diag_umem { · 22 unmodified lines
6971 __u32 refs;
7072 };
7173
74+struct xdp_diag_stats {
75+ __u64 n_rx_dropped;
76+ __u64 n_rx_invalid;
77+ __u64 n_rx_full;
78+ __u64 n_fill_ring_empty;
79+ __u64 n_tx_invalid;
80+ __u64 n_tx_ring_empty;
81+};
82+
7283 #endif /* _LINUX_XDP_DIAG_H */
include/uapi/linux/xfrm.h+1−0
@@ -387,6 +387,7 @@ struct xfrm_usersa_info { · 386 unmodified lines
387387 };
388388
389389 #define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1
390+#define XFRM_SA_XFLAG_OSEQ_MAY_WRAP 2
390391
391392 struct xfrm_usersa_id {
392393 xfrm_address_t daddr;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t