History

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

Pull networking updates from Jakub Kicinski: "Core & protocols: - Wrap datapath globals into net_aligned_data, to avoid false sharing - Preserve MSG_ZEROCOPY in forwarding (e.g. out of a container) - Add SO_INQ and SCM_INQ support to AF_UNIX - Add SIOCINQ support to AF_VSOCK - Add TCP_MAXSEG sockopt to MPTCP - Add IPv6 force_forwarding sysctl to enable forwarding per interface - Make TCP validation of whether packet fully fits in the receive window and the rcv_buf more strict. With increased use of HW aggregation a single "packet" can be multiple 100s of kB - Add MSG_MORE flag to optimize large TCP transmissions via sockmap, improves latency up to 33% for sockmap users - Convert TCP send queue handling from tasklet to BH workque - Improve BPF iteration over TCP sockets to see each socket exactly once - Remove obsolete and unused TCP RFC3517/RFC6675 loss recovery code - Support enabling kernel threads for NAPI processing on per-NAPI instance basis rather than a whole device. Fully stop the kernel NAPI thread when threaded NAPI gets disabled. Previously thread would stick around until ifdown due to tricky synchronization - Allow multicast routing to take effect on locally-generated packets - Add output interface argument for End.X in segment routing - MCTP: add support for gateway routing, improve bind() handling - Don't require rtnl_lock when fetching an IPv6 neighbor over Netlink - Add a new neighbor flag ("extern_valid"), which cedes refresh responsibilities to userspace. This is needed for EVPN multi-homing where a neighbor entry for a multi-homed host needs to be synced across all the VTEPs among which the host is multi-homed - Support NUD_PERMANENT for proxy neighbor entries - Add a new queuing discipline for IETF RFC9332 DualQ Coupled AQM - Add sequence numbers to netconsole messages. Unregister netconsole's console when all net targets are removed. Code refactoring. Add a number of selftests - Align IPSec inbound SA lookup to RFC 4301. Only SPI and protocol should be used for an inbound SA lookup - Support inspecting ref_tracker state via DebugFS - Don't force bonding advertisement frames tx to ~333 ms boundaries. Add broadcast_neighbor option to send ARP/ND on all bonded links - Allow providing upcall pid for the 'execute' command in openvswitch - Remove DCCP support from Netfilter's conntrack - Disallow multiple packet duplications in the queuing layer - Prevent use of deprecated iptables code on PREEMPT_RT Driver API: - Support RSS and hashing configuration over ethtool Netlink - Add dedicated ethtool callbacks for getting and setting hashing fields - Add support for power budget evaluation strategy in PSE / Power-over-Ethernet. Generate Netlink events for overcurrent etc - Support DPLL phase offset monitoring across all device inputs. Support providing clock reference and SYNC over separate DPLL inputs - Support traffic classes in devlink rate API for bandwidth management - Remove rtnl_lock dependency from UDP tunnel port configuration Device drivers: - Add a new Broadcom driver for 800G Ethernet (bnge) - Add a standalone driver for Microchip ZL3073x DPLL - Remove IBM's NETIUCV device driver - Ethernet high-speed NICs: - Broadcom (bnxt): - support zero-copy Tx of DMABUF memory - take page size into account for page pool recycling rings - Intel (100G, ice, idpf): - idpf: XDP and AF_XDP support preparations - idpf: add flow steering - add link_down_events statistic - clean up the TSPLL code - preparations for live VM migration - nVidia/Mellanox: - support zero-copy Rx/Tx interfaces (DMABUF and io_uring) - optimize context memory usage for matchers - expose serial numbers in devlink info - support PCIe congestion metrics - Meta (fbnic): - add 25G, 50G, and 100G link modes to phylink - support dumping FW logs - Marvell/Cavium: - support for CN20K generation of the Octeon chips - Amazon: - add HW clock (without timestamping, just hypervisor time access) - Ethernet virtual: - VirtIO net: - support segmentation of UDP-tunnel-encapsulated packets - Google (gve): - support packet timestamping and clock synchronization - Microsoft vNIC: - add handler for device-originated servicing events - allow dynamic MSI-X vector allocation - support Tx bandwidth clamping - Ethernet NICs consumer, and embedded: - AMD: - amd-xgbe: hardware timestamping and PTP clock support - Broadcom integrated MACs (bcmgenet, bcmasp): - use napi_complete_done() return value to support NAPI polling - add support for re-starting auto-negotiation - Broadcom switches (b53): - support BCM5325 switches - add bcm63xx EPHY power control - Synopsys (stmmac): - lots of code refactoring and cleanups - TI: - icssg-prueth: read firmware-names from device tree - icssg: PRP offload support - Microchip: - lan78xx: convert to PHYLINK for improved PHY and MAC management - ksz: add KSZ8463 switch support - Intel: - support similar queue priority scheme in multi-queue and time-sensitive networking (taprio) - support packet pre-emption in both - RealTek (r8169): - enable EEE at 5Gbps on RTL8126 - Airoha: - add PPPoE offload support - MDIO bus controller for Airoha AN7583 - Ethernet PHYs: - support for the IPQ5018 internal GE PHY - micrel KSZ9477 switch-integrated PHYs: - add MDI/MDI-X control support - add RX error counters - add cable test support - add Signal Quality Indicator (SQI) reporting - dp83tg720: improve reset handling and reduce link recovery time - support bcm54811 (and its MII-Lite interface type) - air_en8811h: support resume/suspend - support PHY counters for QCA807x and QCA808x - support WoL for QCA807x - CAN drivers: - rcar_canfd: support for Transceiver Delay Compensation - kvaser: report FW versions via devlink dev info - WiFi: - extended regulatory info support (6 GHz) - add statistics and beacon monitor for Multi-Link Operation (MLO) - support S1G aggregation, improve S1G support - add Radio Measurement action fields - support per-radio RTS threshold - some work around how FIPS affects wifi, which was wrong (RC4 is used by TKIP, not only WEP) - improvements for unsolicited probe response handling - WiFi drivers: - RealTek (rtw88): - IBSS mode for SDIO devices - RealTek (rtw89): - BT coexistence for MLO/WiFi7 - concurrent station + P2P support - support for USB devices RTL8851BU/RTL8852BU - Intel (iwlwifi): - use embedded PNVM in (to be released) FW images to fix compatibility issues - many cleanups (unused FW APIs, PCIe code, WoWLAN) - some FIPS interoperability - MediaTek (mt76): - firmware recovery improvements - more MLO work - Qualcomm/Atheros (ath12k): - fix scan on multi-radio devices - more EHT/Wi-Fi 7 features - encapsulation/decapsulation offload - Broadcom (brcm80211): - support SDIO 43751 device - Bluetooth: - hci_event: add support for handling LE BIG Sync Lost event - ISO: add socket option to report packet seqnum via CMSG - ISO: support SCM_TIMESTAMPING for ISO TS - Bluetooth drivers: - intel_pcie: support Function Level Reset - nxpuart: add support for 4M baudrate - nxpuart: implement powerup sequence, reset, FW dump, and FW loading" * tag 'net-next-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1742 commits) dpll: zl3073x: Fix build failure selftests: bpf: fix legacy netfilter options ipv6: annotate data-races around rt->fib6_nsiblings ipv6: fix possible infinite loop in fib6_info_uses_dev() ipv6: prevent infinite loop in rt6_nlmsg_size() ipv6: add a retry logic in net6_rt_notify() vrf: Drop existing dst reference in vrf_ip6_input_dst net/sched: taprio: align entry index attr validation with mqprio net: fsl_pq_mdio: use dev_err_probe selftests: rtnetlink.sh: remove esp4_offload after test vsock: remove unnecessary null check in vsock_getname() igb: xsk: solve negative overflow of nb_pkts in zerocopy mode stmmac: xsk: fix negative overflow of budget in zerocopy mode dt-bindings: ieee802154: Convert at86rf230.txt yaml format net: dsa: microchip: Disable PTP function of KSZ8463 net: dsa: microchip: Setup fiber ports for KSZ8463 net: dsa: microchip: Write switch MAC address differently for KSZ8463 net: dsa: microchip: Use different registers for KSZ8463 net: dsa: microchip: Add KSZ8463 switch support to KSZ DSA driver dt-bindings: net: dsa: microchip: Add KSZ8463 switch support ...

