History

Merge tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

Pull networking updates from Jakub Kicinski: "Core: - BPF: - add syscall program type and libbpf support for generating instructions and bindings for in-kernel BPF loaders (BPF loaders for BPF), this is a stepping stone for signed BPF programs - infrastructure to migrate TCP child sockets from one listener to another in the same reuseport group/map to improve flexibility of service hand-off/restart - add broadcast support to XDP redirect - allow bypass of the lockless qdisc to improving performance (for pktgen: +23% with one thread, +44% with 2 threads) - add a simpler version of "DO_ONCE()" which does not require jump labels, intended for slow-path usage - virtio/vsock: introduce SOCK_SEQPACKET support - add getsocketopt to retrieve netns cookie - ip: treat lowest address of a IPv4 subnet as ordinary unicast address allowing reclaiming of precious IPv4 addresses - ipv6: use prandom_u32() for ID generation - ip: add support for more flexible field selection for hashing across multi-path routes (w/ offload to mlxsw) - icmp: add support for extended RFC 8335 PROBE (ping) - seg6: add support for SRv6 End.DT46 behavior - mptcp: - DSS checksum support (RFC 8684) to detect middlebox meddling - support Connection-time 'C' flag - time stamping support - sctp: packetization Layer Path MTU Discovery (RFC 8899) - xfrm: speed up state addition with seq set - WiFi: - hidden AP discovery on 6 GHz and other HE 6 GHz improvements - aggregation handling improvements for some drivers - minstrel improvements for no-ack frames - deferred rate control for TXQs to improve reaction times - switch from round robin to virtual time-based airtime scheduler - add trace points: - tcp checksum errors - openvswitch - action execution, upcalls - socket errors via sk_error_report Device APIs: - devlink: add rate API for hierarchical control of max egress rate of virtual devices (VFs, SFs etc.) - don't require RCU read lock to be held around BPF hooks in NAPI context - page_pool: generic buffer recycling New hardware/drivers: - mobile: - iosm: PCIe Driver for Intel M.2 Modem - support for Qualcomm MSM8998 (ipa) - WiFi: Qualcomm QCN9074 and WCN6855 PCI devices - sparx5: Microchip SparX-5 family of Enterprise Ethernet switches - Mellanox BlueField Gigabit Ethernet (control NIC of the DPU) - NXP SJA1110 Automotive Ethernet 10-port switch - Qualcomm QCA8327 switch support (qca8k) - Mikrotik 10/25G NIC (atl1c) Driver changes: - ACPI support for some MDIO, MAC and PHY devices from Marvell and NXP (our first foray into MAC/PHY description via ACPI) - HW timestamping (PTP) support: bnxt_en, ice, sja1105, hns3, tja11xx - Mellanox/Nvidia NIC (mlx5) - NIC VF offload of L2 bridging - support IRQ distribution to Sub-functions - Marvell (prestera): - add flower and match all - devlink trap - link aggregation - Netronome (nfp): connection tracking offload - Intel 1GE (igc): add AF_XDP support - Marvell DPU (octeontx2): ingress ratelimit offload - Google vNIC (gve): new ring/descriptor format support - Qualcomm mobile (rmnet & ipa): inline checksum offload support - MediaTek WiFi (mt76) - mt7915 MSI support - mt7915 Tx status reporting - mt7915 thermal sensors support - mt7921 decapsulation offload - mt7921 enable runtime pm and deep sleep - Realtek WiFi (rtw88) - beacon filter support - Tx antenna path diversity support - firmware crash information via devcoredump - Qualcomm WiFi (wcn36xx) - Wake-on-WLAN support with magic packets and GTK rekeying - Micrel PHY (ksz886x/ksz8081): add cable test support" * tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2168 commits) tcp: change ICSK_CA_PRIV_SIZE definition tcp_yeah: check struct yeah size at compile time gve: DQO: Fix off by one in gve_rx_dqo() stmmac: intel: set PCI_D3hot in suspend stmmac: intel: Enable PHY WOL option in EHL net: stmmac: option to enable PHY WOL with PMT enabled net: say "local" instead of "static" addresses in ndo_dflt_fdb_{add,del} net: use netdev_info in ndo_dflt_fdb_{add,del} ptp: Set lookup cookie when creating a PTP PPS source. net: sock: add trace for socket errors net: sock: introduce sk_error_report net: dsa: replay the local bridge FDB entries pointing to the bridge dev too net: dsa: ensure during dsa_fdb_offload_notify that dev_hold and dev_put are on the same dev net: dsa: include fdb entries pointing to bridge in the host fdb list net: dsa: include bridge addresses which are local in the host fdb list net: dsa: sync static FDB entries on foreign interfaces to hardware net: dsa: install the host MDB and FDB entries in the master's RX filter net: dsa: reference count the FDB addresses at the cross-chip notifier level net: dsa: introduce a separate cross-chip notifier type for host FDBs net: dsa: reference count the MDB entries at the cross-chip notifier level ...

