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 | 527 | * Look up an element with the given *key* in the map referred to |
| 528 | 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 | 539 | * The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types |
| 531 | 540 | * implement this command as a "pop" operation, deleting the top |
| 532 | 541 | * element rather than one corresponding to *key*. |
| @@ -536,6 +545,10 @@ union bpf_iter_link_info { · 3 unmodified lines | ||
| 536 | 545 | * This command is only valid for the following map types: |
| 537 | 546 | * * **BPF_MAP_TYPE_QUEUE** |
| 538 | 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 | 553 | * Return |
| 541 | 554 | * Returns zero on success. On error, -1 is returned and *errno* |
| @@ -837,6 +850,7 @@ enum bpf_cmd { · 295 unmodified lines | ||
| 837 | 850 | BPF_PROG_ATTACH, |
| 838 | 851 | BPF_PROG_DETACH, |
| 839 | 852 | BPF_PROG_TEST_RUN, |
| 853 | + BPF_PROG_RUN = BPF_PROG_TEST_RUN, | |
| 840 | 854 | BPF_PROG_GET_NEXT_ID, |
| 841 | 855 | BPF_MAP_GET_NEXT_ID, |
| 842 | 856 | BPF_PROG_GET_FD_BY_ID, |
| @@ -937,6 +951,7 @@ enum bpf_prog_type { · 94 unmodified lines | ||
| 937 | 951 | BPF_PROG_TYPE_EXT, |
| 938 | 952 | BPF_PROG_TYPE_LSM, |
| 939 | 953 | BPF_PROG_TYPE_SK_LOOKUP, |
| 954 | + BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */ | |
| 940 | 955 | }; |
| 941 | 956 | |
| 942 | 957 | enum bpf_attach_type { |
| @@ -979,6 +994,8 @@ enum bpf_attach_type { · 36 unmodified lines | ||
| 979 | 994 | BPF_SK_LOOKUP, |
| 980 | 995 | BPF_XDP, |
| 981 | 996 | BPF_SK_SKB_VERDICT, |
| 997 | + BPF_SK_REUSEPORT_SELECT, | |
| 998 | + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE, | |
| 982 | 999 | __MAX_BPF_ATTACH_TYPE |
| 983 | 1000 | }; |
| 984 | 1001 | |
| @@ -1097,8 +1114,8 @@ enum bpf_link_type { · 112 unmodified lines | ||
| 1097 | 1114 | /* When BPF ldimm64's insn[0].src_reg != 0 then this can have |
| 1098 | 1115 | * the following extensions: |
| 1099 | 1116 | * |
| 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 | |
| 1102 | 1119 | * insn[1].imm: 0 |
| 1103 | 1120 | * insn[0].off: 0 |
| 1104 | 1121 | * insn[1].off: 0 |
| @@ -1106,15 +1123,19 @@ enum bpf_link_type { · 1 unmodified line | ||
| 1106 | 1123 | * verifier type: CONST_PTR_TO_MAP |
| 1107 | 1124 | */ |
| 1108 | 1125 | #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 | |
| 1111 | 1130 | * insn[1].imm: offset into value |
| 1112 | 1131 | * insn[0].off: 0 |
| 1113 | 1132 | * insn[1].off: 0 |
| 1114 | 1133 | * ldimm64 rewrite: address of map[0]+offset |
| 1115 | 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 | 1139 | /* insn[0].src_reg: BPF_PSEUDO_BTF_ID |
| 1119 | 1140 | * insn[0].imm: kernel btd id of VAR |
| 1120 | 1141 | * insn[1].imm: 0 |
| @@ -1314,6 +1335,8 @@ union bpf_attr { · 193 unmodified lines | ||
| 1314 | 1335 | /* or valid module BTF object fd or 0 to attach to vmlinux */ |
| 1315 | 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 | 1342 | struct { /* anonymous struct used by BPF_OBJ_* commands */ |
| @@ -2534,8 +2557,12 @@ union bpf_attr { · 1214 unmodified lines | ||
| 2534 | 2557 | * The lower two bits of *flags* are used as the return code if |
| 2535 | 2558 | * the map lookup fails. This is so that the return value can be |
| 2536 | 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 | |
| 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. | |
| 2539 | 2566 | * |
| 2540 | 2567 | * See also **bpf_redirect**\ (), which only supports redirecting |
| 2541 | 2568 | * to an ifindex, but doesn't require a map to do so. |
| @@ -4735,6 +4762,24 @@ union bpf_attr { · 2193 unmodified lines | ||
| 4735 | 4762 | * be zero-terminated except when **str_size** is 0. |
| 4736 | 4763 | * |
| 4737 | 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 | 4784 | #define __BPF_FUNC_MAPPER(FN) \ |
| 4740 | 4785 | FN(unspec), \ |
| @@ -4903,6 +4948,9 @@ union bpf_attr { · 162 unmodified lines | ||
| 4903 | 4948 | FN(check_mtu), \ |
| 4904 | 4949 | FN(for_each_map_elem), \ |
| 4905 | 4950 | FN(snprintf), \ |
| 4951 | + FN(sys_bpf), \ | |
| 4952 | + FN(btf_find_by_name_kind), \ | |
| 4953 | + FN(sys_close), \ | |
| 4906 | 4954 | /* */ |
| 4907 | 4955 | |
| 4908 | 4956 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| @@ -5080,6 +5128,12 @@ enum { · 171 unmodified lines | ||
| 5080 | 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 | 5137 | #define __bpf_md_ptr(type, name) \ |
| 5084 | 5138 | union { \ |
| 5085 | 5139 | type name; \ |
| @@ -5364,6 +5418,20 @@ struct sk_reuseport_md { · 278 unmodified lines | ||
| 5364 | 5418 | __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */ |
| 5365 | 5419 | __u32 bind_inany; /* Is sock bound to an INANY address? */ |
| 5366 | 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 | 5437 | #define BPF_TAG_SIZE 8 |
| @@ -123,8 +123,8 @@ struct can_frame { · 122 unmodified lines | ||
| 123 | 123 | /* |
| 124 | 124 | * defined bits for canfd_frame.flags |
| 125 | 125 | * |
| 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 | |
| 128 | 128 | * the CAN controllers bitstream processor into the CAN FD mode which creates |
| 129 | 129 | * two new options within the CAN FD frame specification: |
| 130 | 130 | * |
| @@ -135,9 +135,18 @@ struct can_frame { · 4 unmodified lines | ||
| 135 | 135 | * controller only the CANFD_BRS bit is relevant for real CAN controllers when |
| 136 | 136 | * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make |
| 137 | 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 | 147 | #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ |
| 140 | 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 | 152 | * struct canfd_frame - CAN flexible data rate frame structure |
| @@ -126,6 +126,11 @@ enum devlink_command { · 125 unmodified lines | ||
| 126 | 126 | |
| 127 | 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 | 134 | /* add new commands above here */ |
| 130 | 135 | __DEVLINK_CMD_MAX, |
| 131 | 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 | 219 | enum devlink_param_cmode { |
| 210 | 220 | DEVLINK_PARAM_CMODE_RUNTIME, |
| 211 | 221 | DEVLINK_PARAM_CMODE_DRIVERINIT, |
| @@ -534,6 +544,13 @@ enum devlink_attr { · 322 unmodified lines | ||
| 534 | 544 | DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */ |
| 535 | 545 | |
| 536 | 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 | 554 | /* add new attributes above here, update the policy in devlink.c */ |
| 538 | 555 | |
| 539 | 556 | __DEVLINK_ATTR_MAX, |
| @@ -233,7 +233,7 @@ enum tunable_id { · 232 unmodified lines | ||
| 233 | 233 | ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ |
| 234 | 234 | /* |
| 235 | 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 | 238 | __ETHTOOL_TUNABLE_COUNT, |
| 239 | 239 | }; |
| @@ -297,7 +297,7 @@ enum phy_tunable_id { · 57 unmodified lines | ||
| 297 | 297 | ETHTOOL_PHY_EDPD, |
| 298 | 298 | /* |
| 299 | 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 | 302 | __ETHTOOL_PHY_TUNABLE_COUNT, |
| 303 | 303 | }; |
| @@ -675,7 +675,7 @@ enum { · 674 unmodified lines | ||
| 675 | 675 | ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */ |
| 676 | 676 | ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */ |
| 677 | 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 | 680 | __ETHTOOL_A_MODULE_EEPROM_CNT, |
| 681 | 681 | ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1) |
| @@ -20,7 +20,6 @@ · 19 unmodified lines | ||
| 20 | 20 | |
| 21 | 21 | #include <linux/types.h> |
| 22 | 22 | #include <asm/byteorder.h> |
| 23 | −#include <linux/in.h> | |
| 24 | 23 | #include <linux/if.h> |
| 25 | 24 | #include <linux/in6.h> |
| 26 | 25 | |
| @@ -154,7 +153,7 @@ struct icmp_ext_echo_iio { · 127 unmodified lines | ||
| 154 | 153 | struct { |
| 155 | 154 | struct icmp_ext_echo_ctype3_hdr ctype3_hdr; |
| 156 | 155 | union { |
| 157 | − struct in_addr ipv4_addr; | |
| 156 | + __be32 ipv4_addr; | |
| 158 | 157 | struct in6_addr ipv6_addr; |
| 159 | 158 | } ip_addr; |
| 160 | 159 | } addr; |
| @@ -627,6 +627,8 @@ enum { · 626 unmodified lines | ||
| 627 | 627 | MDBA_ROUTER_PATTR_UNSPEC, |
| 628 | 628 | MDBA_ROUTER_PATTR_TIMER, |
| 629 | 629 | MDBA_ROUTER_PATTR_TYPE, |
| 630 | + MDBA_ROUTER_PATTR_INET_TIMER, | |
| 631 | + MDBA_ROUTER_PATTR_INET6_TIMER, | |
| 630 | 632 | __MDBA_ROUTER_PATTR_MAX |
| 631 | 633 | }; |
| 632 | 634 | #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1) |
| @@ -341,6 +341,13 @@ enum { · 340 unmodified lines | ||
| 341 | 341 | IFLA_ALT_IFNAME, /* Alternative ifname */ |
| 342 | 342 | IFLA_PERM_ADDRESS, |
| 343 | 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 | 351 | __IFLA_MAX |
| 345 | 352 | }; |
| 346 | 353 | |
| @@ -1236,6 +1243,8 @@ enum { · 889 unmodified lines | ||
| 1236 | 1243 | #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1) |
| 1237 | 1244 | #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2) |
| 1238 | 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 | 1249 | enum { |
| 1241 | 1250 | IFLA_RMNET_UNSPEC, |
| @@ -105,6 +105,7 @@ struct mptcp_info { · 104 unmodified lines | ||
| 105 | 105 | __u64 mptcpi_rcv_nxt; |
| 106 | 106 | __u8 mptcpi_local_addr_used; |
| 107 | 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 | 813 | * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers |
| 814 | 814 | * @NFT_EXTHDR_OP_TCP: match against tcp options |
| 815 | 815 | * @NFT_EXTHDR_OP_IPV4: match against ipv4 options |
| 816 | + * @NFT_EXTHDR_OP_SCTP: match against sctp chunks | |
| 816 | 817 | */ |
| 817 | 818 | enum nft_exthdr_op { |
| 818 | 819 | NFT_EXTHDR_OP_IPV6, |
| 819 | 820 | NFT_EXTHDR_OP_TCPOPT, |
| 820 | 821 | NFT_EXTHDR_OP_IPV4, |
| 822 | + NFT_EXTHDR_OP_SCTP, | |
| 821 | 823 | __NFT_EXTHDR_OP_MAX |
| 822 | 824 | }; |
| 823 | 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 | 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 | 1214 | * enum nft_log_attributes - nf_tables log expression netlink attributes |
| 1198 | 1215 | * |
| @@ -60,7 +60,8 @@ struct nfgenmsg { · 59 unmodified lines | ||
| 60 | 60 | #define NFNL_SUBSYS_CTHELPER 9 |
| 61 | 61 | #define NFNL_SUBSYS_NFTABLES 10 |
| 62 | 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 | 66 | /* Reserved control nfnetlink messages */ |
| 66 | 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 | 91 | #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) |
| 92 | 92 | #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN) |
| 93 | 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 | 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 | 98 | #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ |
| 98 | 99 | (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ |
| 99 | 100 | (nlh)->nlmsg_len <= (len)) |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | ||
| 11 | 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> |
| 12 | 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> |
| 13 | 13 | * Copyright 2015-2017 Intel Deutschland GmbH |
| 14 | − * Copyright (C) 2018-2020 Intel Corporation | |
| 14 | + * Copyright (C) 2018-2021 Intel Corporation | |
| 15 | 15 | * |
| 16 | 16 | * Permission to use, copy, modify, and/or distribute this software for any |
| 17 | 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 | 3654 | * defined |
| 3655 | 3655 | * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16), |
| 3656 | 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 | 3659 | * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use |
| 3658 | 3660 | */ |
| 3659 | 3661 | enum nl80211_band_iftype_attr { |
| @@ -3665,6 +3667,7 @@ enum nl80211_band_iftype_attr { · 5 unmodified lines | ||
| 3665 | 3667 | NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, |
| 3666 | 3668 | NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, |
| 3667 | 3669 | NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, |
| 3670 | + NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS, | |
| 3668 | 3671 | |
| 3669 | 3672 | /* keep last */ |
| 3670 | 3673 | __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, |
| @@ -6912,6 +6915,9 @@ enum nl80211_peer_measurement_ftm_capa { · 3241 unmodified lines | ||
| 6912 | 6915 | * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only |
| 6913 | 6916 | * valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or |
| 6914 | 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 | 6922 | * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal |
| 6917 | 6923 | * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number |
| @@ -6931,6 +6937,7 @@ enum nl80211_peer_measurement_ftm_req { · 13 unmodified lines | ||
| 6931 | 6937 | NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, |
| 6932 | 6938 | NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, |
| 6933 | 6939 | NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK, |
| 6940 | + NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR, | |
| 6934 | 6941 | |
| 6935 | 6942 | /* keep last */ |
| 6936 | 6943 | NUM_NL80211_PMSR_FTM_REQ_ATTR, |
| @@ -141,6 +141,7 @@ typedef __s32 sctp_assoc_t; · 140 unmodified lines | ||
| 141 | 141 | #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 |
| 142 | 142 | #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE |
| 143 | 143 | #define SCTP_REMOTE_UDP_ENCAPS_PORT 132 |
| 144 | +#define SCTP_PLPMTUD_PROBE_INTERVAL 133 | |
| 144 | 145 | |
| 145 | 146 | /* PR-SCTP policies */ |
| 146 | 147 | #define SCTP_PR_SCTP_NONE 0x0000 |
| @@ -1213,4 +1214,11 @@ enum sctp_sched_type { · 1066 unmodified lines | ||
| 1213 | 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 | 1224 | #endif /* _UAPI_SCTP_H */ |
| @@ -64,6 +64,8 @@ enum { · 63 unmodified lines | ||
| 64 | 64 | SEG6_LOCAL_ACTION_END_AM = 14, |
| 65 | 65 | /* custom BPF action */ |
| 66 | 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 | 70 | __SEG6_LOCAL_ACTION_MAX, |
| 69 | 71 | }; |
| @@ -47,6 +47,8 @@ enum { · 46 unmodified lines | ||
| 47 | 47 | SMC_NETLINK_GET_LGR_SMCD, |
| 48 | 48 | SMC_NETLINK_GET_DEV_SMCD, |
| 49 | 49 | SMC_NETLINK_GET_DEV_SMCR, |
| 50 | + SMC_NETLINK_GET_STATS, | |
| 51 | + SMC_NETLINK_GET_FBACK_STATS, | |
| 50 | 52 | }; |
| 51 | 53 | |
| 52 | 54 | /* SMC_GENL_FAMILY top level attributes */ |
| @@ -58,6 +60,8 @@ enum { · 5 unmodified lines | ||
| 58 | 60 | SMC_GEN_LGR_SMCD, /* nest */ |
| 59 | 61 | SMC_GEN_DEV_SMCD, /* nest */ |
| 60 | 62 | SMC_GEN_DEV_SMCR, /* nest */ |
| 63 | + SMC_GEN_STATS, /* nest */ | |
| 64 | + SMC_GEN_FBACK_STATS, /* nest */ | |
| 61 | 65 | __SMC_GEN_MAX, |
| 62 | 66 | SMC_GEN_MAX = __SMC_GEN_MAX - 1 |
| 63 | 67 | }; |
| @@ -159,4 +163,83 @@ enum { · 95 unmodified lines | ||
| 159 | 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 | 245 | #endif /* _UAPI_LINUX_SMC_H */ |
| @@ -290,6 +290,8 @@ enum · 289 unmodified lines | ||
| 290 | 290 | LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */ |
| 291 | 291 | LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */ |
| 292 | 292 | LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ |
| 293 | + LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */ | |
| 294 | + LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */ | |
| 293 | 295 | __LINUX_MIB_MAX |
| 294 | 296 | }; |
| 295 | 297 | |
| @@ -38,6 +38,9 @@ · 37 unmodified lines | ||
| 38 | 38 | #include <linux/virtio_ids.h> |
| 39 | 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 | 44 | struct virtio_vsock_config { |
| 42 | 45 | __le64 guest_cid; |
| 43 | 46 | } __attribute__((packed)); |
| @@ -65,6 +68,7 @@ struct virtio_vsock_hdr { · 21 unmodified lines | ||
| 65 | 68 | |
| 66 | 69 | enum virtio_vsock_type { |
| 67 | 70 | VIRTIO_VSOCK_TYPE_STREAM = 1, |
| 71 | + VIRTIO_VSOCK_TYPE_SEQPACKET = 2, | |
| 68 | 72 | }; |
| 69 | 73 | |
| 70 | 74 | enum virtio_vsock_op { |
| @@ -91,4 +95,9 @@ enum virtio_vsock_shutdown { · 20 unmodified lines | ||
| 91 | 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 | 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_ */ | |