diff options
Diffstat (limited to 'include/uapi/linux')
33 files changed, 668 insertions, 36 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index e194387ef784..4e67194fd2c3 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
@@ -258,6 +258,7 @@ header-y += neighbour.h | |||
258 | header-y += net.h | 258 | header-y += net.h |
259 | header-y += net_dropmon.h | 259 | header-y += net_dropmon.h |
260 | header-y += net_tstamp.h | 260 | header-y += net_tstamp.h |
261 | header-y += netconf.h | ||
261 | header-y += netdevice.h | 262 | header-y += netdevice.h |
262 | header-y += netfilter.h | 263 | header-y += netfilter.h |
263 | header-y += netfilter_arp.h | 264 | header-y += netfilter_arp.h |
@@ -415,3 +416,4 @@ header-y += wireless.h | |||
415 | header-y += x25.h | 416 | header-y += x25.h |
416 | header-y += xattr.h | 417 | header-y += xattr.h |
417 | header-y += xfrm.h | 418 | header-y += xfrm.h |
419 | header-y += hw_breakpoint.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 { | |||
500 | struct ethtool_ah_espip4_spec esp_ip4_spec; | 500 | struct ethtool_ah_espip4_spec esp_ip4_spec; |
501 | struct ethtool_usrip4_spec usr_ip4_spec; | 501 | struct ethtool_usrip4_spec usr_ip4_spec; |
502 | struct ethhdr ether_spec; | 502 | struct ethhdr ether_spec; |
503 | __u8 hdata[60]; | 503 | __u8 hdata[52]; |
504 | }; | 504 | }; |
505 | 505 | ||
506 | /** | ||
507 | * struct ethtool_flow_ext - additional RX flow fields | ||
508 | * @h_dest: destination MAC address | ||
509 | * @vlan_etype: VLAN EtherType | ||
510 | * @vlan_tci: VLAN tag control information | ||
511 | * @data: user defined data | ||
512 | * | ||
513 | * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT | ||
514 | * is set in &struct ethtool_rx_flow_spec @flow_type. | ||
515 | * @h_dest is valid if %FLOW_MAC_EXT is set. | ||
516 | */ | ||
506 | struct ethtool_flow_ext { | 517 | struct ethtool_flow_ext { |
507 | __be16 vlan_etype; | 518 | __u8 padding[2]; |
508 | __be16 vlan_tci; | 519 | unsigned char h_dest[ETH_ALEN]; |
509 | __be32 data[2]; | 520 | __be16 vlan_etype; |
521 | __be16 vlan_tci; | ||
522 | __be32 data[2]; | ||
510 | }; | 523 | }; |
511 | 524 | ||
512 | /** | 525 | /** |
@@ -517,7 +530,8 @@ struct ethtool_flow_ext { | |||
517 | * @m_u: Masks for flow field bits to be matched | 530 | * @m_u: Masks for flow field bits to be matched |
518 | * @m_ext: Masks for additional field bits to be matched | 531 | * @m_ext: Masks for additional field bits to be matched |
519 | * Note, all additional fields must be ignored unless @flow_type | 532 | * Note, all additional fields must be ignored unless @flow_type |
520 | * includes the %FLOW_EXT flag. | 533 | * includes the %FLOW_EXT or %FLOW_MAC_EXT flag |
534 | * (see &struct ethtool_flow_ext description). | ||
521 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC | 535 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC |
522 | * if packets should be discarded | 536 | * if packets should be discarded |
523 | * @location: Location of rule in the table. Locations must be | 537 | * @location: Location of rule in the table. Locations must be |
@@ -1027,6 +1041,7 @@ enum ethtool_sfeatures_retval_bits { | |||
1027 | #define ETHER_FLOW 0x12 /* spec only (ether_spec) */ | 1041 | #define ETHER_FLOW 0x12 /* spec only (ether_spec) */ |
1028 | /* Flag to enable additional fields in struct ethtool_rx_flow_spec */ | 1042 | /* Flag to enable additional fields in struct ethtool_rx_flow_spec */ |
1029 | #define FLOW_EXT 0x80000000 | 1043 | #define FLOW_EXT 0x80000000 |
1044 | #define FLOW_MAC_EXT 0x40000000 | ||
1030 | 1045 | ||
1031 | /* L3-L4 network traffic flow hash options */ | 1046 | /* L3-L4 network traffic flow hash options */ |
1032 | #define RXH_L2DA (1 << 1) | 1047 | #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. */ | |||
127 | #define SKF_AD_RXHASH 32 | 127 | #define SKF_AD_RXHASH 32 |
128 | #define SKF_AD_CPU 36 | 128 | #define SKF_AD_CPU 36 |
129 | #define SKF_AD_ALU_XOR_X 40 | 129 | #define SKF_AD_ALU_XOR_X 40 |
130 | #define SKF_AD_MAX 44 | 130 | #define SKF_AD_VLAN_TAG 44 |
131 | #define SKF_AD_VLAN_TAG_PRESENT 48 | ||
132 | #define SKF_AD_MAX 52 | ||
131 | #define SKF_NET_OFF (-0x100000) | 133 | #define SKF_NET_OFF (-0x100000) |
132 | #define SKF_LL_OFF (-0x200000) | 134 | #define SKF_LL_OFF (-0x200000) |
133 | 135 | ||
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 @@ | |||
1 | # UAPI Header export list | 1 | # UAPI Header export list |
2 | 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 @@ | |||
1 | #ifndef __HDLC_IOCTL_H__ | ||
2 | #define __HDLC_IOCTL_H__ | ||
3 | |||
4 | |||
5 | #define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */ | ||
6 | |||
7 | #define CLOCK_DEFAULT 0 /* Default setting */ | ||
8 | #define CLOCK_EXT 1 /* External TX and RX clock - DTE */ | ||
9 | #define CLOCK_INT 2 /* Internal TX and RX clock - DCE */ | ||
10 | #define CLOCK_TXINT 3 /* Internal TX and external RX clock */ | ||
11 | #define CLOCK_TXFROMRX 4 /* TX clock derived from external RX clock */ | ||
12 | |||
13 | |||
14 | #define ENCODING_DEFAULT 0 /* Default setting */ | ||
15 | #define ENCODING_NRZ 1 | ||
16 | #define ENCODING_NRZI 2 | ||
17 | #define ENCODING_FM_MARK 3 | ||
18 | #define ENCODING_FM_SPACE 4 | ||
19 | #define ENCODING_MANCHESTER 5 | ||
20 | |||
21 | |||
22 | #define PARITY_DEFAULT 0 /* Default setting */ | ||
23 | #define PARITY_NONE 1 /* No parity */ | ||
24 | #define PARITY_CRC16_PR0 2 /* CRC16, initial value 0x0000 */ | ||
25 | #define PARITY_CRC16_PR1 3 /* CRC16, initial value 0xFFFF */ | ||
26 | #define PARITY_CRC16_PR0_CCITT 4 /* CRC16, initial 0x0000, ITU-T version */ | ||
27 | #define PARITY_CRC16_PR1_CCITT 5 /* CRC16, initial 0xFFFF, ITU-T version */ | ||
28 | #define PARITY_CRC32_PR0_CCITT 6 /* CRC32, initial value 0x00000000 */ | ||
29 | #define PARITY_CRC32_PR1_CCITT 7 /* CRC32, initial value 0xFFFFFFFF */ | ||
30 | |||
31 | #define LMI_DEFAULT 0 /* Default setting */ | ||
32 | #define LMI_NONE 1 /* No LMI, all PVCs are static */ | ||
33 | #define LMI_ANSI 2 /* ANSI Annex D */ | ||
34 | #define LMI_CCITT 3 /* ITU-T Annex A */ | ||
35 | #define LMI_CISCO 4 /* The "original" LMI, aka Gang of Four */ | ||
36 | |||
37 | #ifndef __ASSEMBLY__ | ||
38 | |||
39 | typedef struct { | ||
40 | unsigned int clock_rate; /* bits per second */ | ||
41 | unsigned int clock_type; /* internal, external, TX-internal etc. */ | ||
42 | unsigned short loopback; | ||
43 | } sync_serial_settings; /* V.35, V.24, X.21 */ | ||
44 | |||
45 | typedef struct { | ||
46 | unsigned int clock_rate; /* bits per second */ | ||
47 | unsigned int clock_type; /* internal, external, TX-internal etc. */ | ||
48 | unsigned short loopback; | ||
49 | unsigned int slot_map; | ||
50 | } te1_settings; /* T1, E1 */ | ||
51 | |||
52 | typedef struct { | ||
53 | unsigned short encoding; | ||
54 | unsigned short parity; | ||
55 | } raw_hdlc_proto; | ||
56 | |||
57 | typedef struct { | ||
58 | unsigned int t391; | ||
59 | unsigned int t392; | ||
60 | unsigned int n391; | ||
61 | unsigned int n392; | ||
62 | unsigned int n393; | ||
63 | unsigned short lmi; | ||
64 | unsigned short dce; /* 1 for DCE (network side) operation */ | ||
65 | } fr_proto; | ||
66 | |||
67 | typedef struct { | ||
68 | unsigned int dlci; | ||
69 | } fr_proto_pvc; /* for creating/deleting FR PVCs */ | ||
70 | |||
71 | typedef struct { | ||
72 | unsigned int dlci; | ||
73 | char master[IFNAMSIZ]; /* Name of master FRAD device */ | ||
74 | }fr_proto_pvc_info; /* for returning PVC information only */ | ||
75 | |||
76 | typedef struct { | ||
77 | unsigned int interval; | ||
78 | unsigned int timeout; | ||
79 | } cisco_proto; | ||
80 | |||
81 | /* PPP doesn't need any info now - supply length = 0 to ioctl */ | ||
82 | |||
83 | #endif /* __ASSEMBLY__ */ | ||
84 | #endif /* __HDLC_IOCTL_H__ */ | ||
diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h new file mode 100644 index 000000000000..b04000a2296a --- /dev/null +++ b/include/uapi/linux/hw_breakpoint.h | |||
@@ -0,0 +1,30 @@ | |||
1 | #ifndef _UAPI_LINUX_HW_BREAKPOINT_H | ||
2 | #define _UAPI_LINUX_HW_BREAKPOINT_H | ||
3 | |||
4 | enum { | ||
5 | HW_BREAKPOINT_LEN_1 = 1, | ||
6 | HW_BREAKPOINT_LEN_2 = 2, | ||
7 | HW_BREAKPOINT_LEN_4 = 4, | ||
8 | HW_BREAKPOINT_LEN_8 = 8, | ||
9 | }; | ||
10 | |||
11 | enum { | ||
12 | HW_BREAKPOINT_EMPTY = 0, | ||
13 | HW_BREAKPOINT_R = 1, | ||
14 | HW_BREAKPOINT_W = 2, | ||
15 | HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W, | ||
16 | HW_BREAKPOINT_X = 4, | ||
17 | HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, | ||
18 | }; | ||
19 | |||
20 | enum bp_type_idx { | ||
21 | TYPE_INST = 0, | ||
22 | #ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS | ||
23 | TYPE_DATA = 0, | ||
24 | #else | ||
25 | TYPE_DATA = 1, | ||
26 | #endif | ||
27 | TYPE_MAX | ||
28 | }; | ||
29 | |||
30 | #endif /* _UAPI_LINUX_HW_BREAKPOINT_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 { | |||
97 | __u16 unused; | 97 | __u16 unused; |
98 | }; | 98 | }; |
99 | 99 | ||
100 | /* Bridge Flags */ | ||
101 | #define BRIDGE_FLAGS_MASTER 1 /* Bridge command to/from master */ | ||
102 | #define BRIDGE_FLAGS_SELF 2 /* Bridge command to/from lowerdev */ | ||
103 | |||
104 | #define BRIDGE_MODE_VEB 0 /* Default loopback mode */ | ||
105 | #define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */ | ||
106 | |||
107 | /* Bridge management nested attributes | ||
108 | * [IFLA_AF_SPEC] = { | ||
109 | * [IFLA_BRIDGE_FLAGS] | ||
110 | * [IFLA_BRIDGE_MODE] | ||
111 | * } | ||
112 | */ | ||
113 | enum { | ||
114 | IFLA_BRIDGE_FLAGS, | ||
115 | IFLA_BRIDGE_MODE, | ||
116 | __IFLA_BRIDGE_MAX, | ||
117 | }; | ||
118 | #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) | ||
119 | |||
120 | /* Bridge multicast database attributes | ||
121 | * [MDBA_MDB] = { | ||
122 | * [MDBA_MDB_ENTRY] = { | ||
123 | * [MDBA_MDB_ENTRY_INFO] | ||
124 | * } | ||
125 | * } | ||
126 | * [MDBA_ROUTER] = { | ||
127 | * [MDBA_ROUTER_PORT] | ||
128 | * } | ||
129 | */ | ||
130 | enum { | ||
131 | MDBA_UNSPEC, | ||
132 | MDBA_MDB, | ||
133 | MDBA_ROUTER, | ||
134 | __MDBA_MAX, | ||
135 | }; | ||
136 | #define MDBA_MAX (__MDBA_MAX - 1) | ||
137 | |||
138 | enum { | ||
139 | MDBA_MDB_UNSPEC, | ||
140 | MDBA_MDB_ENTRY, | ||
141 | __MDBA_MDB_MAX, | ||
142 | }; | ||
143 | #define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) | ||
144 | |||
145 | enum { | ||
146 | MDBA_MDB_ENTRY_UNSPEC, | ||
147 | MDBA_MDB_ENTRY_INFO, | ||
148 | __MDBA_MDB_ENTRY_MAX, | ||
149 | }; | ||
150 | #define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1) | ||
151 | |||
152 | enum { | ||
153 | MDBA_ROUTER_UNSPEC, | ||
154 | MDBA_ROUTER_PORT, | ||
155 | __MDBA_ROUTER_MAX, | ||
156 | }; | ||
157 | #define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1) | ||
158 | |||
159 | struct br_port_msg { | ||
160 | __u8 family; | ||
161 | __u32 ifindex; | ||
162 | }; | ||
163 | |||
164 | struct br_mdb_entry { | ||
165 | __u32 ifindex; | ||
166 | struct { | ||
167 | union { | ||
168 | __be32 ip4; | ||
169 | struct in6_addr ip6; | ||
170 | } u; | ||
171 | __be16 proto; | ||
172 | } addr; | ||
173 | }; | ||
174 | |||
175 | enum { | ||
176 | MDBA_SET_ENTRY_UNSPEC, | ||
177 | MDBA_SET_ENTRY, | ||
178 | __MDBA_SET_ENTRY_MAX, | ||
179 | }; | ||
180 | #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1) | ||
100 | 181 | ||
101 | #endif /* _UAPI_LINUX_IF_BRIDGE_H */ | 182 | #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 @@ | |||
48 | #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ | 48 | #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ |
49 | #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ | 49 | #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ |
50 | #define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ | 50 | #define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ |
51 | #define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */ | ||
51 | #define ETH_P_DEC 0x6000 /* DEC Assigned proto */ | 52 | #define ETH_P_DEC 0x6000 /* DEC Assigned proto */ |
52 | #define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ | 53 | #define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ |
53 | #define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ | 54 | #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 { | |||
205 | 205 | ||
206 | #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) | 206 | #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) |
207 | 207 | ||
208 | enum { | ||
209 | BRIDGE_MODE_UNSPEC, | ||
210 | BRIDGE_MODE_HAIRPIN, | ||
211 | }; | ||
212 | |||
213 | enum { | ||
214 | IFLA_BRPORT_UNSPEC, | ||
215 | IFLA_BRPORT_STATE, /* Spanning tree state */ | ||
216 | IFLA_BRPORT_PRIORITY, /* " priority */ | ||
217 | IFLA_BRPORT_COST, /* " cost */ | ||
218 | IFLA_BRPORT_MODE, /* mode (hairpin) */ | ||
219 | IFLA_BRPORT_GUARD, /* bpdu guard */ | ||
220 | IFLA_BRPORT_PROTECT, /* root port protection */ | ||
221 | IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ | ||
222 | __IFLA_BRPORT_MAX | ||
223 | }; | ||
224 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | ||
225 | |||
208 | struct ifla_cacheinfo { | 226 | struct ifla_cacheinfo { |
209 | __u32 max_reasm_len; | 227 | __u32 max_reasm_len; |
210 | __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ | 228 | __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ |
@@ -285,6 +303,10 @@ enum { | |||
285 | IFLA_VXLAN_AGEING, | 303 | IFLA_VXLAN_AGEING, |
286 | IFLA_VXLAN_LIMIT, | 304 | IFLA_VXLAN_LIMIT, |
287 | IFLA_VXLAN_PORT_RANGE, | 305 | IFLA_VXLAN_PORT_RANGE, |
306 | IFLA_VXLAN_PROXY, | ||
307 | IFLA_VXLAN_RSC, | ||
308 | IFLA_VXLAN_L2MISS, | ||
309 | IFLA_VXLAN_L3MISS, | ||
288 | __IFLA_VXLAN_MAX | 310 | __IFLA_VXLAN_MAX |
289 | }; | 311 | }; |
290 | #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) | 312 | #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 { | |||
50 | #define PACKET_TX_TIMESTAMP 16 | 50 | #define PACKET_TX_TIMESTAMP 16 |
51 | #define PACKET_TIMESTAMP 17 | 51 | #define PACKET_TIMESTAMP 17 |
52 | #define PACKET_FANOUT 18 | 52 | #define PACKET_FANOUT 18 |
53 | #define PACKET_TX_HAS_OFF 19 | ||
53 | 54 | ||
54 | #define PACKET_FANOUT_HASH 0 | 55 | #define PACKET_FANOUT_HASH 0 |
55 | #define PACKET_FANOUT_LB 1 | 56 | #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 @@ | |||
31 | #define TUN_FASYNC 0x0010 | 31 | #define TUN_FASYNC 0x0010 |
32 | #define TUN_NOCHECKSUM 0x0020 | 32 | #define TUN_NOCHECKSUM 0x0020 |
33 | #define TUN_NO_PI 0x0040 | 33 | #define TUN_NO_PI 0x0040 |
34 | /* This flag has no real effect */ | ||
34 | #define TUN_ONE_QUEUE 0x0080 | 35 | #define TUN_ONE_QUEUE 0x0080 |
35 | #define TUN_PERSIST 0x0100 | 36 | #define TUN_PERSIST 0x0100 |
36 | #define TUN_VNET_HDR 0x0200 | 37 | #define TUN_VNET_HDR 0x0200 |
38 | #define TUN_TAP_MQ 0x0400 | ||
37 | 39 | ||
38 | /* Ioctl defines */ | 40 | /* Ioctl defines */ |
39 | #define TUNSETNOCSUM _IOW('T', 200, int) | 41 | #define TUNSETNOCSUM _IOW('T', 200, int) |
@@ -53,14 +55,19 @@ | |||
53 | #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) | 55 | #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) |
54 | #define TUNGETVNETHDRSZ _IOR('T', 215, int) | 56 | #define TUNGETVNETHDRSZ _IOR('T', 215, int) |
55 | #define TUNSETVNETHDRSZ _IOW('T', 216, int) | 57 | #define TUNSETVNETHDRSZ _IOW('T', 216, int) |
58 | #define TUNSETQUEUE _IOW('T', 217, int) | ||
56 | 59 | ||
57 | /* TUNSETIFF ifr flags */ | 60 | /* TUNSETIFF ifr flags */ |
58 | #define IFF_TUN 0x0001 | 61 | #define IFF_TUN 0x0001 |
59 | #define IFF_TAP 0x0002 | 62 | #define IFF_TAP 0x0002 |
60 | #define IFF_NO_PI 0x1000 | 63 | #define IFF_NO_PI 0x1000 |
64 | /* This flag has no real effect */ | ||
61 | #define IFF_ONE_QUEUE 0x2000 | 65 | #define IFF_ONE_QUEUE 0x2000 |
62 | #define IFF_VNET_HDR 0x4000 | 66 | #define IFF_VNET_HDR 0x4000 |
63 | #define IFF_TUN_EXCL 0x8000 | 67 | #define IFF_TUN_EXCL 0x8000 |
68 | #define IFF_MULTI_QUEUE 0x0100 | ||
69 | #define IFF_ATTACH_QUEUE 0x0200 | ||
70 | #define IFF_DETACH_QUEUE 0x0400 | ||
64 | 71 | ||
65 | /* Features for GSO (TUNSETOFFLOAD). */ | 72 | /* Features for GSO (TUNSETOFFLOAD). */ |
66 | #define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */ | 73 | #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 { | |||
37 | struct iphdr iph; | 37 | struct iphdr iph; |
38 | }; | 38 | }; |
39 | 39 | ||
40 | enum { | ||
41 | IFLA_IPTUN_UNSPEC, | ||
42 | IFLA_IPTUN_LINK, | ||
43 | IFLA_IPTUN_LOCAL, | ||
44 | IFLA_IPTUN_REMOTE, | ||
45 | IFLA_IPTUN_TTL, | ||
46 | IFLA_IPTUN_TOS, | ||
47 | IFLA_IPTUN_ENCAP_LIMIT, | ||
48 | IFLA_IPTUN_FLOWINFO, | ||
49 | IFLA_IPTUN_FLAGS, | ||
50 | IFLA_IPTUN_PROTO, | ||
51 | IFLA_IPTUN_PMTUDISC, | ||
52 | IFLA_IPTUN_6RD_PREFIX, | ||
53 | IFLA_IPTUN_6RD_RELAY_PREFIX, | ||
54 | IFLA_IPTUN_6RD_PREFIXLEN, | ||
55 | IFLA_IPTUN_6RD_RELAY_PREFIXLEN, | ||
56 | __IFLA_IPTUN_MAX, | ||
57 | }; | ||
58 | #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) | ||
59 | |||
40 | /* SIT-mode i_flags */ | 60 | /* SIT-mode i_flags */ |
41 | #define SIT_ISATAP 0x0001 | 61 | #define SIT_ISATAP 0x0001 |
42 | 62 | ||
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 { | |||
240 | * | 240 | * |
241 | * IP6T_SO_GET_REVISION_MATCH 68 | 241 | * IP6T_SO_GET_REVISION_MATCH 68 |
242 | * IP6T_SO_GET_REVISION_TARGET 69 | 242 | * IP6T_SO_GET_REVISION_TARGET 69 |
243 | * IP6T_SO_ORIGINAL_DST 80 | ||
243 | */ | 244 | */ |
244 | 245 | ||
245 | /* RFC5014: Source address selection */ | 246 | /* 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 { | |||
109 | INET_DIAG_TOS, | 109 | INET_DIAG_TOS, |
110 | INET_DIAG_TCLASS, | 110 | INET_DIAG_TCLASS, |
111 | INET_DIAG_SKMEMINFO, | 111 | INET_DIAG_SKMEMINFO, |
112 | INET_DIAG_SHUTDOWN, | ||
112 | }; | 113 | }; |
113 | 114 | ||
114 | #define INET_DIAG_MAX INET_DIAG_SKMEMINFO | 115 | #define INET_DIAG_MAX INET_DIAG_SHUTDOWN |
115 | 116 | ||
116 | 117 | ||
117 | /* INET_DIAG_MEM */ | 118 | /* 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 { | |||
851 | #define MSC_GESTURE 0x02 | 851 | #define MSC_GESTURE 0x02 |
852 | #define MSC_RAW 0x03 | 852 | #define MSC_RAW 0x03 |
853 | #define MSC_SCAN 0x04 | 853 | #define MSC_SCAN 0x04 |
854 | #define MSC_TIMESTAMP 0x05 | ||
854 | #define MSC_MAX 0x07 | 855 | #define MSC_MAX 0x07 |
855 | #define MSC_CNT (MSC_MAX+1) | 856 | #define MSC_CNT (MSC_MAX+1) |
856 | 857 | ||
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 { | |||
157 | DEVCONF_DISABLE_IPV6, | 157 | DEVCONF_DISABLE_IPV6, |
158 | DEVCONF_ACCEPT_DAD, | 158 | DEVCONF_ACCEPT_DAD, |
159 | DEVCONF_FORCE_TLLAO, | 159 | DEVCONF_FORCE_TLLAO, |
160 | DEVCONF_NDISC_NOTIFY, | ||
160 | DEVCONF_MAX | 161 | DEVCONF_MAX |
161 | }; | 162 | }; |
162 | 163 | ||
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 { | |||
55 | #define RTMSG_NEWROUTE 0x21 | 55 | #define RTMSG_NEWROUTE 0x21 |
56 | #define RTMSG_DELROUTE 0x22 | 56 | #define RTMSG_DELROUTE 0x22 |
57 | 57 | ||
58 | #define IP6_RT_PRIO_USER 1024 | ||
59 | #define IP6_RT_PRIO_ADDRCONF 256 | ||
60 | |||
58 | #endif /* _UAPI_LINUX_IPV6_ROUTE_H */ | 61 | #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 { | |||
167 | #define KVM_EXIT_OSI 18 | 167 | #define KVM_EXIT_OSI 18 |
168 | #define KVM_EXIT_PAPR_HCALL 19 | 168 | #define KVM_EXIT_PAPR_HCALL 19 |
169 | #define KVM_EXIT_S390_UCONTROL 20 | 169 | #define KVM_EXIT_S390_UCONTROL 20 |
170 | #define KVM_EXIT_WATCHDOG 21 | ||
170 | 171 | ||
171 | /* For KVM_EXIT_INTERNAL_ERROR */ | 172 | /* For KVM_EXIT_INTERNAL_ERROR */ |
172 | #define KVM_INTERNAL_ERROR_EMULATION 1 | 173 | /* Emulate instruction failed. */ |
173 | #define KVM_INTERNAL_ERROR_SIMUL_EX 2 | 174 | #define KVM_INTERNAL_ERROR_EMULATION 1 |
175 | /* Encounter unexpected simultaneous exceptions. */ | ||
176 | #define KVM_INTERNAL_ERROR_SIMUL_EX 2 | ||
177 | /* Encounter unexpected vm-exit due to delivery event. */ | ||
178 | #define KVM_INTERNAL_ERROR_DELIVERY_EV 3 | ||
174 | 179 | ||
175 | /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ | 180 | /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ |
176 | struct kvm_run { | 181 | struct kvm_run { |
@@ -477,6 +482,8 @@ struct kvm_ppc_smmu_info { | |||
477 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; | 482 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; |
478 | }; | 483 | }; |
479 | 484 | ||
485 | #define KVM_PPC_PVINFO_FLAGS_EV_IDLE (1<<0) | ||
486 | |||
480 | #define KVMIO 0xAE | 487 | #define KVMIO 0xAE |
481 | 488 | ||
482 | /* machine type bits, to be used as argument to KVM_CREATE_VM */ | 489 | /* machine type bits, to be used as argument to KVM_CREATE_VM */ |
@@ -626,6 +633,8 @@ struct kvm_ppc_smmu_info { | |||
626 | #define KVM_CAP_READONLY_MEM 81 | 633 | #define KVM_CAP_READONLY_MEM 81 |
627 | #endif | 634 | #endif |
628 | #define KVM_CAP_IRQFD_RESAMPLE 82 | 635 | #define KVM_CAP_IRQFD_RESAMPLE 82 |
636 | #define KVM_CAP_PPC_BOOKE_WATCHDOG 83 | ||
637 | #define KVM_CAP_PPC_HTAB_FD 84 | ||
629 | 638 | ||
630 | #ifdef KVM_CAP_IRQ_ROUTING | 639 | #ifdef KVM_CAP_IRQ_ROUTING |
631 | 640 | ||
@@ -848,6 +857,11 @@ struct kvm_s390_ucas_mapping { | |||
848 | #define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info) | 857 | #define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info) |
849 | /* Available with KVM_CAP_PPC_ALLOC_HTAB */ | 858 | /* Available with KVM_CAP_PPC_ALLOC_HTAB */ |
850 | #define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32) | 859 | #define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32) |
860 | #define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) | ||
861 | /* Available with KVM_CAP_RMA */ | ||
862 | #define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) | ||
863 | /* Available with KVM_CAP_PPC_HTAB_FD */ | ||
864 | #define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd) | ||
851 | 865 | ||
852 | /* | 866 | /* |
853 | * ioctls for vcpu fds | 867 | * ioctls for vcpu fds |
@@ -911,9 +925,6 @@ struct kvm_s390_ucas_mapping { | |||
911 | /* Available with KVM_CAP_XCRS */ | 925 | /* Available with KVM_CAP_XCRS */ |
912 | #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs) | 926 | #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs) |
913 | #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs) | 927 | #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs) |
914 | #define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) | ||
915 | /* Available with KVM_CAP_RMA */ | ||
916 | #define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) | ||
917 | /* Available with KVM_CAP_SW_TLB */ | 928 | /* Available with KVM_CAP_SW_TLB */ |
918 | #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb) | 929 | #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb) |
919 | /* Available with KVM_CAP_ONE_REG */ | 930 | /* 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 @@ | |||
27 | #define ISOFS_SUPER_MAGIC 0x9660 | 27 | #define ISOFS_SUPER_MAGIC 0x9660 |
28 | #define JFFS2_SUPER_MAGIC 0x72b6 | 28 | #define JFFS2_SUPER_MAGIC 0x72b6 |
29 | #define PSTOREFS_MAGIC 0x6165676C | 29 | #define PSTOREFS_MAGIC 0x6165676C |
30 | #define EFIVARFS_MAGIC 0xde5e81e4 | ||
30 | 31 | ||
31 | #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */ | 32 | #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */ |
32 | #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */ | 33 | #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */ |
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 @@ | |||
1 | #ifndef _UAPI_LINUX_NETCONF_H_ | ||
2 | #define _UAPI_LINUX_NETCONF_H_ | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/netlink.h> | ||
6 | |||
7 | struct netconfmsg { | ||
8 | __u8 ncm_family; | ||
9 | }; | ||
10 | |||
11 | enum { | ||
12 | NETCONFA_UNSPEC, | ||
13 | NETCONFA_IFINDEX, | ||
14 | NETCONFA_FORWARDING, | ||
15 | NETCONFA_RP_FILTER, | ||
16 | NETCONFA_MC_FORWARDING, | ||
17 | __NETCONFA_MAX | ||
18 | }; | ||
19 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) | ||
20 | |||
21 | #define NETCONFA_IFINDEX_ALL -1 | ||
22 | #define NETCONFA_IFINDEX_DEFAULT -2 | ||
23 | |||
24 | #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 { | |||
9 | IPCTNL_MSG_CT_GET_CTRZERO, | 9 | IPCTNL_MSG_CT_GET_CTRZERO, |
10 | IPCTNL_MSG_CT_GET_STATS_CPU, | 10 | IPCTNL_MSG_CT_GET_STATS_CPU, |
11 | IPCTNL_MSG_CT_GET_STATS, | 11 | IPCTNL_MSG_CT_GET_STATS, |
12 | IPCTNL_MSG_CT_GET_DYING, | ||
13 | IPCTNL_MSG_CT_GET_UNCONFIRMED, | ||
12 | 14 | ||
13 | IPCTNL_MSG_MAX | 15 | IPCTNL_MSG_MAX |
14 | }; | 16 | }; |
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 { | |||
178 | #define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5) | 178 | #define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5) |
179 | #define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET | 179 | #define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET |
180 | 180 | ||
181 | /* obtain original address if REDIRECT'd connection */ | ||
182 | #define IP6T_SO_ORIGINAL_DST 80 | ||
183 | |||
181 | /* ICMP matching stuff */ | 184 | /* ICMP matching stuff */ |
182 | struct ip6t_icmp { | 185 | struct ip6t_icmp { |
183 | __u8 type; /* type to match */ | 186 | __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 @@ | |||
60 | * target mode. | 60 | * target mode. |
61 | * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated | 61 | * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated |
62 | * from target mode. | 62 | * from target mode. |
63 | * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device | ||
64 | * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for | ||
65 | * a device. LTO must be set before the link is up otherwise -EINPROGRESS | ||
66 | * is returned. RW and MIUX can be set at anytime and will be passed in | ||
67 | * subsequent CONNECT and CC messages. | ||
68 | * If one of the passed parameters is wrong none is set and -EINVAL is | ||
69 | * returned. | ||
63 | */ | 70 | */ |
64 | enum nfc_commands { | 71 | enum nfc_commands { |
65 | NFC_CMD_UNSPEC, | 72 | NFC_CMD_UNSPEC, |
@@ -77,6 +84,8 @@ enum nfc_commands { | |||
77 | NFC_EVENT_TARGET_LOST, | 84 | NFC_EVENT_TARGET_LOST, |
78 | NFC_EVENT_TM_ACTIVATED, | 85 | NFC_EVENT_TM_ACTIVATED, |
79 | NFC_EVENT_TM_DEACTIVATED, | 86 | NFC_EVENT_TM_DEACTIVATED, |
87 | NFC_CMD_LLC_GET_PARAMS, | ||
88 | NFC_CMD_LLC_SET_PARAMS, | ||
80 | /* private: internal use only */ | 89 | /* private: internal use only */ |
81 | __NFC_CMD_AFTER_LAST | 90 | __NFC_CMD_AFTER_LAST |
82 | }; | 91 | }; |
@@ -102,6 +111,9 @@ enum nfc_commands { | |||
102 | * @NFC_ATTR_RF_MODE: Initiator or target | 111 | * @NFC_ATTR_RF_MODE: Initiator or target |
103 | * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for | 112 | * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for |
104 | * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for | 113 | * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for |
114 | * @NFC_ATTR_LLC_PARAM_LTO: Link TimeOut parameter | ||
115 | * @NFC_ATTR_LLC_PARAM_RW: Receive Window size parameter | ||
116 | * @NFC_ATTR_LLC_PARAM_MIUX: MIU eXtension parameter | ||
105 | */ | 117 | */ |
106 | enum nfc_attrs { | 118 | enum nfc_attrs { |
107 | NFC_ATTR_UNSPEC, | 119 | NFC_ATTR_UNSPEC, |
@@ -119,6 +131,9 @@ enum nfc_attrs { | |||
119 | NFC_ATTR_DEVICE_POWERED, | 131 | NFC_ATTR_DEVICE_POWERED, |
120 | NFC_ATTR_IM_PROTOCOLS, | 132 | NFC_ATTR_IM_PROTOCOLS, |
121 | NFC_ATTR_TM_PROTOCOLS, | 133 | NFC_ATTR_TM_PROTOCOLS, |
134 | NFC_ATTR_LLC_PARAM_LTO, | ||
135 | NFC_ATTR_LLC_PARAM_RW, | ||
136 | NFC_ATTR_LLC_PARAM_MIUX, | ||
122 | /* private: internal use only */ | 137 | /* private: internal use only */ |
123 | __NFC_ATTR_AFTER_LAST | 138 | __NFC_ATTR_AFTER_LAST |
124 | }; | 139 | }; |
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 @@ | |||
118 | * to get a list of all present wiphys. | 118 | * to get a list of all present wiphys. |
119 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or | 119 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or |
120 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, | 120 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, |
121 | * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, | 121 | * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the |
122 | * %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT, | 122 | * attributes determining the channel width; this is used for setting |
123 | * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT, | ||
123 | * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, | 124 | * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, |
124 | * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. | 125 | * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. |
125 | * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL | 126 | * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL |
@@ -171,7 +172,7 @@ | |||
171 | * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, | 172 | * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, |
172 | * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT. | 173 | * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT. |
173 | * The channel to use can be set on the interface or be given using the | 174 | * The channel to use can be set on the interface or be given using the |
174 | * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs. | 175 | * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. |
175 | * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP | 176 | * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP |
176 | * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface | 177 | * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface |
177 | * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP | 178 | * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP |
@@ -401,8 +402,7 @@ | |||
401 | * a response while being associated to an AP on another channel. | 402 | * a response while being associated to an AP on another channel. |
402 | * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus | 403 | * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus |
403 | * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the | 404 | * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the |
404 | * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be | 405 | * frequency for the operation. |
405 | * optionally used to specify additional channel parameters. | ||
406 | * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds | 406 | * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds |
407 | * to remain on the channel. This command is also used as an event to | 407 | * to remain on the channel. This command is also used as an event to |
408 | * notify when the requested duration starts (it may take a while for the | 408 | * notify when the requested duration starts (it may take a while for the |
@@ -440,12 +440,11 @@ | |||
440 | * as an event indicating reception of a frame that was not processed in | 440 | * as an event indicating reception of a frame that was not processed in |
441 | * kernel code, but is for us (i.e., which may need to be processed in a | 441 | * kernel code, but is for us (i.e., which may need to be processed in a |
442 | * user space application). %NL80211_ATTR_FRAME is used to specify the | 442 | * user space application). %NL80211_ATTR_FRAME is used to specify the |
443 | * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and | 443 | * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used |
444 | * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on | 444 | * to indicate on which channel the frame is to be transmitted or was |
445 | * which channel the frame is to be transmitted or was received. If this | 445 | * received. If this channel is not the current channel (remain-on-channel |
446 | * channel is not the current channel (remain-on-channel or the | 446 | * or the operational channel) the device will switch to the given channel |
447 | * operational channel) the device will switch to the given channel and | 447 | * and transmit the frame, optionally waiting for a response for the time |
448 | * transmit the frame, optionally waiting for a response for the time | ||
449 | * specified using %NL80211_ATTR_DURATION. When called, this operation | 448 | * specified using %NL80211_ATTR_DURATION. When called, this operation |
450 | * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the | 449 | * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the |
451 | * TX status event pertaining to the TX request. | 450 | * TX status event pertaining to the TX request. |
@@ -473,8 +472,8 @@ | |||
473 | * command is used as an event to indicate the that a trigger level was | 472 | * command is used as an event to indicate the that a trigger level was |
474 | * reached. | 473 | * reached. |
475 | * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ | 474 | * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ |
476 | * and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed | 475 | * and the attributes determining channel width) the given interface |
477 | * by %NL80211_ATTR_IFINDEX) shall operate on. | 476 | * (identifed by %NL80211_ATTR_IFINDEX) shall operate on. |
478 | * In case multiple channels are supported by the device, the mechanism | 477 | * In case multiple channels are supported by the device, the mechanism |
479 | * with which it switches channels is implementation-defined. | 478 | * with which it switches channels is implementation-defined. |
480 | * When a monitor interface is given, it can only switch channel while | 479 | * When a monitor interface is given, it can only switch channel while |
@@ -526,6 +525,12 @@ | |||
526 | * of PMKSA caching dandidates. | 525 | * of PMKSA caching dandidates. |
527 | * | 526 | * |
528 | * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). | 527 | * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). |
528 | * In addition, this can be used as an event to request userspace to take | ||
529 | * actions on TDLS links (set up a new link or tear down an existing one). | ||
530 | * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested | ||
531 | * operation, %NL80211_ATTR_MAC contains the peer MAC address, and | ||
532 | * %NL80211_ATTR_REASON_CODE the reason code to be used (only with | ||
533 | * %NL80211_TDLS_TEARDOWN). | ||
529 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. | 534 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. |
530 | * | 535 | * |
531 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP | 536 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
@@ -562,8 +567,8 @@ | |||
562 | * | 567 | * |
563 | * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels | 568 | * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels |
564 | * independently of the userspace SME, send this event indicating | 569 | * independently of the userspace SME, send this event indicating |
565 | * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with | 570 | * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the |
566 | * %NL80211_ATTR_WIPHY_CHANNEL_TYPE. | 571 | * attributes determining channel width. |
567 | * | 572 | * |
568 | * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by | 573 | * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by |
569 | * its %NL80211_ATTR_WDEV identifier. It must have been created with | 574 | * its %NL80211_ATTR_WDEV identifier. It must have been created with |
@@ -578,6 +583,9 @@ | |||
578 | * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON | 583 | * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON |
579 | * is used for this. | 584 | * is used for this. |
580 | * | 585 | * |
586 | * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames | ||
587 | * for IBSS or MESH vif. | ||
588 | * | ||
581 | * @NL80211_CMD_MAX: highest used command number | 589 | * @NL80211_CMD_MAX: highest used command number |
582 | * @__NL80211_CMD_AFTER_LAST: internal use | 590 | * @__NL80211_CMD_AFTER_LAST: internal use |
583 | */ | 591 | */ |
@@ -726,6 +734,8 @@ enum nl80211_commands { | |||
726 | 734 | ||
727 | NL80211_CMD_CONN_FAILED, | 735 | NL80211_CMD_CONN_FAILED, |
728 | 736 | ||
737 | NL80211_CMD_SET_MCAST_RATE, | ||
738 | |||
729 | /* add new commands above here */ | 739 | /* add new commands above here */ |
730 | 740 | ||
731 | /* used to define NL80211_CMD_MAX below */ | 741 | /* used to define NL80211_CMD_MAX below */ |
@@ -762,14 +772,26 @@ enum nl80211_commands { | |||
762 | * /sys/class/ieee80211/<phyname>/index | 772 | * /sys/class/ieee80211/<phyname>/index |
763 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) | 773 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) |
764 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters | 774 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters |
765 | * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz | 775 | * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, |
776 | * defines the channel together with the (deprecated) | ||
777 | * %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes | ||
778 | * %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 | ||
779 | * and %NL80211_ATTR_CENTER_FREQ2 | ||
780 | * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values | ||
781 | * of &enum nl80211_chan_width, describing the channel width. See the | ||
782 | * documentation of the enum for more information. | ||
783 | * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the | ||
784 | * channel, used for anything but 20 MHz bandwidth | ||
785 | * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the | ||
786 | * channel, used only for 80+80 MHz bandwidth | ||
766 | * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ | 787 | * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ |
767 | * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): | 788 | * if HT20 or HT40 are to be used (i.e., HT disabled if not included): |
768 | * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including | 789 | * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including |
769 | * this attribute) | 790 | * this attribute) |
770 | * NL80211_CHAN_HT20 = HT20 only | 791 | * NL80211_CHAN_HT20 = HT20 only |
771 | * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel | 792 | * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel |
772 | * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel | 793 | * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel |
794 | * This attribute is now deprecated. | ||
773 | * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is | 795 | * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is |
774 | * less than or equal to the RTS threshold; allowed range: 1..255; | 796 | * less than or equal to the RTS threshold; allowed range: 1..255; |
775 | * dot11ShortRetryLimit; u8 | 797 | * dot11ShortRetryLimit; u8 |
@@ -1273,6 +1295,21 @@ enum nl80211_commands { | |||
1273 | * the connection request from a station. nl80211_connect_failed_reason | 1295 | * the connection request from a station. nl80211_connect_failed_reason |
1274 | * enum has different reasons of connection failure. | 1296 | * enum has different reasons of connection failure. |
1275 | * | 1297 | * |
1298 | * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts | ||
1299 | * with the Authentication transaction sequence number field. | ||
1300 | * | ||
1301 | * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from | ||
1302 | * association request when used with NL80211_CMD_NEW_STATION) | ||
1303 | * | ||
1304 | * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) | ||
1305 | * | ||
1306 | * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with | ||
1307 | * the START_AP and SET_BSS commands | ||
1308 | * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the | ||
1309 | * START_AP and SET_BSS commands. This can have the values 0 or 1; | ||
1310 | * if not given in START_AP 0 is assumed, if not given in SET_BSS | ||
1311 | * no change is made. | ||
1312 | * | ||
1276 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1313 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
1277 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1314 | * @__NL80211_ATTR_AFTER_LAST: internal use |
1278 | */ | 1315 | */ |
@@ -1530,6 +1567,19 @@ enum nl80211_attrs { | |||
1530 | 1567 | ||
1531 | NL80211_ATTR_CONN_FAILED_REASON, | 1568 | NL80211_ATTR_CONN_FAILED_REASON, |
1532 | 1569 | ||
1570 | NL80211_ATTR_SAE_DATA, | ||
1571 | |||
1572 | NL80211_ATTR_VHT_CAPABILITY, | ||
1573 | |||
1574 | NL80211_ATTR_SCAN_FLAGS, | ||
1575 | |||
1576 | NL80211_ATTR_CHANNEL_WIDTH, | ||
1577 | NL80211_ATTR_CENTER_FREQ1, | ||
1578 | NL80211_ATTR_CENTER_FREQ2, | ||
1579 | |||
1580 | NL80211_ATTR_P2P_CTWINDOW, | ||
1581 | NL80211_ATTR_P2P_OPPPS, | ||
1582 | |||
1533 | /* add attributes here, update the policy in nl80211.c */ | 1583 | /* add attributes here, update the policy in nl80211.c */ |
1534 | 1584 | ||
1535 | __NL80211_ATTR_AFTER_LAST, | 1585 | __NL80211_ATTR_AFTER_LAST, |
@@ -1573,6 +1623,7 @@ enum nl80211_attrs { | |||
1573 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 | 1623 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 |
1574 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 | 1624 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
1575 | #define NL80211_HT_CAPABILITY_LEN 26 | 1625 | #define NL80211_HT_CAPABILITY_LEN 26 |
1626 | #define NL80211_VHT_CAPABILITY_LEN 12 | ||
1576 | 1627 | ||
1577 | #define NL80211_MAX_NR_CIPHER_SUITES 5 | 1628 | #define NL80211_MAX_NR_CIPHER_SUITES 5 |
1578 | #define NL80211_MAX_NR_AKM_SUITES 2 | 1629 | #define NL80211_MAX_NR_AKM_SUITES 2 |
@@ -1693,10 +1744,15 @@ struct nl80211_sta_flag_update { | |||
1693 | * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved | 1744 | * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved |
1694 | * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) | 1745 | * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) |
1695 | * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) | 1746 | * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) |
1696 | * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate | 1747 | * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate |
1697 | * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval | 1748 | * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval |
1698 | * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) | 1749 | * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) |
1699 | * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined | 1750 | * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined |
1751 | * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) | ||
1752 | * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) | ||
1753 | * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate | ||
1754 | * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate | ||
1755 | * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate | ||
1700 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use | 1756 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
1701 | */ | 1757 | */ |
1702 | enum nl80211_rate_info { | 1758 | enum nl80211_rate_info { |
@@ -1706,6 +1762,11 @@ enum nl80211_rate_info { | |||
1706 | NL80211_RATE_INFO_40_MHZ_WIDTH, | 1762 | NL80211_RATE_INFO_40_MHZ_WIDTH, |
1707 | NL80211_RATE_INFO_SHORT_GI, | 1763 | NL80211_RATE_INFO_SHORT_GI, |
1708 | NL80211_RATE_INFO_BITRATE32, | 1764 | NL80211_RATE_INFO_BITRATE32, |
1765 | NL80211_RATE_INFO_VHT_MCS, | ||
1766 | NL80211_RATE_INFO_VHT_NSS, | ||
1767 | NL80211_RATE_INFO_80_MHZ_WIDTH, | ||
1768 | NL80211_RATE_INFO_80P80_MHZ_WIDTH, | ||
1769 | NL80211_RATE_INFO_160_MHZ_WIDTH, | ||
1709 | 1770 | ||
1710 | /* keep last */ | 1771 | /* keep last */ |
1711 | __NL80211_RATE_INFO_AFTER_LAST, | 1772 | __NL80211_RATE_INFO_AFTER_LAST, |
@@ -2414,6 +2475,15 @@ enum nl80211_ac { | |||
2414 | #define NL80211_TXQ_Q_BE NL80211_AC_BE | 2475 | #define NL80211_TXQ_Q_BE NL80211_AC_BE |
2415 | #define NL80211_TXQ_Q_BK NL80211_AC_BK | 2476 | #define NL80211_TXQ_Q_BK NL80211_AC_BK |
2416 | 2477 | ||
2478 | /** | ||
2479 | * enum nl80211_channel_type - channel type | ||
2480 | * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel | ||
2481 | * @NL80211_CHAN_HT20: 20 MHz HT channel | ||
2482 | * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel | ||
2483 | * below the control channel | ||
2484 | * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel | ||
2485 | * above the control channel | ||
2486 | */ | ||
2417 | enum nl80211_channel_type { | 2487 | enum nl80211_channel_type { |
2418 | NL80211_CHAN_NO_HT, | 2488 | NL80211_CHAN_NO_HT, |
2419 | NL80211_CHAN_HT20, | 2489 | NL80211_CHAN_HT20, |
@@ -2422,6 +2492,32 @@ enum nl80211_channel_type { | |||
2422 | }; | 2492 | }; |
2423 | 2493 | ||
2424 | /** | 2494 | /** |
2495 | * enum nl80211_chan_width - channel width definitions | ||
2496 | * | ||
2497 | * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH | ||
2498 | * attribute. | ||
2499 | * | ||
2500 | * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel | ||
2501 | * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel | ||
2502 | * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | ||
2503 | * attribute must be provided as well | ||
2504 | * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | ||
2505 | * attribute must be provided as well | ||
2506 | * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | ||
2507 | * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well | ||
2508 | * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | ||
2509 | * attribute must be provided as well | ||
2510 | */ | ||
2511 | enum nl80211_chan_width { | ||
2512 | NL80211_CHAN_WIDTH_20_NOHT, | ||
2513 | NL80211_CHAN_WIDTH_20, | ||
2514 | NL80211_CHAN_WIDTH_40, | ||
2515 | NL80211_CHAN_WIDTH_80, | ||
2516 | NL80211_CHAN_WIDTH_80P80, | ||
2517 | NL80211_CHAN_WIDTH_160, | ||
2518 | }; | ||
2519 | |||
2520 | /** | ||
2425 | * enum nl80211_bss - netlink attributes for a BSS | 2521 | * enum nl80211_bss - netlink attributes for a BSS |
2426 | * | 2522 | * |
2427 | * @__NL80211_BSS_INVALID: invalid | 2523 | * @__NL80211_BSS_INVALID: invalid |
@@ -2489,6 +2585,7 @@ enum nl80211_bss_status { | |||
2489 | * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) | 2585 | * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) |
2490 | * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) | 2586 | * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) |
2491 | * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) | 2587 | * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) |
2588 | * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals | ||
2492 | * @__NL80211_AUTHTYPE_NUM: internal | 2589 | * @__NL80211_AUTHTYPE_NUM: internal |
2493 | * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm | 2590 | * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm |
2494 | * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by | 2591 | * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by |
@@ -2500,6 +2597,7 @@ enum nl80211_auth_type { | |||
2500 | NL80211_AUTHTYPE_SHARED_KEY, | 2597 | NL80211_AUTHTYPE_SHARED_KEY, |
2501 | NL80211_AUTHTYPE_FT, | 2598 | NL80211_AUTHTYPE_FT, |
2502 | NL80211_AUTHTYPE_NETWORK_EAP, | 2599 | NL80211_AUTHTYPE_NETWORK_EAP, |
2600 | NL80211_AUTHTYPE_SAE, | ||
2503 | 2601 | ||
2504 | /* keep last */ | 2602 | /* keep last */ |
2505 | __NL80211_AUTHTYPE_NUM, | 2603 | __NL80211_AUTHTYPE_NUM, |
@@ -3028,6 +3126,20 @@ enum nl80211_ap_sme_features { | |||
3028 | * in the interface combinations, even when it's only used for scan | 3126 | * in the interface combinations, even when it's only used for scan |
3029 | * and remain-on-channel. This could be due to, for example, the | 3127 | * and remain-on-channel. This could be due to, for example, the |
3030 | * remain-on-channel implementation requiring a channel context. | 3128 | * remain-on-channel implementation requiring a channel context. |
3129 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of | ||
3130 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station | ||
3131 | * mode | ||
3132 | * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan | ||
3133 | * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported | ||
3134 | * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif | ||
3135 | * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting | ||
3136 | * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform | ||
3137 | * OBSS scans and generate 20/40 BSS coex reports. This flag is used only | ||
3138 | * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. | ||
3139 | * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window | ||
3140 | * setting | ||
3141 | * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic | ||
3142 | * powersave | ||
3031 | */ | 3143 | */ |
3032 | enum nl80211_feature_flags { | 3144 | enum nl80211_feature_flags { |
3033 | NL80211_FEATURE_SK_TX_STATUS = 1 << 0, | 3145 | NL80211_FEATURE_SK_TX_STATUS = 1 << 0, |
@@ -3035,6 +3147,14 @@ enum nl80211_feature_flags { | |||
3035 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, | 3147 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
3036 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, | 3148 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
3037 | NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, | 3149 | NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, |
3150 | NL80211_FEATURE_SAE = 1 << 5, | ||
3151 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, | ||
3152 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, | ||
3153 | NL80211_FEATURE_AP_SCAN = 1 << 8, | ||
3154 | NL80211_FEATURE_VIF_TXPOWER = 1 << 9, | ||
3155 | NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, | ||
3156 | NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, | ||
3157 | NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, | ||
3038 | }; | 3158 | }; |
3039 | 3159 | ||
3040 | /** | 3160 | /** |
@@ -3069,4 +3189,25 @@ enum nl80211_connect_failed_reason { | |||
3069 | NL80211_CONN_FAIL_BLOCKED_CLIENT, | 3189 | NL80211_CONN_FAIL_BLOCKED_CLIENT, |
3070 | }; | 3190 | }; |
3071 | 3191 | ||
3192 | /** | ||
3193 | * enum nl80211_scan_flags - scan request control flags | ||
3194 | * | ||
3195 | * Scan request control flags are used to control the handling | ||
3196 | * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN | ||
3197 | * requests. | ||
3198 | * | ||
3199 | * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority | ||
3200 | * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning | ||
3201 | * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured | ||
3202 | * as AP and the beaconing has already been configured. This attribute is | ||
3203 | * dangerous because will destroy stations performance as a lot of frames | ||
3204 | * will be lost while scanning off-channel, therefore it must be used only | ||
3205 | * when really needed | ||
3206 | */ | ||
3207 | enum nl80211_scan_flags { | ||
3208 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, | ||
3209 | NL80211_SCAN_FLAG_FLUSH = 1<<1, | ||
3210 | NL80211_SCAN_FLAG_AP = 1<<2, | ||
3211 | }; | ||
3212 | |||
3072 | #endif /* __LINUX_NL80211_H */ | 3213 | #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 @@ | |||
349 | #define PCI_AF_STATUS_TP 0x01 | 349 | #define PCI_AF_STATUS_TP 0x01 |
350 | #define PCI_CAP_AF_SIZEOF 6 /* size of AF registers */ | 350 | #define PCI_CAP_AF_SIZEOF 6 /* size of AF registers */ |
351 | 351 | ||
352 | /* PCI-X registers */ | 352 | /* PCI-X registers (Type 0 (non-bridge) devices) */ |
353 | 353 | ||
354 | #define PCI_X_CMD 2 /* Modes & Features */ | 354 | #define PCI_X_CMD 2 /* Modes & Features */ |
355 | #define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */ | 355 | #define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */ |
@@ -389,6 +389,19 @@ | |||
389 | #define PCI_CAP_PCIX_SIZEOF_V1 24 /* size for Version 1 */ | 389 | #define PCI_CAP_PCIX_SIZEOF_V1 24 /* size for Version 1 */ |
390 | #define PCI_CAP_PCIX_SIZEOF_V2 PCI_CAP_PCIX_SIZEOF_V1 /* Same for v2 */ | 390 | #define PCI_CAP_PCIX_SIZEOF_V2 PCI_CAP_PCIX_SIZEOF_V1 /* Same for v2 */ |
391 | 391 | ||
392 | /* PCI-X registers (Type 1 (bridge) devices) */ | ||
393 | |||
394 | #define PCI_X_BRIDGE_SSTATUS 2 /* Secondary Status */ | ||
395 | #define PCI_X_SSTATUS_64BIT 0x0001 /* Secondary AD interface is 64 bits */ | ||
396 | #define PCI_X_SSTATUS_133MHZ 0x0002 /* 133 MHz capable */ | ||
397 | #define PCI_X_SSTATUS_FREQ 0x03c0 /* Secondary Bus Mode and Frequency */ | ||
398 | #define PCI_X_SSTATUS_VERS 0x3000 /* PCI-X Capability Version */ | ||
399 | #define PCI_X_SSTATUS_V1 0x1000 /* Mode 2, not Mode 1 */ | ||
400 | #define PCI_X_SSTATUS_V2 0x2000 /* Mode 1 or Modes 1 and 2 */ | ||
401 | #define PCI_X_SSTATUS_266MHZ 0x4000 /* 266 MHz capable */ | ||
402 | #define PCI_X_SSTATUS_533MHZ 0x8000 /* 533 MHz capable */ | ||
403 | #define PCI_X_BRIDGE_STATUS 4 /* Bridge Status */ | ||
404 | |||
392 | /* PCI Bridge Subsystem ID registers */ | 405 | /* PCI Bridge Subsystem ID registers */ |
393 | 406 | ||
394 | #define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */ | 407 | #define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */ |
@@ -456,6 +469,8 @@ | |||
456 | #define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */ | 469 | #define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */ |
457 | #define PCI_EXP_LNKCTL 16 /* Link Control */ | 470 | #define PCI_EXP_LNKCTL 16 /* Link Control */ |
458 | #define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */ | 471 | #define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */ |
472 | #define PCI_EXP_LNKCTL_ASPM_L0S 0x01 /* L0s Enable */ | ||
473 | #define PCI_EXP_LNKCTL_ASPM_L1 0x02 /* L1 Enable */ | ||
459 | #define PCI_EXP_LNKCTL_RCB 0x0008 /* Read Completion Boundary */ | 474 | #define PCI_EXP_LNKCTL_RCB 0x0008 /* Read Completion Boundary */ |
460 | #define PCI_EXP_LNKCTL_LD 0x0010 /* Link Disable */ | 475 | #define PCI_EXP_LNKCTL_LD 0x0010 /* Link Disable */ |
461 | #define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */ | 476 | #define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */ |
@@ -544,9 +559,9 @@ | |||
544 | #define PCI_EXP_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ | 559 | #define PCI_EXP_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ |
545 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ | 560 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ |
546 | #define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */ | 561 | #define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */ |
547 | #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x01 /* Current Link Speed 2.5GT/s */ | 562 | #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x02 /* Supported Link Speed 2.5GT/s */ |
548 | #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x02 /* Current Link Speed 5.0GT/s */ | 563 | #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x04 /* Supported Link Speed 5.0GT/s */ |
549 | #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x04 /* Current Link Speed 8.0GT/s */ | 564 | #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x08 /* Supported Link Speed 8.0GT/s */ |
550 | #define PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */ | 565 | #define PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */ |
551 | #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ | 566 | #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ |
552 | #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ | 567 | #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 { | |||
67 | unsigned int rsv[4]; /* Reserved for future use. */ | 67 | unsigned int rsv[4]; /* Reserved for future use. */ |
68 | }; | 68 | }; |
69 | 69 | ||
70 | #define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */ | ||
71 | |||
72 | struct ptp_sys_offset { | ||
73 | unsigned int n_samples; /* Desired number of measurements. */ | ||
74 | unsigned int rsv[3]; /* Reserved for future use. */ | ||
75 | /* | ||
76 | * Array of interleaved system/phc time stamps. The kernel | ||
77 | * will provide 2*n_samples + 1 time stamps, with the last | ||
78 | * one as a system time stamp. | ||
79 | */ | ||
80 | struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; | ||
81 | }; | ||
82 | |||
70 | #define PTP_CLK_MAGIC '=' | 83 | #define PTP_CLK_MAGIC '=' |
71 | 84 | ||
72 | #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) | 85 | #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) |
73 | #define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request) | 86 | #define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request) |
74 | #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) | 87 | #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) |
75 | #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int) | 88 | #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int) |
89 | #define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset) | ||
76 | 90 | ||
77 | struct ptp_extts_event { | 91 | struct ptp_extts_event { |
78 | struct ptp_clock_time t; /* Time event occured. */ | 92 | struct ptp_clock_time t; /* Time event occured. */ |
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 { | |||
120 | RTM_SETDCB, | 120 | RTM_SETDCB, |
121 | #define RTM_SETDCB RTM_SETDCB | 121 | #define RTM_SETDCB RTM_SETDCB |
122 | 122 | ||
123 | RTM_NEWNETCONF = 80, | ||
124 | #define RTM_NEWNETCONF RTM_NEWNETCONF | ||
125 | RTM_GETNETCONF = 82, | ||
126 | #define RTM_GETNETCONF RTM_GETNETCONF | ||
127 | |||
128 | RTM_NEWMDB = 84, | ||
129 | #define RTM_NEWMDB RTM_NEWMDB | ||
130 | RTM_DELMDB = 85, | ||
131 | #define RTM_DELMDB RTM_DELMDB | ||
132 | RTM_GETMDB = 86, | ||
133 | #define RTM_GETMDB RTM_GETMDB | ||
134 | |||
123 | __RTM_MAX, | 135 | __RTM_MAX, |
124 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) | 136 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
125 | }; | 137 | }; |
@@ -222,6 +234,7 @@ enum { | |||
222 | #define RTPROT_XORP 14 /* XORP */ | 234 | #define RTPROT_XORP 14 /* XORP */ |
223 | #define RTPROT_NTK 15 /* Netsukuku */ | 235 | #define RTPROT_NTK 15 /* Netsukuku */ |
224 | #define RTPROT_DHCP 16 /* DHCP client */ | 236 | #define RTPROT_DHCP 16 /* DHCP client */ |
237 | #define RTPROT_MROUTED 17 /* Multicast daemon */ | ||
225 | 238 | ||
226 | /* rtm_scope | 239 | /* rtm_scope |
227 | 240 | ||
@@ -283,6 +296,7 @@ enum rtattr_type_t { | |||
283 | RTA_MP_ALGO, /* no longer used */ | 296 | RTA_MP_ALGO, /* no longer used */ |
284 | RTA_TABLE, | 297 | RTA_TABLE, |
285 | RTA_MARK, | 298 | RTA_MARK, |
299 | RTA_MFC_STATS, | ||
286 | __RTA_MAX | 300 | __RTA_MAX |
287 | }; | 301 | }; |
288 | 302 | ||
@@ -403,6 +417,12 @@ struct rta_session { | |||
403 | } u; | 417 | } u; |
404 | }; | 418 | }; |
405 | 419 | ||
420 | struct rta_mfc_stats { | ||
421 | __u64 mfcs_packets; | ||
422 | __u64 mfcs_bytes; | ||
423 | __u64 mfcs_wrong_if; | ||
424 | }; | ||
425 | |||
406 | /**** | 426 | /**** |
407 | * General form of address family dependent message. | 427 | * General form of address family dependent message. |
408 | ****/ | 428 | ****/ |
@@ -587,6 +607,12 @@ enum rtnetlink_groups { | |||
587 | #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE | 607 | #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE |
588 | RTNLGRP_DCB, | 608 | RTNLGRP_DCB, |
589 | #define RTNLGRP_DCB RTNLGRP_DCB | 609 | #define RTNLGRP_DCB RTNLGRP_DCB |
610 | RTNLGRP_IPV4_NETCONF, | ||
611 | #define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF | ||
612 | RTNLGRP_IPV6_NETCONF, | ||
613 | #define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF | ||
614 | RTNLGRP_MDB, | ||
615 | #define RTNLGRP_MDB RTNLGRP_MDB | ||
590 | __RTNLGRP_MAX | 616 | __RTNLGRP_MAX |
591 | }; | 617 | }; |
592 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) | 618 | #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 @@ | |||
49 | #define PORT_XR17D15X 21 /* Exar XR17D15x UART */ | 49 | #define PORT_XR17D15X 21 /* Exar XR17D15x UART */ |
50 | #define PORT_LPC3220 22 /* NXP LPC32xx SoC "Standard" UART */ | 50 | #define PORT_LPC3220 22 /* NXP LPC32xx SoC "Standard" UART */ |
51 | #define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */ | 51 | #define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */ |
52 | #define PORT_MAX_8250 23 /* max port ID */ | 52 | #define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */ |
53 | #define PORT_MAX_8250 24 /* max port ID */ | ||
53 | 54 | ||
54 | /* | 55 | /* |
55 | * ARM specific type numbers. These are not currently guaranteed | 56 | * ARM specific type numbers. These are not currently guaranteed |
@@ -215,5 +216,7 @@ | |||
215 | /* Energy Micro efm32 SoC */ | 216 | /* Energy Micro efm32 SoC */ |
216 | #define PORT_EFMUART 100 | 217 | #define PORT_EFMUART 100 |
217 | 218 | ||
219 | /* ARC (Synopsys) on-chip UART */ | ||
220 | #define PORT_ARC 101 | ||
218 | 221 | ||
219 | #endif /* _UAPILINUX_SERIAL_CORE_H */ | 222 | #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 @@ | |||
367 | #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ | 367 | #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ |
368 | #define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */ | 368 | #define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */ |
369 | 369 | ||
370 | /* | ||
371 | * These are definitions for the Exar XR17V35X and XR17(C|D)15X | ||
372 | */ | ||
373 | #define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */ | ||
374 | #define UART_EXAR_SLEEP 0x8b /* Sleep mode */ | ||
375 | #define UART_EXAR_DVID 0x8d /* Device identification */ | ||
376 | |||
377 | #define UART_EXAR_FCTR 0x08 /* Feature Control Register */ | ||
378 | #define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */ | ||
379 | #define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */ | ||
380 | #define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */ | ||
381 | #define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */ | ||
382 | #define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */ | ||
383 | #define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */ | ||
384 | |||
385 | #define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */ | ||
386 | #define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */ | ||
387 | |||
370 | #endif /* _LINUX_SERIAL_REG_H */ | 388 | #endif /* _LINUX_SERIAL_REG_H */ |
371 | 389 | ||
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 { | |||
37 | UNIX_DIAG_ICONS, | 37 | UNIX_DIAG_ICONS, |
38 | UNIX_DIAG_RQLEN, | 38 | UNIX_DIAG_RQLEN, |
39 | UNIX_DIAG_MEMINFO, | 39 | UNIX_DIAG_MEMINFO, |
40 | UNIX_DIAG_SHUTDOWN, | ||
40 | 41 | ||
41 | UNIX_DIAG_MAX, | 42 | UNIX_DIAG_MAX, |
42 | }; | 43 | }; |
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 @@ | |||
19 | #define USB_CDC_SUBCLASS_OBEX 0x0b | 19 | #define USB_CDC_SUBCLASS_OBEX 0x0b |
20 | #define USB_CDC_SUBCLASS_EEM 0x0c | 20 | #define USB_CDC_SUBCLASS_EEM 0x0c |
21 | #define USB_CDC_SUBCLASS_NCM 0x0d | 21 | #define USB_CDC_SUBCLASS_NCM 0x0d |
22 | #define USB_CDC_SUBCLASS_MBIM 0x0e | ||
22 | 23 | ||
23 | #define USB_CDC_PROTO_NONE 0 | 24 | #define USB_CDC_PROTO_NONE 0 |
24 | 25 | ||
@@ -33,6 +34,7 @@ | |||
33 | #define USB_CDC_PROTO_EEM 7 | 34 | #define USB_CDC_PROTO_EEM 7 |
34 | 35 | ||
35 | #define USB_CDC_NCM_PROTO_NTB 1 | 36 | #define USB_CDC_NCM_PROTO_NTB 1 |
37 | #define USB_CDC_MBIM_PROTO_NTB 2 | ||
36 | 38 | ||
37 | /*-------------------------------------------------------------------------*/ | 39 | /*-------------------------------------------------------------------------*/ |
38 | 40 | ||
@@ -53,6 +55,7 @@ | |||
53 | #define USB_CDC_DMM_TYPE 0x14 | 55 | #define USB_CDC_DMM_TYPE 0x14 |
54 | #define USB_CDC_OBEX_TYPE 0x15 | 56 | #define USB_CDC_OBEX_TYPE 0x15 |
55 | #define USB_CDC_NCM_TYPE 0x1a | 57 | #define USB_CDC_NCM_TYPE 0x1a |
58 | #define USB_CDC_MBIM_TYPE 0x1b | ||
56 | 59 | ||
57 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ | 60 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ |
58 | struct usb_cdc_header_desc { | 61 | struct usb_cdc_header_desc { |
@@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc { | |||
187 | __le16 bcdNcmVersion; | 190 | __le16 bcdNcmVersion; |
188 | __u8 bmNetworkCapabilities; | 191 | __u8 bmNetworkCapabilities; |
189 | } __attribute__ ((packed)); | 192 | } __attribute__ ((packed)); |
193 | |||
194 | /* "MBIM Control Model Functional Descriptor" */ | ||
195 | struct usb_cdc_mbim_desc { | ||
196 | __u8 bLength; | ||
197 | __u8 bDescriptorType; | ||
198 | __u8 bDescriptorSubType; | ||
199 | |||
200 | __le16 bcdMBIMVersion; | ||
201 | __le16 wMaxControlMessage; | ||
202 | __u8 bNumberFilters; | ||
203 | __u8 bMaxFilterSize; | ||
204 | __le16 wMaxSegmentSize; | ||
205 | __u8 bmNetworkCapabilities; | ||
206 | } __attribute__ ((packed)); | ||
207 | |||
190 | /*-------------------------------------------------------------------------*/ | 208 | /*-------------------------------------------------------------------------*/ |
191 | 209 | ||
192 | /* | 210 | /* |
@@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 { | |||
332 | #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ | 350 | #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ |
333 | #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ | 351 | #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ |
334 | 352 | ||
353 | #define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049 /* IPS<sessionID> : IPS0 for now */ | ||
354 | #define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069 /* ips<sessionID> : ips0 for now */ | ||
355 | #define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344 /* DSS<sessionID> */ | ||
356 | #define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364 /* dss<sessionID> */ | ||
357 | |||
335 | /* 16-bit NCM Datagram Pointer Entry */ | 358 | /* 16-bit NCM Datagram Pointer Entry */ |
336 | struct usb_cdc_ncm_dpe16 { | 359 | struct usb_cdc_ncm_dpe16 { |
337 | __le16 wDatagramIndex; | 360 | __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 { | |||
186 | V4L2_MEMORY_MMAP = 1, | 186 | V4L2_MEMORY_MMAP = 1, |
187 | V4L2_MEMORY_USERPTR = 2, | 187 | V4L2_MEMORY_USERPTR = 2, |
188 | V4L2_MEMORY_OVERLAY = 3, | 188 | V4L2_MEMORY_OVERLAY = 3, |
189 | V4L2_MEMORY_DMABUF = 4, | ||
189 | }; | 190 | }; |
190 | 191 | ||
191 | /* see also http://vektor.theorem.ca/graphics/ycbcr/ */ | 192 | /* see also http://vektor.theorem.ca/graphics/ycbcr/ */ |
@@ -602,6 +603,8 @@ struct v4l2_requestbuffers { | |||
602 | * should be passed to mmap() called on the video node) | 603 | * should be passed to mmap() called on the video node) |
603 | * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer | 604 | * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer |
604 | * pointing to this plane | 605 | * pointing to this plane |
606 | * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file | ||
607 | * descriptor associated with this plane | ||
605 | * @data_offset: offset in the plane to the start of data; usually 0, | 608 | * @data_offset: offset in the plane to the start of data; usually 0, |
606 | * unless there is a header in front of the data | 609 | * unless there is a header in front of the data |
607 | * | 610 | * |
@@ -616,6 +619,7 @@ struct v4l2_plane { | |||
616 | union { | 619 | union { |
617 | __u32 mem_offset; | 620 | __u32 mem_offset; |
618 | unsigned long userptr; | 621 | unsigned long userptr; |
622 | __s32 fd; | ||
619 | } m; | 623 | } m; |
620 | __u32 data_offset; | 624 | __u32 data_offset; |
621 | __u32 reserved[11]; | 625 | __u32 reserved[11]; |
@@ -640,6 +644,8 @@ struct v4l2_plane { | |||
640 | * (or a "cookie" that should be passed to mmap() as offset) | 644 | * (or a "cookie" that should be passed to mmap() as offset) |
641 | * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR; | 645 | * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR; |
642 | * a userspace pointer pointing to this buffer | 646 | * a userspace pointer pointing to this buffer |
647 | * @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF; | ||
648 | * a userspace file descriptor associated with this buffer | ||
643 | * @planes: for multiplanar buffers; userspace pointer to the array of plane | 649 | * @planes: for multiplanar buffers; userspace pointer to the array of plane |
644 | * info structs for this buffer | 650 | * info structs for this buffer |
645 | * @length: size in bytes of the buffer (NOT its payload) for single-plane | 651 | * @length: size in bytes of the buffer (NOT its payload) for single-plane |
@@ -666,6 +672,7 @@ struct v4l2_buffer { | |||
666 | __u32 offset; | 672 | __u32 offset; |
667 | unsigned long userptr; | 673 | unsigned long userptr; |
668 | struct v4l2_plane *planes; | 674 | struct v4l2_plane *planes; |
675 | __s32 fd; | ||
669 | } m; | 676 | } m; |
670 | __u32 length; | 677 | __u32 length; |
671 | __u32 reserved2; | 678 | __u32 reserved2; |
@@ -687,6 +694,33 @@ struct v4l2_buffer { | |||
687 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 | 694 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 |
688 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 | 695 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 |
689 | 696 | ||
697 | /** | ||
698 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor | ||
699 | * | ||
700 | * @index: id number of the buffer | ||
701 | * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for | ||
702 | * multiplanar buffers); | ||
703 | * @plane: index of the plane to be exported, 0 for single plane queues | ||
704 | * @flags: flags for newly created file, currently only O_CLOEXEC is | ||
705 | * supported, refer to manual of open syscall for more details | ||
706 | * @fd: file descriptor associated with DMABUF (set by driver) | ||
707 | * | ||
708 | * Contains data used for exporting a video buffer as DMABUF file descriptor. | ||
709 | * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF | ||
710 | * (identical to the cookie used to mmap() the buffer to userspace). All | ||
711 | * reserved fields must be set to zero. The field reserved0 is expected to | ||
712 | * become a structure 'type' allowing an alternative layout of the structure | ||
713 | * content. Therefore this field should not be used for any other extensions. | ||
714 | */ | ||
715 | struct v4l2_exportbuffer { | ||
716 | __u32 type; /* enum v4l2_buf_type */ | ||
717 | __u32 index; | ||
718 | __u32 plane; | ||
719 | __u32 flags; | ||
720 | __s32 fd; | ||
721 | __u32 reserved[11]; | ||
722 | }; | ||
723 | |||
690 | /* | 724 | /* |
691 | * O V E R L A Y P R E V I E W | 725 | * O V E R L A Y P R E V I E W |
692 | */ | 726 | */ |
@@ -737,7 +771,7 @@ struct v4l2_window { | |||
737 | struct v4l2_captureparm { | 771 | struct v4l2_captureparm { |
738 | __u32 capability; /* Supported modes */ | 772 | __u32 capability; /* Supported modes */ |
739 | __u32 capturemode; /* Current mode */ | 773 | __u32 capturemode; /* Current mode */ |
740 | struct v4l2_fract timeperframe; /* Time per frame in .1us units */ | 774 | struct v4l2_fract timeperframe; /* Time per frame in seconds */ |
741 | __u32 extendedmode; /* Driver-specific extensions */ | 775 | __u32 extendedmode; /* Driver-specific extensions */ |
742 | __u32 readbuffers; /* # of buffers for read */ | 776 | __u32 readbuffers; /* # of buffers for read */ |
743 | __u32 reserved[4]; | 777 | __u32 reserved[4]; |
@@ -1888,6 +1922,7 @@ struct v4l2_create_buffers { | |||
1888 | #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) | 1922 | #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) |
1889 | #define VIDIOC_OVERLAY _IOW('V', 14, int) | 1923 | #define VIDIOC_OVERLAY _IOW('V', 14, int) |
1890 | #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) | 1924 | #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) |
1925 | #define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer) | ||
1891 | #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) | 1926 | #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) |
1892 | #define VIDIOC_STREAMON _IOW('V', 18, int) | 1927 | #define VIDIOC_STREAMON _IOW('V', 18, int) |
1893 | #define VIDIOC_STREAMOFF _IOW('V', 19, int) | 1928 | #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 @@ | |||
51 | #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */ | 51 | #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */ |
52 | #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 /* Guest can announce device on the | 52 | #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 /* Guest can announce device on the |
53 | * network */ | 53 | * network */ |
54 | #define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow | ||
55 | * Steering */ | ||
54 | 56 | ||
55 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ | 57 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ |
56 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ | 58 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ |
@@ -60,6 +62,11 @@ struct virtio_net_config { | |||
60 | __u8 mac[6]; | 62 | __u8 mac[6]; |
61 | /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ | 63 | /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ |
62 | __u16 status; | 64 | __u16 status; |
65 | /* Maximum number of each of transmit and receive queues; | ||
66 | * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ. | ||
67 | * Legal values are between 1 and 0x8000 | ||
68 | */ | ||
69 | __u16 max_virtqueue_pairs; | ||
63 | } __attribute__((packed)); | 70 | } __attribute__((packed)); |
64 | 71 | ||
65 | /* This is the first element of the scatter-gather list. If you don't | 72 | /* This is the first element of the scatter-gather list. If you don't |
@@ -166,4 +173,24 @@ struct virtio_net_ctrl_mac { | |||
166 | #define VIRTIO_NET_CTRL_ANNOUNCE 3 | 173 | #define VIRTIO_NET_CTRL_ANNOUNCE 3 |
167 | #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0 | 174 | #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0 |
168 | 175 | ||
176 | /* | ||
177 | * Control Receive Flow Steering | ||
178 | * | ||
179 | * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET | ||
180 | * enables Receive Flow Steering, specifying the number of the transmit and | ||
181 | * receive queues that will be used. After the command is consumed and acked by | ||
182 | * the device, the device will not steer new packets on receive virtqueues | ||
183 | * other than specified nor read from transmit virtqueues other than specified. | ||
184 | * Accordingly, driver should not transmit new packets on virtqueues other than | ||
185 | * specified. | ||
186 | */ | ||
187 | struct virtio_net_ctrl_mq { | ||
188 | u16 virtqueue_pairs; | ||
189 | }; | ||
190 | |||
191 | #define VIRTIO_NET_CTRL_MQ 4 | ||
192 | #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 | ||
193 | #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 | ||
194 | #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 | ||
195 | |||
169 | #endif /* _LINUX_VIRTIO_NET_H */ | 196 | #endif /* _LINUX_VIRTIO_NET_H */ |