Merge tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Pull networking updates from Jakub Kicinski:
"Core:
- BPF:
- add syscall program type and libbpf support for generating
instructions and bindings for in-kernel BPF loaders (BPF loaders
for BPF), this is a stepping stone for signed BPF programs
- infrastructure to migrate TCP child sockets from one listener to
another in the same reuseport group/map to improve flexibility
of service hand-off/restart
- add broadcast support to XDP redirect
- allow bypass of the lockless qdisc to improving performance (for
pktgen: +23% with one thread, +44% with 2 threads)
- add a simpler version of "DO_ONCE()" which does not require jump
labels, intended for slow-path usage
- virtio/vsock: introduce SOCK_SEQPACKET support
- add getsocketopt to retrieve netns cookie
- ip: treat lowest address of a IPv4 subnet as ordinary unicast
address allowing reclaiming of precious IPv4 addresses
- ipv6: use prandom_u32() for ID generation
- ip: add support for more flexible field selection for hashing
across multi-path routes (w/ offload to mlxsw)
- icmp: add support for extended RFC 8335 PROBE (ping)
- seg6: add support for SRv6 End.DT46 behavior
- mptcp:
- DSS checksum support (RFC 8684) to detect middlebox meddling
- support Connection-time 'C' flag
- time stamping support
- sctp: packetization Layer Path MTU Discovery (RFC 8899)
- xfrm: speed up state addition with seq set
- WiFi:
- hidden AP discovery on 6 GHz and other HE 6 GHz improvements
- aggregation handling improvements for some drivers
- minstrel improvements for no-ack frames
- deferred rate control for TXQs to improve reaction times
- switch from round robin to virtual time-based airtime scheduler
- add trace points:
- tcp checksum errors
- openvswitch - action execution, upcalls
- socket errors via sk_error_report
Device APIs:
- devlink: add rate API for hierarchical control of max egress rate
of virtual devices (VFs, SFs etc.)
- don't require RCU read lock to be held around BPF hooks in NAPI
context
- page_pool: generic buffer recycling
New hardware/drivers:
- mobile:
- iosm: PCIe Driver for Intel M.2 Modem
- support for Qualcomm MSM8998 (ipa)
- WiFi: Qualcomm QCN9074 and WCN6855 PCI devices
- sparx5: Microchip SparX-5 family of Enterprise Ethernet switches
- Mellanox BlueField Gigabit Ethernet (control NIC of the DPU)
- NXP SJA1110 Automotive Ethernet 10-port switch
- Qualcomm QCA8327 switch support (qca8k)
- Mikrotik 10/25G NIC (atl1c)
Driver changes:
- ACPI support for some MDIO, MAC and PHY devices from Marvell and
NXP (our first foray into MAC/PHY description via ACPI)
- HW timestamping (PTP) support: bnxt_en, ice, sja1105, hns3, tja11xx
- Mellanox/Nvidia NIC (mlx5)
- NIC VF offload of L2 bridging
- support IRQ distribution to Sub-functions
- Marvell (prestera):
- add flower and match all
- devlink trap
- link aggregation
- Netronome (nfp): connection tracking offload
- Intel 1GE (igc): add AF_XDP support
- Marvell DPU (octeontx2): ingress ratelimit offload
- Google vNIC (gve): new ring/descriptor format support
- Qualcomm mobile (rmnet & ipa): inline checksum offload support
- MediaTek WiFi (mt76)
- mt7915 MSI support
- mt7915 Tx status reporting
- mt7915 thermal sensors support
- mt7921 decapsulation offload
- mt7921 enable runtime pm and deep sleep
- Realtek WiFi (rtw88)
- beacon filter support
- Tx antenna path diversity support
- firmware crash information via devcoredump
- Qualcomm WiFi (wcn36xx)
- Wake-on-WLAN support with magic packets and GTK rekeying
- Micrel PHY (ksz886x/ksz8081): add cable test support"
* tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2168 commits)
tcp: change ICSK_CA_PRIV_SIZE definition
tcp_yeah: check struct yeah size at compile time
gve: DQO: Fix off by one in gve_rx_dqo()
stmmac: intel: set PCI_D3hot in suspend
stmmac: intel: Enable PHY WOL option in EHL
net: stmmac: option to enable PHY WOL with PMT enabled
net: say "local" instead of "static" addresses in ndo_dflt_fdb_{add,del}
net: use netdev_info in ndo_dflt_fdb_{add,del}
ptp: Set lookup cookie when creating a PTP PPS source.
net: sock: add trace for socket errors
net: sock: introduce sk_error_report
net: dsa: replay the local bridge FDB entries pointing to the bridge dev too
net: dsa: ensure during dsa_fdb_offload_notify that dev_hold and dev_put are on the same dev
net: dsa: include fdb entries pointing to bridge in the host fdb list
net: dsa: include bridge addresses which are local in the host fdb list
net: dsa: sync static FDB entries on foreign interfaces to hardware
net: dsa: install the host MDB and FDB entries in the master's RX filter
net: dsa: reference count the FDB addresses at the cross-chip notifier level
net: dsa: introduce a separate cross-chip notifier type for host FDBs
net: dsa: reference count the MDB entries at the cross-chip notifier level
...
This commit is contained in:
@@ -122,6 +122,8 @@
|
||||
#define SO_PREFER_BUSY_POLL 69
|
||||
#define SO_BUSY_POLL_BUDGET 70
|
||||
|
||||
#define SO_NETNS_COOKIE 71
|
||||
|
||||
#if !defined(__KERNEL__)
|
||||
|
||||
#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
|
||||
|
||||
@@ -527,6 +527,15 @@ union bpf_iter_link_info {
|
||||
* Look up an element with the given *key* in the map referred to
|
||||
* by the file descriptor *fd*, and if found, delete the element.
|
||||
*
|
||||
* For **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map
|
||||
* types, the *flags* argument needs to be set to 0, but for other
|
||||
* map types, it may be specified as:
|
||||
*
|
||||
* **BPF_F_LOCK**
|
||||
* Look up and delete the value of a spin-locked map
|
||||
* without returning the lock. This must be specified if
|
||||
* the elements contain a spinlock.
|
||||
*
|
||||
* The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types
|
||||
* implement this command as a "pop" operation, deleting the top
|
||||
* element rather than one corresponding to *key*.
|
||||
@@ -536,6 +545,10 @@ union bpf_iter_link_info {
|
||||
* This command is only valid for the following map types:
|
||||
* * **BPF_MAP_TYPE_QUEUE**
|
||||
* * **BPF_MAP_TYPE_STACK**
|
||||
* * **BPF_MAP_TYPE_HASH**
|
||||
* * **BPF_MAP_TYPE_PERCPU_HASH**
|
||||
* * **BPF_MAP_TYPE_LRU_HASH**
|
||||
* * **BPF_MAP_TYPE_LRU_PERCPU_HASH**
|
||||
*
|
||||
* Return
|
||||
* Returns zero on success. On error, -1 is returned and *errno*
|
||||
@@ -837,6 +850,7 @@ enum bpf_cmd {
|
||||
BPF_PROG_ATTACH,
|
||||
BPF_PROG_DETACH,
|
||||
BPF_PROG_TEST_RUN,
|
||||
BPF_PROG_RUN = BPF_PROG_TEST_RUN,
|
||||
BPF_PROG_GET_NEXT_ID,
|
||||
BPF_MAP_GET_NEXT_ID,
|
||||
BPF_PROG_GET_FD_BY_ID,
|
||||
@@ -937,6 +951,7 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_EXT,
|
||||
BPF_PROG_TYPE_LSM,
|
||||
BPF_PROG_TYPE_SK_LOOKUP,
|
||||
BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
@@ -979,6 +994,8 @@ enum bpf_attach_type {
|
||||
BPF_SK_LOOKUP,
|
||||
BPF_XDP,
|
||||
BPF_SK_SKB_VERDICT,
|
||||
BPF_SK_REUSEPORT_SELECT,
|
||||
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
|
||||
__MAX_BPF_ATTACH_TYPE
|
||||
};
|
||||
|
||||
@@ -1097,8 +1114,8 @@ enum bpf_link_type {
|
||||
/* When BPF ldimm64's insn[0].src_reg != 0 then this can have
|
||||
* the following extensions:
|
||||
*
|
||||
* insn[0].src_reg: BPF_PSEUDO_MAP_FD
|
||||
* insn[0].imm: map fd
|
||||
* insn[0].src_reg: BPF_PSEUDO_MAP_[FD|IDX]
|
||||
* insn[0].imm: map fd or fd_idx
|
||||
* insn[1].imm: 0
|
||||
* insn[0].off: 0
|
||||
* insn[1].off: 0
|
||||
@@ -1106,15 +1123,19 @@ enum bpf_link_type {
|
||||
* verifier type: CONST_PTR_TO_MAP
|
||||
*/
|
||||
#define BPF_PSEUDO_MAP_FD 1
|
||||
/* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE
|
||||
* insn[0].imm: map fd
|
||||
#define BPF_PSEUDO_MAP_IDX 5
|
||||
|
||||
/* insn[0].src_reg: BPF_PSEUDO_MAP_[IDX_]VALUE
|
||||
* insn[0].imm: map fd or fd_idx
|
||||
* insn[1].imm: offset into value
|
||||
* insn[0].off: 0
|
||||
* insn[1].off: 0
|
||||
* ldimm64 rewrite: address of map[0]+offset
|
||||
* verifier type: PTR_TO_MAP_VALUE
|
||||
*/
|
||||
#define BPF_PSEUDO_MAP_VALUE 2
|
||||
#define BPF_PSEUDO_MAP_VALUE 2
|
||||
#define BPF_PSEUDO_MAP_IDX_VALUE 6
|
||||
|
||||
/* insn[0].src_reg: BPF_PSEUDO_BTF_ID
|
||||
* insn[0].imm: kernel btd id of VAR
|
||||
* insn[1].imm: 0
|
||||
@@ -1314,6 +1335,8 @@ union bpf_attr {
|
||||
/* or valid module BTF object fd or 0 to attach to vmlinux */
|
||||
__u32 attach_btf_obj_fd;
|
||||
};
|
||||
__u32 :32; /* pad */
|
||||
__aligned_u64 fd_array; /* array of FDs */
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_OBJ_* commands */
|
||||
@@ -2534,8 +2557,12 @@ union bpf_attr {
|
||||
* The lower two bits of *flags* are used as the return code if
|
||||
* the map lookup fails. This is so that the return value can be
|
||||
* one of the XDP program return codes up to **XDP_TX**, as chosen
|
||||
* by the caller. Any higher bits in the *flags* argument must be
|
||||
* unset.
|
||||
* by the caller. The higher bits of *flags* can be set to
|
||||
* BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS as defined below.
|
||||
*
|
||||
* With BPF_F_BROADCAST the packet will be broadcasted to all the
|
||||
* interfaces in the map, with BPF_F_EXCLUDE_INGRESS the ingress
|
||||
* interface will be excluded when do broadcasting.
|
||||
*
|
||||
* See also **bpf_redirect**\ (), which only supports redirecting
|
||||
* to an ifindex, but doesn't require a map to do so.
|
||||
@@ -4735,6 +4762,24 @@ union bpf_attr {
|
||||
* be zero-terminated except when **str_size** is 0.
|
||||
*
|
||||
* Or **-EBUSY** if the per-CPU memory copy buffer is busy.
|
||||
*
|
||||
* long bpf_sys_bpf(u32 cmd, void *attr, u32 attr_size)
|
||||
* Description
|
||||
* Execute bpf syscall with given arguments.
|
||||
* Return
|
||||
* A syscall result.
|
||||
*
|
||||
* long bpf_btf_find_by_name_kind(char *name, int name_sz, u32 kind, int flags)
|
||||
* Description
|
||||
* Find BTF type with given name and kind in vmlinux BTF or in module's BTFs.
|
||||
* Return
|
||||
* Returns btf_id and btf_obj_fd in lower and upper 32 bits.
|
||||
*
|
||||
* long bpf_sys_close(u32 fd)
|
||||
* Description
|
||||
* Execute close syscall for given FD.
|
||||
* Return
|
||||
* A syscall result.
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -4903,6 +4948,9 @@ union bpf_attr {
|
||||
FN(check_mtu), \
|
||||
FN(for_each_map_elem), \
|
||||
FN(snprintf), \
|
||||
FN(sys_bpf), \
|
||||
FN(btf_find_by_name_kind), \
|
||||
FN(sys_close), \
|
||||
/* */
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
@@ -5080,6 +5128,12 @@ enum {
|
||||
BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* Flags for bpf_redirect_map helper */
|
||||
enum {
|
||||
BPF_F_BROADCAST = (1ULL << 3),
|
||||
BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
|
||||
};
|
||||
|
||||
#define __bpf_md_ptr(type, name) \
|
||||
union { \
|
||||
type name; \
|
||||
@@ -5364,6 +5418,20 @@ struct sk_reuseport_md {
|
||||
__u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
|
||||
__u32 bind_inany; /* Is sock bound to an INANY address? */
|
||||
__u32 hash; /* A hash of the packet 4 tuples */
|
||||
/* When reuse->migrating_sk is NULL, it is selecting a sk for the
|
||||
* new incoming connection request (e.g. selecting a listen sk for
|
||||
* the received SYN in the TCP case). reuse->sk is one of the sk
|
||||
* in the reuseport group. The bpf prog can use reuse->sk to learn
|
||||
* the local listening ip/port without looking into the skb.
|
||||
*
|
||||
* When reuse->migrating_sk is not NULL, reuse->sk is closed and
|
||||
* reuse->migrating_sk is the socket that needs to be migrated
|
||||
* to another listening socket. migrating_sk could be a fullsock
|
||||
* sk that is fully established or a reqsk that is in-the-middle
|
||||
* of 3-way handshake.
|
||||
*/
|
||||
__bpf_md_ptr(struct bpf_sock *, sk);
|
||||
__bpf_md_ptr(struct bpf_sock *, migrating_sk);
|
||||
};
|
||||
|
||||
#define BPF_TAG_SIZE 8
|
||||
|
||||
@@ -123,8 +123,8 @@ struct can_frame {
|
||||
/*
|
||||
* defined bits for canfd_frame.flags
|
||||
*
|
||||
* The use of struct canfd_frame implies the Extended Data Length (EDL) bit to
|
||||
* be set in the CAN frame bitstream on the wire. The EDL bit switch turns
|
||||
* The use of struct canfd_frame implies the FD Frame (FDF) bit to
|
||||
* be set in the CAN frame bitstream on the wire. The FDF bit switch turns
|
||||
* the CAN controllers bitstream processor into the CAN FD mode which creates
|
||||
* two new options within the CAN FD frame specification:
|
||||
*
|
||||
@@ -135,9 +135,18 @@ struct can_frame {
|
||||
* controller only the CANFD_BRS bit is relevant for real CAN controllers when
|
||||
* building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make
|
||||
* sense for virtual CAN interfaces to test applications with echoed frames.
|
||||
*
|
||||
* The struct can_frame and struct canfd_frame intentionally share the same
|
||||
* layout to be able to write CAN frame content into a CAN FD frame structure.
|
||||
* When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
|
||||
* lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
|
||||
* using struct canfd_frame for mixed CAN / CAN FD content (dual use).
|
||||
* N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of
|
||||
* struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux.
|
||||
*/
|
||||
#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
|
||||
#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
|
||||
#define CANFD_FDF 0x04 /* mark CAN FD for dual use of struct canfd_frame */
|
||||
|
||||
/**
|
||||
* struct canfd_frame - CAN flexible data rate frame structure
|
||||
|
||||
@@ -126,6 +126,11 @@ enum devlink_command {
|
||||
|
||||
DEVLINK_CMD_HEALTH_REPORTER_TEST,
|
||||
|
||||
DEVLINK_CMD_RATE_GET, /* can dump */
|
||||
DEVLINK_CMD_RATE_SET,
|
||||
DEVLINK_CMD_RATE_NEW,
|
||||
DEVLINK_CMD_RATE_DEL,
|
||||
|
||||
/* add new commands above here */
|
||||
__DEVLINK_CMD_MAX,
|
||||
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
|
||||
@@ -206,6 +211,11 @@ enum devlink_port_flavour {
|
||||
*/
|
||||
};
|
||||
|
||||
enum devlink_rate_type {
|
||||
DEVLINK_RATE_TYPE_LEAF,
|
||||
DEVLINK_RATE_TYPE_NODE,
|
||||
};
|
||||
|
||||
enum devlink_param_cmode {
|
||||
DEVLINK_PARAM_CMODE_RUNTIME,
|
||||
DEVLINK_PARAM_CMODE_DRIVERINIT,
|
||||
@@ -534,6 +544,13 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */
|
||||
|
||||
DEVLINK_ATTR_PORT_PCI_SF_NUMBER, /* u32 */
|
||||
|
||||
DEVLINK_ATTR_RATE_TYPE, /* u16 */
|
||||
DEVLINK_ATTR_RATE_TX_SHARE, /* u64 */
|
||||
DEVLINK_ATTR_RATE_TX_MAX, /* u64 */
|
||||
DEVLINK_ATTR_RATE_NODE_NAME, /* string */
|
||||
DEVLINK_ATTR_RATE_PARENT_NODE_NAME, /* string */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
__DEVLINK_ATTR_MAX,
|
||||
|
||||
@@ -233,7 +233,7 @@ enum tunable_id {
|
||||
ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
|
||||
/*
|
||||
* Add your fresh new tunable attribute above and remember to update
|
||||
* tunable_strings[] in net/core/ethtool.c
|
||||
* tunable_strings[] in net/ethtool/common.c
|
||||
*/
|
||||
__ETHTOOL_TUNABLE_COUNT,
|
||||
};
|
||||
@@ -297,7 +297,7 @@ enum phy_tunable_id {
|
||||
ETHTOOL_PHY_EDPD,
|
||||
/*
|
||||
* Add your fresh new phy tunable attribute above and remember to update
|
||||
* phy_tunable_strings[] in net/core/ethtool.c
|
||||
* phy_tunable_strings[] in net/ethtool/common.c
|
||||
*/
|
||||
__ETHTOOL_PHY_TUNABLE_COUNT,
|
||||
};
|
||||
|
||||
@@ -675,7 +675,7 @@ enum {
|
||||
ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */
|
||||
ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */
|
||||
ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */
|
||||
ETHTOOL_A_MODULE_EEPROM_DATA, /* nested */
|
||||
ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */
|
||||
|
||||
__ETHTOOL_A_MODULE_EEPROM_CNT,
|
||||
ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <linux/in.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
@@ -154,7 +153,7 @@ struct icmp_ext_echo_iio {
|
||||
struct {
|
||||
struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
|
||||
union {
|
||||
struct in_addr ipv4_addr;
|
||||
__be32 ipv4_addr;
|
||||
struct in6_addr ipv6_addr;
|
||||
} ip_addr;
|
||||
} addr;
|
||||
|
||||
@@ -627,6 +627,8 @@ enum {
|
||||
MDBA_ROUTER_PATTR_UNSPEC,
|
||||
MDBA_ROUTER_PATTR_TIMER,
|
||||
MDBA_ROUTER_PATTR_TYPE,
|
||||
MDBA_ROUTER_PATTR_INET_TIMER,
|
||||
MDBA_ROUTER_PATTR_INET6_TIMER,
|
||||
__MDBA_ROUTER_PATTR_MAX
|
||||
};
|
||||
#define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
|
||||
|
||||
@@ -341,6 +341,13 @@ enum {
|
||||
IFLA_ALT_IFNAME, /* Alternative ifname */
|
||||
IFLA_PERM_ADDRESS,
|
||||
IFLA_PROTO_DOWN_REASON,
|
||||
|
||||
/* device (sysfs) name as parent, used instead
|
||||
* of IFLA_LINK where there's no parent netdev
|
||||
*/
|
||||
IFLA_PARENT_DEV_NAME,
|
||||
IFLA_PARENT_DEV_BUS_NAME,
|
||||
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -1236,6 +1243,8 @@ enum {
|
||||
#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
|
||||
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
|
||||
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
|
||||
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
|
||||
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
|
||||
|
||||
enum {
|
||||
IFLA_RMNET_UNSPEC,
|
||||
|
||||
@@ -105,6 +105,7 @@ struct mptcp_info {
|
||||
__u64 mptcpi_rcv_nxt;
|
||||
__u8 mptcpi_local_addr_used;
|
||||
__u8 mptcpi_local_addr_max;
|
||||
__u8 mptcpi_csum_enabled;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -813,11 +813,13 @@ enum nft_exthdr_flags {
|
||||
* @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
|
||||
* @NFT_EXTHDR_OP_TCP: match against tcp options
|
||||
* @NFT_EXTHDR_OP_IPV4: match against ipv4 options
|
||||
* @NFT_EXTHDR_OP_SCTP: match against sctp chunks
|
||||
*/
|
||||
enum nft_exthdr_op {
|
||||
NFT_EXTHDR_OP_IPV6,
|
||||
NFT_EXTHDR_OP_TCPOPT,
|
||||
NFT_EXTHDR_OP_IPV4,
|
||||
NFT_EXTHDR_OP_SCTP,
|
||||
__NFT_EXTHDR_OP_MAX
|
||||
};
|
||||
#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
|
||||
@@ -1193,6 +1195,21 @@ enum nft_counter_attributes {
|
||||
};
|
||||
#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_last_attributes - nf_tables last expression netlink attributes
|
||||
*
|
||||
* @NFTA_LAST_SET: last update has been set, zero means never updated (NLA_U32)
|
||||
* @NFTA_LAST_MSECS: milliseconds since last update (NLA_U64)
|
||||
*/
|
||||
enum nft_last_attributes {
|
||||
NFTA_LAST_UNSPEC,
|
||||
NFTA_LAST_SET,
|
||||
NFTA_LAST_MSECS,
|
||||
NFTA_LAST_PAD,
|
||||
__NFTA_LAST_MAX
|
||||
};
|
||||
#define NFTA_LAST_MAX (__NFTA_LAST_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_log_attributes - nf_tables log expression netlink attributes
|
||||
*
|
||||
|
||||
@@ -60,7 +60,8 @@ struct nfgenmsg {
|
||||
#define NFNL_SUBSYS_CTHELPER 9
|
||||
#define NFNL_SUBSYS_NFTABLES 10
|
||||
#define NFNL_SUBSYS_NFT_COMPAT 11
|
||||
#define NFNL_SUBSYS_COUNT 12
|
||||
#define NFNL_SUBSYS_HOOK 12
|
||||
#define NFNL_SUBSYS_COUNT 13
|
||||
|
||||
/* Reserved control nfnetlink messages */
|
||||
#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
|
||||
|
||||
55
include/uapi/linux/netfilter/nfnetlink_hook.h
Normal file
55
include/uapi/linux/netfilter/nfnetlink_hook.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef _NFNL_HOOK_H_
|
||||
#define _NFNL_HOOK_H_
|
||||
|
||||
enum nfnl_hook_msg_types {
|
||||
NFNL_MSG_HOOK_GET,
|
||||
NFNL_MSG_HOOK_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nfnl_hook_attributes - netfilter hook netlink attributes
|
||||
*
|
||||
* @NFNLA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
|
||||
* @NFNLA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
|
||||
* @NFNLA_HOOK_DEV: netdevice name (NLA_STRING)
|
||||
* @NFNLA_HOOK_FUNCTION_NAME: hook function name (NLA_STRING)
|
||||
* @NFNLA_HOOK_MODULE_NAME: kernel module that registered this hook (NLA_STRING)
|
||||
* @NFNLA_HOOK_CHAIN_INFO: basechain hook metadata (NLA_NESTED)
|
||||
*/
|
||||
enum nfnl_hook_attributes {
|
||||
NFNLA_HOOK_UNSPEC,
|
||||
NFNLA_HOOK_HOOKNUM,
|
||||
NFNLA_HOOK_PRIORITY,
|
||||
NFNLA_HOOK_DEV,
|
||||
NFNLA_HOOK_FUNCTION_NAME,
|
||||
NFNLA_HOOK_MODULE_NAME,
|
||||
NFNLA_HOOK_CHAIN_INFO,
|
||||
__NFNLA_HOOK_MAX
|
||||
};
|
||||
#define NFNLA_HOOK_MAX (__NFNLA_HOOK_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nfnl_hook_chain_info_attributes - chain description
|
||||
*
|
||||
* NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED)
|
||||
* NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32)
|
||||
*/
|
||||
enum nfnl_hook_chain_info_attributes {
|
||||
NFNLA_HOOK_INFO_UNSPEC,
|
||||
NFNLA_HOOK_INFO_DESC,
|
||||
NFNLA_HOOK_INFO_TYPE,
|
||||
__NFNLA_HOOK_INFO_MAX,
|
||||
};
|
||||
#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nfnl_hook_chaintype - chain type
|
||||
*
|
||||
* @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain
|
||||
*/
|
||||
enum nfnl_hook_chaintype {
|
||||
NFNL_HOOK_TYPE_NFTABLES = 0x1,
|
||||
};
|
||||
|
||||
#endif /* _NFNL_HOOK_H */
|
||||
@@ -91,9 +91,10 @@ struct nlmsghdr {
|
||||
#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
||||
#define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
|
||||
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
|
||||
#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
|
||||
#define NLMSG_DATA(nlh) ((void *)(((char *)nlh) + NLMSG_HDRLEN))
|
||||
#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
|
||||
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
|
||||
(struct nlmsghdr *)(((char *)(nlh)) + \
|
||||
NLMSG_ALIGN((nlh)->nlmsg_len)))
|
||||
#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
|
||||
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
|
||||
(nlh)->nlmsg_len <= (len))
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
|
||||
* Copyright 2008 Colin McCabe <colin@cozybit.com>
|
||||
* Copyright 2015-2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018-2020 Intel Corporation
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -3654,6 +3654,8 @@ enum nl80211_mpath_info {
|
||||
* defined
|
||||
* @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
|
||||
* given for all 6 GHz band channels
|
||||
* @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
|
||||
* advertised on this band/for this iftype (binary)
|
||||
* @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
enum nl80211_band_iftype_attr {
|
||||
@@ -3665,6 +3667,7 @@ enum nl80211_band_iftype_attr {
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
|
||||
NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
|
||||
@@ -6912,6 +6915,9 @@ enum nl80211_peer_measurement_ftm_capa {
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
|
||||
* valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
|
||||
* %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR: optional. The BSS color of the
|
||||
* responder. Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED
|
||||
* or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED is set.
|
||||
*
|
||||
* @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
|
||||
@@ -6931,6 +6937,7 @@ enum nl80211_peer_measurement_ftm_req {
|
||||
NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_PMSR_FTM_REQ_ATTR,
|
||||
|
||||
@@ -141,6 +141,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
|
||||
#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
|
||||
#define SCTP_REMOTE_UDP_ENCAPS_PORT 132
|
||||
#define SCTP_PLPMTUD_PROBE_INTERVAL 133
|
||||
|
||||
/* PR-SCTP policies */
|
||||
#define SCTP_PR_SCTP_NONE 0x0000
|
||||
@@ -1213,4 +1214,11 @@ enum sctp_sched_type {
|
||||
SCTP_SS_MAX = SCTP_SS_RR
|
||||
};
|
||||
|
||||
/* Probe Interval socket option */
|
||||
struct sctp_probeinterval {
|
||||
sctp_assoc_t spi_assoc_id;
|
||||
struct sockaddr_storage spi_address;
|
||||
__u32 spi_interval;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_SCTP_H */
|
||||
|
||||
@@ -64,6 +64,8 @@ enum {
|
||||
SEG6_LOCAL_ACTION_END_AM = 14,
|
||||
/* custom BPF action */
|
||||
SEG6_LOCAL_ACTION_END_BPF = 15,
|
||||
/* decap and lookup of DA in v4 or v6 table */
|
||||
SEG6_LOCAL_ACTION_END_DT46 = 16,
|
||||
|
||||
__SEG6_LOCAL_ACTION_MAX,
|
||||
};
|
||||
|
||||
@@ -47,6 +47,8 @@ enum {
|
||||
SMC_NETLINK_GET_LGR_SMCD,
|
||||
SMC_NETLINK_GET_DEV_SMCD,
|
||||
SMC_NETLINK_GET_DEV_SMCR,
|
||||
SMC_NETLINK_GET_STATS,
|
||||
SMC_NETLINK_GET_FBACK_STATS,
|
||||
};
|
||||
|
||||
/* SMC_GENL_FAMILY top level attributes */
|
||||
@@ -58,6 +60,8 @@ enum {
|
||||
SMC_GEN_LGR_SMCD, /* nest */
|
||||
SMC_GEN_DEV_SMCD, /* nest */
|
||||
SMC_GEN_DEV_SMCR, /* nest */
|
||||
SMC_GEN_STATS, /* nest */
|
||||
SMC_GEN_FBACK_STATS, /* nest */
|
||||
__SMC_GEN_MAX,
|
||||
SMC_GEN_MAX = __SMC_GEN_MAX - 1
|
||||
};
|
||||
@@ -159,4 +163,83 @@ enum {
|
||||
SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_NLA_STATS_T_TX(RX)_RMB_SIZE nested attributes */
|
||||
/* SMC_NLA_STATS_TX(RX)PLOAD_SIZE nested attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_PLOAD_PAD,
|
||||
SMC_NLA_STATS_PLOAD_8K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_16K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_32K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_64K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_128K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_256K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_512K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_1024K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_G_1024K, /* u64 */
|
||||
__SMC_NLA_STATS_PLOAD_MAX,
|
||||
SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_NLA_STATS_T_TX(RX)_RMB_STATS nested attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_RMB_PAD,
|
||||
SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_SIZE_SM_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_FULL_PEER_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_FULL_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_REUSE_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_ALLOC_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_DGRADE_CNT, /* u64 */
|
||||
__SMC_NLA_STATS_RMB_MAX,
|
||||
SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_NLA_STATS_SMCD_TECH and _SMCR_TECH nested attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_T_PAD,
|
||||
SMC_NLA_STATS_T_TX_RMB_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_RX_RMB_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_TXPLOAD_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_RXPLOAD_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_TX_RMB_STATS, /* nest */
|
||||
SMC_NLA_STATS_T_RX_RMB_STATS, /* nest */
|
||||
SMC_NLA_STATS_T_CLNT_V1_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_CLNT_V2_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_SRV_V1_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_SRV_V2_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_SENDPAGE_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_SPLICE_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_CORK_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_NDLY_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_URG_DATA_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_RX_BYTES, /* u64 */
|
||||
SMC_NLA_STATS_T_TX_BYTES, /* u64 */
|
||||
SMC_NLA_STATS_T_RX_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_TX_CNT, /* u64 */
|
||||
__SMC_NLA_STATS_T_MAX,
|
||||
SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_GEN_STATS attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_PAD,
|
||||
SMC_NLA_STATS_SMCD_TECH, /* nest */
|
||||
SMC_NLA_STATS_SMCR_TECH, /* nest */
|
||||
SMC_NLA_STATS_CLNT_HS_ERR_CNT, /* u64 */
|
||||
SMC_NLA_STATS_SRV_HS_ERR_CNT, /* u64 */
|
||||
__SMC_NLA_STATS_MAX,
|
||||
SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_GEN_FBACK_STATS attributes */
|
||||
enum {
|
||||
SMC_NLA_FBACK_STATS_PAD,
|
||||
SMC_NLA_FBACK_STATS_TYPE, /* u8 */
|
||||
SMC_NLA_FBACK_STATS_SRV_CNT, /* u64 */
|
||||
SMC_NLA_FBACK_STATS_CLNT_CNT, /* u64 */
|
||||
SMC_NLA_FBACK_STATS_RSN_CODE, /* u32 */
|
||||
SMC_NLA_FBACK_STATS_RSN_CNT, /* u16 */
|
||||
__SMC_NLA_FBACK_STATS_MAX,
|
||||
SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
|
||||
};
|
||||
#endif /* _UAPI_LINUX_SMC_H */
|
||||
|
||||
@@ -290,6 +290,8 @@ enum
|
||||
LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */
|
||||
LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */
|
||||
LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */
|
||||
LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */
|
||||
LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -38,6 +38,9 @@
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
/* The feature bitmap for virtio vsock */
|
||||
#define VIRTIO_VSOCK_F_SEQPACKET 1 /* SOCK_SEQPACKET supported */
|
||||
|
||||
struct virtio_vsock_config {
|
||||
__le64 guest_cid;
|
||||
} __attribute__((packed));
|
||||
@@ -65,6 +68,7 @@ struct virtio_vsock_hdr {
|
||||
|
||||
enum virtio_vsock_type {
|
||||
VIRTIO_VSOCK_TYPE_STREAM = 1,
|
||||
VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
|
||||
};
|
||||
|
||||
enum virtio_vsock_op {
|
||||
@@ -91,4 +95,9 @@ enum virtio_vsock_shutdown {
|
||||
VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
|
||||
};
|
||||
|
||||
/* VIRTIO_VSOCK_OP_RW flags values */
|
||||
enum virtio_vsock_rw {
|
||||
VIRTIO_VSOCK_SEQ_EOR = 1,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
|
||||
|
||||
16
include/uapi/linux/wwan.h
Normal file
16
include/uapi/linux/wwan.h
Normal file
@@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation.
|
||||
*/
|
||||
#ifndef _UAPI_WWAN_H_
|
||||
#define _UAPI_WWAN_H_
|
||||
|
||||
enum {
|
||||
IFLA_WWAN_UNSPEC,
|
||||
IFLA_WWAN_LINK_ID, /* u32 */
|
||||
|
||||
__IFLA_WWAN_MAX
|
||||
};
|
||||
#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_WWAN_H_ */
|
||||
Reference in New Issue
Block a user