History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next

Pull networking changes from David Miller: 1) Allow to dump, monitor, and change the bridge multicast database using netlink. From Cong Wang. 2) RFC 5961 TCP blind data injection attack mitigation, from Eric Dumazet. 3) Networking user namespace support from Eric W. Biederman. 4) tuntap/virtio-net multiqueue support by Jason Wang. 5) Support for checksum offload of encapsulated packets (basically, tunneled traffic can still be checksummed by HW). From Joseph Gasparakis. 6) Allow BPF filter access to VLAN tags, from Eric Dumazet and Daniel Borkmann. 7) Bridge port parameters over netlink and BPDU blocking support from Stephen Hemminger. 8) Improve data access patterns during inet socket demux by rearranging socket layout, from Eric Dumazet. 9) TIPC protocol updates and cleanups from Ying Xue, Paul Gortmaker, and Jon Maloy. 10) Update TCP socket hash sizing to be more in line with current day realities. The existing heurstics were choosen a decade ago. From Eric Dumazet. 11) Fix races, queue bloat, and excessive wakeups in ATM and associated drivers, from Krzysztof Mazur and David Woodhouse. 12) Support DOVE (Distributed Overlay Virtual Ethernet) extensions in VXLAN driver, from David Stevens. 13) Add "oops_only" mode to netconsole, from Amerigo Wang. 14) Support set and query of VEB/VEPA bridge mode via PF_BRIDGE, also allow DCB netlink to work on namespaces other than the initial namespace. From John Fastabend. 15) Support PTP in the Tigon3 driver, from Matt Carlson. 16) tun/vhost zero copy fixes and improvements, plus turn it on by default, from Michael S. Tsirkin. 17) Support per-association statistics in SCTP, from Michele Baldessari. And many, many, driver updates, cleanups, and improvements. Too numerous to mention individually. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1722 commits) net/mlx4_en: Add support for destination MAC in steering rules net/mlx4_en: Use generic etherdevice.h functions. net: ethtool: Add destination MAC address to flow steering API bridge: add support of adding and deleting mdb entries bridge: notify mdb changes via netlink ndisc: Unexport ndisc_{build,send}_skb(). uapi: add missing netconf.h to export list pkt_sched: avoid requeues if possible solos-pci: fix double-free of TX skb in DMA mode bnx2: Fix accidental reversions. bna: Driver Version Updated to 3.1.2.1 bna: Firmware update bna: Add RX State bna: Rx Page Based Allocation bna: TX Intr Coalescing Fix bna: Tx and Rx Optimizations bna: Code Cleanup and Enhancements ath9k: check pdata variable before dereferencing it ath5k: RX timestamp is reported at end of frame ath9k_htc: RX timestamp is reported at end of frame ...

Linus Torvalds committed 13 years ago

Commit 6be35c72 parents e37aa63 520dfe31353 files · +82940 −34585Browse files

Showing the changes to include/uapi (26 of 1353 files). Show all

Unified · Split

26 files
  1. include/uapi/asm-generic/socket.h +1 −0
  2. include/uapi/linux/Kbuild +1 −0
  3. include/uapi/linux/ethtool.h +7 −4
  4. include/uapi/linux/filter.h +3 −1
  5. include/uapi/linux/hdlc/Kbuild +1 −0
  6. include/uapi/linux/hdlc/ioctl.h +84 −0
  7. include/uapi/linux/if_bridge.h +81 −0
  8. include/uapi/linux/if_ether.h +1 −0
  9. include/uapi/linux/if_link.h +22 −0
  10. include/uapi/linux/if_packet.h +1 −0
  11. include/uapi/linux/if_tun.h +7 −0
  12. include/uapi/linux/if_tunnel.h +20 −0
  13. include/uapi/linux/in6.h +1 −0
  14. include/uapi/linux/inet_diag.h +2 −1
  15. include/uapi/linux/ipv6.h +1 −0
  16. include/uapi/linux/ipv6_route.h +3 −0
  17. include/uapi/linux/netconf.h +24 −0
  18. include/uapi/linux/netfilter/nfnetlink_conntrack.h +2 −0
  19. include/uapi/linux/netfilter_ipv6/ip6_tables.h +3 −0
  20. include/uapi/linux/nfc.h +15 −0
  21. include/uapi/linux/nl80211.h +159 −18
  22. include/uapi/linux/ptp_clock.h +14 −0
  23. include/uapi/linux/rtnetlink.h +26 −0
  24. include/uapi/linux/unix_diag.h +1 −0
  25. include/uapi/linux/usb/cdc.h +23 −0
  26. include/uapi/linux/virtio_net.h +27 −0