Linus Torvalds committed 1 year ago

Commit 8be4d312 parents 4b290aa fa582ca1904 files · +83427 −29453Browse files

Showing the changes to include/uapi/linux (25 of 1904 files). Show all

Unified · Split

25 files
  1. include/uapi/linux/devlink.h +16 −0
  2. include/uapi/linux/dpll.h +13 −0
  3. include/uapi/linux/ethtool.h +2 −2
  4. include/uapi/linux/ethtool_netlink.h +0 −2
  5. include/uapi/linux/ethtool_netlink_generated.h +83 −0
  6. include/uapi/linux/handshake.h +1 −0
  7. include/uapi/linux/if_link.h +2 −0
  8. include/uapi/linux/if_tun.h +9 −0
  9. include/uapi/linux/if_xdp.h +1 −0
  10. include/uapi/linux/in6.h +2 −2
  11. include/uapi/linux/ipv6.h +1 −0
  12. include/uapi/linux/mctp.h +8 −0
  13. include/uapi/linux/neighbour.h +5 −0
  14. include/uapi/linux/net_dropmon.h +0 −7
  15. include/uapi/linux/netconf.h +1 −0
  16. include/uapi/linux/netdev.h +6 −0
  17. include/uapi/linux/netfilter/nfnetlink_hook.h +2 −0
  18. include/uapi/linux/nl80211.h +60 −1
  19. include/uapi/linux/openvswitch.h +6 −0
  20. include/uapi/linux/pkt_sched.h +68 −0
  21. include/uapi/linux/snmp.h +1 −0
  22. include/uapi/linux/sysctl.h +1 −0
  23. include/uapi/linux/vhost.h +7 −0
  24. include/uapi/linux/vhost_types.h +5 −0
  25. include/uapi/linux/virtio_net.h +33 −0