Linus Torvalds committed 5 years ago

Commit dbe69e42 parents a6eaf38 b6df0071908 files · +109791 −28910Browse files

Showing the changes to include/uapi/linux (20 of 1908 files). Show all

Unified · Split

20 files
  1. include/uapi/linux/bpf.h +75 −7
  2. include/uapi/linux/can.h +11 −2
  3. include/uapi/linux/devlink.h +17 −0
  4. include/uapi/linux/ethtool.h +2 −2
  5. include/uapi/linux/ethtool_netlink.h +1 −1
  6. include/uapi/linux/icmp.h +1 −2
  7. include/uapi/linux/if_bridge.h +2 −0
  8. include/uapi/linux/if_link.h +9 −0
  9. include/uapi/linux/mptcp.h +1 −0
  10. include/uapi/linux/netfilter/nf_tables.h +17 −0
  11. include/uapi/linux/netfilter/nfnetlink.h +2 −1
  12. include/uapi/linux/netfilter/nfnetlink_hook.h +55 −0
  13. include/uapi/linux/netlink.h +3 −2
  14. include/uapi/linux/nl80211.h +8 −1
  15. include/uapi/linux/sctp.h +8 −0
  16. include/uapi/linux/seg6_local.h +2 −0
  17. include/uapi/linux/smc.h +83 −0
  18. include/uapi/linux/snmp.h +2 −0
  19. include/uapi/linux/virtio_vsock.h +9 −0
  20. include/uapi/linux/wwan.h +16 −0
