diff options
Diffstat (limited to 'include/uapi/linux')
34 files changed, 653 insertions, 40 deletions
| diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index 19e765fbfef7..4e67194fd2c3 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild @@ -258,6 +258,7 @@ header-y += neighbour.h  header-y += net.h  header-y += net_dropmon.h  header-y += net_tstamp.h +header-y += netconf.h  header-y += netdevice.h  header-y += netfilter.h  header-y += netfilter_arp.h diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index d3eaaaf1009e..0c9b44871df0 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -500,13 +500,26 @@ union ethtool_flow_union {  	struct ethtool_ah_espip4_spec		esp_ip4_spec;  	struct ethtool_usrip4_spec		usr_ip4_spec;  	struct ethhdr				ether_spec; -	__u8					hdata[60]; +	__u8					hdata[52];  }; +/** + * struct ethtool_flow_ext - additional RX flow fields + * @h_dest: destination MAC address + * @vlan_etype: VLAN EtherType + * @vlan_tci: VLAN tag control information + * @data: user defined data + * + * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT + * is set in &struct ethtool_rx_flow_spec @flow_type. + * @h_dest is valid if %FLOW_MAC_EXT is set. + */  struct ethtool_flow_ext { -	__be16	vlan_etype; -	__be16	vlan_tci; -	__be32	data[2]; +	__u8		padding[2]; +	unsigned char	h_dest[ETH_ALEN]; +	__be16		vlan_etype; +	__be16		vlan_tci; +	__be32		data[2];  };  /** @@ -517,7 +530,8 @@ struct ethtool_flow_ext {   * @m_u: Masks for flow field bits to be matched   * @m_ext: Masks for additional field bits to be matched   *	Note, all additional fields must be ignored unless @flow_type - *	includes the %FLOW_EXT flag. + *	includes the %FLOW_EXT or %FLOW_MAC_EXT flag + *	(see &struct ethtool_flow_ext description).   * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC   *	if packets should be discarded   * @location: Location of rule in the table.  Locations must be @@ -1027,6 +1041,7 @@ enum ethtool_sfeatures_retval_bits {  #define	ETHER_FLOW	0x12	/* spec only (ether_spec) */  /* Flag to enable additional fields in struct ethtool_rx_flow_spec */  #define	FLOW_EXT	0x80000000 +#define	FLOW_MAC_EXT	0x40000000  /* L3-L4 network traffic flow hash options */  #define	RXH_L2DA	(1 << 1) diff --git a/include/uapi/linux/filter.h b/include/uapi/linux/filter.h index 3d7922433aba..9cfde6941099 100644 --- a/include/uapi/linux/filter.h +++ b/include/uapi/linux/filter.h @@ -127,7 +127,9 @@ struct sock_fprog {	/* Required for SO_ATTACH_FILTER. */  #define SKF_AD_RXHASH	32  #define SKF_AD_CPU	36  #define SKF_AD_ALU_XOR_X	40 -#define SKF_AD_MAX	44 +#define SKF_AD_VLAN_TAG	44 +#define SKF_AD_VLAN_TAG_PRESENT 48 +#define SKF_AD_MAX	52  #define SKF_NET_OFF   (-0x100000)  #define SKF_LL_OFF    (-0x200000) diff --git a/include/uapi/linux/hdlc/Kbuild b/include/uapi/linux/hdlc/Kbuild index aafaa5aa54d4..8c1d2cb75e33 100644 --- a/include/uapi/linux/hdlc/Kbuild +++ b/include/uapi/linux/hdlc/Kbuild @@ -1 +1,2 @@  # UAPI Header export list +header-y += ioctl.h diff --git a/include/uapi/linux/hdlc/ioctl.h b/include/uapi/linux/hdlc/ioctl.h new file mode 100644 index 000000000000..04bc0274a189 --- /dev/null +++ b/include/uapi/linux/hdlc/ioctl.h @@ -0,0 +1,84 @@ +#ifndef __HDLC_IOCTL_H__ +#define __HDLC_IOCTL_H__ + + +#define GENERIC_HDLC_VERSION 4	/* For synchronization with sethdlc utility */ + +#define CLOCK_DEFAULT   0	/* Default setting */ +#define CLOCK_EXT	1	/* External TX and RX clock - DTE */ +#define CLOCK_INT	2	/* Internal TX and RX clock - DCE */ +#define CLOCK_TXINT	3	/* Internal TX and external RX clock */ +#define CLOCK_TXFROMRX	4	/* TX clock derived from external RX clock */ + + +#define ENCODING_DEFAULT	0 /* Default setting */ +#define ENCODING_NRZ		1 +#define ENCODING_NRZI		2 +#define ENCODING_FM_MARK	3 +#define ENCODING_FM_SPACE	4 +#define ENCODING_MANCHESTER	5 + + +#define PARITY_DEFAULT		0 /* Default setting */ +#define PARITY_NONE		1 /* No parity */ +#define PARITY_CRC16_PR0	2 /* CRC16, initial value 0x0000 */ +#define PARITY_CRC16_PR1	3 /* CRC16, initial value 0xFFFF */ +#define PARITY_CRC16_PR0_CCITT	4 /* CRC16, initial 0x0000, ITU-T version */ +#define PARITY_CRC16_PR1_CCITT	5 /* CRC16, initial 0xFFFF, ITU-T version */ +#define PARITY_CRC32_PR0_CCITT	6 /* CRC32, initial value 0x00000000 */ +#define PARITY_CRC32_PR1_CCITT	7 /* CRC32, initial value 0xFFFFFFFF */ + +#define LMI_DEFAULT		0 /* Default setting */ +#define LMI_NONE		1 /* No LMI, all PVCs are static */ +#define LMI_ANSI		2 /* ANSI Annex D */ +#define LMI_CCITT		3 /* ITU-T Annex A */ +#define LMI_CISCO		4 /* The "original" LMI, aka Gang of Four */ + +#ifndef __ASSEMBLY__ + +typedef struct { +	unsigned int clock_rate; /* bits per second */ +	unsigned int clock_type; /* internal, external, TX-internal etc. */ +	unsigned short loopback; +} sync_serial_settings;          /* V.35, V.24, X.21 */ + +typedef struct { +	unsigned int clock_rate; /* bits per second */ +	unsigned int clock_type; /* internal, external, TX-internal etc. */ +	unsigned short loopback; +	unsigned int slot_map; +} te1_settings;                  /* T1, E1 */ + +typedef struct { +	unsigned short encoding; +	unsigned short parity; +} raw_hdlc_proto; + +typedef struct { +	unsigned int t391; +	unsigned int t392; +	unsigned int n391; +	unsigned int n392; +	unsigned int n393; +	unsigned short lmi; +	unsigned short dce; /* 1 for DCE (network side) operation */ +} fr_proto; + +typedef struct { +	unsigned int dlci; +} fr_proto_pvc;          /* for creating/deleting FR PVCs */ + +typedef struct { +	unsigned int dlci; +	char master[IFNAMSIZ];	/* Name of master FRAD device */ +}fr_proto_pvc_info;		/* for returning PVC information only */ + +typedef struct { +    unsigned int interval; +    unsigned int timeout; +} cisco_proto; + +/* PPP doesn't need any info now - supply length = 0 to ioctl */ + +#endif /* __ASSEMBLY__ */ +#endif /* __HDLC_IOCTL_H__ */ diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index a8fe9549ddbc..afbb18a0227c 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -97,5 +97,86 @@ struct __fdb_entry {  	__u16 unused;  }; +/* Bridge Flags */ +#define BRIDGE_FLAGS_MASTER	1	/* Bridge command to/from master */ +#define BRIDGE_FLAGS_SELF	2	/* Bridge command to/from lowerdev */ + +#define BRIDGE_MODE_VEB		0	/* Default loopback mode */ +#define BRIDGE_MODE_VEPA	1	/* 802.1Qbg defined VEPA mode */ + +/* Bridge management nested attributes + * [IFLA_AF_SPEC] = { + *     [IFLA_BRIDGE_FLAGS] + *     [IFLA_BRIDGE_MODE] + * } + */ +enum { +	IFLA_BRIDGE_FLAGS, +	IFLA_BRIDGE_MODE, +	__IFLA_BRIDGE_MAX, +}; +#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) + +/* Bridge multicast database attributes + * [MDBA_MDB] = { + *     [MDBA_MDB_ENTRY] = { + *         [MDBA_MDB_ENTRY_INFO] + *     } + * } + * [MDBA_ROUTER] = { + *    [MDBA_ROUTER_PORT] + * } + */ +enum { +	MDBA_UNSPEC, +	MDBA_MDB, +	MDBA_ROUTER, +	__MDBA_MAX, +}; +#define MDBA_MAX (__MDBA_MAX - 1) + +enum { +	MDBA_MDB_UNSPEC, +	MDBA_MDB_ENTRY, +	__MDBA_MDB_MAX, +}; +#define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) + +enum { +	MDBA_MDB_ENTRY_UNSPEC, +	MDBA_MDB_ENTRY_INFO, +	__MDBA_MDB_ENTRY_MAX, +}; +#define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1) + +enum { +	MDBA_ROUTER_UNSPEC, +	MDBA_ROUTER_PORT, +	__MDBA_ROUTER_MAX, +}; +#define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1) + +struct br_port_msg { +	__u8  family; +	__u32 ifindex; +}; + +struct br_mdb_entry { +	__u32 ifindex; +	struct { +		union { +			__be32	ip4; +			struct in6_addr ip6; +		} u; +		__be16		proto; +	} addr; +}; + +enum { +	MDBA_SET_ENTRY_UNSPEC, +	MDBA_SET_ENTRY, +	__MDBA_SET_ENTRY_MAX, +}; +#define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)  #endif /* _UAPI_LINUX_IF_BRIDGE_H */ diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h index 0343e1f0582c..67fb87ca1094 100644 --- a/include/uapi/linux/if_ether.h +++ b/include/uapi/linux/if_ether.h @@ -48,6 +48,7 @@  #define	ETH_P_BPQ	0x08FF		/* G8BPQ AX.25 Ethernet Packet	[ NOT AN OFFICIALLY REGISTERED ID ] */  #define ETH_P_IEEEPUP	0x0a00		/* Xerox IEEE802.3 PUP packet */  #define ETH_P_IEEEPUPAT	0x0a01		/* Xerox IEEE802.3 PUP Addr Trans packet */ +#define ETH_P_BATMAN	0x4305		/* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */  #define ETH_P_DEC       0x6000          /* DEC Assigned proto           */  #define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */  #define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */ diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index 5c80cb11518b..60f3b6b90602 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h @@ -205,6 +205,24 @@ enum {  #define IFLA_INET6_MAX	(__IFLA_INET6_MAX - 1) +enum { +	BRIDGE_MODE_UNSPEC, +	BRIDGE_MODE_HAIRPIN, +}; + +enum { +	IFLA_BRPORT_UNSPEC, +	IFLA_BRPORT_STATE,	/* Spanning tree state     */ +	IFLA_BRPORT_PRIORITY,	/* "             priority  */ +	IFLA_BRPORT_COST,	/* "             cost      */ +	IFLA_BRPORT_MODE,	/* mode (hairpin)          */ +	IFLA_BRPORT_GUARD,	/* bpdu guard              */ +	IFLA_BRPORT_PROTECT,	/* root port protection    */ +	IFLA_BRPORT_FAST_LEAVE,	/* multicast fast leave    */ +	__IFLA_BRPORT_MAX +}; +#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) +  struct ifla_cacheinfo {  	__u32	max_reasm_len;  	__u32	tstamp;		/* ipv6InterfaceTable updated timestamp */ @@ -285,6 +303,10 @@ enum {  	IFLA_VXLAN_AGEING,  	IFLA_VXLAN_LIMIT,  	IFLA_VXLAN_PORT_RANGE, +	IFLA_VXLAN_PROXY, +	IFLA_VXLAN_RSC, +	IFLA_VXLAN_L2MISS, +	IFLA_VXLAN_L3MISS,  	__IFLA_VXLAN_MAX  };  #define IFLA_VXLAN_MAX	(__IFLA_VXLAN_MAX - 1) diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h index f3799295d231..f9a60375f0d0 100644 --- a/include/uapi/linux/if_packet.h +++ b/include/uapi/linux/if_packet.h @@ -50,6 +50,7 @@ struct sockaddr_ll {  #define PACKET_TX_TIMESTAMP		16  #define PACKET_TIMESTAMP		17  #define PACKET_FANOUT			18 +#define PACKET_TX_HAS_OFF		19  #define PACKET_FANOUT_HASH		0  #define PACKET_FANOUT_LB		1 diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h index 25a585ce23e6..2835b85fd46d 100644 --- a/include/uapi/linux/if_tun.h +++ b/include/uapi/linux/if_tun.h @@ -31,9 +31,11 @@  #define TUN_FASYNC	0x0010  #define TUN_NOCHECKSUM	0x0020  #define TUN_NO_PI	0x0040 +/* This flag has no real effect */  #define TUN_ONE_QUEUE	0x0080  #define TUN_PERSIST 	0x0100	  #define TUN_VNET_HDR 	0x0200 +#define TUN_TAP_MQ      0x0400  /* Ioctl defines */  #define TUNSETNOCSUM  _IOW('T', 200, int)  @@ -53,14 +55,19 @@  #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)  #define TUNGETVNETHDRSZ _IOR('T', 215, int)  #define TUNSETVNETHDRSZ _IOW('T', 216, int) +#define TUNSETQUEUE  _IOW('T', 217, int)  /* TUNSETIFF ifr flags */  #define IFF_TUN		0x0001  #define IFF_TAP		0x0002  #define IFF_NO_PI	0x1000 +/* This flag has no real effect */  #define IFF_ONE_QUEUE	0x2000  #define IFF_VNET_HDR	0x4000  #define IFF_TUN_EXCL	0x8000 +#define IFF_MULTI_QUEUE 0x0100 +#define IFF_ATTACH_QUEUE 0x0200 +#define IFF_DETACH_QUEUE 0x0400  /* Features for GSO (TUNSETOFFLOAD). */  #define TUN_F_CSUM	0x01	/* You can hand me unchecksummed packets. */ diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h index 5db5942575fe..aee73d0611fb 100644 --- a/include/uapi/linux/if_tunnel.h +++ b/include/uapi/linux/if_tunnel.h @@ -37,6 +37,26 @@ struct ip_tunnel_parm {  	struct iphdr		iph;  }; +enum { +	IFLA_IPTUN_UNSPEC, +	IFLA_IPTUN_LINK, +	IFLA_IPTUN_LOCAL, +	IFLA_IPTUN_REMOTE, +	IFLA_IPTUN_TTL, +	IFLA_IPTUN_TOS, +	IFLA_IPTUN_ENCAP_LIMIT, +	IFLA_IPTUN_FLOWINFO, +	IFLA_IPTUN_FLAGS, +	IFLA_IPTUN_PROTO, +	IFLA_IPTUN_PMTUDISC, +	IFLA_IPTUN_6RD_PREFIX, +	IFLA_IPTUN_6RD_RELAY_PREFIX, +	IFLA_IPTUN_6RD_PREFIXLEN, +	IFLA_IPTUN_6RD_RELAY_PREFIXLEN, +	__IFLA_IPTUN_MAX, +}; +#define IFLA_IPTUN_MAX	(__IFLA_IPTUN_MAX - 1) +  /* SIT-mode i_flags */  #define	SIT_ISATAP	0x0001 diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 1e3159989958..f79c3721da6e 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h @@ -240,6 +240,7 @@ struct in6_flowlabel_req {   *   * IP6T_SO_GET_REVISION_MATCH	68   * IP6T_SO_GET_REVISION_TARGET	69 + * IP6T_SO_ORIGINAL_DST		80   */  /* RFC5014: Source address selection */ diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h index 8c469af939aa..bbde90fa5838 100644 --- a/include/uapi/linux/inet_diag.h +++ b/include/uapi/linux/inet_diag.h @@ -109,9 +109,10 @@ enum {  	INET_DIAG_TOS,  	INET_DIAG_TCLASS,  	INET_DIAG_SKMEMINFO, +	INET_DIAG_SHUTDOWN,  }; -#define INET_DIAG_MAX INET_DIAG_SKMEMINFO +#define INET_DIAG_MAX INET_DIAG_SHUTDOWN  /* INET_DIAG_MEM */ diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index 558828590a69..935119c698ac 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h @@ -851,6 +851,7 @@ struct input_keymap_entry {  #define MSC_GESTURE		0x02  #define MSC_RAW			0x03  #define MSC_SCAN		0x04 +#define MSC_TIMESTAMP		0x05  #define MSC_MAX			0x07  #define MSC_CNT			(MSC_MAX+1) diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h index a6d7d1c536c3..5a2991cf0251 100644 --- a/include/uapi/linux/ipv6.h +++ b/include/uapi/linux/ipv6.h @@ -157,6 +157,7 @@ enum {  	DEVCONF_DISABLE_IPV6,  	DEVCONF_ACCEPT_DAD,  	DEVCONF_FORCE_TLLAO, +	DEVCONF_NDISC_NOTIFY,  	DEVCONF_MAX  }; diff --git a/include/uapi/linux/ipv6_route.h b/include/uapi/linux/ipv6_route.h index 0459664c2636..2be7bd174751 100644 --- a/include/uapi/linux/ipv6_route.h +++ b/include/uapi/linux/ipv6_route.h @@ -55,4 +55,7 @@ struct in6_rtmsg {  #define RTMSG_NEWROUTE		0x21  #define RTMSG_DELROUTE		0x22 +#define IP6_RT_PRIO_USER	1024 +#define IP6_RT_PRIO_ADDRCONF	256 +  #endif /* _UAPI_LINUX_IPV6_ROUTE_H */ diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 0a6d6ba44c85..e6e5d4b13708 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -167,10 +167,15 @@ struct kvm_pit_config {  #define KVM_EXIT_OSI              18  #define KVM_EXIT_PAPR_HCALL	  19  #define KVM_EXIT_S390_UCONTROL	  20 +#define KVM_EXIT_WATCHDOG         21  /* For KVM_EXIT_INTERNAL_ERROR */ -#define KVM_INTERNAL_ERROR_EMULATION 1 -#define KVM_INTERNAL_ERROR_SIMUL_EX 2 +/* Emulate instruction failed. */ +#define KVM_INTERNAL_ERROR_EMULATION	1 +/* Encounter unexpected simultaneous exceptions. */ +#define KVM_INTERNAL_ERROR_SIMUL_EX	2 +/* Encounter unexpected vm-exit due to delivery event. */ +#define KVM_INTERNAL_ERROR_DELIVERY_EV	3  /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */  struct kvm_run { @@ -477,6 +482,8 @@ struct kvm_ppc_smmu_info {  	struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];  }; +#define KVM_PPC_PVINFO_FLAGS_EV_IDLE   (1<<0) +  #define KVMIO 0xAE  /* machine type bits, to be used as argument to KVM_CREATE_VM */ @@ -626,6 +633,8 @@ struct kvm_ppc_smmu_info {  #define KVM_CAP_READONLY_MEM 81  #endif  #define KVM_CAP_IRQFD_RESAMPLE 82 +#define KVM_CAP_PPC_BOOKE_WATCHDOG 83 +#define KVM_CAP_PPC_HTAB_FD 84  #ifdef KVM_CAP_IRQ_ROUTING @@ -848,6 +857,11 @@ struct kvm_s390_ucas_mapping {  #define KVM_PPC_GET_SMMU_INFO	  _IOR(KVMIO,  0xa6, struct kvm_ppc_smmu_info)  /* Available with KVM_CAP_PPC_ALLOC_HTAB */  #define KVM_PPC_ALLOCATE_HTAB	  _IOWR(KVMIO, 0xa7, __u32) +#define KVM_CREATE_SPAPR_TCE	  _IOW(KVMIO,  0xa8, struct kvm_create_spapr_tce) +/* Available with KVM_CAP_RMA */ +#define KVM_ALLOCATE_RMA	  _IOR(KVMIO,  0xa9, struct kvm_allocate_rma) +/* Available with KVM_CAP_PPC_HTAB_FD */ +#define KVM_PPC_GET_HTAB_FD	  _IOW(KVMIO,  0xaa, struct kvm_get_htab_fd)  /*   * ioctls for vcpu fds @@ -911,9 +925,6 @@ struct kvm_s390_ucas_mapping {  /* Available with KVM_CAP_XCRS */  #define KVM_GET_XCRS		  _IOR(KVMIO,  0xa6, struct kvm_xcrs)  #define KVM_SET_XCRS		  _IOW(KVMIO,  0xa7, struct kvm_xcrs) -#define KVM_CREATE_SPAPR_TCE	  _IOW(KVMIO,  0xa8, struct kvm_create_spapr_tce) -/* Available with KVM_CAP_RMA */ -#define KVM_ALLOCATE_RMA	  _IOR(KVMIO,  0xa9, struct kvm_allocate_rma)  /* Available with KVM_CAP_SW_TLB */  #define KVM_DIRTY_TLB		  _IOW(KVMIO,  0xaa, struct kvm_dirty_tlb)  /* Available with KVM_CAP_ONE_REG */ diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h index e15192cb9cf4..12f68c7ceba6 100644 --- a/include/uapi/linux/magic.h +++ b/include/uapi/linux/magic.h @@ -27,6 +27,7 @@  #define ISOFS_SUPER_MAGIC	0x9660  #define JFFS2_SUPER_MAGIC	0x72b6  #define PSTOREFS_MAGIC		0x6165676C +#define EFIVARFS_MAGIC		0xde5e81e4  #define MINIX_SUPER_MAGIC	0x137F		/* minix v1 fs, 14 char names */  #define MINIX_SUPER_MAGIC2	0x138F		/* minix v1 fs, 30 char names */ diff --git a/include/uapi/linux/mempolicy.h b/include/uapi/linux/mempolicy.h index 23e62e0537e2..0d11c3dcd3a1 100644 --- a/include/uapi/linux/mempolicy.h +++ b/include/uapi/linux/mempolicy.h @@ -20,6 +20,7 @@ enum {  	MPOL_PREFERRED,  	MPOL_BIND,  	MPOL_INTERLEAVE, +	MPOL_LOCAL,  	MPOL_MAX,	/* always last member of enum */  }; @@ -47,9 +48,15 @@ enum mpol_rebind_step {  /* Flags for mbind */  #define MPOL_MF_STRICT	(1<<0)	/* Verify existing pages in the mapping */ -#define MPOL_MF_MOVE	(1<<1)	/* Move pages owned by this process to conform to mapping */ -#define MPOL_MF_MOVE_ALL (1<<2)	/* Move every page to conform to mapping */ -#define MPOL_MF_INTERNAL (1<<3)	/* Internal flags start here */ +#define MPOL_MF_MOVE	 (1<<1)	/* Move pages owned by this process to conform +				   to policy */ +#define MPOL_MF_MOVE_ALL (1<<2)	/* Move every page to conform to policy */ +#define MPOL_MF_LAZY	 (1<<3)	/* Modifies '_MOVE:  lazy migrate on fault */ +#define MPOL_MF_INTERNAL (1<<4)	/* Internal flags start here */ + +#define MPOL_MF_VALID	(MPOL_MF_STRICT   | 	\ +			 MPOL_MF_MOVE     | 	\ +			 MPOL_MF_MOVE_ALL)  /*   * Internal flags that share the struct mempolicy flags word with @@ -59,6 +66,8 @@ enum mpol_rebind_step {  #define MPOL_F_SHARED  (1 << 0)	/* identify shared policies */  #define MPOL_F_LOCAL   (1 << 1)	/* preferred local allocation */  #define MPOL_F_REBINDING (1 << 2)	/* identify policies in rebinding */ +#define MPOL_F_MOF	(1 << 3) /* this policy wants migrate on fault */ +#define MPOL_F_MORON	(1 << 4) /* Migrate On pte_numa Reference On Node */  #endif /* _UAPI_LINUX_MEMPOLICY_H */ diff --git a/include/uapi/linux/netconf.h b/include/uapi/linux/netconf.h new file mode 100644 index 000000000000..64804a798b0c --- /dev/null +++ b/include/uapi/linux/netconf.h @@ -0,0 +1,24 @@ +#ifndef _UAPI_LINUX_NETCONF_H_ +#define _UAPI_LINUX_NETCONF_H_ + +#include <linux/types.h> +#include <linux/netlink.h> + +struct netconfmsg { +	__u8	ncm_family; +}; + +enum { +	NETCONFA_UNSPEC, +	NETCONFA_IFINDEX, +	NETCONFA_FORWARDING, +	NETCONFA_RP_FILTER, +	NETCONFA_MC_FORWARDING, +	__NETCONFA_MAX +}; +#define NETCONFA_MAX	(__NETCONFA_MAX - 1) + +#define NETCONFA_IFINDEX_ALL		-1 +#define NETCONFA_IFINDEX_DEFAULT	-2 + +#endif /* _UAPI_LINUX_NETCONF_H_ */ diff --git a/include/uapi/linux/netfilter/nfnetlink_conntrack.h b/include/uapi/linux/netfilter/nfnetlink_conntrack.h index 43bfe3e1685b..86e930cf3dfb 100644 --- a/include/uapi/linux/netfilter/nfnetlink_conntrack.h +++ b/include/uapi/linux/netfilter/nfnetlink_conntrack.h @@ -9,6 +9,8 @@ enum cntl_msg_types {  	IPCTNL_MSG_CT_GET_CTRZERO,  	IPCTNL_MSG_CT_GET_STATS_CPU,  	IPCTNL_MSG_CT_GET_STATS, +	IPCTNL_MSG_CT_GET_DYING, +	IPCTNL_MSG_CT_GET_UNCONFIRMED,  	IPCTNL_MSG_MAX  }; diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h index bf1ef65cc582..649c68062dca 100644 --- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h +++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h @@ -178,6 +178,9 @@ struct ip6t_error {  #define IP6T_SO_GET_REVISION_TARGET	(IP6T_BASE_CTL + 5)  #define IP6T_SO_GET_MAX			IP6T_SO_GET_REVISION_TARGET +/* obtain original address if REDIRECT'd connection */ +#define IP6T_SO_ORIGINAL_DST            80 +  /* ICMP matching stuff */  struct ip6t_icmp {  	__u8 type;				/* type to match */ diff --git a/include/uapi/linux/nfc.h b/include/uapi/linux/nfc.h index d908d17da56d..0e63cee8d810 100644 --- a/include/uapi/linux/nfc.h +++ b/include/uapi/linux/nfc.h @@ -60,6 +60,13 @@   *      target mode.   * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated   *      from target mode. + * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device + * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for + *	a device. LTO must be set before the link is up otherwise -EINPROGRESS + *	is returned. RW and MIUX can be set at anytime and will be passed in + *	subsequent CONNECT and CC messages. + *	If one of the passed parameters is wrong none is set and -EINVAL is + *	returned.   */  enum nfc_commands {  	NFC_CMD_UNSPEC, @@ -77,6 +84,8 @@ enum nfc_commands {  	NFC_EVENT_TARGET_LOST,  	NFC_EVENT_TM_ACTIVATED,  	NFC_EVENT_TM_DEACTIVATED, +	NFC_CMD_LLC_GET_PARAMS, +	NFC_CMD_LLC_SET_PARAMS,  /* private: internal use only */  	__NFC_CMD_AFTER_LAST  }; @@ -102,6 +111,9 @@ enum nfc_commands {   * @NFC_ATTR_RF_MODE: Initiator or target   * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for   * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for + * @NFC_ATTR_LLC_PARAM_LTO: Link TimeOut parameter + * @NFC_ATTR_LLC_PARAM_RW: Receive Window size parameter + * @NFC_ATTR_LLC_PARAM_MIUX: MIU eXtension parameter   */  enum nfc_attrs {  	NFC_ATTR_UNSPEC, @@ -119,6 +131,9 @@ enum nfc_attrs {  	NFC_ATTR_DEVICE_POWERED,  	NFC_ATTR_IM_PROTOCOLS,  	NFC_ATTR_TM_PROTOCOLS, +	NFC_ATTR_LLC_PARAM_LTO, +	NFC_ATTR_LLC_PARAM_RW, +	NFC_ATTR_LLC_PARAM_MIUX,  /* private: internal use only */  	__NFC_ATTR_AFTER_LAST  }; diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 7df9b500c804..e3e19f8b16f2 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -118,8 +118,9 @@   *	to get a list of all present wiphys.   * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or   *	%NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, - *	%NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, - *	%NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT, + *	%NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the + *	attributes determining the channel width; this is used for setting + *	monitor mode channel),  %NL80211_ATTR_WIPHY_RETRY_SHORT,   *	%NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,   *	and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.   *	However, for setting the channel, see %NL80211_CMD_SET_CHANNEL @@ -171,7 +172,7 @@   *	%NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY,   *	%NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT.   *	The channel to use can be set on the interface or be given using the - *	%NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs. + *	%NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width.   * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP   * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface   * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP @@ -401,8 +402,7 @@   *	a response while being associated to an AP on another channel.   *	%NL80211_ATTR_IFINDEX is used to specify which interface (and thus   *	radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the - *	frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be - *	optionally used to specify additional channel parameters. + *	frequency for the operation.   *	%NL80211_ATTR_DURATION is used to specify the duration in milliseconds   *	to remain on the channel. This command is also used as an event to   *	notify when the requested duration starts (it may take a while for the @@ -440,12 +440,11 @@   *	as an event indicating reception of a frame that was not processed in   *	kernel code, but is for us (i.e., which may need to be processed in a   *	user space application). %NL80211_ATTR_FRAME is used to specify the - *	frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and - *	optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on - *	which channel the frame is to be transmitted or was received. If this - *	channel is not the current channel (remain-on-channel or the - *	operational channel) the device will switch to the given channel and - *	transmit the frame, optionally waiting for a response for the time + *	frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used + *	to indicate on which channel the frame is to be transmitted or was + *	received. If this channel is not the current channel (remain-on-channel + *	or the operational channel) the device will switch to the given channel + *	and transmit the frame, optionally waiting for a response for the time   *	specified using %NL80211_ATTR_DURATION. When called, this operation   *	returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the   *	TX status event pertaining to the TX request. @@ -473,8 +472,8 @@   *	command is used as an event to indicate the that a trigger level was   *	reached.   * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ - *	and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed - *	by %NL80211_ATTR_IFINDEX) shall operate on. + *	and the attributes determining channel width) the given interface + *	(identifed by %NL80211_ATTR_IFINDEX) shall operate on.   *	In case multiple channels are supported by the device, the mechanism   *	with which it switches channels is implementation-defined.   *	When a monitor interface is given, it can only switch channel while @@ -526,6 +525,12 @@   *	of PMKSA caching dandidates.   *   * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). + *	In addition, this can be used as an event to request userspace to take + *	actions on TDLS links (set up a new link or tear down an existing one). + *	In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested + *	operation, %NL80211_ATTR_MAC contains the peer MAC address, and + *	%NL80211_ATTR_REASON_CODE the reason code to be used (only with + *	%NL80211_TDLS_TEARDOWN).   * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.   *   * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP @@ -562,8 +567,8 @@   *   * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels   *	independently of the userspace SME, send this event indicating - *	%NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with - *	%NL80211_ATTR_WIPHY_CHANNEL_TYPE. + *	%NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the + *	attributes determining channel width.   *   * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by   *	its %NL80211_ATTR_WDEV identifier. It must have been created with @@ -578,6 +583,9 @@   *	station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON   *	is used for this.   * + * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames + *	for IBSS or MESH vif. + *   * @NL80211_CMD_MAX: highest used command number   * @__NL80211_CMD_AFTER_LAST: internal use   */ @@ -726,6 +734,8 @@ enum nl80211_commands {  	NL80211_CMD_CONN_FAILED, +	NL80211_CMD_SET_MCAST_RATE, +  	/* add new commands above here */  	/* used to define NL80211_CMD_MAX below */ @@ -762,14 +772,26 @@ enum nl80211_commands {   *	/sys/class/ieee80211/<phyname>/index   * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)   * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters - * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz + * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, + *	defines the channel together with the (deprecated) + *	%NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes + *	%NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 + *	and %NL80211_ATTR_CENTER_FREQ2 + * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values + *	of &enum nl80211_chan_width, describing the channel width. See the + *	documentation of the enum for more information. + * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the + *	channel, used for anything but 20 MHz bandwidth + * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the + *	channel, used only for 80+80 MHz bandwidth   * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ - *	if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): + *	if HT20 or HT40 are to be used (i.e., HT disabled if not included):   *	NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including   *		this attribute)   *	NL80211_CHAN_HT20 = HT20 only   *	NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel   *	NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel + *	This attribute is now deprecated.   * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is   *	less than or equal to the RTS threshold; allowed range: 1..255;   *	dot11ShortRetryLimit; u8 @@ -1273,6 +1295,21 @@ enum nl80211_commands {   *	the connection request from a station. nl80211_connect_failed_reason   *	enum has different reasons of connection failure.   * + * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts + *	with the Authentication transaction sequence number field. + * + * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from + *	association request when used with NL80211_CMD_NEW_STATION) + * + * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) + * + * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with + *	the START_AP and SET_BSS commands + * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the + *	START_AP and SET_BSS commands. This can have the values 0 or 1; + *	if not given in START_AP 0 is assumed, if not given in SET_BSS + *	no change is made. + *   * @NL80211_ATTR_MAX: highest attribute number currently defined   * @__NL80211_ATTR_AFTER_LAST: internal use   */ @@ -1530,6 +1567,19 @@ enum nl80211_attrs {  	NL80211_ATTR_CONN_FAILED_REASON, +	NL80211_ATTR_SAE_DATA, + +	NL80211_ATTR_VHT_CAPABILITY, + +	NL80211_ATTR_SCAN_FLAGS, + +	NL80211_ATTR_CHANNEL_WIDTH, +	NL80211_ATTR_CENTER_FREQ1, +	NL80211_ATTR_CENTER_FREQ2, + +	NL80211_ATTR_P2P_CTWINDOW, +	NL80211_ATTR_P2P_OPPPS, +  	/* add attributes here, update the policy in nl80211.c */  	__NL80211_ATTR_AFTER_LAST, @@ -1573,6 +1623,7 @@ enum nl80211_attrs {  #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY	16  #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY	24  #define NL80211_HT_CAPABILITY_LEN		26 +#define NL80211_VHT_CAPABILITY_LEN		12  #define NL80211_MAX_NR_CIPHER_SUITES		5  #define NL80211_MAX_NR_AKM_SUITES		2 @@ -1693,10 +1744,15 @@ struct nl80211_sta_flag_update {   * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved   * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s)   * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) - * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate + * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate   * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval   * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s)   * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined + * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) + * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) + * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate + * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate + * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate   * @__NL80211_RATE_INFO_AFTER_LAST: internal use   */  enum nl80211_rate_info { @@ -1706,6 +1762,11 @@ enum nl80211_rate_info {  	NL80211_RATE_INFO_40_MHZ_WIDTH,  	NL80211_RATE_INFO_SHORT_GI,  	NL80211_RATE_INFO_BITRATE32, +	NL80211_RATE_INFO_VHT_MCS, +	NL80211_RATE_INFO_VHT_NSS, +	NL80211_RATE_INFO_80_MHZ_WIDTH, +	NL80211_RATE_INFO_80P80_MHZ_WIDTH, +	NL80211_RATE_INFO_160_MHZ_WIDTH,  	/* keep last */  	__NL80211_RATE_INFO_AFTER_LAST, @@ -2414,6 +2475,15 @@ enum nl80211_ac {  #define NL80211_TXQ_Q_BE	NL80211_AC_BE  #define NL80211_TXQ_Q_BK	NL80211_AC_BK +/** + * enum nl80211_channel_type - channel type + * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel + * @NL80211_CHAN_HT20: 20 MHz HT channel + * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel + *	below the control channel + * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel + *	above the control channel + */  enum nl80211_channel_type {  	NL80211_CHAN_NO_HT,  	NL80211_CHAN_HT20, @@ -2422,6 +2492,32 @@ enum nl80211_channel_type {  };  /** + * enum nl80211_chan_width - channel width definitions + * + * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH + * attribute. + * + * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel + * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel + * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + *	attribute must be provided as well + * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + *	attribute must be provided as well + * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + *	and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well + * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 + *	attribute must be provided as well + */ +enum nl80211_chan_width { +	NL80211_CHAN_WIDTH_20_NOHT, +	NL80211_CHAN_WIDTH_20, +	NL80211_CHAN_WIDTH_40, +	NL80211_CHAN_WIDTH_80, +	NL80211_CHAN_WIDTH_80P80, +	NL80211_CHAN_WIDTH_160, +}; + +/**   * enum nl80211_bss - netlink attributes for a BSS   *   * @__NL80211_BSS_INVALID: invalid @@ -2489,6 +2585,7 @@ enum nl80211_bss_status {   * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only)   * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r)   * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) + * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals   * @__NL80211_AUTHTYPE_NUM: internal   * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm   * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by @@ -2500,6 +2597,7 @@ enum nl80211_auth_type {  	NL80211_AUTHTYPE_SHARED_KEY,  	NL80211_AUTHTYPE_FT,  	NL80211_AUTHTYPE_NETWORK_EAP, +	NL80211_AUTHTYPE_SAE,  	/* keep last */  	__NL80211_AUTHTYPE_NUM, @@ -3028,6 +3126,20 @@ enum nl80211_ap_sme_features {   *	in the interface combinations, even when it's only used for scan   *	and remain-on-channel. This could be due to, for example, the   *	remain-on-channel implementation requiring a channel context. + * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of + *	equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station + *	mode + * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan + * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported + * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif + * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting + * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform + *	OBSS scans and generate 20/40 BSS coex reports. This flag is used only + *	for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. + * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window + *	setting + * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic + *	powersave   */  enum nl80211_feature_flags {  	NL80211_FEATURE_SK_TX_STATUS			= 1 << 0, @@ -3035,6 +3147,14 @@ enum nl80211_feature_flags {  	NL80211_FEATURE_INACTIVITY_TIMER		= 1 << 2,  	NL80211_FEATURE_CELL_BASE_REG_HINTS		= 1 << 3,  	NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL	= 1 << 4, +	NL80211_FEATURE_SAE				= 1 << 5, +	NL80211_FEATURE_LOW_PRIORITY_SCAN		= 1 << 6, +	NL80211_FEATURE_SCAN_FLUSH			= 1 << 7, +	NL80211_FEATURE_AP_SCAN				= 1 << 8, +	NL80211_FEATURE_VIF_TXPOWER			= 1 << 9, +	NL80211_FEATURE_NEED_OBSS_SCAN			= 1 << 10, +	NL80211_FEATURE_P2P_GO_CTWIN			= 1 << 11, +	NL80211_FEATURE_P2P_GO_OPPPS			= 1 << 12,  };  /** @@ -3069,4 +3189,25 @@ enum nl80211_connect_failed_reason {  	NL80211_CONN_FAIL_BLOCKED_CLIENT,  }; +/** + * enum nl80211_scan_flags -  scan request control flags + * + * Scan request control flags are used to control the handling + * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN + * requests. + * + * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority + * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning + * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured + *	as AP and the beaconing has already been configured. This attribute is + *	dangerous because will destroy stations performance as a lot of frames + *	will be lost while scanning off-channel, therefore it must be used only + *	when really needed + */ +enum nl80211_scan_flags { +	NL80211_SCAN_FLAG_LOW_PRIORITY			= 1<<0, +	NL80211_SCAN_FLAG_FLUSH				= 1<<1, +	NL80211_SCAN_FLAG_AP				= 1<<2, +}; +  #endif /* __LINUX_NL80211_H */ diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h index 20ae747ddf34..6b7b6f1e2fd6 100644 --- a/include/uapi/linux/pci_regs.h +++ b/include/uapi/linux/pci_regs.h @@ -349,7 +349,7 @@  #define  PCI_AF_STATUS_TP	0x01  #define PCI_CAP_AF_SIZEOF	6	/* size of AF registers */ -/* PCI-X registers */ +/* PCI-X registers (Type 0 (non-bridge) devices) */  #define PCI_X_CMD		2	/* Modes & Features */  #define  PCI_X_CMD_DPERR_E	0x0001	/* Data Parity Error Recovery Enable */ @@ -389,6 +389,19 @@  #define PCI_CAP_PCIX_SIZEOF_V1	24	/* size for Version 1 */  #define PCI_CAP_PCIX_SIZEOF_V2	PCI_CAP_PCIX_SIZEOF_V1	/* Same for v2 */ +/* PCI-X registers (Type 1 (bridge) devices) */ + +#define PCI_X_BRIDGE_SSTATUS	2	/* Secondary Status */ +#define  PCI_X_SSTATUS_64BIT	0x0001	/* Secondary AD interface is 64 bits */ +#define  PCI_X_SSTATUS_133MHZ	0x0002	/* 133 MHz capable */ +#define  PCI_X_SSTATUS_FREQ	0x03c0	/* Secondary Bus Mode and Frequency */ +#define  PCI_X_SSTATUS_VERS	0x3000	/* PCI-X Capability Version */ +#define  PCI_X_SSTATUS_V1	0x1000	/* Mode 2, not Mode 1 */ +#define  PCI_X_SSTATUS_V2	0x2000	/* Mode 1 or Modes 1 and 2 */ +#define  PCI_X_SSTATUS_266MHZ	0x4000	/* 266 MHz capable */ +#define  PCI_X_SSTATUS_533MHZ	0x8000	/* 533 MHz capable */ +#define PCI_X_BRIDGE_STATUS	4	/* Bridge Status */ +  /* PCI Bridge Subsystem ID registers */  #define PCI_SSVID_VENDOR_ID     4	/* PCI-Bridge subsystem vendor id register */ @@ -456,6 +469,8 @@  #define  PCI_EXP_LNKCAP_PN	0xff000000 /* Port Number */  #define PCI_EXP_LNKCTL		16	/* Link Control */  #define  PCI_EXP_LNKCTL_ASPMC	0x0003	/* ASPM Control */ +#define  PCI_EXP_LNKCTL_ASPM_L0S  0x01	/* L0s Enable */ +#define  PCI_EXP_LNKCTL_ASPM_L1   0x02	/* L1 Enable */  #define  PCI_EXP_LNKCTL_RCB	0x0008	/* Read Completion Boundary */  #define  PCI_EXP_LNKCTL_LD	0x0010	/* Link Disable */  #define  PCI_EXP_LNKCTL_RL	0x0020	/* Retrain Link */ @@ -544,9 +559,9 @@  #define  PCI_EXP_OBFF_WAKE_EN	0x6000	/* OBFF using WAKE# signaling */  #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2	44	/* v2 endpoints end here */  #define PCI_EXP_LNKCAP2		44	/* Link Capability 2 */ -#define  PCI_EXP_LNKCAP2_SLS_2_5GB 0x01	/* Current Link Speed 2.5GT/s */ -#define  PCI_EXP_LNKCAP2_SLS_5_0GB 0x02	/* Current Link Speed 5.0GT/s */ -#define  PCI_EXP_LNKCAP2_SLS_8_0GB 0x04	/* Current Link Speed 8.0GT/s */ +#define  PCI_EXP_LNKCAP2_SLS_2_5GB 0x02	/* Supported Link Speed 2.5GT/s */ +#define  PCI_EXP_LNKCAP2_SLS_5_0GB 0x04	/* Supported Link Speed 5.0GT/s */ +#define  PCI_EXP_LNKCAP2_SLS_8_0GB 0x08	/* Supported Link Speed 8.0GT/s */  #define  PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */  #define PCI_EXP_LNKCTL2		48	/* Link Control 2 */  #define PCI_EXP_LNKSTA2		50	/* Link Status 2 */ diff --git a/include/uapi/linux/ptp_clock.h b/include/uapi/linux/ptp_clock.h index 94e981f810a2..b65c834f83e9 100644 --- a/include/uapi/linux/ptp_clock.h +++ b/include/uapi/linux/ptp_clock.h @@ -67,12 +67,26 @@ struct ptp_perout_request {  	unsigned int rsv[4];          /* Reserved for future use. */  }; +#define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */ + +struct ptp_sys_offset { +	unsigned int n_samples; /* Desired number of measurements. */ +	unsigned int rsv[3];    /* Reserved for future use. */ +	/* +	 * Array of interleaved system/phc time stamps. The kernel +	 * will provide 2*n_samples + 1 time stamps, with the last +	 * one as a system time stamp. +	 */ +	struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; +}; +  #define PTP_CLK_MAGIC '='  #define PTP_CLOCK_GETCAPS  _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps)  #define PTP_EXTTS_REQUEST  _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request)  #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request)  #define PTP_ENABLE_PPS     _IOW(PTP_CLK_MAGIC, 4, int) +#define PTP_SYS_OFFSET     _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset)  struct ptp_extts_event {  	struct ptp_clock_time t; /* Time event occured. */ diff --git a/include/uapi/linux/ptrace.h b/include/uapi/linux/ptrace.h index 1ef6c056a9e4..022ab186a812 100644 --- a/include/uapi/linux/ptrace.h +++ b/include/uapi/linux/ptrace.h @@ -73,7 +73,10 @@  #define PTRACE_O_TRACEEXIT	(1 << PTRACE_EVENT_EXIT)  #define PTRACE_O_TRACESECCOMP	(1 << PTRACE_EVENT_SECCOMP) -#define PTRACE_O_MASK		0x000000ff +/* eventless options */ +#define PTRACE_O_EXITKILL	(1 << 20) + +#define PTRACE_O_MASK		(0x000000ff | PTRACE_O_EXITKILL)  #include <asm/ptrace.h> diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index fcd768b09f6e..7a5eb196ade9 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -120,6 +120,18 @@ enum {  	RTM_SETDCB,  #define RTM_SETDCB RTM_SETDCB +	RTM_NEWNETCONF = 80, +#define RTM_NEWNETCONF RTM_NEWNETCONF +	RTM_GETNETCONF = 82, +#define RTM_GETNETCONF RTM_GETNETCONF + +	RTM_NEWMDB = 84, +#define RTM_NEWMDB RTM_NEWMDB +	RTM_DELMDB = 85, +#define RTM_DELMDB RTM_DELMDB +	RTM_GETMDB = 86, +#define RTM_GETMDB RTM_GETMDB +  	__RTM_MAX,  #define RTM_MAX		(((__RTM_MAX + 3) & ~3) - 1)  }; @@ -222,6 +234,7 @@ enum {  #define RTPROT_XORP	14	/* XORP */  #define RTPROT_NTK	15	/* Netsukuku */  #define RTPROT_DHCP	16      /* DHCP client */ +#define RTPROT_MROUTED	17      /* Multicast daemon */  /* rtm_scope @@ -283,6 +296,7 @@ enum rtattr_type_t {  	RTA_MP_ALGO, /* no longer used */  	RTA_TABLE,  	RTA_MARK, +	RTA_MFC_STATS,  	__RTA_MAX  }; @@ -403,6 +417,12 @@ struct rta_session {  	} u;  }; +struct rta_mfc_stats { +	__u64	mfcs_packets; +	__u64	mfcs_bytes; +	__u64	mfcs_wrong_if; +}; +  /****   *		General form of address family dependent message.   ****/ @@ -587,6 +607,12 @@ enum rtnetlink_groups {  #define RTNLGRP_PHONET_ROUTE	RTNLGRP_PHONET_ROUTE  	RTNLGRP_DCB,  #define RTNLGRP_DCB		RTNLGRP_DCB +	RTNLGRP_IPV4_NETCONF, +#define RTNLGRP_IPV4_NETCONF	RTNLGRP_IPV4_NETCONF +	RTNLGRP_IPV6_NETCONF, +#define RTNLGRP_IPV6_NETCONF	RTNLGRP_IPV6_NETCONF +	RTNLGRP_MDB, +#define RTNLGRP_MDB		RTNLGRP_MDB  	__RTNLGRP_MAX  };  #define RTNLGRP_MAX	(__RTNLGRP_MAX - 1) diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h index 7e1ab20adc03..78f99d97475b 100644 --- a/include/uapi/linux/serial_core.h +++ b/include/uapi/linux/serial_core.h @@ -49,7 +49,8 @@  #define PORT_XR17D15X	21	/* Exar XR17D15x UART */  #define PORT_LPC3220	22	/* NXP LPC32xx SoC "Standard" UART */  #define PORT_8250_CIR	23	/* CIR infrared port, has its own driver */ -#define PORT_MAX_8250	23	/* max port ID */ +#define PORT_XR17V35X	24	/* Exar XR17V35x UARTs */ +#define PORT_MAX_8250	24	/* max port ID */  /*   * ARM specific type numbers.  These are not currently guaranteed @@ -215,5 +216,7 @@  /* Energy Micro efm32 SoC */  #define PORT_EFMUART   100 +/* ARC (Synopsys) on-chip UART */ +#define PORT_ARC       101  #endif /* _UAPILINUX_SERIAL_CORE_H */ diff --git a/include/uapi/linux/serial_reg.h b/include/uapi/linux/serial_reg.h index 5ed325e88a81..e6322605b138 100644 --- a/include/uapi/linux/serial_reg.h +++ b/include/uapi/linux/serial_reg.h @@ -367,5 +367,23 @@  #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 */ +  #endif /* _LINUX_SERIAL_REG_H */ diff --git a/include/uapi/linux/unix_diag.h b/include/uapi/linux/unix_diag.h index b1d2bf16b33c..b8a24941db21 100644 --- a/include/uapi/linux/unix_diag.h +++ b/include/uapi/linux/unix_diag.h @@ -37,6 +37,7 @@ enum {  	UNIX_DIAG_ICONS,  	UNIX_DIAG_RQLEN,  	UNIX_DIAG_MEMINFO, +	UNIX_DIAG_SHUTDOWN,  	UNIX_DIAG_MAX,  }; diff --git a/include/uapi/linux/usb/cdc.h b/include/uapi/linux/usb/cdc.h index 81a927930bfd..f35aa0a338c7 100644 --- a/include/uapi/linux/usb/cdc.h +++ b/include/uapi/linux/usb/cdc.h @@ -19,6 +19,7 @@  #define USB_CDC_SUBCLASS_OBEX			0x0b  #define USB_CDC_SUBCLASS_EEM			0x0c  #define USB_CDC_SUBCLASS_NCM			0x0d +#define USB_CDC_SUBCLASS_MBIM			0x0e  #define USB_CDC_PROTO_NONE			0 @@ -33,6 +34,7 @@  #define USB_CDC_PROTO_EEM			7  #define USB_CDC_NCM_PROTO_NTB			1 +#define USB_CDC_MBIM_PROTO_NTB			2  /*-------------------------------------------------------------------------*/ @@ -53,6 +55,7 @@  #define USB_CDC_DMM_TYPE		0x14  #define USB_CDC_OBEX_TYPE		0x15  #define USB_CDC_NCM_TYPE		0x1a +#define USB_CDC_MBIM_TYPE		0x1b  /* "Header Functional Descriptor" from CDC spec  5.2.3.1 */  struct usb_cdc_header_desc { @@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc {  	__le16	bcdNcmVersion;  	__u8	bmNetworkCapabilities;  } __attribute__ ((packed)); + +/* "MBIM Control Model Functional Descriptor" */ +struct usb_cdc_mbim_desc { +	__u8	bLength; +	__u8	bDescriptorType; +	__u8	bDescriptorSubType; + +	__le16	bcdMBIMVersion; +	__le16  wMaxControlMessage; +	__u8    bNumberFilters; +	__u8    bMaxFilterSize; +	__le16  wMaxSegmentSize; +	__u8    bmNetworkCapabilities; +} __attribute__ ((packed)); +  /*-------------------------------------------------------------------------*/  /* @@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 {  #define USB_CDC_NCM_NDP32_CRC_SIGN	0x316D636E /* ncm1 */  #define USB_CDC_NCM_NDP32_NOCRC_SIGN	0x306D636E /* ncm0 */ +#define USB_CDC_MBIM_NDP16_IPS_SIGN     0x00535049 /* IPS<sessionID> : IPS0 for now */ +#define USB_CDC_MBIM_NDP32_IPS_SIGN     0x00737069 /* ips<sessionID> : ips0 for now */ +#define USB_CDC_MBIM_NDP16_DSS_SIGN     0x00535344 /* DSS<sessionID> */ +#define USB_CDC_MBIM_NDP32_DSS_SIGN     0x00737364 /* dss<sessionID> */ +  /* 16-bit NCM Datagram Pointer Entry */  struct usb_cdc_ncm_dpe16 {  	__le16	wDatagramIndex; diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 57bfa59cda74..3cf3e946e331 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -186,6 +186,7 @@ enum v4l2_memory {  	V4L2_MEMORY_MMAP             = 1,  	V4L2_MEMORY_USERPTR          = 2,  	V4L2_MEMORY_OVERLAY          = 3, +	V4L2_MEMORY_DMABUF           = 4,  };  /* see also http://vektor.theorem.ca/graphics/ycbcr/ */ @@ -602,6 +603,8 @@ struct v4l2_requestbuffers {   *			should be passed to mmap() called on the video node)   * @userptr:		when memory is V4L2_MEMORY_USERPTR, a userspace pointer   *			pointing to this plane + * @fd:			when memory is V4L2_MEMORY_DMABUF, a userspace file + *			descriptor associated with this plane   * @data_offset:	offset in the plane to the start of data; usually 0,   *			unless there is a header in front of the data   * @@ -616,6 +619,7 @@ struct v4l2_plane {  	union {  		__u32		mem_offset;  		unsigned long	userptr; +		__s32		fd;  	} m;  	__u32			data_offset;  	__u32			reserved[11]; @@ -640,6 +644,8 @@ struct v4l2_plane {   *		(or a "cookie" that should be passed to mmap() as offset)   * @userptr:	for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;   *		a userspace pointer pointing to this buffer + * @fd:		for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF; + *		a userspace file descriptor associated with this buffer   * @planes:	for multiplanar buffers; userspace pointer to the array of plane   *		info structs for this buffer   * @length:	size in bytes of the buffer (NOT its payload) for single-plane @@ -666,6 +672,7 @@ struct v4l2_buffer {  		__u32           offset;  		unsigned long   userptr;  		struct v4l2_plane *planes; +		__s32		fd;  	} m;  	__u32			length;  	__u32			reserved2; @@ -687,6 +694,33 @@ struct v4l2_buffer {  #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE	0x0800  #define V4L2_BUF_FLAG_NO_CACHE_CLEAN		0x1000 +/** + * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor + * + * @index:	id number of the buffer + * @type:	enum v4l2_buf_type; buffer type (type == *_MPLANE for + *		multiplanar buffers); + * @plane:	index of the plane to be exported, 0 for single plane queues + * @flags:	flags for newly created file, currently only O_CLOEXEC is + *		supported, refer to manual of open syscall for more details + * @fd:		file descriptor associated with DMABUF (set by driver) + * + * Contains data used for exporting a video buffer as DMABUF file descriptor. + * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF + * (identical to the cookie used to mmap() the buffer to userspace). All + * reserved fields must be set to zero. The field reserved0 is expected to + * become a structure 'type' allowing an alternative layout of the structure + * content. Therefore this field should not be used for any other extensions. + */ +struct v4l2_exportbuffer { +	__u32		type; /* enum v4l2_buf_type */ +	__u32		index; +	__u32		plane; +	__u32		flags; +	__s32		fd; +	__u32		reserved[11]; +}; +  /*   *	O V E R L A Y   P R E V I E W   */ @@ -737,7 +771,7 @@ struct v4l2_window {  struct v4l2_captureparm {  	__u32		   capability;	  /*  Supported modes */  	__u32		   capturemode;	  /*  Current mode */ -	struct v4l2_fract  timeperframe;  /*  Time per frame in .1us units */ +	struct v4l2_fract  timeperframe;  /*  Time per frame in seconds */  	__u32		   extendedmode;  /*  Driver-specific extensions */  	__u32              readbuffers;   /*  # of buffers for read */  	__u32		   reserved[4]; @@ -1888,6 +1922,7 @@ struct v4l2_create_buffers {  #define VIDIOC_S_FBUF		 _IOW('V', 11, struct v4l2_framebuffer)  #define VIDIOC_OVERLAY		 _IOW('V', 14, int)  #define VIDIOC_QBUF		_IOWR('V', 15, struct v4l2_buffer) +#define VIDIOC_EXPBUF		_IOWR('V', 16, struct v4l2_exportbuffer)  #define VIDIOC_DQBUF		_IOWR('V', 17, struct v4l2_buffer)  #define VIDIOC_STREAMON		 _IOW('V', 18, int)  #define VIDIOC_STREAMOFF	 _IOW('V', 19, int) diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h index 2470f541af50..848e3584d7c8 100644 --- a/include/uapi/linux/virtio_net.h +++ b/include/uapi/linux/virtio_net.h @@ -51,6 +51,8 @@  #define VIRTIO_NET_F_CTRL_RX_EXTRA 20	/* Extra RX mode control support */  #define VIRTIO_NET_F_GUEST_ANNOUNCE 21	/* Guest can announce device on the  					 * network */ +#define VIRTIO_NET_F_MQ	22	/* Device supports Receive Flow +					 * Steering */  #define VIRTIO_NET_S_LINK_UP	1	/* Link is up */  #define VIRTIO_NET_S_ANNOUNCE	2	/* Announcement is needed */ @@ -60,6 +62,11 @@ struct virtio_net_config {  	__u8 mac[6];  	/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */  	__u16 status; +	/* Maximum number of each of transmit and receive queues; +	 * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ. +	 * Legal values are between 1 and 0x8000 +	 */ +	__u16 max_virtqueue_pairs;  } __attribute__((packed));  /* This is the first element of the scatter-gather list.  If you don't @@ -166,4 +173,24 @@ struct virtio_net_ctrl_mac {  #define VIRTIO_NET_CTRL_ANNOUNCE       3   #define VIRTIO_NET_CTRL_ANNOUNCE_ACK         0 +/* + * Control Receive Flow Steering + * + * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET + * enables Receive Flow Steering, specifying the number of the transmit and + * receive queues that will be used. After the command is consumed and acked by + * the device, the device will not steer new packets on receive virtqueues + * other than specified nor read from transmit virtqueues other than specified. + * Accordingly, driver should not transmit new packets  on virtqueues other than + * specified. + */ +struct virtio_net_ctrl_mq { +	u16 virtqueue_pairs; +}; + +#define VIRTIO_NET_CTRL_MQ   4 + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET        0 + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN        1 + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX        0x8000 +  #endif /* _LINUX_VIRTIO_NET_H */ |