aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-09-03 11:08:17 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-09-03 11:08:17 -0400
commitdd5cdb48edfd34401799056a9acf61078d773f90 (patch)
tree8e251fb4a4c196540fe9b6a6d8b13275f93a057c /include/uapi/linux
parent1e1a4e8f439113b7820bc7150569f685e1cc2b43 (diff)
parent62da98656b62a5ca57f22263705175af8ded5aa1 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Another merge window, another set of networking changes. I've heard rumblings that the lightweight tunnels infrastructure has been voted networking change of the year. But what do I know? 1) Add conntrack support to openvswitch, from Joe Stringer. 2) Initial support for VRF (Virtual Routing and Forwarding), which allows the segmentation of routing paths without using multiple devices. There are some semantic kinks to work out still, but this is a reasonably strong foundation. From David Ahern. 3) Remove spinlock fro act_bpf fast path, from Alexei Starovoitov. 4) Ignore route nexthops with a link down state in ipv6, just like ipv4. From Andy Gospodarek. 5) Remove spinlock from fast path of act_gact and act_mirred, from Eric Dumazet. 6) Document the DSA layer, from Florian Fainelli. 7) Add netconsole support to bcmgenet, systemport, and DSA. Also from Florian Fainelli. 8) Add Mellanox Switch Driver and core infrastructure, from Jiri Pirko. 9) Add support for "light weight tunnels", which allow for encapsulation and decapsulation without bearing the overhead of a full blown netdevice. From Thomas Graf, Jiri Benc, and a cast of others. 10) Add Identifier Locator Addressing support for ipv6, from Tom Herbert. 11) Support fragmented SKBs in iwlwifi, from Johannes Berg. 12) Allow perf PMUs to be accessed from eBPF programs, from Kaixu Xia. 13) Add BQL support to 3c59x driver, from Loganaden Velvindron. 14) Stop using a zero TX queue length to mean that a device shouldn't have a qdisc attached, use an explicit flag instead. From Phil Sutter. 15) Use generic geneve netdevice infrastructure in openvswitch, from Pravin B Shelar. 16) Add infrastructure to avoid re-forwarding a packet in software that was already forwarded by a hardware switch. From Scott Feldman. 17) Allow AF_PACKET fanout function to be implemented in a bpf program, from Willem de Bruijn" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1458 commits) netfilter: nf_conntrack: make nf_ct_zone_dflt built-in netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled net: fec: clear receive interrupts before processing a packet ipv6: fix exthdrs offload registration in out_rt path xen-netback: add support for multicast control bgmac: Update fixed_phy_register() sock, diag: fix panic in sock_diag_put_filterinfo flow_dissector: Use 'const' where possible. flow_dissector: Fix function argument ordering dependency ixgbe: Resolve "initialized field overwritten" warnings ixgbe: Remove bimodal SR-IOV disabling ixgbe: Add support for reporting 2.5G link speed ixgbe: fix bounds checking in ixgbe_setup_tc for 82598 ixgbe: support for ethtool set_rxfh ixgbe: Avoid needless PHY access on copper phys ixgbe: cleanup to use cached mask value ixgbe: Remove second instance of lan_id variable ixgbe: use kzalloc for allocating one thing flow: Move __get_hash_from_flowi{4,6} into flow_dissector.c ixgbe: Remove unused PCI bus types ...
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/Kbuild1
-rw-r--r--include/uapi/linux/bpf.h29
-rw-r--r--include/uapi/linux/ethtool.h5
-rw-r--r--include/uapi/linux/fib_rules.h2
-rw-r--r--include/uapi/linux/if_bridge.h1
-rw-r--r--include/uapi/linux/if_link.h16
-rw-r--r--include/uapi/linux/if_packet.h3
-rw-r--r--include/uapi/linux/if_tunnel.h1
-rw-r--r--include/uapi/linux/ila.h15
-rw-r--r--include/uapi/linux/ip_vs.h5
-rw-r--r--include/uapi/linux/ipv6.h3
-rw-r--r--include/uapi/linux/lwtunnel.h47
-rw-r--r--include/uapi/linux/mpls.h2
-rw-r--r--include/uapi/linux/mpls_iptunnel.h28
-rw-r--r--include/uapi/linux/neighbour.h1
-rw-r--r--include/uapi/linux/netfilter/nf_conntrack_sctp.h2
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h23
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_conntrack.h1
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_cttimeout.h2
-rw-r--r--include/uapi/linux/netfilter/xt_CT.h8
-rw-r--r--include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h4
-rw-r--r--include/uapi/linux/netlink.h1
-rw-r--r--include/uapi/linux/openvswitch.h60
-rw-r--r--include/uapi/linux/rtnetlink.h13
-rw-r--r--include/uapi/linux/snmp.h2
25 files changed, 267 insertions, 8 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 1ff9942718fe..aafb9937b162 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -243,6 +243,7 @@ header-y += limits.h
243header-y += llc.h 243header-y += llc.h
244header-y += loop.h 244header-y += loop.h
245header-y += lp.h 245header-y += lp.h
246header-y += lwtunnel.h
246header-y += magic.h 247header-y += magic.h
247header-y += major.h 248header-y += major.h
248header-y += map_to_7segment.h 249header-y += map_to_7segment.h
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 29ef6f99e43d..92a48e2d5461 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -114,6 +114,7 @@ enum bpf_map_type {
114 BPF_MAP_TYPE_HASH, 114 BPF_MAP_TYPE_HASH,
115 BPF_MAP_TYPE_ARRAY, 115 BPF_MAP_TYPE_ARRAY,
116 BPF_MAP_TYPE_PROG_ARRAY, 116 BPF_MAP_TYPE_PROG_ARRAY,
117 BPF_MAP_TYPE_PERF_EVENT_ARRAY,
117}; 118};
118 119
119enum bpf_prog_type { 120enum bpf_prog_type {
@@ -249,6 +250,28 @@ enum bpf_func_id {
249 * Return: 0 on success 250 * Return: 0 on success
250 */ 251 */
251 BPF_FUNC_get_current_comm, 252 BPF_FUNC_get_current_comm,
253
254 /**
255 * bpf_get_cgroup_classid(skb) - retrieve a proc's classid
256 * @skb: pointer to skb
257 * Return: classid if != 0
258 */
259 BPF_FUNC_get_cgroup_classid,
260 BPF_FUNC_skb_vlan_push, /* bpf_skb_vlan_push(skb, vlan_proto, vlan_tci) */
261 BPF_FUNC_skb_vlan_pop, /* bpf_skb_vlan_pop(skb) */
262
263 /**
264 * bpf_skb_[gs]et_tunnel_key(skb, key, size, flags)
265 * retrieve or populate tunnel metadata
266 * @skb: pointer to skb
267 * @key: pointer to 'struct bpf_tunnel_key'
268 * @size: size of 'struct bpf_tunnel_key'
269 * @flags: room for future extensions
270 * Retrun: 0 on success
271 */
272 BPF_FUNC_skb_get_tunnel_key,
273 BPF_FUNC_skb_set_tunnel_key,
274 BPF_FUNC_perf_event_read, /* u64 bpf_perf_event_read(&map, index) */
252 __BPF_FUNC_MAX_ID, 275 __BPF_FUNC_MAX_ID,
253}; 276};
254 277
@@ -269,6 +292,12 @@ struct __sk_buff {
269 __u32 ifindex; 292 __u32 ifindex;
270 __u32 tc_index; 293 __u32 tc_index;
271 __u32 cb[5]; 294 __u32 cb[5];
295 __u32 hash;
296};
297
298struct bpf_tunnel_key {
299 __u32 tunnel_id;
300 __u32 remote_ipv4;
272}; 301};
273 302
274#endif /* _UAPI__LINUX_BPF_H__ */ 303#endif /* _UAPI__LINUX_BPF_H__ */
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index cd67aec187d9..cd1629170103 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -1093,6 +1093,11 @@ struct ethtool_sfeatures {
1093 * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values, 1093 * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values,
1094 * respectively. For example, if the device supports HWTSTAMP_TX_ON, 1094 * respectively. For example, if the device supports HWTSTAMP_TX_ON,
1095 * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set. 1095 * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set.
1096 *
1097 * Drivers should only report the filters they actually support without
1098 * upscaling in the SIOCSHWTSTAMP ioctl. If the SIOCSHWSTAMP request for
1099 * HWTSTAMP_FILTER_V1_SYNC is supported by HWTSTAMP_FILTER_V1_EVENT, then the
1100 * driver should only report HWTSTAMP_FILTER_V1_EVENT in this op.
1096 */ 1101 */
1097struct ethtool_ts_info { 1102struct ethtool_ts_info {
1098 __u32 cmd; 1103 __u32 cmd;
diff --git a/include/uapi/linux/fib_rules.h b/include/uapi/linux/fib_rules.h
index 2b82d7e30974..96161b8202b5 100644
--- a/include/uapi/linux/fib_rules.h
+++ b/include/uapi/linux/fib_rules.h
@@ -43,7 +43,7 @@ enum {
43 FRA_UNUSED5, 43 FRA_UNUSED5,
44 FRA_FWMARK, /* mark */ 44 FRA_FWMARK, /* mark */
45 FRA_FLOW, /* flow/class id */ 45 FRA_FLOW, /* flow/class id */
46 FRA_UNUSED6, 46 FRA_TUN_ID,
47 FRA_SUPPRESS_IFGROUP, 47 FRA_SUPPRESS_IFGROUP,
48 FRA_SUPPRESS_PREFIXLEN, 48 FRA_SUPPRESS_PREFIXLEN,
49 FRA_TABLE, /* Extended table id */ 49 FRA_TABLE, /* Extended table id */
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index eaaea6208b42..3635b7797508 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -182,6 +182,7 @@ struct br_mdb_entry {
182#define MDB_TEMPORARY 0 182#define MDB_TEMPORARY 0
183#define MDB_PERMANENT 1 183#define MDB_PERMANENT 1
184 __u8 state; 184 __u8 state;
185 __u16 vid;
185 struct { 186 struct {
186 union { 187 union {
187 __be32 ip4; 188 __be32 ip4;
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 2c7e8e3d3981..3a5f263cfc2f 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -148,6 +148,7 @@ enum {
148 IFLA_PHYS_SWITCH_ID, 148 IFLA_PHYS_SWITCH_ID,
149 IFLA_LINK_NETNSID, 149 IFLA_LINK_NETNSID,
150 IFLA_PHYS_PORT_NAME, 150 IFLA_PHYS_PORT_NAME,
151 IFLA_PROTO_DOWN,
151 __IFLA_MAX 152 __IFLA_MAX
152}; 153};
153 154
@@ -229,6 +230,8 @@ enum {
229 IFLA_BR_AGEING_TIME, 230 IFLA_BR_AGEING_TIME,
230 IFLA_BR_STP_STATE, 231 IFLA_BR_STP_STATE,
231 IFLA_BR_PRIORITY, 232 IFLA_BR_PRIORITY,
233 IFLA_BR_VLAN_FILTERING,
234 IFLA_BR_VLAN_PROTOCOL,
232 __IFLA_BR_MAX, 235 __IFLA_BR_MAX,
233}; 236};
234 237
@@ -339,6 +342,15 @@ enum macvlan_macaddr_mode {
339 342
340#define MACVLAN_FLAG_NOPROMISC 1 343#define MACVLAN_FLAG_NOPROMISC 1
341 344
345/* VRF section */
346enum {
347 IFLA_VRF_UNSPEC,
348 IFLA_VRF_TABLE,
349 __IFLA_VRF_MAX
350};
351
352#define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1)
353
342/* IPVLAN section */ 354/* IPVLAN section */
343enum { 355enum {
344 IFLA_IPVLAN_UNSPEC, 356 IFLA_IPVLAN_UNSPEC,
@@ -381,6 +393,7 @@ enum {
381 IFLA_VXLAN_REMCSUM_RX, 393 IFLA_VXLAN_REMCSUM_RX,
382 IFLA_VXLAN_GBP, 394 IFLA_VXLAN_GBP,
383 IFLA_VXLAN_REMCSUM_NOPARTIAL, 395 IFLA_VXLAN_REMCSUM_NOPARTIAL,
396 IFLA_VXLAN_COLLECT_METADATA,
384 __IFLA_VXLAN_MAX 397 __IFLA_VXLAN_MAX
385}; 398};
386#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) 399#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -397,6 +410,8 @@ enum {
397 IFLA_GENEVE_REMOTE, 410 IFLA_GENEVE_REMOTE,
398 IFLA_GENEVE_TTL, 411 IFLA_GENEVE_TTL,
399 IFLA_GENEVE_TOS, 412 IFLA_GENEVE_TOS,
413 IFLA_GENEVE_PORT, /* destination port */
414 IFLA_GENEVE_COLLECT_METADATA,
400 __IFLA_GENEVE_MAX 415 __IFLA_GENEVE_MAX
401}; 416};
402#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 417#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
@@ -431,6 +446,7 @@ enum {
431 IFLA_BOND_AD_ACTOR_SYS_PRIO, 446 IFLA_BOND_AD_ACTOR_SYS_PRIO,
432 IFLA_BOND_AD_USER_PORT_KEY, 447 IFLA_BOND_AD_USER_PORT_KEY,
433 IFLA_BOND_AD_ACTOR_SYSTEM, 448 IFLA_BOND_AD_ACTOR_SYSTEM,
449 IFLA_BOND_TLB_DYNAMIC_LB,
434 __IFLA_BOND_MAX, 450 __IFLA_BOND_MAX,
435}; 451};
436 452
diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
index d3d715f8c88f..9e7edfd8141e 100644
--- a/include/uapi/linux/if_packet.h
+++ b/include/uapi/linux/if_packet.h
@@ -55,6 +55,7 @@ struct sockaddr_ll {
55#define PACKET_TX_HAS_OFF 19 55#define PACKET_TX_HAS_OFF 19
56#define PACKET_QDISC_BYPASS 20 56#define PACKET_QDISC_BYPASS 20
57#define PACKET_ROLLOVER_STATS 21 57#define PACKET_ROLLOVER_STATS 21
58#define PACKET_FANOUT_DATA 22
58 59
59#define PACKET_FANOUT_HASH 0 60#define PACKET_FANOUT_HASH 0
60#define PACKET_FANOUT_LB 1 61#define PACKET_FANOUT_LB 1
@@ -62,6 +63,8 @@ struct sockaddr_ll {
62#define PACKET_FANOUT_ROLLOVER 3 63#define PACKET_FANOUT_ROLLOVER 3
63#define PACKET_FANOUT_RND 4 64#define PACKET_FANOUT_RND 4
64#define PACKET_FANOUT_QM 5 65#define PACKET_FANOUT_QM 5
66#define PACKET_FANOUT_CBPF 6
67#define PACKET_FANOUT_EBPF 7
65#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 68#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
66#define PACKET_FANOUT_FLAG_DEFRAG 0x8000 69#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
67 70
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index bd3cc11a431f..af4de90ba27d 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -112,6 +112,7 @@ enum {
112 IFLA_GRE_ENCAP_FLAGS, 112 IFLA_GRE_ENCAP_FLAGS,
113 IFLA_GRE_ENCAP_SPORT, 113 IFLA_GRE_ENCAP_SPORT,
114 IFLA_GRE_ENCAP_DPORT, 114 IFLA_GRE_ENCAP_DPORT,
115 IFLA_GRE_COLLECT_METADATA,
115 __IFLA_GRE_MAX, 116 __IFLA_GRE_MAX,
116}; 117};
117 118
diff --git a/include/uapi/linux/ila.h b/include/uapi/linux/ila.h
new file mode 100644
index 000000000000..7ed9e670814e
--- /dev/null
+++ b/include/uapi/linux/ila.h
@@ -0,0 +1,15 @@
1/* ila.h - ILA Interface */
2
3#ifndef _UAPI_LINUX_ILA_H
4#define _UAPI_LINUX_ILA_H
5
6enum {
7 ILA_ATTR_UNSPEC,
8 ILA_ATTR_LOCATOR, /* u64 */
9
10 __ILA_ATTR_MAX,
11};
12
13#define ILA_ATTR_MAX (__ILA_ATTR_MAX - 1)
14
15#endif /* _UAPI_LINUX_ILA_H */
diff --git a/include/uapi/linux/ip_vs.h b/include/uapi/linux/ip_vs.h
index 3199243f2028..391395c06c7e 100644
--- a/include/uapi/linux/ip_vs.h
+++ b/include/uapi/linux/ip_vs.h
@@ -406,6 +406,11 @@ enum {
406 IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */ 406 IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */
407 IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */ 407 IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */
408 IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */ 408 IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */
409 IPVS_DAEMON_ATTR_SYNC_MAXLEN, /* UDP Payload Size */
410 IPVS_DAEMON_ATTR_MCAST_GROUP, /* IPv4 Multicast Address */
411 IPVS_DAEMON_ATTR_MCAST_GROUP6, /* IPv6 Multicast Address */
412 IPVS_DAEMON_ATTR_MCAST_PORT, /* Multicast Port (base) */
413 IPVS_DAEMON_ATTR_MCAST_TTL, /* Multicast TTL */
409 __IPVS_DAEMON_ATTR_MAX, 414 __IPVS_DAEMON_ATTR_MAX,
410}; 415};
411 416
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h
index 5efa54ae567c..38b4fef20219 100644
--- a/include/uapi/linux/ipv6.h
+++ b/include/uapi/linux/ipv6.h
@@ -171,6 +171,9 @@ enum {
171 DEVCONF_USE_OPTIMISTIC, 171 DEVCONF_USE_OPTIMISTIC,
172 DEVCONF_ACCEPT_RA_MTU, 172 DEVCONF_ACCEPT_RA_MTU,
173 DEVCONF_STABLE_SECRET, 173 DEVCONF_STABLE_SECRET,
174 DEVCONF_USE_OIF_ADDRS_ONLY,
175 DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT,
176 DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
174 DEVCONF_MAX 177 DEVCONF_MAX
175}; 178};
176 179
diff --git a/include/uapi/linux/lwtunnel.h b/include/uapi/linux/lwtunnel.h
new file mode 100644
index 000000000000..34141a5dfe74
--- /dev/null
+++ b/include/uapi/linux/lwtunnel.h
@@ -0,0 +1,47 @@
1#ifndef _UAPI_LWTUNNEL_H_
2#define _UAPI_LWTUNNEL_H_
3
4#include <linux/types.h>
5
6enum lwtunnel_encap_types {
7 LWTUNNEL_ENCAP_NONE,
8 LWTUNNEL_ENCAP_MPLS,
9 LWTUNNEL_ENCAP_IP,
10 LWTUNNEL_ENCAP_ILA,
11 LWTUNNEL_ENCAP_IP6,
12 __LWTUNNEL_ENCAP_MAX,
13};
14
15#define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
16
17enum lwtunnel_ip_t {
18 LWTUNNEL_IP_UNSPEC,
19 LWTUNNEL_IP_ID,
20 LWTUNNEL_IP_DST,
21 LWTUNNEL_IP_SRC,
22 LWTUNNEL_IP_TTL,
23 LWTUNNEL_IP_TOS,
24 LWTUNNEL_IP_SPORT,
25 LWTUNNEL_IP_DPORT,
26 LWTUNNEL_IP_FLAGS,
27 __LWTUNNEL_IP_MAX,
28};
29
30#define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
31
32enum lwtunnel_ip6_t {
33 LWTUNNEL_IP6_UNSPEC,
34 LWTUNNEL_IP6_ID,
35 LWTUNNEL_IP6_DST,
36 LWTUNNEL_IP6_SRC,
37 LWTUNNEL_IP6_HOPLIMIT,
38 LWTUNNEL_IP6_TC,
39 LWTUNNEL_IP6_SPORT,
40 LWTUNNEL_IP6_DPORT,
41 LWTUNNEL_IP6_FLAGS,
42 __LWTUNNEL_IP6_MAX,
43};
44
45#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
46
47#endif /* _UAPI_LWTUNNEL_H_ */
diff --git a/include/uapi/linux/mpls.h b/include/uapi/linux/mpls.h
index 139d4dd1cab8..24a6cb1aec86 100644
--- a/include/uapi/linux/mpls.h
+++ b/include/uapi/linux/mpls.h
@@ -41,4 +41,6 @@ struct mpls_label {
41#define MPLS_LABEL_OAMALERT 14 /* RFC3429 */ 41#define MPLS_LABEL_OAMALERT 14 /* RFC3429 */
42#define MPLS_LABEL_EXTENSION 15 /* RFC7274 */ 42#define MPLS_LABEL_EXTENSION 15 /* RFC7274 */
43 43
44#define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */
45
44#endif /* _UAPI_MPLS_H */ 46#endif /* _UAPI_MPLS_H */
diff --git a/include/uapi/linux/mpls_iptunnel.h b/include/uapi/linux/mpls_iptunnel.h
new file mode 100644
index 000000000000..d80a0498f77e
--- /dev/null
+++ b/include/uapi/linux/mpls_iptunnel.h
@@ -0,0 +1,28 @@
1/*
2 * mpls tunnel api
3 *
4 * Authors:
5 * Roopa Prabhu <roopa@cumulusnetworks.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version
10 * 2 of the License, or (at your option) any later version.
11 */
12
13#ifndef _UAPI_LINUX_MPLS_IPTUNNEL_H
14#define _UAPI_LINUX_MPLS_IPTUNNEL_H
15
16/* MPLS tunnel attributes
17 * [RTA_ENCAP] = {
18 * [MPLS_IPTUNNEL_DST]
19 * }
20 */
21enum {
22 MPLS_IPTUNNEL_UNSPEC,
23 MPLS_IPTUNNEL_DST,
24 __MPLS_IPTUNNEL_MAX,
25};
26#define MPLS_IPTUNNEL_MAX (__MPLS_IPTUNNEL_MAX - 1)
27
28#endif /* _UAPI_LINUX_MPLS_IPTUNNEL_H */
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
index 2e35c61bbdd1..788655bfa0f3 100644
--- a/include/uapi/linux/neighbour.h
+++ b/include/uapi/linux/neighbour.h
@@ -106,6 +106,7 @@ struct ndt_stats {
106 __u64 ndts_rcv_probes_ucast; 106 __u64 ndts_rcv_probes_ucast;
107 __u64 ndts_periodic_gc_runs; 107 __u64 ndts_periodic_gc_runs;
108 __u64 ndts_forced_gc_runs; 108 __u64 ndts_forced_gc_runs;
109 __u64 ndts_table_fulls;
109}; 110};
110 111
111enum { 112enum {
diff --git a/include/uapi/linux/netfilter/nf_conntrack_sctp.h b/include/uapi/linux/netfilter/nf_conntrack_sctp.h
index ceeefe6681b5..ed4e776e1242 100644
--- a/include/uapi/linux/netfilter/nf_conntrack_sctp.h
+++ b/include/uapi/linux/netfilter/nf_conntrack_sctp.h
@@ -13,6 +13,8 @@ enum sctp_conntrack {
13 SCTP_CONNTRACK_SHUTDOWN_SENT, 13 SCTP_CONNTRACK_SHUTDOWN_SENT,
14 SCTP_CONNTRACK_SHUTDOWN_RECD, 14 SCTP_CONNTRACK_SHUTDOWN_RECD,
15 SCTP_CONNTRACK_SHUTDOWN_ACK_SENT, 15 SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
16 SCTP_CONNTRACK_HEARTBEAT_SENT,
17 SCTP_CONNTRACK_HEARTBEAT_ACKED,
16 SCTP_CONNTRACK_MAX 18 SCTP_CONNTRACK_MAX
17}; 19};
18 20
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index a99e6a997140..d8c8a7c9d88a 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -756,16 +756,25 @@ enum nft_ct_attributes {
756}; 756};
757#define NFTA_CT_MAX (__NFTA_CT_MAX - 1) 757#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
758 758
759enum nft_limit_type {
760 NFT_LIMIT_PKTS,
761 NFT_LIMIT_PKT_BYTES
762};
763
759/** 764/**
760 * enum nft_limit_attributes - nf_tables limit expression netlink attributes 765 * enum nft_limit_attributes - nf_tables limit expression netlink attributes
761 * 766 *
762 * @NFTA_LIMIT_RATE: refill rate (NLA_U64) 767 * @NFTA_LIMIT_RATE: refill rate (NLA_U64)
763 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64) 768 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64)
769 * @NFTA_LIMIT_BURST: burst (NLA_U32)
770 * @NFTA_LIMIT_TYPE: type of limit (NLA_U32: enum nft_limit_type)
764 */ 771 */
765enum nft_limit_attributes { 772enum nft_limit_attributes {
766 NFTA_LIMIT_UNSPEC, 773 NFTA_LIMIT_UNSPEC,
767 NFTA_LIMIT_RATE, 774 NFTA_LIMIT_RATE,
768 NFTA_LIMIT_UNIT, 775 NFTA_LIMIT_UNIT,
776 NFTA_LIMIT_BURST,
777 NFTA_LIMIT_TYPE,
769 __NFTA_LIMIT_MAX 778 __NFTA_LIMIT_MAX
770}; 779};
771#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1) 780#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
@@ -936,6 +945,20 @@ enum nft_redir_attributes {
936#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1) 945#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
937 946
938/** 947/**
948 * enum nft_dup_attributes - nf_tables dup expression netlink attributes
949 *
950 * @NFTA_DUP_SREG_ADDR: source register of address (NLA_U32: nft_registers)
951 * @NFTA_DUP_SREG_DEV: source register of output interface (NLA_U32: nft_register)
952 */
953enum nft_dup_attributes {
954 NFTA_DUP_UNSPEC,
955 NFTA_DUP_SREG_ADDR,
956 NFTA_DUP_SREG_DEV,
957 __NFTA_DUP_MAX
958};
959#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
960
961/**
939 * enum nft_gen_attributes - nf_tables ruleset generation attributes 962 * enum nft_gen_attributes - nf_tables ruleset generation attributes
940 * 963 *
941 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32) 964 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32)
diff --git a/include/uapi/linux/netfilter/nfnetlink_conntrack.h b/include/uapi/linux/netfilter/nfnetlink_conntrack.h
index acad6c52a652..c1a4e1441a25 100644
--- a/include/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/include/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -61,6 +61,7 @@ enum ctattr_tuple {
61 CTA_TUPLE_UNSPEC, 61 CTA_TUPLE_UNSPEC,
62 CTA_TUPLE_IP, 62 CTA_TUPLE_IP,
63 CTA_TUPLE_PROTO, 63 CTA_TUPLE_PROTO,
64 CTA_TUPLE_ZONE,
64 __CTA_TUPLE_MAX 65 __CTA_TUPLE_MAX
65}; 66};
66#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) 67#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
diff --git a/include/uapi/linux/netfilter/nfnetlink_cttimeout.h b/include/uapi/linux/netfilter/nfnetlink_cttimeout.h
index 1ab0b97b3a1e..f2c10dc140d6 100644
--- a/include/uapi/linux/netfilter/nfnetlink_cttimeout.h
+++ b/include/uapi/linux/netfilter/nfnetlink_cttimeout.h
@@ -92,6 +92,8 @@ enum ctattr_timeout_sctp {
92 CTA_TIMEOUT_SCTP_SHUTDOWN_SENT, 92 CTA_TIMEOUT_SCTP_SHUTDOWN_SENT,
93 CTA_TIMEOUT_SCTP_SHUTDOWN_RECD, 93 CTA_TIMEOUT_SCTP_SHUTDOWN_RECD,
94 CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, 94 CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT,
95 CTA_TIMEOUT_SCTP_HEARTBEAT_SENT,
96 CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED,
95 __CTA_TIMEOUT_SCTP_MAX 97 __CTA_TIMEOUT_SCTP_MAX
96}; 98};
97#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) 99#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1)
diff --git a/include/uapi/linux/netfilter/xt_CT.h b/include/uapi/linux/netfilter/xt_CT.h
index 5a688c1ca4d7..9e520418b858 100644
--- a/include/uapi/linux/netfilter/xt_CT.h
+++ b/include/uapi/linux/netfilter/xt_CT.h
@@ -6,7 +6,13 @@
6enum { 6enum {
7 XT_CT_NOTRACK = 1 << 0, 7 XT_CT_NOTRACK = 1 << 0,
8 XT_CT_NOTRACK_ALIAS = 1 << 1, 8 XT_CT_NOTRACK_ALIAS = 1 << 1,
9 XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS, 9 XT_CT_ZONE_DIR_ORIG = 1 << 2,
10 XT_CT_ZONE_DIR_REPL = 1 << 3,
11 XT_CT_ZONE_MARK = 1 << 4,
12
13 XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS |
14 XT_CT_ZONE_DIR_ORIG | XT_CT_ZONE_DIR_REPL |
15 XT_CT_ZONE_MARK,
10}; 16};
11 17
12struct xt_ct_target_info { 18struct xt_ct_target_info {
diff --git a/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h b/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
index 205ed62e4605..cd2e940c8bf5 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
@@ -10,7 +10,9 @@ enum ip6t_reject_with {
10 IP6T_ICMP6_ADDR_UNREACH, 10 IP6T_ICMP6_ADDR_UNREACH,
11 IP6T_ICMP6_PORT_UNREACH, 11 IP6T_ICMP6_PORT_UNREACH,
12 IP6T_ICMP6_ECHOREPLY, 12 IP6T_ICMP6_ECHOREPLY,
13 IP6T_TCP_RESET 13 IP6T_TCP_RESET,
14 IP6T_ICMP6_POLICY_FAIL,
15 IP6T_ICMP6_REJECT_ROUTE
14}; 16};
15 17
16struct ip6t_reject_info { 18struct ip6t_reject_info {
diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
index cf6a65cccbdf..6f3fe16cd22a 100644
--- a/include/uapi/linux/netlink.h
+++ b/include/uapi/linux/netlink.h
@@ -110,6 +110,7 @@ struct nlmsgerr {
110#define NETLINK_TX_RING 7 110#define NETLINK_TX_RING 7
111#define NETLINK_LISTEN_ALL_NSID 8 111#define NETLINK_LISTEN_ALL_NSID 8
112#define NETLINK_LIST_MEMBERSHIPS 9 112#define NETLINK_LIST_MEMBERSHIPS 9
113#define NETLINK_CAP_ACK 10
113 114
114struct nl_pktinfo { 115struct nl_pktinfo {
115 __u32 group; 116 __u32 group;
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 1dab77601c21..32e07d8cbaf4 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -164,6 +164,9 @@ enum ovs_packet_cmd {
164 * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the 164 * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the
165 * output port is actually a tunnel port. Contains the output tunnel key 165 * output port is actually a tunnel port. Contains the output tunnel key
166 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes. 166 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes.
167 * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and
168 * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
169 * size.
167 * 170 *
168 * These attributes follow the &struct ovs_header within the Generic Netlink 171 * These attributes follow the &struct ovs_header within the Generic Netlink
169 * payload for %OVS_PACKET_* commands. 172 * payload for %OVS_PACKET_* commands.
@@ -180,6 +183,7 @@ enum ovs_packet_attr {
180 OVS_PACKET_ATTR_UNUSED2, 183 OVS_PACKET_ATTR_UNUSED2,
181 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, 184 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe,
182 error logging should be suppressed. */ 185 error logging should be suppressed. */
186 OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
183 __OVS_PACKET_ATTR_MAX 187 __OVS_PACKET_ATTR_MAX
184}; 188};
185 189
@@ -319,9 +323,13 @@ enum ovs_key_attr {
319 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls. 323 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls.
320 * The implementation may restrict 324 * The implementation may restrict
321 * the accepted length of the array. */ 325 * the accepted length of the array. */
326 OVS_KEY_ATTR_CT_STATE, /* u8 bitmask of OVS_CS_F_* */
327 OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */
328 OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */
329 OVS_KEY_ATTR_CT_LABEL, /* 16-octet connection tracking label */
322 330
323#ifdef __KERNEL__ 331#ifdef __KERNEL__
324 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ovs_tunnel_info */ 332 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */
325#endif 333#endif
326 __OVS_KEY_ATTR_MAX 334 __OVS_KEY_ATTR_MAX
327}; 335};
@@ -431,6 +439,20 @@ struct ovs_key_nd {
431 __u8 nd_tll[ETH_ALEN]; 439 __u8 nd_tll[ETH_ALEN];
432}; 440};
433 441
442#define OVS_CT_LABEL_LEN 16
443struct ovs_key_ct_label {
444 __u8 ct_label[OVS_CT_LABEL_LEN];
445};
446
447/* OVS_KEY_ATTR_CT_STATE flags */
448#define OVS_CS_F_NEW 0x01 /* Beginning of a new connection. */
449#define OVS_CS_F_ESTABLISHED 0x02 /* Part of an existing connection. */
450#define OVS_CS_F_RELATED 0x04 /* Related to an established
451 * connection. */
452#define OVS_CS_F_INVALID 0x20 /* Could not track connection. */
453#define OVS_CS_F_REPLY_DIR 0x40 /* Flow is in the reply direction. */
454#define OVS_CS_F_TRACKED 0x80 /* Conntrack has occurred. */
455
434/** 456/**
435 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. 457 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
436 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow 458 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
@@ -595,6 +617,39 @@ struct ovs_action_hash {
595}; 617};
596 618
597/** 619/**
620 * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action.
621 * @OVS_CT_ATTR_FLAGS: u32 connection tracking flags.
622 * @OVS_CT_ATTR_ZONE: u16 connection tracking zone.
623 * @OVS_CT_ATTR_MARK: u32 value followed by u32 mask. For each bit set in the
624 * mask, the corresponding bit in the value is copied to the connection
625 * tracking mark field in the connection.
626 * @OVS_CT_ATTR_LABEL: %OVS_CT_LABEL_LEN value followed by %OVS_CT_LABEL_LEN
627 * mask. For each bit set in the mask, the corresponding bit in the value is
628 * copied to the connection tracking label field in the connection.
629 * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG.
630 */
631enum ovs_ct_attr {
632 OVS_CT_ATTR_UNSPEC,
633 OVS_CT_ATTR_FLAGS, /* u8 bitmask of OVS_CT_F_*. */
634 OVS_CT_ATTR_ZONE, /* u16 zone id. */
635 OVS_CT_ATTR_MARK, /* mark to associate with this connection. */
636 OVS_CT_ATTR_LABEL, /* label to associate with this connection. */
637 OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of
638 related connections. */
639 __OVS_CT_ATTR_MAX
640};
641
642#define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
643
644/*
645 * OVS_CT_ATTR_FLAGS flags - bitmask of %OVS_CT_F_*
646 * @OVS_CT_F_COMMIT: Commits the flow to the conntrack table. This allows
647 * future packets for the same connection to be identified as 'established'
648 * or 'related'.
649 */
650#define OVS_CT_F_COMMIT 0x01
651
652/**
598 * enum ovs_action_attr - Action types. 653 * enum ovs_action_attr - Action types.
599 * 654 *
600 * @OVS_ACTION_ATTR_OUTPUT: Output packet to port. 655 * @OVS_ACTION_ATTR_OUTPUT: Output packet to port.
@@ -623,6 +678,8 @@ struct ovs_action_hash {
623 * indicate the new packet contents. This could potentially still be 678 * indicate the new packet contents. This could potentially still be
624 * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there 679 * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there
625 * is no MPLS label stack, as determined by ethertype, no action is taken. 680 * is no MPLS label stack, as determined by ethertype, no action is taken.
681 * @OVS_ACTION_ATTR_CT: Track the connection. Populate the conntrack-related
682 * entries in the flow key.
626 * 683 *
627 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all 684 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
628 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment 685 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -648,6 +705,7 @@ enum ovs_action_attr {
648 * data immediately followed by a mask. 705 * data immediately followed by a mask.
649 * The data must be zero for the unmasked 706 * The data must be zero for the unmasked
650 * bits. */ 707 * bits. */
708 OVS_ACTION_ATTR_CT, /* One nested OVS_CT_ATTR_* . */
651 709
652 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted 710 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
653 * from userspace. */ 711 * from userspace. */
diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
index fdd8f07f1d34..702024769c74 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -308,6 +308,8 @@ enum rtattr_type_t {
308 RTA_VIA, 308 RTA_VIA,
309 RTA_NEWDST, 309 RTA_NEWDST,
310 RTA_PREF, 310 RTA_PREF,
311 RTA_ENCAP_TYPE,
312 RTA_ENCAP,
311 __RTA_MAX 313 __RTA_MAX
312}; 314};
313 315
@@ -416,10 +418,13 @@ enum {
416 418
417#define RTAX_MAX (__RTAX_MAX - 1) 419#define RTAX_MAX (__RTAX_MAX - 1)
418 420
419#define RTAX_FEATURE_ECN 0x00000001 421#define RTAX_FEATURE_ECN (1 << 0)
420#define RTAX_FEATURE_SACK 0x00000002 422#define RTAX_FEATURE_SACK (1 << 1)
421#define RTAX_FEATURE_TIMESTAMP 0x00000004 423#define RTAX_FEATURE_TIMESTAMP (1 << 2)
422#define RTAX_FEATURE_ALLFRAG 0x00000008 424#define RTAX_FEATURE_ALLFRAG (1 << 3)
425
426#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | \
427 RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
423 428
424struct rta_session { 429struct rta_session {
425 __u8 proto; 430 __u8 proto;
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
index eee8968407f0..25a9ad8bcef1 100644
--- a/include/uapi/linux/snmp.h
+++ b/include/uapi/linux/snmp.h
@@ -278,6 +278,8 @@ enum
278 LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */ 278 LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */
279 LINUX_MIB_TCPWINPROBE, /* TCPWinProbe */ 279 LINUX_MIB_TCPWINPROBE, /* TCPWinProbe */
280 LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */ 280 LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */
281 LINUX_MIB_TCPMTUPFAIL, /* TCPMTUPFail */
282 LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */
281 __LINUX_MIB_MAX 283 __LINUX_MIB_MAX
282}; 284};
283 285