include/uapi/linux/devlink.h+16−0
@@ -221,6 +221,11 @@ enum devlink_port_flavour { · 220 unmodified lines
221221 */
222222 };
223223
224+/* IEEE 802.1Qaz standard supported values. */
225+
226+#define DEVLINK_RATE_TCS_MAX 8
227+#define DEVLINK_RATE_TC_INDEX_MAX (DEVLINK_RATE_TCS_MAX - 1)
228+
224229 enum devlink_rate_type {
225230 DEVLINK_RATE_TYPE_LEAF,
226231 DEVLINK_RATE_TYPE_NODE,
@@ -629,6 +634,8 @@ enum devlink_attr { · 402 unmodified lines
629634
630635 DEVLINK_ATTR_REGION_DIRECT, /* flag */
631636
637+ DEVLINK_ATTR_RATE_TC_BWS, /* nested */
638+
632639 /* Add new attributes above here, update the spec in
633640 * Documentation/netlink/specs/devlink.yaml and re-generate
634641 * net/devlink/netlink_gen.c.
@@ -638,6 +645,15 @@ enum devlink_attr { · 3 unmodified lines
638645 DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
639646 };
640647
648+enum devlink_rate_tc_attr {
649+ DEVLINK_RATE_TC_ATTR_UNSPEC,
650+ DEVLINK_RATE_TC_ATTR_INDEX, /* u8 */
651+ DEVLINK_RATE_TC_ATTR_BW, /* u32 */
652+
653+ __DEVLINK_RATE_TC_ATTR_MAX,
654+ DEVLINK_RATE_TC_ATTR_MAX = __DEVLINK_RATE_TC_ATTR_MAX - 1
655+};
656+
641657 /* Mapping between internal resource described by the field and system
642658 * structure
643659 */
include/uapi/linux/dpll.h+13−0
@@ -192,6 +192,17 @@ enum dpll_pin_capabilities { · 191 unmodified lines
192192
193193 #define DPLL_PHASE_OFFSET_DIVIDER 1000
194194
195+/**
196+ * enum dpll_feature_state - Allow control (enable/disable) and status checking
197+ * over features.
198+ * @DPLL_FEATURE_STATE_DISABLE: feature shall be disabled
199+ * @DPLL_FEATURE_STATE_ENABLE: feature shall be enabled
200+ */
201+enum dpll_feature_state {
202+ DPLL_FEATURE_STATE_DISABLE,
203+ DPLL_FEATURE_STATE_ENABLE,
204+};
205+
195206 enum dpll_a {
196207 DPLL_A_ID = 1,
197208 DPLL_A_MODULE_NAME,
@@ -204,6 +215,7 @@ enum dpll_a { · 6 unmodified lines
204215 DPLL_A_TYPE,
205216 DPLL_A_LOCK_STATUS_ERROR,
206217 DPLL_A_CLOCK_QUALITY_LEVEL,
218+ DPLL_A_PHASE_OFFSET_MONITOR,
207219
208220 __DPLL_A_MAX,
209221 DPLL_A_MAX = (__DPLL_A_MAX - 1)
@@ -237,6 +249,7 @@ enum dpll_a_pin { · 27 unmodified lines
237249 DPLL_A_PIN_ESYNC_FREQUENCY,
238250 DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED,
239251 DPLL_A_PIN_ESYNC_PULSE,
252+ DPLL_A_PIN_REFERENCE_SYNC,
240253
241254 __DPLL_A_PIN_MAX,
242255 DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)
include/uapi/linux/ethtool.h+2−2
@@ -2314,7 +2314,7 @@ enum { · 2313 unmodified lines
23142314 IPV6_USER_FLOW = 0x0e, /* spec only (usr_ip6_spec; nfc only) */
23152315 IPV4_FLOW = 0x10, /* hash only */
23162316 IPV6_FLOW = 0x11, /* hash only */
2317− ETHER_FLOW = 0x12, /* spec only (ether_spec) */
2317+ ETHER_FLOW = 0x12, /* hash or spec (ether_spec) */
23182318
23192319 /* Used for GTP-U IPv4 and IPv6.
23202320 * The format of GTP packets only includes
@@ -2371,7 +2371,7 @@ enum { · 50 unmodified lines
23712371 /* Flag to enable RSS spreading of traffic matching rule (nfc only) */
23722372 #define FLOW_RSS 0x20000000
23732373
2374−/* L3-L4 network traffic flow hash options */
2374+/* L2-L4 network traffic flow hash options */
23752375 #define RXH_L2DA (1 << 1)
23762376 #define RXH_VLAN (1 << 2)
23772377 #define RXH_L3_PROTO (1 << 3)
include/uapi/linux/ethtool_netlink.h+0−2
@@ -208,6 +208,4 @@ enum { · 207 unmodified lines
208208 ETHTOOL_A_STATS_PHY_MAX = (__ETHTOOL_A_STATS_PHY_CNT - 1)
209209 };
210210
211−#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
212−
213211 #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */
include/uapi/linux/ethtool_netlink_generated.h+83−0
@@ -49,6 +49,34 @@ enum hwtstamp_source { · 48 unmodified lines
4949 HWTSTAMP_SOURCE_PHYLIB,
5050 };
5151
52+/**
53+ * enum ethtool_pse_event - PSE event list for the PSE controller
54+ * @ETHTOOL_PSE_EVENT_OVER_CURRENT: PSE output current is too high
55+ * @ETHTOOL_PSE_EVENT_OVER_TEMP: PSE in over temperature state
56+ * @ETHTOOL_C33_PSE_EVENT_DETECTION: detection process occur on the PSE. IEEE
57+ * 802.3-2022 33.2.5 and 145.2.6 PSE detection of PDs. IEEE 802.3-202
58+ * 30.9.1.1.5 aPSEPowerDetectionStatus
59+ * @ETHTOOL_C33_PSE_EVENT_CLASSIFICATION: classification process occur on the
60+ * PSE. IEEE 802.3-2022 33.2.6 and 145.2.8 classification of PDs mutual
61+ * identification. IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification.
62+ * @ETHTOOL_C33_PSE_EVENT_DISCONNECTION: PD has been disconnected on the PSE.
63+ * IEEE 802.3-2022 33.3.8 and 145.3.9 PD Maintain Power Signature. IEEE
64+ * 802.3-2022 33.5.1.2.9 MPS Absent. IEEE 802.3-2022 30.9.1.1.20
65+ * aPSEMPSAbsentCounter.
66+ * @ETHTOOL_PSE_EVENT_OVER_BUDGET: PSE turned off due to over budget situation
67+ * @ETHTOOL_PSE_EVENT_SW_PW_CONTROL_ERROR: PSE faced an error managing the
68+ * power control from software
69+ */
70+enum ethtool_pse_event {
71+ ETHTOOL_PSE_EVENT_OVER_CURRENT = 1,
72+ ETHTOOL_PSE_EVENT_OVER_TEMP = 2,
73+ ETHTOOL_C33_PSE_EVENT_DETECTION = 4,
74+ ETHTOOL_C33_PSE_EVENT_CLASSIFICATION = 8,
75+ ETHTOOL_C33_PSE_EVENT_DISCONNECTION = 16,
76+ ETHTOOL_PSE_EVENT_OVER_BUDGET = 32,
77+ ETHTOOL_PSE_EVENT_SW_PW_CONTROL_ERROR = 64,
78+};
79+
5280 enum {
5381 ETHTOOL_A_HEADER_UNSPEC,
5482 ETHTOOL_A_HEADER_DEV_INDEX,
@@ -642,11 +670,47 @@ enum { · 587 unmodified lines
642670 ETHTOOL_A_C33_PSE_EXT_SUBSTATE,
643671 ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT,
644672 ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES,
673+ ETHTOOL_A_PSE_PW_D_ID,
674+ ETHTOOL_A_PSE_PRIO_MAX,
675+ ETHTOOL_A_PSE_PRIO,
645676
646677 __ETHTOOL_A_PSE_CNT,
647678 ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
648679 };
649680
681+enum {
682+ ETHTOOL_A_FLOW_ETHER = 1,
683+ ETHTOOL_A_FLOW_IP4,
684+ ETHTOOL_A_FLOW_IP6,
685+ ETHTOOL_A_FLOW_TCP4,
686+ ETHTOOL_A_FLOW_TCP6,
687+ ETHTOOL_A_FLOW_UDP4,
688+ ETHTOOL_A_FLOW_UDP6,
689+ ETHTOOL_A_FLOW_SCTP4,
690+ ETHTOOL_A_FLOW_SCTP6,
691+ ETHTOOL_A_FLOW_AH4,
692+ ETHTOOL_A_FLOW_AH6,
693+ ETHTOOL_A_FLOW_ESP4,
694+ ETHTOOL_A_FLOW_ESP6,
695+ ETHTOOL_A_FLOW_AH_ESP4,
696+ ETHTOOL_A_FLOW_AH_ESP6,
697+ ETHTOOL_A_FLOW_GTPU4,
698+ ETHTOOL_A_FLOW_GTPU6,
699+ ETHTOOL_A_FLOW_GTPC4,
700+ ETHTOOL_A_FLOW_GTPC6,
701+ ETHTOOL_A_FLOW_GTPC_TEID4,
702+ ETHTOOL_A_FLOW_GTPC_TEID6,
703+ ETHTOOL_A_FLOW_GTPU_EH4,
704+ ETHTOOL_A_FLOW_GTPU_EH6,
705+ ETHTOOL_A_FLOW_GTPU_UL4,
706+ ETHTOOL_A_FLOW_GTPU_UL6,
707+ ETHTOOL_A_FLOW_GTPU_DL4,
708+ ETHTOOL_A_FLOW_GTPU_DL6,
709+
710+ __ETHTOOL_A_FLOW_CNT,
711+ ETHTOOL_A_FLOW_MAX = (__ETHTOOL_A_FLOW_CNT - 1)
712+};
713+
650714 enum {
651715 ETHTOOL_A_RSS_UNSPEC,
652716 ETHTOOL_A_RSS_HEADER,
@@ -656,6 +720,7 @@ enum { · 3 unmodified lines
656720 ETHTOOL_A_RSS_HKEY,
657721 ETHTOOL_A_RSS_INPUT_XFRM,
658722 ETHTOOL_A_RSS_START_CONTEXT,
723+ ETHTOOL_A_RSS_FLOW_HASH,
659724
660725 __ETHTOOL_A_RSS_CNT,
661726 ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1)
@@ -718,6 +783,14 @@ enum { · 56 unmodified lines
718783 ETHTOOL_A_TSCONFIG_MAX = (__ETHTOOL_A_TSCONFIG_CNT - 1)
719784 };
720785
786+enum {
787+ ETHTOOL_A_PSE_NTF_HEADER = 1,
788+ ETHTOOL_A_PSE_NTF_EVENTS,
789+
790+ __ETHTOOL_A_PSE_NTF_CNT,
791+ ETHTOOL_A_PSE_NTF_MAX = (__ETHTOOL_A_PSE_NTF_CNT - 1)
792+};
793+
721794 enum {
722795 ETHTOOL_MSG_USER_NONE = 0,
723796 ETHTOOL_MSG_STRSET_GET = 1,
@@ -767,6 +840,9 @@ enum { · 43 unmodified lines
767840 ETHTOOL_MSG_PHY_GET,
768841 ETHTOOL_MSG_TSCONFIG_GET,
769842 ETHTOOL_MSG_TSCONFIG_SET,
843+ ETHTOOL_MSG_RSS_SET,
844+ ETHTOOL_MSG_RSS_CREATE_ACT,
845+ ETHTOOL_MSG_RSS_DELETE_ACT,
770846
771847 __ETHTOOL_MSG_USER_CNT,
772848 ETHTOOL_MSG_USER_MAX = (__ETHTOOL_MSG_USER_CNT - 1)
@@ -822,9 +898,16 @@ enum { · 49 unmodified lines
822898 ETHTOOL_MSG_PHY_NTF,
823899 ETHTOOL_MSG_TSCONFIG_GET_REPLY,
824900 ETHTOOL_MSG_TSCONFIG_SET_REPLY,
901+ ETHTOOL_MSG_PSE_NTF,
902+ ETHTOOL_MSG_RSS_NTF,
903+ ETHTOOL_MSG_RSS_CREATE_ACT_REPLY,
904+ ETHTOOL_MSG_RSS_CREATE_NTF,
905+ ETHTOOL_MSG_RSS_DELETE_NTF,
825906
826907 __ETHTOOL_MSG_KERNEL_CNT,
827908 ETHTOOL_MSG_KERNEL_MAX = (__ETHTOOL_MSG_KERNEL_CNT - 1)
828909 };
829910
911+#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
912+
830913 #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_GENERATED_H */
include/uapi/linux/handshake.h+1−0
@@ -45,6 +45,7 @@ enum { · 44 unmodified lines
4545 HANDSHAKE_A_ACCEPT_PEER_IDENTITY,
4646 HANDSHAKE_A_ACCEPT_CERTIFICATE,
4747 HANDSHAKE_A_ACCEPT_PEERNAME,
48+ HANDSHAKE_A_ACCEPT_KEYRING,
4849
4950 __HANDSHAKE_A_ACCEPT_MAX,
5051 HANDSHAKE_A_ACCEPT_MAX = (__HANDSHAKE_A_ACCEPT_MAX - 1)
include/uapi/linux/if_link.h+2−0
@@ -1398,6 +1398,7 @@ enum { · 1397 unmodified lines
13981398 IFLA_VXLAN_LOCALBYPASS,
13991399 IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
14001400 IFLA_VXLAN_RESERVED_BITS,
1401+ IFLA_VXLAN_MC_ROUTE,
14011402 __IFLA_VXLAN_MAX
14021403 };
14031404 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -1534,6 +1535,7 @@ enum { · 130 unmodified lines
15341535 IFLA_BOND_MISSED_MAX,
15351536 IFLA_BOND_NS_IP6_TARGET,
15361537 IFLA_BOND_COUPLED_CONTROL,
1538+ IFLA_BOND_BROADCAST_NEIGH,
15371539 __IFLA_BOND_MAX,
15381540 };
15391541
include/uapi/linux/if_tun.h+9−0
@@ -93,6 +93,15 @@ · 92 unmodified lines
9393 #define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */
9494 #define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */
9595
96+/* I can handle TSO/USO for UDP tunneled packets */
97+#define TUN_F_UDP_TUNNEL_GSO 0x080
98+
99+/*
100+ * I can handle TSO/USO for UDP tunneled packets requiring csum offload for
101+ * the outer header
102+ */
103+#define TUN_F_UDP_TUNNEL_GSO_CSUM 0x100
104+
96105 /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
97106 #define TUN_PKT_STRIP 0x0001
98107 struct tun_pi {
include/uapi/linux/if_xdp.h+1−0
@@ -79,6 +79,7 @@ struct xdp_mmap_offsets { · 78 unmodified lines
7979 #define XDP_UMEM_COMPLETION_RING 6
8080 #define XDP_STATISTICS 7
8181 #define XDP_OPTIONS 8
82+#define XDP_MAX_TX_SKB_BUDGET 9
8283
8384 struct xdp_umem_reg {
8485 __u64 addr; /* Start of packet data area */
include/uapi/linux/in6.h+2−2
@@ -152,7 +152,6 @@ struct in6_flowlabel_req { · 151 unmodified lines
152152 /*
153153 * IPV6 socket options
154154 */
155−#if __UAPI_DEF_IPV6_OPTIONS
156155 #define IPV6_ADDRFORM 1
157156 #define IPV6_2292PKTINFO 2
158157 #define IPV6_2292HOPOPTS 3
@@ -169,8 +168,10 @@ struct in6_flowlabel_req { · 10 unmodified lines
169168 #define IPV6_MULTICAST_IF 17
170169 #define IPV6_MULTICAST_HOPS 18
171170 #define IPV6_MULTICAST_LOOP 19
171+#if __UAPI_DEF_IPV6_OPTIONS
172172 #define IPV6_ADD_MEMBERSHIP 20
173173 #define IPV6_DROP_MEMBERSHIP 21
174+#endif
174175 #define IPV6_ROUTER_ALERT 22
175176 #define IPV6_MTU_DISCOVER 23
176177 #define IPV6_MTU 24
@@ -203,7 +204,6 @@ struct in6_flowlabel_req { · 26 unmodified lines
203204 #define IPV6_IPSEC_POLICY 34
204205 #define IPV6_XFRM_POLICY 35
205206 #define IPV6_HDRINCL 36
206−#endif
207207
208208 /*
209209 * Multicast:
include/uapi/linux/ipv6.h+1−0
@@ -199,6 +199,7 @@ enum { · 198 unmodified lines
199199 DEVCONF_NDISC_EVICT_NOCARRIER,
200200 DEVCONF_ACCEPT_UNTRACKED_NA,
201201 DEVCONF_ACCEPT_RA_MIN_LFT,
202+ DEVCONF_FORCE_FORWARDING,
202203 DEVCONF_MAX
203204 };
204205
include/uapi/linux/mctp.h+8−0
@@ -37,6 +37,14 @@ struct sockaddr_mctp_ext { · 36 unmodified lines
3737 __u8 smctp_haddr[MAX_ADDR_LEN];
3838 };
3939
40+/* A "fully qualified" MCTP address, which includes the system-local network ID,
41+ * required to uniquely resolve a routable EID.
42+ */
43+struct mctp_fq_addr {
44+ unsigned int net;
45+ mctp_eid_t eid;
46+};
47+
4048 #define MCTP_NET_ANY 0x0
4149
4250 #define MCTP_ADDR_NULL 0x00
include/uapi/linux/neighbour.h+5−0
@@ -54,6 +54,7 @@ enum { · 53 unmodified lines
5454 /* Extended flags under NDA_FLAGS_EXT: */
5555 #define NTF_EXT_MANAGED (1 << 0)
5656 #define NTF_EXT_LOCKED (1 << 1)
57+#define NTF_EXT_EXT_VALIDATED (1 << 2)
5758
5859 /*
5960 * Neighbor Cache Entry States.
@@ -92,6 +93,10 @@ enum { · 32 unmodified lines
9293 * bridge in response to a host trying to communicate via a locked bridge port
9394 * with MAB enabled. Their purpose is to notify user space that a host requires
9495 * authentication.
96+ *
97+ * NTF_EXT_EXT_VALIDATED flagged neighbor entries were externally validated by
98+ * a user space control plane. The kernel will not remove or invalidate them,
99+ * but it can probe them and notify user space when they become reachable.
95100 */
96101
97102 struct nda_cacheinfo {
include/uapi/linux/net_dropmon.h+0−7
@@ -10,13 +10,6 @@ struct net_dm_drop_point { · 9 unmodified lines
1010 __u32 count;
1111 };
1212
13−#define is_drop_point_hw(x) do {\
14− int ____i, ____j;\
15− for (____i = 0; ____i < 8; i ____i++)\
16− ____j |= x[____i];\
17− ____j;\
18−} while (0)
19−
2013 #define NET_DM_CFG_VERSION 0
2114 #define NET_DM_CFG_ALERT_COUNT 1
2215 #define NET_DM_CFG_ALERT_DELAY 2
include/uapi/linux/netconf.h+1−0
@@ -19,6 +19,7 @@ enum { · 18 unmodified lines
1919 NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
2020 NETCONFA_INPUT,
2121 NETCONFA_BC_FORWARDING,
22+ NETCONFA_FORCE_FORWARDING,
2223 __NETCONFA_MAX
2324 };
2425 #define NETCONFA_MAX (__NETCONFA_MAX - 1)
include/uapi/linux/netdev.h+6−0
@@ -77,6 +77,11 @@ enum netdev_qstats_scope { · 76 unmodified lines
7777 NETDEV_QSTATS_SCOPE_QUEUE = 1,
7878 };
7979
80+enum netdev_napi_threaded {
81+ NETDEV_NAPI_THREADED_DISABLED,
82+ NETDEV_NAPI_THREADED_ENABLED,
83+};
84+
8085 enum {
8186 NETDEV_A_DEV_IFINDEX = 1,
8287 NETDEV_A_DEV_PAD,
@@ -134,6 +139,7 @@ enum { · 51 unmodified lines
134139 NETDEV_A_NAPI_DEFER_HARD_IRQS,
135140 NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT,
136141 NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT,
142+ NETDEV_A_NAPI_THREADED,
137143
138144 __NETDEV_A_NAPI_MAX,
139145 NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
include/uapi/linux/netfilter/nfnetlink_hook.h+2−0
@@ -61,10 +61,12 @@ enum nfnl_hook_chain_desc_attributes { · 60 unmodified lines
6161 *
6262 * @NFNL_HOOK_TYPE_NFTABLES: nf_tables base chain
6363 * @NFNL_HOOK_TYPE_BPF: bpf program
64+ * @NFNL_HOOK_TYPE_NFT_FLOWTABLE: nf_tables flowtable
6465 */
6566 enum nfnl_hook_chaintype {
6667 NFNL_HOOK_TYPE_NFTABLES = 0x1,
6768 NFNL_HOOK_TYPE_BPF,
69+ NFNL_HOOK_TYPE_NFT_FLOWTABLE,
6870 };
6971
7072 /**
include/uapi/linux/nl80211.h+60−1
@@ -1330,7 +1330,15 @@ · 1329 unmodified lines
13301330 * TID to Link mapping for downlink/uplink traffic.
13311331 *
13321332 * @NL80211_CMD_ASSOC_MLO_RECONF: For a non-AP MLD station, request to
1333− * add/remove links to/from the association.
1333+ * add/remove links to/from the association. To indicate link
1334+ * reconfiguration request results from the driver, this command is also
1335+ * used as an event to notify userspace about the added links information.
1336+ * For notifying the removed links information, the existing
1337+ * %NL80211_CMD_LINKS_REMOVED command is used. This command is also used to
1338+ * notify userspace about newly added links for the current connection in
1339+ * case of AP-initiated link recommendation requests, received via
1340+ * a BTM (BSS Transition Management) request or a link reconfig notify
1341+ * frame, where the driver handles the link recommendation offload.
13341342 *
13351343 * @NL80211_CMD_EPCS_CFG: EPCS configuration for a station. Used by userland to
13361344 * control EPCS configuration. Used to notify userland on the current state
@@ -2899,6 +2907,27 @@ enum nl80211_commands { · 1562 unmodified lines
28992907 * APs Support". Drivers may set additional flags that they support
29002908 * in the kernel or device.
29012909 *
2910+ * @NL80211_ATTR_WIPHY_RADIO_INDEX: (int) Integer attribute denoting the index
2911+ * of the radio in interest. Internally a value of -1 is used to
2912+ * indicate that the radio id is not given in user-space. This means
2913+ * that all the attributes are applicable to all the radios. If there is
2914+ * a radio index provided in user-space, the attributes will be
2915+ * applicable to that specific radio only. If the radio id is greater
2916+ * thank the number of radios, error denoting invalid value is returned.
2917+ *
2918+ * @NL80211_ATTR_S1G_LONG_BEACON_PERIOD: (u8) Integer attribute that represents
2919+ * the number of beacon intervals between each long beacon transmission
2920+ * for an S1G BSS with short beaconing enabled. This is a required
2921+ * attribute for initialising an S1G short beaconing BSS. When updating
2922+ * the short beacon data, this is not required. It has a minimum value of
2923+ * 2 (i.e 2 beacon intervals).
2924+ *
2925+ * @NL80211_ATTR_S1G_SHORT_BEACON: Nested attribute containing the short beacon
2926+ * head and tail used to set or update the short beacon templates. When
2927+ * bringing up a new interface, %NL80211_ATTR_S1G_LONG_BEACON_PERIOD is
2928+ * required alongside this attribute. Refer to
2929+ * @enum nl80211_s1g_short_beacon_attrs for the attribute definitions.
2930+ *
29022931 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
29032932 * @NL80211_ATTR_MAX: highest attribute number currently defined
29042933 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3456,6 +3485,11 @@ enum nl80211_attrs { · 551 unmodified lines
34563485
34573486 NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
34583487
3488+ NL80211_ATTR_WIPHY_RADIO_INDEX,
3489+
3490+ NL80211_ATTR_S1G_LONG_BEACON_PERIOD,
3491+ NL80211_ATTR_S1G_SHORT_BEACON,
3492+
34593493 /* add attributes here, update the policy in nl80211.c */
34603494
34613495 __NL80211_ATTR_AFTER_LAST,
@@ -8088,6 +8122,7 @@ enum nl80211_ap_settings_flags { · 4626 unmodified lines
80888122 * and contains attributes defined in &enum nl80211_if_combination_attrs.
80898123 * @NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK: bitmask (u32) of antennas
80908124 * connected to this radio.
8125+ * @NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD: RTS threshold (u32) of this radio.
80918126 *
80928127 * @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal
80938128 * @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute
@@ -8099,6 +8134,7 @@ enum nl80211_wiphy_radio_attrs { · 5 unmodified lines
80998134 NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE,
81008135 NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION,
81018136 NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK,
8137+ NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD,
81028138
81038139 /* keep last */
81048140 __NL80211_WIPHY_RADIO_ATTR_LAST,
@@ -8128,4 +8164,27 @@ enum nl80211_wiphy_radio_freq_range { · 23 unmodified lines
81288164 NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1,
81298165 };
81308166
8167+/**
8168+ * enum nl80211_s1g_short_beacon_attrs - S1G short beacon data
8169+ *
8170+ * @__NL80211_S1G_SHORT_BEACON_ATTR_INVALID: Invalid
8171+ *
8172+ * @NL80211_S1G_SHORT_BEACON_ATTR_HEAD: Short beacon head (binary).
8173+ * @NL80211_S1G_SHORT_BEACON_ATTR_TAIL: Short beacon tail (binary).
8174+ *
8175+ * @__NL80211_S1G_SHORT_BEACON_ATTR_LAST: Internal
8176+ * @NL80211_S1G_SHORT_BEACON_ATTR_MAX: Highest attribute
8177+ */
8178+enum nl80211_s1g_short_beacon_attrs {
8179+ __NL80211_S1G_SHORT_BEACON_ATTR_INVALID,
8180+
8181+ NL80211_S1G_SHORT_BEACON_ATTR_HEAD,
8182+ NL80211_S1G_SHORT_BEACON_ATTR_TAIL,
8183+
8184+ /* keep last */
8185+ __NL80211_S1G_SHORT_BEACON_ATTR_LAST,
8186+ NL80211_S1G_SHORT_BEACON_ATTR_MAX =
8187+ __NL80211_S1G_SHORT_BEACON_ATTR_LAST - 1
8188+};
8189+
81318190 #endif /* __LINUX_NL80211_H */
include/uapi/linux/openvswitch.h+6−0
@@ -186,6 +186,11 @@ enum ovs_packet_cmd { · 185 unmodified lines
186186 * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
187187 * size.
188188 * @OVS_PACKET_ATTR_HASH: Packet hash info (e.g. hash, sw_hash and l4_hash in skb).
189+ * @OVS_PACKET_ATTR_UPCALL_PID: Netlink PID to use for upcalls while
190+ * processing %OVS_PACKET_CMD_EXECUTE. Takes precedence over all other ways
191+ * to determine the Netlink PID including %OVS_USERSPACE_ATTR_PID,
192+ * %OVS_DP_ATTR_UPCALL_PID, %OVS_DP_ATTR_PER_CPU_PIDS and the
193+ * %OVS_VPORT_ATTR_UPCALL_PID.
189194 *
190195 * These attributes follow the &struct ovs_header within the Generic Netlink
191196 * payload for %OVS_PACKET_* commands.
@@ -205,6 +210,7 @@ enum ovs_packet_attr { · 13 unmodified lines
205210 OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
206211 OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
207212 OVS_PACKET_ATTR_HASH, /* Packet hash. */
213+ OVS_PACKET_ATTR_UPCALL_PID, /* u32 Netlink PID. */
208214 __OVS_PACKET_ATTR_MAX
209215 };
210216
include/uapi/linux/pkt_sched.h+68−0
@@ -1211,4 +1211,72 @@ enum { · 1210 unmodified lines
12111211
12121212 #define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
12131213
1214+/* DUALPI2 */
1215+enum tc_dualpi2_drop_overload {
1216+ TC_DUALPI2_DROP_OVERLOAD_OVERFLOW = 0,
1217+ TC_DUALPI2_DROP_OVERLOAD_DROP = 1,
1218+ __TCA_DUALPI2_DROP_OVERLOAD_MAX,
1219+};
1220+#define TCA_DUALPI2_DROP_OVERLOAD_MAX (__TCA_DUALPI2_DROP_OVERLOAD_MAX - 1)
1221+
1222+enum tc_dualpi2_drop_early {
1223+ TC_DUALPI2_DROP_EARLY_DROP_DEQUEUE = 0,
1224+ TC_DUALPI2_DROP_EARLY_DROP_ENQUEUE = 1,
1225+ __TCA_DUALPI2_DROP_EARLY_MAX,
1226+};
1227+#define TCA_DUALPI2_DROP_EARLY_MAX (__TCA_DUALPI2_DROP_EARLY_MAX - 1)
1228+
1229+enum tc_dualpi2_ecn_mask {
1230+ TC_DUALPI2_ECN_MASK_L4S_ECT = 1,
1231+ TC_DUALPI2_ECN_MASK_CLA_ECT = 2,
1232+ TC_DUALPI2_ECN_MASK_ANY_ECT = 3,
1233+ __TCA_DUALPI2_ECN_MASK_MAX,
1234+};
1235+#define TCA_DUALPI2_ECN_MASK_MAX (__TCA_DUALPI2_ECN_MASK_MAX - 1)
1236+
1237+enum tc_dualpi2_split_gso {
1238+ TC_DUALPI2_SPLIT_GSO_NO_SPLIT_GSO = 0,
1239+ TC_DUALPI2_SPLIT_GSO_SPLIT_GSO = 1,
1240+ __TCA_DUALPI2_SPLIT_GSO_MAX,
1241+};
1242+#define TCA_DUALPI2_SPLIT_GSO_MAX (__TCA_DUALPI2_SPLIT_GSO_MAX - 1)
1243+
1244+enum {
1245+ TCA_DUALPI2_UNSPEC,
1246+ TCA_DUALPI2_LIMIT, /* Packets */
1247+ TCA_DUALPI2_MEMORY_LIMIT, /* Bytes */
1248+ TCA_DUALPI2_TARGET, /* us */
1249+ TCA_DUALPI2_TUPDATE, /* us */
1250+ TCA_DUALPI2_ALPHA, /* Hz scaled up by 256 */
1251+ TCA_DUALPI2_BETA, /* Hz scaled up by 256 */
1252+ TCA_DUALPI2_STEP_THRESH_PKTS, /* Step threshold in packets */
1253+ TCA_DUALPI2_STEP_THRESH_US, /* Step threshold in microseconds */
1254+ TCA_DUALPI2_MIN_QLEN_STEP, /* Minimum qlen to apply STEP_THRESH */
1255+ TCA_DUALPI2_COUPLING, /* Coupling factor between queues */
1256+ TCA_DUALPI2_DROP_OVERLOAD, /* Whether to drop on overload */
1257+ TCA_DUALPI2_DROP_EARLY, /* Whether to drop on enqueue */
1258+ TCA_DUALPI2_C_PROTECTION, /* Percentage */
1259+ TCA_DUALPI2_ECN_MASK, /* L4S queue classification mask */
1260+ TCA_DUALPI2_SPLIT_GSO, /* Split GSO packets at enqueue */
1261+ TCA_DUALPI2_PAD,
1262+ __TCA_DUALPI2_MAX
1263+};
1264+
1265+#define TCA_DUALPI2_MAX (__TCA_DUALPI2_MAX - 1)
1266+
1267+struct tc_dualpi2_xstats {
1268+ __u32 prob; /* current probability */
1269+ __u32 delay_c; /* current delay in C queue */
1270+ __u32 delay_l; /* current delay in L queue */
1271+ __u32 packets_in_c; /* number of packets enqueued in C queue */
1272+ __u32 packets_in_l; /* number of packets enqueued in L queue */
1273+ __u32 maxq; /* maximum queue size */
1274+ __u32 ecn_mark; /* packets marked with ecn*/
1275+ __u32 step_marks; /* ECN marks due to the step AQM */
1276+ __s32 credit; /* current c_protection credit */
1277+ __u32 memory_used; /* Memory used by both queues */
1278+ __u32 max_memory_used; /* Maximum used memory */
1279+ __u32 memory_limit; /* Memory limit of both queues */
1280+};
1281+
12141282 #endif
include/uapi/linux/snmp.h+1−0
@@ -186,6 +186,7 @@ enum · 185 unmodified lines
186186 LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
187187 LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
188188 LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
189+ LINUX_MIB_BEYOND_WINDOW, /* BeyondWindow */
189190 LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
190191 LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
191192 LINUX_MIB_PAWS_TW_REJECTED, /* PAWSTimewait */
include/uapi/linux/sysctl.h+1−0
@@ -573,6 +573,7 @@ enum { · 572 unmodified lines
573573 NET_IPV6_ACCEPT_RA_FROM_LOCAL=26,
574574 NET_IPV6_ACCEPT_RA_RT_INFO_MIN_PLEN=27,
575575 NET_IPV6_RA_DEFRTR_METRIC=28,
576+ NET_IPV6_FORCE_FORWARDING=29,
576577 __NET_IPV6_MAX
577578 };
578579
include/uapi/linux/vhost.h+7−0
@@ -235,4 +235,11 @@ · 234 unmodified lines
235235 */
236236 #define VHOST_VDPA_GET_VRING_SIZE _IOWR(VHOST_VIRTIO, 0x82, \
237237 struct vhost_vring_state)
238+
239+/* Extended features manipulation */
240+#define VHOST_GET_FEATURES_ARRAY _IOR(VHOST_VIRTIO, 0x83, \
241+ struct vhost_features_array)
242+#define VHOST_SET_FEATURES_ARRAY _IOW(VHOST_VIRTIO, 0x83, \
243+ struct vhost_features_array)
244+
238245 #endif
include/uapi/linux/vhost_types.h+5−0
@@ -110,6 +110,11 @@ struct vhost_msg_v2 { · 109 unmodified lines
110110 };
111111 };
112112
113+struct vhost_features_array {
114+ __u64 count; /* number of entries present in features array */
115+ __u64 features[] __counted_by(count);
116+};
117+
113118 struct vhost_memory_region {
114119 __u64 guest_phys_addr;
115120 __u64 memory_size; /* bytes */
include/uapi/linux/virtio_net.h+33−0
@@ -70,6 +70,28 @@ · 69 unmodified lines
7070 * with the same MAC.
7171 */
7272 #define VIRTIO_NET_F_SPEED_DUPLEX 63 /* Device set linkspeed and duplex */
73+#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO 65 /* Driver can receive
74+ * GSO-over-UDP-tunnel packets
75+ */
76+#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM 66 /* Driver handles
77+ * GSO-over-UDP-tunnel
78+ * packets with partial csum
79+ * for the outer header
80+ */
81+#define VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO 67 /* Device can receive
82+ * GSO-over-UDP-tunnel packets
83+ */
84+#define VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO_CSUM 68 /* Device handles
85+ * GSO-over-UDP-tunnel
86+ * packets with partial csum
87+ * for the outer header
88+ */
89+
90+/* Offloads bits corresponding to VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO{,_CSUM}
91+ * features
92+ */
93+#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_MAPPED 46
94+#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM_MAPPED 47
7395
7496 #ifndef VIRTIO_NET_NO_LEGACY
7597 #define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
@@ -131,12 +153,17 @@ struct virtio_net_hdr_v1 { · 55 unmodified lines
131153 #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
132154 #define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
133155 #define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */
156+#define VIRTIO_NET_HDR_F_UDP_TUNNEL_CSUM 8 /* UDP tunnel csum offload */
134157 __u8 flags;
135158 #define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
136159 #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
137160 #define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
138161 #define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
139162 #define VIRTIO_NET_HDR_GSO_UDP_L4 5 /* GSO frame, IPv4& IPv6 UDP (USO) */
163+#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 0x20 /* UDPv4 tunnel present */
164+#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6 0x40 /* UDPv6 tunnel present */
165+#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL (VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 | \
166+ VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6)
140167 #define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
141168 __u8 gso_type;
142169 __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
@@ -181,6 +208,12 @@ struct virtio_net_hdr_v1_hash { · 38 unmodified lines
181208 __le16 padding;
182209 };
183210
211+struct virtio_net_hdr_v1_hash_tunnel {
212+ struct virtio_net_hdr_v1_hash hash_hdr;
213+ __le16 outer_th_offset;
214+ __le16 inner_nh_offset;
215+};
216+
184217 #ifndef VIRTIO_NET_NO_LEGACY
185218 /* This header comes first in the scatter-gather list.
186219 * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must