include/uapi/linux/bpf.h+75−7
@@ -527,6 +527,15 @@ union bpf_iter_link_info { · 526 unmodified lines
527527 * Look up an element with the given *key* in the map referred to
528528 * by the file descriptor *fd*, and if found, delete the element.
529529 *
530+ * For **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map
531+ * types, the *flags* argument needs to be set to 0, but for other
532+ * map types, it may be specified as:
533+ *
534+ * **BPF_F_LOCK**
535+ * Look up and delete the value of a spin-locked map
536+ * without returning the lock. This must be specified if
537+ * the elements contain a spinlock.
538+ *
530539 * The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types
531540 * implement this command as a "pop" operation, deleting the top
532541 * element rather than one corresponding to *key*.
@@ -536,6 +545,10 @@ union bpf_iter_link_info { · 3 unmodified lines
536545 * This command is only valid for the following map types:
537546 * * **BPF_MAP_TYPE_QUEUE**
538547 * * **BPF_MAP_TYPE_STACK**
548+ * * **BPF_MAP_TYPE_HASH**
549+ * * **BPF_MAP_TYPE_PERCPU_HASH**
550+ * * **BPF_MAP_TYPE_LRU_HASH**
551+ * * **BPF_MAP_TYPE_LRU_PERCPU_HASH**
539552 *
540553 * Return
541554 * Returns zero on success. On error, -1 is returned and *errno*
@@ -837,6 +850,7 @@ enum bpf_cmd { · 295 unmodified lines
837850 BPF_PROG_ATTACH,
838851 BPF_PROG_DETACH,
839852 BPF_PROG_TEST_RUN,
853+ BPF_PROG_RUN = BPF_PROG_TEST_RUN,
840854 BPF_PROG_GET_NEXT_ID,
841855 BPF_MAP_GET_NEXT_ID,
842856 BPF_PROG_GET_FD_BY_ID,
@@ -937,6 +951,7 @@ enum bpf_prog_type { · 94 unmodified lines
937951 BPF_PROG_TYPE_EXT,
938952 BPF_PROG_TYPE_LSM,
939953 BPF_PROG_TYPE_SK_LOOKUP,
954+ BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
940955 };
941956
942957 enum bpf_attach_type {
@@ -979,6 +994,8 @@ enum bpf_attach_type { · 36 unmodified lines
979994 BPF_SK_LOOKUP,
980995 BPF_XDP,
981996 BPF_SK_SKB_VERDICT,
997+ BPF_SK_REUSEPORT_SELECT,
998+ BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
982999 __MAX_BPF_ATTACH_TYPE
9831000 };
9841001
@@ -1097,8 +1114,8 @@ enum bpf_link_type { · 112 unmodified lines
10971114 /* When BPF ldimm64's insn[0].src_reg != 0 then this can have
10981115 * the following extensions:
10991116 *
1100− * insn[0].src_reg: BPF_PSEUDO_MAP_FD
1101− * insn[0].imm: map fd
1117+ * insn[0].src_reg: BPF_PSEUDO_MAP_[FD|IDX]
1118+ * insn[0].imm: map fd or fd_idx
11021119 * insn[1].imm: 0
11031120 * insn[0].off: 0
11041121 * insn[1].off: 0
@@ -1106,15 +1123,19 @@ enum bpf_link_type { · 1 unmodified line
11061123 * verifier type: CONST_PTR_TO_MAP
11071124 */
11081125 #define BPF_PSEUDO_MAP_FD 1
1109−/* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE
1110− * insn[0].imm: map fd
1126+#define BPF_PSEUDO_MAP_IDX 5
1127+
1128+/* insn[0].src_reg: BPF_PSEUDO_MAP_[IDX_]VALUE
1129+ * insn[0].imm: map fd or fd_idx
11111130 * insn[1].imm: offset into value
11121131 * insn[0].off: 0
11131132 * insn[1].off: 0
11141133 * ldimm64 rewrite: address of map[0]+offset
11151134 * verifier type: PTR_TO_MAP_VALUE
11161135 */
1117−#define BPF_PSEUDO_MAP_VALUE 2
1136+#define BPF_PSEUDO_MAP_VALUE 2
1137+#define BPF_PSEUDO_MAP_IDX_VALUE 6
1138+
11181139 /* insn[0].src_reg: BPF_PSEUDO_BTF_ID
11191140 * insn[0].imm: kernel btd id of VAR
11201141 * insn[1].imm: 0
@@ -1314,6 +1335,8 @@ union bpf_attr { · 193 unmodified lines
13141335 /* or valid module BTF object fd or 0 to attach to vmlinux */
13151336 __u32 attach_btf_obj_fd;
13161337 };
1338+ __u32 :32; /* pad */
1339+ __aligned_u64 fd_array; /* array of FDs */
13171340 };
13181341
13191342 struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -2534,8 +2557,12 @@ union bpf_attr { · 1214 unmodified lines
25342557 * The lower two bits of *flags* are used as the return code if
25352558 * the map lookup fails. This is so that the return value can be
25362559 * one of the XDP program return codes up to **XDP_TX**, as chosen
2537− * by the caller. Any higher bits in the *flags* argument must be
2538− * unset.
2560+ * by the caller. The higher bits of *flags* can be set to
2561+ * BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS as defined below.
2562+ *
2563+ * With BPF_F_BROADCAST the packet will be broadcasted to all the
2564+ * interfaces in the map, with BPF_F_EXCLUDE_INGRESS the ingress
2565+ * interface will be excluded when do broadcasting.
25392566 *
25402567 * See also **bpf_redirect**\ (), which only supports redirecting
25412568 * to an ifindex, but doesn't require a map to do so.
@@ -4735,6 +4762,24 @@ union bpf_attr { · 2193 unmodified lines
47354762 * be zero-terminated except when **str_size** is 0.
47364763 *
47374764 * Or **-EBUSY** if the per-CPU memory copy buffer is busy.
4765+ *
4766+ * long bpf_sys_bpf(u32 cmd, void *attr, u32 attr_size)
4767+ * Description
4768+ * Execute bpf syscall with given arguments.
4769+ * Return
4770+ * A syscall result.
4771+ *
4772+ * long bpf_btf_find_by_name_kind(char *name, int name_sz, u32 kind, int flags)
4773+ * Description
4774+ * Find BTF type with given name and kind in vmlinux BTF or in module's BTFs.
4775+ * Return
4776+ * Returns btf_id and btf_obj_fd in lower and upper 32 bits.
4777+ *
4778+ * long bpf_sys_close(u32 fd)
4779+ * Description
4780+ * Execute close syscall for given FD.
4781+ * Return
4782+ * A syscall result.
47384783 */
47394784 #define __BPF_FUNC_MAPPER(FN) \
47404785 FN(unspec), \
@@ -4903,6 +4948,9 @@ union bpf_attr { · 162 unmodified lines
49034948 FN(check_mtu), \
49044949 FN(for_each_map_elem), \
49054950 FN(snprintf), \
4951+ FN(sys_bpf), \
4952+ FN(btf_find_by_name_kind), \
4953+ FN(sys_close), \
49064954 /* */
49074955
49084956 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5080,6 +5128,12 @@ enum { · 171 unmodified lines
50805128 BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
50815129 };
50825130
5131+/* Flags for bpf_redirect_map helper */
5132+enum {
5133+ BPF_F_BROADCAST = (1ULL << 3),
5134+ BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
5135+};
5136+
50835137 #define __bpf_md_ptr(type, name) \
50845138 union { \
50855139 type name; \
@@ -5364,6 +5418,20 @@ struct sk_reuseport_md { · 278 unmodified lines
53645418 __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
53655419 __u32 bind_inany; /* Is sock bound to an INANY address? */
53665420 __u32 hash; /* A hash of the packet 4 tuples */
5421+ /* When reuse->migrating_sk is NULL, it is selecting a sk for the
5422+ * new incoming connection request (e.g. selecting a listen sk for
5423+ * the received SYN in the TCP case). reuse->sk is one of the sk
5424+ * in the reuseport group. The bpf prog can use reuse->sk to learn
5425+ * the local listening ip/port without looking into the skb.
5426+ *
5427+ * When reuse->migrating_sk is not NULL, reuse->sk is closed and
5428+ * reuse->migrating_sk is the socket that needs to be migrated
5429+ * to another listening socket. migrating_sk could be a fullsock
5430+ * sk that is fully established or a reqsk that is in-the-middle
5431+ * of 3-way handshake.
5432+ */
5433+ __bpf_md_ptr(struct bpf_sock *, sk);
5434+ __bpf_md_ptr(struct bpf_sock *, migrating_sk);
53675435 };
53685436
53695437 #define BPF_TAG_SIZE 8
include/uapi/linux/can.h+11−2
@@ -123,8 +123,8 @@ struct can_frame { · 122 unmodified lines
123123 /*
124124 * defined bits for canfd_frame.flags
125125 *
126− * The use of struct canfd_frame implies the Extended Data Length (EDL) bit to
127− * be set in the CAN frame bitstream on the wire. The EDL bit switch turns
126+ * The use of struct canfd_frame implies the FD Frame (FDF) bit to
127+ * be set in the CAN frame bitstream on the wire. The FDF bit switch turns
128128 * the CAN controllers bitstream processor into the CAN FD mode which creates
129129 * two new options within the CAN FD frame specification:
130130 *
@@ -135,9 +135,18 @@ struct can_frame { · 4 unmodified lines
135135 * controller only the CANFD_BRS bit is relevant for real CAN controllers when
136136 * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make
137137 * sense for virtual CAN interfaces to test applications with echoed frames.
138+ *
139+ * The struct can_frame and struct canfd_frame intentionally share the same
140+ * layout to be able to write CAN frame content into a CAN FD frame structure.
141+ * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
142+ * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
143+ * using struct canfd_frame for mixed CAN / CAN FD content (dual use).
144+ * N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of
145+ * struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux.
138146 */
139147 #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
140148 #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
149+#define CANFD_FDF 0x04 /* mark CAN FD for dual use of struct canfd_frame */
141150
142151 /**
143152 * struct canfd_frame - CAN flexible data rate frame structure
include/uapi/linux/devlink.h+17−0
@@ -126,6 +126,11 @@ enum devlink_command { · 125 unmodified lines
126126
127127 DEVLINK_CMD_HEALTH_REPORTER_TEST,
128128
129+ DEVLINK_CMD_RATE_GET, /* can dump */
130+ DEVLINK_CMD_RATE_SET,
131+ DEVLINK_CMD_RATE_NEW,
132+ DEVLINK_CMD_RATE_DEL,
133+
129134 /* add new commands above here */
130135 __DEVLINK_CMD_MAX,
131136 DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -206,6 +211,11 @@ enum devlink_port_flavour { · 74 unmodified lines
206211 */
207212 };
208213
214+enum devlink_rate_type {
215+ DEVLINK_RATE_TYPE_LEAF,
216+ DEVLINK_RATE_TYPE_NODE,
217+};
218+
209219 enum devlink_param_cmode {
210220 DEVLINK_PARAM_CMODE_RUNTIME,
211221 DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -534,6 +544,13 @@ enum devlink_attr { · 322 unmodified lines
534544 DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */
535545
536546 DEVLINK_ATTR_PORT_PCI_SF_NUMBER, /* u32 */
547+
548+ DEVLINK_ATTR_RATE_TYPE, /* u16 */
549+ DEVLINK_ATTR_RATE_TX_SHARE, /* u64 */
550+ DEVLINK_ATTR_RATE_TX_MAX, /* u64 */
551+ DEVLINK_ATTR_RATE_NODE_NAME, /* string */
552+ DEVLINK_ATTR_RATE_PARENT_NODE_NAME, /* string */
553+
537554 /* add new attributes above here, update the policy in devlink.c */
538555
539556 __DEVLINK_ATTR_MAX,
include/uapi/linux/ethtool.h+2−2
@@ -233,7 +233,7 @@ enum tunable_id { · 232 unmodified lines
233233 ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
234234 /*
235235 * Add your fresh new tunable attribute above and remember to update
236− * tunable_strings[] in net/core/ethtool.c
236+ * tunable_strings[] in net/ethtool/common.c
237237 */
238238 __ETHTOOL_TUNABLE_COUNT,
239239 };
@@ -297,7 +297,7 @@ enum phy_tunable_id { · 57 unmodified lines
297297 ETHTOOL_PHY_EDPD,
298298 /*
299299 * Add your fresh new phy tunable attribute above and remember to update
300− * phy_tunable_strings[] in net/core/ethtool.c
300+ * phy_tunable_strings[] in net/ethtool/common.c
301301 */
302302 __ETHTOOL_PHY_TUNABLE_COUNT,
303303 };
include/uapi/linux/ethtool_netlink.h+1−1
@@ -675,7 +675,7 @@ enum { · 674 unmodified lines
675675 ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */
676676 ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */
677677 ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */
678− ETHTOOL_A_MODULE_EEPROM_DATA, /* nested */
678+ ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */
679679
680680 __ETHTOOL_A_MODULE_EEPROM_CNT,
681681 ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
include/uapi/linux/icmp.h+1−2
@@ -20,7 +20,6 @@ · 19 unmodified lines
2020
2121 #include <linux/types.h>
2222 #include <asm/byteorder.h>
23−#include <linux/in.h>
2423 #include <linux/if.h>
2524 #include <linux/in6.h>
2625
@@ -154,7 +153,7 @@ struct icmp_ext_echo_iio { · 127 unmodified lines
154153 struct {
155154 struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
156155 union {
157− struct in_addr ipv4_addr;
156+ __be32 ipv4_addr;
158157 struct in6_addr ipv6_addr;
159158 } ip_addr;
160159 } addr;
include/uapi/linux/if_bridge.h+2−0
@@ -627,6 +627,8 @@ enum { · 626 unmodified lines
627627 MDBA_ROUTER_PATTR_UNSPEC,
628628 MDBA_ROUTER_PATTR_TIMER,
629629 MDBA_ROUTER_PATTR_TYPE,
630+ MDBA_ROUTER_PATTR_INET_TIMER,
631+ MDBA_ROUTER_PATTR_INET6_TIMER,
630632 __MDBA_ROUTER_PATTR_MAX
631633 };
632634 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
include/uapi/linux/if_link.h+9−0
@@ -341,6 +341,13 @@ enum { · 340 unmodified lines
341341 IFLA_ALT_IFNAME, /* Alternative ifname */
342342 IFLA_PERM_ADDRESS,
343343 IFLA_PROTO_DOWN_REASON,
344+
345+ /* device (sysfs) name as parent, used instead
346+ * of IFLA_LINK where there's no parent netdev
347+ */
348+ IFLA_PARENT_DEV_NAME,
349+ IFLA_PARENT_DEV_BUS_NAME,
350+
344351 __IFLA_MAX
345352 };
346353
@@ -1236,6 +1243,8 @@ enum { · 889 unmodified lines
12361243 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
12371244 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
12381245 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
1246+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
1247+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
12391248
12401249 enum {
12411250 IFLA_RMNET_UNSPEC,
include/uapi/linux/mptcp.h+1−0
@@ -105,6 +105,7 @@ struct mptcp_info { · 104 unmodified lines
105105 __u64 mptcpi_rcv_nxt;
106106 __u8 mptcpi_local_addr_used;
107107 __u8 mptcpi_local_addr_max;
108+ __u8 mptcpi_csum_enabled;
108109 };
109110
110111 /*
include/uapi/linux/netfilter/nf_tables.h+17−0
@@ -813,11 +813,13 @@ enum nft_exthdr_flags { · 812 unmodified lines
813813 * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
814814 * @NFT_EXTHDR_OP_TCP: match against tcp options
815815 * @NFT_EXTHDR_OP_IPV4: match against ipv4 options
816+ * @NFT_EXTHDR_OP_SCTP: match against sctp chunks
816817 */
817818 enum nft_exthdr_op {
818819 NFT_EXTHDR_OP_IPV6,
819820 NFT_EXTHDR_OP_TCPOPT,
820821 NFT_EXTHDR_OP_IPV4,
822+ NFT_EXTHDR_OP_SCTP,
821823 __NFT_EXTHDR_OP_MAX
822824 };
823825 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -1193,6 +1195,21 @@ enum nft_counter_attributes { · 369 unmodified lines
11931195 };
11941196 #define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
11951197
1198+/**
1199+ * enum nft_last_attributes - nf_tables last expression netlink attributes
1200+ *
1201+ * @NFTA_LAST_SET: last update has been set, zero means never updated (NLA_U32)
1202+ * @NFTA_LAST_MSECS: milliseconds since last update (NLA_U64)
1203+ */
1204+enum nft_last_attributes {
1205+ NFTA_LAST_UNSPEC,
1206+ NFTA_LAST_SET,
1207+ NFTA_LAST_MSECS,
1208+ NFTA_LAST_PAD,
1209+ __NFTA_LAST_MAX
1210+};
1211+#define NFTA_LAST_MAX (__NFTA_LAST_MAX - 1)
1212+
11961213 /**
11971214 * enum nft_log_attributes - nf_tables log expression netlink attributes
11981215 *
include/uapi/linux/netfilter/nfnetlink.h+2−1
@@ -60,7 +60,8 @@ struct nfgenmsg { · 59 unmodified lines
6060 #define NFNL_SUBSYS_CTHELPER 9
6161 #define NFNL_SUBSYS_NFTABLES 10
6262 #define NFNL_SUBSYS_NFT_COMPAT 11
63−#define NFNL_SUBSYS_COUNT 12
63+#define NFNL_SUBSYS_HOOK 12
64+#define NFNL_SUBSYS_COUNT 13
6465
6566 /* Reserved control nfnetlink messages */
6667 #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
include/uapi/linux/netfilter/nfnetlink_hook.h+55−0
@@ -0,0 +1,55 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef _NFNL_HOOK_H_
3+#define _NFNL_HOOK_H_
4+
5+enum nfnl_hook_msg_types {
6+ NFNL_MSG_HOOK_GET,
7+ NFNL_MSG_HOOK_MAX,
8+};
9+
10+/**
11+ * enum nfnl_hook_attributes - netfilter hook netlink attributes
12+ *
13+ * @NFNLA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
14+ * @NFNLA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
15+ * @NFNLA_HOOK_DEV: netdevice name (NLA_STRING)
16+ * @NFNLA_HOOK_FUNCTION_NAME: hook function name (NLA_STRING)
17+ * @NFNLA_HOOK_MODULE_NAME: kernel module that registered this hook (NLA_STRING)
18+ * @NFNLA_HOOK_CHAIN_INFO: basechain hook metadata (NLA_NESTED)
19+ */
20+enum nfnl_hook_attributes {
21+ NFNLA_HOOK_UNSPEC,
22+ NFNLA_HOOK_HOOKNUM,
23+ NFNLA_HOOK_PRIORITY,
24+ NFNLA_HOOK_DEV,
25+ NFNLA_HOOK_FUNCTION_NAME,
26+ NFNLA_HOOK_MODULE_NAME,
27+ NFNLA_HOOK_CHAIN_INFO,
28+ __NFNLA_HOOK_MAX
29+};
30+#define NFNLA_HOOK_MAX (__NFNLA_HOOK_MAX - 1)
31+
32+/**
33+ * enum nfnl_hook_chain_info_attributes - chain description
34+ *
35+ * NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED)
36+ * NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32)
37+ */
38+enum nfnl_hook_chain_info_attributes {
39+ NFNLA_HOOK_INFO_UNSPEC,
40+ NFNLA_HOOK_INFO_DESC,
41+ NFNLA_HOOK_INFO_TYPE,
42+ __NFNLA_HOOK_INFO_MAX,
43+};
44+#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1)
45+
46+/**
47+ * enum nfnl_hook_chaintype - chain type
48+ *
49+ * @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain
50+ */
51+enum nfnl_hook_chaintype {
52+ NFNL_HOOK_TYPE_NFTABLES = 0x1,
53+};
54+
55+#endif /* _NFNL_HOOK_H */
include/uapi/linux/netlink.h+3−2
@@ -91,9 +91,10 @@ struct nlmsghdr { · 90 unmodified lines
9191 #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
9292 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
9393 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
94−#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
94+#define NLMSG_DATA(nlh) ((void *)(((char *)nlh) + NLMSG_HDRLEN))
9595 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
96− (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
96+ (struct nlmsghdr *)(((char *)(nlh)) + \
97+ NLMSG_ALIGN((nlh)->nlmsg_len)))
9798 #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
9899 (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
99100 (nlh)->nlmsg_len <= (len))
include/uapi/linux/nl80211.h+8−1
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
1212 * Copyright 2008 Colin McCabe <colin@cozybit.com>
1313 * Copyright 2015-2017 Intel Deutschland GmbH
14− * Copyright (C) 2018-2020 Intel Corporation
14+ * Copyright (C) 2018-2021 Intel Corporation
1515 *
1616 * Permission to use, copy, modify, and/or distribute this software for any
1717 * purpose with or without fee is hereby granted, provided that the above
@@ -3654,6 +3654,8 @@ enum nl80211_mpath_info { · 3636 unmodified lines
36543654 * defined
36553655 * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
36563656 * given for all 6 GHz band channels
3657+ * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
3658+ * advertised on this band/for this iftype (binary)
36573659 * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
36583660 */
36593661 enum nl80211_band_iftype_attr {
@@ -3665,6 +3667,7 @@ enum nl80211_band_iftype_attr { · 5 unmodified lines
36653667 NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
36663668 NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
36673669 NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
3670+ NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
36683671
36693672 /* keep last */
36703673 __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
@@ -6912,6 +6915,9 @@ enum nl80211_peer_measurement_ftm_capa { · 3241 unmodified lines
69126915 * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
69136916 * valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
69146917 * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
6918+ * @NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR: optional. The BSS color of the
6919+ * responder. Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED
6920+ * or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED is set.
69156921 *
69166922 * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
69176923 * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
@@ -6931,6 +6937,7 @@ enum nl80211_peer_measurement_ftm_req { · 13 unmodified lines
69316937 NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
69326938 NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
69336939 NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
6940+ NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
69346941
69356942 /* keep last */
69366943 NUM_NL80211_PMSR_FTM_REQ_ATTR,
include/uapi/linux/sctp.h+8−0
@@ -141,6 +141,7 @@ typedef __s32 sctp_assoc_t; · 140 unmodified lines
141141 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
142142 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
143143 #define SCTP_REMOTE_UDP_ENCAPS_PORT 132
144+#define SCTP_PLPMTUD_PROBE_INTERVAL 133
144145
145146 /* PR-SCTP policies */
146147 #define SCTP_PR_SCTP_NONE 0x0000
@@ -1213,4 +1214,11 @@ enum sctp_sched_type { · 1066 unmodified lines
12131214 SCTP_SS_MAX = SCTP_SS_RR
12141215 };
12151216
1217+/* Probe Interval socket option */
1218+struct sctp_probeinterval {
1219+ sctp_assoc_t spi_assoc_id;
1220+ struct sockaddr_storage spi_address;
1221+ __u32 spi_interval;
1222+};
1223+
12161224 #endif /* _UAPI_SCTP_H */
include/uapi/linux/seg6_local.h+2−0
@@ -64,6 +64,8 @@ enum { · 63 unmodified lines
6464 SEG6_LOCAL_ACTION_END_AM = 14,
6565 /* custom BPF action */
6666 SEG6_LOCAL_ACTION_END_BPF = 15,
67+ /* decap and lookup of DA in v4 or v6 table */
68+ SEG6_LOCAL_ACTION_END_DT46 = 16,
6769
6870 __SEG6_LOCAL_ACTION_MAX,
6971 };
include/uapi/linux/smc.h+83−0
@@ -47,6 +47,8 @@ enum { · 46 unmodified lines
4747 SMC_NETLINK_GET_LGR_SMCD,
4848 SMC_NETLINK_GET_DEV_SMCD,
4949 SMC_NETLINK_GET_DEV_SMCR,
50+ SMC_NETLINK_GET_STATS,
51+ SMC_NETLINK_GET_FBACK_STATS,
5052 };
5153
5254 /* SMC_GENL_FAMILY top level attributes */
@@ -58,6 +60,8 @@ enum { · 5 unmodified lines
5860 SMC_GEN_LGR_SMCD, /* nest */
5961 SMC_GEN_DEV_SMCD, /* nest */
6062 SMC_GEN_DEV_SMCR, /* nest */
63+ SMC_GEN_STATS, /* nest */
64+ SMC_GEN_FBACK_STATS, /* nest */
6165 __SMC_GEN_MAX,
6266 SMC_GEN_MAX = __SMC_GEN_MAX - 1
6367 };
@@ -159,4 +163,83 @@ enum { · 95 unmodified lines
159163 SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
160164 };
161165
166+/* SMC_NLA_STATS_T_TX(RX)_RMB_SIZE nested attributes */
167+/* SMC_NLA_STATS_TX(RX)PLOAD_SIZE nested attributes */
168+enum {
169+ SMC_NLA_STATS_PLOAD_PAD,
170+ SMC_NLA_STATS_PLOAD_8K, /* u64 */
171+ SMC_NLA_STATS_PLOAD_16K, /* u64 */
172+ SMC_NLA_STATS_PLOAD_32K, /* u64 */
173+ SMC_NLA_STATS_PLOAD_64K, /* u64 */
174+ SMC_NLA_STATS_PLOAD_128K, /* u64 */
175+ SMC_NLA_STATS_PLOAD_256K, /* u64 */
176+ SMC_NLA_STATS_PLOAD_512K, /* u64 */
177+ SMC_NLA_STATS_PLOAD_1024K, /* u64 */
178+ SMC_NLA_STATS_PLOAD_G_1024K, /* u64 */
179+ __SMC_NLA_STATS_PLOAD_MAX,
180+ SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
181+};
182+
183+/* SMC_NLA_STATS_T_TX(RX)_RMB_STATS nested attributes */
184+enum {
185+ SMC_NLA_STATS_RMB_PAD,
186+ SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT, /* u64 */
187+ SMC_NLA_STATS_RMB_SIZE_SM_CNT, /* u64 */
188+ SMC_NLA_STATS_RMB_FULL_PEER_CNT, /* u64 */
189+ SMC_NLA_STATS_RMB_FULL_CNT, /* u64 */
190+ SMC_NLA_STATS_RMB_REUSE_CNT, /* u64 */
191+ SMC_NLA_STATS_RMB_ALLOC_CNT, /* u64 */
192+ SMC_NLA_STATS_RMB_DGRADE_CNT, /* u64 */
193+ __SMC_NLA_STATS_RMB_MAX,
194+ SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
195+};
196+
197+/* SMC_NLA_STATS_SMCD_TECH and _SMCR_TECH nested attributes */
198+enum {
199+ SMC_NLA_STATS_T_PAD,
200+ SMC_NLA_STATS_T_TX_RMB_SIZE, /* nest */
201+ SMC_NLA_STATS_T_RX_RMB_SIZE, /* nest */
202+ SMC_NLA_STATS_T_TXPLOAD_SIZE, /* nest */
203+ SMC_NLA_STATS_T_RXPLOAD_SIZE, /* nest */
204+ SMC_NLA_STATS_T_TX_RMB_STATS, /* nest */
205+ SMC_NLA_STATS_T_RX_RMB_STATS, /* nest */
206+ SMC_NLA_STATS_T_CLNT_V1_SUCC, /* u64 */
207+ SMC_NLA_STATS_T_CLNT_V2_SUCC, /* u64 */
208+ SMC_NLA_STATS_T_SRV_V1_SUCC, /* u64 */
209+ SMC_NLA_STATS_T_SRV_V2_SUCC, /* u64 */
210+ SMC_NLA_STATS_T_SENDPAGE_CNT, /* u64 */
211+ SMC_NLA_STATS_T_SPLICE_CNT, /* u64 */
212+ SMC_NLA_STATS_T_CORK_CNT, /* u64 */
213+ SMC_NLA_STATS_T_NDLY_CNT, /* u64 */
214+ SMC_NLA_STATS_T_URG_DATA_CNT, /* u64 */
215+ SMC_NLA_STATS_T_RX_BYTES, /* u64 */
216+ SMC_NLA_STATS_T_TX_BYTES, /* u64 */
217+ SMC_NLA_STATS_T_RX_CNT, /* u64 */
218+ SMC_NLA_STATS_T_TX_CNT, /* u64 */
219+ __SMC_NLA_STATS_T_MAX,
220+ SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
221+};
222+
223+/* SMC_GEN_STATS attributes */
224+enum {
225+ SMC_NLA_STATS_PAD,
226+ SMC_NLA_STATS_SMCD_TECH, /* nest */
227+ SMC_NLA_STATS_SMCR_TECH, /* nest */
228+ SMC_NLA_STATS_CLNT_HS_ERR_CNT, /* u64 */
229+ SMC_NLA_STATS_SRV_HS_ERR_CNT, /* u64 */
230+ __SMC_NLA_STATS_MAX,
231+ SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
232+};
233+
234+/* SMC_GEN_FBACK_STATS attributes */
235+enum {
236+ SMC_NLA_FBACK_STATS_PAD,
237+ SMC_NLA_FBACK_STATS_TYPE, /* u8 */
238+ SMC_NLA_FBACK_STATS_SRV_CNT, /* u64 */
239+ SMC_NLA_FBACK_STATS_CLNT_CNT, /* u64 */
240+ SMC_NLA_FBACK_STATS_RSN_CODE, /* u32 */
241+ SMC_NLA_FBACK_STATS_RSN_CNT, /* u16 */
242+ __SMC_NLA_FBACK_STATS_MAX,
243+ SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
244+};
162245 #endif /* _UAPI_LINUX_SMC_H */
include/uapi/linux/snmp.h+2−0
@@ -290,6 +290,8 @@ enum · 289 unmodified lines
290290 LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */
291291 LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */
292292 LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */
293+ LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */
294+ LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */
293295 __LINUX_MIB_MAX
294296 };
295297
include/uapi/linux/virtio_vsock.h+9−0
@@ -38,6 +38,9 @@ · 37 unmodified lines
3838 #include <linux/virtio_ids.h>
3939 #include <linux/virtio_config.h>
4040
41+/* The feature bitmap for virtio vsock */
42+#define VIRTIO_VSOCK_F_SEQPACKET 1 /* SOCK_SEQPACKET supported */
43+
4144 struct virtio_vsock_config {
4245 __le64 guest_cid;
4346 } __attribute__((packed));
@@ -65,6 +68,7 @@ struct virtio_vsock_hdr { · 21 unmodified lines
6568
6669 enum virtio_vsock_type {
6770 VIRTIO_VSOCK_TYPE_STREAM = 1,
71+ VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
6872 };
6973
7074 enum virtio_vsock_op {
@@ -91,4 +95,9 @@ enum virtio_vsock_shutdown { · 20 unmodified lines
9195 VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
9296 };
9397
98+/* VIRTIO_VSOCK_OP_RW flags values */
99+enum virtio_vsock_rw {
100+ VIRTIO_VSOCK_SEQ_EOR = 1,
101+};
102+
94103 #endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
include/uapi/linux/wwan.h+16−0
@@ -0,0 +1,16 @@
1+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2+/*
3+ * Copyright (C) 2021 Intel Corporation.
4+ */
5+#ifndef _UAPI_WWAN_H_
6+#define _UAPI_WWAN_H_
7+
8+enum {
9+ IFLA_WWAN_UNSPEC,
10+ IFLA_WWAN_LINK_ID, /* u32 */
11+
12+ __IFLA_WWAN_MAX
13+};
14+#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
15+
16+#endif /* _UAPI_WWAN_H_ */