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
...
This commit is contained in:
@@ -147,6 +147,9 @@
|
||||
|
||||
#define SO_PASSRIGHTS 83
|
||||
|
||||
#define SO_INQ 84
|
||||
#define SCM_INQ SO_INQ
|
||||
|
||||
#if !defined(__KERNEL__)
|
||||
|
||||
#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
|
||||
|
||||
@@ -221,6 +221,11 @@ enum devlink_port_flavour {
|
||||
*/
|
||||
};
|
||||
|
||||
/* IEEE 802.1Qaz standard supported values. */
|
||||
|
||||
#define DEVLINK_RATE_TCS_MAX 8
|
||||
#define DEVLINK_RATE_TC_INDEX_MAX (DEVLINK_RATE_TCS_MAX - 1)
|
||||
|
||||
enum devlink_rate_type {
|
||||
DEVLINK_RATE_TYPE_LEAF,
|
||||
DEVLINK_RATE_TYPE_NODE,
|
||||
@@ -629,6 +634,8 @@ enum devlink_attr {
|
||||
|
||||
DEVLINK_ATTR_REGION_DIRECT, /* flag */
|
||||
|
||||
DEVLINK_ATTR_RATE_TC_BWS, /* nested */
|
||||
|
||||
/* Add new attributes above here, update the spec in
|
||||
* Documentation/netlink/specs/devlink.yaml and re-generate
|
||||
* net/devlink/netlink_gen.c.
|
||||
@@ -638,6 +645,15 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
|
||||
};
|
||||
|
||||
enum devlink_rate_tc_attr {
|
||||
DEVLINK_RATE_TC_ATTR_UNSPEC,
|
||||
DEVLINK_RATE_TC_ATTR_INDEX, /* u8 */
|
||||
DEVLINK_RATE_TC_ATTR_BW, /* u32 */
|
||||
|
||||
__DEVLINK_RATE_TC_ATTR_MAX,
|
||||
DEVLINK_RATE_TC_ATTR_MAX = __DEVLINK_RATE_TC_ATTR_MAX - 1
|
||||
};
|
||||
|
||||
/* Mapping between internal resource described by the field and system
|
||||
* structure
|
||||
*/
|
||||
|
||||
@@ -192,6 +192,17 @@ enum dpll_pin_capabilities {
|
||||
|
||||
#define DPLL_PHASE_OFFSET_DIVIDER 1000
|
||||
|
||||
/**
|
||||
* enum dpll_feature_state - Allow control (enable/disable) and status checking
|
||||
* over features.
|
||||
* @DPLL_FEATURE_STATE_DISABLE: feature shall be disabled
|
||||
* @DPLL_FEATURE_STATE_ENABLE: feature shall be enabled
|
||||
*/
|
||||
enum dpll_feature_state {
|
||||
DPLL_FEATURE_STATE_DISABLE,
|
||||
DPLL_FEATURE_STATE_ENABLE,
|
||||
};
|
||||
|
||||
enum dpll_a {
|
||||
DPLL_A_ID = 1,
|
||||
DPLL_A_MODULE_NAME,
|
||||
@@ -204,6 +215,7 @@ enum dpll_a {
|
||||
DPLL_A_TYPE,
|
||||
DPLL_A_LOCK_STATUS_ERROR,
|
||||
DPLL_A_CLOCK_QUALITY_LEVEL,
|
||||
DPLL_A_PHASE_OFFSET_MONITOR,
|
||||
|
||||
__DPLL_A_MAX,
|
||||
DPLL_A_MAX = (__DPLL_A_MAX - 1)
|
||||
@@ -237,6 +249,7 @@ enum dpll_a_pin {
|
||||
DPLL_A_PIN_ESYNC_FREQUENCY,
|
||||
DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED,
|
||||
DPLL_A_PIN_ESYNC_PULSE,
|
||||
DPLL_A_PIN_REFERENCE_SYNC,
|
||||
|
||||
__DPLL_A_PIN_MAX,
|
||||
DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)
|
||||
|
||||
@@ -2314,7 +2314,7 @@ enum {
|
||||
IPV6_USER_FLOW = 0x0e, /* spec only (usr_ip6_spec; nfc only) */
|
||||
IPV4_FLOW = 0x10, /* hash only */
|
||||
IPV6_FLOW = 0x11, /* hash only */
|
||||
ETHER_FLOW = 0x12, /* spec only (ether_spec) */
|
||||
ETHER_FLOW = 0x12, /* hash or spec (ether_spec) */
|
||||
|
||||
/* Used for GTP-U IPv4 and IPv6.
|
||||
* The format of GTP packets only includes
|
||||
@@ -2371,7 +2371,7 @@ enum {
|
||||
/* Flag to enable RSS spreading of traffic matching rule (nfc only) */
|
||||
#define FLOW_RSS 0x20000000
|
||||
|
||||
/* L3-L4 network traffic flow hash options */
|
||||
/* L2-L4 network traffic flow hash options */
|
||||
#define RXH_L2DA (1 << 1)
|
||||
#define RXH_VLAN (1 << 2)
|
||||
#define RXH_L3_PROTO (1 << 3)
|
||||
|
||||
@@ -208,6 +208,4 @@ enum {
|
||||
ETHTOOL_A_STATS_PHY_MAX = (__ETHTOOL_A_STATS_PHY_CNT - 1)
|
||||
};
|
||||
|
||||
#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
|
||||
|
||||
#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */
|
||||
|
||||
@@ -49,6 +49,34 @@ enum hwtstamp_source {
|
||||
HWTSTAMP_SOURCE_PHYLIB,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_pse_event - PSE event list for the PSE controller
|
||||
* @ETHTOOL_PSE_EVENT_OVER_CURRENT: PSE output current is too high
|
||||
* @ETHTOOL_PSE_EVENT_OVER_TEMP: PSE in over temperature state
|
||||
* @ETHTOOL_C33_PSE_EVENT_DETECTION: detection process occur on the PSE. IEEE
|
||||
* 802.3-2022 33.2.5 and 145.2.6 PSE detection of PDs. IEEE 802.3-202
|
||||
* 30.9.1.1.5 aPSEPowerDetectionStatus
|
||||
* @ETHTOOL_C33_PSE_EVENT_CLASSIFICATION: classification process occur on the
|
||||
* PSE. IEEE 802.3-2022 33.2.6 and 145.2.8 classification of PDs mutual
|
||||
* identification. IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification.
|
||||
* @ETHTOOL_C33_PSE_EVENT_DISCONNECTION: PD has been disconnected on the PSE.
|
||||
* IEEE 802.3-2022 33.3.8 and 145.3.9 PD Maintain Power Signature. IEEE
|
||||
* 802.3-2022 33.5.1.2.9 MPS Absent. IEEE 802.3-2022 30.9.1.1.20
|
||||
* aPSEMPSAbsentCounter.
|
||||
* @ETHTOOL_PSE_EVENT_OVER_BUDGET: PSE turned off due to over budget situation
|
||||
* @ETHTOOL_PSE_EVENT_SW_PW_CONTROL_ERROR: PSE faced an error managing the
|
||||
* power control from software
|
||||
*/
|
||||
enum ethtool_pse_event {
|
||||
ETHTOOL_PSE_EVENT_OVER_CURRENT = 1,
|
||||
ETHTOOL_PSE_EVENT_OVER_TEMP = 2,
|
||||
ETHTOOL_C33_PSE_EVENT_DETECTION = 4,
|
||||
ETHTOOL_C33_PSE_EVENT_CLASSIFICATION = 8,
|
||||
ETHTOOL_C33_PSE_EVENT_DISCONNECTION = 16,
|
||||
ETHTOOL_PSE_EVENT_OVER_BUDGET = 32,
|
||||
ETHTOOL_PSE_EVENT_SW_PW_CONTROL_ERROR = 64,
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_HEADER_UNSPEC,
|
||||
ETHTOOL_A_HEADER_DEV_INDEX,
|
||||
@@ -642,11 +670,47 @@ enum {
|
||||
ETHTOOL_A_C33_PSE_EXT_SUBSTATE,
|
||||
ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT,
|
||||
ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES,
|
||||
ETHTOOL_A_PSE_PW_D_ID,
|
||||
ETHTOOL_A_PSE_PRIO_MAX,
|
||||
ETHTOOL_A_PSE_PRIO,
|
||||
|
||||
__ETHTOOL_A_PSE_CNT,
|
||||
ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_FLOW_ETHER = 1,
|
||||
ETHTOOL_A_FLOW_IP4,
|
||||
ETHTOOL_A_FLOW_IP6,
|
||||
ETHTOOL_A_FLOW_TCP4,
|
||||
ETHTOOL_A_FLOW_TCP6,
|
||||
ETHTOOL_A_FLOW_UDP4,
|
||||
ETHTOOL_A_FLOW_UDP6,
|
||||
ETHTOOL_A_FLOW_SCTP4,
|
||||
ETHTOOL_A_FLOW_SCTP6,
|
||||
ETHTOOL_A_FLOW_AH4,
|
||||
ETHTOOL_A_FLOW_AH6,
|
||||
ETHTOOL_A_FLOW_ESP4,
|
||||
ETHTOOL_A_FLOW_ESP6,
|
||||
ETHTOOL_A_FLOW_AH_ESP4,
|
||||
ETHTOOL_A_FLOW_AH_ESP6,
|
||||
ETHTOOL_A_FLOW_GTPU4,
|
||||
ETHTOOL_A_FLOW_GTPU6,
|
||||
ETHTOOL_A_FLOW_GTPC4,
|
||||
ETHTOOL_A_FLOW_GTPC6,
|
||||
ETHTOOL_A_FLOW_GTPC_TEID4,
|
||||
ETHTOOL_A_FLOW_GTPC_TEID6,
|
||||
ETHTOOL_A_FLOW_GTPU_EH4,
|
||||
ETHTOOL_A_FLOW_GTPU_EH6,
|
||||
ETHTOOL_A_FLOW_GTPU_UL4,
|
||||
ETHTOOL_A_FLOW_GTPU_UL6,
|
||||
ETHTOOL_A_FLOW_GTPU_DL4,
|
||||
ETHTOOL_A_FLOW_GTPU_DL6,
|
||||
|
||||
__ETHTOOL_A_FLOW_CNT,
|
||||
ETHTOOL_A_FLOW_MAX = (__ETHTOOL_A_FLOW_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_RSS_UNSPEC,
|
||||
ETHTOOL_A_RSS_HEADER,
|
||||
@@ -656,6 +720,7 @@ enum {
|
||||
ETHTOOL_A_RSS_HKEY,
|
||||
ETHTOOL_A_RSS_INPUT_XFRM,
|
||||
ETHTOOL_A_RSS_START_CONTEXT,
|
||||
ETHTOOL_A_RSS_FLOW_HASH,
|
||||
|
||||
__ETHTOOL_A_RSS_CNT,
|
||||
ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1)
|
||||
@@ -718,6 +783,14 @@ enum {
|
||||
ETHTOOL_A_TSCONFIG_MAX = (__ETHTOOL_A_TSCONFIG_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_PSE_NTF_HEADER = 1,
|
||||
ETHTOOL_A_PSE_NTF_EVENTS,
|
||||
|
||||
__ETHTOOL_A_PSE_NTF_CNT,
|
||||
ETHTOOL_A_PSE_NTF_MAX = (__ETHTOOL_A_PSE_NTF_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
ETHTOOL_MSG_USER_NONE = 0,
|
||||
ETHTOOL_MSG_STRSET_GET = 1,
|
||||
@@ -767,6 +840,9 @@ enum {
|
||||
ETHTOOL_MSG_PHY_GET,
|
||||
ETHTOOL_MSG_TSCONFIG_GET,
|
||||
ETHTOOL_MSG_TSCONFIG_SET,
|
||||
ETHTOOL_MSG_RSS_SET,
|
||||
ETHTOOL_MSG_RSS_CREATE_ACT,
|
||||
ETHTOOL_MSG_RSS_DELETE_ACT,
|
||||
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
ETHTOOL_MSG_USER_MAX = (__ETHTOOL_MSG_USER_CNT - 1)
|
||||
@@ -822,9 +898,16 @@ enum {
|
||||
ETHTOOL_MSG_PHY_NTF,
|
||||
ETHTOOL_MSG_TSCONFIG_GET_REPLY,
|
||||
ETHTOOL_MSG_TSCONFIG_SET_REPLY,
|
||||
ETHTOOL_MSG_PSE_NTF,
|
||||
ETHTOOL_MSG_RSS_NTF,
|
||||
ETHTOOL_MSG_RSS_CREATE_ACT_REPLY,
|
||||
ETHTOOL_MSG_RSS_CREATE_NTF,
|
||||
ETHTOOL_MSG_RSS_DELETE_NTF,
|
||||
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
ETHTOOL_MSG_KERNEL_MAX = (__ETHTOOL_MSG_KERNEL_CNT - 1)
|
||||
};
|
||||
|
||||
#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
|
||||
|
||||
#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_GENERATED_H */
|
||||
|
||||
@@ -45,6 +45,7 @@ enum {
|
||||
HANDSHAKE_A_ACCEPT_PEER_IDENTITY,
|
||||
HANDSHAKE_A_ACCEPT_CERTIFICATE,
|
||||
HANDSHAKE_A_ACCEPT_PEERNAME,
|
||||
HANDSHAKE_A_ACCEPT_KEYRING,
|
||||
|
||||
__HANDSHAKE_A_ACCEPT_MAX,
|
||||
HANDSHAKE_A_ACCEPT_MAX = (__HANDSHAKE_A_ACCEPT_MAX - 1)
|
||||
|
||||
@@ -1398,6 +1398,7 @@ enum {
|
||||
IFLA_VXLAN_LOCALBYPASS,
|
||||
IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
|
||||
IFLA_VXLAN_RESERVED_BITS,
|
||||
IFLA_VXLAN_MC_ROUTE,
|
||||
__IFLA_VXLAN_MAX
|
||||
};
|
||||
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
||||
@@ -1534,6 +1535,7 @@ enum {
|
||||
IFLA_BOND_MISSED_MAX,
|
||||
IFLA_BOND_NS_IP6_TARGET,
|
||||
IFLA_BOND_COUPLED_CONTROL,
|
||||
IFLA_BOND_BROADCAST_NEIGH,
|
||||
__IFLA_BOND_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -93,6 +93,15 @@
|
||||
#define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */
|
||||
#define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */
|
||||
|
||||
/* I can handle TSO/USO for UDP tunneled packets */
|
||||
#define TUN_F_UDP_TUNNEL_GSO 0x080
|
||||
|
||||
/*
|
||||
* I can handle TSO/USO for UDP tunneled packets requiring csum offload for
|
||||
* the outer header
|
||||
*/
|
||||
#define TUN_F_UDP_TUNNEL_GSO_CSUM 0x100
|
||||
|
||||
/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
|
||||
#define TUN_PKT_STRIP 0x0001
|
||||
struct tun_pi {
|
||||
|
||||
@@ -79,6 +79,7 @@ struct xdp_mmap_offsets {
|
||||
#define XDP_UMEM_COMPLETION_RING 6
|
||||
#define XDP_STATISTICS 7
|
||||
#define XDP_OPTIONS 8
|
||||
#define XDP_MAX_TX_SKB_BUDGET 9
|
||||
|
||||
struct xdp_umem_reg {
|
||||
__u64 addr; /* Start of packet data area */
|
||||
|
||||
@@ -152,7 +152,6 @@ struct in6_flowlabel_req {
|
||||
/*
|
||||
* IPV6 socket options
|
||||
*/
|
||||
#if __UAPI_DEF_IPV6_OPTIONS
|
||||
#define IPV6_ADDRFORM 1
|
||||
#define IPV6_2292PKTINFO 2
|
||||
#define IPV6_2292HOPOPTS 3
|
||||
@@ -169,8 +168,10 @@ struct in6_flowlabel_req {
|
||||
#define IPV6_MULTICAST_IF 17
|
||||
#define IPV6_MULTICAST_HOPS 18
|
||||
#define IPV6_MULTICAST_LOOP 19
|
||||
#if __UAPI_DEF_IPV6_OPTIONS
|
||||
#define IPV6_ADD_MEMBERSHIP 20
|
||||
#define IPV6_DROP_MEMBERSHIP 21
|
||||
#endif
|
||||
#define IPV6_ROUTER_ALERT 22
|
||||
#define IPV6_MTU_DISCOVER 23
|
||||
#define IPV6_MTU 24
|
||||
@@ -203,7 +204,6 @@ struct in6_flowlabel_req {
|
||||
#define IPV6_IPSEC_POLICY 34
|
||||
#define IPV6_XFRM_POLICY 35
|
||||
#define IPV6_HDRINCL 36
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Multicast:
|
||||
|
||||
@@ -199,6 +199,7 @@ enum {
|
||||
DEVCONF_NDISC_EVICT_NOCARRIER,
|
||||
DEVCONF_ACCEPT_UNTRACKED_NA,
|
||||
DEVCONF_ACCEPT_RA_MIN_LFT,
|
||||
DEVCONF_FORCE_FORWARDING,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -37,6 +37,14 @@ struct sockaddr_mctp_ext {
|
||||
__u8 smctp_haddr[MAX_ADDR_LEN];
|
||||
};
|
||||
|
||||
/* A "fully qualified" MCTP address, which includes the system-local network ID,
|
||||
* required to uniquely resolve a routable EID.
|
||||
*/
|
||||
struct mctp_fq_addr {
|
||||
unsigned int net;
|
||||
mctp_eid_t eid;
|
||||
};
|
||||
|
||||
#define MCTP_NET_ANY 0x0
|
||||
|
||||
#define MCTP_ADDR_NULL 0x00
|
||||
|
||||
@@ -54,6 +54,7 @@ enum {
|
||||
/* Extended flags under NDA_FLAGS_EXT: */
|
||||
#define NTF_EXT_MANAGED (1 << 0)
|
||||
#define NTF_EXT_LOCKED (1 << 1)
|
||||
#define NTF_EXT_EXT_VALIDATED (1 << 2)
|
||||
|
||||
/*
|
||||
* Neighbor Cache Entry States.
|
||||
@@ -92,6 +93,10 @@ enum {
|
||||
* bridge in response to a host trying to communicate via a locked bridge port
|
||||
* with MAB enabled. Their purpose is to notify user space that a host requires
|
||||
* authentication.
|
||||
*
|
||||
* NTF_EXT_EXT_VALIDATED flagged neighbor entries were externally validated by
|
||||
* a user space control plane. The kernel will not remove or invalidate them,
|
||||
* but it can probe them and notify user space when they become reachable.
|
||||
*/
|
||||
|
||||
struct nda_cacheinfo {
|
||||
|
||||
@@ -10,13 +10,6 @@ struct net_dm_drop_point {
|
||||
__u32 count;
|
||||
};
|
||||
|
||||
#define is_drop_point_hw(x) do {\
|
||||
int ____i, ____j;\
|
||||
for (____i = 0; ____i < 8; i ____i++)\
|
||||
____j |= x[____i];\
|
||||
____j;\
|
||||
} while (0)
|
||||
|
||||
#define NET_DM_CFG_VERSION 0
|
||||
#define NET_DM_CFG_ALERT_COUNT 1
|
||||
#define NET_DM_CFG_ALERT_DELAY 2
|
||||
|
||||
@@ -19,6 +19,7 @@ enum {
|
||||
NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
NETCONFA_INPUT,
|
||||
NETCONFA_BC_FORWARDING,
|
||||
NETCONFA_FORCE_FORWARDING,
|
||||
__NETCONFA_MAX
|
||||
};
|
||||
#define NETCONFA_MAX (__NETCONFA_MAX - 1)
|
||||
|
||||
@@ -77,6 +77,11 @@ enum netdev_qstats_scope {
|
||||
NETDEV_QSTATS_SCOPE_QUEUE = 1,
|
||||
};
|
||||
|
||||
enum netdev_napi_threaded {
|
||||
NETDEV_NAPI_THREADED_DISABLED,
|
||||
NETDEV_NAPI_THREADED_ENABLED,
|
||||
};
|
||||
|
||||
enum {
|
||||
NETDEV_A_DEV_IFINDEX = 1,
|
||||
NETDEV_A_DEV_PAD,
|
||||
@@ -134,6 +139,7 @@ enum {
|
||||
NETDEV_A_NAPI_DEFER_HARD_IRQS,
|
||||
NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT,
|
||||
NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT,
|
||||
NETDEV_A_NAPI_THREADED,
|
||||
|
||||
__NETDEV_A_NAPI_MAX,
|
||||
NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
|
||||
|
||||
@@ -61,10 +61,12 @@ enum nfnl_hook_chain_desc_attributes {
|
||||
*
|
||||
* @NFNL_HOOK_TYPE_NFTABLES: nf_tables base chain
|
||||
* @NFNL_HOOK_TYPE_BPF: bpf program
|
||||
* @NFNL_HOOK_TYPE_NFT_FLOWTABLE: nf_tables flowtable
|
||||
*/
|
||||
enum nfnl_hook_chaintype {
|
||||
NFNL_HOOK_TYPE_NFTABLES = 0x1,
|
||||
NFNL_HOOK_TYPE_BPF,
|
||||
NFNL_HOOK_TYPE_NFT_FLOWTABLE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1330,7 +1330,15 @@
|
||||
* TID to Link mapping for downlink/uplink traffic.
|
||||
*
|
||||
* @NL80211_CMD_ASSOC_MLO_RECONF: For a non-AP MLD station, request to
|
||||
* add/remove links to/from the association.
|
||||
* add/remove links to/from the association. To indicate link
|
||||
* reconfiguration request results from the driver, this command is also
|
||||
* used as an event to notify userspace about the added links information.
|
||||
* For notifying the removed links information, the existing
|
||||
* %NL80211_CMD_LINKS_REMOVED command is used. This command is also used to
|
||||
* notify userspace about newly added links for the current connection in
|
||||
* case of AP-initiated link recommendation requests, received via
|
||||
* a BTM (BSS Transition Management) request or a link reconfig notify
|
||||
* frame, where the driver handles the link recommendation offload.
|
||||
*
|
||||
* @NL80211_CMD_EPCS_CFG: EPCS configuration for a station. Used by userland to
|
||||
* control EPCS configuration. Used to notify userland on the current state
|
||||
@@ -2899,6 +2907,27 @@ enum nl80211_commands {
|
||||
* APs Support". Drivers may set additional flags that they support
|
||||
* in the kernel or device.
|
||||
*
|
||||
* @NL80211_ATTR_WIPHY_RADIO_INDEX: (int) Integer attribute denoting the index
|
||||
* of the radio in interest. Internally a value of -1 is used to
|
||||
* indicate that the radio id is not given in user-space. This means
|
||||
* that all the attributes are applicable to all the radios. If there is
|
||||
* a radio index provided in user-space, the attributes will be
|
||||
* applicable to that specific radio only. If the radio id is greater
|
||||
* thank the number of radios, error denoting invalid value is returned.
|
||||
*
|
||||
* @NL80211_ATTR_S1G_LONG_BEACON_PERIOD: (u8) Integer attribute that represents
|
||||
* the number of beacon intervals between each long beacon transmission
|
||||
* for an S1G BSS with short beaconing enabled. This is a required
|
||||
* attribute for initialising an S1G short beaconing BSS. When updating
|
||||
* the short beacon data, this is not required. It has a minimum value of
|
||||
* 2 (i.e 2 beacon intervals).
|
||||
*
|
||||
* @NL80211_ATTR_S1G_SHORT_BEACON: Nested attribute containing the short beacon
|
||||
* head and tail used to set or update the short beacon templates. When
|
||||
* bringing up a new interface, %NL80211_ATTR_S1G_LONG_BEACON_PERIOD is
|
||||
* required alongside this attribute. Refer to
|
||||
* @enum nl80211_s1g_short_beacon_attrs for the attribute definitions.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -3456,6 +3485,11 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
|
||||
|
||||
NL80211_ATTR_WIPHY_RADIO_INDEX,
|
||||
|
||||
NL80211_ATTR_S1G_LONG_BEACON_PERIOD,
|
||||
NL80211_ATTR_S1G_SHORT_BEACON,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -8088,6 +8122,7 @@ enum nl80211_ap_settings_flags {
|
||||
* and contains attributes defined in &enum nl80211_if_combination_attrs.
|
||||
* @NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK: bitmask (u32) of antennas
|
||||
* connected to this radio.
|
||||
* @NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD: RTS threshold (u32) of this radio.
|
||||
*
|
||||
* @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal
|
||||
* @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute
|
||||
@@ -8099,6 +8134,7 @@ enum nl80211_wiphy_radio_attrs {
|
||||
NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE,
|
||||
NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION,
|
||||
NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK,
|
||||
NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_WIPHY_RADIO_ATTR_LAST,
|
||||
@@ -8128,4 +8164,27 @@ enum nl80211_wiphy_radio_freq_range {
|
||||
NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_s1g_short_beacon_attrs - S1G short beacon data
|
||||
*
|
||||
* @__NL80211_S1G_SHORT_BEACON_ATTR_INVALID: Invalid
|
||||
*
|
||||
* @NL80211_S1G_SHORT_BEACON_ATTR_HEAD: Short beacon head (binary).
|
||||
* @NL80211_S1G_SHORT_BEACON_ATTR_TAIL: Short beacon tail (binary).
|
||||
*
|
||||
* @__NL80211_S1G_SHORT_BEACON_ATTR_LAST: Internal
|
||||
* @NL80211_S1G_SHORT_BEACON_ATTR_MAX: Highest attribute
|
||||
*/
|
||||
enum nl80211_s1g_short_beacon_attrs {
|
||||
__NL80211_S1G_SHORT_BEACON_ATTR_INVALID,
|
||||
|
||||
NL80211_S1G_SHORT_BEACON_ATTR_HEAD,
|
||||
NL80211_S1G_SHORT_BEACON_ATTR_TAIL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_S1G_SHORT_BEACON_ATTR_LAST,
|
||||
NL80211_S1G_SHORT_BEACON_ATTR_MAX =
|
||||
__NL80211_S1G_SHORT_BEACON_ATTR_LAST - 1
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
||||
@@ -186,6 +186,11 @@ enum ovs_packet_cmd {
|
||||
* %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
|
||||
* size.
|
||||
* @OVS_PACKET_ATTR_HASH: Packet hash info (e.g. hash, sw_hash and l4_hash in skb).
|
||||
* @OVS_PACKET_ATTR_UPCALL_PID: Netlink PID to use for upcalls while
|
||||
* processing %OVS_PACKET_CMD_EXECUTE. Takes precedence over all other ways
|
||||
* to determine the Netlink PID including %OVS_USERSPACE_ATTR_PID,
|
||||
* %OVS_DP_ATTR_UPCALL_PID, %OVS_DP_ATTR_PER_CPU_PIDS and the
|
||||
* %OVS_VPORT_ATTR_UPCALL_PID.
|
||||
*
|
||||
* These attributes follow the &struct ovs_header within the Generic Netlink
|
||||
* payload for %OVS_PACKET_* commands.
|
||||
@@ -205,6 +210,7 @@ enum ovs_packet_attr {
|
||||
OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
|
||||
OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
|
||||
OVS_PACKET_ATTR_HASH, /* Packet hash. */
|
||||
OVS_PACKET_ATTR_UPCALL_PID, /* u32 Netlink PID. */
|
||||
__OVS_PACKET_ATTR_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -1211,4 +1211,72 @@ enum {
|
||||
|
||||
#define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
|
||||
|
||||
/* DUALPI2 */
|
||||
enum tc_dualpi2_drop_overload {
|
||||
TC_DUALPI2_DROP_OVERLOAD_OVERFLOW = 0,
|
||||
TC_DUALPI2_DROP_OVERLOAD_DROP = 1,
|
||||
__TCA_DUALPI2_DROP_OVERLOAD_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_DROP_OVERLOAD_MAX (__TCA_DUALPI2_DROP_OVERLOAD_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_drop_early {
|
||||
TC_DUALPI2_DROP_EARLY_DROP_DEQUEUE = 0,
|
||||
TC_DUALPI2_DROP_EARLY_DROP_ENQUEUE = 1,
|
||||
__TCA_DUALPI2_DROP_EARLY_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_DROP_EARLY_MAX (__TCA_DUALPI2_DROP_EARLY_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_ecn_mask {
|
||||
TC_DUALPI2_ECN_MASK_L4S_ECT = 1,
|
||||
TC_DUALPI2_ECN_MASK_CLA_ECT = 2,
|
||||
TC_DUALPI2_ECN_MASK_ANY_ECT = 3,
|
||||
__TCA_DUALPI2_ECN_MASK_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_ECN_MASK_MAX (__TCA_DUALPI2_ECN_MASK_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_split_gso {
|
||||
TC_DUALPI2_SPLIT_GSO_NO_SPLIT_GSO = 0,
|
||||
TC_DUALPI2_SPLIT_GSO_SPLIT_GSO = 1,
|
||||
__TCA_DUALPI2_SPLIT_GSO_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_SPLIT_GSO_MAX (__TCA_DUALPI2_SPLIT_GSO_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_DUALPI2_UNSPEC,
|
||||
TCA_DUALPI2_LIMIT, /* Packets */
|
||||
TCA_DUALPI2_MEMORY_LIMIT, /* Bytes */
|
||||
TCA_DUALPI2_TARGET, /* us */
|
||||
TCA_DUALPI2_TUPDATE, /* us */
|
||||
TCA_DUALPI2_ALPHA, /* Hz scaled up by 256 */
|
||||
TCA_DUALPI2_BETA, /* Hz scaled up by 256 */
|
||||
TCA_DUALPI2_STEP_THRESH_PKTS, /* Step threshold in packets */
|
||||
TCA_DUALPI2_STEP_THRESH_US, /* Step threshold in microseconds */
|
||||
TCA_DUALPI2_MIN_QLEN_STEP, /* Minimum qlen to apply STEP_THRESH */
|
||||
TCA_DUALPI2_COUPLING, /* Coupling factor between queues */
|
||||
TCA_DUALPI2_DROP_OVERLOAD, /* Whether to drop on overload */
|
||||
TCA_DUALPI2_DROP_EARLY, /* Whether to drop on enqueue */
|
||||
TCA_DUALPI2_C_PROTECTION, /* Percentage */
|
||||
TCA_DUALPI2_ECN_MASK, /* L4S queue classification mask */
|
||||
TCA_DUALPI2_SPLIT_GSO, /* Split GSO packets at enqueue */
|
||||
TCA_DUALPI2_PAD,
|
||||
__TCA_DUALPI2_MAX
|
||||
};
|
||||
|
||||
#define TCA_DUALPI2_MAX (__TCA_DUALPI2_MAX - 1)
|
||||
|
||||
struct tc_dualpi2_xstats {
|
||||
__u32 prob; /* current probability */
|
||||
__u32 delay_c; /* current delay in C queue */
|
||||
__u32 delay_l; /* current delay in L queue */
|
||||
__u32 packets_in_c; /* number of packets enqueued in C queue */
|
||||
__u32 packets_in_l; /* number of packets enqueued in L queue */
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
__u32 step_marks; /* ECN marks due to the step AQM */
|
||||
__s32 credit; /* current c_protection credit */
|
||||
__u32 memory_used; /* Memory used by both queues */
|
||||
__u32 max_memory_used; /* Maximum used memory */
|
||||
__u32 memory_limit; /* Memory limit of both queues */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -186,6 +186,7 @@ enum
|
||||
LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
|
||||
LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
|
||||
LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
|
||||
LINUX_MIB_BEYOND_WINDOW, /* BeyondWindow */
|
||||
LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
|
||||
LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
|
||||
LINUX_MIB_PAWS_TW_REJECTED, /* PAWSTimewait */
|
||||
|
||||
@@ -573,6 +573,7 @@ enum {
|
||||
NET_IPV6_ACCEPT_RA_FROM_LOCAL=26,
|
||||
NET_IPV6_ACCEPT_RA_RT_INFO_MIN_PLEN=27,
|
||||
NET_IPV6_RA_DEFRTR_METRIC=28,
|
||||
NET_IPV6_FORCE_FORWARDING=29,
|
||||
__NET_IPV6_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -235,4 +235,11 @@
|
||||
*/
|
||||
#define VHOST_VDPA_GET_VRING_SIZE _IOWR(VHOST_VIRTIO, 0x82, \
|
||||
struct vhost_vring_state)
|
||||
|
||||
/* Extended features manipulation */
|
||||
#define VHOST_GET_FEATURES_ARRAY _IOR(VHOST_VIRTIO, 0x83, \
|
||||
struct vhost_features_array)
|
||||
#define VHOST_SET_FEATURES_ARRAY _IOW(VHOST_VIRTIO, 0x83, \
|
||||
struct vhost_features_array)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -110,6 +110,11 @@ struct vhost_msg_v2 {
|
||||
};
|
||||
};
|
||||
|
||||
struct vhost_features_array {
|
||||
__u64 count; /* number of entries present in features array */
|
||||
__u64 features[] __counted_by(count);
|
||||
};
|
||||
|
||||
struct vhost_memory_region {
|
||||
__u64 guest_phys_addr;
|
||||
__u64 memory_size; /* bytes */
|
||||
|
||||
@@ -70,6 +70,28 @@
|
||||
* with the same MAC.
|
||||
*/
|
||||
#define VIRTIO_NET_F_SPEED_DUPLEX 63 /* Device set linkspeed and duplex */
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO 65 /* Driver can receive
|
||||
* GSO-over-UDP-tunnel packets
|
||||
*/
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM 66 /* Driver handles
|
||||
* GSO-over-UDP-tunnel
|
||||
* packets with partial csum
|
||||
* for the outer header
|
||||
*/
|
||||
#define VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO 67 /* Device can receive
|
||||
* GSO-over-UDP-tunnel packets
|
||||
*/
|
||||
#define VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO_CSUM 68 /* Device handles
|
||||
* GSO-over-UDP-tunnel
|
||||
* packets with partial csum
|
||||
* for the outer header
|
||||
*/
|
||||
|
||||
/* Offloads bits corresponding to VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO{,_CSUM}
|
||||
* features
|
||||
*/
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_MAPPED 46
|
||||
#define VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM_MAPPED 47
|
||||
|
||||
#ifndef VIRTIO_NET_NO_LEGACY
|
||||
#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
|
||||
@@ -131,12 +153,17 @@ struct virtio_net_hdr_v1 {
|
||||
#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
|
||||
#define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
|
||||
#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */
|
||||
#define VIRTIO_NET_HDR_F_UDP_TUNNEL_CSUM 8 /* UDP tunnel csum offload */
|
||||
__u8 flags;
|
||||
#define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
|
||||
#define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_L4 5 /* GSO frame, IPv4& IPv6 UDP (USO) */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 0x20 /* UDPv4 tunnel present */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6 0x40 /* UDPv6 tunnel present */
|
||||
#define VIRTIO_NET_HDR_GSO_UDP_TUNNEL (VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 | \
|
||||
VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6)
|
||||
#define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
|
||||
__u8 gso_type;
|
||||
__virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
|
||||
@@ -181,6 +208,12 @@ struct virtio_net_hdr_v1_hash {
|
||||
__le16 padding;
|
||||
};
|
||||
|
||||
struct virtio_net_hdr_v1_hash_tunnel {
|
||||
struct virtio_net_hdr_v1_hash hash_hdr;
|
||||
__le16 outer_th_offset;
|
||||
__le16 inner_nh_offset;
|
||||
};
|
||||
|
||||
#ifndef VIRTIO_NET_NO_LEGACY
|
||||
/* This header comes first in the scatter-gather list.
|
||||
* For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
|
||||
|
||||
Reference in New Issue
Block a user