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 ...
Showing the changes to include/uapi/linux (20 of 1908 files). Show all
Unified · Split
| @@ -527,6 +527,15 @@ union bpf_iter_link_info { · 526 unmodified lines | |||
| 527 | * Look up an element with the given *key* in the map referred to | 527 | * Look up an element with the given *key* in the map referred to |
| 528 | * by the file descriptor *fd*, and if found, delete the element. | 528 | * by the file descriptor *fd*, and if found, delete the element. |
| 529 | * | 529 | * |
| 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 | * | ||
| 530 | * The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types | 539 | * The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types |
| 531 | * implement this command as a "pop" operation, deleting the top | 540 | * implement this command as a "pop" operation, deleting the top |
| 532 | * element rather than one corresponding to *key*. | 541 | * element rather than one corresponding to *key*. |
| @@ -536,6 +545,10 @@ union bpf_iter_link_info { · 3 unmodified lines | |||
| 536 | * This command is only valid for the following map types: | 545 | * This command is only valid for the following map types: |
| 537 | * * **BPF_MAP_TYPE_QUEUE** | 546 | * * **BPF_MAP_TYPE_QUEUE** |
| 538 | * * **BPF_MAP_TYPE_STACK** | 547 | * * **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** | ||
| 539 | * | 552 | * |
| 540 | * Return | 553 | * Return |
| 541 | * Returns zero on success. On error, -1 is returned and *errno* | 554 | * Returns zero on success. On error, -1 is returned and *errno* |
| @@ -837,6 +850,7 @@ enum bpf_cmd { · 295 unmodified lines | |||
| 837 | BPF_PROG_ATTACH, | 850 | BPF_PROG_ATTACH, |
| 838 | BPF_PROG_DETACH, | 851 | BPF_PROG_DETACH, |
| 839 | BPF_PROG_TEST_RUN, | 852 | BPF_PROG_TEST_RUN, |
| 853 | BPF_PROG_RUN = BPF_PROG_TEST_RUN, | ||
| 840 | BPF_PROG_GET_NEXT_ID, | 854 | BPF_PROG_GET_NEXT_ID, |
| 841 | BPF_MAP_GET_NEXT_ID, | 855 | BPF_MAP_GET_NEXT_ID, |
| 842 | BPF_PROG_GET_FD_BY_ID, | 856 | BPF_PROG_GET_FD_BY_ID, |
| @@ -937,6 +951,7 @@ enum bpf_prog_type { · 94 unmodified lines | |||
| 937 | BPF_PROG_TYPE_EXT, | 951 | BPF_PROG_TYPE_EXT, |
| 938 | BPF_PROG_TYPE_LSM, | 952 | BPF_PROG_TYPE_LSM, |
| 939 | BPF_PROG_TYPE_SK_LOOKUP, | 953 | BPF_PROG_TYPE_SK_LOOKUP, |
| 954 | BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */ | ||
| 940 | }; | 955 | }; |
| 941 | 956 | ||
| 942 | enum bpf_attach_type { | 957 | enum bpf_attach_type { |
| @@ -979,6 +994,8 @@ enum bpf_attach_type { · 36 unmodified lines | |||
| 979 | BPF_SK_LOOKUP, | 994 | BPF_SK_LOOKUP, |
| 980 | BPF_XDP, | 995 | BPF_XDP, |
| 981 | BPF_SK_SKB_VERDICT, | 996 | BPF_SK_SKB_VERDICT, |
| 997 | BPF_SK_REUSEPORT_SELECT, | ||
| 998 | BPF_SK_REUSEPORT_SELECT_OR_MIGRATE, | ||
| 982 | __MAX_BPF_ATTACH_TYPE | 999 | __MAX_BPF_ATTACH_TYPE |
| 983 | }; | 1000 | }; |
| 984 | 1001 | ||
| @@ -1097,8 +1114,8 @@ enum bpf_link_type { · 112 unmodified lines | |||
| 1097 | /* When BPF ldimm64's insn[0].src_reg != 0 then this can have | 1114 | /* When BPF ldimm64's insn[0].src_reg != 0 then this can have |
| 1098 | * the following extensions: | 1115 | * the following extensions: |
| 1099 | * | 1116 | * |
| 1100 | * insn[0].src_reg: BPF_PSEUDO_MAP_FD | 1117 | * insn[0].src_reg: BPF_PSEUDO_MAP_[FD|IDX] |
| 1101 | * insn[0].imm: map fd | 1118 | * insn[0].imm: map fd or fd_idx |
| 1102 | * insn[1].imm: 0 | 1119 | * insn[1].imm: 0 |
| 1103 | * insn[0].off: 0 | 1120 | * insn[0].off: 0 |
| 1104 | * insn[1].off: 0 | 1121 | * insn[1].off: 0 |
| @@ -1106,15 +1123,19 @@ enum bpf_link_type { · 1 unmodified line | |||
| 1106 | * verifier type: CONST_PTR_TO_MAP | 1123 | * verifier type: CONST_PTR_TO_MAP |
| 1107 | */ | 1124 | */ |
| 1108 | #define BPF_PSEUDO_MAP_FD 1 | 1125 | #define BPF_PSEUDO_MAP_FD 1 |
| 1109 | /* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE | 1126 | #define BPF_PSEUDO_MAP_IDX 5 |
| 1110 | * insn[0].imm: map fd | 1127 | |
| 1128 | /* insn[0].src_reg: BPF_PSEUDO_MAP_[IDX_]VALUE | ||
| 1129 | * insn[0].imm: map fd or fd_idx | ||
| 1111 | * insn[1].imm: offset into value | 1130 | * insn[1].imm: offset into value |
| 1112 | * insn[0].off: 0 | 1131 | * insn[0].off: 0 |
| 1113 | * insn[1].off: 0 | 1132 | * insn[1].off: 0 |
| 1114 | * ldimm64 rewrite: address of map[0]+offset | 1133 | * ldimm64 rewrite: address of map[0]+offset |
| 1115 | * verifier type: PTR_TO_MAP_VALUE | 1134 | * verifier type: PTR_TO_MAP_VALUE |
| 1116 | */ | 1135 | */ |
| 1117 | #define BPF_PSEUDO_MAP_VALUE 2 | 1136 | #define BPF_PSEUDO_MAP_VALUE 2 |
| 1137 | #define BPF_PSEUDO_MAP_IDX_VALUE 6 | ||
| 1138 | |||
| 1118 | /* insn[0].src_reg: BPF_PSEUDO_BTF_ID | 1139 | /* insn[0].src_reg: BPF_PSEUDO_BTF_ID |
| 1119 | * insn[0].imm: kernel btd id of VAR | 1140 | * insn[0].imm: kernel btd id of VAR |
| 1120 | * insn[1].imm: 0 | 1141 | * insn[1].imm: 0 |
| @@ -1314,6 +1335,8 @@ union bpf_attr { · 193 unmodified lines | |||
| 1314 | /* or valid module BTF object fd or 0 to attach to vmlinux */ | 1335 | /* or valid module BTF object fd or 0 to attach to vmlinux */ |
| 1315 | __u32 attach_btf_obj_fd; | 1336 | __u32 attach_btf_obj_fd; |
| 1316 | }; | 1337 | }; |
| 1338 | __u32 :32; /* pad */ | ||
| 1339 | __aligned_u64 fd_array; /* array of FDs */ | ||
| 1317 | }; | 1340 | }; |
| 1318 | 1341 | ||
| 1319 | struct { /* anonymous struct used by BPF_OBJ_* commands */ | 1342 | struct { /* anonymous struct used by BPF_OBJ_* commands */ |
| @@ -2534,8 +2557,12 @@ union bpf_attr { · 1214 unmodified lines | |||
| 2534 | * The lower two bits of *flags* are used as the return code if | 2557 | * The lower two bits of *flags* are used as the return code if |
| 2535 | * the map lookup fails. This is so that the return value can be | 2558 | * the map lookup fails. This is so that the return value can be |
| 2536 | * one of the XDP program return codes up to **XDP_TX**, as chosen | 2559 | * 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 | 2560 | * by the caller. The higher bits of *flags* can be set to |
| 2538 | * unset. | 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. | ||
| 2539 | * | 2566 | * |
| 2540 | * See also **bpf_redirect**\ (), which only supports redirecting | 2567 | * See also **bpf_redirect**\ (), which only supports redirecting |
| 2541 | * to an ifindex, but doesn't require a map to do so. | 2568 | * to an ifindex, but doesn't require a map to do so. |
| @@ -4735,6 +4762,24 @@ union bpf_attr { · 2193 unmodified lines | |||
| 4735 | * be zero-terminated except when **str_size** is 0. | 4762 | * be zero-terminated except when **str_size** is 0. |
| 4736 | * | 4763 | * |
| 4737 | * Or **-EBUSY** if the per-CPU memory copy buffer is busy. | 4764 | * 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. | ||
| 4738 | */ | 4783 | */ |
| 4739 | #define __BPF_FUNC_MAPPER(FN) \ | 4784 | #define __BPF_FUNC_MAPPER(FN) \ |
| 4740 | FN(unspec), \ | 4785 | FN(unspec), \ |
| @@ -4903,6 +4948,9 @@ union bpf_attr { · 162 unmodified lines | |||
| 4903 | FN(check_mtu), \ | 4948 | FN(check_mtu), \ |
| 4904 | FN(for_each_map_elem), \ | 4949 | FN(for_each_map_elem), \ |
| 4905 | FN(snprintf), \ | 4950 | FN(snprintf), \ |
| 4951 | FN(sys_bpf), \ | ||
| 4952 | FN(btf_find_by_name_kind), \ | ||
| 4953 | FN(sys_close), \ | ||
| 4906 | /* */ | 4954 | /* */ |
| 4907 | 4955 | ||
| 4908 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 4956 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| @@ -5080,6 +5128,12 @@ enum { · 171 unmodified lines | |||
| 5080 | BPF_F_BPRM_SECUREEXEC = (1ULL << 0), | 5128 | BPF_F_BPRM_SECUREEXEC = (1ULL << 0), |
| 5081 | }; | 5129 | }; |
| 5082 | 5130 | ||
| 5131 | /* Flags for bpf_redirect_map helper */ | ||
| 5132 | enum { | ||
| 5133 | BPF_F_BROADCAST = (1ULL << 3), | ||
| 5134 | BPF_F_EXCLUDE_INGRESS = (1ULL << 4), | ||
| 5135 | }; | ||
| 5136 | |||
| 5083 | #define __bpf_md_ptr(type, name) \ | 5137 | #define __bpf_md_ptr(type, name) \ |
| 5084 | union { \ | 5138 | union { \ |
| 5085 | type name; \ | 5139 | type name; \ |
| @@ -5364,6 +5418,20 @@ struct sk_reuseport_md { · 278 unmodified lines | |||
| 5364 | __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */ | 5418 | __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */ |
| 5365 | __u32 bind_inany; /* Is sock bound to an INANY address? */ | 5419 | __u32 bind_inany; /* Is sock bound to an INANY address? */ |
| 5366 | __u32 hash; /* A hash of the packet 4 tuples */ | 5420 | __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); | ||
| 5367 | }; | 5435 | }; |
| 5368 | 5436 | ||
| 5369 | #define BPF_TAG_SIZE 8 | 5437 | #define BPF_TAG_SIZE 8 |
| @@ -123,8 +123,8 @@ struct can_frame { · 122 unmodified lines | |||
| 123 | /* | 123 | /* |
| 124 | * defined bits for canfd_frame.flags | 124 | * defined bits for canfd_frame.flags |
| 125 | * | 125 | * |
| 126 | * The use of struct canfd_frame implies the Extended Data Length (EDL) bit to | 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 EDL bit switch turns | 127 | * be set in the CAN frame bitstream on the wire. The FDF bit switch turns |
| 128 | * the CAN controllers bitstream processor into the CAN FD mode which creates | 128 | * the CAN controllers bitstream processor into the CAN FD mode which creates |
| 129 | * two new options within the CAN FD frame specification: | 129 | * two new options within the CAN FD frame specification: |
| 130 | * | 130 | * |
| @@ -135,9 +135,18 @@ struct can_frame { · 4 unmodified lines | |||
| 135 | * controller only the CANFD_BRS bit is relevant for real CAN controllers when | 135 | * controller only the CANFD_BRS bit is relevant for real CAN controllers when |
| 136 | * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make | 136 | * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make |
| 137 | * sense for virtual CAN interfaces to test applications with echoed frames. | 137 | * 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. | ||
| 138 | */ | 146 | */ |
| 139 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ | 147 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ |
| 140 | #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ | 148 | #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 */ | ||
| 141 | 150 | ||
| 142 | /** | 151 | /** |
| 143 | * struct canfd_frame - CAN flexible data rate frame structure | 152 | * struct canfd_frame - CAN flexible data rate frame structure |
| @@ -126,6 +126,11 @@ enum devlink_command { · 125 unmodified lines | |||
| 126 | 126 | ||
| 127 | DEVLINK_CMD_HEALTH_REPORTER_TEST, | 127 | DEVLINK_CMD_HEALTH_REPORTER_TEST, |
| 128 | 128 | ||
| 129 | DEVLINK_CMD_RATE_GET, /* can dump */ | ||
| 130 | DEVLINK_CMD_RATE_SET, | ||
| 131 | DEVLINK_CMD_RATE_NEW, | ||
| 132 | DEVLINK_CMD_RATE_DEL, | ||
| 133 | |||
| 129 | /* add new commands above here */ | 134 | /* add new commands above here */ |
| 130 | __DEVLINK_CMD_MAX, | 135 | __DEVLINK_CMD_MAX, |
| 131 | DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 | 136 | DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 |
| @@ -206,6 +211,11 @@ enum devlink_port_flavour { · 74 unmodified lines | |||
| 206 | */ | 211 | */ |
| 207 | }; | 212 | }; |
| 208 | 213 | ||
| 214 | enum devlink_rate_type { | ||
| 215 | DEVLINK_RATE_TYPE_LEAF, | ||
| 216 | DEVLINK_RATE_TYPE_NODE, | ||
| 217 | }; | ||
| 218 | |||
| 209 | enum devlink_param_cmode { | 219 | enum devlink_param_cmode { |
| 210 | DEVLINK_PARAM_CMODE_RUNTIME, | 220 | DEVLINK_PARAM_CMODE_RUNTIME, |
| 211 | DEVLINK_PARAM_CMODE_DRIVERINIT, | 221 | DEVLINK_PARAM_CMODE_DRIVERINIT, |
| @@ -534,6 +544,13 @@ enum devlink_attr { · 322 unmodified lines | |||
| 534 | DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */ | 544 | DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */ |
| 535 | 545 | ||
| 536 | DEVLINK_ATTR_PORT_PCI_SF_NUMBER, /* u32 */ | 546 | 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 | |||
| 537 | /* add new attributes above here, update the policy in devlink.c */ | 554 | /* add new attributes above here, update the policy in devlink.c */ |
| 538 | 555 | ||
| 539 | __DEVLINK_ATTR_MAX, | 556 | __DEVLINK_ATTR_MAX, |
| @@ -233,7 +233,7 @@ enum tunable_id { · 232 unmodified lines | |||
| 233 | ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ | 233 | ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ |
| 234 | /* | 234 | /* |
| 235 | * Add your fresh new tunable attribute above and remember to update | 235 | * 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 |
| 237 | */ | 237 | */ |
| 238 | __ETHTOOL_TUNABLE_COUNT, | 238 | __ETHTOOL_TUNABLE_COUNT, |
| 239 | }; | 239 | }; |
| @@ -297,7 +297,7 @@ enum phy_tunable_id { · 57 unmodified lines | |||
| 297 | ETHTOOL_PHY_EDPD, | 297 | ETHTOOL_PHY_EDPD, |
| 298 | /* | 298 | /* |
| 299 | * Add your fresh new phy tunable attribute above and remember to update | 299 | * 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 |
| 301 | */ | 301 | */ |
| 302 | __ETHTOOL_PHY_TUNABLE_COUNT, | 302 | __ETHTOOL_PHY_TUNABLE_COUNT, |
| 303 | }; | 303 | }; |
| @@ -675,7 +675,7 @@ enum { · 674 unmodified lines | |||
| 675 | ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */ | 675 | ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */ |
| 676 | ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */ | 676 | ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */ |
| 677 | ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */ | 677 | ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */ |
| 678 | ETHTOOL_A_MODULE_EEPROM_DATA, /* nested */ | 678 | ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */ |
| 679 | 679 | ||
| 680 | __ETHTOOL_A_MODULE_EEPROM_CNT, | 680 | __ETHTOOL_A_MODULE_EEPROM_CNT, |
| 681 | ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1) | 681 | ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1) |
| @@ -20,7 +20,6 @@ · 19 unmodified lines | |||
| 20 | 20 | ||
| 21 | #include <linux/types.h> | 21 | #include <linux/types.h> |
| 22 | #include <asm/byteorder.h> | 22 | #include <asm/byteorder.h> |
| 23 | #include <linux/in.h> | ||
| 24 | #include <linux/if.h> | 23 | #include <linux/if.h> |
| 25 | #include <linux/in6.h> | 24 | #include <linux/in6.h> |
| 26 | 25 | ||
| @@ -154,7 +153,7 @@ struct icmp_ext_echo_iio { · 127 unmodified lines | |||
| 154 | struct { | 153 | struct { |
| 155 | struct icmp_ext_echo_ctype3_hdr ctype3_hdr; | 154 | struct icmp_ext_echo_ctype3_hdr ctype3_hdr; |
| 156 | union { | 155 | union { |
| 157 | struct in_addr ipv4_addr; | 156 | __be32 ipv4_addr; |
| 158 | struct in6_addr ipv6_addr; | 157 | struct in6_addr ipv6_addr; |
| 159 | } ip_addr; | 158 | } ip_addr; |
| 160 | } addr; | 159 | } addr; |
| @@ -627,6 +627,8 @@ enum { · 626 unmodified lines | |||
| 627 | MDBA_ROUTER_PATTR_UNSPEC, | 627 | MDBA_ROUTER_PATTR_UNSPEC, |
| 628 | MDBA_ROUTER_PATTR_TIMER, | 628 | MDBA_ROUTER_PATTR_TIMER, |
| 629 | MDBA_ROUTER_PATTR_TYPE, | 629 | MDBA_ROUTER_PATTR_TYPE, |
| 630 | MDBA_ROUTER_PATTR_INET_TIMER, | ||
| 631 | MDBA_ROUTER_PATTR_INET6_TIMER, | ||
| 630 | __MDBA_ROUTER_PATTR_MAX | 632 | __MDBA_ROUTER_PATTR_MAX |
| 631 | }; | 633 | }; |
| 632 | #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1) | 634 | #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1) |
| @@ -341,6 +341,13 @@ enum { · 340 unmodified lines | |||
| 341 | IFLA_ALT_IFNAME, /* Alternative ifname */ | 341 | IFLA_ALT_IFNAME, /* Alternative ifname */ |
| 342 | IFLA_PERM_ADDRESS, | 342 | IFLA_PERM_ADDRESS, |
| 343 | IFLA_PROTO_DOWN_REASON, | 343 | 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 | |||
| 344 | __IFLA_MAX | 351 | __IFLA_MAX |
| 345 | }; | 352 | }; |
| 346 | 353 | ||
| @@ -1236,6 +1243,8 @@ enum { · 889 unmodified lines | |||
| 1236 | #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1) | 1243 | #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1) |
| 1237 | #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2) | 1244 | #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2) |
| 1238 | #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3) | 1245 | #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) | ||
| 1239 | 1248 | ||
| 1240 | enum { | 1249 | enum { |
| 1241 | IFLA_RMNET_UNSPEC, | 1250 | IFLA_RMNET_UNSPEC, |
| @@ -105,6 +105,7 @@ struct mptcp_info { · 104 unmodified lines | |||
| 105 | __u64 mptcpi_rcv_nxt; | 105 | __u64 mptcpi_rcv_nxt; |
| 106 | __u8 mptcpi_local_addr_used; | 106 | __u8 mptcpi_local_addr_used; |
| 107 | __u8 mptcpi_local_addr_max; | 107 | __u8 mptcpi_local_addr_max; |
| 108 | __u8 mptcpi_csum_enabled; | ||
| 108 | }; | 109 | }; |
| 109 | 110 | ||
| 110 | /* | 111 | /* |
| @@ -813,11 +813,13 @@ enum nft_exthdr_flags { · 812 unmodified lines | |||
| 813 | * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers | 813 | * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers |
| 814 | * @NFT_EXTHDR_OP_TCP: match against tcp options | 814 | * @NFT_EXTHDR_OP_TCP: match against tcp options |
| 815 | * @NFT_EXTHDR_OP_IPV4: match against ipv4 options | 815 | * @NFT_EXTHDR_OP_IPV4: match against ipv4 options |
| 816 | * @NFT_EXTHDR_OP_SCTP: match against sctp chunks | ||
| 816 | */ | 817 | */ |
| 817 | enum nft_exthdr_op { | 818 | enum nft_exthdr_op { |
| 818 | NFT_EXTHDR_OP_IPV6, | 819 | NFT_EXTHDR_OP_IPV6, |
| 819 | NFT_EXTHDR_OP_TCPOPT, | 820 | NFT_EXTHDR_OP_TCPOPT, |
| 820 | NFT_EXTHDR_OP_IPV4, | 821 | NFT_EXTHDR_OP_IPV4, |
| 822 | NFT_EXTHDR_OP_SCTP, | ||
| 821 | __NFT_EXTHDR_OP_MAX | 823 | __NFT_EXTHDR_OP_MAX |
| 822 | }; | 824 | }; |
| 823 | #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1) | 825 | #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1) |
| @@ -1193,6 +1195,21 @@ enum nft_counter_attributes { · 369 unmodified lines | |||
| 1193 | }; | 1195 | }; |
| 1194 | #define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1) | 1196 | #define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1) |
| 1195 | 1197 | ||
| 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 | |||
| 1196 | /** | 1213 | /** |
| 1197 | * enum nft_log_attributes - nf_tables log expression netlink attributes | 1214 | * enum nft_log_attributes - nf_tables log expression netlink attributes |
| 1198 | * | 1215 | * |
| @@ -60,7 +60,8 @@ struct nfgenmsg { · 59 unmodified lines | |||
| 60 | #define NFNL_SUBSYS_CTHELPER 9 | 60 | #define NFNL_SUBSYS_CTHELPER 9 |
| 61 | #define NFNL_SUBSYS_NFTABLES 10 | 61 | #define NFNL_SUBSYS_NFTABLES 10 |
| 62 | #define NFNL_SUBSYS_NFT_COMPAT 11 | 62 | #define NFNL_SUBSYS_NFT_COMPAT 11 |
| 63 | #define NFNL_SUBSYS_COUNT 12 | 63 | #define NFNL_SUBSYS_HOOK 12 |
| 64 | #define NFNL_SUBSYS_COUNT 13 | ||
| 64 | 65 | ||
| 65 | /* Reserved control nfnetlink messages */ | 66 | /* Reserved control nfnetlink messages */ |
| 66 | #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE | 67 | #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE |
| @@ -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 */ | ||
| @@ -91,9 +91,10 @@ struct nlmsghdr { · 90 unmodified lines | |||
| 91 | #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) | 91 | #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) |
| 92 | #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN) | 92 | #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN) |
| 93 | #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len)) | 93 | #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)) |
| 95 | #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \ | 95 | #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))) | ||
| 97 | #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ | 98 | #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ |
| 98 | (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ | 99 | (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ |
| 99 | (nlh)->nlmsg_len <= (len)) | 100 | (nlh)->nlmsg_len <= (len)) |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | |||
| 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> | 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> |
| 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> | 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> |
| 13 | * Copyright 2015-2017 Intel Deutschland GmbH | 13 | * Copyright 2015-2017 Intel Deutschland GmbH |
| 14 | * Copyright (C) 2018-2020 Intel Corporation | 14 | * Copyright (C) 2018-2021 Intel Corporation |
| 15 | * | 15 | * |
| 16 | * Permission to use, copy, modify, and/or distribute this software for any | 16 | * Permission to use, copy, modify, and/or distribute this software for any |
| 17 | * purpose with or without fee is hereby granted, provided that the above | 17 | * purpose with or without fee is hereby granted, provided that the above |
| @@ -3654,6 +3654,8 @@ enum nl80211_mpath_info { · 3636 unmodified lines | |||
| 3654 | * defined | 3654 | * defined |
| 3655 | * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16), | 3655 | * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16), |
| 3656 | * given for all 6 GHz band channels | 3656 | * 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) | ||
| 3657 | * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use | 3659 | * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use |
| 3658 | */ | 3660 | */ |
| 3659 | enum nl80211_band_iftype_attr { | 3661 | enum nl80211_band_iftype_attr { |
| @@ -3665,6 +3667,7 @@ enum nl80211_band_iftype_attr { · 5 unmodified lines | |||
| 3665 | NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, | 3667 | NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, |
| 3666 | NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, | 3668 | NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, |
| 3667 | NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, | 3669 | NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, |
| 3670 | NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS, | ||
| 3668 | 3671 | ||
| 3669 | /* keep last */ | 3672 | /* keep last */ |
| 3670 | __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, | 3673 | __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, |
| @@ -6912,6 +6915,9 @@ enum nl80211_peer_measurement_ftm_capa { · 3241 unmodified lines | |||
| 6912 | * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only | 6915 | * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only |
| 6913 | * valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or | 6916 | * valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or |
| 6914 | * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set. | 6917 | * %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. | ||
| 6915 | * | 6921 | * |
| 6916 | * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal | 6922 | * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal |
| 6917 | * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number | 6923 | * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number |
| @@ -6931,6 +6937,7 @@ enum nl80211_peer_measurement_ftm_req { · 13 unmodified lines | |||
| 6931 | NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, | 6937 | NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, |
| 6932 | NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, | 6938 | NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, |
| 6933 | NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK, | 6939 | NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK, |
| 6940 | NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR, | ||
| 6934 | 6941 | ||
| 6935 | /* keep last */ | 6942 | /* keep last */ |
| 6936 | NUM_NL80211_PMSR_FTM_REQ_ATTR, | 6943 | NUM_NL80211_PMSR_FTM_REQ_ATTR, |
| @@ -141,6 +141,7 @@ typedef __s32 sctp_assoc_t; · 140 unmodified lines | |||
| 141 | #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 | 141 | #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 |
| 142 | #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE | 142 | #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE |
| 143 | #define SCTP_REMOTE_UDP_ENCAPS_PORT 132 | 143 | #define SCTP_REMOTE_UDP_ENCAPS_PORT 132 |
| 144 | #define SCTP_PLPMTUD_PROBE_INTERVAL 133 | ||
| 144 | 145 | ||
| 145 | /* PR-SCTP policies */ | 146 | /* PR-SCTP policies */ |
| 146 | #define SCTP_PR_SCTP_NONE 0x0000 | 147 | #define SCTP_PR_SCTP_NONE 0x0000 |
| @@ -1213,4 +1214,11 @@ enum sctp_sched_type { · 1066 unmodified lines | |||
| 1213 | SCTP_SS_MAX = SCTP_SS_RR | 1214 | SCTP_SS_MAX = SCTP_SS_RR |
| 1214 | }; | 1215 | }; |
| 1215 | 1216 | ||
| 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 | |||
| 1216 | #endif /* _UAPI_SCTP_H */ | 1224 | #endif /* _UAPI_SCTP_H */ |
| @@ -64,6 +64,8 @@ enum { · 63 unmodified lines | |||
| 64 | SEG6_LOCAL_ACTION_END_AM = 14, | 64 | SEG6_LOCAL_ACTION_END_AM = 14, |
| 65 | /* custom BPF action */ | 65 | /* custom BPF action */ |
| 66 | SEG6_LOCAL_ACTION_END_BPF = 15, | 66 | SEG6_LOCAL_ACTION_END_BPF = 15, |
| 67 | /* decap and lookup of DA in v4 or v6 table */ | ||
| 68 | SEG6_LOCAL_ACTION_END_DT46 = 16, | ||
| 67 | 69 | ||
| 68 | __SEG6_LOCAL_ACTION_MAX, | 70 | __SEG6_LOCAL_ACTION_MAX, |
| 69 | }; | 71 | }; |
| @@ -47,6 +47,8 @@ enum { · 46 unmodified lines | |||
| 47 | SMC_NETLINK_GET_LGR_SMCD, | 47 | SMC_NETLINK_GET_LGR_SMCD, |
| 48 | SMC_NETLINK_GET_DEV_SMCD, | 48 | SMC_NETLINK_GET_DEV_SMCD, |
| 49 | SMC_NETLINK_GET_DEV_SMCR, | 49 | SMC_NETLINK_GET_DEV_SMCR, |
| 50 | SMC_NETLINK_GET_STATS, | ||
| 51 | SMC_NETLINK_GET_FBACK_STATS, | ||
| 50 | }; | 52 | }; |
| 51 | 53 | ||
| 52 | /* SMC_GENL_FAMILY top level attributes */ | 54 | /* SMC_GENL_FAMILY top level attributes */ |
| @@ -58,6 +60,8 @@ enum { · 5 unmodified lines | |||
| 58 | SMC_GEN_LGR_SMCD, /* nest */ | 60 | SMC_GEN_LGR_SMCD, /* nest */ |
| 59 | SMC_GEN_DEV_SMCD, /* nest */ | 61 | SMC_GEN_DEV_SMCD, /* nest */ |
| 60 | SMC_GEN_DEV_SMCR, /* nest */ | 62 | SMC_GEN_DEV_SMCR, /* nest */ |
| 63 | SMC_GEN_STATS, /* nest */ | ||
| 64 | SMC_GEN_FBACK_STATS, /* nest */ | ||
| 61 | __SMC_GEN_MAX, | 65 | __SMC_GEN_MAX, |
| 62 | SMC_GEN_MAX = __SMC_GEN_MAX - 1 | 66 | SMC_GEN_MAX = __SMC_GEN_MAX - 1 |
| 63 | }; | 67 | }; |
| @@ -159,4 +163,83 @@ enum { · 95 unmodified lines | |||
| 159 | SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1 | 163 | SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1 |
| 160 | }; | 164 | }; |
| 161 | 165 | ||
| 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 | }; | ||
| 162 | #endif /* _UAPI_LINUX_SMC_H */ | 245 | #endif /* _UAPI_LINUX_SMC_H */ |
| @@ -290,6 +290,8 @@ enum · 289 unmodified lines | |||
| 290 | LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */ | 290 | LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */ |
| 291 | LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */ | 291 | LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */ |
| 292 | LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ | 292 | LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ |
| 293 | LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */ | ||
| 294 | LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */ | ||
| 293 | __LINUX_MIB_MAX | 295 | __LINUX_MIB_MAX |
| 294 | }; | 296 | }; |
| 295 | 297 | ||
| @@ -38,6 +38,9 @@ · 37 unmodified lines | |||
| 38 | #include <linux/virtio_ids.h> | 38 | #include <linux/virtio_ids.h> |
| 39 | #include <linux/virtio_config.h> | 39 | #include <linux/virtio_config.h> |
| 40 | 40 | ||
| 41 | /* The feature bitmap for virtio vsock */ | ||
| 42 | #define VIRTIO_VSOCK_F_SEQPACKET 1 /* SOCK_SEQPACKET supported */ | ||
| 43 | |||
| 41 | struct virtio_vsock_config { | 44 | struct virtio_vsock_config { |
| 42 | __le64 guest_cid; | 45 | __le64 guest_cid; |
| 43 | } __attribute__((packed)); | 46 | } __attribute__((packed)); |
| @@ -65,6 +68,7 @@ struct virtio_vsock_hdr { · 21 unmodified lines | |||
| 65 | 68 | ||
| 66 | enum virtio_vsock_type { | 69 | enum virtio_vsock_type { |
| 67 | VIRTIO_VSOCK_TYPE_STREAM = 1, | 70 | VIRTIO_VSOCK_TYPE_STREAM = 1, |
| 71 | VIRTIO_VSOCK_TYPE_SEQPACKET = 2, | ||
| 68 | }; | 72 | }; |
| 69 | 73 | ||
| 70 | enum virtio_vsock_op { | 74 | enum virtio_vsock_op { |
| @@ -91,4 +95,9 @@ enum virtio_vsock_shutdown { · 20 unmodified lines | |||
| 91 | VIRTIO_VSOCK_SHUTDOWN_SEND = 2, | 95 | VIRTIO_VSOCK_SHUTDOWN_SEND = 2, |
| 92 | }; | 96 | }; |
| 93 | 97 | ||
| 98 | /* VIRTIO_VSOCK_OP_RW flags values */ | ||
| 99 | enum virtio_vsock_rw { | ||
| 100 | VIRTIO_VSOCK_SEQ_EOR = 1, | ||
| 101 | }; | ||
| 102 | |||
| 94 | #endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */ | 103 | #endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */ |
| @@ -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_ */ | ||