Merge branch 'for-4.12/asus' into for-linus
This commit is contained in:
@@ -64,6 +64,7 @@ header-y += auto_fs.h
|
||||
header-y += auxvec.h
|
||||
header-y += ax25.h
|
||||
header-y += b1lli.h
|
||||
header-y += batman_adv.h
|
||||
header-y += baycom.h
|
||||
header-y += bcm933xx_hcs.h
|
||||
header-y += bfs_fs.h
|
||||
@@ -109,6 +110,7 @@ header-y += dlm_netlink.h
|
||||
header-y += dlm_plock.h
|
||||
header-y += dm-ioctl.h
|
||||
header-y += dm-log-userspace.h
|
||||
header-y += dma-buf.h
|
||||
header-y += dn.h
|
||||
header-y += dqblk_xfs.h
|
||||
header-y += edd.h
|
||||
@@ -194,6 +196,7 @@ header-y += if_tun.h
|
||||
header-y += if_tunnel.h
|
||||
header-y += if_vlan.h
|
||||
header-y += if_x25.h
|
||||
header-y += ife.h
|
||||
header-y += igmp.h
|
||||
header-y += ila.h
|
||||
header-y += in6.h
|
||||
@@ -305,6 +308,7 @@ header-y += netrom.h
|
||||
header-y += net_namespace.h
|
||||
header-y += net_tstamp.h
|
||||
header-y += nfc.h
|
||||
header-y += psample.h
|
||||
header-y += nfs2.h
|
||||
header-y += nfs3.h
|
||||
header-y += nfs4.h
|
||||
@@ -379,6 +383,10 @@ header-y += sctp.h
|
||||
header-y += sdla.h
|
||||
header-y += seccomp.h
|
||||
header-y += securebits.h
|
||||
header-y += seg6_genl.h
|
||||
header-y += seg6.h
|
||||
header-y += seg6_hmac.h
|
||||
header-y += seg6_iptunnel.h
|
||||
header-y += selinux_netlink.h
|
||||
header-y += sem.h
|
||||
header-y += serial_core.h
|
||||
@@ -458,6 +466,7 @@ header-y += virtio_console.h
|
||||
header-y += virtio_gpu.h
|
||||
header-y += virtio_ids.h
|
||||
header-y += virtio_input.h
|
||||
header-y += virtio_mmio.h
|
||||
header-y += virtio_net.h
|
||||
header-y += virtio_pci.h
|
||||
header-y += virtio_ring.h
|
||||
|
@@ -33,6 +33,8 @@ enum {
|
||||
BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE),
|
||||
BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE),
|
||||
BINDER_TYPE_FD = B_PACK_CHARS('f', 'd', '*', B_TYPE_LARGE),
|
||||
BINDER_TYPE_FDA = B_PACK_CHARS('f', 'd', 'a', B_TYPE_LARGE),
|
||||
BINDER_TYPE_PTR = B_PACK_CHARS('p', 't', '*', B_TYPE_LARGE),
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -48,6 +50,14 @@ typedef __u64 binder_size_t;
|
||||
typedef __u64 binder_uintptr_t;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct binder_object_header - header shared by all binder metadata objects.
|
||||
* @type: type of the object
|
||||
*/
|
||||
struct binder_object_header {
|
||||
__u32 type;
|
||||
};
|
||||
|
||||
/*
|
||||
* This is the flattened representation of a Binder object for transfer
|
||||
* between processes. The 'offsets' supplied as part of a binder transaction
|
||||
@@ -56,9 +66,8 @@ typedef __u64 binder_uintptr_t;
|
||||
* between processes.
|
||||
*/
|
||||
struct flat_binder_object {
|
||||
/* 8 bytes for large_flat_header. */
|
||||
__u32 type;
|
||||
__u32 flags;
|
||||
struct binder_object_header hdr;
|
||||
__u32 flags;
|
||||
|
||||
/* 8 bytes of data. */
|
||||
union {
|
||||
@@ -70,6 +79,84 @@ struct flat_binder_object {
|
||||
binder_uintptr_t cookie;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct binder_fd_object - describes a filedescriptor to be fixed up.
|
||||
* @hdr: common header structure
|
||||
* @pad_flags: padding to remain compatible with old userspace code
|
||||
* @pad_binder: padding to remain compatible with old userspace code
|
||||
* @fd: file descriptor
|
||||
* @cookie: opaque data, used by user-space
|
||||
*/
|
||||
struct binder_fd_object {
|
||||
struct binder_object_header hdr;
|
||||
__u32 pad_flags;
|
||||
union {
|
||||
binder_uintptr_t pad_binder;
|
||||
__u32 fd;
|
||||
};
|
||||
|
||||
binder_uintptr_t cookie;
|
||||
};
|
||||
|
||||
/* struct binder_buffer_object - object describing a userspace buffer
|
||||
* @hdr: common header structure
|
||||
* @flags: one or more BINDER_BUFFER_* flags
|
||||
* @buffer: address of the buffer
|
||||
* @length: length of the buffer
|
||||
* @parent: index in offset array pointing to parent buffer
|
||||
* @parent_offset: offset in @parent pointing to this buffer
|
||||
*
|
||||
* A binder_buffer object represents an object that the
|
||||
* binder kernel driver can copy verbatim to the target
|
||||
* address space. A buffer itself may be pointed to from
|
||||
* within another buffer, meaning that the pointer inside
|
||||
* that other buffer needs to be fixed up as well. This
|
||||
* can be done by setting the BINDER_BUFFER_FLAG_HAS_PARENT
|
||||
* flag in @flags, by setting @parent buffer to the index
|
||||
* in the offset array pointing to the parent binder_buffer_object,
|
||||
* and by setting @parent_offset to the offset in the parent buffer
|
||||
* at which the pointer to this buffer is located.
|
||||
*/
|
||||
struct binder_buffer_object {
|
||||
struct binder_object_header hdr;
|
||||
__u32 flags;
|
||||
binder_uintptr_t buffer;
|
||||
binder_size_t length;
|
||||
binder_size_t parent;
|
||||
binder_size_t parent_offset;
|
||||
};
|
||||
|
||||
enum {
|
||||
BINDER_BUFFER_FLAG_HAS_PARENT = 0x01,
|
||||
};
|
||||
|
||||
/* struct binder_fd_array_object - object describing an array of fds in a buffer
|
||||
* @hdr: common header structure
|
||||
* @num_fds: number of file descriptors in the buffer
|
||||
* @parent: index in offset array to buffer holding the fd array
|
||||
* @parent_offset: start offset of fd array in the buffer
|
||||
*
|
||||
* A binder_fd_array object represents an array of file
|
||||
* descriptors embedded in a binder_buffer_object. It is
|
||||
* different from a regular binder_buffer_object because it
|
||||
* describes a list of file descriptors to fix up, not an opaque
|
||||
* blob of memory, and hence the kernel needs to treat it differently.
|
||||
*
|
||||
* An example of how this would be used is with Android's
|
||||
* native_handle_t object, which is a struct with a list of integers
|
||||
* and a list of file descriptors. The native_handle_t struct itself
|
||||
* will be represented by a struct binder_buffer_objct, whereas the
|
||||
* embedded list of file descriptors is represented by a
|
||||
* struct binder_fd_array_object with that binder_buffer_object as
|
||||
* a parent.
|
||||
*/
|
||||
struct binder_fd_array_object {
|
||||
struct binder_object_header hdr;
|
||||
binder_size_t num_fds;
|
||||
binder_size_t parent;
|
||||
binder_size_t parent_offset;
|
||||
};
|
||||
|
||||
/*
|
||||
* On 64-bit platforms where user code may run in 32-bits the driver must
|
||||
* translate the buffer (and local binder) addresses appropriately.
|
||||
@@ -162,6 +249,11 @@ struct binder_transaction_data {
|
||||
} data;
|
||||
};
|
||||
|
||||
struct binder_transaction_data_sg {
|
||||
struct binder_transaction_data transaction_data;
|
||||
binder_size_t buffers_size;
|
||||
};
|
||||
|
||||
struct binder_ptr_cookie {
|
||||
binder_uintptr_t ptr;
|
||||
binder_uintptr_t cookie;
|
||||
@@ -346,6 +438,12 @@ enum binder_driver_command_protocol {
|
||||
/*
|
||||
* void *: cookie
|
||||
*/
|
||||
|
||||
BC_TRANSACTION_SG = _IOW('c', 17, struct binder_transaction_data_sg),
|
||||
BC_REPLY_SG = _IOW('c', 18, struct binder_transaction_data_sg),
|
||||
/*
|
||||
* binder_transaction_data_sg: the sent command.
|
||||
*/
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_BINDER_H */
|
||||
|
@@ -113,17 +113,13 @@ struct autofs_dev_ioctl {
|
||||
|
||||
static inline void init_autofs_dev_ioctl(struct autofs_dev_ioctl *in)
|
||||
{
|
||||
memset(in, 0, sizeof(struct autofs_dev_ioctl));
|
||||
memset(in, 0, AUTOFS_DEV_IOCTL_SIZE);
|
||||
in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR;
|
||||
in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR;
|
||||
in->size = sizeof(struct autofs_dev_ioctl);
|
||||
in->size = AUTOFS_DEV_IOCTL_SIZE;
|
||||
in->ioctlfd = -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* If you change this make sure you make the corresponding change
|
||||
* to autofs-dev-ioctl.c:lookup_ioctl()
|
||||
*/
|
||||
enum {
|
||||
/* Get various version info */
|
||||
AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71,
|
||||
@@ -160,8 +156,6 @@ enum {
|
||||
AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD,
|
||||
};
|
||||
|
||||
#define AUTOFS_IOCTL 0x93
|
||||
|
||||
#define AUTOFS_DEV_IOCTL_VERSION \
|
||||
_IOWR(AUTOFS_IOCTL, \
|
||||
AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl)
|
||||
|
@@ -61,12 +61,23 @@ struct autofs_packet_expire {
|
||||
char name[NAME_MAX+1];
|
||||
};
|
||||
|
||||
#define AUTOFS_IOC_READY _IO(0x93, 0x60)
|
||||
#define AUTOFS_IOC_FAIL _IO(0x93, 0x61)
|
||||
#define AUTOFS_IOC_CATATONIC _IO(0x93, 0x62)
|
||||
#define AUTOFS_IOC_PROTOVER _IOR(0x93, 0x63, int)
|
||||
#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93, 0x64, compat_ulong_t)
|
||||
#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93, 0x64, unsigned long)
|
||||
#define AUTOFS_IOC_EXPIRE _IOR(0x93, 0x65, struct autofs_packet_expire)
|
||||
#define AUTOFS_IOCTL 0x93
|
||||
|
||||
enum {
|
||||
AUTOFS_IOC_READY_CMD = 0x60,
|
||||
AUTOFS_IOC_FAIL_CMD,
|
||||
AUTOFS_IOC_CATATONIC_CMD,
|
||||
AUTOFS_IOC_PROTOVER_CMD,
|
||||
AUTOFS_IOC_SETTIMEOUT_CMD,
|
||||
AUTOFS_IOC_EXPIRE_CMD,
|
||||
};
|
||||
|
||||
#define AUTOFS_IOC_READY _IO(AUTOFS_IOCTL, AUTOFS_IOC_READY_CMD)
|
||||
#define AUTOFS_IOC_FAIL _IO(AUTOFS_IOCTL, AUTOFS_IOC_FAIL_CMD)
|
||||
#define AUTOFS_IOC_CATATONIC _IO(AUTOFS_IOCTL, AUTOFS_IOC_CATATONIC_CMD)
|
||||
#define AUTOFS_IOC_PROTOVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOVER_CMD, int)
|
||||
#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, compat_ulong_t)
|
||||
#define AUTOFS_IOC_SETTIMEOUT _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, unsigned long)
|
||||
#define AUTOFS_IOC_EXPIRE _IOR(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_CMD, struct autofs_packet_expire)
|
||||
|
||||
#endif /* _UAPI_LINUX_AUTO_FS_H */
|
||||
|
@@ -148,10 +148,16 @@ union autofs_v5_packet_union {
|
||||
autofs_packet_expire_direct_t expire_direct;
|
||||
};
|
||||
|
||||
#define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93, 0x66, int)
|
||||
#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
|
||||
#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
|
||||
#define AUTOFS_IOC_PROTOSUBVER _IOR(0x93, 0x67, int)
|
||||
#define AUTOFS_IOC_ASKUMOUNT _IOR(0x93, 0x70, int)
|
||||
enum {
|
||||
AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, /* AUTOFS_IOC_EXPIRE_CMD + 1 */
|
||||
AUTOFS_IOC_PROTOSUBVER_CMD,
|
||||
AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, /* AUTOFS_DEV_IOCTL_VERSION_CMD - 1 */
|
||||
};
|
||||
|
||||
#define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int)
|
||||
#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
|
||||
#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
|
||||
#define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int)
|
||||
#define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int)
|
||||
|
||||
#endif /* _LINUX_AUTO_FS4_H */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2016 B.A.T.M.A.N. contributors:
|
||||
/* Copyright (C) 2016-2017 B.A.T.M.A.N. contributors:
|
||||
*
|
||||
* Matthias Schiffer
|
||||
*
|
||||
|
@@ -63,6 +63,12 @@ struct bpf_insn {
|
||||
__s32 imm; /* signed immediate constant */
|
||||
};
|
||||
|
||||
/* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */
|
||||
struct bpf_lpm_trie_key {
|
||||
__u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */
|
||||
__u8 data[0]; /* Arbitrary size */
|
||||
};
|
||||
|
||||
/* BPF syscall commands, see bpf(2) man-page for details. */
|
||||
enum bpf_cmd {
|
||||
BPF_MAP_CREATE,
|
||||
@@ -89,6 +95,7 @@ enum bpf_map_type {
|
||||
BPF_MAP_TYPE_CGROUP_ARRAY,
|
||||
BPF_MAP_TYPE_LRU_HASH,
|
||||
BPF_MAP_TYPE_LRU_PERCPU_HASH,
|
||||
BPF_MAP_TYPE_LPM_TRIE,
|
||||
};
|
||||
|
||||
enum bpf_prog_type {
|
||||
@@ -437,6 +444,18 @@ union bpf_attr {
|
||||
* @xdp_md: pointer to xdp_md
|
||||
* @delta: An positive/negative integer to be added to xdp_md.data
|
||||
* Return: 0 on success or negative on error
|
||||
*
|
||||
* int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr)
|
||||
* Copy a NUL terminated string from unsafe address. In case the string
|
||||
* length is smaller than size, the target is not padded with further NUL
|
||||
* bytes. In case the string length is larger than size, just count-1
|
||||
* bytes are copied and the last byte is set to NUL.
|
||||
* @dst: destination address
|
||||
* @size: maximum number of bytes to copy, including the trailing NUL
|
||||
* @unsafe_ptr: unsafe address
|
||||
* Return:
|
||||
* > 0 length of the string including the trailing NUL on success
|
||||
* < 0 error
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -483,7 +502,8 @@ union bpf_attr {
|
||||
FN(set_hash_invalid), \
|
||||
FN(get_numa_node_id), \
|
||||
FN(skb_change_head), \
|
||||
FN(xdp_adjust_head),
|
||||
FN(xdp_adjust_head), \
|
||||
FN(probe_read_str),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
@@ -509,6 +529,7 @@ enum bpf_func_id {
|
||||
/* BPF_FUNC_l4_csum_replace flags. */
|
||||
#define BPF_F_PSEUDO_HDR (1ULL << 4)
|
||||
#define BPF_F_MARK_MANGLED_0 (1ULL << 5)
|
||||
#define BPF_F_MARK_ENFORCE (1ULL << 6)
|
||||
|
||||
/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */
|
||||
#define BPF_F_INGRESS (1ULL << 0)
|
||||
|
@@ -127,9 +127,16 @@ enum {
|
||||
IFLA_CAN_BERR_COUNTER,
|
||||
IFLA_CAN_DATA_BITTIMING,
|
||||
IFLA_CAN_DATA_BITTIMING_CONST,
|
||||
IFLA_CAN_TERMINATION,
|
||||
IFLA_CAN_TERMINATION_CONST,
|
||||
IFLA_CAN_BITRATE_CONST,
|
||||
IFLA_CAN_DATA_BITRATE_CONST,
|
||||
__IFLA_CAN_MAX
|
||||
};
|
||||
|
||||
#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
|
||||
|
||||
/* u16 termination range: 1..65535 Ohms */
|
||||
#define CAN_TERMINATION_DISABLED 0
|
||||
|
||||
#endif /* !_UAPI_CAN_NETLINK_H */
|
||||
|
@@ -57,8 +57,14 @@ enum devlink_command {
|
||||
DEVLINK_CMD_SB_OCC_SNAPSHOT,
|
||||
DEVLINK_CMD_SB_OCC_MAX_CLEAR,
|
||||
|
||||
DEVLINK_CMD_ESWITCH_MODE_GET,
|
||||
DEVLINK_CMD_ESWITCH_MODE_SET,
|
||||
DEVLINK_CMD_ESWITCH_GET,
|
||||
#define DEVLINK_CMD_ESWITCH_MODE_GET /* obsolete, never use this! */ \
|
||||
DEVLINK_CMD_ESWITCH_GET
|
||||
|
||||
DEVLINK_CMD_ESWITCH_SET,
|
||||
#define DEVLINK_CMD_ESWITCH_MODE_SET /* obsolete, never use this! */ \
|
||||
DEVLINK_CMD_ESWITCH_SET
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
__DEVLINK_CMD_MAX,
|
||||
|
@@ -63,5 +63,10 @@
|
||||
#define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */
|
||||
#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */
|
||||
|
||||
#define AT_STATX_SYNC_TYPE 0x6000 /* Type of synchronisation required from statx() */
|
||||
#define AT_STATX_SYNC_AS_STAT 0x0000 /* - Do whatever stat() does */
|
||||
#define AT_STATX_FORCE_SYNC 0x2000 /* - Force the attributes to be sync'd with the server */
|
||||
#define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */
|
||||
|
||||
|
||||
#endif /* _UAPI_LINUX_FCNTL_H */
|
||||
|
@@ -132,6 +132,7 @@ struct inodes_stat_t {
|
||||
#define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */
|
||||
|
||||
/* These sb flags are internal to the kernel */
|
||||
#define MS_SUBMOUNT (1<<26)
|
||||
#define MS_NOREMOTELOCK (1<<27)
|
||||
#define MS_NOSEC (1<<28)
|
||||
#define MS_BORN (1<<29)
|
||||
|
@@ -24,6 +24,10 @@
|
||||
#include <linux/socket.h> /* for "struct sockaddr" et al */
|
||||
#include <linux/compiler.h> /* for "__user" et al */
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#include <sys/socket.h> /* for struct sockaddr. */
|
||||
#endif
|
||||
|
||||
#if __UAPI_DEF_IF_IFNAMSIZ
|
||||
#define IFNAMSIZ 16
|
||||
#endif /* __UAPI_DEF_IF_IFNAMSIZ */
|
||||
|
@@ -118,6 +118,7 @@ enum {
|
||||
IFLA_BRIDGE_FLAGS,
|
||||
IFLA_BRIDGE_MODE,
|
||||
IFLA_BRIDGE_VLAN_INFO,
|
||||
IFLA_BRIDGE_VLAN_TUNNEL_INFO,
|
||||
__IFLA_BRIDGE_MAX,
|
||||
};
|
||||
#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
|
||||
@@ -134,6 +135,16 @@ struct bridge_vlan_info {
|
||||
__u16 vid;
|
||||
};
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC,
|
||||
IFLA_BRIDGE_VLAN_TUNNEL_ID,
|
||||
IFLA_BRIDGE_VLAN_TUNNEL_VID,
|
||||
IFLA_BRIDGE_VLAN_TUNNEL_FLAGS,
|
||||
__IFLA_BRIDGE_VLAN_TUNNEL_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_VLAN_TUNNEL_MAX (__IFLA_BRIDGE_VLAN_TUNNEL_MAX - 1)
|
||||
|
||||
struct bridge_vlan_xstats {
|
||||
__u64 rx_bytes;
|
||||
__u64 rx_packets;
|
||||
|
@@ -93,6 +93,7 @@
|
||||
#define ETH_P_NCSI 0x88F8 /* NCSI protocol */
|
||||
#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
|
||||
#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
|
||||
#define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */
|
||||
#define ETH_P_TDLS 0x890D /* TDLS */
|
||||
#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
|
||||
#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
|
||||
|
@@ -321,6 +321,8 @@ enum {
|
||||
IFLA_BRPORT_MULTICAST_ROUTER,
|
||||
IFLA_BRPORT_PAD,
|
||||
IFLA_BRPORT_MCAST_FLOOD,
|
||||
IFLA_BRPORT_MCAST_TO_UCAST,
|
||||
IFLA_BRPORT_VLAN_TUNNEL,
|
||||
__IFLA_BRPORT_MAX
|
||||
};
|
||||
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
|
||||
@@ -847,6 +849,7 @@ enum {
|
||||
IFLA_STATS_LINK_XSTATS,
|
||||
IFLA_STATS_LINK_XSTATS_SLAVE,
|
||||
IFLA_STATS_LINK_OFFLOAD_XSTATS,
|
||||
IFLA_STATS_AF_SPEC,
|
||||
__IFLA_STATS_MAX,
|
||||
};
|
||||
|
||||
|
18
include/uapi/linux/ife.h
Normal file
18
include/uapi/linux/ife.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef __UAPI_IFE_H
|
||||
#define __UAPI_IFE_H
|
||||
|
||||
#define IFE_METAHDRLEN 2
|
||||
|
||||
enum {
|
||||
IFE_META_SKBMARK = 1,
|
||||
IFE_META_HASHID,
|
||||
IFE_META_PRIO,
|
||||
IFE_META_QMAP,
|
||||
IFE_META_TCINDEX,
|
||||
__IFE_META_MAX
|
||||
};
|
||||
|
||||
/*Can be overridden at runtime by module option*/
|
||||
#define IFE_META_MAX (__IFE_META_MAX - 1)
|
||||
|
||||
#endif
|
@@ -53,7 +53,7 @@ struct igmpv3_grec {
|
||||
struct igmpv3_report {
|
||||
__u8 type;
|
||||
__u8 resv1;
|
||||
__be16 csum;
|
||||
__sum16 csum;
|
||||
__be16 resv2;
|
||||
__be16 ngrec;
|
||||
struct igmpv3_grec grec[0];
|
||||
@@ -62,7 +62,7 @@ struct igmpv3_report {
|
||||
struct igmpv3_query {
|
||||
__u8 type;
|
||||
__u8 code;
|
||||
__be16 csum;
|
||||
__sum16 csum;
|
||||
__be32 group;
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 qrv:3,
|
||||
|
@@ -42,6 +42,7 @@ enum iio_chan_type {
|
||||
IIO_ELECTRICALCONDUCTIVITY,
|
||||
IIO_COUNT,
|
||||
IIO_INDEX,
|
||||
IIO_GRAVITY,
|
||||
};
|
||||
|
||||
enum iio_modifier {
|
||||
|
@@ -2,6 +2,8 @@
|
||||
#define _IP6_TUNNEL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/if.h> /* For IFNAMSIZ. */
|
||||
#include <linux/in6.h> /* For struct in6_addr. */
|
||||
|
||||
#define IPV6_TLV_TNL_ENCAP_LIMIT 4
|
||||
#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4
|
||||
|
@@ -182,6 +182,7 @@ enum {
|
||||
DEVCONF_SEG6_ENABLED,
|
||||
DEVCONF_SEG6_REQUIRE_HMAC,
|
||||
DEVCONF_ENHANCED_DAD,
|
||||
DEVCONF_ADDR_GEN_MODE,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#define _UAPI_LINUX_IPV6_ROUTE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/in6.h> /* For struct in6_addr. */
|
||||
|
||||
#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
|
||||
#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)
|
||||
|
@@ -218,7 +218,8 @@ struct kvm_hyperv_exit {
|
||||
struct kvm_run {
|
||||
/* in */
|
||||
__u8 request_interrupt_window;
|
||||
__u8 padding1[7];
|
||||
__u8 immediate_exit;
|
||||
__u8 padding1[6];
|
||||
|
||||
/* out */
|
||||
__u32 exit_reason;
|
||||
@@ -685,6 +686,13 @@ struct kvm_ppc_smmu_info {
|
||||
struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
|
||||
};
|
||||
|
||||
/* for KVM_PPC_RESIZE_HPT_{PREPARE,COMMIT} */
|
||||
struct kvm_ppc_resize_hpt {
|
||||
__u64 flags;
|
||||
__u32 shift;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#define KVMIO 0xAE
|
||||
|
||||
/* machine type bits, to be used as argument to KVM_CREATE_VM */
|
||||
@@ -871,6 +879,10 @@ struct kvm_ppc_smmu_info {
|
||||
#define KVM_CAP_S390_USER_INSTR0 130
|
||||
#define KVM_CAP_MSI_DEVID 131
|
||||
#define KVM_CAP_PPC_HTM 132
|
||||
#define KVM_CAP_SPAPR_RESIZE_HPT 133
|
||||
#define KVM_CAP_PPC_MMU_RADIX 134
|
||||
#define KVM_CAP_PPC_MMU_HASH_V3 135
|
||||
#define KVM_CAP_IMMEDIATE_EXIT 136
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -1187,6 +1199,13 @@ struct kvm_s390_ucas_mapping {
|
||||
#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr)
|
||||
/* Available with KVM_CAP_PPC_RTAS */
|
||||
#define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args)
|
||||
/* Available with KVM_CAP_SPAPR_RESIZE_HPT */
|
||||
#define KVM_PPC_RESIZE_HPT_PREPARE _IOR(KVMIO, 0xad, struct kvm_ppc_resize_hpt)
|
||||
#define KVM_PPC_RESIZE_HPT_COMMIT _IOR(KVMIO, 0xae, struct kvm_ppc_resize_hpt)
|
||||
/* Available with KVM_CAP_PPC_RADIX_MMU or KVM_CAP_PPC_HASH_MMU_V3 */
|
||||
#define KVM_PPC_CONFIGURE_V3_MMU _IOW(KVMIO, 0xaf, struct kvm_ppc_mmuv3_cfg)
|
||||
/* Available with KVM_CAP_PPC_RADIX_MMU */
|
||||
#define KVM_PPC_GET_RMMU_INFO _IOW(KVMIO, 0xb0, struct kvm_ppc_rmmu_info)
|
||||
|
||||
/* ioctl for vm fd */
|
||||
#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#define KVM_EFAULT EFAULT
|
||||
#define KVM_E2BIG E2BIG
|
||||
#define KVM_EPERM EPERM
|
||||
#define KVM_EOPNOTSUPP 95
|
||||
|
||||
#define KVM_HC_VAPIC_POLL_IRQ 1
|
||||
#define KVM_HC_MMU_OP 2
|
||||
@@ -23,6 +24,7 @@
|
||||
#define KVM_HC_MIPS_GET_CLOCK_FREQ 6
|
||||
#define KVM_HC_MIPS_EXIT_VM 7
|
||||
#define KVM_HC_MIPS_CONSOLE_OUTPUT 8
|
||||
#define KVM_HC_CLOCK_PAIRING 9
|
||||
|
||||
/*
|
||||
* hypercalls use architecture specific
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#define _UAPI__LINUX_LLC_H
|
||||
|
||||
#include <linux/socket.h>
|
||||
#include <linux/if.h> /* For IFHWADDRLEN. */
|
||||
|
||||
#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */
|
||||
struct sockaddr_llc {
|
||||
|
@@ -43,4 +43,34 @@ struct mpls_label {
|
||||
|
||||
#define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */
|
||||
|
||||
/* These are embedded into IFLA_STATS_AF_SPEC:
|
||||
* [IFLA_STATS_AF_SPEC]
|
||||
* -> [AF_MPLS]
|
||||
* -> [MPLS_STATS_xxx]
|
||||
*
|
||||
* Attributes:
|
||||
* [MPLS_STATS_LINK] = {
|
||||
* struct mpls_link_stats
|
||||
* }
|
||||
*/
|
||||
enum {
|
||||
MPLS_STATS_UNSPEC, /* also used as 64bit pad attribute */
|
||||
MPLS_STATS_LINK,
|
||||
__MPLS_STATS_MAX,
|
||||
};
|
||||
|
||||
#define MPLS_STATS_MAX (__MPLS_STATS_MAX - 1)
|
||||
|
||||
struct mpls_link_stats {
|
||||
__u64 rx_packets; /* total packets received */
|
||||
__u64 tx_packets; /* total packets transmitted */
|
||||
__u64 rx_bytes; /* total bytes received */
|
||||
__u64 tx_bytes; /* total bytes transmitted */
|
||||
__u64 rx_errors; /* bad packets received */
|
||||
__u64 tx_errors; /* packet transmit problems */
|
||||
__u64 rx_dropped; /* packet dropped on receive */
|
||||
__u64 tx_dropped; /* packet dropped on transmit */
|
||||
__u64 rx_noroute; /* no route for packet dest */
|
||||
};
|
||||
|
||||
#endif /* _UAPI_MPLS_H */
|
||||
|
@@ -18,6 +18,8 @@
|
||||
#ifndef _LINUX_MQUEUE_H
|
||||
#define _LINUX_MQUEUE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define MQ_PRIO_MAX 32768
|
||||
/* per-uid limit of kernel memory used by mqueue, in bytes */
|
||||
#define MQ_BYTES_MAX 819200
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <linux/sockios.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/in.h> /* For struct in_addr. */
|
||||
|
||||
/* Based on the MROUTING 3.5 defines primarily to keep
|
||||
* source compatibility with BSD.
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/sockios.h>
|
||||
#include <linux/in6.h> /* For struct sockaddr_in6. */
|
||||
|
||||
/*
|
||||
* Based on the MROUTING 3.5 defines primarily to keep
|
||||
|
@@ -26,6 +26,7 @@ enum {
|
||||
NDA_IFINDEX,
|
||||
NDA_MASTER,
|
||||
NDA_LINK_NETNSID,
|
||||
NDA_SRC_VNI,
|
||||
__NDA_MAX
|
||||
};
|
||||
|
||||
|
@@ -16,6 +16,7 @@ enum {
|
||||
NETCONFA_MC_FORWARDING,
|
||||
NETCONFA_PROXY_NEIGH,
|
||||
NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
NETCONFA_INPUT,
|
||||
__NETCONFA_MAX
|
||||
};
|
||||
#define NETCONFA_MAX (__NETCONFA_MAX - 1)
|
||||
|
@@ -3,7 +3,6 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/in.h>
|
||||
#include <linux/in6.h>
|
||||
|
||||
|
@@ -82,6 +82,10 @@ enum ip_conntrack_status {
|
||||
IPS_DYING_BIT = 9,
|
||||
IPS_DYING = (1 << IPS_DYING_BIT),
|
||||
|
||||
/* Bits that cannot be altered from userland. */
|
||||
IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK |
|
||||
IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING),
|
||||
|
||||
/* Connection has fixed timeout. */
|
||||
IPS_FIXED_TIMEOUT_BIT = 10,
|
||||
IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
|
||||
|
@@ -207,6 +207,7 @@ enum nft_chain_attributes {
|
||||
* @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes)
|
||||
* @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64)
|
||||
* @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN)
|
||||
* @NFTA_RULE_ID: uniquely identifies a rule in a transaction (NLA_U32)
|
||||
*/
|
||||
enum nft_rule_attributes {
|
||||
NFTA_RULE_UNSPEC,
|
||||
@@ -218,6 +219,7 @@ enum nft_rule_attributes {
|
||||
NFTA_RULE_POSITION,
|
||||
NFTA_RULE_USERDATA,
|
||||
NFTA_RULE_PAD,
|
||||
NFTA_RULE_ID,
|
||||
__NFTA_RULE_MAX
|
||||
};
|
||||
#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
|
||||
@@ -704,13 +706,32 @@ enum nft_payload_attributes {
|
||||
};
|
||||
#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
|
||||
|
||||
enum nft_exthdr_flags {
|
||||
NFT_EXTHDR_F_PRESENT = (1 << 0),
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nft_exthdr_attributes - nf_tables IPv6 extension header expression netlink attributes
|
||||
* enum nft_exthdr_op - nf_tables match options
|
||||
*
|
||||
* @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
|
||||
* @NFT_EXTHDR_OP_TCP: match against tcp options
|
||||
*/
|
||||
enum nft_exthdr_op {
|
||||
NFT_EXTHDR_OP_IPV6,
|
||||
NFT_EXTHDR_OP_TCPOPT,
|
||||
__NFT_EXTHDR_OP_MAX
|
||||
};
|
||||
#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_exthdr_attributes - nf_tables extension header expression netlink attributes
|
||||
*
|
||||
* @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers)
|
||||
* @NFTA_EXTHDR_TYPE: extension header type (NLA_U8)
|
||||
* @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32)
|
||||
* @NFTA_EXTHDR_LEN: extension header length (NLA_U32)
|
||||
* @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32)
|
||||
* @NFTA_EXTHDR_OP: option match type (NLA_U8)
|
||||
*/
|
||||
enum nft_exthdr_attributes {
|
||||
NFTA_EXTHDR_UNSPEC,
|
||||
@@ -718,6 +739,8 @@ enum nft_exthdr_attributes {
|
||||
NFTA_EXTHDR_TYPE,
|
||||
NFTA_EXTHDR_OFFSET,
|
||||
NFTA_EXTHDR_LEN,
|
||||
NFTA_EXTHDR_FLAGS,
|
||||
NFTA_EXTHDR_OP,
|
||||
__NFTA_EXTHDR_MAX
|
||||
};
|
||||
#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
|
||||
@@ -860,6 +883,11 @@ enum nft_rt_attributes {
|
||||
* @NFT_CT_PROTOCOL: conntrack layer 4 protocol
|
||||
* @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source
|
||||
* @NFT_CT_PROTO_DST: conntrack layer 4 protocol destination
|
||||
* @NFT_CT_LABELS: conntrack labels
|
||||
* @NFT_CT_PKTS: conntrack packets
|
||||
* @NFT_CT_BYTES: conntrack bytes
|
||||
* @NFT_CT_AVGPKT: conntrack average bytes per packet
|
||||
* @NFT_CT_ZONE: conntrack zone
|
||||
*/
|
||||
enum nft_ct_keys {
|
||||
NFT_CT_STATE,
|
||||
@@ -878,6 +906,8 @@ enum nft_ct_keys {
|
||||
NFT_CT_LABELS,
|
||||
NFT_CT_PKTS,
|
||||
NFT_CT_BYTES,
|
||||
NFT_CT_AVGPKT,
|
||||
NFT_CT_ZONE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -65,4 +65,16 @@ struct nfgenmsg {
|
||||
#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
|
||||
#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1
|
||||
|
||||
/**
|
||||
* enum nfnl_batch_attributes - nfnetlink batch netlink attributes
|
||||
*
|
||||
* @NFNL_BATCH_GENID: generation ID for this changeset (NLA_U32)
|
||||
*/
|
||||
enum nfnl_batch_attributes {
|
||||
NFNL_BATCH_UNSPEC,
|
||||
NFNL_BATCH_GENID,
|
||||
__NFNL_BATCH_MAX
|
||||
};
|
||||
#define NFNL_BATCH_MAX (__NFNL_BATCH_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_NFNETLINK_H */
|
||||
|
@@ -36,7 +36,7 @@ enum nfqnl_vlan_attr {
|
||||
NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */
|
||||
__NFQA_VLAN_MAX,
|
||||
};
|
||||
#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX + 1)
|
||||
#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX - 1)
|
||||
|
||||
enum nfqnl_attr_type {
|
||||
NFQA_UNSPEC,
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#define _UAPI_XT_HASHLIMIT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/limits.h>
|
||||
#include <linux/if.h>
|
||||
|
||||
/* timings are in milliseconds. */
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#define NETLINK_ECRYPTFS 19
|
||||
#define NETLINK_RDMA 20
|
||||
#define NETLINK_CRYPTO 21 /* Crypto layer */
|
||||
#define NETLINK_SMC 22 /* SMC monitoring */
|
||||
|
||||
#define NETLINK_INET_DIAG NETLINK_SOCK_DIAG
|
||||
|
||||
|
@@ -32,7 +32,8 @@
|
||||
#define NFSEXP_ASYNC 0x0010
|
||||
#define NFSEXP_GATHERED_WRITES 0x0020
|
||||
#define NFSEXP_NOREADDIRPLUS 0x0040
|
||||
/* 80 100 currently unused */
|
||||
#define NFSEXP_SECURITY_LABEL 0x0080
|
||||
/* 0x100 currently unused */
|
||||
#define NFSEXP_NOHIDE 0x0200
|
||||
#define NFSEXP_NOSUBTREECHECK 0x0400
|
||||
#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */
|
||||
@@ -53,7 +54,7 @@
|
||||
#define NFSEXP_PNFS 0x20000
|
||||
|
||||
/* All flags that we claim to support. (Note we don't support NOACL.) */
|
||||
#define NFSEXP_ALLFLAGS 0x3FE7F
|
||||
#define NFSEXP_ALLFLAGS 0x3FEFF
|
||||
|
||||
/* The flags that may vary depending on security flavor: */
|
||||
#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
|
||||
|
@@ -10,7 +10,7 @@
|
||||
* Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
|
||||
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
|
||||
* Copyright 2008 Colin McCabe <colin@cozybit.com>
|
||||
* Copyright 2015 Intel Deutschland GmbH
|
||||
* Copyright 2015-2017 Intel Deutschland GmbH
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -854,12 +854,15 @@
|
||||
* cfg80211_scan_done().
|
||||
*
|
||||
* @NL80211_CMD_START_NAN: Start NAN operation, identified by its
|
||||
* %NL80211_ATTR_WDEV interface. This interface must have been previously
|
||||
* created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the
|
||||
* NAN interface will create or join a cluster. This command must have a
|
||||
* valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional
|
||||
* %NL80211_ATTR_NAN_DUAL attributes.
|
||||
* After this command NAN functions can be added.
|
||||
* %NL80211_ATTR_WDEV interface. This interface must have been
|
||||
* previously created with %NL80211_CMD_NEW_INTERFACE. After it
|
||||
* has been started, the NAN interface will create or join a
|
||||
* cluster. This command must have a valid
|
||||
* %NL80211_ATTR_NAN_MASTER_PREF attribute and optional
|
||||
* %NL80211_ATTR_BANDS attributes. If %NL80211_ATTR_BANDS is
|
||||
* omitted or set to 0, it means don't-care and the device will
|
||||
* decide what to use. After this command NAN functions can be
|
||||
* added.
|
||||
* @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by
|
||||
* its %NL80211_ATTR_WDEV interface.
|
||||
* @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined
|
||||
@@ -880,10 +883,14 @@
|
||||
* This command is also used as a notification sent when a NAN function is
|
||||
* terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID
|
||||
* and %NL80211_ATTR_COOKIE attributes.
|
||||
* @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN configuration. NAN
|
||||
* must be operational (%NL80211_CMD_START_NAN was executed).
|
||||
* It must contain at least one of the following attributes:
|
||||
* %NL80211_ATTR_NAN_MASTER_PREF, %NL80211_ATTR_NAN_DUAL.
|
||||
* @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN
|
||||
* configuration. NAN must be operational (%NL80211_CMD_START_NAN
|
||||
* was executed). It must contain at least one of the following
|
||||
* attributes: %NL80211_ATTR_NAN_MASTER_PREF,
|
||||
* %NL80211_ATTR_BANDS. If %NL80211_ATTR_BANDS is omitted, the
|
||||
* current configuration is not changed. If it is present but
|
||||
* set to zero, the configuration is changed to don't-care
|
||||
* (i.e. the device can decide what to do).
|
||||
* @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported.
|
||||
* This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and
|
||||
* %NL80211_ATTR_COOKIE.
|
||||
@@ -1822,6 +1829,8 @@ enum nl80211_commands {
|
||||
* and remove functions. NAN notifications will be sent in unicast to that
|
||||
* socket. Without this attribute, any socket can add functions and the
|
||||
* notifications will be sent to the %NL80211_MCGRP_NAN multicast group.
|
||||
* If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the
|
||||
* station will deauthenticate when the socket is closed.
|
||||
*
|
||||
* @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
|
||||
* the TDLS link initiator.
|
||||
@@ -1961,10 +1970,13 @@ enum nl80211_commands {
|
||||
* %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0.
|
||||
* Also, values 1 and 255 are reserved for certification purposes and
|
||||
* should not be used during a normal device operation.
|
||||
* @NL80211_ATTR_NAN_DUAL: NAN dual band operation config (see
|
||||
* &enum nl80211_nan_dual_band_conf). This attribute is used with
|
||||
* %NL80211_CMD_START_NAN and optionally with
|
||||
* %NL80211_CMD_CHANGE_NAN_CONFIG.
|
||||
* @NL80211_ATTR_BANDS: operating bands configuration. This is a u32
|
||||
* bitmask of BIT(NL80211_BAND_*) as described in %enum
|
||||
* nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0
|
||||
* would be set. This attribute is used with
|
||||
* %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG, and
|
||||
* it is optional. If no bands are set, it means don't-care and
|
||||
* the device will decide what to use.
|
||||
* @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See
|
||||
* &enum nl80211_nan_func_attributes for description of this nested
|
||||
* attribute.
|
||||
@@ -1982,6 +1994,24 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also
|
||||
* used in various commands/events for specifying the BSSID.
|
||||
*
|
||||
* @NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI: Relative RSSI threshold by which
|
||||
* other BSSs has to be better or slightly worse than the current
|
||||
* connected BSS so that they get reported to user space.
|
||||
* This will give an opportunity to userspace to consider connecting to
|
||||
* other matching BSSs which have better or slightly worse RSSI than
|
||||
* the current connected BSS by using an offloaded operation to avoid
|
||||
* unnecessary wakeups.
|
||||
*
|
||||
* @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in
|
||||
* the specified band is to be adjusted before doing
|
||||
* %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparision to figure out
|
||||
* better BSSs. The attribute value is a packed structure
|
||||
* value as specified by &struct nl80211_bss_select_rssi_adjust.
|
||||
*
|
||||
* @NL80211_ATTR_TIMEOUT_REASON: The reason for which an operation timed out.
|
||||
* u32 attribute with an &enum nl80211_timeout_reason value. This is used,
|
||||
* e.g., with %NL80211_CMD_CONNECT event.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -2377,7 +2407,7 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_MESH_PEER_AID,
|
||||
|
||||
NL80211_ATTR_NAN_MASTER_PREF,
|
||||
NL80211_ATTR_NAN_DUAL,
|
||||
NL80211_ATTR_BANDS,
|
||||
NL80211_ATTR_NAN_FUNC,
|
||||
NL80211_ATTR_NAN_MATCH,
|
||||
|
||||
@@ -2388,6 +2418,11 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_BSSID,
|
||||
|
||||
NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI,
|
||||
NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST,
|
||||
|
||||
NL80211_ATTR_TIMEOUT_REASON,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -3080,6 +3115,13 @@ enum nl80211_reg_rule_attr {
|
||||
* how this API was implemented in the past. Also, due to the same problem,
|
||||
* the only way to create a matchset with only an RSSI filter (with this
|
||||
* attribute) is if there's only a single matchset with the RSSI attribute.
|
||||
* @NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI: Flag indicating whether
|
||||
* %NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to be used as absolute RSSI or
|
||||
* relative to current bss's RSSI.
|
||||
* @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST: When present the RSSI level for
|
||||
* BSS-es in the specified band is to be adjusted before doing
|
||||
* RSSI-based BSS selection. The attribute value is a packed structure
|
||||
* value as specified by &struct nl80211_bss_select_rssi_adjust.
|
||||
* @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
|
||||
* attribute number currently defined
|
||||
* @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
|
||||
@@ -3089,6 +3131,8 @@ enum nl80211_sched_scan_match_attr {
|
||||
|
||||
NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
|
||||
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
|
||||
NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
|
||||
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
|
||||
@@ -3918,6 +3962,8 @@ enum nl80211_ps_state {
|
||||
* %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting.
|
||||
* @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon
|
||||
* loss event
|
||||
* @NL80211_ATTR_CQM_RSSI_LEVEL: the RSSI value in dBm that triggered the
|
||||
* RSSI threshold event.
|
||||
* @__NL80211_ATTR_CQM_AFTER_LAST: internal
|
||||
* @NL80211_ATTR_CQM_MAX: highest key attribute
|
||||
*/
|
||||
@@ -3931,6 +3977,7 @@ enum nl80211_attr_cqm {
|
||||
NL80211_ATTR_CQM_TXE_PKTS,
|
||||
NL80211_ATTR_CQM_TXE_INTVL,
|
||||
NL80211_ATTR_CQM_BEACON_LOSS_EVENT,
|
||||
NL80211_ATTR_CQM_RSSI_LEVEL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_ATTR_CQM_AFTER_LAST,
|
||||
@@ -4699,6 +4746,13 @@ enum nl80211_feature_flags {
|
||||
* configuration (AP/mesh) with VHT rates.
|
||||
* @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup
|
||||
* with user space SME (NL80211_CMD_AUTHENTICATE) in station mode.
|
||||
* @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA: This driver supports randomized TA
|
||||
* in @NL80211_CMD_FRAME while not associated.
|
||||
* @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED: This driver supports
|
||||
* randomized TA in @NL80211_CMD_FRAME while associated.
|
||||
* @NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI: The driver supports sched_scan
|
||||
* for reporting BSSs with better RSSI than the current connected BSS
|
||||
* (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI).
|
||||
*
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
@@ -4714,6 +4768,9 @@ enum nl80211_ext_feature_index {
|
||||
NL80211_EXT_FEATURE_BEACON_RATE_HT,
|
||||
NL80211_EXT_FEATURE_BEACON_RATE_VHT,
|
||||
NL80211_EXT_FEATURE_FILS_STA,
|
||||
NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA,
|
||||
NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED,
|
||||
NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI,
|
||||
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
@@ -4752,6 +4809,21 @@ enum nl80211_connect_failed_reason {
|
||||
NL80211_CONN_FAIL_BLOCKED_CLIENT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_timeout_reason - timeout reasons
|
||||
*
|
||||
* @NL80211_TIMEOUT_UNSPECIFIED: Timeout reason unspecified.
|
||||
* @NL80211_TIMEOUT_SCAN: Scan (AP discovery) timed out.
|
||||
* @NL80211_TIMEOUT_AUTH: Authentication timed out.
|
||||
* @NL80211_TIMEOUT_ASSOC: Association timed out.
|
||||
*/
|
||||
enum nl80211_timeout_reason {
|
||||
NL80211_TIMEOUT_UNSPECIFIED,
|
||||
NL80211_TIMEOUT_SCAN,
|
||||
NL80211_TIMEOUT_AUTH,
|
||||
NL80211_TIMEOUT_ASSOC,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_scan_flags - scan request control flags
|
||||
*
|
||||
@@ -4966,8 +5038,9 @@ enum nl80211_sched_scan_plan {
|
||||
/**
|
||||
* struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters.
|
||||
*
|
||||
* @band: band of BSS that must match for RSSI value adjustment.
|
||||
* @delta: value used to adjust the RSSI value of matching BSS.
|
||||
* @band: band of BSS that must match for RSSI value adjustment. The value
|
||||
* of this field is according to &enum nl80211_band.
|
||||
* @delta: value used to adjust the RSSI value of matching BSS in dB.
|
||||
*/
|
||||
struct nl80211_bss_select_rssi_adjust {
|
||||
__u8 band;
|
||||
@@ -5007,21 +5080,6 @@ enum nl80211_bss_select_attr {
|
||||
NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_nan_dual_band_conf - NAN dual band configuration
|
||||
*
|
||||
* Defines the NAN dual band mode of operation
|
||||
*
|
||||
* @NL80211_NAN_BAND_DEFAULT: device default mode
|
||||
* @NL80211_NAN_BAND_2GHZ: 2.4GHz mode
|
||||
* @NL80211_NAN_BAND_5GHZ: 5GHz mode
|
||||
*/
|
||||
enum nl80211_nan_dual_band_conf {
|
||||
NL80211_NAN_BAND_DEFAULT = 1 << 0,
|
||||
NL80211_NAN_BAND_2GHZ = 1 << 1,
|
||||
NL80211_NAN_BAND_5GHZ = 1 << 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_nan_function_type - NAN function type
|
||||
*
|
||||
|
@@ -6,8 +6,13 @@
|
||||
#define NSIO 0xb7
|
||||
|
||||
/* Returns a file descriptor that refers to an owning user namespace */
|
||||
#define NS_GET_USERNS _IO(NSIO, 0x1)
|
||||
#define NS_GET_USERNS _IO(NSIO, 0x1)
|
||||
/* Returns a file descriptor that refers to a parent namespace */
|
||||
#define NS_GET_PARENT _IO(NSIO, 0x2)
|
||||
#define NS_GET_PARENT _IO(NSIO, 0x2)
|
||||
/* Returns the type of namespace (CLONE_NEW* value) referred to by
|
||||
file descriptor */
|
||||
#define NS_GET_NSTYPE _IO(NSIO, 0x3)
|
||||
/* Get owner UID (in the caller's user namespace) for a user namespace */
|
||||
#define NS_GET_OWNER_UID _IO(NSIO, 0x4)
|
||||
|
||||
#endif /* __LINUX_NSFS_H */
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007-2013 Nicira, Inc.
|
||||
* Copyright (c) 2007-2017 Nicira, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
@@ -331,6 +331,8 @@ enum ovs_key_attr {
|
||||
OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */
|
||||
OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */
|
||||
OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */
|
||||
OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, /* struct ovs_key_ct_tuple_ipv4 */
|
||||
OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, /* struct ovs_key_ct_tuple_ipv6 */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */
|
||||
@@ -446,9 +448,13 @@ struct ovs_key_nd {
|
||||
__u8 nd_tll[ETH_ALEN];
|
||||
};
|
||||
|
||||
#define OVS_CT_LABELS_LEN 16
|
||||
#define OVS_CT_LABELS_LEN_32 4
|
||||
#define OVS_CT_LABELS_LEN (OVS_CT_LABELS_LEN_32 * sizeof(__u32))
|
||||
struct ovs_key_ct_labels {
|
||||
__u8 ct_labels[OVS_CT_LABELS_LEN];
|
||||
union {
|
||||
__u8 ct_labels[OVS_CT_LABELS_LEN];
|
||||
__u32 ct_labels_32[OVS_CT_LABELS_LEN_32];
|
||||
};
|
||||
};
|
||||
|
||||
/* OVS_KEY_ATTR_CT_STATE flags */
|
||||
@@ -468,6 +474,22 @@ struct ovs_key_ct_labels {
|
||||
|
||||
#define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT)
|
||||
|
||||
struct ovs_key_ct_tuple_ipv4 {
|
||||
__be32 ipv4_src;
|
||||
__be32 ipv4_dst;
|
||||
__be16 src_port;
|
||||
__be16 dst_port;
|
||||
__u8 ipv4_proto;
|
||||
};
|
||||
|
||||
struct ovs_key_ct_tuple_ipv6 {
|
||||
__be32 ipv6_src[4];
|
||||
__be32 ipv6_dst[4];
|
||||
__be16 src_port;
|
||||
__be16 dst_port;
|
||||
__u8 ipv6_proto;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
|
||||
* @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
|
||||
@@ -652,6 +674,10 @@ struct ovs_action_hash {
|
||||
* @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG.
|
||||
* @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address
|
||||
* translation (NAT) on the packet.
|
||||
* @OVS_CT_ATTR_FORCE_COMMIT: Like %OVS_CT_ATTR_COMMIT, but instead of doing
|
||||
* nothing if the connection is already committed will check that the current
|
||||
* packet is in conntrack entry's original direction. If directionality does
|
||||
* not match, will delete the existing conntrack entry and commit a new one.
|
||||
*/
|
||||
enum ovs_ct_attr {
|
||||
OVS_CT_ATTR_UNSPEC,
|
||||
@@ -662,6 +688,7 @@ enum ovs_ct_attr {
|
||||
OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of
|
||||
related connections. */
|
||||
OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */
|
||||
OVS_CT_ATTR_FORCE_COMMIT, /* No argument */
|
||||
__OVS_CT_ATTR_MAX
|
||||
};
|
||||
|
||||
|
@@ -64,7 +64,7 @@ struct packet_diag_mclist {
|
||||
__u32 pdmc_count;
|
||||
__u16 pdmc_type;
|
||||
__u16 pdmc_alen;
|
||||
__u8 pdmc_addr[MAX_ADDR_LEN];
|
||||
__u8 pdmc_addr[32]; /* MAX_ADDR_LEN */
|
||||
};
|
||||
|
||||
struct packet_diag_ring {
|
||||
|
@@ -682,6 +682,7 @@
|
||||
#define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */
|
||||
#define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */
|
||||
#define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */
|
||||
#define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */
|
||||
#define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */
|
||||
#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PTM
|
||||
|
||||
@@ -973,6 +974,7 @@
|
||||
#define PCI_EXP_DPC_STATUS 8 /* DPC Status */
|
||||
#define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */
|
||||
#define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */
|
||||
#define PCI_EXP_DPC_RP_BUSY 0x10 /* Root Port Busy */
|
||||
|
||||
#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
|
||||
|
||||
@@ -985,4 +987,19 @@
|
||||
#define PCI_PTM_CTRL_ENABLE 0x00000001 /* PTM enable */
|
||||
#define PCI_PTM_CTRL_ROOT 0x00000002 /* Root select */
|
||||
|
||||
/* L1 PM Substates */
|
||||
#define PCI_L1SS_CAP 4 /* capability register */
|
||||
#define PCI_L1SS_CAP_PCIPM_L1_2 1 /* PCI PM L1.2 Support */
|
||||
#define PCI_L1SS_CAP_PCIPM_L1_1 2 /* PCI PM L1.1 Support */
|
||||
#define PCI_L1SS_CAP_ASPM_L1_2 4 /* ASPM L1.2 Support */
|
||||
#define PCI_L1SS_CAP_ASPM_L1_1 8 /* ASPM L1.1 Support */
|
||||
#define PCI_L1SS_CAP_L1_PM_SS 16 /* L1 PM Substates Support */
|
||||
#define PCI_L1SS_CTL1 8 /* Control Register 1 */
|
||||
#define PCI_L1SS_CTL1_PCIPM_L1_2 1 /* PCI PM L1.2 Enable */
|
||||
#define PCI_L1SS_CTL1_PCIPM_L1_1 2 /* PCI PM L1.1 Support */
|
||||
#define PCI_L1SS_CTL1_ASPM_L1_2 4 /* ASPM L1.2 Support */
|
||||
#define PCI_L1SS_CTL1_ASPM_L1_1 8 /* ASPM L1.1 Support */
|
||||
#define PCI_L1SS_CTL1_L1SS_MASK 0x0000000F
|
||||
#define PCI_L1SS_CTL2 0xC /* Control Register 2 */
|
||||
|
||||
#endif /* LINUX_PCI_REGS_H */
|
||||
|
@@ -4,60 +4,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/pkt_sched.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* I think i could have done better macros ; for now this is stolen from
|
||||
* some arch/mips code - jhs
|
||||
*/
|
||||
#define _TC_MAKE32(x) ((x))
|
||||
|
||||
#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n))
|
||||
#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n))
|
||||
#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n))
|
||||
#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n))
|
||||
|
||||
/* verdict bit breakdown
|
||||
*
|
||||
bit 0: when set -> this packet has been munged already
|
||||
|
||||
bit 1: when set -> It is ok to munge this packet
|
||||
|
||||
bit 2,3,4,5: Reclassify counter - sort of reverse TTL - if exceeded
|
||||
assume loop
|
||||
|
||||
bit 6,7: Where this packet was last seen
|
||||
0: Above the transmit example at the socket level
|
||||
1: on the Ingress
|
||||
2: on the Egress
|
||||
|
||||
bit 8: when set --> Request not to classify on ingress.
|
||||
|
||||
bits 9,10,11: redirect counter - redirect TTL. Loop avoidance
|
||||
|
||||
*
|
||||
* */
|
||||
|
||||
#define S_TC_FROM _TC_MAKE32(6)
|
||||
#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM)
|
||||
#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM)
|
||||
#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM)
|
||||
#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM))
|
||||
#define AT_STACK 0x0
|
||||
#define AT_INGRESS 0x1
|
||||
#define AT_EGRESS 0x2
|
||||
|
||||
#define TC_NCLS _TC_MAKEMASK1(8)
|
||||
#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS))
|
||||
#define CLR_TC_NCLS(v) ( v & ~TC_NCLS)
|
||||
|
||||
#define S_TC_AT _TC_MAKE32(12)
|
||||
#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT)
|
||||
#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT)
|
||||
#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT)
|
||||
#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
|
||||
|
||||
#define MAX_REC_LOOP 4
|
||||
#define MAX_RED_LOOP 4
|
||||
#endif
|
||||
#define TC_COOKIE_MAX_SIZE 16
|
||||
|
||||
/* Action attributes */
|
||||
enum {
|
||||
@@ -67,6 +14,7 @@ enum {
|
||||
TCA_ACT_INDEX,
|
||||
TCA_ACT_STATS,
|
||||
TCA_ACT_PAD,
|
||||
TCA_ACT_COOKIE,
|
||||
__TCA_ACT_MAX
|
||||
};
|
||||
|
||||
@@ -155,8 +103,10 @@ enum {
|
||||
#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
|
||||
|
||||
/* tca flags definitions */
|
||||
#define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
|
||||
#define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
|
||||
#define TCA_CLS_FLAGS_SKIP_HW (1 << 0) /* don't offload filter to HW */
|
||||
#define TCA_CLS_FLAGS_SKIP_SW (1 << 1) /* don't use filter in SW */
|
||||
#define TCA_CLS_FLAGS_IN_HW (1 << 2) /* filter is offloaded to HW */
|
||||
#define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) /* filter isn't offloaded to HW */
|
||||
|
||||
/* U32 filters */
|
||||
|
||||
@@ -471,6 +421,17 @@ enum {
|
||||
TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */
|
||||
TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,/* u8 */
|
||||
|
||||
TCA_FLOWER_KEY_ARP_SIP, /* be32 */
|
||||
TCA_FLOWER_KEY_ARP_SIP_MASK, /* be32 */
|
||||
TCA_FLOWER_KEY_ARP_TIP, /* be32 */
|
||||
TCA_FLOWER_KEY_ARP_TIP_MASK, /* be32 */
|
||||
TCA_FLOWER_KEY_ARP_OP, /* u8 */
|
||||
TCA_FLOWER_KEY_ARP_OP_MASK, /* u8 */
|
||||
TCA_FLOWER_KEY_ARP_SHA, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ARP_SHA_MASK, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ARP_THA, /* ETH_ALEN */
|
||||
TCA_FLOWER_KEY_ARP_THA_MASK, /* ETH_ALEN */
|
||||
|
||||
__TCA_FLOWER_MAX,
|
||||
};
|
||||
|
||||
|
35
include/uapi/linux/psample.h
Normal file
35
include/uapi/linux/psample.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef __UAPI_PSAMPLE_H
|
||||
#define __UAPI_PSAMPLE_H
|
||||
|
||||
enum {
|
||||
/* sampled packet metadata */
|
||||
PSAMPLE_ATTR_IIFINDEX,
|
||||
PSAMPLE_ATTR_OIFINDEX,
|
||||
PSAMPLE_ATTR_ORIGSIZE,
|
||||
PSAMPLE_ATTR_SAMPLE_GROUP,
|
||||
PSAMPLE_ATTR_GROUP_SEQ,
|
||||
PSAMPLE_ATTR_SAMPLE_RATE,
|
||||
PSAMPLE_ATTR_DATA,
|
||||
|
||||
/* commands attributes */
|
||||
PSAMPLE_ATTR_GROUP_REFCOUNT,
|
||||
|
||||
__PSAMPLE_ATTR_MAX
|
||||
};
|
||||
|
||||
enum psample_command {
|
||||
PSAMPLE_CMD_SAMPLE,
|
||||
PSAMPLE_CMD_GET_GROUP,
|
||||
PSAMPLE_CMD_NEW_GROUP,
|
||||
PSAMPLE_CMD_DEL_GROUP,
|
||||
};
|
||||
|
||||
/* Can be overridden at runtime by module option */
|
||||
#define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1)
|
||||
|
||||
#define PSAMPLE_NL_MCGRP_CONFIG_NAME "config"
|
||||
#define PSAMPLE_NL_MCGRP_SAMPLE_NAME "packets"
|
||||
#define PSAMPLE_GENL_NAME "psample"
|
||||
#define PSAMPLE_GENL_VERSION 1
|
||||
|
||||
#endif
|
@@ -35,6 +35,7 @@
|
||||
#define _LINUX_RDS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h> /* For __kernel_sockaddr_storage. */
|
||||
|
||||
#define RDS_IB_ABI_VERSION 0x301
|
||||
|
||||
@@ -52,6 +53,13 @@
|
||||
#define RDS_GET_MR_FOR_DEST 7
|
||||
#define SO_RDS_TRANSPORT 8
|
||||
|
||||
/* Socket option to tap receive path latency
|
||||
* SO_RDS: SO_RDS_MSG_RXPATH_LATENCY
|
||||
* Format used struct rds_rx_trace_so
|
||||
*/
|
||||
#define SO_RDS_MSG_RXPATH_LATENCY 10
|
||||
|
||||
|
||||
/* supported values for SO_RDS_TRANSPORT */
|
||||
#define RDS_TRANS_IB 0
|
||||
#define RDS_TRANS_IWARP 1
|
||||
@@ -77,6 +85,12 @@
|
||||
* the same as for the GET_MR setsockopt.
|
||||
* RDS_CMSG_RDMA_STATUS (recvmsg)
|
||||
* Returns the status of a completed RDMA operation.
|
||||
* RDS_CMSG_RXPATH_LATENCY(recvmsg)
|
||||
* Returns rds message latencies in various stages of receive
|
||||
* path in nS. Its set per socket using SO_RDS_MSG_RXPATH_LATENCY
|
||||
* socket option. Legitimate points are defined in
|
||||
* enum rds_message_rxpath_latency. More points can be added in
|
||||
* future. CSMG format is struct rds_cmsg_rx_trace.
|
||||
*/
|
||||
#define RDS_CMSG_RDMA_ARGS 1
|
||||
#define RDS_CMSG_RDMA_DEST 2
|
||||
@@ -87,6 +101,7 @@
|
||||
#define RDS_CMSG_ATOMIC_CSWP 7
|
||||
#define RDS_CMSG_MASKED_ATOMIC_FADD 8
|
||||
#define RDS_CMSG_MASKED_ATOMIC_CSWP 9
|
||||
#define RDS_CMSG_RXPATH_LATENCY 11
|
||||
|
||||
#define RDS_INFO_FIRST 10000
|
||||
#define RDS_INFO_COUNTERS 10000
|
||||
@@ -103,8 +118,8 @@
|
||||
#define RDS_INFO_LAST 10010
|
||||
|
||||
struct rds_info_counter {
|
||||
uint8_t name[32];
|
||||
uint64_t value;
|
||||
__u8 name[32];
|
||||
__u64 value;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01
|
||||
@@ -114,35 +129,35 @@ struct rds_info_counter {
|
||||
#define TRANSNAMSIZ 16
|
||||
|
||||
struct rds_info_connection {
|
||||
uint64_t next_tx_seq;
|
||||
uint64_t next_rx_seq;
|
||||
__u64 next_tx_seq;
|
||||
__u64 next_rx_seq;
|
||||
__be32 laddr;
|
||||
__be32 faddr;
|
||||
uint8_t transport[TRANSNAMSIZ]; /* null term ascii */
|
||||
uint8_t flags;
|
||||
__u8 transport[TRANSNAMSIZ]; /* null term ascii */
|
||||
__u8 flags;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define RDS_INFO_MESSAGE_FLAG_ACK 0x01
|
||||
#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
|
||||
|
||||
struct rds_info_message {
|
||||
uint64_t seq;
|
||||
uint32_t len;
|
||||
__u64 seq;
|
||||
__u32 len;
|
||||
__be32 laddr;
|
||||
__be32 faddr;
|
||||
__be16 lport;
|
||||
__be16 fport;
|
||||
uint8_t flags;
|
||||
__u8 flags;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds_info_socket {
|
||||
uint32_t sndbuf;
|
||||
__u32 sndbuf;
|
||||
__be32 bound_addr;
|
||||
__be32 connected_addr;
|
||||
__be16 bound_port;
|
||||
__be16 connected_port;
|
||||
uint32_t rcvbuf;
|
||||
uint64_t inum;
|
||||
__u32 rcvbuf;
|
||||
__u64 inum;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds_info_tcp_socket {
|
||||
@@ -150,25 +165,44 @@ struct rds_info_tcp_socket {
|
||||
__be16 local_port;
|
||||
__be32 peer_addr;
|
||||
__be16 peer_port;
|
||||
uint64_t hdr_rem;
|
||||
uint64_t data_rem;
|
||||
uint32_t last_sent_nxt;
|
||||
uint32_t last_expected_una;
|
||||
uint32_t last_seen_una;
|
||||
__u64 hdr_rem;
|
||||
__u64 data_rem;
|
||||
__u32 last_sent_nxt;
|
||||
__u32 last_expected_una;
|
||||
__u32 last_seen_una;
|
||||
} __attribute__((packed));
|
||||
|
||||
#define RDS_IB_GID_LEN 16
|
||||
struct rds_info_rdma_connection {
|
||||
__be32 src_addr;
|
||||
__be32 dst_addr;
|
||||
uint8_t src_gid[RDS_IB_GID_LEN];
|
||||
uint8_t dst_gid[RDS_IB_GID_LEN];
|
||||
__u8 src_gid[RDS_IB_GID_LEN];
|
||||
__u8 dst_gid[RDS_IB_GID_LEN];
|
||||
|
||||
uint32_t max_send_wr;
|
||||
uint32_t max_recv_wr;
|
||||
uint32_t max_send_sge;
|
||||
uint32_t rdma_mr_max;
|
||||
uint32_t rdma_mr_size;
|
||||
__u32 max_send_wr;
|
||||
__u32 max_recv_wr;
|
||||
__u32 max_send_sge;
|
||||
__u32 rdma_mr_max;
|
||||
__u32 rdma_mr_size;
|
||||
};
|
||||
|
||||
/* RDS message Receive Path Latency points */
|
||||
enum rds_message_rxpath_latency {
|
||||
RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
|
||||
RDS_MSG_RX_DGRAM_REASSEMBLE,
|
||||
RDS_MSG_RX_DGRAM_DELIVERED,
|
||||
RDS_MSG_RX_DGRAM_TRACE_MAX
|
||||
};
|
||||
|
||||
struct rds_rx_trace_so {
|
||||
__u8 rx_traces;
|
||||
__u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX];
|
||||
};
|
||||
|
||||
struct rds_cmsg_rx_trace {
|
||||
__u8 rx_traces;
|
||||
__u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX];
|
||||
__u64 rx_trace[RDS_MSG_RX_DGRAM_TRACE_MAX];
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -209,70 +243,70 @@ struct rds_info_rdma_connection {
|
||||
* (so that the application does not have to worry about
|
||||
* alignment).
|
||||
*/
|
||||
typedef uint64_t rds_rdma_cookie_t;
|
||||
typedef __u64 rds_rdma_cookie_t;
|
||||
|
||||
struct rds_iovec {
|
||||
uint64_t addr;
|
||||
uint64_t bytes;
|
||||
__u64 addr;
|
||||
__u64 bytes;
|
||||
};
|
||||
|
||||
struct rds_get_mr_args {
|
||||
struct rds_iovec vec;
|
||||
uint64_t cookie_addr;
|
||||
uint64_t flags;
|
||||
__u64 cookie_addr;
|
||||
__u64 flags;
|
||||
};
|
||||
|
||||
struct rds_get_mr_for_dest_args {
|
||||
struct sockaddr_storage dest_addr;
|
||||
struct __kernel_sockaddr_storage dest_addr;
|
||||
struct rds_iovec vec;
|
||||
uint64_t cookie_addr;
|
||||
uint64_t flags;
|
||||
__u64 cookie_addr;
|
||||
__u64 flags;
|
||||
};
|
||||
|
||||
struct rds_free_mr_args {
|
||||
rds_rdma_cookie_t cookie;
|
||||
uint64_t flags;
|
||||
__u64 flags;
|
||||
};
|
||||
|
||||
struct rds_rdma_args {
|
||||
rds_rdma_cookie_t cookie;
|
||||
struct rds_iovec remote_vec;
|
||||
uint64_t local_vec_addr;
|
||||
uint64_t nr_local;
|
||||
uint64_t flags;
|
||||
uint64_t user_token;
|
||||
__u64 local_vec_addr;
|
||||
__u64 nr_local;
|
||||
__u64 flags;
|
||||
__u64 user_token;
|
||||
};
|
||||
|
||||
struct rds_atomic_args {
|
||||
rds_rdma_cookie_t cookie;
|
||||
uint64_t local_addr;
|
||||
uint64_t remote_addr;
|
||||
__u64 local_addr;
|
||||
__u64 remote_addr;
|
||||
union {
|
||||
struct {
|
||||
uint64_t compare;
|
||||
uint64_t swap;
|
||||
__u64 compare;
|
||||
__u64 swap;
|
||||
} cswp;
|
||||
struct {
|
||||
uint64_t add;
|
||||
__u64 add;
|
||||
} fadd;
|
||||
struct {
|
||||
uint64_t compare;
|
||||
uint64_t swap;
|
||||
uint64_t compare_mask;
|
||||
uint64_t swap_mask;
|
||||
__u64 compare;
|
||||
__u64 swap;
|
||||
__u64 compare_mask;
|
||||
__u64 swap_mask;
|
||||
} m_cswp;
|
||||
struct {
|
||||
uint64_t add;
|
||||
uint64_t nocarry_mask;
|
||||
__u64 add;
|
||||
__u64 nocarry_mask;
|
||||
} m_fadd;
|
||||
};
|
||||
uint64_t flags;
|
||||
uint64_t user_token;
|
||||
__u64 flags;
|
||||
__u64 user_token;
|
||||
};
|
||||
|
||||
struct rds_rdma_notify {
|
||||
uint64_t user_token;
|
||||
int32_t status;
|
||||
__u64 user_token;
|
||||
__s32 status;
|
||||
};
|
||||
|
||||
#define RDS_RDMA_SUCCESS 0
|
||||
|
35
include/uapi/linux/rpmsg.h
Normal file
35
include/uapi/linux/rpmsg.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Linaro Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_RPMSG_H_
|
||||
#define _UAPI_RPMSG_H_
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct rpmsg_endpoint_info - endpoint info representation
|
||||
* @name: name of service
|
||||
* @src: local address
|
||||
* @dst: destination address
|
||||
*/
|
||||
struct rpmsg_endpoint_info {
|
||||
char name[32];
|
||||
__u32 src;
|
||||
__u32 dst;
|
||||
};
|
||||
|
||||
#define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
|
||||
#define RPMSG_DESTROY_EPT_IOCTL _IO(0xb5, 0x2)
|
||||
|
||||
#endif
|
@@ -350,6 +350,7 @@ struct rtnexthop {
|
||||
#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
|
||||
#define RTNH_F_OFFLOAD 8 /* offloaded route */
|
||||
#define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */
|
||||
#define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */
|
||||
|
||||
#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
|
||||
|
||||
@@ -657,6 +658,8 @@ enum rtnetlink_groups {
|
||||
#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
|
||||
RTNLGRP_NSID,
|
||||
#define RTNLGRP_NSID RTNLGRP_NSID
|
||||
RTNLGRP_MPLS_NETCONF,
|
||||
#define RTNLGRP_MPLS_NETCONF RTNLGRP_MPLS_NETCONF
|
||||
__RTNLGRP_MAX
|
||||
};
|
||||
#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
|
||||
|
74
include/uapi/linux/sched/types.h
Normal file
74
include/uapi/linux/sched/types.h
Normal file
@@ -0,0 +1,74 @@
|
||||
#ifndef _UAPI_LINUX_SCHED_TYPES_H
|
||||
#define _UAPI_LINUX_SCHED_TYPES_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct sched_param {
|
||||
int sched_priority;
|
||||
};
|
||||
|
||||
#define SCHED_ATTR_SIZE_VER0 48 /* sizeof first published struct */
|
||||
|
||||
/*
|
||||
* Extended scheduling parameters data structure.
|
||||
*
|
||||
* This is needed because the original struct sched_param can not be
|
||||
* altered without introducing ABI issues with legacy applications
|
||||
* (e.g., in sched_getparam()).
|
||||
*
|
||||
* However, the possibility of specifying more than just a priority for
|
||||
* the tasks may be useful for a wide variety of application fields, e.g.,
|
||||
* multimedia, streaming, automation and control, and many others.
|
||||
*
|
||||
* This variant (sched_attr) is meant at describing a so-called
|
||||
* sporadic time-constrained task. In such model a task is specified by:
|
||||
* - the activation period or minimum instance inter-arrival time;
|
||||
* - the maximum (or average, depending on the actual scheduling
|
||||
* discipline) computation time of all instances, a.k.a. runtime;
|
||||
* - the deadline (relative to the actual activation time) of each
|
||||
* instance.
|
||||
* Very briefly, a periodic (sporadic) task asks for the execution of
|
||||
* some specific computation --which is typically called an instance--
|
||||
* (at most) every period. Moreover, each instance typically lasts no more
|
||||
* than the runtime and must be completed by time instant t equal to
|
||||
* the instance activation time + the deadline.
|
||||
*
|
||||
* This is reflected by the actual fields of the sched_attr structure:
|
||||
*
|
||||
* @size size of the structure, for fwd/bwd compat.
|
||||
*
|
||||
* @sched_policy task's scheduling policy
|
||||
* @sched_flags for customizing the scheduler behaviour
|
||||
* @sched_nice task's nice value (SCHED_NORMAL/BATCH)
|
||||
* @sched_priority task's static priority (SCHED_FIFO/RR)
|
||||
* @sched_deadline representative of the task's deadline
|
||||
* @sched_runtime representative of the task's runtime
|
||||
* @sched_period representative of the task's period
|
||||
*
|
||||
* Given this task model, there are a multiplicity of scheduling algorithms
|
||||
* and policies, that can be used to ensure all the tasks will make their
|
||||
* timing constraints.
|
||||
*
|
||||
* As of now, the SCHED_DEADLINE policy (sched_dl scheduling class) is the
|
||||
* only user of this new interface. More information about the algorithm
|
||||
* available in the scheduling class file or in Documentation/.
|
||||
*/
|
||||
struct sched_attr {
|
||||
u32 size;
|
||||
|
||||
u32 sched_policy;
|
||||
u64 sched_flags;
|
||||
|
||||
/* SCHED_NORMAL, SCHED_BATCH */
|
||||
s32 sched_nice;
|
||||
|
||||
/* SCHED_FIFO, SCHED_RR */
|
||||
u32 sched_priority;
|
||||
|
||||
/* SCHED_DEADLINE */
|
||||
u64 sched_runtime;
|
||||
u64 sched_deadline;
|
||||
u64 sched_period;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_SCHED_TYPES_H */
|
@@ -115,6 +115,10 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_PR_SUPPORTED 113
|
||||
#define SCTP_DEFAULT_PRINFO 114
|
||||
#define SCTP_PR_ASSOC_STATUS 115
|
||||
#define SCTP_ENABLE_STREAM_RESET 118
|
||||
#define SCTP_RESET_STREAMS 119
|
||||
#define SCTP_RESET_ASSOC 120
|
||||
#define SCTP_ADD_STREAMS 121
|
||||
|
||||
/* PR-SCTP policies */
|
||||
#define SCTP_PR_SCTP_NONE 0x0000
|
||||
@@ -138,6 +142,15 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX)
|
||||
#define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO)
|
||||
|
||||
/* For enable stream reset */
|
||||
#define SCTP_ENABLE_RESET_STREAM_REQ 0x01
|
||||
#define SCTP_ENABLE_RESET_ASSOC_REQ 0x02
|
||||
#define SCTP_ENABLE_CHANGE_ASSOC_REQ 0x04
|
||||
#define SCTP_ENABLE_STRRESET_MASK 0x07
|
||||
|
||||
#define SCTP_STREAM_RESET_INCOMING 0x01
|
||||
#define SCTP_STREAM_RESET_OUTGOING 0x02
|
||||
|
||||
/* These are bit fields for msghdr->msg_flags. See section 5.1. */
|
||||
/* On user space Linux, these live in <bits/socket.h> as an enum. */
|
||||
enum sctp_msg_flags {
|
||||
@@ -477,6 +490,18 @@ struct sctp_sender_dry_event {
|
||||
sctp_assoc_t sender_dry_assoc_id;
|
||||
};
|
||||
|
||||
#define SCTP_STREAM_RESET_INCOMING_SSN 0x0001
|
||||
#define SCTP_STREAM_RESET_OUTGOING_SSN 0x0002
|
||||
#define SCTP_STREAM_RESET_DENIED 0x0004
|
||||
#define SCTP_STREAM_RESET_FAILED 0x0008
|
||||
struct sctp_stream_reset_event {
|
||||
__u16 strreset_type;
|
||||
__u16 strreset_flags;
|
||||
__u32 strreset_length;
|
||||
sctp_assoc_t strreset_assoc_id;
|
||||
__u16 strreset_stream_list[];
|
||||
};
|
||||
|
||||
/*
|
||||
* Described in Section 7.3
|
||||
* Ancillary Data and Notification Interest Options
|
||||
@@ -492,6 +517,7 @@ struct sctp_event_subscribe {
|
||||
__u8 sctp_adaptation_layer_event;
|
||||
__u8 sctp_authentication_event;
|
||||
__u8 sctp_sender_dry_event;
|
||||
__u8 sctp_stream_reset_event;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -516,6 +542,7 @@ union sctp_notification {
|
||||
struct sctp_pdapi_event sn_pdapi_event;
|
||||
struct sctp_authkey_event sn_authkey_event;
|
||||
struct sctp_sender_dry_event sn_sender_dry_event;
|
||||
struct sctp_stream_reset_event sn_strreset_event;
|
||||
};
|
||||
|
||||
/* Section 5.3.1
|
||||
@@ -543,6 +570,8 @@ enum sctp_sn_type {
|
||||
#define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT
|
||||
SCTP_SENDER_DRY_EVENT,
|
||||
#define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT
|
||||
SCTP_STREAM_RESET_EVENT,
|
||||
#define SCTP_STREAM_RESET_EVENT SCTP_STREAM_RESET_EVENT
|
||||
};
|
||||
|
||||
/* Notification error codes used to fill up the error fields in some
|
||||
@@ -1008,4 +1037,17 @@ struct sctp_info {
|
||||
__u32 __reserved3;
|
||||
};
|
||||
|
||||
struct sctp_reset_streams {
|
||||
sctp_assoc_t srs_assoc_id;
|
||||
uint16_t srs_flags;
|
||||
uint16_t srs_number_streams; /* 0 == ALL */
|
||||
uint16_t srs_stream_list[]; /* list if srs_num_streams is not 0 */
|
||||
};
|
||||
|
||||
struct sctp_add_streams {
|
||||
sctp_assoc_t sas_assoc_id;
|
||||
uint16_t sas_instrms;
|
||||
uint16_t sas_outstrms;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_SCTP_H */
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#ifndef _UAPI_LINUX_SEG6_H
|
||||
#define _UAPI_LINUX_SEG6_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/in6.h> /* For struct in6_addr. */
|
||||
|
||||
/*
|
||||
* SRH
|
||||
*/
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#ifndef _UAPI_LINUX_SEG6_HMAC_H
|
||||
#define _UAPI_LINUX_SEG6_HMAC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/seg6.h>
|
||||
|
||||
#define SEG6_HMAC_SECRET_LEN 64
|
||||
|
@@ -14,6 +14,8 @@
|
||||
#ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H
|
||||
#define _UAPI_LINUX_SEG6_IPTUNNEL_H
|
||||
|
||||
#include <linux/seg6.h> /* For struct ipv6_sr_hdr. */
|
||||
|
||||
enum {
|
||||
SEG6_IPTUNNEL_UNSPEC,
|
||||
SEG6_IPTUNNEL_SRH,
|
||||
@@ -33,6 +35,8 @@ enum {
|
||||
SEG6_IPTUN_MODE_ENCAP,
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
|
||||
{
|
||||
int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP);
|
||||
@@ -42,3 +46,5 @@ static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -56,7 +56,8 @@
|
||||
#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
|
||||
#define PORT_RT2880 29 /* Ralink RT2880 internal UART */
|
||||
#define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */
|
||||
#define PORT_MAX_8250 30 /* max port ID */
|
||||
#define PORT_DA830 31 /* TI DA8xx/66AK2x */
|
||||
#define PORT_MAX_8250 31 /* max port ID */
|
||||
|
||||
/*
|
||||
* ARM specific type numbers. These are not currently guaranteed
|
||||
|
@@ -327,6 +327,14 @@
|
||||
#define SERIAL_RSA_BAUD_BASE (921600)
|
||||
#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8)
|
||||
|
||||
/* Extra registers for TI DA8xx/66AK2x */
|
||||
#define UART_DA830_PWREMU_MGMT 12
|
||||
|
||||
/* PWREMU_MGMT register bits */
|
||||
#define UART_DA830_PWREMU_MGMT_FREE (1 << 0) /* Free-running mode */
|
||||
#define UART_DA830_PWREMU_MGMT_URRST (1 << 13) /* Receiver reset/enable */
|
||||
#define UART_DA830_PWREMU_MGMT_UTRST (1 << 14) /* Transmitter reset/enable */
|
||||
|
||||
/*
|
||||
* Extra serial register definitions for the internal UARTs
|
||||
* in TI OMAP processors.
|
||||
@@ -358,24 +366,6 @@
|
||||
#define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */
|
||||
#define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */
|
||||
|
||||
/*
|
||||
* These are definitions for the Exar XR17V35X and XR17(C|D)15X
|
||||
*/
|
||||
#define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */
|
||||
#define UART_EXAR_SLEEP 0x8b /* Sleep mode */
|
||||
#define UART_EXAR_DVID 0x8d /* Device identification */
|
||||
|
||||
#define UART_EXAR_FCTR 0x08 /* Feature Control Register */
|
||||
#define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */
|
||||
#define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */
|
||||
#define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */
|
||||
#define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */
|
||||
#define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */
|
||||
#define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */
|
||||
|
||||
#define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */
|
||||
#define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */
|
||||
|
||||
/*
|
||||
* These are definitions for the Altera ALTR_16550_F32/F64/F128
|
||||
* Normalized from 0x100 to 0x40 because of shift by 2 (32 bit regs).
|
||||
|
@@ -17,9 +17,10 @@
|
||||
/*
|
||||
* bit masks for use in "interrupt" flags (3rd argument)
|
||||
*/
|
||||
#define SERIO_TIMEOUT 1
|
||||
#define SERIO_PARITY 2
|
||||
#define SERIO_FRAME 4
|
||||
#define SERIO_TIMEOUT BIT(0)
|
||||
#define SERIO_PARITY BIT(1)
|
||||
#define SERIO_FRAME BIT(2)
|
||||
#define SERIO_OOB_DATA BIT(3)
|
||||
|
||||
/*
|
||||
* Serio types
|
||||
|
35
include/uapi/linux/smc.h
Normal file
35
include/uapi/linux/smc.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Shared Memory Communications over RDMA (SMC-R) and RoCE
|
||||
*
|
||||
* Definitions for generic netlink based configuration of an SMC-R PNET table
|
||||
*
|
||||
* Copyright IBM Corp. 2016
|
||||
*
|
||||
* Author(s): Thomas Richter <tmricht@linux.vnet.ibm.com>
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_SMC_H_
|
||||
#define _UAPI_LINUX_SMC_H_
|
||||
|
||||
/* Netlink SMC_PNETID attributes */
|
||||
enum {
|
||||
SMC_PNETID_UNSPEC,
|
||||
SMC_PNETID_NAME,
|
||||
SMC_PNETID_ETHNAME,
|
||||
SMC_PNETID_IBNAME,
|
||||
SMC_PNETID_IBPORT,
|
||||
__SMC_PNETID_MAX,
|
||||
SMC_PNETID_MAX = __SMC_PNETID_MAX - 1
|
||||
};
|
||||
|
||||
enum { /* SMC PNET Table commands */
|
||||
SMC_PNETID_GET = 1,
|
||||
SMC_PNETID_ADD,
|
||||
SMC_PNETID_DEL,
|
||||
SMC_PNETID_FLUSH
|
||||
};
|
||||
|
||||
#define SMCR_GENL_FAMILY_NAME "SMC_PNETID"
|
||||
#define SMCR_GENL_FAMILY_VERSION 1
|
||||
|
||||
#endif /* _UAPI_LINUX_SMC_H */
|
85
include/uapi/linux/smc_diag.h
Normal file
85
include/uapi/linux/smc_diag.h
Normal file
@@ -0,0 +1,85 @@
|
||||
#ifndef _UAPI_SMC_DIAG_H_
|
||||
#define _UAPI_SMC_DIAG_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/inet_diag.h>
|
||||
#include <rdma/ib_verbs.h>
|
||||
|
||||
/* Request structure */
|
||||
struct smc_diag_req {
|
||||
__u8 diag_family;
|
||||
__u8 pad[2];
|
||||
__u8 diag_ext; /* Query extended information */
|
||||
struct inet_diag_sockid id;
|
||||
};
|
||||
|
||||
/* Base info structure. It contains socket identity (addrs/ports/cookie) based
|
||||
* on the internal clcsock, and more SMC-related socket data
|
||||
*/
|
||||
struct smc_diag_msg {
|
||||
__u8 diag_family;
|
||||
__u8 diag_state;
|
||||
__u8 diag_fallback;
|
||||
__u8 diag_shutdown;
|
||||
struct inet_diag_sockid id;
|
||||
|
||||
__u32 diag_uid;
|
||||
__u64 diag_inode;
|
||||
};
|
||||
|
||||
/* Extensions */
|
||||
|
||||
enum {
|
||||
SMC_DIAG_NONE,
|
||||
SMC_DIAG_CONNINFO,
|
||||
SMC_DIAG_LGRINFO,
|
||||
SMC_DIAG_SHUTDOWN,
|
||||
__SMC_DIAG_MAX,
|
||||
};
|
||||
|
||||
#define SMC_DIAG_MAX (__SMC_DIAG_MAX - 1)
|
||||
|
||||
/* SMC_DIAG_CONNINFO */
|
||||
|
||||
struct smc_diag_cursor {
|
||||
__u16 reserved;
|
||||
__u16 wrap;
|
||||
__u32 count;
|
||||
};
|
||||
|
||||
struct smc_diag_conninfo {
|
||||
__u32 token; /* unique connection id */
|
||||
__u32 sndbuf_size; /* size of send buffer */
|
||||
__u32 rmbe_size; /* size of RMB element */
|
||||
__u32 peer_rmbe_size; /* size of peer RMB element */
|
||||
/* local RMB element cursors */
|
||||
struct smc_diag_cursor rx_prod; /* received producer cursor */
|
||||
struct smc_diag_cursor rx_cons; /* received consumer cursor */
|
||||
/* peer RMB element cursors */
|
||||
struct smc_diag_cursor tx_prod; /* sent producer cursor */
|
||||
struct smc_diag_cursor tx_cons; /* sent consumer cursor */
|
||||
__u8 rx_prod_flags; /* received producer flags */
|
||||
__u8 rx_conn_state_flags; /* recvd connection flags*/
|
||||
__u8 tx_prod_flags; /* sent producer flags */
|
||||
__u8 tx_conn_state_flags; /* sent connection flags*/
|
||||
/* send buffer cursors */
|
||||
struct smc_diag_cursor tx_prep; /* prepared to be sent cursor */
|
||||
struct smc_diag_cursor tx_sent; /* sent cursor */
|
||||
struct smc_diag_cursor tx_fin; /* confirmed sent cursor */
|
||||
};
|
||||
|
||||
/* SMC_DIAG_LINKINFO */
|
||||
|
||||
struct smc_diag_linkinfo {
|
||||
__u8 link_id; /* link identifier */
|
||||
__u8 ibname[IB_DEVICE_NAME_MAX]; /* name of the RDMA device */
|
||||
__u8 ibport; /* RDMA device port number */
|
||||
__u8 gid[40]; /* local GID */
|
||||
__u8 peer_gid[40]; /* peer GID */
|
||||
};
|
||||
|
||||
struct smc_diag_lgrinfo {
|
||||
struct smc_diag_linkinfo lnk[1];
|
||||
__u8 role;
|
||||
};
|
||||
#endif /* _UAPI_SMC_DIAG_H_ */
|
@@ -240,6 +240,7 @@ enum
|
||||
LINUX_MIB_SACKMERGED,
|
||||
LINUX_MIB_SACKSHIFTFALLBACK,
|
||||
LINUX_MIB_TCPBACKLOGDROP,
|
||||
LINUX_MIB_PFMEMALLOCDROP,
|
||||
LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */
|
||||
LINUX_MIB_TCPDEFERACCEPTDROP,
|
||||
LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#ifndef _UAPI_LINUX_STAT_H
|
||||
#define _UAPI_LINUX_STAT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
|
||||
|
||||
@@ -41,5 +42,135 @@
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Timestamp structure for the timestamps in struct statx.
|
||||
*
|
||||
* tv_sec holds the number of seconds before (negative) or after (positive)
|
||||
* 00:00:00 1st January 1970 UTC.
|
||||
*
|
||||
* tv_nsec holds a number of nanoseconds before (0..-999,999,999 if tv_sec is
|
||||
* negative) or after (0..999,999,999 if tv_sec is positive) the tv_sec time.
|
||||
*
|
||||
* Note that if both tv_sec and tv_nsec are non-zero, then the two values must
|
||||
* either be both positive or both negative.
|
||||
*
|
||||
* __reserved is held in case we need a yet finer resolution.
|
||||
*/
|
||||
struct statx_timestamp {
|
||||
__s64 tv_sec;
|
||||
__s32 tv_nsec;
|
||||
__s32 __reserved;
|
||||
};
|
||||
|
||||
/*
|
||||
* Structures for the extended file attribute retrieval system call
|
||||
* (statx()).
|
||||
*
|
||||
* The caller passes a mask of what they're specifically interested in as a
|
||||
* parameter to statx(). What statx() actually got will be indicated in
|
||||
* st_mask upon return.
|
||||
*
|
||||
* For each bit in the mask argument:
|
||||
*
|
||||
* - if the datum is not supported:
|
||||
*
|
||||
* - the bit will be cleared, and
|
||||
*
|
||||
* - the datum will be set to an appropriate fabricated value if one is
|
||||
* available (eg. CIFS can take a default uid and gid), otherwise
|
||||
*
|
||||
* - the field will be cleared;
|
||||
*
|
||||
* - otherwise, if explicitly requested:
|
||||
*
|
||||
* - the datum will be synchronised to the server if AT_STATX_FORCE_SYNC is
|
||||
* set or if the datum is considered out of date, and
|
||||
*
|
||||
* - the field will be filled in and the bit will be set;
|
||||
*
|
||||
* - otherwise, if not requested, but available in approximate form without any
|
||||
* effort, it will be filled in anyway, and the bit will be set upon return
|
||||
* (it might not be up to date, however, and no attempt will be made to
|
||||
* synchronise the internal state first);
|
||||
*
|
||||
* - otherwise the field and the bit will be cleared before returning.
|
||||
*
|
||||
* Items in STATX_BASIC_STATS may be marked unavailable on return, but they
|
||||
* will have values installed for compatibility purposes so that stat() and
|
||||
* co. can be emulated in userspace.
|
||||
*/
|
||||
struct statx {
|
||||
/* 0x00 */
|
||||
__u32 stx_mask; /* What results were written [uncond] */
|
||||
__u32 stx_blksize; /* Preferred general I/O size [uncond] */
|
||||
__u64 stx_attributes; /* Flags conveying information about the file [uncond] */
|
||||
/* 0x10 */
|
||||
__u32 stx_nlink; /* Number of hard links */
|
||||
__u32 stx_uid; /* User ID of owner */
|
||||
__u32 stx_gid; /* Group ID of owner */
|
||||
__u16 stx_mode; /* File mode */
|
||||
__u16 __spare0[1];
|
||||
/* 0x20 */
|
||||
__u64 stx_ino; /* Inode number */
|
||||
__u64 stx_size; /* File size */
|
||||
__u64 stx_blocks; /* Number of 512-byte blocks allocated */
|
||||
__u64 __spare1[1];
|
||||
/* 0x40 */
|
||||
struct statx_timestamp stx_atime; /* Last access time */
|
||||
struct statx_timestamp stx_btime; /* File creation time */
|
||||
struct statx_timestamp stx_ctime; /* Last attribute change time */
|
||||
struct statx_timestamp stx_mtime; /* Last data modification time */
|
||||
/* 0x80 */
|
||||
__u32 stx_rdev_major; /* Device ID of special file [if bdev/cdev] */
|
||||
__u32 stx_rdev_minor;
|
||||
__u32 stx_dev_major; /* ID of device containing file [uncond] */
|
||||
__u32 stx_dev_minor;
|
||||
/* 0x90 */
|
||||
__u64 __spare2[14]; /* Spare space for future expansion */
|
||||
/* 0x100 */
|
||||
};
|
||||
|
||||
/*
|
||||
* Flags to be stx_mask
|
||||
*
|
||||
* Query request/result mask for statx() and struct statx::stx_mask.
|
||||
*
|
||||
* These bits should be set in the mask argument of statx() to request
|
||||
* particular items when calling statx().
|
||||
*/
|
||||
#define STATX_TYPE 0x00000001U /* Want/got stx_mode & S_IFMT */
|
||||
#define STATX_MODE 0x00000002U /* Want/got stx_mode & ~S_IFMT */
|
||||
#define STATX_NLINK 0x00000004U /* Want/got stx_nlink */
|
||||
#define STATX_UID 0x00000008U /* Want/got stx_uid */
|
||||
#define STATX_GID 0x00000010U /* Want/got stx_gid */
|
||||
#define STATX_ATIME 0x00000020U /* Want/got stx_atime */
|
||||
#define STATX_MTIME 0x00000040U /* Want/got stx_mtime */
|
||||
#define STATX_CTIME 0x00000080U /* Want/got stx_ctime */
|
||||
#define STATX_INO 0x00000100U /* Want/got stx_ino */
|
||||
#define STATX_SIZE 0x00000200U /* Want/got stx_size */
|
||||
#define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */
|
||||
#define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */
|
||||
#define STATX_BTIME 0x00000800U /* Want/got stx_btime */
|
||||
#define STATX_ALL 0x00000fffU /* All currently supported flags */
|
||||
|
||||
/*
|
||||
* Attributes to be found in stx_attributes
|
||||
*
|
||||
* These give information about the features or the state of a file that might
|
||||
* be of use to ordinary userspace programs such as GUIs or ls rather than
|
||||
* specialised tools.
|
||||
*
|
||||
* Note that the flags marked [I] correspond to generic FS_IOC_FLAGS
|
||||
* semantically. Where possible, the numerical value is picked to correspond
|
||||
* also.
|
||||
*/
|
||||
#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */
|
||||
#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */
|
||||
#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */
|
||||
#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
|
||||
#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
|
||||
|
||||
#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
|
||||
|
||||
|
||||
#endif /* _UAPI_LINUX_STAT_H */
|
||||
|
@@ -105,26 +105,26 @@ struct tcmu_cmd_entry {
|
||||
|
||||
union {
|
||||
struct {
|
||||
uint32_t iov_cnt;
|
||||
uint32_t iov_bidi_cnt;
|
||||
uint32_t iov_dif_cnt;
|
||||
uint64_t cdb_off;
|
||||
uint64_t __pad1;
|
||||
uint64_t __pad2;
|
||||
__u32 iov_cnt;
|
||||
__u32 iov_bidi_cnt;
|
||||
__u32 iov_dif_cnt;
|
||||
__u64 cdb_off;
|
||||
__u64 __pad1;
|
||||
__u64 __pad2;
|
||||
struct iovec iov[0];
|
||||
} req;
|
||||
struct {
|
||||
uint8_t scsi_status;
|
||||
uint8_t __pad1;
|
||||
uint16_t __pad2;
|
||||
uint32_t __pad3;
|
||||
__u8 scsi_status;
|
||||
__u8 __pad1;
|
||||
__u16 __pad2;
|
||||
__u32 __pad3;
|
||||
char sense_buffer[TCMU_SENSE_BUFFERSIZE];
|
||||
} rsp;
|
||||
};
|
||||
|
||||
} __packed;
|
||||
|
||||
#define TCMU_OP_ALIGN_SIZE sizeof(uint64_t)
|
||||
#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
|
||||
|
||||
enum tcmu_genl_cmd {
|
||||
TCMU_CMD_UNSPEC,
|
||||
|
@@ -4,6 +4,7 @@ header-y += tc_defact.h
|
||||
header-y += tc_gact.h
|
||||
header-y += tc_ipt.h
|
||||
header-y += tc_mirred.h
|
||||
header-y += tc_sample.h
|
||||
header-y += tc_nat.h
|
||||
header-y += tc_pedit.h
|
||||
header-y += tc_skbedit.h
|
||||
|
@@ -21,7 +21,8 @@ enum {
|
||||
TCA_CSUM_UPDATE_FLAG_IGMP = 4,
|
||||
TCA_CSUM_UPDATE_FLAG_TCP = 8,
|
||||
TCA_CSUM_UPDATE_FLAG_UDP = 16,
|
||||
TCA_CSUM_UPDATE_FLAG_UDPLITE = 32
|
||||
TCA_CSUM_UPDATE_FLAG_UDPLITE = 32,
|
||||
TCA_CSUM_UPDATE_FLAG_SCTP = 64,
|
||||
};
|
||||
|
||||
struct tc_csum {
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/pkt_cls.h>
|
||||
#include <linux/ife.h>
|
||||
|
||||
#define TCA_ACT_IFE 25
|
||||
/* Flag bits for now just encoding/decoding; mutually exclusive */
|
||||
@@ -28,13 +29,4 @@ enum {
|
||||
};
|
||||
#define TCA_IFE_MAX (__TCA_IFE_MAX - 1)
|
||||
|
||||
#define IFE_META_SKBMARK 1
|
||||
#define IFE_META_HASHID 2
|
||||
#define IFE_META_PRIO 3
|
||||
#define IFE_META_QMAP 4
|
||||
#define IFE_META_TCINDEX 5
|
||||
/*Can be overridden at runtime by module option*/
|
||||
#define __IFE_META_MAX 6
|
||||
#define IFE_META_MAX (__IFE_META_MAX - 1)
|
||||
|
||||
#endif
|
||||
|
@@ -11,10 +11,41 @@ enum {
|
||||
TCA_PEDIT_TM,
|
||||
TCA_PEDIT_PARMS,
|
||||
TCA_PEDIT_PAD,
|
||||
TCA_PEDIT_PARMS_EX,
|
||||
TCA_PEDIT_KEYS_EX,
|
||||
TCA_PEDIT_KEY_EX,
|
||||
__TCA_PEDIT_MAX
|
||||
};
|
||||
#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_PEDIT_KEY_EX_HTYPE = 1,
|
||||
TCA_PEDIT_KEY_EX_CMD = 2,
|
||||
__TCA_PEDIT_KEY_EX_MAX
|
||||
};
|
||||
#define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
|
||||
|
||||
/* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
|
||||
* means no specific header type - offset is relative to the network layer
|
||||
*/
|
||||
enum pedit_header_type {
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
|
||||
TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
|
||||
__PEDIT_HDR_TYPE_MAX,
|
||||
};
|
||||
#define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
|
||||
|
||||
enum pedit_cmd {
|
||||
TCA_PEDIT_KEY_EX_CMD_SET = 0,
|
||||
TCA_PEDIT_KEY_EX_CMD_ADD = 1,
|
||||
__PEDIT_CMD_MAX,
|
||||
};
|
||||
#define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
|
||||
|
||||
struct tc_pedit_key {
|
||||
__u32 mask; /* AND */
|
||||
__u32 val; /*XOR */
|
||||
|
26
include/uapi/linux/tc_act/tc_sample.h
Normal file
26
include/uapi/linux/tc_act/tc_sample.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef __LINUX_TC_SAMPLE_H
|
||||
#define __LINUX_TC_SAMPLE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/pkt_cls.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
#define TCA_ACT_SAMPLE 26
|
||||
|
||||
struct tc_sample {
|
||||
tc_gen;
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_SAMPLE_UNSPEC,
|
||||
TCA_SAMPLE_TM,
|
||||
TCA_SAMPLE_PARMS,
|
||||
TCA_SAMPLE_RATE,
|
||||
TCA_SAMPLE_TRUNC_SIZE,
|
||||
TCA_SAMPLE_PSAMPLE_GROUP,
|
||||
TCA_SAMPLE_PAD,
|
||||
__TCA_SAMPLE_MAX
|
||||
};
|
||||
#define TCA_SAMPLE_MAX (__TCA_SAMPLE_MAX - 1)
|
||||
|
||||
#endif
|
@@ -116,6 +116,7 @@ enum {
|
||||
#define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */
|
||||
#define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */
|
||||
#define TCP_REPAIR_WINDOW 29 /* Get/set window parameters */
|
||||
#define TCP_FASTOPEN_CONNECT 30 /* Attempt FastOpen with connect */
|
||||
|
||||
struct tcp_repair_opt {
|
||||
__u32 opt_code;
|
||||
@@ -226,6 +227,8 @@ enum {
|
||||
TCP_NLA_BUSY, /* Time (usec) busy sending data */
|
||||
TCP_NLA_RWND_LIMITED, /* Time (usec) limited by receive window */
|
||||
TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */
|
||||
TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */
|
||||
TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */
|
||||
};
|
||||
|
||||
/* for TCP_MD5SIG socket option */
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* include/uapi/linux/tipc.h: Header for TIPC socket interface
|
||||
*
|
||||
* Copyright (c) 2003-2006, Ericsson AB
|
||||
* Copyright (c) 2003-2006, 2015-2016 Ericsson AB
|
||||
* Copyright (c) 2005, 2010-2011, Wind River Systems
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -220,7 +220,7 @@ struct sockaddr_tipc {
|
||||
#define TIPC_DESTNAME 3 /* destination name */
|
||||
|
||||
/*
|
||||
* TIPC-specific socket option values
|
||||
* TIPC-specific socket option names
|
||||
*/
|
||||
|
||||
#define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */
|
||||
@@ -229,6 +229,8 @@ struct sockaddr_tipc {
|
||||
#define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */
|
||||
#define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */
|
||||
#define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */
|
||||
#define TIPC_MCAST_BROADCAST 133 /* Default: TIPC selects. No arg */
|
||||
#define TIPC_MCAST_REPLICAST 134 /* Default: TIPC selects. No arg */
|
||||
|
||||
/*
|
||||
* Maximum sizes of TIPC bearer-related names (including terminating NULL)
|
||||
|
@@ -10,4 +10,6 @@ struct sockaddr_un {
|
||||
char sun_path[UNIX_PATH_MAX]; /* pathname */
|
||||
};
|
||||
|
||||
#define SIOCUNIXFILE (SIOCPROTOPRIVATE + 0) /* open a socket file with O_PATH */
|
||||
|
||||
#endif /* _LINUX_UN_H */
|
||||
|
@@ -11,13 +11,19 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define UFFD_API ((__u64)0xAA)
|
||||
/*
|
||||
* After implementing the respective features it will become:
|
||||
* #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \
|
||||
* UFFD_FEATURE_EVENT_FORK)
|
||||
* If the UFFDIO_API is upgraded someday, the UFFDIO_UNREGISTER and
|
||||
* UFFDIO_WAKE ioctls should be defined as _IOW and not as _IOR. In
|
||||
* userfaultfd.h we assumed the kernel was reading (instead _IOC_READ
|
||||
* means the userland is reading).
|
||||
*/
|
||||
#define UFFD_API_FEATURES (0)
|
||||
#define UFFD_API ((__u64)0xAA)
|
||||
#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \
|
||||
UFFD_FEATURE_EVENT_REMAP | \
|
||||
UFFD_FEATURE_EVENT_REMOVE | \
|
||||
UFFD_FEATURE_EVENT_UNMAP | \
|
||||
UFFD_FEATURE_MISSING_HUGETLBFS | \
|
||||
UFFD_FEATURE_MISSING_SHMEM)
|
||||
#define UFFD_API_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_REGISTER | \
|
||||
(__u64)1 << _UFFDIO_UNREGISTER | \
|
||||
@@ -26,6 +32,9 @@
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY | \
|
||||
(__u64)1 << _UFFDIO_ZEROPAGE)
|
||||
#define UFFD_API_RANGE_IOCTLS_BASIC \
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY)
|
||||
|
||||
/*
|
||||
* Valid ioctl command number range with this API is from 0x00 to
|
||||
@@ -71,6 +80,21 @@ struct uffd_msg {
|
||||
__u64 address;
|
||||
} pagefault;
|
||||
|
||||
struct {
|
||||
__u32 ufd;
|
||||
} fork;
|
||||
|
||||
struct {
|
||||
__u64 from;
|
||||
__u64 to;
|
||||
__u64 len;
|
||||
} remap;
|
||||
|
||||
struct {
|
||||
__u64 start;
|
||||
__u64 end;
|
||||
} remove;
|
||||
|
||||
struct {
|
||||
/* unused reserved fields */
|
||||
__u64 reserved1;
|
||||
@@ -84,9 +108,10 @@ struct uffd_msg {
|
||||
* Start at 0x12 and not at 0 to be more strict against bugs.
|
||||
*/
|
||||
#define UFFD_EVENT_PAGEFAULT 0x12
|
||||
#if 0 /* not available yet */
|
||||
#define UFFD_EVENT_FORK 0x13
|
||||
#endif
|
||||
#define UFFD_EVENT_REMAP 0x14
|
||||
#define UFFD_EVENT_REMOVE 0x15
|
||||
#define UFFD_EVENT_UNMAP 0x16
|
||||
|
||||
/* flags for UFFD_EVENT_PAGEFAULT */
|
||||
#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
|
||||
@@ -104,11 +129,38 @@ struct uffdio_api {
|
||||
* Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE
|
||||
* are to be considered implicitly always enabled in all kernels as
|
||||
* long as the uffdio_api.api requested matches UFFD_API.
|
||||
*
|
||||
* UFFD_FEATURE_MISSING_HUGETLBFS means an UFFDIO_REGISTER
|
||||
* with UFFDIO_REGISTER_MODE_MISSING mode will succeed on
|
||||
* hugetlbfs virtual memory ranges. Adding or not adding
|
||||
* UFFD_FEATURE_MISSING_HUGETLBFS to uffdio_api.features has
|
||||
* no real functional effect after UFFDIO_API returns, but
|
||||
* it's only useful for an initial feature set probe at
|
||||
* UFFDIO_API time. There are two ways to use it:
|
||||
*
|
||||
* 1) by adding UFFD_FEATURE_MISSING_HUGETLBFS to the
|
||||
* uffdio_api.features before calling UFFDIO_API, an error
|
||||
* will be returned by UFFDIO_API on a kernel without
|
||||
* hugetlbfs missing support
|
||||
*
|
||||
* 2) the UFFD_FEATURE_MISSING_HUGETLBFS can not be added in
|
||||
* uffdio_api.features and instead it will be set by the
|
||||
* kernel in the uffdio_api.features if the kernel supports
|
||||
* it, so userland can later check if the feature flag is
|
||||
* present in uffdio_api.features after UFFDIO_API
|
||||
* succeeded.
|
||||
*
|
||||
* UFFD_FEATURE_MISSING_SHMEM works the same as
|
||||
* UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem
|
||||
* (i.e. tmpfs and other shmem based APIs).
|
||||
*/
|
||||
#if 0 /* not available yet */
|
||||
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
||||
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
||||
#endif
|
||||
#define UFFD_FEATURE_EVENT_REMAP (1<<2)
|
||||
#define UFFD_FEATURE_EVENT_REMOVE (1<<3)
|
||||
#define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4)
|
||||
#define UFFD_FEATURE_MISSING_SHMEM (1<<5)
|
||||
#define UFFD_FEATURE_EVENT_UNMAP (1<<6)
|
||||
__u64 features;
|
||||
|
||||
__u64 ioctls;
|
||||
|
141
include/uapi/linux/virtio_mmio.h
Normal file
141
include/uapi/linux/virtio_mmio.h
Normal file
@@ -0,0 +1,141 @@
|
||||
/*
|
||||
* Virtio platform device driver
|
||||
*
|
||||
* Copyright 2011, ARM Ltd.
|
||||
*
|
||||
* Based on Virtio PCI driver by Anthony Liguori, copyright IBM Corp. 2007
|
||||
*
|
||||
* This header is BSD licensed so anyone can use the definitions to implement
|
||||
* compatible drivers/servers.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of IBM nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_VIRTIO_MMIO_H
|
||||
#define _LINUX_VIRTIO_MMIO_H
|
||||
|
||||
/*
|
||||
* Control registers
|
||||
*/
|
||||
|
||||
/* Magic value ("virt" string) - Read Only */
|
||||
#define VIRTIO_MMIO_MAGIC_VALUE 0x000
|
||||
|
||||
/* Virtio device version - Read Only */
|
||||
#define VIRTIO_MMIO_VERSION 0x004
|
||||
|
||||
/* Virtio device ID - Read Only */
|
||||
#define VIRTIO_MMIO_DEVICE_ID 0x008
|
||||
|
||||
/* Virtio vendor ID - Read Only */
|
||||
#define VIRTIO_MMIO_VENDOR_ID 0x00c
|
||||
|
||||
/* Bitmask of the features supported by the device (host)
|
||||
* (32 bits per set) - Read Only */
|
||||
#define VIRTIO_MMIO_DEVICE_FEATURES 0x010
|
||||
|
||||
/* Device (host) features set selector - Write Only */
|
||||
#define VIRTIO_MMIO_DEVICE_FEATURES_SEL 0x014
|
||||
|
||||
/* Bitmask of features activated by the driver (guest)
|
||||
* (32 bits per set) - Write Only */
|
||||
#define VIRTIO_MMIO_DRIVER_FEATURES 0x020
|
||||
|
||||
/* Activated features set selector - Write Only */
|
||||
#define VIRTIO_MMIO_DRIVER_FEATURES_SEL 0x024
|
||||
|
||||
|
||||
#ifndef VIRTIO_MMIO_NO_LEGACY /* LEGACY DEVICES ONLY! */
|
||||
|
||||
/* Guest's memory page size in bytes - Write Only */
|
||||
#define VIRTIO_MMIO_GUEST_PAGE_SIZE 0x028
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Queue selector - Write Only */
|
||||
#define VIRTIO_MMIO_QUEUE_SEL 0x030
|
||||
|
||||
/* Maximum size of the currently selected queue - Read Only */
|
||||
#define VIRTIO_MMIO_QUEUE_NUM_MAX 0x034
|
||||
|
||||
/* Queue size for the currently selected queue - Write Only */
|
||||
#define VIRTIO_MMIO_QUEUE_NUM 0x038
|
||||
|
||||
|
||||
#ifndef VIRTIO_MMIO_NO_LEGACY /* LEGACY DEVICES ONLY! */
|
||||
|
||||
/* Used Ring alignment for the currently selected queue - Write Only */
|
||||
#define VIRTIO_MMIO_QUEUE_ALIGN 0x03c
|
||||
|
||||
/* Guest's PFN for the currently selected queue - Read Write */
|
||||
#define VIRTIO_MMIO_QUEUE_PFN 0x040
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Ready bit for the currently selected queue - Read Write */
|
||||
#define VIRTIO_MMIO_QUEUE_READY 0x044
|
||||
|
||||
/* Queue notifier - Write Only */
|
||||
#define VIRTIO_MMIO_QUEUE_NOTIFY 0x050
|
||||
|
||||
/* Interrupt status - Read Only */
|
||||
#define VIRTIO_MMIO_INTERRUPT_STATUS 0x060
|
||||
|
||||
/* Interrupt acknowledge - Write Only */
|
||||
#define VIRTIO_MMIO_INTERRUPT_ACK 0x064
|
||||
|
||||
/* Device status register - Read Write */
|
||||
#define VIRTIO_MMIO_STATUS 0x070
|
||||
|
||||
/* Selected queue's Descriptor Table address, 64 bits in two halves */
|
||||
#define VIRTIO_MMIO_QUEUE_DESC_LOW 0x080
|
||||
#define VIRTIO_MMIO_QUEUE_DESC_HIGH 0x084
|
||||
|
||||
/* Selected queue's Available Ring address, 64 bits in two halves */
|
||||
#define VIRTIO_MMIO_QUEUE_AVAIL_LOW 0x090
|
||||
#define VIRTIO_MMIO_QUEUE_AVAIL_HIGH 0x094
|
||||
|
||||
/* Selected queue's Used Ring address, 64 bits in two halves */
|
||||
#define VIRTIO_MMIO_QUEUE_USED_LOW 0x0a0
|
||||
#define VIRTIO_MMIO_QUEUE_USED_HIGH 0x0a4
|
||||
|
||||
/* Configuration atomicity value */
|
||||
#define VIRTIO_MMIO_CONFIG_GENERATION 0x0fc
|
||||
|
||||
/* The config space is defined by each driver as
|
||||
* the per-driver configuration space - Read Write */
|
||||
#define VIRTIO_MMIO_CONFIG 0x100
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Interrupt flags (re: interrupt status & acknowledge registers)
|
||||
*/
|
||||
|
||||
#define VIRTIO_MMIO_INT_VRING (1 << 0)
|
||||
#define VIRTIO_MMIO_INT_CONFIG (1 << 1)
|
||||
|
||||
#endif
|
@@ -79,7 +79,7 @@
|
||||
* configuration space */
|
||||
#define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20)
|
||||
/* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */
|
||||
#define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->msix_enabled)
|
||||
#define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->pci_dev->msix_enabled)
|
||||
|
||||
/* Virtio ABI version, this must match exactly */
|
||||
#define VIRTIO_PCI_ABI_VERSION 0
|
||||
|
Reference in New Issue
Block a user