include/uapi/asm-generic/socket.h+1−0
@@ -43,6 +43,7 @@ · 42 unmodified lines
4343 /* Socket filtering */
4444 #define SO_ATTACH_FILTER 26
4545 #define SO_DETACH_FILTER 27
46+#define SO_GET_FILTER SO_ATTACH_FILTER
4647
4748 #define SO_PEERNAME 28
4849 #define SO_TIMESTAMP 29
include/uapi/linux/Kbuild+1−0
@@ -258,6 +258,7 @@ header-y += neighbour.h · 257 unmodified lines
258258 header-y += net.h
259259 header-y += net_dropmon.h
260260 header-y += net_tstamp.h
261+header-y += netconf.h
261262 header-y += netdevice.h
262263 header-y += netfilter.h
263264 header-y += netfilter_arp.h
include/uapi/linux/ethtool.h+7−4
@@ -500,13 +500,15 @@ union ethtool_flow_union { · 499 unmodified lines
500500 struct ethtool_ah_espip4_spec esp_ip4_spec;
501501 struct ethtool_usrip4_spec usr_ip4_spec;
502502 struct ethhdr ether_spec;
503− __u8 hdata[60];
503+ __u8 hdata[52];
504504 };
505505
506506 struct ethtool_flow_ext {
507− __be16 vlan_etype;
508− __be16 vlan_tci;
509− __be32 data[2];
507+ __u8 padding[2];
508+ unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
509+ __be16 vlan_etype;
510+ __be16 vlan_tci;
511+ __be32 data[2];
510512 };
511513
512514 /**
@@ -1027,6 +1029,7 @@ enum ethtool_sfeatures_retval_bits { · 514 unmodified lines
10271029 #define ETHER_FLOW 0x12 /* spec only (ether_spec) */
10281030 /* Flag to enable additional fields in struct ethtool_rx_flow_spec */
10291031 #define FLOW_EXT 0x80000000
1032+#define FLOW_MAC_EXT 0x40000000
10301033
10311034 /* L3-L4 network traffic flow hash options */
10321035 #define RXH_L2DA (1 << 1)
include/uapi/linux/filter.h+3−1
@@ -127,7 +127,9 @@ struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ · 126 unmodified lines
127127 #define SKF_AD_RXHASH 32
128128 #define SKF_AD_CPU 36
129129 #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
131133 #define SKF_NET_OFF (-0x100000)
132134 #define SKF_LL_OFF (-0x200000)
133135
include/uapi/linux/hdlc/Kbuild+1−0
@@ -1 +1,2 @@
11 # UAPI Header export list
2+header-y += ioctl.h
include/uapi/linux/hdlc/ioctl.h+84−0
@@ -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__ */
include/uapi/linux/if_bridge.h+81−0
@@ -97,5 +97,86 @@ struct __fdb_entry { · 96 unmodified lines
9797 __u16 unused;
9898 };
9999
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)
100181
101182 #endif /* _UAPI_LINUX_IF_BRIDGE_H */
include/uapi/linux/if_ether.h+1−0
@@ -48,6 +48,7 @@ · 47 unmodified lines
4848 #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
4949 #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
5050 #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 ] */
5152 #define ETH_P_DEC 0x6000 /* DEC Assigned proto */
5253 #define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
5354 #define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
include/uapi/linux/if_link.h+22−0
@@ -205,6 +205,24 @@ enum { · 204 unmodified lines
205205
206206 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
207207
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+
208226 struct ifla_cacheinfo {
209227 __u32 max_reasm_len;
210228 __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
@@ -285,6 +303,10 @@ enum { · 74 unmodified lines
285303 IFLA_VXLAN_AGEING,
286304 IFLA_VXLAN_LIMIT,
287305 IFLA_VXLAN_PORT_RANGE,
306+ IFLA_VXLAN_PROXY,
307+ IFLA_VXLAN_RSC,
308+ IFLA_VXLAN_L2MISS,
309+ IFLA_VXLAN_L3MISS,
288310 __IFLA_VXLAN_MAX
289311 };
290312 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
include/uapi/linux/if_packet.h+1−0
@@ -50,6 +50,7 @@ struct sockaddr_ll { · 49 unmodified lines
5050 #define PACKET_TX_TIMESTAMP 16
5151 #define PACKET_TIMESTAMP 17
5252 #define PACKET_FANOUT 18
53+#define PACKET_TX_HAS_OFF 19
5354
5455 #define PACKET_FANOUT_HASH 0
5556 #define PACKET_FANOUT_LB 1
include/uapi/linux/if_tun.h+7−0
@@ -31,9 +31,11 @@ · 30 unmodified lines
3131 #define TUN_FASYNC 0x0010
3232 #define TUN_NOCHECKSUM 0x0020
3333 #define TUN_NO_PI 0x0040
34+/* This flag has no real effect */
3435 #define TUN_ONE_QUEUE 0x0080
3536 #define TUN_PERSIST 0x0100
3637 #define TUN_VNET_HDR 0x0200
38+#define TUN_TAP_MQ 0x0400
3739
3840 /* Ioctl defines */
3941 #define TUNSETNOCSUM _IOW('T', 200, int)
@@ -53,14 +55,19 @@ · 13 unmodified lines
5355 #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
5456 #define TUNGETVNETHDRSZ _IOR('T', 215, int)
5557 #define TUNSETVNETHDRSZ _IOW('T', 216, int)
58+#define TUNSETQUEUE _IOW('T', 217, int)
5659
5760 /* TUNSETIFF ifr flags */
5861 #define IFF_TUN 0x0001
5962 #define IFF_TAP 0x0002
6063 #define IFF_NO_PI 0x1000
64+/* This flag has no real effect */
6165 #define IFF_ONE_QUEUE 0x2000
6266 #define IFF_VNET_HDR 0x4000
6367 #define IFF_TUN_EXCL 0x8000
68+#define IFF_MULTI_QUEUE 0x0100
69+#define IFF_ATTACH_QUEUE 0x0200
70+#define IFF_DETACH_QUEUE 0x0400
6471
6572 /* Features for GSO (TUNSETOFFLOAD). */
6673 #define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
include/uapi/linux/if_tunnel.h+20−0
@@ -37,6 +37,26 @@ struct ip_tunnel_parm { · 36 unmodified lines
3737 struct iphdr iph;
3838 };
3939
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+
4060 /* SIT-mode i_flags */
4161 #define SIT_ISATAP 0x0001
4262
include/uapi/linux/in6.h+1−0
@@ -240,6 +240,7 @@ struct in6_flowlabel_req { · 239 unmodified lines
240240 *
241241 * IP6T_SO_GET_REVISION_MATCH 68
242242 * IP6T_SO_GET_REVISION_TARGET 69
243+ * IP6T_SO_ORIGINAL_DST 80
243244 */
244245
245246 /* RFC5014: Source address selection */
include/uapi/linux/inet_diag.h+2−1
@@ -109,9 +109,10 @@ enum { · 108 unmodified lines
109109 INET_DIAG_TOS,
110110 INET_DIAG_TCLASS,
111111 INET_DIAG_SKMEMINFO,
112+ INET_DIAG_SHUTDOWN,
112113 };
113114
114−#define INET_DIAG_MAX INET_DIAG_SKMEMINFO
115+#define INET_DIAG_MAX INET_DIAG_SHUTDOWN
115116
116117
117118 /* INET_DIAG_MEM */
include/uapi/linux/ipv6.h+1−0
@@ -157,6 +157,7 @@ enum { · 156 unmodified lines
157157 DEVCONF_DISABLE_IPV6,
158158 DEVCONF_ACCEPT_DAD,
159159 DEVCONF_FORCE_TLLAO,
160+ DEVCONF_NDISC_NOTIFY,
160161 DEVCONF_MAX
161162 };
162163
include/uapi/linux/ipv6_route.h+3−0
@@ -55,4 +55,7 @@ struct in6_rtmsg { · 54 unmodified lines
5555 #define RTMSG_NEWROUTE 0x21
5656 #define RTMSG_DELROUTE 0x22
5757
58+#define IP6_RT_PRIO_USER 1024
59+#define IP6_RT_PRIO_ADDRCONF 256
60+
5861 #endif /* _UAPI_LINUX_IPV6_ROUTE_H */
include/uapi/linux/netconf.h+24−0
@@ -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_ */
include/uapi/linux/netfilter/nfnetlink_conntrack.h+2−0
@@ -9,6 +9,8 @@ enum cntl_msg_types { · 8 unmodified lines
99 IPCTNL_MSG_CT_GET_CTRZERO,
1010 IPCTNL_MSG_CT_GET_STATS_CPU,
1111 IPCTNL_MSG_CT_GET_STATS,
12+ IPCTNL_MSG_CT_GET_DYING,
13+ IPCTNL_MSG_CT_GET_UNCONFIRMED,
1214
1315 IPCTNL_MSG_MAX
1416 };
include/uapi/linux/netfilter_ipv6/ip6_tables.h+3−0
@@ -178,6 +178,9 @@ struct ip6t_error { · 177 unmodified lines
178178 #define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5)
179179 #define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET
180180
181+/* obtain original address if REDIRECT'd connection */
182+#define IP6T_SO_ORIGINAL_DST 80
183+
181184 /* ICMP matching stuff */
182185 struct ip6t_icmp {
183186 __u8 type; /* type to match */
include/uapi/linux/nfc.h+15−0
@@ -60,6 +60,13 @@ · 59 unmodified lines
6060 * target mode.
6161 * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated
6262 * 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.
6370 */
6471 enum nfc_commands {
6572 NFC_CMD_UNSPEC,
@@ -77,6 +84,8 @@ enum nfc_commands { · 11 unmodified lines
7784 NFC_EVENT_TARGET_LOST,
7885 NFC_EVENT_TM_ACTIVATED,
7986 NFC_EVENT_TM_DEACTIVATED,
87+ NFC_CMD_LLC_GET_PARAMS,
88+ NFC_CMD_LLC_SET_PARAMS,
8089 /* private: internal use only */
8190 __NFC_CMD_AFTER_LAST
8291 };
@@ -102,6 +111,9 @@ enum nfc_commands { · 19 unmodified lines
102111 * @NFC_ATTR_RF_MODE: Initiator or target
103112 * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for
104113 * @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
105117 */
106118 enum nfc_attrs {
107119 NFC_ATTR_UNSPEC,
@@ -119,6 +131,9 @@ enum nfc_attrs { · 11 unmodified lines
119131 NFC_ATTR_DEVICE_POWERED,
120132 NFC_ATTR_IM_PROTOCOLS,
121133 NFC_ATTR_TM_PROTOCOLS,
134+ NFC_ATTR_LLC_PARAM_LTO,
135+ NFC_ATTR_LLC_PARAM_RW,
136+ NFC_ATTR_LLC_PARAM_MIUX,
122137 /* private: internal use only */
123138 __NFC_ATTR_AFTER_LAST
124139 };
include/uapi/linux/nl80211.h+159−18
@@ -118,8 +118,9 @@ · 117 unmodified lines
118118 * to get a list of all present wiphys.
119119 * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or
120120 * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
121− * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ,
122− * %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT,
121+ * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the
122+ * attributes determining the channel width; this is used for setting
123+ * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT,
123124 * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
124125 * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.
125126 * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL
@@ -171,7 +172,7 @@ · 45 unmodified lines
171172 * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY,
172173 * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT.
173174 * 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.
175176 * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP
176177 * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface
177178 * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP
@@ -401,8 +402,7 @@ · 223 unmodified lines
401402 * a response while being associated to an AP on another channel.
402403 * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
403404 * 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− * optionally used to specify additional channel parameters.
405+ * frequency for the operation.
406406 * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
407407 * to remain on the channel. This command is also used as an event to
408408 * notify when the requested duration starts (it may take a while for the
@@ -440,12 +440,11 @@ · 31 unmodified lines
440440 * as an event indicating reception of a frame that was not processed in
441441 * kernel code, but is for us (i.e., which may need to be processed in a
442442 * user space application). %NL80211_ATTR_FRAME is used to specify the
443− * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and
444− * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on
445− * which channel the frame is to be transmitted or was received. If this
446− * channel is not the current channel (remain-on-channel or the
447− * operational channel) the device will switch to the given channel and
448− * transmit the frame, optionally waiting for a response for the time
443+ * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used
444+ * to indicate on which channel the frame is to be transmitted or was
445+ * received. If this channel is not the current channel (remain-on-channel
446+ * or the operational channel) the device will switch to the given channel
447+ * and transmit the frame, optionally waiting for a response for the time
449448 * specified using %NL80211_ATTR_DURATION. When called, this operation
450449 * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the
451450 * TX status event pertaining to the TX request.
@@ -473,8 +472,8 @@ · 21 unmodified lines
473472 * command is used as an event to indicate the that a trigger level was
474473 * reached.
475474 * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ
476− * and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed
477− * by %NL80211_ATTR_IFINDEX) shall operate on.
475+ * and the attributes determining channel width) the given interface
476+ * (identifed by %NL80211_ATTR_IFINDEX) shall operate on.
478477 * In case multiple channels are supported by the device, the mechanism
479478 * with which it switches channels is implementation-defined.
480479 * When a monitor interface is given, it can only switch channel while
@@ -526,6 +525,12 @@ · 45 unmodified lines
526525 * of PMKSA caching dandidates.
527526 *
528527 * @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).
529534 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
530535 *
531536 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
@@ -562,8 +567,8 @@ · 30 unmodified lines
562567 *
563568 * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels
564569 * independently of the userspace SME, send this event indicating
565− * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with
566− * %NL80211_ATTR_WIPHY_CHANNEL_TYPE.
570+ * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the
571+ * attributes determining channel width.
567572 *
568573 * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by
569574 * its %NL80211_ATTR_WDEV identifier. It must have been created with
@@ -578,6 +583,9 @@ · 8 unmodified lines
578583 * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON
579584 * is used for this.
580585 *
586+ * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames
587+ * for IBSS or MESH vif.
588+ *
581589 * @NL80211_CMD_MAX: highest used command number
582590 * @__NL80211_CMD_AFTER_LAST: internal use
583591 */
@@ -726,6 +734,8 @@ enum nl80211_commands { · 142 unmodified lines
726734
727735 NL80211_CMD_CONN_FAILED,
728736
737+ NL80211_CMD_SET_MCAST_RATE,
738+
729739 /* add new commands above here */
730740
731741 /* used to define NL80211_CMD_MAX below */
@@ -762,14 +772,26 @@ enum nl80211_commands { · 30 unmodified lines
762772 * /sys/class/ieee80211/<phyname>/index
763773 * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
764774 * @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
766787 * @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):
768789 * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including
769790 * this attribute)
770791 * NL80211_CHAN_HT20 = HT20 only
771792 * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel
772793 * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel
794+ * This attribute is now deprecated.
773795 * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is
774796 * less than or equal to the RTS threshold; allowed range: 1..255;
775797 * dot11ShortRetryLimit; u8
@@ -1273,6 +1295,21 @@ enum nl80211_commands { · 497 unmodified lines
12731295 * the connection request from a station. nl80211_connect_failed_reason
12741296 * enum has different reasons of connection failure.
12751297 *
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+ *
12761313 * @NL80211_ATTR_MAX: highest attribute number currently defined
12771314 * @__NL80211_ATTR_AFTER_LAST: internal use
12781315 */
@@ -1530,6 +1567,19 @@ enum nl80211_attrs { · 251 unmodified lines
15301567
15311568 NL80211_ATTR_CONN_FAILED_REASON,
15321569
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+
15331583 /* add attributes here, update the policy in nl80211.c */
15341584
15351585 __NL80211_ATTR_AFTER_LAST,
@@ -1573,6 +1623,7 @@ enum nl80211_attrs { · 37 unmodified lines
15731623 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
15741624 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
15751625 #define NL80211_HT_CAPABILITY_LEN 26
1626+#define NL80211_VHT_CAPABILITY_LEN 12
15761627
15771628 #define NL80211_MAX_NR_CIPHER_SUITES 5
15781629 #define NL80211_MAX_NR_AKM_SUITES 2
@@ -1693,10 +1744,15 @@ struct nl80211_sta_flag_update { · 114 unmodified lines
16931744 * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved
16941745 * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s)
16951746 * @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
16971748 * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval
16981749 * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s)
16991750 * @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
17001756 * @__NL80211_RATE_INFO_AFTER_LAST: internal use
17011757 */
17021758 enum nl80211_rate_info {
@@ -1706,6 +1762,11 @@ enum nl80211_rate_info { · 3 unmodified lines
17061762 NL80211_RATE_INFO_40_MHZ_WIDTH,
17071763 NL80211_RATE_INFO_SHORT_GI,
17081764 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,
17091770
17101771 /* keep last */
17111772 __NL80211_RATE_INFO_AFTER_LAST,
@@ -2414,6 +2475,15 @@ enum nl80211_ac { · 702 unmodified lines
24142475 #define NL80211_TXQ_Q_BE NL80211_AC_BE
24152476 #define NL80211_TXQ_Q_BK NL80211_AC_BK
24162477
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+ */
24172487 enum nl80211_channel_type {
24182488 NL80211_CHAN_NO_HT,
24192489 NL80211_CHAN_HT20,
@@ -2421,6 +2491,32 @@ enum nl80211_channel_type { · 1 unmodified line
24212491 NL80211_CHAN_HT40PLUS
24222492 };
24232493
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+
24242520 /**
24252521 * enum nl80211_bss - netlink attributes for a BSS
24262522 *
@@ -2489,6 +2585,7 @@ enum nl80211_bss_status { · 62 unmodified lines
24892585 * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only)
24902586 * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r)
24912587 * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP)
2588+ * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals
24922589 * @__NL80211_AUTHTYPE_NUM: internal
24932590 * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm
24942591 * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by
@@ -2500,6 +2597,7 @@ enum nl80211_auth_type { · 5 unmodified lines
25002597 NL80211_AUTHTYPE_SHARED_KEY,
25012598 NL80211_AUTHTYPE_FT,
25022599 NL80211_AUTHTYPE_NETWORK_EAP,
2600+ NL80211_AUTHTYPE_SAE,
25032601
25042602 /* keep last */
25052603 __NL80211_AUTHTYPE_NUM,
@@ -3028,6 +3126,20 @@ enum nl80211_ap_sme_features { · 522 unmodified lines
30283126 * in the interface combinations, even when it's only used for scan
30293127 * and remain-on-channel. This could be due to, for example, the
30303128 * 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
30313143 */
30323144 enum nl80211_feature_flags {
30333145 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -3035,6 +3147,14 @@ enum nl80211_feature_flags { · 1 unmodified line
30353147 NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
30363148 NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3,
30373149 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,
30383158 };
30393159
30403160 /**
@@ -3069,4 +3189,25 @@ enum nl80211_connect_failed_reason { · 28 unmodified lines
30693189 NL80211_CONN_FAIL_BLOCKED_CLIENT,
30703190 };
30713191
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+
30723213 #endif /* __LINUX_NL80211_H */
include/uapi/linux/ptp_clock.h+14−0
@@ -67,12 +67,26 @@ struct ptp_perout_request { · 66 unmodified lines
6767 unsigned int rsv[4]; /* Reserved for future use. */
6868 };
6969
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+
7083 #define PTP_CLK_MAGIC '='
7184
7285 #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps)
7386 #define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request)
7487 #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request)
7588 #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int)
89+#define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset)
7690
7791 struct ptp_extts_event {
7892 struct ptp_clock_time t; /* Time event occured. */
include/uapi/linux/rtnetlink.h+26−0
@@ -120,6 +120,18 @@ enum { · 119 unmodified lines
120120 RTM_SETDCB,
121121 #define RTM_SETDCB RTM_SETDCB
122122
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+
123135 __RTM_MAX,
124136 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
125137 };
@@ -222,6 +234,7 @@ enum { · 96 unmodified lines
222234 #define RTPROT_XORP 14 /* XORP */
223235 #define RTPROT_NTK 15 /* Netsukuku */
224236 #define RTPROT_DHCP 16 /* DHCP client */
237+#define RTPROT_MROUTED 17 /* Multicast daemon */
225238
226239 /* rtm_scope
227240
@@ -283,6 +296,7 @@ enum rtattr_type_t { · 55 unmodified lines
283296 RTA_MP_ALGO, /* no longer used */
284297 RTA_TABLE,
285298 RTA_MARK,
299+ RTA_MFC_STATS,
286300 __RTA_MAX
287301 };
288302
@@ -403,6 +417,12 @@ struct rta_session { · 114 unmodified lines
403417 } u;
404418 };
405419
420+struct rta_mfc_stats {
421+ __u64 mfcs_packets;
422+ __u64 mfcs_bytes;
423+ __u64 mfcs_wrong_if;
424+};
425+
406426 /****
407427 * General form of address family dependent message.
408428 ****/
@@ -587,6 +607,12 @@ enum rtnetlink_groups { · 178 unmodified lines
587607 #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
588608 RTNLGRP_DCB,
589609 #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
590616 __RTNLGRP_MAX
591617 };
592618 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
include/uapi/linux/unix_diag.h+1−0
@@ -37,6 +37,7 @@ enum { · 36 unmodified lines
3737 UNIX_DIAG_ICONS,
3838 UNIX_DIAG_RQLEN,
3939 UNIX_DIAG_MEMINFO,
40+ UNIX_DIAG_SHUTDOWN,
4041
4142 UNIX_DIAG_MAX,
4243 };
include/uapi/linux/usb/cdc.h+23−0
@@ -19,6 +19,7 @@ · 18 unmodified lines
1919 #define USB_CDC_SUBCLASS_OBEX 0x0b
2020 #define USB_CDC_SUBCLASS_EEM 0x0c
2121 #define USB_CDC_SUBCLASS_NCM 0x0d
22+#define USB_CDC_SUBCLASS_MBIM 0x0e
2223
2324 #define USB_CDC_PROTO_NONE 0
2425
@@ -33,6 +34,7 @@ · 8 unmodified lines
3334 #define USB_CDC_PROTO_EEM 7
3435
3536 #define USB_CDC_NCM_PROTO_NTB 1
37+#define USB_CDC_MBIM_PROTO_NTB 2
3638
3739 /*-------------------------------------------------------------------------*/
3840
@@ -53,6 +55,7 @@ · 14 unmodified lines
5355 #define USB_CDC_DMM_TYPE 0x14
5456 #define USB_CDC_OBEX_TYPE 0x15
5557 #define USB_CDC_NCM_TYPE 0x1a
58+#define USB_CDC_MBIM_TYPE 0x1b
5659
5760 /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */
5861 struct usb_cdc_header_desc {
@@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc { · 128 unmodified lines
187190 __le16 bcdNcmVersion;
188191 __u8 bmNetworkCapabilities;
189192 } __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+
190208 /*-------------------------------------------------------------------------*/
191209
192210 /*
@@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 { · 139 unmodified lines
332350 #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */
333351 #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */
334352
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+
335358 /* 16-bit NCM Datagram Pointer Entry */
336359 struct usb_cdc_ncm_dpe16 {
337360 __le16 wDatagramIndex;
include/uapi/linux/virtio_net.h+27−0
@@ -51,6 +51,8 @@ · 50 unmodified lines
5151 #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */
5252 #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 /* Guest can announce device on the
5353 * network */
54+#define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow
55+ * Steering */
5456
5557 #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
5658 #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */
@@ -60,6 +62,11 @@ struct virtio_net_config { · 3 unmodified lines
6062 __u8 mac[6];
6163 /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
6264 __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;
6370 } __attribute__((packed));
6471
6572 /* This is the first element of the scatter-gather list. If you don't
@@ -166,4 +173,24 @@ struct virtio_net_ctrl_mac { · 100 unmodified lines
166173 #define VIRTIO_NET_CTRL_ANNOUNCE 3
167174 #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0
168175
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+
169196 #endif /* _LINUX_VIRTIO_NET_H */