aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/asm-generic/socket.h5
-rw-r--r--include/uapi/linux/Kbuild91
-rw-r--r--include/uapi/linux/bpf.h14
-rw-r--r--include/uapi/linux/can/error.h1
-rw-r--r--include/uapi/linux/ethtool.h28
-rw-r--r--include/uapi/linux/if_bridge.h1
-rw-r--r--include/uapi/linux/if_link.h18
-rw-r--r--include/uapi/linux/if_tunnel.h1
-rw-r--r--include/uapi/linux/ipv6.h1
-rw-r--r--include/uapi/linux/neighbour.h6
-rw-r--r--include/uapi/linux/net_tstamp.h3
-rw-r--r--include/uapi/linux/netfilter/ipset/ip_set.h8
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h18
-rw-r--r--include/uapi/linux/netfilter/xt_set.h13
-rw-r--r--include/uapi/linux/nfc.h23
-rw-r--r--include/uapi/linux/nl80211.h147
-rw-r--r--include/uapi/linux/openvswitch.h53
-rw-r--r--include/uapi/linux/rtnetlink.h1
-rw-r--r--include/uapi/linux/snmp.h5
-rw-r--r--include/uapi/linux/tc_act/Kbuild1
-rw-r--r--include/uapi/linux/tc_act/tc_vlan.h35
-rw-r--r--include/uapi/linux/tipc_netlink.h244
22 files changed, 641 insertions, 76 deletions
diff --git a/include/uapi/asm-generic/socket.h b/include/uapi/asm-generic/socket.h
index ea0796bdcf88..5c15c2a5c123 100644
--- a/include/uapi/asm-generic/socket.h
+++ b/include/uapi/asm-generic/socket.h
@@ -82,4 +82,9 @@
82 82
83#define SO_BPF_EXTENSIONS 48 83#define SO_BPF_EXTENSIONS 48
84 84
85#define SO_INCOMING_CPU 49
86
87#define SO_ATTACH_BPF 50
88#define SO_DETACH_BPF SO_DETACH_FILTER
89
85#endif /* __ASM_GENERIC_SOCKET_H */ 90#endif /* __ASM_GENERIC_SOCKET_H */
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index c54fcb5993c3..d8e1716707ba 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -37,27 +37,27 @@ header-y += aio_abi.h
37header-y += apm_bios.h 37header-y += apm_bios.h
38header-y += arcfb.h 38header-y += arcfb.h
39header-y += atalk.h 39header-y += atalk.h
40header-y += atm.h
41header-y += atm_eni.h
42header-y += atm_he.h
43header-y += atm_idt77105.h
44header-y += atm_nicstar.h
45header-y += atm_tcp.h
46header-y += atm_zatm.h
47header-y += atmapi.h 40header-y += atmapi.h
48header-y += atmarp.h 41header-y += atmarp.h
49header-y += atmbr2684.h 42header-y += atmbr2684.h
50header-y += atmclip.h 43header-y += atmclip.h
51header-y += atmdev.h 44header-y += atmdev.h
45header-y += atm_eni.h
46header-y += atm.h
47header-y += atm_he.h
48header-y += atm_idt77105.h
52header-y += atmioc.h 49header-y += atmioc.h
53header-y += atmlec.h 50header-y += atmlec.h
54header-y += atmmpc.h 51header-y += atmmpc.h
52header-y += atm_nicstar.h
55header-y += atmppp.h 53header-y += atmppp.h
56header-y += atmsap.h 54header-y += atmsap.h
57header-y += atmsvc.h 55header-y += atmsvc.h
56header-y += atm_tcp.h
57header-y += atm_zatm.h
58header-y += audit.h 58header-y += audit.h
59header-y += auto_fs.h
60header-y += auto_fs4.h 59header-y += auto_fs4.h
60header-y += auto_fs.h
61header-y += auxvec.h 61header-y += auxvec.h
62header-y += ax25.h 62header-y += ax25.h
63header-y += b1lli.h 63header-y += b1lli.h
@@ -67,8 +67,8 @@ header-y += bfs_fs.h
67header-y += binfmts.h 67header-y += binfmts.h
68header-y += blkpg.h 68header-y += blkpg.h
69header-y += blktrace_api.h 69header-y += blktrace_api.h
70header-y += bpf.h
71header-y += bpf_common.h 70header-y += bpf_common.h
71header-y += bpf.h
72header-y += bpqether.h 72header-y += bpqether.h
73header-y += bsg.h 73header-y += bsg.h
74header-y += btrfs.h 74header-y += btrfs.h
@@ -93,21 +93,21 @@ header-y += cyclades.h
93header-y += cycx_cfm.h 93header-y += cycx_cfm.h
94header-y += dcbnl.h 94header-y += dcbnl.h
95header-y += dccp.h 95header-y += dccp.h
96header-y += dlm.h 96header-y += dlmconstants.h
97header-y += dlm_device.h 97header-y += dlm_device.h
98header-y += dlm.h
98header-y += dlm_netlink.h 99header-y += dlm_netlink.h
99header-y += dlm_plock.h 100header-y += dlm_plock.h
100header-y += dlmconstants.h
101header-y += dm-ioctl.h 101header-y += dm-ioctl.h
102header-y += dm-log-userspace.h 102header-y += dm-log-userspace.h
103header-y += dn.h 103header-y += dn.h
104header-y += dqblk_xfs.h 104header-y += dqblk_xfs.h
105header-y += edd.h 105header-y += edd.h
106header-y += efs_fs_sb.h 106header-y += efs_fs_sb.h
107header-y += elfcore.h
107header-y += elf-em.h 108header-y += elf-em.h
108header-y += elf-fdpic.h 109header-y += elf-fdpic.h
109header-y += elf.h 110header-y += elf.h
110header-y += elfcore.h
111header-y += errno.h 111header-y += errno.h
112header-y += errqueue.h 112header-y += errqueue.h
113header-y += ethtool.h 113header-y += ethtool.h
@@ -131,15 +131,15 @@ header-y += fsl_hypervisor.h
131header-y += fuse.h 131header-y += fuse.h
132header-y += futex.h 132header-y += futex.h
133header-y += gameport.h 133header-y += gameport.h
134header-y += gen_stats.h
135header-y += genetlink.h 134header-y += genetlink.h
135header-y += gen_stats.h
136header-y += gfs2_ondisk.h 136header-y += gfs2_ondisk.h
137header-y += gigaset_dev.h 137header-y += gigaset_dev.h
138header-y += hdlc.h
139header-y += hdlcdrv.h 138header-y += hdlcdrv.h
139header-y += hdlc.h
140header-y += hdreg.h 140header-y += hdreg.h
141header-y += hid.h
142header-y += hiddev.h 141header-y += hiddev.h
142header-y += hid.h
143header-y += hidraw.h 143header-y += hidraw.h
144header-y += hpet.h 144header-y += hpet.h
145header-y += hsr_netlink.h 145header-y += hsr_netlink.h
@@ -151,7 +151,6 @@ header-y += i2o-dev.h
151header-y += i8k.h 151header-y += i8k.h
152header-y += icmp.h 152header-y += icmp.h
153header-y += icmpv6.h 153header-y += icmpv6.h
154header-y += if.h
155header-y += if_addr.h 154header-y += if_addr.h
156header-y += if_addrlabel.h 155header-y += if_addrlabel.h
157header-y += if_alg.h 156header-y += if_alg.h
@@ -165,6 +164,7 @@ header-y += if_ether.h
165header-y += if_fc.h 164header-y += if_fc.h
166header-y += if_fddi.h 165header-y += if_fddi.h
167header-y += if_frad.h 166header-y += if_frad.h
167header-y += if.h
168header-y += if_hippi.h 168header-y += if_hippi.h
169header-y += if_infiniband.h 169header-y += if_infiniband.h
170header-y += if_link.h 170header-y += if_link.h
@@ -182,40 +182,40 @@ header-y += if_tunnel.h
182header-y += if_vlan.h 182header-y += if_vlan.h
183header-y += if_x25.h 183header-y += if_x25.h
184header-y += igmp.h 184header-y += igmp.h
185header-y += in.h
186header-y += in6.h 185header-y += in6.h
187header-y += in_route.h
188header-y += inet_diag.h 186header-y += inet_diag.h
187header-y += in.h
189header-y += inotify.h 188header-y += inotify.h
190header-y += input.h 189header-y += input.h
190header-y += in_route.h
191header-y += ioctl.h 191header-y += ioctl.h
192header-y += ip.h
193header-y += ip6_tunnel.h 192header-y += ip6_tunnel.h
194header-y += ip_vs.h
195header-y += ipc.h 193header-y += ipc.h
194header-y += ip.h
196header-y += ipmi.h 195header-y += ipmi.h
197header-y += ipmi_msgdefs.h 196header-y += ipmi_msgdefs.h
198header-y += ipsec.h 197header-y += ipsec.h
199header-y += ipv6.h 198header-y += ipv6.h
200header-y += ipv6_route.h 199header-y += ipv6_route.h
200header-y += ip_vs.h
201header-y += ipx.h 201header-y += ipx.h
202header-y += irda.h 202header-y += irda.h
203header-y += irqnr.h 203header-y += irqnr.h
204header-y += isdn.h
205header-y += isdn_divertif.h 204header-y += isdn_divertif.h
206header-y += isdn_ppp.h 205header-y += isdn.h
207header-y += isdnif.h 206header-y += isdnif.h
207header-y += isdn_ppp.h
208header-y += iso_fs.h 208header-y += iso_fs.h
209header-y += ivtv.h
210header-y += ivtvfb.h 209header-y += ivtvfb.h
210header-y += ivtv.h
211header-y += ixjuser.h 211header-y += ixjuser.h
212header-y += jffs2.h 212header-y += jffs2.h
213header-y += joystick.h 213header-y += joystick.h
214header-y += kd.h
215header-y += kdev_t.h 214header-y += kdev_t.h
216header-y += kernel-page-flags.h 215header-y += kd.h
217header-y += kernel.h
218header-y += kernelcapi.h 216header-y += kernelcapi.h
217header-y += kernel.h
218header-y += kernel-page-flags.h
219header-y += kexec.h 219header-y += kexec.h
220header-y += keyboard.h 220header-y += keyboard.h
221header-y += keyctl.h 221header-y += keyctl.h
@@ -231,6 +231,7 @@ ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h \
231header-y += kvm_para.h 231header-y += kvm_para.h
232endif 232endif
233 233
234header-y += hw_breakpoint.h
234header-y += l2tp.h 235header-y += l2tp.h
235header-y += libc-compat.h 236header-y += libc-compat.h
236header-y += limits.h 237header-y += limits.h
@@ -256,43 +257,43 @@ header-y += mman.h
256header-y += mmtimer.h 257header-y += mmtimer.h
257header-y += mpls.h 258header-y += mpls.h
258header-y += mqueue.h 259header-y += mqueue.h
259header-y += mroute.h
260header-y += mroute6.h 260header-y += mroute6.h
261header-y += mroute.h
261header-y += msdos_fs.h 262header-y += msdos_fs.h
262header-y += msg.h 263header-y += msg.h
263header-y += mtio.h 264header-y += mtio.h
264header-y += n_r3964.h
265header-y += nbd.h 265header-y += nbd.h
266header-y += ncp.h
267header-y += ncp_fs.h 266header-y += ncp_fs.h
267header-y += ncp.h
268header-y += ncp_mount.h 268header-y += ncp_mount.h
269header-y += ncp_no.h 269header-y += ncp_no.h
270header-y += neighbour.h 270header-y += neighbour.h
271header-y += net.h
272header-y += net_dropmon.h
273header-y += net_tstamp.h
274header-y += netconf.h 271header-y += netconf.h
275header-y += netdevice.h 272header-y += netdevice.h
276header-y += netlink_diag.h 273header-y += net_dropmon.h
277header-y += netfilter.h
278header-y += netfilter_arp.h 274header-y += netfilter_arp.h
279header-y += netfilter_bridge.h 275header-y += netfilter_bridge.h
280header-y += netfilter_decnet.h 276header-y += netfilter_decnet.h
277header-y += netfilter.h
281header-y += netfilter_ipv4.h 278header-y += netfilter_ipv4.h
282header-y += netfilter_ipv6.h 279header-y += netfilter_ipv6.h
280header-y += net.h
281header-y += netlink_diag.h
283header-y += netlink.h 282header-y += netlink.h
284header-y += netrom.h 283header-y += netrom.h
284header-y += net_tstamp.h
285header-y += nfc.h 285header-y += nfc.h
286header-y += nfs.h
287header-y += nfs2.h 286header-y += nfs2.h
288header-y += nfs3.h 287header-y += nfs3.h
289header-y += nfs4.h 288header-y += nfs4.h
290header-y += nfs4_mount.h 289header-y += nfs4_mount.h
290header-y += nfsacl.h
291header-y += nfs_fs.h 291header-y += nfs_fs.h
292header-y += nfs.h
292header-y += nfs_idmap.h 293header-y += nfs_idmap.h
293header-y += nfs_mount.h 294header-y += nfs_mount.h
294header-y += nfsacl.h
295header-y += nl80211.h 295header-y += nl80211.h
296header-y += n_r3964.h
296header-y += nubus.h 297header-y += nubus.h
297header-y += nvme.h 298header-y += nvme.h
298header-y += nvram.h 299header-y += nvram.h
@@ -312,16 +313,16 @@ header-y += pfkeyv2.h
312header-y += pg.h 313header-y += pg.h
313header-y += phantom.h 314header-y += phantom.h
314header-y += phonet.h 315header-y += phonet.h
316header-y += pktcdvd.h
315header-y += pkt_cls.h 317header-y += pkt_cls.h
316header-y += pkt_sched.h 318header-y += pkt_sched.h
317header-y += pktcdvd.h
318header-y += pmu.h 319header-y += pmu.h
319header-y += poll.h 320header-y += poll.h
320header-y += posix_types.h 321header-y += posix_types.h
321header-y += ppdev.h 322header-y += ppdev.h
322header-y += ppp-comp.h 323header-y += ppp-comp.h
323header-y += ppp-ioctl.h
324header-y += ppp_defs.h 324header-y += ppp_defs.h
325header-y += ppp-ioctl.h
325header-y += pps.h 326header-y += pps.h
326header-y += prctl.h 327header-y += prctl.h
327header-y += psci.h 328header-y += psci.h
@@ -353,13 +354,13 @@ header-y += seccomp.h
353header-y += securebits.h 354header-y += securebits.h
354header-y += selinux_netlink.h 355header-y += selinux_netlink.h
355header-y += sem.h 356header-y += sem.h
356header-y += serial.h
357header-y += serial_core.h 357header-y += serial_core.h
358header-y += serial.h
358header-y += serial_reg.h 359header-y += serial_reg.h
359header-y += serio.h 360header-y += serio.h
360header-y += shm.h 361header-y += shm.h
361header-y += signal.h
362header-y += signalfd.h 362header-y += signalfd.h
363header-y += signal.h
363header-y += smiapp.h 364header-y += smiapp.h
364header-y += snmp.h 365header-y += snmp.h
365header-y += sock_diag.h 366header-y += sock_diag.h
@@ -368,8 +369,8 @@ header-y += sockios.h
368header-y += som.h 369header-y += som.h
369header-y += sonet.h 370header-y += sonet.h
370header-y += sonypi.h 371header-y += sonypi.h
371header-y += sound.h
372header-y += soundcard.h 372header-y += soundcard.h
373header-y += sound.h
373header-y += stat.h 374header-y += stat.h
374header-y += stddef.h 375header-y += stddef.h
375header-y += string.h 376header-y += string.h
@@ -388,11 +389,12 @@ header-y += time.h
388header-y += times.h 389header-y += times.h
389header-y += timex.h 390header-y += timex.h
390header-y += tiocl.h 391header-y += tiocl.h
391header-y += tipc.h
392header-y += tipc_config.h 392header-y += tipc_config.h
393header-y += tipc_netlink.h
394header-y += tipc.h
393header-y += toshiba.h 395header-y += toshiba.h
394header-y += tty.h
395header-y += tty_flags.h 396header-y += tty_flags.h
397header-y += tty.h
396header-y += types.h 398header-y += types.h
397header-y += udf_fs_i.h 399header-y += udf_fs_i.h
398header-y += udp.h 400header-y += udp.h
@@ -424,12 +426,12 @@ header-y += virtio_blk.h
424header-y += virtio_config.h 426header-y += virtio_config.h
425header-y += virtio_console.h 427header-y += virtio_console.h
426header-y += virtio_ids.h 428header-y += virtio_ids.h
427header-y += virtio_types.h
428header-y += virtio_net.h 429header-y += virtio_net.h
429header-y += virtio_pci.h 430header-y += virtio_pci.h
430header-y += virtio_ring.h 431header-y += virtio_ring.h
431header-y += virtio_rng.h 432header-y += virtio_rng.h
432header-y += virtio_scsi.h 433header-y += virtio_scsi.h
434header-y += virtio_types.h
433header-y += vm_sockets.h 435header-y += vm_sockets.h
434header-y += vt.h 436header-y += vt.h
435header-y += wait.h 437header-y += wait.h
@@ -440,6 +442,5 @@ header-y += wireless.h
440header-y += x25.h 442header-y += x25.h
441header-y += xattr.h 443header-y += xattr.h
442header-y += xfrm.h 444header-y += xfrm.h
443header-y += hw_breakpoint.h
444header-y += zorro.h 445header-y += zorro.h
445header-y += zorro_ids.h 446header-y += zorro_ids.h
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index d18316f9e9c4..45da7ec7d274 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -82,7 +82,7 @@ enum bpf_cmd {
82 82
83 /* create or update key/value pair in a given map 83 /* create or update key/value pair in a given map
84 * err = bpf(BPF_MAP_UPDATE_ELEM, union bpf_attr *attr, u32 size) 84 * err = bpf(BPF_MAP_UPDATE_ELEM, union bpf_attr *attr, u32 size)
85 * Using attr->map_fd, attr->key, attr->value 85 * Using attr->map_fd, attr->key, attr->value, attr->flags
86 * returns zero or negative error 86 * returns zero or negative error
87 */ 87 */
88 BPF_MAP_UPDATE_ELEM, 88 BPF_MAP_UPDATE_ELEM,
@@ -111,12 +111,20 @@ enum bpf_cmd {
111 111
112enum bpf_map_type { 112enum bpf_map_type {
113 BPF_MAP_TYPE_UNSPEC, 113 BPF_MAP_TYPE_UNSPEC,
114 BPF_MAP_TYPE_HASH,
115 BPF_MAP_TYPE_ARRAY,
114}; 116};
115 117
116enum bpf_prog_type { 118enum bpf_prog_type {
117 BPF_PROG_TYPE_UNSPEC, 119 BPF_PROG_TYPE_UNSPEC,
120 BPF_PROG_TYPE_SOCKET_FILTER,
118}; 121};
119 122
123/* flags for BPF_MAP_UPDATE_ELEM command */
124#define BPF_ANY 0 /* create new element or update existing */
125#define BPF_NOEXIST 1 /* create new element if it didn't exist */
126#define BPF_EXIST 2 /* update existing element */
127
120union bpf_attr { 128union bpf_attr {
121 struct { /* anonymous struct used by BPF_MAP_CREATE command */ 129 struct { /* anonymous struct used by BPF_MAP_CREATE command */
122 __u32 map_type; /* one of enum bpf_map_type */ 130 __u32 map_type; /* one of enum bpf_map_type */
@@ -132,6 +140,7 @@ union bpf_attr {
132 __aligned_u64 value; 140 __aligned_u64 value;
133 __aligned_u64 next_key; 141 __aligned_u64 next_key;
134 }; 142 };
143 __u64 flags;
135 }; 144 };
136 145
137 struct { /* anonymous struct used by BPF_PROG_LOAD command */ 146 struct { /* anonymous struct used by BPF_PROG_LOAD command */
@@ -150,6 +159,9 @@ union bpf_attr {
150 */ 159 */
151enum bpf_func_id { 160enum bpf_func_id {
152 BPF_FUNC_unspec, 161 BPF_FUNC_unspec,
162 BPF_FUNC_map_lookup_elem, /* void *map_lookup_elem(&map, &key) */
163 BPF_FUNC_map_update_elem, /* int map_update_elem(&map, &key, &value, flags) */
164 BPF_FUNC_map_delete_elem, /* int map_delete_elem(&map, &key) */
153 __BPF_FUNC_MAX_ID, 165 __BPF_FUNC_MAX_ID,
154}; 166};
155 167
diff --git a/include/uapi/linux/can/error.h b/include/uapi/linux/can/error.h
index c247446ab25a..1c508be9687f 100644
--- a/include/uapi/linux/can/error.h
+++ b/include/uapi/linux/can/error.h
@@ -71,6 +71,7 @@
71#define CAN_ERR_CRTL_TX_PASSIVE 0x20 /* reached error passive status TX */ 71#define CAN_ERR_CRTL_TX_PASSIVE 0x20 /* reached error passive status TX */
72 /* (at least one error counter exceeds */ 72 /* (at least one error counter exceeds */
73 /* the protocol-defined level of 127) */ 73 /* the protocol-defined level of 127) */
74#define CAN_ERR_CRTL_ACTIVE 0x40 /* recovered to error active state */
74 75
75/* error in CAN protocol (type) / data[2] */ 76/* error in CAN protocol (type) / data[2] */
76#define CAN_ERR_PROT_UNSPEC 0x00 /* unspecified */ 77#define CAN_ERR_PROT_UNSPEC 0x00 /* unspecified */
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 99b43056a6fe..5f66d9c2889d 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -534,6 +534,7 @@ struct ethtool_pauseparam {
534 * @ETH_SS_NTUPLE_FILTERS: Previously used with %ETHTOOL_GRXNTUPLE; 534 * @ETH_SS_NTUPLE_FILTERS: Previously used with %ETHTOOL_GRXNTUPLE;
535 * now deprecated 535 * now deprecated
536 * @ETH_SS_FEATURES: Device feature names 536 * @ETH_SS_FEATURES: Device feature names
537 * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
537 */ 538 */
538enum ethtool_stringset { 539enum ethtool_stringset {
539 ETH_SS_TEST = 0, 540 ETH_SS_TEST = 0,
@@ -541,6 +542,7 @@ enum ethtool_stringset {
541 ETH_SS_PRIV_FLAGS, 542 ETH_SS_PRIV_FLAGS,
542 ETH_SS_NTUPLE_FILTERS, 543 ETH_SS_NTUPLE_FILTERS,
543 ETH_SS_FEATURES, 544 ETH_SS_FEATURES,
545 ETH_SS_RSS_HASH_FUNCS,
544}; 546};
545 547
546/** 548/**
@@ -884,6 +886,8 @@ struct ethtool_rxfh_indir {
884 * @key_size: On entry, the array size of the user buffer for the hash key, 886 * @key_size: On entry, the array size of the user buffer for the hash key,
885 * which may be zero. On return from %ETHTOOL_GRSSH, the size of the 887 * which may be zero. On return from %ETHTOOL_GRSSH, the size of the
886 * hardware hash key. 888 * hardware hash key.
889 * @hfunc: Defines the current RSS hash function used by HW (or to be set to).
890 * Valid values are one of the %ETH_RSS_HASH_*.
887 * @rsvd: Reserved for future extensions. 891 * @rsvd: Reserved for future extensions.
888 * @rss_config: RX ring/queue index for each hash value i.e., indirection table 892 * @rss_config: RX ring/queue index for each hash value i.e., indirection table
889 * of @indir_size __u32 elements, followed by hash key of @key_size 893 * of @indir_size __u32 elements, followed by hash key of @key_size
@@ -893,14 +897,16 @@ struct ethtool_rxfh_indir {
893 * size should be returned. For %ETHTOOL_SRSSH, an @indir_size of 897 * size should be returned. For %ETHTOOL_SRSSH, an @indir_size of
894 * %ETH_RXFH_INDIR_NO_CHANGE means that indir table setting is not requested 898 * %ETH_RXFH_INDIR_NO_CHANGE means that indir table setting is not requested
895 * and a @indir_size of zero means the indir table should be reset to default 899 * and a @indir_size of zero means the indir table should be reset to default
896 * values. 900 * values. An hfunc of zero means that hash function setting is not requested.
897 */ 901 */
898struct ethtool_rxfh { 902struct ethtool_rxfh {
899 __u32 cmd; 903 __u32 cmd;
900 __u32 rss_context; 904 __u32 rss_context;
901 __u32 indir_size; 905 __u32 indir_size;
902 __u32 key_size; 906 __u32 key_size;
903 __u32 rsvd[2]; 907 __u8 hfunc;
908 __u8 rsvd8[3];
909 __u32 rsvd32;
904 __u32 rss_config[0]; 910 __u32 rss_config[0];
905}; 911};
906#define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff 912#define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff
@@ -1213,6 +1219,10 @@ enum ethtool_sfeatures_retval_bits {
1213#define SUPPORTED_40000baseCR4_Full (1 << 24) 1219#define SUPPORTED_40000baseCR4_Full (1 << 24)
1214#define SUPPORTED_40000baseSR4_Full (1 << 25) 1220#define SUPPORTED_40000baseSR4_Full (1 << 25)
1215#define SUPPORTED_40000baseLR4_Full (1 << 26) 1221#define SUPPORTED_40000baseLR4_Full (1 << 26)
1222#define SUPPORTED_56000baseKR4_Full (1 << 27)
1223#define SUPPORTED_56000baseCR4_Full (1 << 28)
1224#define SUPPORTED_56000baseSR4_Full (1 << 29)
1225#define SUPPORTED_56000baseLR4_Full (1 << 30)
1216 1226
1217#define ADVERTISED_10baseT_Half (1 << 0) 1227#define ADVERTISED_10baseT_Half (1 << 0)
1218#define ADVERTISED_10baseT_Full (1 << 1) 1228#define ADVERTISED_10baseT_Full (1 << 1)
@@ -1241,6 +1251,10 @@ enum ethtool_sfeatures_retval_bits {
1241#define ADVERTISED_40000baseCR4_Full (1 << 24) 1251#define ADVERTISED_40000baseCR4_Full (1 << 24)
1242#define ADVERTISED_40000baseSR4_Full (1 << 25) 1252#define ADVERTISED_40000baseSR4_Full (1 << 25)
1243#define ADVERTISED_40000baseLR4_Full (1 << 26) 1253#define ADVERTISED_40000baseLR4_Full (1 << 26)
1254#define ADVERTISED_56000baseKR4_Full (1 << 27)
1255#define ADVERTISED_56000baseCR4_Full (1 << 28)
1256#define ADVERTISED_56000baseSR4_Full (1 << 29)
1257#define ADVERTISED_56000baseLR4_Full (1 << 30)
1244 1258
1245/* The following are all involved in forcing a particular link 1259/* The following are all involved in forcing a particular link
1246 * mode for the device for setting things. When getting the 1260 * mode for the device for setting things. When getting the
@@ -1248,12 +1262,16 @@ enum ethtool_sfeatures_retval_bits {
1248 * it was forced up into this mode or autonegotiated. 1262 * it was forced up into this mode or autonegotiated.
1249 */ 1263 */
1250 1264
1251/* The forced speed, 10Mb, 100Mb, gigabit, 2.5Gb, 10GbE. */ 1265/* The forced speed, 10Mb, 100Mb, gigabit, [2.5|10|20|40|56]GbE. */
1252#define SPEED_10 10 1266#define SPEED_10 10
1253#define SPEED_100 100 1267#define SPEED_100 100
1254#define SPEED_1000 1000 1268#define SPEED_1000 1000
1255#define SPEED_2500 2500 1269#define SPEED_2500 2500
1256#define SPEED_10000 10000 1270#define SPEED_10000 10000
1271#define SPEED_20000 20000
1272#define SPEED_40000 40000
1273#define SPEED_56000 56000
1274
1257#define SPEED_UNKNOWN -1 1275#define SPEED_UNKNOWN -1
1258 1276
1259/* Duplex, half or full. */ 1277/* Duplex, half or full. */
@@ -1343,6 +1361,10 @@ enum ethtool_sfeatures_retval_bits {
1343#define ETH_MODULE_SFF_8079_LEN 256 1361#define ETH_MODULE_SFF_8079_LEN 256
1344#define ETH_MODULE_SFF_8472 0x2 1362#define ETH_MODULE_SFF_8472 0x2
1345#define ETH_MODULE_SFF_8472_LEN 512 1363#define ETH_MODULE_SFF_8472_LEN 512
1364#define ETH_MODULE_SFF_8636 0x3
1365#define ETH_MODULE_SFF_8636_LEN 256
1366#define ETH_MODULE_SFF_8436 0x4
1367#define ETH_MODULE_SFF_8436_LEN 256
1346 1368
1347/* Reset flags */ 1369/* Reset flags */
1348/* The reset() operation must clear the flags for the components which 1370/* The reset() operation must clear the flags for the components which
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index da17e456908d..b03ee8f62d3c 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -105,6 +105,7 @@ struct __fdb_entry {
105 105
106#define BRIDGE_MODE_VEB 0 /* Default loopback mode */ 106#define BRIDGE_MODE_VEB 0 /* Default loopback mode */
107#define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */ 107#define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */
108#define BRIDGE_MODE_UNDEF 0xFFFF /* mode undefined */
108 109
109/* Bridge management nested attributes 110/* Bridge management nested attributes
110 * [IFLA_AF_SPEC] = { 111 * [IFLA_AF_SPEC] = {
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 0bdb77e16875..f7d0d2d7173a 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -145,6 +145,7 @@ enum {
145 IFLA_CARRIER, 145 IFLA_CARRIER,
146 IFLA_PHYS_PORT_ID, 146 IFLA_PHYS_PORT_ID,
147 IFLA_CARRIER_CHANGES, 147 IFLA_CARRIER_CHANGES,
148 IFLA_PHYS_SWITCH_ID,
148 __IFLA_MAX 149 __IFLA_MAX
149}; 150};
150 151
@@ -243,6 +244,8 @@ enum {
243 IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ 244 IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */
244 IFLA_BRPORT_LEARNING, /* mac learning */ 245 IFLA_BRPORT_LEARNING, /* mac learning */
245 IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */ 246 IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
247 IFLA_BRPORT_PROXYARP, /* proxy ARP */
248 IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */
246 __IFLA_BRPORT_MAX 249 __IFLA_BRPORT_MAX
247}; 250};
248#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) 251#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -329,6 +332,21 @@ enum macvlan_macaddr_mode {
329 332
330#define MACVLAN_FLAG_NOPROMISC 1 333#define MACVLAN_FLAG_NOPROMISC 1
331 334
335/* IPVLAN section */
336enum {
337 IFLA_IPVLAN_UNSPEC,
338 IFLA_IPVLAN_MODE,
339 __IFLA_IPVLAN_MAX
340};
341
342#define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1)
343
344enum ipvlan_mode {
345 IPVLAN_MODE_L2 = 0,
346 IPVLAN_MODE_L3,
347 IPVLAN_MODE_MAX
348};
349
332/* VXLAN section */ 350/* VXLAN section */
333enum { 351enum {
334 IFLA_VXLAN_UNSPEC, 352 IFLA_VXLAN_UNSPEC,
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index 280d9e092283..bd3cc11a431f 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -69,6 +69,7 @@ enum tunnel_encap_types {
69 69
70#define TUNNEL_ENCAP_FLAG_CSUM (1<<0) 70#define TUNNEL_ENCAP_FLAG_CSUM (1<<0)
71#define TUNNEL_ENCAP_FLAG_CSUM6 (1<<1) 71#define TUNNEL_ENCAP_FLAG_CSUM6 (1<<1)
72#define TUNNEL_ENCAP_FLAG_REMCSUM (1<<2)
72 73
73/* SIT-mode i_flags */ 74/* SIT-mode i_flags */
74#define SIT_ISATAP 0x0001 75#define SIT_ISATAP 0x0001
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h
index efa2666f4b8a..e863d088b9a5 100644
--- a/include/uapi/linux/ipv6.h
+++ b/include/uapi/linux/ipv6.h
@@ -164,6 +164,7 @@ enum {
164 DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL, 164 DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL,
165 DEVCONF_SUPPRESS_FRAG_NDISC, 165 DEVCONF_SUPPRESS_FRAG_NDISC,
166 DEVCONF_ACCEPT_RA_FROM_LOCAL, 166 DEVCONF_ACCEPT_RA_FROM_LOCAL,
167 DEVCONF_USE_OPTIMISTIC,
167 DEVCONF_MAX 168 DEVCONF_MAX
168}; 169};
169 170
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
index 4a1d7e96dfe3..f3d77f9f1e0b 100644
--- a/include/uapi/linux/neighbour.h
+++ b/include/uapi/linux/neighbour.h
@@ -35,11 +35,11 @@ enum {
35 */ 35 */
36 36
37#define NTF_USE 0x01 37#define NTF_USE 0x01
38#define NTF_PROXY 0x08 /* == ATF_PUBL */
39#define NTF_ROUTER 0x80
40
41#define NTF_SELF 0x02 38#define NTF_SELF 0x02
42#define NTF_MASTER 0x04 39#define NTF_MASTER 0x04
40#define NTF_PROXY 0x08 /* == ATF_PUBL */
41#define NTF_EXT_LEARNED 0x10
42#define NTF_ROUTER 0x80
43 43
44/* 44/*
45 * Neighbor Cache Entry States. 45 * Neighbor Cache Entry States.
diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
index ff354021bb69..edbc888ceb51 100644
--- a/include/uapi/linux/net_tstamp.h
+++ b/include/uapi/linux/net_tstamp.h
@@ -23,8 +23,9 @@ enum {
23 SOF_TIMESTAMPING_OPT_ID = (1<<7), 23 SOF_TIMESTAMPING_OPT_ID = (1<<7),
24 SOF_TIMESTAMPING_TX_SCHED = (1<<8), 24 SOF_TIMESTAMPING_TX_SCHED = (1<<8),
25 SOF_TIMESTAMPING_TX_ACK = (1<<9), 25 SOF_TIMESTAMPING_TX_ACK = (1<<9),
26 SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
26 27
27 SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_TX_ACK, 28 SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_CMSG,
28 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | 29 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
29 SOF_TIMESTAMPING_LAST 30 SOF_TIMESTAMPING_LAST
30}; 31};
diff --git a/include/uapi/linux/netfilter/ipset/ip_set.h b/include/uapi/linux/netfilter/ipset/ip_set.h
index ca03119111a2..5ab4e60894cf 100644
--- a/include/uapi/linux/netfilter/ipset/ip_set.h
+++ b/include/uapi/linux/netfilter/ipset/ip_set.h
@@ -256,11 +256,17 @@ enum {
256 IPSET_COUNTER_GT, 256 IPSET_COUNTER_GT,
257}; 257};
258 258
259struct ip_set_counter_match { 259/* Backward compatibility for set match v3 */
260struct ip_set_counter_match0 {
260 __u8 op; 261 __u8 op;
261 __u64 value; 262 __u64 value;
262}; 263};
263 264
265struct ip_set_counter_match {
266 __aligned_u64 value;
267 __u8 op;
268};
269
264/* Interface to iptables/ip6tables */ 270/* Interface to iptables/ip6tables */
265 271
266#define SO_IP_SET 83 272#define SO_IP_SET 83
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index f31fe7b660a5..832bc46db78b 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -579,6 +579,7 @@ enum nft_exthdr_attributes {
579 * @NFT_META_CPU: cpu id through smp_processor_id() 579 * @NFT_META_CPU: cpu id through smp_processor_id()
580 * @NFT_META_IIFGROUP: packet input interface group 580 * @NFT_META_IIFGROUP: packet input interface group
581 * @NFT_META_OIFGROUP: packet output interface group 581 * @NFT_META_OIFGROUP: packet output interface group
582 * @NFT_META_CGROUP: socket control group (skb->sk->sk_classid)
582 */ 583 */
583enum nft_meta_keys { 584enum nft_meta_keys {
584 NFT_META_LEN, 585 NFT_META_LEN,
@@ -604,6 +605,7 @@ enum nft_meta_keys {
604 NFT_META_CPU, 605 NFT_META_CPU,
605 NFT_META_IIFGROUP, 606 NFT_META_IIFGROUP,
606 NFT_META_OIFGROUP, 607 NFT_META_OIFGROUP,
608 NFT_META_CGROUP,
607}; 609};
608 610
609/** 611/**
@@ -838,6 +840,22 @@ enum nft_masq_attributes {
838#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1) 840#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1)
839 841
840/** 842/**
843 * enum nft_redir_attributes - nf_tables redirect expression netlink attributes
844 *
845 * @NFTA_REDIR_REG_PROTO_MIN: source register of proto range start (NLA_U32: nft_registers)
846 * @NFTA_REDIR_REG_PROTO_MAX: source register of proto range end (NLA_U32: nft_registers)
847 * @NFTA_REDIR_FLAGS: NAT flags (see NF_NAT_RANGE_* in linux/netfilter/nf_nat.h) (NLA_U32)
848 */
849enum nft_redir_attributes {
850 NFTA_REDIR_UNSPEC,
851 NFTA_REDIR_REG_PROTO_MIN,
852 NFTA_REDIR_REG_PROTO_MAX,
853 NFTA_REDIR_FLAGS,
854 __NFTA_REDIR_MAX
855};
856#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
857
858/**
841 * enum nft_gen_attributes - nf_tables ruleset generation attributes 859 * enum nft_gen_attributes - nf_tables ruleset generation attributes
842 * 860 *
843 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32) 861 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32)
diff --git a/include/uapi/linux/netfilter/xt_set.h b/include/uapi/linux/netfilter/xt_set.h
index d6a1df1f2947..d4e02348384c 100644
--- a/include/uapi/linux/netfilter/xt_set.h
+++ b/include/uapi/linux/netfilter/xt_set.h
@@ -66,8 +66,8 @@ struct xt_set_info_target_v2 {
66 66
67struct xt_set_info_match_v3 { 67struct xt_set_info_match_v3 {
68 struct xt_set_info match_set; 68 struct xt_set_info match_set;
69 struct ip_set_counter_match packets; 69 struct ip_set_counter_match0 packets;
70 struct ip_set_counter_match bytes; 70 struct ip_set_counter_match0 bytes;
71 __u32 flags; 71 __u32 flags;
72}; 72};
73 73
@@ -81,4 +81,13 @@ struct xt_set_info_target_v3 {
81 __u32 timeout; 81 __u32 timeout;
82}; 82};
83 83
84/* Revision 4 match */
85
86struct xt_set_info_match_v4 {
87 struct xt_set_info match_set;
88 struct ip_set_counter_match packets;
89 struct ip_set_counter_match bytes;
90 __u32 flags;
91};
92
84#endif /*_XT_SET_H*/ 93#endif /*_XT_SET_H*/
diff --git a/include/uapi/linux/nfc.h b/include/uapi/linux/nfc.h
index 9b19b4461928..8119255feae4 100644
--- a/include/uapi/linux/nfc.h
+++ b/include/uapi/linux/nfc.h
@@ -116,6 +116,7 @@ enum nfc_commands {
116 NFC_EVENT_SE_TRANSACTION, 116 NFC_EVENT_SE_TRANSACTION,
117 NFC_CMD_GET_SE, 117 NFC_CMD_GET_SE,
118 NFC_CMD_SE_IO, 118 NFC_CMD_SE_IO,
119 NFC_CMD_ACTIVATE_TARGET,
119/* private: internal use only */ 120/* private: internal use only */
120 __NFC_CMD_AFTER_LAST 121 __NFC_CMD_AFTER_LAST
121}; 122};
@@ -196,15 +197,19 @@ enum nfc_sdp_attr {
196}; 197};
197#define NFC_SDP_ATTR_MAX (__NFC_SDP_ATTR_AFTER_LAST - 1) 198#define NFC_SDP_ATTR_MAX (__NFC_SDP_ATTR_AFTER_LAST - 1)
198 199
199#define NFC_DEVICE_NAME_MAXSIZE 8 200#define NFC_DEVICE_NAME_MAXSIZE 8
200#define NFC_NFCID1_MAXSIZE 10 201#define NFC_NFCID1_MAXSIZE 10
201#define NFC_NFCID2_MAXSIZE 8 202#define NFC_NFCID2_MAXSIZE 8
202#define NFC_NFCID3_MAXSIZE 10 203#define NFC_NFCID3_MAXSIZE 10
203#define NFC_SENSB_RES_MAXSIZE 12 204#define NFC_SENSB_RES_MAXSIZE 12
204#define NFC_SENSF_RES_MAXSIZE 18 205#define NFC_SENSF_RES_MAXSIZE 18
205#define NFC_GB_MAXSIZE 48 206#define NFC_ATR_REQ_MAXSIZE 64
206#define NFC_FIRMWARE_NAME_MAXSIZE 32 207#define NFC_ATR_RES_MAXSIZE 64
207#define NFC_ISO15693_UID_MAXSIZE 8 208#define NFC_ATR_REQ_GB_MAXSIZE 48
209#define NFC_ATR_RES_GB_MAXSIZE 47
210#define NFC_GB_MAXSIZE 48
211#define NFC_FIRMWARE_NAME_MAXSIZE 32
212#define NFC_ISO15693_UID_MAXSIZE 8
208 213
209/* NFC protocols */ 214/* NFC protocols */
210#define NFC_PROTO_JEWEL 1 215#define NFC_PROTO_JEWEL 1
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 4b28dc07bcb1..b37bd5a1cb82 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -227,7 +227,11 @@
227 * the interface identified by %NL80211_ATTR_IFINDEX. 227 * the interface identified by %NL80211_ATTR_IFINDEX.
228 * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC 228 * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
229 * or, if no MAC address given, all stations, on the interface identified 229 * or, if no MAC address given, all stations, on the interface identified
230 * by %NL80211_ATTR_IFINDEX. 230 * by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
231 * %NL80211_ATTR_REASON_CODE can optionally be used to specify which type
232 * of disconnection indication should be sent to the station
233 * (Deauthentication or Disassociation frame and reason code for that
234 * frame).
231 * 235 *
232 * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to 236 * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to
233 * destination %NL80211_ATTR_MAC on the interface identified by 237 * destination %NL80211_ATTR_MAC on the interface identified by
@@ -639,7 +643,18 @@
639 * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels 643 * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels
640 * independently of the userspace SME, send this event indicating 644 * independently of the userspace SME, send this event indicating
641 * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the 645 * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the
642 * attributes determining channel width. 646 * attributes determining channel width. This indication may also be
647 * sent when a remotely-initiated switch (e.g., when a STA receives a CSA
648 * from the remote AP) is completed;
649 *
650 * @NL80211_CMD_CH_SWITCH_STARTED_NOTIFY: Notify that a channel switch
651 * has been started on an interface, regardless of the initiator
652 * (ie. whether it was requested from a remote device or
653 * initiated on our own). It indicates that
654 * %NL80211_ATTR_IFINDEX will be on %NL80211_ATTR_WIPHY_FREQ
655 * after %NL80211_ATTR_CH_SWITCH_COUNT TBTT's. The userspace may
656 * decide to react to this indication by requesting other
657 * interfaces to change channel as well.
643 * 658 *
644 * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by 659 * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by
645 * its %NL80211_ATTR_WDEV identifier. It must have been created with 660 * its %NL80211_ATTR_WDEV identifier. It must have been created with
@@ -738,6 +753,27 @@
738 * before removing a station entry entirely, or before disassociating 753 * before removing a station entry entirely, or before disassociating
739 * or similar, cleanup will happen in the driver/device in this case. 754 * or similar, cleanup will happen in the driver/device in this case.
740 * 755 *
756 * @NL80211_CMD_GET_MPP: Get mesh path attributes for mesh proxy path to
757 * destination %NL80211_ATTR_MAC on the interface identified by
758 * %NL80211_ATTR_IFINDEX.
759 *
760 * @NL80211_CMD_JOIN_OCB: Join the OCB network. The center frequency and
761 * bandwidth of a channel must be given.
762 * @NL80211_CMD_LEAVE_OCB: Leave the OCB network -- no special arguments, the
763 * network is determined by the network interface.
764 *
765 * @NL80211_CMD_TDLS_CHANNEL_SWITCH: Start channel-switching with a TDLS peer,
766 * identified by the %NL80211_ATTR_MAC parameter. A target channel is
767 * provided via %NL80211_ATTR_WIPHY_FREQ and other attributes determining
768 * channel width/type. The target operating class is given via
769 * %NL80211_ATTR_OPER_CLASS.
770 * The driver is responsible for continually initiating channel-switching
771 * operations and returning to the base channel for communication with the
772 * AP.
773 * @NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH: Stop channel-switching with a TDLS
774 * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel
775 * when this command completes.
776 *
741 * @NL80211_CMD_MAX: highest used command number 777 * @NL80211_CMD_MAX: highest used command number
742 * @__NL80211_CMD_AFTER_LAST: internal use 778 * @__NL80211_CMD_AFTER_LAST: internal use
743 */ 779 */
@@ -912,6 +948,16 @@ enum nl80211_commands {
912 NL80211_CMD_ADD_TX_TS, 948 NL80211_CMD_ADD_TX_TS,
913 NL80211_CMD_DEL_TX_TS, 949 NL80211_CMD_DEL_TX_TS,
914 950
951 NL80211_CMD_GET_MPP,
952
953 NL80211_CMD_JOIN_OCB,
954 NL80211_CMD_LEAVE_OCB,
955
956 NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
957
958 NL80211_CMD_TDLS_CHANNEL_SWITCH,
959 NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
960
915 /* add new commands above here */ 961 /* add new commands above here */
916 962
917 /* used to define NL80211_CMD_MAX below */ 963 /* used to define NL80211_CMD_MAX below */
@@ -1606,9 +1652,9 @@ enum nl80211_commands {
1606 * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. 1652 * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32.
1607 * As specified in the &enum nl80211_tdls_peer_capability. 1653 * As specified in the &enum nl80211_tdls_peer_capability.
1608 * 1654 *
1609 * @NL80211_ATTR_IFACE_SOCKET_OWNER: flag attribute, if set during interface 1655 * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface
1610 * creation then the new interface will be owned by the netlink socket 1656 * creation then the new interface will be owned by the netlink socket
1611 * that created it and will be destroyed when the socket is closed 1657 * that created it and will be destroyed when the socket is closed.
1612 * 1658 *
1613 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is 1659 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
1614 * the TDLS link initiator. 1660 * the TDLS link initiator.
@@ -1638,6 +1684,11 @@ enum nl80211_commands {
1638 * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see 1684 * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see
1639 * &enum nl80211_smps_mode. 1685 * &enum nl80211_smps_mode.
1640 * 1686 *
1687 * @NL80211_ATTR_OPER_CLASS: operating class
1688 *
1689 * @NL80211_ATTR_MAC_MASK: MAC address mask
1690 *
1691 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
1641 * @NL80211_ATTR_MAX: highest attribute number currently defined 1692 * @NL80211_ATTR_MAX: highest attribute number currently defined
1642 * @__NL80211_ATTR_AFTER_LAST: internal use 1693 * @__NL80211_ATTR_AFTER_LAST: internal use
1643 */ 1694 */
@@ -1973,7 +2024,7 @@ enum nl80211_attrs {
1973 2024
1974 NL80211_ATTR_TDLS_PEER_CAPABILITY, 2025 NL80211_ATTR_TDLS_PEER_CAPABILITY,
1975 2026
1976 NL80211_ATTR_IFACE_SOCKET_OWNER, 2027 NL80211_ATTR_SOCKET_OWNER,
1977 2028
1978 NL80211_ATTR_CSA_C_OFFSETS_TX, 2029 NL80211_ATTR_CSA_C_OFFSETS_TX,
1979 NL80211_ATTR_MAX_CSA_COUNTERS, 2030 NL80211_ATTR_MAX_CSA_COUNTERS,
@@ -1990,15 +2041,21 @@ enum nl80211_attrs {
1990 2041
1991 NL80211_ATTR_SMPS_MODE, 2042 NL80211_ATTR_SMPS_MODE,
1992 2043
2044 NL80211_ATTR_OPER_CLASS,
2045
2046 NL80211_ATTR_MAC_MASK,
2047
1993 /* add attributes here, update the policy in nl80211.c */ 2048 /* add attributes here, update the policy in nl80211.c */
1994 2049
1995 __NL80211_ATTR_AFTER_LAST, 2050 __NL80211_ATTR_AFTER_LAST,
2051 NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
1996 NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 2052 NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
1997}; 2053};
1998 2054
1999/* source-level API compatibility */ 2055/* source-level API compatibility */
2000#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION 2056#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
2001#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG 2057#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
2058#define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
2002 2059
2003/* 2060/*
2004 * Allow user space programs to use #ifdef on new attributes by defining them 2061 * Allow user space programs to use #ifdef on new attributes by defining them
@@ -2064,6 +2121,8 @@ enum nl80211_attrs {
2064 * and therefore can't be created in the normal ways, use the 2121 * and therefore can't be created in the normal ways, use the
2065 * %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE 2122 * %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE
2066 * commands to create and destroy one 2123 * commands to create and destroy one
2124 * @NL80211_IF_TYPE_OCB: Outside Context of a BSS
2125 * This mode corresponds to the MIB variable dot11OCBActivated=true
2067 * @NL80211_IFTYPE_MAX: highest interface type number currently defined 2126 * @NL80211_IFTYPE_MAX: highest interface type number currently defined
2068 * @NUM_NL80211_IFTYPES: number of defined interface types 2127 * @NUM_NL80211_IFTYPES: number of defined interface types
2069 * 2128 *
@@ -2083,6 +2142,7 @@ enum nl80211_iftype {
2083 NL80211_IFTYPE_P2P_CLIENT, 2142 NL80211_IFTYPE_P2P_CLIENT,
2084 NL80211_IFTYPE_P2P_GO, 2143 NL80211_IFTYPE_P2P_GO,
2085 NL80211_IFTYPE_P2P_DEVICE, 2144 NL80211_IFTYPE_P2P_DEVICE,
2145 NL80211_IFTYPE_OCB,
2086 2146
2087 /* keep last */ 2147 /* keep last */
2088 NUM_NL80211_IFTYPES, 2148 NUM_NL80211_IFTYPES,
@@ -2631,6 +2691,11 @@ enum nl80211_sched_scan_match_attr {
2631 * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated 2691 * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated
2632 * base on contiguous rules and wider channels will be allowed to cross 2692 * base on contiguous rules and wider channels will be allowed to cross
2633 * multiple contiguous/overlapping frequency ranges. 2693 * multiple contiguous/overlapping frequency ranges.
2694 * @NL80211_RRF_GO_CONCURRENT: See &NL80211_FREQUENCY_ATTR_GO_CONCURRENT
2695 * @NL80211_RRF_NO_HT40MINUS: channels can't be used in HT40- operation
2696 * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
2697 * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
2698 * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
2634 */ 2699 */
2635enum nl80211_reg_rule_flags { 2700enum nl80211_reg_rule_flags {
2636 NL80211_RRF_NO_OFDM = 1<<0, 2701 NL80211_RRF_NO_OFDM = 1<<0,
@@ -2643,11 +2708,18 @@ enum nl80211_reg_rule_flags {
2643 NL80211_RRF_NO_IR = 1<<7, 2708 NL80211_RRF_NO_IR = 1<<7,
2644 __NL80211_RRF_NO_IBSS = 1<<8, 2709 __NL80211_RRF_NO_IBSS = 1<<8,
2645 NL80211_RRF_AUTO_BW = 1<<11, 2710 NL80211_RRF_AUTO_BW = 1<<11,
2711 NL80211_RRF_GO_CONCURRENT = 1<<12,
2712 NL80211_RRF_NO_HT40MINUS = 1<<13,
2713 NL80211_RRF_NO_HT40PLUS = 1<<14,
2714 NL80211_RRF_NO_80MHZ = 1<<15,
2715 NL80211_RRF_NO_160MHZ = 1<<16,
2646}; 2716};
2647 2717
2648#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR 2718#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
2649#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR 2719#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
2650#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR 2720#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
2721#define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS |\
2722 NL80211_RRF_NO_HT40PLUS)
2651 2723
2652/* For backport compatibility with older userspace */ 2724/* For backport compatibility with older userspace */
2653#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS) 2725#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
@@ -3379,6 +3451,8 @@ enum nl80211_ps_state {
3379 * interval in which %NL80211_ATTR_CQM_TXE_PKTS and 3451 * interval in which %NL80211_ATTR_CQM_TXE_PKTS and
3380 * %NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an 3452 * %NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an
3381 * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. 3453 * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting.
3454 * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon
3455 * loss event
3382 * @__NL80211_ATTR_CQM_AFTER_LAST: internal 3456 * @__NL80211_ATTR_CQM_AFTER_LAST: internal
3383 * @NL80211_ATTR_CQM_MAX: highest key attribute 3457 * @NL80211_ATTR_CQM_MAX: highest key attribute
3384 */ 3458 */
@@ -3391,6 +3465,7 @@ enum nl80211_attr_cqm {
3391 NL80211_ATTR_CQM_TXE_RATE, 3465 NL80211_ATTR_CQM_TXE_RATE,
3392 NL80211_ATTR_CQM_TXE_PKTS, 3466 NL80211_ATTR_CQM_TXE_PKTS,
3393 NL80211_ATTR_CQM_TXE_INTVL, 3467 NL80211_ATTR_CQM_TXE_INTVL,
3468 NL80211_ATTR_CQM_BEACON_LOSS_EVENT,
3394 3469
3395 /* keep last */ 3470 /* keep last */
3396 __NL80211_ATTR_CQM_AFTER_LAST, 3471 __NL80211_ATTR_CQM_AFTER_LAST,
@@ -3403,9 +3478,7 @@ enum nl80211_attr_cqm {
3403 * configured threshold 3478 * configured threshold
3404 * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the 3479 * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the
3405 * configured threshold 3480 * configured threshold
3406 * @NL80211_CQM_RSSI_BEACON_LOSS_EVENT: The device experienced beacon loss. 3481 * @NL80211_CQM_RSSI_BEACON_LOSS_EVENT: (reserved, never sent)
3407 * (Note that deauth/disassoc will still follow if the AP is not
3408 * available. This event might get used as roaming event, etc.)
3409 */ 3482 */
3410enum nl80211_cqm_rssi_threshold_event { 3483enum nl80211_cqm_rssi_threshold_event {
3411 NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW, 3484 NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
@@ -3545,6 +3618,25 @@ struct nl80211_pattern_support {
3545 * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only, 3618 * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only,
3546 * the TCP connection ran out of tokens to use for data to send to the 3619 * the TCP connection ran out of tokens to use for data to send to the
3547 * service 3620 * service
3621 * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network
3622 * is detected. This is a nested attribute that contains the
3623 * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It
3624 * specifies how the scan is performed (e.g. the interval and the
3625 * channels to scan) as well as the scan results that will
3626 * trigger a wake (i.e. the matchsets).
3627 * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute
3628 * containing an array with information about what triggered the
3629 * wake up. If no elements are present in the array, it means
3630 * that the information is not available. If more than one
3631 * element is present, it means that more than one match
3632 * occurred.
3633 * Each element in the array is a nested attribute that contains
3634 * one optional %NL80211_ATTR_SSID attribute and one optional
3635 * %NL80211_ATTR_SCAN_FREQUENCIES attribute. At least one of
3636 * these attributes must be present. If
3637 * %NL80211_ATTR_SCAN_FREQUENCIES contains more than one
3638 * frequency, it means that the match occurred in more than one
3639 * channel.
3548 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers 3640 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
3549 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number 3641 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
3550 * 3642 *
@@ -3570,6 +3662,8 @@ enum nl80211_wowlan_triggers {
3570 NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH, 3662 NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH,
3571 NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST, 3663 NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST,
3572 NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS, 3664 NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
3665 NL80211_WOWLAN_TRIG_NET_DETECT,
3666 NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS,
3573 3667
3574 /* keep last */ 3668 /* keep last */
3575 NUM_NL80211_WOWLAN_TRIG, 3669 NUM_NL80211_WOWLAN_TRIG,
@@ -4042,6 +4136,27 @@ enum nl80211_ap_sme_features {
4042 * multiplexing powersave, ie. can turn off all but one chain 4136 * multiplexing powersave, ie. can turn off all but one chain
4043 * and then wake the rest up as required after, for example, 4137 * and then wake the rest up as required after, for example,
4044 * rts/cts handshake. 4138 * rts/cts handshake.
4139 * @NL80211_FEATURE_SUPPORTS_WMM_ADMISSION: the device supports setting up WMM
4140 * TSPEC sessions (TID aka TSID 0-7) with the %NL80211_CMD_ADD_TX_TS
4141 * command. Standard IEEE 802.11 TSPEC setup is not yet supported, it
4142 * needs to be able to handle Block-Ack agreements and other things.
4143 * @NL80211_FEATURE_MAC_ON_CREATE: Device supports configuring
4144 * the vif's MAC address upon creation.
4145 * See 'macaddr' field in the vif_params (cfg80211.h).
4146 * @NL80211_FEATURE_TDLS_CHANNEL_SWITCH: Driver supports channel switching when
4147 * operating as a TDLS peer.
4148 * @NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR: This device/driver supports using a
4149 * random MAC address during scan (if the device is unassociated); the
4150 * %NL80211_SCAN_FLAG_RANDOM_ADDR flag may be set for scans and the MAC
4151 * address mask/value will be used.
4152 * @NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR: This device/driver supports
4153 * using a random MAC address for every scan iteration during scheduled
4154 * scan (while not associated), the %NL80211_SCAN_FLAG_RANDOM_ADDR may
4155 * be set for scheduled scan and the MAC address mask/value will be used.
4156 * @NL80211_FEATURE_ND_RANDOM_MAC_ADDR: This device/driver supports using a
4157 * random MAC address for every scan iteration during "net detect", i.e.
4158 * scan in unassociated WoWLAN, the %NL80211_SCAN_FLAG_RANDOM_ADDR may
4159 * be set for scheduled scan and the MAC address mask/value will be used.
4045 */ 4160 */
4046enum nl80211_feature_flags { 4161enum nl80211_feature_flags {
4047 NL80211_FEATURE_SK_TX_STATUS = 1 << 0, 4162 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -4070,6 +4185,12 @@ enum nl80211_feature_flags {
4070 NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23, 4185 NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23,
4071 NL80211_FEATURE_STATIC_SMPS = 1 << 24, 4186 NL80211_FEATURE_STATIC_SMPS = 1 << 24,
4072 NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25, 4187 NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25,
4188 NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 1 << 26,
4189 NL80211_FEATURE_MAC_ON_CREATE = 1 << 27,
4190 NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
4191 NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
4192 NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
4193 NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
4073}; 4194};
4074 4195
4075/** 4196/**
@@ -4118,11 +4239,21 @@ enum nl80211_connect_failed_reason {
4118 * dangerous because will destroy stations performance as a lot of frames 4239 * dangerous because will destroy stations performance as a lot of frames
4119 * will be lost while scanning off-channel, therefore it must be used only 4240 * will be lost while scanning off-channel, therefore it must be used only
4120 * when really needed 4241 * when really needed
4242 * @NL80211_SCAN_FLAG_RANDOM_ADDR: use a random MAC address for this scan (or
4243 * for scheduled scan: a different one for every scan iteration). When the
4244 * flag is set, depending on device capabilities the @NL80211_ATTR_MAC and
4245 * @NL80211_ATTR_MAC_MASK attributes may also be given in which case only
4246 * the masked bits will be preserved from the MAC address and the remainder
4247 * randomised. If the attributes are not given full randomisation (46 bits,
4248 * locally administered 1, multicast 0) is assumed.
4249 * This flag must not be requested when the feature isn't supported, check
4250 * the nl80211 feature flags for the device.
4121 */ 4251 */
4122enum nl80211_scan_flags { 4252enum nl80211_scan_flags {
4123 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, 4253 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
4124 NL80211_SCAN_FLAG_FLUSH = 1<<1, 4254 NL80211_SCAN_FLAG_FLUSH = 1<<1,
4125 NL80211_SCAN_FLAG_AP = 1<<2, 4255 NL80211_SCAN_FLAG_AP = 1<<2,
4256 NL80211_SCAN_FLAG_RANDOM_ADDR = 1<<3,
4126}; 4257};
4127 4258
4128/** 4259/**
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 435eabc5ffaa..3a6dcaa359b7 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -157,6 +157,11 @@ enum ovs_packet_cmd {
157 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an 157 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an
158 * %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content 158 * %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content
159 * specified there. 159 * specified there.
160 * @OVS_PACKET_ATTR_EGRESS_TUN_KEY: Present for an %OVS_PACKET_CMD_ACTION
161 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an
162 * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the
163 * output port is actually a tunnel port. Contains the output tunnel key
164 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes.
160 * 165 *
161 * These attributes follow the &struct ovs_header within the Generic Netlink 166 * These attributes follow the &struct ovs_header within the Generic Netlink
162 * payload for %OVS_PACKET_* commands. 167 * payload for %OVS_PACKET_* commands.
@@ -167,6 +172,8 @@ enum ovs_packet_attr {
167 OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */ 172 OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */
168 OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ 173 OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
169 OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */ 174 OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */
175 OVS_PACKET_ATTR_EGRESS_TUN_KEY, /* Nested OVS_TUNNEL_KEY_ATTR_*
176 attributes. */
170 __OVS_PACKET_ATTR_MAX 177 __OVS_PACKET_ATTR_MAX
171}; 178};
172 179
@@ -293,6 +300,9 @@ enum ovs_key_attr {
293 OVS_KEY_ATTR_DP_HASH, /* u32 hash value. Value 0 indicates the hash 300 OVS_KEY_ATTR_DP_HASH, /* u32 hash value. Value 0 indicates the hash
294 is not computed by the datapath. */ 301 is not computed by the datapath. */
295 OVS_KEY_ATTR_RECIRC_ID, /* u32 recirc id */ 302 OVS_KEY_ATTR_RECIRC_ID, /* u32 recirc id */
303 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls.
304 * The implementation may restrict
305 * the accepted length of the array. */
296 306
297#ifdef __KERNEL__ 307#ifdef __KERNEL__
298 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ovs_tunnel_info */ 308 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ovs_tunnel_info */
@@ -312,6 +322,8 @@ enum ovs_tunnel_key_attr {
312 OVS_TUNNEL_KEY_ATTR_CSUM, /* No argument. CSUM packet. */ 322 OVS_TUNNEL_KEY_ATTR_CSUM, /* No argument. CSUM packet. */
313 OVS_TUNNEL_KEY_ATTR_OAM, /* No argument. OAM frame. */ 323 OVS_TUNNEL_KEY_ATTR_OAM, /* No argument. OAM frame. */
314 OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */ 324 OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */
325 OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */
326 OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */
315 __OVS_TUNNEL_KEY_ATTR_MAX 327 __OVS_TUNNEL_KEY_ATTR_MAX
316}; 328};
317 329
@@ -340,6 +352,10 @@ struct ovs_key_ethernet {
340 __u8 eth_dst[ETH_ALEN]; 352 __u8 eth_dst[ETH_ALEN];
341}; 353};
342 354
355struct ovs_key_mpls {
356 __be32 mpls_lse;
357};
358
343struct ovs_key_ipv4 { 359struct ovs_key_ipv4 {
344 __be32 ipv4_src; 360 __be32 ipv4_src;
345 __be32 ipv4_dst; 361 __be32 ipv4_dst;
@@ -393,9 +409,9 @@ struct ovs_key_arp {
393}; 409};
394 410
395struct ovs_key_nd { 411struct ovs_key_nd {
396 __u32 nd_target[4]; 412 __be32 nd_target[4];
397 __u8 nd_sll[ETH_ALEN]; 413 __u8 nd_sll[ETH_ALEN];
398 __u8 nd_tll[ETH_ALEN]; 414 __u8 nd_tll[ETH_ALEN];
399}; 415};
400 416
401/** 417/**
@@ -441,6 +457,8 @@ enum ovs_flow_attr {
441 OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */ 457 OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */
442 OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */ 458 OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */
443 OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */ 459 OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
460 OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error
461 * logging should be suppressed. */
444 __OVS_FLOW_ATTR_MAX 462 __OVS_FLOW_ATTR_MAX
445}; 463};
446 464
@@ -473,17 +491,34 @@ enum ovs_sample_attr {
473 * message should be sent. Required. 491 * message should be sent. Required.
474 * @OVS_USERSPACE_ATTR_USERDATA: If present, its variable-length argument is 492 * @OVS_USERSPACE_ATTR_USERDATA: If present, its variable-length argument is
475 * copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA. 493 * copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA.
494 * @OVS_USERSPACE_ATTR_EGRESS_TUN_PORT: If present, u32 output port to get
495 * tunnel info.
476 */ 496 */
477enum ovs_userspace_attr { 497enum ovs_userspace_attr {
478 OVS_USERSPACE_ATTR_UNSPEC, 498 OVS_USERSPACE_ATTR_UNSPEC,
479 OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */ 499 OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */
480 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */ 500 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
501 OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port
502 * to get tunnel info. */
481 __OVS_USERSPACE_ATTR_MAX 503 __OVS_USERSPACE_ATTR_MAX
482}; 504};
483 505
484#define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1) 506#define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
485 507
486/** 508/**
509 * struct ovs_action_push_mpls - %OVS_ACTION_ATTR_PUSH_MPLS action argument.
510 * @mpls_lse: MPLS label stack entry to push.
511 * @mpls_ethertype: Ethertype to set in the encapsulating ethernet frame.
512 *
513 * The only values @mpls_ethertype should ever be given are %ETH_P_MPLS_UC and
514 * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected.
515 */
516struct ovs_action_push_mpls {
517 __be32 mpls_lse;
518 __be16 mpls_ethertype; /* Either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC */
519};
520
521/**
487 * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument. 522 * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument.
488 * @vlan_tpid: Tag protocol identifier (TPID) to push. 523 * @vlan_tpid: Tag protocol identifier (TPID) to push.
489 * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set 524 * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set
@@ -534,6 +569,15 @@ struct ovs_action_hash {
534 * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. 569 * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet.
535 * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in 570 * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in
536 * the nested %OVS_SAMPLE_ATTR_* attributes. 571 * the nested %OVS_SAMPLE_ATTR_* attributes.
572 * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the
573 * top of the packets MPLS label stack. Set the ethertype of the
574 * encapsulating frame to either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC to
575 * indicate the new packet contents.
576 * @OVS_ACTION_ATTR_POP_MPLS: Pop an MPLS label stack entry off of the
577 * packet's MPLS label stack. Set the encapsulating frame's ethertype to
578 * indicate the new packet contents. This could potentially still be
579 * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there
580 * is no MPLS label stack, as determined by ethertype, no action is taken.
537 * 581 *
538 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all 582 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
539 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment 583 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -550,6 +594,9 @@ enum ovs_action_attr {
550 OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */ 594 OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */
551 OVS_ACTION_ATTR_RECIRC, /* u32 recirc_id. */ 595 OVS_ACTION_ATTR_RECIRC, /* u32 recirc_id. */
552 OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */ 596 OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */
597 OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */
598 OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */
599
553 __OVS_ACTION_ATTR_MAX 600 __OVS_ACTION_ATTR_MAX
554}; 601};
555 602
diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
index eb0f1a554d7b..9c9b8b4480cd 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -235,6 +235,7 @@ enum {
235#define RTPROT_NTK 15 /* Netsukuku */ 235#define RTPROT_NTK 15 /* Netsukuku */
236#define RTPROT_DHCP 16 /* DHCP client */ 236#define RTPROT_DHCP 16 /* DHCP client */
237#define RTPROT_MROUTED 17 /* Multicast daemon */ 237#define RTPROT_MROUTED 17 /* Multicast daemon */
238#define RTPROT_BABEL 42 /* Babel daemon */
238 239
239/* rtm_scope 240/* rtm_scope
240 241
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
index df40137f33dd..b22224100011 100644
--- a/include/uapi/linux/snmp.h
+++ b/include/uapi/linux/snmp.h
@@ -156,6 +156,7 @@ enum
156 UDP_MIB_RCVBUFERRORS, /* RcvbufErrors */ 156 UDP_MIB_RCVBUFERRORS, /* RcvbufErrors */
157 UDP_MIB_SNDBUFERRORS, /* SndbufErrors */ 157 UDP_MIB_SNDBUFERRORS, /* SndbufErrors */
158 UDP_MIB_CSUMERRORS, /* InCsumErrors */ 158 UDP_MIB_CSUMERRORS, /* InCsumErrors */
159 UDP_MIB_IGNOREDMULTI, /* IgnoredMulti */
159 __UDP_MIB_MAX 160 __UDP_MIB_MAX
160}; 161};
161 162
@@ -265,6 +266,10 @@ enum
265 LINUX_MIB_TCPWANTZEROWINDOWADV, /* TCPWantZeroWindowAdv */ 266 LINUX_MIB_TCPWANTZEROWINDOWADV, /* TCPWantZeroWindowAdv */
266 LINUX_MIB_TCPSYNRETRANS, /* TCPSynRetrans */ 267 LINUX_MIB_TCPSYNRETRANS, /* TCPSynRetrans */
267 LINUX_MIB_TCPORIGDATASENT, /* TCPOrigDataSent */ 268 LINUX_MIB_TCPORIGDATASENT, /* TCPOrigDataSent */
269 LINUX_MIB_TCPHYSTARTTRAINDETECT, /* TCPHystartTrainDetect */
270 LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */
271 LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */
272 LINUX_MIB_TCPHYSTARTDELAYCWND, /* TCPHystartDelayCwnd */
268 __LINUX_MIB_MAX 273 __LINUX_MIB_MAX
269}; 274};
270 275
diff --git a/include/uapi/linux/tc_act/Kbuild b/include/uapi/linux/tc_act/Kbuild
index 56f121605c99..b057da2b87a4 100644
--- a/include/uapi/linux/tc_act/Kbuild
+++ b/include/uapi/linux/tc_act/Kbuild
@@ -7,3 +7,4 @@ header-y += tc_mirred.h
7header-y += tc_nat.h 7header-y += tc_nat.h
8header-y += tc_pedit.h 8header-y += tc_pedit.h
9header-y += tc_skbedit.h 9header-y += tc_skbedit.h
10header-y += tc_vlan.h
diff --git a/include/uapi/linux/tc_act/tc_vlan.h b/include/uapi/linux/tc_act/tc_vlan.h
new file mode 100644
index 000000000000..f7b8d448b960
--- /dev/null
+++ b/include/uapi/linux/tc_act/tc_vlan.h
@@ -0,0 +1,35 @@
1/*
2 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 */
9
10#ifndef __LINUX_TC_VLAN_H
11#define __LINUX_TC_VLAN_H
12
13#include <linux/pkt_cls.h>
14
15#define TCA_ACT_VLAN 12
16
17#define TCA_VLAN_ACT_POP 1
18#define TCA_VLAN_ACT_PUSH 2
19
20struct tc_vlan {
21 tc_gen;
22 int v_action;
23};
24
25enum {
26 TCA_VLAN_UNSPEC,
27 TCA_VLAN_TM,
28 TCA_VLAN_PARMS,
29 TCA_VLAN_PUSH_VLAN_ID,
30 TCA_VLAN_PUSH_VLAN_PROTOCOL,
31 __TCA_VLAN_MAX,
32};
33#define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1)
34
35#endif
diff --git a/include/uapi/linux/tipc_netlink.h b/include/uapi/linux/tipc_netlink.h
new file mode 100644
index 000000000000..8d723824ad69
--- /dev/null
+++ b/include/uapi/linux/tipc_netlink.h
@@ -0,0 +1,244 @@
1/*
2 * Copyright (c) 2014, Ericsson AB
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. Neither the names of the copyright holders nor the names of its
14 * contributors may be used to endorse or promote products derived from
15 * this software without specific prior written permission.
16 *
17 * Alternatively, this software may be distributed under the terms of the
18 * GNU General Public License ("GPL") version 2 as published by the Free
19 * Software Foundation.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 */
33
34#ifndef _LINUX_TIPC_NETLINK_H_
35#define _LINUX_TIPC_NETLINK_H_
36
37#define TIPC_GENL_V2_NAME "TIPCv2"
38#define TIPC_GENL_V2_VERSION 0x1
39
40/* Netlink commands */
41enum {
42 TIPC_NL_UNSPEC,
43 TIPC_NL_LEGACY,
44 TIPC_NL_BEARER_DISABLE,
45 TIPC_NL_BEARER_ENABLE,
46 TIPC_NL_BEARER_GET,
47 TIPC_NL_BEARER_SET,
48 TIPC_NL_SOCK_GET,
49 TIPC_NL_PUBL_GET,
50 TIPC_NL_LINK_GET,
51 TIPC_NL_LINK_SET,
52 TIPC_NL_LINK_RESET_STATS,
53 TIPC_NL_MEDIA_GET,
54 TIPC_NL_MEDIA_SET,
55 TIPC_NL_NODE_GET,
56 TIPC_NL_NET_GET,
57 TIPC_NL_NET_SET,
58 TIPC_NL_NAME_TABLE_GET,
59
60 __TIPC_NL_CMD_MAX,
61 TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
62};
63
64/* Top level netlink attributes */
65enum {
66 TIPC_NLA_UNSPEC,
67 TIPC_NLA_BEARER, /* nest */
68 TIPC_NLA_SOCK, /* nest */
69 TIPC_NLA_PUBL, /* nest */
70 TIPC_NLA_LINK, /* nest */
71 TIPC_NLA_MEDIA, /* nest */
72 TIPC_NLA_NODE, /* nest */
73 TIPC_NLA_NET, /* nest */
74 TIPC_NLA_NAME_TABLE, /* nest */
75
76 __TIPC_NLA_MAX,
77 TIPC_NLA_MAX = __TIPC_NLA_MAX - 1
78};
79
80/* Bearer info */
81enum {
82 TIPC_NLA_BEARER_UNSPEC,
83 TIPC_NLA_BEARER_NAME, /* string */
84 TIPC_NLA_BEARER_PROP, /* nest */
85 TIPC_NLA_BEARER_DOMAIN, /* u32 */
86
87 __TIPC_NLA_BEARER_MAX,
88 TIPC_NLA_BEARER_MAX = __TIPC_NLA_BEARER_MAX - 1
89};
90
91/* Socket info */
92enum {
93 TIPC_NLA_SOCK_UNSPEC,
94 TIPC_NLA_SOCK_ADDR, /* u32 */
95 TIPC_NLA_SOCK_REF, /* u32 */
96 TIPC_NLA_SOCK_CON, /* nest */
97 TIPC_NLA_SOCK_HAS_PUBL, /* flag */
98
99 __TIPC_NLA_SOCK_MAX,
100 TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
101};
102
103/* Link info */
104enum {
105 TIPC_NLA_LINK_UNSPEC,
106 TIPC_NLA_LINK_NAME, /* string */
107 TIPC_NLA_LINK_DEST, /* u32 */
108 TIPC_NLA_LINK_MTU, /* u32 */
109 TIPC_NLA_LINK_BROADCAST, /* flag */
110 TIPC_NLA_LINK_UP, /* flag */
111 TIPC_NLA_LINK_ACTIVE, /* flag */
112 TIPC_NLA_LINK_PROP, /* nest */
113 TIPC_NLA_LINK_STATS, /* nest */
114 TIPC_NLA_LINK_RX, /* u32 */
115 TIPC_NLA_LINK_TX, /* u32 */
116
117 __TIPC_NLA_LINK_MAX,
118 TIPC_NLA_LINK_MAX = __TIPC_NLA_LINK_MAX - 1
119};
120
121/* Media info */
122enum {
123 TIPC_NLA_MEDIA_UNSPEC,
124 TIPC_NLA_MEDIA_NAME, /* string */
125 TIPC_NLA_MEDIA_PROP, /* nest */
126
127 __TIPC_NLA_MEDIA_MAX,
128 TIPC_NLA_MEDIA_MAX = __TIPC_NLA_MEDIA_MAX - 1
129};
130
131/* Node info */
132enum {
133 TIPC_NLA_NODE_UNSPEC,
134 TIPC_NLA_NODE_ADDR, /* u32 */
135 TIPC_NLA_NODE_UP, /* flag */
136
137 __TIPC_NLA_NODE_MAX,
138 TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
139};
140
141/* Net info */
142enum {
143 TIPC_NLA_NET_UNSPEC,
144 TIPC_NLA_NET_ID, /* u32 */
145 TIPC_NLA_NET_ADDR, /* u32 */
146
147 __TIPC_NLA_NET_MAX,
148 TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1
149};
150
151/* Name table info */
152enum {
153 TIPC_NLA_NAME_TABLE_UNSPEC,
154 TIPC_NLA_NAME_TABLE_PUBL, /* nest */
155
156 __TIPC_NLA_NAME_TABLE_MAX,
157 TIPC_NLA_NAME_TABLE_MAX = __TIPC_NLA_NAME_TABLE_MAX - 1
158};
159
160/* Publication info */
161enum {
162 TIPC_NLA_PUBL_UNSPEC,
163
164 TIPC_NLA_PUBL_TYPE, /* u32 */
165 TIPC_NLA_PUBL_LOWER, /* u32 */
166 TIPC_NLA_PUBL_UPPER, /* u32 */
167 TIPC_NLA_PUBL_SCOPE, /* u32 */
168 TIPC_NLA_PUBL_NODE, /* u32 */
169 TIPC_NLA_PUBL_REF, /* u32 */
170 TIPC_NLA_PUBL_KEY, /* u32 */
171
172 __TIPC_NLA_PUBL_MAX,
173 TIPC_NLA_PUBL_MAX = __TIPC_NLA_PUBL_MAX - 1
174};
175
176/* Nest, connection info */
177enum {
178 TIPC_NLA_CON_UNSPEC,
179
180 TIPC_NLA_CON_FLAG, /* flag */
181 TIPC_NLA_CON_NODE, /* u32 */
182 TIPC_NLA_CON_SOCK, /* u32 */
183 TIPC_NLA_CON_TYPE, /* u32 */
184 TIPC_NLA_CON_INST, /* u32 */
185
186 __TIPC_NLA_CON_MAX,
187 TIPC_NLA_CON_MAX = __TIPC_NLA_CON_MAX - 1
188};
189
190/* Nest, link propreties. Valid for link, media and bearer */
191enum {
192 TIPC_NLA_PROP_UNSPEC,
193
194 TIPC_NLA_PROP_PRIO, /* u32 */
195 TIPC_NLA_PROP_TOL, /* u32 */
196 TIPC_NLA_PROP_WIN, /* u32 */
197
198 __TIPC_NLA_PROP_MAX,
199 TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1
200};
201
202/* Nest, statistics info */
203enum {
204 TIPC_NLA_STATS_UNSPEC,
205
206 TIPC_NLA_STATS_RX_INFO, /* u32 */
207 TIPC_NLA_STATS_RX_FRAGMENTS, /* u32 */
208 TIPC_NLA_STATS_RX_FRAGMENTED, /* u32 */
209 TIPC_NLA_STATS_RX_BUNDLES, /* u32 */
210 TIPC_NLA_STATS_RX_BUNDLED, /* u32 */
211 TIPC_NLA_STATS_TX_INFO, /* u32 */
212 TIPC_NLA_STATS_TX_FRAGMENTS, /* u32 */
213 TIPC_NLA_STATS_TX_FRAGMENTED, /* u32 */
214 TIPC_NLA_STATS_TX_BUNDLES, /* u32 */
215 TIPC_NLA_STATS_TX_BUNDLED, /* u32 */
216 TIPC_NLA_STATS_MSG_PROF_TOT, /* u32 */
217 TIPC_NLA_STATS_MSG_LEN_CNT, /* u32 */
218 TIPC_NLA_STATS_MSG_LEN_TOT, /* u32 */
219 TIPC_NLA_STATS_MSG_LEN_P0, /* u32 */
220 TIPC_NLA_STATS_MSG_LEN_P1, /* u32 */
221 TIPC_NLA_STATS_MSG_LEN_P2, /* u32 */
222 TIPC_NLA_STATS_MSG_LEN_P3, /* u32 */
223 TIPC_NLA_STATS_MSG_LEN_P4, /* u32 */
224 TIPC_NLA_STATS_MSG_LEN_P5, /* u32 */
225 TIPC_NLA_STATS_MSG_LEN_P6, /* u32 */
226 TIPC_NLA_STATS_RX_STATES, /* u32 */
227 TIPC_NLA_STATS_RX_PROBES, /* u32 */
228 TIPC_NLA_STATS_RX_NACKS, /* u32 */
229 TIPC_NLA_STATS_RX_DEFERRED, /* u32 */
230 TIPC_NLA_STATS_TX_STATES, /* u32 */
231 TIPC_NLA_STATS_TX_PROBES, /* u32 */
232 TIPC_NLA_STATS_TX_NACKS, /* u32 */
233 TIPC_NLA_STATS_TX_ACKS, /* u32 */
234 TIPC_NLA_STATS_RETRANSMITTED, /* u32 */
235 TIPC_NLA_STATS_DUPLICATES, /* u32 */
236 TIPC_NLA_STATS_LINK_CONGS, /* u32 */
237 TIPC_NLA_STATS_MAX_QUEUE, /* u32 */
238 TIPC_NLA_STATS_AVG_QUEUE, /* u32 */
239
240 __TIPC_NLA_STATS_MAX,
241 TIPC_NLA_STATS_MAX = __TIPC_NLA_STATS_MAX - 1
242};
243
244#endif