aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2016-10-04 03:22:19 -0400
committerJohannes Berg <johannes.berg@intel.com>2016-10-04 03:46:44 -0400
commit1e1430d5282bc3a572465ef3261eea793d98a653 (patch)
tree81c8883606ed2dd821f4509581888505d48631dd /include/uapi/linux
parentbb42f2d13ffcd0baed7547b37d05add51fcd50e1 (diff)
parent9a8dd213d2a38349e5ea2ca8888400952112b45c (diff)
Merge remote-tracking branch 'net-next/master' into mac80211-next
Resolve the merge conflict between Felix's/my and Toke's patches coming into the tree through net and mac80211-next respectively. Most of Felix's changes go away due to Toke's new infrastructure work, my patch changes to "goto begin" (the label wasn't there before) instead of returning NULL so flow control towards drivers is preserved better. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/bpf.h28
-rw-r--r--include/uapi/linux/if_link.h29
-rw-r--r--include/uapi/linux/if_tunnel.h1
-rw-r--r--include/uapi/linux/inet_diag.h13
-rw-r--r--include/uapi/linux/ipv6.h1
-rw-r--r--include/uapi/linux/netfilter/nf_log.h12
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h45
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_conntrack.h8
-rw-r--r--include/uapi/linux/netfilter/xt_hashlimit.h23
-rw-r--r--include/uapi/linux/pkt_cls.h1
-rw-r--r--include/uapi/linux/pkt_sched.h4
-rw-r--r--include/uapi/linux/tc_act/tc_ife.h3
-rw-r--r--include/uapi/linux/tc_act/tc_vlan.h1
-rw-r--r--include/uapi/linux/tcp.h3
-rw-r--r--include/uapi/linux/xfrm.h2
15 files changed, 164 insertions, 10 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index f896dfac4ac0..f09c70b97eca 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -398,6 +398,34 @@ enum bpf_func_id {
398 */ 398 */
399 BPF_FUNC_skb_change_tail, 399 BPF_FUNC_skb_change_tail,
400 400
401 /**
402 * bpf_skb_pull_data(skb, len)
403 * The helper will pull in non-linear data in case the
404 * skb is non-linear and not all of len are part of the
405 * linear section. Only needed for read/write with direct
406 * packet access.
407 * @skb: pointer to skb
408 * @len: len to make read/writeable
409 * Return: 0 on success or negative error
410 */
411 BPF_FUNC_skb_pull_data,
412
413 /**
414 * bpf_csum_update(skb, csum)
415 * Adds csum into skb->csum in case of CHECKSUM_COMPLETE.
416 * @skb: pointer to skb
417 * @csum: csum to add
418 * Return: csum on success or negative error
419 */
420 BPF_FUNC_csum_update,
421
422 /**
423 * bpf_set_hash_invalid(skb)
424 * Invalidate current skb>hash.
425 * @skb: pointer to skb
426 */
427 BPF_FUNC_set_hash_invalid,
428
401 __BPF_FUNC_MAX_ID, 429 __BPF_FUNC_MAX_ID,
402}; 430};
403 431
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 9bf3aecfe05b..b4fba662cd32 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -464,6 +464,7 @@ enum {
464enum ipvlan_mode { 464enum ipvlan_mode {
465 IPVLAN_MODE_L2 = 0, 465 IPVLAN_MODE_L2 = 0,
466 IPVLAN_MODE_L3, 466 IPVLAN_MODE_L3,
467 IPVLAN_MODE_L3S,
467 IPVLAN_MODE_MAX 468 IPVLAN_MODE_MAX
468}; 469};
469 470
@@ -618,7 +619,7 @@ enum {
618enum { 619enum {
619 IFLA_VF_UNSPEC, 620 IFLA_VF_UNSPEC,
620 IFLA_VF_MAC, /* Hardware queue specific attributes */ 621 IFLA_VF_MAC, /* Hardware queue specific attributes */
621 IFLA_VF_VLAN, 622 IFLA_VF_VLAN, /* VLAN ID and QoS */
622 IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ 623 IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */
623 IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ 624 IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */
624 IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ 625 IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */
@@ -630,6 +631,7 @@ enum {
630 IFLA_VF_TRUST, /* Trust VF */ 631 IFLA_VF_TRUST, /* Trust VF */
631 IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ 632 IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */
632 IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ 633 IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */
634 IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */
633 __IFLA_VF_MAX, 635 __IFLA_VF_MAX,
634}; 636};
635 637
@@ -646,6 +648,22 @@ struct ifla_vf_vlan {
646 __u32 qos; 648 __u32 qos;
647}; 649};
648 650
651enum {
652 IFLA_VF_VLAN_INFO_UNSPEC,
653 IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */
654 __IFLA_VF_VLAN_INFO_MAX,
655};
656
657#define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1)
658#define MAX_VLAN_LIST_LEN 1
659
660struct ifla_vf_vlan_info {
661 __u32 vf;
662 __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
663 __u32 qos;
664 __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */
665};
666
649struct ifla_vf_tx_rate { 667struct ifla_vf_tx_rate {
650 __u32 vf; 668 __u32 vf;
651 __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ 669 __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
@@ -826,6 +844,7 @@ enum {
826 IFLA_STATS_LINK_64, 844 IFLA_STATS_LINK_64,
827 IFLA_STATS_LINK_XSTATS, 845 IFLA_STATS_LINK_XSTATS,
828 IFLA_STATS_LINK_XSTATS_SLAVE, 846 IFLA_STATS_LINK_XSTATS_SLAVE,
847 IFLA_STATS_LINK_OFFLOAD_XSTATS,
829 __IFLA_STATS_MAX, 848 __IFLA_STATS_MAX,
830}; 849};
831 850
@@ -845,6 +864,14 @@ enum {
845}; 864};
846#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) 865#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1)
847 866
867/* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */
868enum {
869 IFLA_OFFLOAD_XSTATS_UNSPEC,
870 IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */
871 __IFLA_OFFLOAD_XSTATS_MAX
872};
873#define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1)
874
848/* XDP section */ 875/* XDP section */
849 876
850enum { 877enum {
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index 18d5dc13985d..92f3c8677523 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -39,6 +39,7 @@
39#define GRE_IS_REC(f) ((f) & GRE_REC) 39#define GRE_IS_REC(f) ((f) & GRE_REC)
40#define GRE_IS_ACK(f) ((f) & GRE_ACK) 40#define GRE_IS_ACK(f) ((f) & GRE_ACK)
41 41
42#define GRE_VERSION_0 __cpu_to_be16(0x0000)
42#define GRE_VERSION_1 __cpu_to_be16(0x0001) 43#define GRE_VERSION_1 __cpu_to_be16(0x0001)
43#define GRE_PROTO_PPP __cpu_to_be16(0x880b) 44#define GRE_PROTO_PPP __cpu_to_be16(0x880b)
44#define GRE_PPTP_KEY_MASK __cpu_to_be32(0xffff) 45#define GRE_PPTP_KEY_MASK __cpu_to_be32(0xffff)
diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h
index b5c366f87b3e..509cd961068d 100644
--- a/include/uapi/linux/inet_diag.h
+++ b/include/uapi/linux/inet_diag.h
@@ -124,6 +124,7 @@ enum {
124 INET_DIAG_PEERS, 124 INET_DIAG_PEERS,
125 INET_DIAG_PAD, 125 INET_DIAG_PAD,
126 INET_DIAG_MARK, 126 INET_DIAG_MARK,
127 INET_DIAG_BBRINFO,
127 __INET_DIAG_MAX, 128 __INET_DIAG_MAX,
128}; 129};
129 130
@@ -157,8 +158,20 @@ struct tcp_dctcp_info {
157 __u32 dctcp_ab_tot; 158 __u32 dctcp_ab_tot;
158}; 159};
159 160
161/* INET_DIAG_BBRINFO */
162
163struct tcp_bbr_info {
164 /* u64 bw: max-filtered BW (app throughput) estimate in Byte per sec: */
165 __u32 bbr_bw_lo; /* lower 32 bits of bw */
166 __u32 bbr_bw_hi; /* upper 32 bits of bw */
167 __u32 bbr_min_rtt; /* min-filtered RTT in uSec */
168 __u32 bbr_pacing_gain; /* pacing gain shifted left 8 bits */
169 __u32 bbr_cwnd_gain; /* cwnd gain shifted left 8 bits */
170};
171
160union tcp_cc_info { 172union tcp_cc_info {
161 struct tcpvegas_info vegas; 173 struct tcpvegas_info vegas;
162 struct tcp_dctcp_info dctcp; 174 struct tcp_dctcp_info dctcp;
175 struct tcp_bbr_info bbr;
163}; 176};
164#endif /* _UAPI_INET_DIAG_H_ */ 177#endif /* _UAPI_INET_DIAG_H_ */
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h
index 395876060f50..8c2772340c3f 100644
--- a/include/uapi/linux/ipv6.h
+++ b/include/uapi/linux/ipv6.h
@@ -177,6 +177,7 @@ enum {
177 DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, 177 DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
178 DEVCONF_DROP_UNSOLICITED_NA, 178 DEVCONF_DROP_UNSOLICITED_NA,
179 DEVCONF_KEEP_ADDR_ON_DOWN, 179 DEVCONF_KEEP_ADDR_ON_DOWN,
180 DEVCONF_RTR_SOLICIT_MAX_INTERVAL,
180 DEVCONF_MAX 181 DEVCONF_MAX
181}; 182};
182 183
diff --git a/include/uapi/linux/netfilter/nf_log.h b/include/uapi/linux/netfilter/nf_log.h
new file mode 100644
index 000000000000..8be21e02387d
--- /dev/null
+++ b/include/uapi/linux/netfilter/nf_log.h
@@ -0,0 +1,12 @@
1#ifndef _NETFILTER_NF_LOG_H
2#define _NETFILTER_NF_LOG_H
3
4#define NF_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */
5#define NF_LOG_TCPOPT 0x02 /* Log TCP options */
6#define NF_LOG_IPOPT 0x04 /* Log IP options */
7#define NF_LOG_UID 0x08 /* Log UID owning local socket */
8#define NF_LOG_NFLOG 0x10 /* Unsupported, don't reuse */
9#define NF_LOG_MACDECODE 0x20 /* Decode MAC header */
10#define NF_LOG_MASK 0x2f
11
12#endif /* _NETFILTER_NF_LOG_H */
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index 28ce01d79707..c6c4477c136b 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -546,6 +546,35 @@ enum nft_cmp_attributes {
546}; 546};
547#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1) 547#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1)
548 548
549/**
550 * enum nft_range_ops - nf_tables range operator
551 *
552 * @NFT_RANGE_EQ: equal
553 * @NFT_RANGE_NEQ: not equal
554 */
555enum nft_range_ops {
556 NFT_RANGE_EQ,
557 NFT_RANGE_NEQ,
558};
559
560/**
561 * enum nft_range_attributes - nf_tables range expression netlink attributes
562 *
563 * @NFTA_RANGE_SREG: source register of data to compare (NLA_U32: nft_registers)
564 * @NFTA_RANGE_OP: cmp operation (NLA_U32: nft_cmp_ops)
565 * @NFTA_RANGE_FROM_DATA: data range from (NLA_NESTED: nft_data_attributes)
566 * @NFTA_RANGE_TO_DATA: data range to (NLA_NESTED: nft_data_attributes)
567 */
568enum nft_range_attributes {
569 NFTA_RANGE_UNSPEC,
570 NFTA_RANGE_SREG,
571 NFTA_RANGE_OP,
572 NFTA_RANGE_FROM_DATA,
573 NFTA_RANGE_TO_DATA,
574 __NFTA_RANGE_MAX
575};
576#define NFTA_RANGE_MAX (__NFTA_RANGE_MAX - 1)
577
549enum nft_lookup_flags { 578enum nft_lookup_flags {
550 NFT_LOOKUP_F_INV = (1 << 0), 579 NFT_LOOKUP_F_INV = (1 << 0),
551}; 580};
@@ -575,6 +604,10 @@ enum nft_dynset_ops {
575 NFT_DYNSET_OP_UPDATE, 604 NFT_DYNSET_OP_UPDATE,
576}; 605};
577 606
607enum nft_dynset_flags {
608 NFT_DYNSET_F_INV = (1 << 0),
609};
610
578/** 611/**
579 * enum nft_dynset_attributes - dynset expression attributes 612 * enum nft_dynset_attributes - dynset expression attributes
580 * 613 *
@@ -585,6 +618,7 @@ enum nft_dynset_ops {
585 * @NFTA_DYNSET_SREG_DATA: source register of the data (NLA_U32) 618 * @NFTA_DYNSET_SREG_DATA: source register of the data (NLA_U32)
586 * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64) 619 * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64)
587 * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes) 620 * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes)
621 * @NFTA_DYNSET_FLAGS: flags (NLA_U32)
588 */ 622 */
589enum nft_dynset_attributes { 623enum nft_dynset_attributes {
590 NFTA_DYNSET_UNSPEC, 624 NFTA_DYNSET_UNSPEC,
@@ -596,6 +630,7 @@ enum nft_dynset_attributes {
596 NFTA_DYNSET_TIMEOUT, 630 NFTA_DYNSET_TIMEOUT,
597 NFTA_DYNSET_EXPR, 631 NFTA_DYNSET_EXPR,
598 NFTA_DYNSET_PAD, 632 NFTA_DYNSET_PAD,
633 NFTA_DYNSET_FLAGS,
599 __NFTA_DYNSET_MAX, 634 __NFTA_DYNSET_MAX,
600}; 635};
601#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1) 636#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
@@ -731,6 +766,7 @@ enum nft_meta_keys {
731 * @NFTA_HASH_LEN: source data length (NLA_U32) 766 * @NFTA_HASH_LEN: source data length (NLA_U32)
732 * @NFTA_HASH_MODULUS: modulus value (NLA_U32) 767 * @NFTA_HASH_MODULUS: modulus value (NLA_U32)
733 * @NFTA_HASH_SEED: seed value (NLA_U32) 768 * @NFTA_HASH_SEED: seed value (NLA_U32)
769 * @NFTA_HASH_OFFSET: add this offset value to hash result (NLA_U32)
734 */ 770 */
735enum nft_hash_attributes { 771enum nft_hash_attributes {
736 NFTA_HASH_UNSPEC, 772 NFTA_HASH_UNSPEC,
@@ -739,6 +775,7 @@ enum nft_hash_attributes {
739 NFTA_HASH_LEN, 775 NFTA_HASH_LEN,
740 NFTA_HASH_MODULUS, 776 NFTA_HASH_MODULUS,
741 NFTA_HASH_SEED, 777 NFTA_HASH_SEED,
778 NFTA_HASH_OFFSET,
742 __NFTA_HASH_MAX, 779 __NFTA_HASH_MAX,
743}; 780};
744#define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1) 781#define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1)
@@ -886,12 +923,14 @@ enum nft_log_attributes {
886 * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16) 923 * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16)
887 * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16) 924 * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16)
888 * @NFTA_QUEUE_FLAGS: various flags (NLA_U16) 925 * @NFTA_QUEUE_FLAGS: various flags (NLA_U16)
926 * @NFTA_QUEUE_SREG_QNUM: source register of queue number (NLA_U32: nft_registers)
889 */ 927 */
890enum nft_queue_attributes { 928enum nft_queue_attributes {
891 NFTA_QUEUE_UNSPEC, 929 NFTA_QUEUE_UNSPEC,
892 NFTA_QUEUE_NUM, 930 NFTA_QUEUE_NUM,
893 NFTA_QUEUE_TOTAL, 931 NFTA_QUEUE_TOTAL,
894 NFTA_QUEUE_FLAGS, 932 NFTA_QUEUE_FLAGS,
933 NFTA_QUEUE_SREG_QNUM,
895 __NFTA_QUEUE_MAX 934 __NFTA_QUEUE_MAX
896}; 935};
897#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1) 936#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1)
@@ -1126,14 +1165,16 @@ enum nft_trace_types {
1126 * enum nft_ng_attributes - nf_tables number generator expression netlink attributes 1165 * enum nft_ng_attributes - nf_tables number generator expression netlink attributes
1127 * 1166 *
1128 * @NFTA_NG_DREG: destination register (NLA_U32) 1167 * @NFTA_NG_DREG: destination register (NLA_U32)
1129 * @NFTA_NG_UNTIL: source value to increment the counter until reset (NLA_U32) 1168 * @NFTA_NG_MODULUS: maximum counter value (NLA_U32)
1130 * @NFTA_NG_TYPE: operation type (NLA_U32) 1169 * @NFTA_NG_TYPE: operation type (NLA_U32)
1170 * @NFTA_NG_OFFSET: offset to be added to the counter (NLA_U32)
1131 */ 1171 */
1132enum nft_ng_attributes { 1172enum nft_ng_attributes {
1133 NFTA_NG_UNSPEC, 1173 NFTA_NG_UNSPEC,
1134 NFTA_NG_DREG, 1174 NFTA_NG_DREG,
1135 NFTA_NG_UNTIL, 1175 NFTA_NG_MODULUS,
1136 NFTA_NG_TYPE, 1176 NFTA_NG_TYPE,
1177 NFTA_NG_OFFSET,
1137 __NFTA_NG_MAX 1178 __NFTA_NG_MAX
1138}; 1179};
1139#define NFTA_NG_MAX (__NFTA_NG_MAX - 1) 1180#define NFTA_NG_MAX (__NFTA_NG_MAX - 1)
diff --git a/include/uapi/linux/netfilter/nfnetlink_conntrack.h b/include/uapi/linux/netfilter/nfnetlink_conntrack.h
index 9df789709abe..6deb8867c5fc 100644
--- a/include/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/include/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -231,13 +231,13 @@ enum ctattr_secctx {
231 231
232enum ctattr_stats_cpu { 232enum ctattr_stats_cpu {
233 CTA_STATS_UNSPEC, 233 CTA_STATS_UNSPEC,
234 CTA_STATS_SEARCHED, 234 CTA_STATS_SEARCHED, /* no longer used */
235 CTA_STATS_FOUND, 235 CTA_STATS_FOUND,
236 CTA_STATS_NEW, 236 CTA_STATS_NEW, /* no longer used */
237 CTA_STATS_INVALID, 237 CTA_STATS_INVALID,
238 CTA_STATS_IGNORE, 238 CTA_STATS_IGNORE,
239 CTA_STATS_DELETE, 239 CTA_STATS_DELETE, /* no longer used */
240 CTA_STATS_DELETE_LIST, 240 CTA_STATS_DELETE_LIST, /* no longer used */
241 CTA_STATS_INSERT, 241 CTA_STATS_INSERT,
242 CTA_STATS_INSERT_FAILED, 242 CTA_STATS_INSERT_FAILED,
243 CTA_STATS_DROP, 243 CTA_STATS_DROP,
diff --git a/include/uapi/linux/netfilter/xt_hashlimit.h b/include/uapi/linux/netfilter/xt_hashlimit.h
index 6db90372f09c..3efc0ca18345 100644
--- a/include/uapi/linux/netfilter/xt_hashlimit.h
+++ b/include/uapi/linux/netfilter/xt_hashlimit.h
@@ -6,6 +6,7 @@
6 6
7/* timings are in milliseconds. */ 7/* timings are in milliseconds. */
8#define XT_HASHLIMIT_SCALE 10000 8#define XT_HASHLIMIT_SCALE 10000
9#define XT_HASHLIMIT_SCALE_v2 1000000llu
9/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 10/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490
10 * seconds, or one packet every 59 hours. 11 * seconds, or one packet every 59 hours.
11 */ 12 */
@@ -63,6 +64,20 @@ struct hashlimit_cfg1 {
63 __u8 srcmask, dstmask; 64 __u8 srcmask, dstmask;
64}; 65};
65 66
67struct hashlimit_cfg2 {
68 __u64 avg; /* Average secs between packets * scale */
69 __u64 burst; /* Period multiplier for upper limit. */
70 __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */
71
72 /* user specified */
73 __u32 size; /* how many buckets */
74 __u32 max; /* max number of entries */
75 __u32 gc_interval; /* gc interval */
76 __u32 expire; /* when do entries expire? */
77
78 __u8 srcmask, dstmask;
79};
80
66struct xt_hashlimit_mtinfo1 { 81struct xt_hashlimit_mtinfo1 {
67 char name[IFNAMSIZ]; 82 char name[IFNAMSIZ];
68 struct hashlimit_cfg1 cfg; 83 struct hashlimit_cfg1 cfg;
@@ -71,4 +86,12 @@ struct xt_hashlimit_mtinfo1 {
71 struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); 86 struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
72}; 87};
73 88
89struct xt_hashlimit_mtinfo2 {
90 char name[NAME_MAX];
91 struct hashlimit_cfg2 cfg;
92
93 /* Used internally by the kernel */
94 struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
95};
96
74#endif /* _UAPI_XT_HASHLIMIT_H */ 97#endif /* _UAPI_XT_HASHLIMIT_H */
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
index 8915b61bbf83..8fd715f806a2 100644
--- a/include/uapi/linux/pkt_cls.h
+++ b/include/uapi/linux/pkt_cls.h
@@ -396,6 +396,7 @@ enum {
396 TCA_BPF_FD, 396 TCA_BPF_FD,
397 TCA_BPF_NAME, 397 TCA_BPF_NAME,
398 TCA_BPF_FLAGS, 398 TCA_BPF_FLAGS,
399 TCA_BPF_FLAGS_GEN,
399 __TCA_BPF_MAX, 400 __TCA_BPF_MAX,
400}; 401};
401 402
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h
index 2382eed50278..df7451d35131 100644
--- a/include/uapi/linux/pkt_sched.h
+++ b/include/uapi/linux/pkt_sched.h
@@ -792,6 +792,8 @@ enum {
792 792
793 TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */ 793 TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */
794 794
795 TCA_FQ_LOW_RATE_THRESHOLD, /* per packet delay under this rate */
796
795 __TCA_FQ_MAX 797 __TCA_FQ_MAX
796}; 798};
797 799
@@ -809,7 +811,7 @@ struct tc_fq_qd_stats {
809 __u32 flows; 811 __u32 flows;
810 __u32 inactive_flows; 812 __u32 inactive_flows;
811 __u32 throttled_flows; 813 __u32 throttled_flows;
812 __u32 pad; 814 __u32 unthrottle_latency_ns;
813}; 815};
814 816
815/* Heavy-Hitter Filter */ 817/* Heavy-Hitter Filter */
diff --git a/include/uapi/linux/tc_act/tc_ife.h b/include/uapi/linux/tc_act/tc_ife.h
index 4ece02a77b9a..cd18360eca24 100644
--- a/include/uapi/linux/tc_act/tc_ife.h
+++ b/include/uapi/linux/tc_act/tc_ife.h
@@ -32,8 +32,9 @@ enum {
32#define IFE_META_HASHID 2 32#define IFE_META_HASHID 2
33#define IFE_META_PRIO 3 33#define IFE_META_PRIO 3
34#define IFE_META_QMAP 4 34#define IFE_META_QMAP 4
35#define IFE_META_TCINDEX 5
35/*Can be overridden at runtime by module option*/ 36/*Can be overridden at runtime by module option*/
36#define __IFE_META_MAX 5 37#define __IFE_META_MAX 6
37#define IFE_META_MAX (__IFE_META_MAX - 1) 38#define IFE_META_MAX (__IFE_META_MAX - 1)
38 39
39#endif 40#endif
diff --git a/include/uapi/linux/tc_act/tc_vlan.h b/include/uapi/linux/tc_act/tc_vlan.h
index be72b6e3843b..bddb272b843f 100644
--- a/include/uapi/linux/tc_act/tc_vlan.h
+++ b/include/uapi/linux/tc_act/tc_vlan.h
@@ -16,6 +16,7 @@
16 16
17#define TCA_VLAN_ACT_POP 1 17#define TCA_VLAN_ACT_POP 1
18#define TCA_VLAN_ACT_PUSH 2 18#define TCA_VLAN_ACT_PUSH 2
19#define TCA_VLAN_ACT_MODIFY 3
19 20
20struct tc_vlan { 21struct tc_vlan {
21 tc_gen; 22 tc_gen;
diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
index 482898fc433a..73ac0db487f8 100644
--- a/include/uapi/linux/tcp.h
+++ b/include/uapi/linux/tcp.h
@@ -167,6 +167,7 @@ struct tcp_info {
167 __u8 tcpi_backoff; 167 __u8 tcpi_backoff;
168 __u8 tcpi_options; 168 __u8 tcpi_options;
169 __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; 169 __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
170 __u8 tcpi_delivery_rate_app_limited:1;
170 171
171 __u32 tcpi_rto; 172 __u32 tcpi_rto;
172 __u32 tcpi_ato; 173 __u32 tcpi_ato;
@@ -211,6 +212,8 @@ struct tcp_info {
211 __u32 tcpi_min_rtt; 212 __u32 tcpi_min_rtt;
212 __u32 tcpi_data_segs_in; /* RFC4898 tcpEStatsDataSegsIn */ 213 __u32 tcpi_data_segs_in; /* RFC4898 tcpEStatsDataSegsIn */
213 __u32 tcpi_data_segs_out; /* RFC4898 tcpEStatsDataSegsOut */ 214 __u32 tcpi_data_segs_out; /* RFC4898 tcpEStatsDataSegsOut */
215
216 __u64 tcpi_delivery_rate;
214}; 217};
215 218
216/* for TCP_MD5SIG socket option */ 219/* for TCP_MD5SIG socket option */
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h
index 143338978b48..1fc62b239f1b 100644
--- a/include/uapi/linux/xfrm.h
+++ b/include/uapi/linux/xfrm.h
@@ -298,7 +298,7 @@ enum xfrm_attr_type_t {
298 XFRMA_ALG_AUTH_TRUNC, /* struct xfrm_algo_auth */ 298 XFRMA_ALG_AUTH_TRUNC, /* struct xfrm_algo_auth */
299 XFRMA_MARK, /* struct xfrm_mark */ 299 XFRMA_MARK, /* struct xfrm_mark */
300 XFRMA_TFCPAD, /* __u32 */ 300 XFRMA_TFCPAD, /* __u32 */
301 XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */ 301 XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_state_esn */
302 XFRMA_SA_EXTRA_FLAGS, /* __u32 */ 302 XFRMA_SA_EXTRA_FLAGS, /* __u32 */
303 XFRMA_PROTO, /* __u8 */ 303 XFRMA_PROTO, /* __u8 */
304 XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ 304 XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */