History

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

Pull networking updates from David Miller: "Highlights: - Gustavo A. R. Silva keeps working on the implicit switch fallthru changes. - Support 802.11ax High-Efficiency wireless in cfg80211 et al, From Luca Coelho. - Re-enable ASPM in r8169, from Kai-Heng Feng. - Add virtual XFRM interfaces, which avoids all of the limitations of existing IPSEC tunnels. From Steffen Klassert. - Convert GRO over to use a hash table, so that when we have many flows active we don't traverse a long list during accumluation. - Many new self tests for routing, TC, tunnels, etc. Too many contributors to mention them all, but I'm really happy to keep seeing this stuff. - Hardware timestamping support for dpaa_eth/fsl-fman from Yangbo Lu. - Lots of cleanups and fixes in L2TP code from Guillaume Nault. - Add IPSEC offload support to netdevsim, from Shannon Nelson. - Add support for slotting with non-uniform distribution to netem packet scheduler, from Yousuk Seung. - Add UDP GSO support to mlx5e, from Boris Pismenny. - Support offloading of Team LAG in NFP, from John Hurley. - Allow to configure TX queue selection based upon RX queue, from Amritha Nambiar. - Support ethtool ring size configuration in aquantia, from Anton Mikaev. - Support DSCP and flowlabel per-transport in SCTP, from Xin Long. - Support list based batching and stack traversal of SKBs, this is very exciting work. From Edward Cree. - Busyloop optimizations in vhost_net, from Toshiaki Makita. - Introduce the ETF qdisc, which allows time based transmissions. IGB can offload this in hardware. From Vinicius Costa Gomes. - Add parameter support to devlink, from Moshe Shemesh. - Several multiplication and division optimizations for BPF JIT in nfp driver, from Jiong Wang. - Lots of prepatory work to make more of the packet scheduler layer lockless, when possible, from Vlad Buslov. - Add ACK filter and NAT awareness to sch_cake packet scheduler, from Toke Høiland-Jørgensen. - Support regions and region snapshots in devlink, from Alex Vesker. - Allow to attach XDP programs to both HW and SW at the same time on a given device, with initial support in nfp. From Jakub Kicinski. - Add TLS RX offload and support in mlx5, from Ilya Lesokhin. - Use PHYLIB in r8169 driver, from Heiner Kallweit. - All sorts of changes to support Spectrum 2 in mlxsw driver, from Ido Schimmel. - PTP support in mv88e6xxx DSA driver, from Andrew Lunn. - Make TCP_USER_TIMEOUT socket option more accurate, from Jon Maxwell. - Support for templates in packet scheduler classifier, from Jiri Pirko. - IPV6 support in RDS, from Ka-Cheong Poon. - Native tproxy support in nf_tables, from Máté Eckl. - Maintain IP fragment queue in an rbtree, but optimize properly for in-order frags. From Peter Oskolkov. - Improvde handling of ACKs on hole repairs, from Yuchung Cheng" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1996 commits) bpf: test: fix spelling mistake "REUSEEPORT" -> "REUSEPORT" hv/netvsc: Fix NULL dereference at single queue mode fallback net: filter: mark expected switch fall-through xen-netfront: fix warn message as irq device name has '/' cxgb4: Add new T5 PCI device ids 0x50af and 0x50b0 net: dsa: mv88e6xxx: missing unlock on error path rds: fix building with IPV6=m inet/connection_sock: prefer _THIS_IP_ to current_text_addr net: dsa: mv88e6xxx: bitwise vs logical bug net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd() ieee802154: hwsim: using right kind of iteration net: hns3: Add vlan filter setting by ethtool command -K net: hns3: Set tx ring' tc info when netdev is up net: hns3: Remove tx ring BD len register in hns3_enet net: hns3: Fix desc num set to default when setting channel net: hns3: Fix for phy link issue when using marvell phy driver net: hns3: Fix for information of phydev lost problem when down/up net: hns3: Fix for command format parsing error in hclge_is_all_function_id_zero net: hns3: Add support for serdes loopback selftest bnxt_en: take coredump_record structure off stack ...

Linus Torvalds committed 8 years ago

Commit 9a76aba2 parents 0a95746 26a1ccc1752 files · +119401 −29298Browse files

Showing the changes to include/uapi/linux (36 of 1752 files). Show all

Unified · Split

36 files
  1. include/uapi/linux/bpf.h +99 −5
  2. include/uapi/linux/can.h +1 −1
  3. include/uapi/linux/dcbnl.h +2 −1
  4. include/uapi/linux/devlink.h +42 −0
  5. include/uapi/linux/errqueue.h +4 −0
  6. include/uapi/linux/ethtool.h +6 −3
  7. include/uapi/linux/if_link.h +17 −0
  8. include/uapi/linux/ila.h +1 −0
  9. include/uapi/linux/ip.h +1 −0
  10. include/uapi/linux/l2tp.h +8 −7
  11. include/uapi/linux/mii.h +1 −0
  12. include/uapi/linux/mroute.h +2 −0
  13. include/uapi/linux/net_tstamp.h +18 −0
  14. include/uapi/linux/netconf.h +1 −0
  15. include/uapi/linux/netfilter/nf_tables.h +122 −2
  16. include/uapi/linux/netfilter/nfnetlink_osf.h +32 −0
  17. include/uapi/linux/netfilter/xt_osf.h +5 −17
  18. include/uapi/linux/netfilter_bridge.h +11 −0
  19. include/uapi/linux/nl80211.h +101 −1
  20. include/uapi/linux/openvswitch.h +3 −0
  21. include/uapi/linux/pkt_cls.h +39 −2
  22. include/uapi/linux/pkt_sched.h +150 −0
  23. include/uapi/linux/ppp-ioctl.h +1 −1
  24. include/uapi/linux/rds.h +67 −2
  25. include/uapi/linux/rtnetlink.h +7 −0
  26. include/uapi/linux/sctp.h +5 −0
  27. include/uapi/linux/smc_diag.h +24 −1
  28. include/uapi/linux/snmp.h +3 −0
  29. include/uapi/linux/sysctl.h +2 −1
  30. include/uapi/linux/tc_act/tc_pedit.h +7 −2
  31. include/uapi/linux/tc_act/tc_skbedit.h +2 −0
  32. include/uapi/linux/tc_act/tc_tunnel_key.h +28 −0
  33. include/uapi/linux/tcp.h +9 −1
  34. include/uapi/linux/tipc_netlink.h +14 −0
  35. include/uapi/linux/vhost.h +18 −0
  36. include/uapi/linux/xfrm.h +4 −1
include/uapi/linux/bpf.h+99−5
@@ -75,6 +75,11 @@ struct bpf_lpm_trie_key { · 74 unmodified lines
7575 __u8 data[0]; /* Arbitrary size */
7676 };
7777
78+struct bpf_cgroup_storage_key {
79+ __u64 cgroup_inode_id; /* cgroup inode id */
80+ __u32 attach_type; /* program attach type */
81+};
82+
7883 /* BPF syscall commands, see bpf(2) man-page for details. */
7984 enum bpf_cmd {
8085 BPF_MAP_CREATE,
@@ -120,6 +125,8 @@ enum bpf_map_type { · 39 unmodified lines
120125 BPF_MAP_TYPE_CPUMAP,
121126 BPF_MAP_TYPE_XSKMAP,
122127 BPF_MAP_TYPE_SOCKHASH,
128+ BPF_MAP_TYPE_CGROUP_STORAGE,
129+ BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
123130 };
124131
125132 enum bpf_prog_type {
@@ -144,6 +151,7 @@ enum bpf_prog_type { · 18 unmodified lines
144151 BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
145152 BPF_PROG_TYPE_LWT_SEG6LOCAL,
146153 BPF_PROG_TYPE_LIRC_MODE2,
154+ BPF_PROG_TYPE_SK_REUSEPORT,
147155 };
148156
149157 enum bpf_attach_type {
@@ -1371,6 +1379,20 @@ union bpf_attr { · 1221 unmodified lines
13711379 * A 8-byte long non-decreasing number on success, or 0 if the
13721380 * socket field is missing inside *skb*.
13731381 *
1382+ * u64 bpf_get_socket_cookie(struct bpf_sock_addr *ctx)
1383+ * Description
1384+ * Equivalent to bpf_get_socket_cookie() helper that accepts
1385+ * *skb*, but gets socket from **struct bpf_sock_addr** contex.
1386+ * Return
1387+ * A 8-byte long non-decreasing number.
1388+ *
1389+ * u64 bpf_get_socket_cookie(struct bpf_sock_ops *ctx)
1390+ * Description
1391+ * Equivalent to bpf_get_socket_cookie() helper that accepts
1392+ * *skb*, but gets socket from **struct bpf_sock_ops** contex.
1393+ * Return
1394+ * A 8-byte long non-decreasing number.
1395+ *
13741396 * u32 bpf_get_socket_uid(struct sk_buff *skb)
13751397 * Return
13761398 * The owner UID of the socket associated to *skb*. If the socket
@@ -1826,7 +1848,7 @@ union bpf_attr { · 449 unmodified lines
18261848 * A non-negative value equal to or less than *size* on success,
18271849 * or a negative error in case of failure.
18281850 *
1829− * int skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
1851+ * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
18301852 * Description
18311853 * This helper is similar to **bpf_skb_load_bytes**\ () in that
18321854 * it provides an easy way to load *len* bytes from *offset*
@@ -1877,7 +1899,7 @@ union bpf_attr { · 44 unmodified lines
18771899 * * < 0 if any input argument is invalid
18781900 * * 0 on success (packet is forwarded, nexthop neighbor exists)
18791901 * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
1880− * * packet is not forwarded or needs assist from full stack
1902+ * packet is not forwarded or needs assist from full stack
18811903 *
18821904 * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
18831905 * Description
@@ -2033,7 +2055,6 @@ union bpf_attr { · 149 unmodified lines
20332055 * This helper is only available is the kernel was compiled with
20342056 * the **CONFIG_BPF_LIRC_MODE2** configuration option set to
20352057 * "**y**".
2036− *
20372058 * Return
20382059 * 0
20392060 *
@@ -2053,7 +2074,6 @@ union bpf_attr { · 13 unmodified lines
20532074 * This helper is only available is the kernel was compiled with
20542075 * the **CONFIG_BPF_LIRC_MODE2** configuration option set to
20552076 * "**y**".
2056− *
20572077 * Return
20582078 * 0
20592079 *
@@ -2073,10 +2093,54 @@ union bpf_attr { · 13 unmodified lines
20732093 * Return
20742094 * The id is returned or 0 in case the id could not be retrieved.
20752095 *
2096+ * u64 bpf_skb_ancestor_cgroup_id(struct sk_buff *skb, int ancestor_level)
2097+ * Description
2098+ * Return id of cgroup v2 that is ancestor of cgroup associated
2099+ * with the *skb* at the *ancestor_level*. The root cgroup is at
2100+ * *ancestor_level* zero and each step down the hierarchy
2101+ * increments the level. If *ancestor_level* == level of cgroup
2102+ * associated with *skb*, then return value will be same as that
2103+ * of **bpf_skb_cgroup_id**\ ().
2104+ *
2105+ * The helper is useful to implement policies based on cgroups
2106+ * that are upper in hierarchy than immediate cgroup associated
2107+ * with *skb*.
2108+ *
2109+ * The format of returned id and helper limitations are same as in
2110+ * **bpf_skb_cgroup_id**\ ().
2111+ * Return
2112+ * The id is returned or 0 in case the id could not be retrieved.
2113+ *
20762114 * u64 bpf_get_current_cgroup_id(void)
20772115 * Return
20782116 * A 64-bit integer containing the current cgroup id based
20792117 * on the cgroup within which the current task is running.
2118+ *
2119+ * void* get_local_storage(void *map, u64 flags)
2120+ * Description
2121+ * Get the pointer to the local storage area.
2122+ * The type and the size of the local storage is defined
2123+ * by the *map* argument.
2124+ * The *flags* meaning is specific for each map type,
2125+ * and has to be 0 for cgroup local storage.
2126+ *
2127+ * Depending on the bpf program type, a local storage area
2128+ * can be shared between multiple instances of the bpf program,
2129+ * running simultaneously.
2130+ *
2131+ * A user should care about the synchronization by himself.
2132+ * For example, by using the BPF_STX_XADD instruction to alter
2133+ * the shared data.
2134+ * Return
2135+ * Pointer to the local storage area.
2136+ *
2137+ * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
2138+ * Description
2139+ * Select a SO_REUSEPORT sk from a BPF_MAP_TYPE_REUSEPORT_ARRAY map
2140+ * It checks the selected sk is matching the incoming
2141+ * request in the skb.
2142+ * Return
2143+ * 0 on success, or a negative error in case of failure.
20802144 */
20812145 #define __BPF_FUNC_MAPPER(FN) \
20822146 FN(unspec), \
@@ -2159,7 +2223,10 @@ union bpf_attr { · 76 unmodified lines
21592223 FN(rc_repeat), \
21602224 FN(rc_keydown), \
21612225 FN(skb_cgroup_id), \
2162− FN(get_current_cgroup_id),
2226+ FN(get_current_cgroup_id), \
2227+ FN(get_local_storage), \
2228+ FN(sk_select_reuseport), \
2229+ FN(skb_ancestor_cgroup_id),
21632230
21642231 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
21652232 * function eBPF program intends to call
@@ -2376,6 +2443,30 @@ struct sk_msg_md { · 210 unmodified lines
23762443 __u32 local_port; /* stored in host byte order */
23772444 };
23782445
2446+struct sk_reuseport_md {
2447+ /*
2448+ * Start of directly accessible data. It begins from
2449+ * the tcp/udp header.
2450+ */
2451+ void *data;
2452+ void *data_end; /* End of directly accessible data */
2453+ /*
2454+ * Total length of packet (starting from the tcp/udp header).
2455+ * Note that the directly accessible bytes (data_end - data)
2456+ * could be less than this "len". Those bytes could be
2457+ * indirectly read by a helper "bpf_skb_load_bytes()".
2458+ */
2459+ __u32 len;
2460+ /*
2461+ * Eth protocol in the mac header (network byte order). e.g.
2462+ * ETH_P_IP(0x0800) and ETH_P_IPV6(0x86DD)
2463+ */
2464+ __u32 eth_protocol;
2465+ __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
2466+ __u32 bind_inany; /* Is sock bound to an INANY address? */
2467+ __u32 hash; /* A hash of the packet 4 tuples */
2468+};
2469+
23792470 #define BPF_TAG_SIZE 8
23802471
23812472 struct bpf_prog_info {
@@ -2557,6 +2648,9 @@ enum { · 175 unmodified lines
25572648 * Arg1: old_state
25582649 * Arg2: new_state
25592650 */
2651+ BPF_SOCK_OPS_TCP_LISTEN_CB, /* Called on listen(2), right after
2652+ * socket transition to LISTEN state.
2653+ */
25602654 };
25612655
25622656 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
include/uapi/linux/can.h+1−1
@@ -77,7 +77,7 @@ typedef __u32 canid_t; · 76 unmodified lines
7777 /*
7878 * Controller Area Network Error Message Frame Mask structure
7979 *
80− * bit 0-28 : error class mask (see include/linux/can/error.h)
80+ * bit 0-28 : error class mask (see include/uapi/linux/can/error.h)
8181 * bit 29-31 : set to zero
8282 */
8383 typedef __u32 can_err_mask_t;
include/uapi/linux/dcbnl.h+2−1
@@ -233,7 +233,8 @@ struct cee_pfc { · 232 unmodified lines
233233 * 2 Well known port number over TCP or SCTP
234234 * 3 Well known port number over UDP or DCCP
235235 * 4 Well known port number over TCP, SCTP, UDP, or DCCP
236− * 5-7 Reserved
236+ * 5 Differentiated Services Code Point (DSCP) value
237+ * 6-7 Reserved
237238 *
238239 * Selector field values for CEE
239240 * 0 Ethertype
include/uapi/linux/devlink.h+42−0
@@ -78,6 +78,17 @@ enum devlink_command { · 77 unmodified lines
7878 */
7979 DEVLINK_CMD_RELOAD,
8080
81+ DEVLINK_CMD_PARAM_GET, /* can dump */
82+ DEVLINK_CMD_PARAM_SET,
83+ DEVLINK_CMD_PARAM_NEW,
84+ DEVLINK_CMD_PARAM_DEL,
85+
86+ DEVLINK_CMD_REGION_GET,
87+ DEVLINK_CMD_REGION_SET,
88+ DEVLINK_CMD_REGION_NEW,
89+ DEVLINK_CMD_REGION_DEL,
90+ DEVLINK_CMD_REGION_READ,
91+
8192 /* add new commands above here */
8293 __DEVLINK_CMD_MAX,
8394 DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -142,6 +153,16 @@ enum devlink_port_flavour { · 58 unmodified lines
142153 */
143154 };
144155
156+enum devlink_param_cmode {
157+ DEVLINK_PARAM_CMODE_RUNTIME,
158+ DEVLINK_PARAM_CMODE_DRIVERINIT,
159+ DEVLINK_PARAM_CMODE_PERMANENT,
160+
161+ /* Add new configuration modes above */
162+ __DEVLINK_PARAM_CMODE_MAX,
163+ DEVLINK_PARAM_CMODE_MAX = __DEVLINK_PARAM_CMODE_MAX - 1
164+};
165+
145166 enum devlink_attr {
146167 /* don't change the order or add anything between, this is ABI! */
147168 DEVLINK_ATTR_UNSPEC,
@@ -238,6 +259,27 @@ enum devlink_attr { · 90 unmodified lines
238259 DEVLINK_ATTR_PORT_NUMBER, /* u32 */
239260 DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, /* u32 */
240261
262+ DEVLINK_ATTR_PARAM, /* nested */
263+ DEVLINK_ATTR_PARAM_NAME, /* string */
264+ DEVLINK_ATTR_PARAM_GENERIC, /* flag */
265+ DEVLINK_ATTR_PARAM_TYPE, /* u8 */
266+ DEVLINK_ATTR_PARAM_VALUES_LIST, /* nested */
267+ DEVLINK_ATTR_PARAM_VALUE, /* nested */
268+ DEVLINK_ATTR_PARAM_VALUE_DATA, /* dynamic */
269+ DEVLINK_ATTR_PARAM_VALUE_CMODE, /* u8 */
270+
271+ DEVLINK_ATTR_REGION_NAME, /* string */
272+ DEVLINK_ATTR_REGION_SIZE, /* u64 */
273+ DEVLINK_ATTR_REGION_SNAPSHOTS, /* nested */
274+ DEVLINK_ATTR_REGION_SNAPSHOT, /* nested */
275+ DEVLINK_ATTR_REGION_SNAPSHOT_ID, /* u32 */
276+
277+ DEVLINK_ATTR_REGION_CHUNKS, /* nested */
278+ DEVLINK_ATTR_REGION_CHUNK, /* nested */
279+ DEVLINK_ATTR_REGION_CHUNK_DATA, /* binary */
280+ DEVLINK_ATTR_REGION_CHUNK_ADDR, /* u64 */
281+ DEVLINK_ATTR_REGION_CHUNK_LEN, /* u64 */
282+
241283 /* add new attributes above here, update the policy in devlink.c */
242284
243285 __DEVLINK_ATTR_MAX,
include/uapi/linux/errqueue.h+4−0
@@ -20,12 +20,16 @@ struct sock_extended_err { · 19 unmodified lines
2020 #define SO_EE_ORIGIN_ICMP6 3
2121 #define SO_EE_ORIGIN_TXSTATUS 4
2222 #define SO_EE_ORIGIN_ZEROCOPY 5
23+#define SO_EE_ORIGIN_TXTIME 6
2324 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
2425
2526 #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1))
2627
2728 #define SO_EE_CODE_ZEROCOPY_COPIED 1
2829
30+#define SO_EE_CODE_TXTIME_INVALID_PARAM 1
31+#define SO_EE_CODE_TXTIME_MISSED 2
32+
2933 /**
3034 * struct scm_timestamping - timestamps exposed through cmsg
3135 *
include/uapi/linux/ethtool.h+6−3
@@ -870,7 +870,8 @@ struct ethtool_flow_ext { · 869 unmodified lines
870870 * includes the %FLOW_EXT or %FLOW_MAC_EXT flag
871871 * (see &struct ethtool_flow_ext description).
872872 * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
873− * if packets should be discarded
873+ * if packets should be discarded, or %RX_CLS_FLOW_WAKE if the
874+ * packets should be used for Wake-on-LAN with %WAKE_FILTER
874875 * @location: Location of rule in the table. Locations must be
875876 * numbered such that a flow matching multiple rules will be
876877 * classified according to the first (lowest numbered) rule.
@@ -902,13 +903,13 @@ struct ethtool_rx_flow_spec { · 25 unmodified lines
902903 static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie)
903904 {
904905 return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie;
905−};
906+}
906907
907908 static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
908909 {
909910 return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >>
910911 ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF;
911−};
912+}
912913
913914 /**
914915 * struct ethtool_rxnfc - command to get or set RX flow classification rules
@@ -1634,6 +1635,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 719 unmodified lines
16341635 #define WAKE_ARP (1 << 4)
16351636 #define WAKE_MAGIC (1 << 5)
16361637 #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
1638+#define WAKE_FILTER (1 << 7)
16371639
16381640 /* L2-L4 network traffic flow types */
16391641 #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
@@ -1671,6 +1673,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 31 unmodified lines
16711673 #define RXH_DISCARD (1 << 31)
16721674
16731675 #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
1676+#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL
16741677
16751678 /* Special RX classification rule insert location values */
16761679 #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */
include/uapi/linux/if_link.h+17−0
@@ -164,6 +164,8 @@ enum { · 163 unmodified lines
164164 IFLA_CARRIER_UP_COUNT,
165165 IFLA_CARRIER_DOWN_COUNT,
166166 IFLA_NEW_IFINDEX,
167+ IFLA_MIN_MTU,
168+ IFLA_MAX_MTU,
167169 __IFLA_MAX
168170 };
169171
@@ -334,6 +336,7 @@ enum { · 164 unmodified lines
334336 IFLA_BRPORT_GROUP_FWD_MASK,
335337 IFLA_BRPORT_NEIGH_SUPPRESS,
336338 IFLA_BRPORT_ISOLATED,
339+ IFLA_BRPORT_BACKUP_PORT,
337340 __IFLA_BRPORT_MAX
338341 };
339342 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -459,6 +462,16 @@ enum { · 119 unmodified lines
459462
460463 #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1)
461464
465+/* XFRM section */
466+enum {
467+ IFLA_XFRM_UNSPEC,
468+ IFLA_XFRM_LINK,
469+ IFLA_XFRM_IF_ID,
470+ __IFLA_XFRM_MAX
471+};
472+
473+#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1)
474+
462475 enum macsec_validation_type {
463476 MACSEC_VALIDATE_DISABLED = 0,
464477 MACSEC_VALIDATE_CHECK = 1,
@@ -920,6 +933,7 @@ enum { · 455 unmodified lines
920933 XDP_ATTACHED_DRV,
921934 XDP_ATTACHED_SKB,
922935 XDP_ATTACHED_HW,
936+ XDP_ATTACHED_MULTI,
923937 };
924938
925939 enum {
@@ -928,6 +942,9 @@ enum { · 2 unmodified lines
928942 IFLA_XDP_ATTACHED,
929943 IFLA_XDP_FLAGS,
930944 IFLA_XDP_PROG_ID,
945+ IFLA_XDP_DRV_PROG_ID,
946+ IFLA_XDP_SKB_PROG_ID,
947+ IFLA_XDP_HW_PROG_ID,
931948 __IFLA_XDP_MAX,
932949 };
933950
include/uapi/linux/ila.h+1−0
@@ -30,6 +30,7 @@ enum { · 29 unmodified lines
3030 ILA_CMD_ADD,
3131 ILA_CMD_DEL,
3232 ILA_CMD_GET,
33+ ILA_CMD_FLUSH,
3334
3435 __ILA_CMD_MAX,
3536 };
include/uapi/linux/ip.h+1−0
@@ -168,6 +168,7 @@ enum · 167 unmodified lines
168168 IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
169169 IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
170170 IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
171+ IPV4_DEVCONF_BC_FORWARDING,
171172 __IPV4_DEVCONF_MAX
172173 };
173174
include/uapi/linux/l2tp.h+8−7
@@ -60,14 +60,14 @@ struct sockaddr_l2tpip6 { · 59 unmodified lines
6060 /*
6161 * Commands.
6262 * Valid TLVs of each command are:-
63− * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid
63+ * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum
6464 * TUNNEL_DELETE - CONN_ID
6565 * TUNNEL_MODIFY - CONN_ID, udpcsum
6666 * TUNNEL_GETSTATS - CONN_ID, (stats)
6767 * TUNNEL_GET - CONN_ID, (...)
68− * SESSION_CREATE - SESSION_ID, PW_TYPE, data_seq, cookie, peer_cookie, l2spec
68+ * SESSION_CREATE - SESSION_ID, PW_TYPE, cookie, peer_cookie, l2spec
6969 * SESSION_DELETE - SESSION_ID
70− * SESSION_MODIFY - SESSION_ID, data_seq
70+ * SESSION_MODIFY - SESSION_ID
7171 * SESSION_GET - SESSION_ID, (...)
7272 * SESSION_GETSTATS - SESSION_ID, (stats)
7373 *
@@ -95,7 +95,7 @@ enum { · 21 unmodified lines
9595 L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
9696 L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
9797 L2TP_ATTR_OFFSET, /* u16 (not used) */
98− L2TP_ATTR_DATA_SEQ, /* u16 */
98+ L2TP_ATTR_DATA_SEQ, /* u16 (not used) */
9999 L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
100100 L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */
101101 L2TP_ATTR_PROTO_VERSION, /* u8 */
@@ -105,7 +105,7 @@ enum { · 3 unmodified lines
105105 L2TP_ATTR_SESSION_ID, /* u32 */
106106 L2TP_ATTR_PEER_SESSION_ID, /* u32 */
107107 L2TP_ATTR_UDP_CSUM, /* u8 */
108− L2TP_ATTR_VLAN_ID, /* u16 */
108+ L2TP_ATTR_VLAN_ID, /* u16 (not used) */
109109 L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
110110 L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
111111 L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */
@@ -119,8 +119,8 @@ enum { · 7 unmodified lines
119119 L2TP_ATTR_IP_DADDR, /* u32 */
120120 L2TP_ATTR_UDP_SPORT, /* u16 */
121121 L2TP_ATTR_UDP_DPORT, /* u16 */
122− L2TP_ATTR_MTU, /* u16 */
123− L2TP_ATTR_MRU, /* u16 */
122+ L2TP_ATTR_MTU, /* u16 (not used) */
123+ L2TP_ATTR_MRU, /* u16 (not used) */
124124 L2TP_ATTR_STATS, /* nested */
125125 L2TP_ATTR_IP6_SADDR, /* struct in6_addr */
126126 L2TP_ATTR_IP6_DADDR, /* struct in6_addr */
@@ -169,6 +169,7 @@ enum l2tp_encap_type { · 42 unmodified lines
169169 L2TP_ENCAPTYPE_IP,
170170 };
171171
172+/* For L2TP_ATTR_DATA_SEQ. Unused. */
172173 enum l2tp_seqmode {
173174 L2TP_SEQ_NONE = 0,
174175 L2TP_SEQ_IP = 1,
include/uapi/linux/mii.h+1−0
@@ -136,6 +136,7 @@ · 135 unmodified lines
136136 #define CTL1000_ENABLE_MASTER 0x1000
137137
138138 /* 1000BASE-T Status register */
139+#define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */
139140 #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */
140141 #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */
141142 #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */
include/uapi/linux/mroute.h+2−0
@@ -120,6 +120,7 @@ enum { · 119 unmodified lines
120120 IPMRA_TABLE_MROUTE_DO_ASSERT,
121121 IPMRA_TABLE_MROUTE_DO_PIM,
122122 IPMRA_TABLE_VIFS,
123+ IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE,
123124 __IPMRA_TABLE_MAX
124125 };
125126 #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1)
@@ -173,5 +174,6 @@ enum { · 47 unmodified lines
173174 #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
174175 #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
175176 #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
177+#define IGMPMSG_WRVIFWHOLE 4 /* For PIM Register and assert processing */
176178
177179 #endif /* _UAPI__LINUX_MROUTE_H */
include/uapi/linux/net_tstamp.h+18−0
@@ -141,4 +141,22 @@ struct scm_ts_pktinfo { · 140 unmodified lines
141141 __u32 reserved[2];
142142 };
143143
144+/*
145+ * SO_TXTIME gets a struct sock_txtime with flags being an integer bit
146+ * field comprised of these values.
147+ */
148+enum txtime_flags {
149+ SOF_TXTIME_DEADLINE_MODE = (1 << 0),
150+ SOF_TXTIME_REPORT_ERRORS = (1 << 1),
151+
152+ SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS,
153+ SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) |
154+ SOF_TXTIME_FLAGS_LAST
155+};
156+
157+struct sock_txtime {
158+ clockid_t clockid; /* reference clockid */
159+ __u32 flags; /* as defined by enum txtime_flags */
160+};
161+
144162 #endif /* _NET_TIMESTAMPING_H */
include/uapi/linux/netconf.h+1−0
@@ -18,6 +18,7 @@ enum { · 17 unmodified lines
1818 NETCONFA_PROXY_NEIGH,
1919 NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
2020 NETCONFA_INPUT,
21+ NETCONFA_BC_FORWARDING,
2122 __NETCONFA_MAX
2223 };
2324 #define NETCONFA_MAX (__NETCONFA_MAX - 1)
include/uapi/linux/netfilter/nf_tables.h+122−2
@@ -8,6 +8,7 @@ · 7 unmodified lines
88 #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
99 #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
1010 #define NFT_USERDATA_MAXLEN 256
11+#define NFT_OSF_MAXGENRELEN 16
1112
1213 /**
1314 * enum nft_registers - nf_tables registers
@@ -921,10 +922,12 @@ enum nft_socket_attributes { · 907 unmodified lines
921922 /*
922923 * enum nft_socket_keys - nf_tables socket expression keys
923924 *
924− * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option_
925+ * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option
926+ * @NFT_SOCKET_MARK: Value of the socket mark
925927 */
926928 enum nft_socket_keys {
927929 NFT_SOCKET_TRANSPARENT,
930+ NFT_SOCKET_MARK,
928931 __NFT_SOCKET_MAX
929932 };
930933 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -955,6 +958,7 @@ enum nft_socket_keys { · 24 unmodified lines
955958 * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
956959 * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
957960 * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
961+ * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
958962 */
959963 enum nft_ct_keys {
960964 NFT_CT_STATE,
@@ -980,6 +984,7 @@ enum nft_ct_keys { · 19 unmodified lines
980984 NFT_CT_DST_IP,
981985 NFT_CT_SRC_IP6,
982986 NFT_CT_DST_IP6,
987+ NFT_CT_TIMEOUT,
983988 __NFT_CT_MAX
984989 };
985990 #define NFT_CT_MAX (__NFT_CT_MAX - 1)
@@ -1250,6 +1255,22 @@ enum nft_nat_attributes { · 264 unmodified lines
12501255 };
12511256 #define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
12521257
1258+/**
1259+ * enum nft_tproxy_attributes - nf_tables tproxy expression netlink attributes
1260+ *
1261+ * NFTA_TPROXY_FAMILY: Target address family (NLA_U32: nft_registers)
1262+ * NFTA_TPROXY_REG_ADDR: Target address register (NLA_U32: nft_registers)
1263+ * NFTA_TPROXY_REG_PORT: Target port register (NLA_U32: nft_registers)
1264+ */
1265+enum nft_tproxy_attributes {
1266+ NFTA_TPROXY_UNSPEC,
1267+ NFTA_TPROXY_FAMILY,
1268+ NFTA_TPROXY_REG_ADDR,
1269+ NFTA_TPROXY_REG_PORT,
1270+ __NFTA_TPROXY_MAX
1271+};
1272+#define NFTA_TPROXY_MAX (__NFTA_TPROXY_MAX - 1)
1273+
12531274 /**
12541275 * enum nft_masq_attributes - nf_tables masquerade expression attributes
12551276 *
@@ -1392,13 +1413,24 @@ enum nft_ct_helper_attributes { · 136 unmodified lines
13921413 };
13931414 #define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1)
13941415
1416+enum nft_ct_timeout_timeout_attributes {
1417+ NFTA_CT_TIMEOUT_UNSPEC,
1418+ NFTA_CT_TIMEOUT_L3PROTO,
1419+ NFTA_CT_TIMEOUT_L4PROTO,
1420+ NFTA_CT_TIMEOUT_DATA,
1421+ __NFTA_CT_TIMEOUT_MAX,
1422+};
1423+#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1)
1424+
13951425 #define NFT_OBJECT_UNSPEC 0
13961426 #define NFT_OBJECT_COUNTER 1
13971427 #define NFT_OBJECT_QUOTA 2
13981428 #define NFT_OBJECT_CT_HELPER 3
13991429 #define NFT_OBJECT_LIMIT 4
14001430 #define NFT_OBJECT_CONNLIMIT 5
1401−#define __NFT_OBJECT_MAX 6
1431+#define NFT_OBJECT_TUNNEL 6
1432+#define NFT_OBJECT_CT_TIMEOUT 7
1433+#define __NFT_OBJECT_MAX 8
14021434 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
14031435
14041436 /**
@@ -1461,6 +1493,13 @@ enum nft_flowtable_hook_attributes { · 56 unmodified lines
14611493 };
14621494 #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
14631495
1496+enum nft_osf_attributes {
1497+ NFTA_OSF_UNSPEC,
1498+ NFTA_OSF_DREG,
1499+ __NFTA_OSF_MAX,
1500+};
1501+#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
1502+
14641503 /**
14651504 * enum nft_device_attributes - nf_tables device netlink attributes
14661505 *
@@ -1555,4 +1594,85 @@ enum nft_ng_types { · 88 unmodified lines
15551594 };
15561595 #define NFT_NG_MAX (__NFT_NG_MAX - 1)
15571596
1597+enum nft_tunnel_key_ip_attributes {
1598+ NFTA_TUNNEL_KEY_IP_UNSPEC,
1599+ NFTA_TUNNEL_KEY_IP_SRC,
1600+ NFTA_TUNNEL_KEY_IP_DST,
1601+ __NFTA_TUNNEL_KEY_IP_MAX
1602+};
1603+#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1)
1604+
1605+enum nft_tunnel_ip6_attributes {
1606+ NFTA_TUNNEL_KEY_IP6_UNSPEC,
1607+ NFTA_TUNNEL_KEY_IP6_SRC,
1608+ NFTA_TUNNEL_KEY_IP6_DST,
1609+ NFTA_TUNNEL_KEY_IP6_FLOWLABEL,
1610+ __NFTA_TUNNEL_KEY_IP6_MAX
1611+};
1612+#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1)
1613+
1614+enum nft_tunnel_opts_attributes {
1615+ NFTA_TUNNEL_KEY_OPTS_UNSPEC,
1616+ NFTA_TUNNEL_KEY_OPTS_VXLAN,
1617+ NFTA_TUNNEL_KEY_OPTS_ERSPAN,
1618+ __NFTA_TUNNEL_KEY_OPTS_MAX
1619+};
1620+#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
1621+
1622+enum nft_tunnel_opts_vxlan_attributes {
1623+ NFTA_TUNNEL_KEY_VXLAN_UNSPEC,
1624+ NFTA_TUNNEL_KEY_VXLAN_GBP,
1625+ __NFTA_TUNNEL_KEY_VXLAN_MAX
1626+};
1627+#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1)
1628+
1629+enum nft_tunnel_opts_erspan_attributes {
1630+ NFTA_TUNNEL_KEY_ERSPAN_UNSPEC,
1631+ NFTA_TUNNEL_KEY_ERSPAN_VERSION,
1632+ NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX,
1633+ NFTA_TUNNEL_KEY_ERSPAN_V2_HWID,
1634+ NFTA_TUNNEL_KEY_ERSPAN_V2_DIR,
1635+ __NFTA_TUNNEL_KEY_ERSPAN_MAX
1636+};
1637+#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
1638+
1639+enum nft_tunnel_flags {
1640+ NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
1641+ NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
1642+ NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2),
1643+};
1644+#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | \
1645+ NFT_TUNNEL_F_DONT_FRAGMENT | \
1646+ NFT_TUNNEL_F_SEQ_NUMBER)
1647+
1648+enum nft_tunnel_key_attributes {
1649+ NFTA_TUNNEL_KEY_UNSPEC,
1650+ NFTA_TUNNEL_KEY_ID,
1651+ NFTA_TUNNEL_KEY_IP,
1652+ NFTA_TUNNEL_KEY_IP6,
1653+ NFTA_TUNNEL_KEY_FLAGS,
1654+ NFTA_TUNNEL_KEY_TOS,
1655+ NFTA_TUNNEL_KEY_TTL,
1656+ NFTA_TUNNEL_KEY_SPORT,
1657+ NFTA_TUNNEL_KEY_DPORT,
1658+ NFTA_TUNNEL_KEY_OPTS,
1659+ __NFTA_TUNNEL_KEY_MAX
1660+};
1661+#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1)
1662+
1663+enum nft_tunnel_keys {
1664+ NFT_TUNNEL_PATH,
1665+ NFT_TUNNEL_ID,
1666+ __NFT_TUNNEL_MAX
1667+};
1668+#define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1)
1669+
1670+enum nft_tunnel_attributes {
1671+ NFTA_TUNNEL_UNSPEC,
1672+ NFTA_TUNNEL_KEY,
1673+ NFTA_TUNNEL_DREG,
1674+ __NFTA_TUNNEL_MAX
1675+};
1676+#define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1)
1677+
15581678 #endif /* _LINUX_NF_TABLES_H */
include/uapi/linux/netfilter/nfnetlink_osf.hrenamed from include/uapi/linux/netfilter/nf_osf.h+32−0
@@ -16,9 +16,14 @@ · 15 unmodified lines
1616
1717 #define NF_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */
1818
19+/* Check if ip TTL is less than fingerprint one */
20+#define NF_OSF_TTL_LESS 1
21+
1922 /* Do not compare ip and fingerprint TTL at all */
2023 #define NF_OSF_TTL_NOCHECK 2
2124
25+#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | \
26+ NF_OSF_LOG | NF_OSF_INVERT)
2227 /* Wildcard MSS (kind of).
2328 * It is used to implement a state machine for the different wildcard values
2429 * of the MSS and window sizes.
@@ -83,4 +88,31 @@ enum iana_options { · 58 unmodified lines
8388 OSFOPT_EMPTY = 255,
8489 };
8590
91+/* Initial window size option state machine: multiple of mss, mtu or
92+ * plain numeric value. Can also be made as plain numeric value which
93+ * is not a multiple of specified value.
94+ */
95+enum nf_osf_window_size_options {
96+ OSF_WSS_PLAIN = 0,
97+ OSF_WSS_MSS,
98+ OSF_WSS_MTU,
99+ OSF_WSS_MODULO,
100+ OSF_WSS_MAX,
101+};
102+
103+enum nf_osf_attr_type {
104+ OSF_ATTR_UNSPEC,
105+ OSF_ATTR_FINGER,
106+ OSF_ATTR_MAX,
107+};
108+
109+/*
110+ * Add/remove fingerprint from the kernel.
111+ */
112+enum nf_osf_msg_types {
113+ OSF_MSG_ADD,
114+ OSF_MSG_REMOVE,
115+ OSF_MSG_MAX,
116+};
117+
86118 #endif /* _NF_OSF_H */
include/uapi/linux/netfilter/xt_osf.h+5−17
@@ -23,7 +23,7 @@ · 22 unmodified lines
2323 #include <linux/types.h>
2424 #include <linux/ip.h>
2525 #include <linux/tcp.h>
26−#include <linux/netfilter/nf_osf.h>
26+#include <linux/netfilter/nfnetlink_osf.h>
2727
2828 #define XT_OSF_GENRE NF_OSF_GENRE
2929 #define XT_OSF_INVERT NF_OSF_INVERT
@@ -37,8 +37,7 @@ · 7 unmodified lines
3737
3838 #define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE
3939 #define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK
40−
41−#define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */
40+#define XT_OSF_TTL_LESS NF_OSF_TTL_LESS
4241
4342 #define xt_osf_wc nf_osf_wc
4443 #define xt_osf_opt nf_osf_opt
@@ -47,19 +46,8 @@ · 2 unmodified lines
4746 #define xt_osf_finger nf_osf_finger
4847 #define xt_osf_nlmsg nf_osf_nlmsg
4948
50−/*
51− * Add/remove fingerprint from the kernel.
52− */
53−enum xt_osf_msg_types {
54− OSF_MSG_ADD,
55− OSF_MSG_REMOVE,
56− OSF_MSG_MAX,
57−};
58−
59−enum xt_osf_attr_type {
60− OSF_ATTR_UNSPEC,
61− OSF_ATTR_FINGER,
62− OSF_ATTR_MAX,
63−};
49+#define xt_osf_window_size_options nf_osf_window_size_options
50+#define xt_osf_attr_type nf_osf_attr_type
51+#define xt_osf_msg_types nf_osf_msg_types
6452
6553 #endif /* _XT_OSF_H */
include/uapi/linux/netfilter_bridge.h+11−0
@@ -26,4 +26,15 @@ · 25 unmodified lines
2626 #define NF_BR_BROUTING 5
2727 #define NF_BR_NUMHOOKS 6
2828
29+enum nf_br_hook_priorities {
30+ NF_BR_PRI_FIRST = INT_MIN,
31+ NF_BR_PRI_NAT_DST_BRIDGED = -300,
32+ NF_BR_PRI_FILTER_BRIDGED = -200,
33+ NF_BR_PRI_BRNF = 0,
34+ NF_BR_PRI_NAT_DST_OTHER = 100,
35+ NF_BR_PRI_FILTER_OTHER = 200,
36+ NF_BR_PRI_NAT_SRC = 300,
37+ NF_BR_PRI_LAST = INT_MAX,
38+};
39+
2940 #endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */
include/uapi/linux/nl80211.h+101−1
@@ -2237,6 +2237,9 @@ enum nl80211_commands { · 2236 unmodified lines
22372237 * enforced.
22382238 * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
22392239 * a flow is assigned on each round of the DRR scheduler.
2240+ * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from
2241+ * association request when used with NL80211_CMD_NEW_STATION). Can be set
2242+ * only if %NL80211_STA_FLAG_WME is set.
22402243 *
22412244 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
22422245 * @NL80211_ATTR_MAX: highest attribute number currently defined
@@ -2677,6 +2680,8 @@ enum nl80211_attrs { · 434 unmodified lines
26772680 NL80211_ATTR_TXQ_MEMORY_LIMIT,
26782681 NL80211_ATTR_TXQ_QUANTUM,
26792682
2683+ NL80211_ATTR_HE_CAPABILITY,
2684+
26802685 /* add attributes here, update the policy in nl80211.c */
26812686
26822687 __NL80211_ATTR_AFTER_LAST,
@@ -2726,7 +2731,8 @@ enum nl80211_attrs { · 43 unmodified lines
27262731 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
27272732 #define NL80211_HT_CAPABILITY_LEN 26
27282733 #define NL80211_VHT_CAPABILITY_LEN 12
2729−
2734+#define NL80211_HE_MIN_CAPABILITY_LEN 16
2735+#define NL80211_HE_MAX_CAPABILITY_LEN 51
27302736 #define NL80211_MAX_NR_CIPHER_SUITES 5
27312737 #define NL80211_MAX_NR_AKM_SUITES 2
27322738
@@ -2853,6 +2859,38 @@ struct nl80211_sta_flag_update { · 120 unmodified lines
28532859 __u32 set;
28542860 } __attribute__((packed));
28552861
2862+/**
2863+ * enum nl80211_he_gi - HE guard interval
2864+ * @NL80211_RATE_INFO_HE_GI_0_8: 0.8 usec
2865+ * @NL80211_RATE_INFO_HE_GI_1_6: 1.6 usec
2866+ * @NL80211_RATE_INFO_HE_GI_3_2: 3.2 usec
2867+ */
2868+enum nl80211_he_gi {
2869+ NL80211_RATE_INFO_HE_GI_0_8,
2870+ NL80211_RATE_INFO_HE_GI_1_6,
2871+ NL80211_RATE_INFO_HE_GI_3_2,
2872+};
2873+
2874+/**
2875+ * enum nl80211_he_ru_alloc - HE RU allocation values
2876+ * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
2877+ * @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation
2878+ * @NL80211_RATE_INFO_HE_RU_ALLOC_106: 106-tone RU allocation
2879+ * @NL80211_RATE_INFO_HE_RU_ALLOC_242: 242-tone RU allocation
2880+ * @NL80211_RATE_INFO_HE_RU_ALLOC_484: 484-tone RU allocation
2881+ * @NL80211_RATE_INFO_HE_RU_ALLOC_996: 996-tone RU allocation
2882+ * @NL80211_RATE_INFO_HE_RU_ALLOC_2x996: 2x996-tone RU allocation
2883+ */
2884+enum nl80211_he_ru_alloc {
2885+ NL80211_RATE_INFO_HE_RU_ALLOC_26,
2886+ NL80211_RATE_INFO_HE_RU_ALLOC_52,
2887+ NL80211_RATE_INFO_HE_RU_ALLOC_106,
2888+ NL80211_RATE_INFO_HE_RU_ALLOC_242,
2889+ NL80211_RATE_INFO_HE_RU_ALLOC_484,
2890+ NL80211_RATE_INFO_HE_RU_ALLOC_996,
2891+ NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
2892+};
2893+
28562894 /**
28572895 * enum nl80211_rate_info - bitrate information
28582896 *
@@ -2885,6 +2923,13 @@ struct nl80211_sta_flag_update { · 26 unmodified lines
28852923 * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is
28862924 * a legacy rate and will be reported as the actual bitrate, i.e.
28872925 * a quarter of the base (20 MHz) rate
2926+ * @NL80211_RATE_INFO_HE_MCS: HE MCS index (u8, 0-11)
2927+ * @NL80211_RATE_INFO_HE_NSS: HE NSS value (u8, 1-8)
2928+ * @NL80211_RATE_INFO_HE_GI: HE guard interval identifier
2929+ * (u8, see &enum nl80211_he_gi)
2930+ * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
2931+ * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
2932+ * non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
28882933 * @__NL80211_RATE_INFO_AFTER_LAST: internal use
28892934 */
28902935 enum nl80211_rate_info {
@@ -2901,6 +2946,11 @@ enum nl80211_rate_info { · 10 unmodified lines
29012946 NL80211_RATE_INFO_160_MHZ_WIDTH,
29022947 NL80211_RATE_INFO_10_MHZ_WIDTH,
29032948 NL80211_RATE_INFO_5_MHZ_WIDTH,
2949+ NL80211_RATE_INFO_HE_MCS,
2950+ NL80211_RATE_INFO_HE_NSS,
2951+ NL80211_RATE_INFO_HE_GI,
2952+ NL80211_RATE_INFO_HE_DCM,
2953+ NL80211_RATE_INFO_HE_RU_ALLOC,
29042954
29052955 /* keep last */
29062956 __NL80211_RATE_INFO_AFTER_LAST,
@@ -3166,6 +3216,38 @@ enum nl80211_mpath_info { · 259 unmodified lines
31663216 NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
31673217 };
31683218
3219+/**
3220+ * enum nl80211_band_iftype_attr - Interface type data attributes
3221+ *
3222+ * @__NL80211_BAND_IFTYPE_ATTR_INVALID: attribute number 0 is reserved
3223+ * @NL80211_BAND_IFTYPE_ATTR_IFTYPES: nested attribute containing a flag attribute
3224+ * for each interface type that supports the band data
3225+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC: HE MAC capabilities as in HE
3226+ * capabilities IE
3227+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY: HE PHY capabilities as in HE
3228+ * capabilities IE
3229+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET: HE supported NSS/MCS as in HE
3230+ * capabilities IE
3231+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
3232+ * defined in HE capabilities IE
3233+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
3234+ * defined
3235+ * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
3236+ */
3237+enum nl80211_band_iftype_attr {
3238+ __NL80211_BAND_IFTYPE_ATTR_INVALID,
3239+
3240+ NL80211_BAND_IFTYPE_ATTR_IFTYPES,
3241+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC,
3242+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
3243+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
3244+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
3245+
3246+ /* keep last */
3247+ __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
3248+ NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
3249+};
3250+
31693251 /**
31703252 * enum nl80211_band_attr - band attributes
31713253 * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
@@ -3181,6 +3263,8 @@ enum nl80211_mpath_info { · 9 unmodified lines
31813263 * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as
31823264 * defined in 802.11ac
31833265 * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
3266+ * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
3267+ * attributes from &enum nl80211_band_iftype_attr
31843268 * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
31853269 * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
31863270 */
@@ -3196,6 +3280,7 @@ enum nl80211_band_attr { · 9 unmodified lines
31963280
31973281 NL80211_BAND_ATTR_VHT_MCS_SET,
31983282 NL80211_BAND_ATTR_VHT_CAPA,
3283+ NL80211_BAND_ATTR_IFTYPE_DATA,
31993284
32003285 /* keep last */
32013286 __NL80211_BAND_ATTR_AFTER_LAST,
@@ -5133,6 +5218,11 @@ enum nl80211_feature_flags { · 1931 unmodified lines
51335218 * support to nl80211.
51345219 * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
51355220 * TXQs.
5221+ * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
5222+ * SN in probe request frames if requested by %NL80211_SCAN_FLAG_RANDOM_SN.
5223+ * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
5224+ * except for supported rates from the probe request content if requested
5225+ * by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
51365226 *
51375227 * @NUM_NL80211_EXT_FEATURES: number of extended features.
51385228 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -5167,6 +5257,8 @@ enum nl80211_ext_feature_index { · 28 unmodified lines
51675257 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
51685258 NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT,
51695259 NL80211_EXT_FEATURE_TXQS,
5260+ NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
5261+ NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
51705262
51715263 /* add new features before the definition below */
51725264 NUM_NL80211_EXT_FEATURES,
@@ -5272,6 +5364,12 @@ enum nl80211_timeout_reason { · 99 unmodified lines
52725364 * possible scan results. This flag hints the driver to use the best
52735365 * possible scan configuration to improve the accuracy in scanning.
52745366 * Latency and power use may get impacted with this flag.
5367+ * @NL80211_SCAN_FLAG_RANDOM_SN: randomize the sequence number in probe
5368+ * request frames from this scan to avoid correlation/tracking being
5369+ * possible.
5370+ * @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to
5371+ * only have supported rates and no additional capabilities (unless
5372+ * added by userspace explicitly.)
52755373 */
52765374 enum nl80211_scan_flags {
52775375 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
@@ -5285,6 +5383,8 @@ enum nl80211_scan_flags { · 7 unmodified lines
52855383 NL80211_SCAN_FLAG_LOW_SPAN = 1<<8,
52865384 NL80211_SCAN_FLAG_LOW_POWER = 1<<9,
52875385 NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
5386+ NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
5387+ NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
52885388 };
52895389
52905390 /**
include/uapi/linux/openvswitch.h+3−0
@@ -840,6 +840,8 @@ struct ovs_action_push_eth { · 839 unmodified lines
840840 * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet.
841841 * @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the
842842 * packet, or modify the packet (e.g., change the DSCP field).
843+ * @OVS_ACTION_ATTR_CLONE: make a copy of the packet and execute a list of
844+ * actions without affecting the original packet and key.
843845 *
844846 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
845847 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -873,6 +875,7 @@ enum ovs_action_attr { · 27 unmodified lines
873875 OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */
874876 OVS_ACTION_ATTR_POP_NSH, /* No argument. */
875877 OVS_ACTION_ATTR_METER, /* u32 meter ID. */
878+ OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
876879
877880 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
878881 * from userspace. */
include/uapi/linux/pkt_cls.h+39−2
@@ -45,6 +45,7 @@ enum { · 44 unmodified lines
4545 * the skb and act like everything
4646 * is alright.
4747 */
48+#define TC_ACT_VALUE_MAX TC_ACT_TRAP
4849
4950 /* There is a special kind of actions called "extended actions",
5051 * which need a value parameter. These have a local opcode located in
@@ -55,11 +56,12 @@ enum { · 4 unmodified lines
5556 #define __TC_ACT_EXT_SHIFT 28
5657 #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
5758 #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
58−#define TC_ACT_EXT_CMP(combined, opcode) \
59− (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode)
59+#define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK))
60+#define TC_ACT_EXT_CMP(combined, opcode) (TC_ACT_EXT_OPCODE(combined) == opcode)
6061
6162 #define TC_ACT_JUMP __TC_ACT_EXT(1)
6263 #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
64+#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
6365
6466 /* Action type identifiers*/
6567 enum {
@@ -469,11 +471,46 @@ enum { · 403 unmodified lines
469471 TCA_FLOWER_KEY_IP_TTL, /* u8 */
470472 TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */
471473
474+ TCA_FLOWER_KEY_CVLAN_ID, /* be16 */
475+ TCA_FLOWER_KEY_CVLAN_PRIO, /* u8 */
476+ TCA_FLOWER_KEY_CVLAN_ETH_TYPE, /* be16 */
477+
478+ TCA_FLOWER_KEY_ENC_IP_TOS, /* u8 */
479+ TCA_FLOWER_KEY_ENC_IP_TOS_MASK, /* u8 */
480+ TCA_FLOWER_KEY_ENC_IP_TTL, /* u8 */
481+ TCA_FLOWER_KEY_ENC_IP_TTL_MASK, /* u8 */
482+
483+ TCA_FLOWER_KEY_ENC_OPTS,
484+ TCA_FLOWER_KEY_ENC_OPTS_MASK,
485+
472486 __TCA_FLOWER_MAX,
473487 };
474488
475489 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
476490
491+enum {
492+ TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
493+ TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested
494+ * TCA_FLOWER_KEY_ENC_OPT_GENEVE_
495+ * attributes
496+ */
497+ __TCA_FLOWER_KEY_ENC_OPTS_MAX,
498+};
499+
500+#define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
501+
502+enum {
503+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC,
504+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS, /* u16 */
505+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
506+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
507+
508+ __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX,
509+};
510+
511+#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \
512+ (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
513+
477514 enum {
478515 TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
479516 TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
include/uapi/linux/pkt_sched.h+150−0
@@ -124,6 +124,21 @@ struct tc_fifo_qopt { · 123 unmodified lines
124124 __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */
125125 };
126126
127+/* SKBPRIO section */
128+
129+/*
130+ * Priorities go from zero to (SKBPRIO_MAX_PRIORITY - 1).
131+ * SKBPRIO_MAX_PRIORITY should be at least 64 in order for skbprio to be able
132+ * to map one to one the DS field of IPV4 and IPV6 headers.
133+ * Memory allocation grows linearly with SKBPRIO_MAX_PRIORITY.
134+ */
135+
136+#define SKBPRIO_MAX_PRIORITY 64
137+
138+struct tc_skbprio_qopt {
139+ __u32 limit; /* Queue length in packets. */
140+};
141+
127142 /* PRIO section */
128143
129144 #define TCQ_PRIO_BANDS 16
@@ -539,6 +554,7 @@ enum { · 409 unmodified lines
539554 TCA_NETEM_LATENCY64,
540555 TCA_NETEM_JITTER64,
541556 TCA_NETEM_SLOT,
557+ TCA_NETEM_SLOT_DIST,
542558 __TCA_NETEM_MAX,
543559 };
544560
@@ -581,6 +597,8 @@ struct tc_netem_slot { · 36 unmodified lines
581597 __s64 max_delay;
582598 __s32 max_packets;
583599 __s32 max_bytes;
600+ __s64 dist_delay; /* nsec */
601+ __s64 dist_jitter; /* nsec */
584602 };
585603
586604 enum {
@@ -934,4 +952,136 @@ enum { · 347 unmodified lines
934952
935953 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1)
936954
955+
956+/* ETF */
957+struct tc_etf_qopt {
958+ __s32 delta;
959+ __s32 clockid;
960+ __u32 flags;
961+#define TC_ETF_DEADLINE_MODE_ON BIT(0)
962+#define TC_ETF_OFFLOAD_ON BIT(1)
963+};
964+
965+enum {
966+ TCA_ETF_UNSPEC,
967+ TCA_ETF_PARMS,
968+ __TCA_ETF_MAX,
969+};
970+
971+#define TCA_ETF_MAX (__TCA_ETF_MAX - 1)
972+
973+
974+/* CAKE */
975+enum {
976+ TCA_CAKE_UNSPEC,
977+ TCA_CAKE_PAD,
978+ TCA_CAKE_BASE_RATE64,
979+ TCA_CAKE_DIFFSERV_MODE,
980+ TCA_CAKE_ATM,
981+ TCA_CAKE_FLOW_MODE,
982+ TCA_CAKE_OVERHEAD,
983+ TCA_CAKE_RTT,
984+ TCA_CAKE_TARGET,
985+ TCA_CAKE_AUTORATE,
986+ TCA_CAKE_MEMORY,
987+ TCA_CAKE_NAT,
988+ TCA_CAKE_RAW,
989+ TCA_CAKE_WASH,
990+ TCA_CAKE_MPU,
991+ TCA_CAKE_INGRESS,
992+ TCA_CAKE_ACK_FILTER,
993+ TCA_CAKE_SPLIT_GSO,
994+ __TCA_CAKE_MAX
995+};
996+#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
997+
998+enum {
999+ __TCA_CAKE_STATS_INVALID,
1000+ TCA_CAKE_STATS_PAD,
1001+ TCA_CAKE_STATS_CAPACITY_ESTIMATE64,
1002+ TCA_CAKE_STATS_MEMORY_LIMIT,
1003+ TCA_CAKE_STATS_MEMORY_USED,
1004+ TCA_CAKE_STATS_AVG_NETOFF,
1005+ TCA_CAKE_STATS_MIN_NETLEN,
1006+ TCA_CAKE_STATS_MAX_NETLEN,
1007+ TCA_CAKE_STATS_MIN_ADJLEN,
1008+ TCA_CAKE_STATS_MAX_ADJLEN,
1009+ TCA_CAKE_STATS_TIN_STATS,
1010+ TCA_CAKE_STATS_DEFICIT,
1011+ TCA_CAKE_STATS_COBALT_COUNT,
1012+ TCA_CAKE_STATS_DROPPING,
1013+ TCA_CAKE_STATS_DROP_NEXT_US,
1014+ TCA_CAKE_STATS_P_DROP,
1015+ TCA_CAKE_STATS_BLUE_TIMER_US,
1016+ __TCA_CAKE_STATS_MAX
1017+};
1018+#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)
1019+
1020+enum {
1021+ __TCA_CAKE_TIN_STATS_INVALID,
1022+ TCA_CAKE_TIN_STATS_PAD,
1023+ TCA_CAKE_TIN_STATS_SENT_PACKETS,
1024+ TCA_CAKE_TIN_STATS_SENT_BYTES64,
1025+ TCA_CAKE_TIN_STATS_DROPPED_PACKETS,
1026+ TCA_CAKE_TIN_STATS_DROPPED_BYTES64,
1027+ TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS,
1028+ TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64,
1029+ TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS,
1030+ TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64,
1031+ TCA_CAKE_TIN_STATS_BACKLOG_PACKETS,
1032+ TCA_CAKE_TIN_STATS_BACKLOG_BYTES,
1033+ TCA_CAKE_TIN_STATS_THRESHOLD_RATE64,
1034+ TCA_CAKE_TIN_STATS_TARGET_US,
1035+ TCA_CAKE_TIN_STATS_INTERVAL_US,
1036+ TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS,
1037+ TCA_CAKE_TIN_STATS_WAY_MISSES,
1038+ TCA_CAKE_TIN_STATS_WAY_COLLISIONS,
1039+ TCA_CAKE_TIN_STATS_PEAK_DELAY_US,
1040+ TCA_CAKE_TIN_STATS_AVG_DELAY_US,
1041+ TCA_CAKE_TIN_STATS_BASE_DELAY_US,
1042+ TCA_CAKE_TIN_STATS_SPARSE_FLOWS,
1043+ TCA_CAKE_TIN_STATS_BULK_FLOWS,
1044+ TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS,
1045+ TCA_CAKE_TIN_STATS_MAX_SKBLEN,
1046+ TCA_CAKE_TIN_STATS_FLOW_QUANTUM,
1047+ __TCA_CAKE_TIN_STATS_MAX
1048+};
1049+#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1)
1050+#define TC_CAKE_MAX_TINS (8)
1051+
1052+enum {
1053+ CAKE_FLOW_NONE = 0,
1054+ CAKE_FLOW_SRC_IP,
1055+ CAKE_FLOW_DST_IP,
1056+ CAKE_FLOW_HOSTS, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_DST_IP */
1057+ CAKE_FLOW_FLOWS,
1058+ CAKE_FLOW_DUAL_SRC, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_FLOWS */
1059+ CAKE_FLOW_DUAL_DST, /* = CAKE_FLOW_DST_IP | CAKE_FLOW_FLOWS */
1060+ CAKE_FLOW_TRIPLE, /* = CAKE_FLOW_HOSTS | CAKE_FLOW_FLOWS */
1061+ CAKE_FLOW_MAX,
1062+};
1063+
1064+enum {
1065+ CAKE_DIFFSERV_DIFFSERV3 = 0,
1066+ CAKE_DIFFSERV_DIFFSERV4,
1067+ CAKE_DIFFSERV_DIFFSERV8,
1068+ CAKE_DIFFSERV_BESTEFFORT,
1069+ CAKE_DIFFSERV_PRECEDENCE,
1070+ CAKE_DIFFSERV_MAX
1071+};
1072+
1073+enum {
1074+ CAKE_ACK_NONE = 0,
1075+ CAKE_ACK_FILTER,
1076+ CAKE_ACK_AGGRESSIVE,
1077+ CAKE_ACK_MAX
1078+};
1079+
1080+enum {
1081+ CAKE_ATM_NONE = 0,
1082+ CAKE_ATM_ATM,
1083+ CAKE_ATM_PTM,
1084+ CAKE_ATM_MAX
1085+};
1086+
9371087 #endif
include/uapi/linux/ppp-ioctl.h+1−1
@@ -68,7 +68,7 @@ struct ppp_option_data { · 67 unmodified lines
6868 struct pppol2tp_ioc_stats {
6969 __u16 tunnel_id; /* redundant */
7070 __u16 session_id; /* if zero, get tunnel stats */
71− __u32 using_ipsec:1; /* valid only for session_id == 0 */
71+ __u32 using_ipsec:1;
7272 __aligned_u64 tx_packets;
7373 __aligned_u64 tx_bytes;
7474 __aligned_u64 tx_errors;
include/uapi/linux/rds.h+67−2
@@ -1,6 +1,6 @@
11 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
22 /*
3− * Copyright (c) 2008 Oracle. All rights reserved.
3+ * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
44 *
55 * This software is available to you under a choice of one of two
66 * licenses. You may choose to be licensed under the terms of the GNU
@@ -118,7 +118,17 @@ · 111 unmodified lines
118118 #define RDS_INFO_IB_CONNECTIONS 10008
119119 #define RDS_INFO_CONNECTION_STATS 10009
120120 #define RDS_INFO_IWARP_CONNECTIONS 10010
121−#define RDS_INFO_LAST 10010
121+
122+/* PF_RDS6 options */
123+#define RDS6_INFO_CONNECTIONS 10011
124+#define RDS6_INFO_SEND_MESSAGES 10012
125+#define RDS6_INFO_RETRANS_MESSAGES 10013
126+#define RDS6_INFO_RECV_MESSAGES 10014
127+#define RDS6_INFO_SOCKETS 10015
128+#define RDS6_INFO_TCP_SOCKETS 10016
129+#define RDS6_INFO_IB_CONNECTIONS 10017
130+
131+#define RDS_INFO_LAST 10017
122132
123133 struct rds_info_counter {
124134 __u8 name[32];
@@ -140,6 +150,15 @@ struct rds_info_connection { · 15 unmodified lines
140150 __u8 flags;
141151 } __attribute__((packed));
142152
153+struct rds6_info_connection {
154+ __u64 next_tx_seq;
155+ __u64 next_rx_seq;
156+ struct in6_addr laddr;
157+ struct in6_addr faddr;
158+ __u8 transport[TRANSNAMSIZ]; /* null term ascii */
159+ __u8 flags;
160+} __attribute__((packed));
161+
143162 #define RDS_INFO_MESSAGE_FLAG_ACK 0x01
144163 #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
145164
@@ -153,6 +172,17 @@ struct rds_info_message { · 7 unmodified lines
153172 __u8 flags;
154173 } __attribute__((packed));
155174
175+struct rds6_info_message {
176+ __u64 seq;
177+ __u32 len;
178+ struct in6_addr laddr;
179+ struct in6_addr faddr;
180+ __be16 lport;
181+ __be16 fport;
182+ __u8 flags;
183+ __u8 tos;
184+} __attribute__((packed));
185+
156186 struct rds_info_socket {
157187 __u32 sndbuf;
158188 __be32 bound_addr;
@@ -163,6 +193,16 @@ struct rds_info_socket { · 4 unmodified lines
163193 __u64 inum;
164194 } __attribute__((packed));
165195
196+struct rds6_info_socket {
197+ __u32 sndbuf;
198+ struct in6_addr bound_addr;
199+ struct in6_addr connected_addr;
200+ __be16 bound_port;
201+ __be16 connected_port;
202+ __u32 rcvbuf;
203+ __u64 inum;
204+} __attribute__((packed));
205+
166206 struct rds_info_tcp_socket {
167207 __be32 local_addr;
168208 __be16 local_port;
@@ -175,6 +215,18 @@ struct rds_info_tcp_socket { · 6 unmodified lines
175215 __u32 last_seen_una;
176216 } __attribute__((packed));
177217
218+struct rds6_info_tcp_socket {
219+ struct in6_addr local_addr;
220+ __be16 local_port;
221+ struct in6_addr peer_addr;
222+ __be16 peer_port;
223+ __u64 hdr_rem;
224+ __u64 data_rem;
225+ __u32 last_sent_nxt;
226+ __u32 last_expected_una;
227+ __u32 last_seen_una;
228+} __attribute__((packed));
229+
178230 #define RDS_IB_GID_LEN 16
179231 struct rds_info_rdma_connection {
180232 __be32 src_addr;
@@ -189,6 +241,19 @@ struct rds_info_rdma_connection { · 8 unmodified lines
189241 __u32 rdma_mr_size;
190242 };
191243
244+struct rds6_info_rdma_connection {
245+ struct in6_addr src_addr;
246+ struct in6_addr dst_addr;
247+ __u8 src_gid[RDS_IB_GID_LEN];
248+ __u8 dst_gid[RDS_IB_GID_LEN];
249+
250+ __u32 max_send_wr;
251+ __u32 max_recv_wr;
252+ __u32 max_send_sge;
253+ __u32 rdma_mr_max;
254+ __u32 rdma_mr_size;
255+};
256+
192257 /* RDS message Receive Path Latency points */
193258 enum rds_message_rxpath_latency {
194259 RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
include/uapi/linux/rtnetlink.h+7−0
@@ -150,6 +150,13 @@ enum { · 149 unmodified lines
150150 RTM_NEWCACHEREPORT = 96,
151151 #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT
152152
153+ RTM_NEWCHAIN = 100,
154+#define RTM_NEWCHAIN RTM_NEWCHAIN
155+ RTM_DELCHAIN,
156+#define RTM_DELCHAIN RTM_DELCHAIN
157+ RTM_GETCHAIN,
158+#define RTM_GETCHAIN RTM_GETCHAIN
159+
153160 __RTM_MAX,
154161 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
155162 };
include/uapi/linux/sctp.h+5−0
@@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t; · 99 unmodified lines
100100 #define SCTP_RECVNXTINFO 33
101101 #define SCTP_DEFAULT_SNDINFO 34
102102 #define SCTP_AUTH_DEACTIVATE_KEY 35
103+#define SCTP_REUSE_PORT 36
103104
104105 /* Internal Socket Options. Some of the sctp library functions are
105106 * implemented using these socket options.
@@ -762,6 +763,8 @@ enum sctp_spp_flags { · 656 unmodified lines
762763 SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/
763764 SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
764765 SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */
766+ SPP_IPV6_FLOWLABEL = 1<<8,
767+ SPP_DSCP = 1<<9,
765768 };
766769
767770 struct sctp_paddrparams {
@@ -772,6 +775,8 @@ struct sctp_paddrparams { · 4 unmodified lines
772775 __u32 spp_pathmtu;
773776 __u32 spp_sackdelay;
774777 __u32 spp_flags;
778+ __u32 spp_ipv6_flowlabel;
779+ __u8 spp_dscp;
775780 } __attribute__((packed, aligned(4)));
776781
777782 /*
include/uapi/linux/smc_diag.h+24−1
@@ -20,7 +20,7 @@ struct smc_diag_req { · 19 unmodified lines
2020 struct smc_diag_msg {
2121 __u8 diag_family;
2222 __u8 diag_state;
23− __u8 diag_fallback;
23+ __u8 diag_mode;
2424 __u8 diag_shutdown;
2525 struct inet_diag_sockid id;
2626
@@ -28,6 +28,13 @@ struct smc_diag_msg { · 1 unmodified line
2828 __u64 diag_inode;
2929 };
3030
31+/* Mode of a connection */
32+enum {
33+ SMC_DIAG_MODE_SMCR,
34+ SMC_DIAG_MODE_FALLBACK_TCP,
35+ SMC_DIAG_MODE_SMCD,
36+};
37+
3138 /* Extensions */
3239
3340 enum {
@@ -35,6 +42,8 @@ enum { · 1 unmodified line
3542 SMC_DIAG_CONNINFO,
3643 SMC_DIAG_LGRINFO,
3744 SMC_DIAG_SHUTDOWN,
45+ SMC_DIAG_DMBINFO,
46+ SMC_DIAG_FALLBACK,
3847 __SMC_DIAG_MAX,
3948 };
4049
@@ -83,4 +92,18 @@ struct smc_diag_lgrinfo { · 42 unmodified lines
8392 struct smc_diag_linkinfo lnk[1];
8493 __u8 role;
8594 };
95+
96+struct smc_diag_fallback {
97+ __u32 reason;
98+ __u32 peer_diagnosis;
99+};
100+
101+struct smcd_diag_dmbinfo { /* SMC-D Socket internals */
102+ __u32 linkid; /* Link identifier */
103+ __u64 peer_gid; /* Peer GID */
104+ __u64 my_gid; /* My GID */
105+ __u64 token; /* Token of DMB */
106+ __u64 peer_token; /* Token of remote DMBE */
107+};
108+
86109 #endif /* _UAPI_SMC_DIAG_H_ */
include/uapi/linux/snmp.h+3−0
@@ -56,6 +56,7 @@ enum · 55 unmodified lines
5656 IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
5757 IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
5858 IPSTATS_MIB_CEPKTS, /* InCEPkts */
59+ IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */
5960 __IPSTATS_MIB_MAX
6061 };
6162
@@ -279,6 +280,8 @@ enum · 217 unmodified lines
279280 LINUX_MIB_TCPDELIVERED, /* TCPDelivered */
280281 LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */
281282 LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */
283+ LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */
284+ LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */
282285 __LINUX_MIB_MAX
283286 };
284287
include/uapi/linux/sysctl.h+2−1
@@ -575,7 +575,8 @@ enum { · 574 unmodified lines
575575
576576 /* /proc/sys/net/ipv6/icmp */
577577 enum {
578− NET_IPV6_ICMP_RATELIMIT=1
578+ NET_IPV6_ICMP_RATELIMIT = 1,
579+ NET_IPV6_ICMP_ECHO_IGNORE_ALL = 2
579580 };
580581
581582 /* /proc/sys/net/<protocol>/neigh/<dev> */
include/uapi/linux/tc_act/tc_pedit.h+7−2
@@ -17,13 +17,15 @@ enum { · 16 unmodified lines
1717 TCA_PEDIT_KEY_EX,
1818 __TCA_PEDIT_MAX
1919 };
20+
2021 #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
21−
22+
2223 enum {
2324 TCA_PEDIT_KEY_EX_HTYPE = 1,
2425 TCA_PEDIT_KEY_EX_CMD = 2,
2526 __TCA_PEDIT_KEY_EX_MAX
2627 };
28+
2729 #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
2830
2931 /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
@@ -38,6 +40,7 @@ enum pedit_header_type { · 8 unmodified lines
3840 TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
3941 __PEDIT_HDR_TYPE_MAX,
4042 };
43+
4144 #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
4245
4346 enum pedit_cmd {
@@ -45,6 +48,7 @@ enum pedit_cmd { · 1 unmodified line
4548 TCA_PEDIT_KEY_EX_CMD_ADD = 1,
4649 __PEDIT_CMD_MAX,
4750 };
51+
4852 #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
4953
5054 struct tc_pedit_key {
@@ -55,13 +59,14 @@ struct tc_pedit_key { · 4 unmodified lines
5559 __u32 offmask;
5660 __u32 shift;
5761 };
58−
62+
5963 struct tc_pedit_sel {
6064 tc_gen;
6165 unsigned char nkeys;
6266 unsigned char flags;
6367 struct tc_pedit_key keys[0];
6468 };
69+
6570 #define tc_pedit tc_pedit_sel
6671
6772 #endif
include/uapi/linux/tc_act/tc_skbedit.h+2−0
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #define SKBEDIT_F_MARK 0x4
3131 #define SKBEDIT_F_PTYPE 0x8
3232 #define SKBEDIT_F_MASK 0x10
33+#define SKBEDIT_F_INHERITDSFIELD 0x20
3334
3435 struct tc_skbedit {
3536 tc_gen;
@@ -45,6 +46,7 @@ enum { · 9 unmodified lines
4546 TCA_SKBEDIT_PAD,
4647 TCA_SKBEDIT_PTYPE,
4748 TCA_SKBEDIT_MASK,
49+ TCA_SKBEDIT_FLAGS,
4850 __TCA_SKBEDIT_MAX
4951 };
5052 #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
include/uapi/linux/tc_act/tc_tunnel_key.h+28−0
@@ -36,9 +36,37 @@ enum { · 35 unmodified lines
3636 TCA_TUNNEL_KEY_PAD,
3737 TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */
3838 TCA_TUNNEL_KEY_NO_CSUM, /* u8 */
39+ TCA_TUNNEL_KEY_ENC_OPTS, /* Nested TCA_TUNNEL_KEY_ENC_OPTS_
40+ * attributes
41+ */
42+ TCA_TUNNEL_KEY_ENC_TOS, /* u8 */
43+ TCA_TUNNEL_KEY_ENC_TTL, /* u8 */
3944 __TCA_TUNNEL_KEY_MAX,
4045 };
4146
4247 #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
4348
49+enum {
50+ TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
51+ TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, /* Nested
52+ * TCA_TUNNEL_KEY_ENC_OPTS_
53+ * attributes
54+ */
55+ __TCA_TUNNEL_KEY_ENC_OPTS_MAX,
56+};
57+
58+#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
59+
60+enum {
61+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
62+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, /* be16 */
63+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
64+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
65+
66+ __TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
67+};
68+
69+#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
70+ (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
71+
4472 #endif
include/uapi/linux/tcp.h+9−1
@@ -235,6 +235,11 @@ struct tcp_info { · 234 unmodified lines
235235
236236 __u32 tcpi_delivered;
237237 __u32 tcpi_delivered_ce;
238+
239+ __u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */
240+ __u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */
241+ __u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */
242+ __u32 tcpi_reord_seen; /* reordering events seen */
238243 };
239244
240245 /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
@@ -257,7 +262,10 @@ enum { · 16 unmodified lines
257262 TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */
258263 TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */
259264 TCP_NLA_DELIVERED_CE, /* Like above but only ones w/ CE marks */
260−
265+ TCP_NLA_BYTES_SENT, /* Data bytes sent including retransmission */
266+ TCP_NLA_BYTES_RETRANS, /* Data bytes retransmitted */
267+ TCP_NLA_DSACK_DUPS, /* DSACK blocks received */
268+ TCP_NLA_REORD_SEEN, /* reordering events seen */
261269 };
262270
263271 /* for TCP_MD5SIG socket option */
include/uapi/linux/tipc_netlink.h+14−0
@@ -121,6 +121,7 @@ enum { · 120 unmodified lines
121121 TIPC_NLA_SOCK_TIPC_STATE, /* u32 */
122122 TIPC_NLA_SOCK_COOKIE, /* u64 */
123123 TIPC_NLA_SOCK_PAD, /* flag */
124+ TIPC_NLA_SOCK_GROUP, /* nest */
124125
125126 __TIPC_NLA_SOCK_MAX,
126127 TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
@@ -233,6 +234,19 @@ enum { · 106 unmodified lines
233234 TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1
234235 };
235236
237+/* Nest, socket group info */
238+enum {
239+ TIPC_NLA_SOCK_GROUP_ID, /* u32 */
240+ TIPC_NLA_SOCK_GROUP_OPEN, /* flag */
241+ TIPC_NLA_SOCK_GROUP_NODE_SCOPE, /* flag */
242+ TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE, /* flag */
243+ TIPC_NLA_SOCK_GROUP_INSTANCE, /* u32 */
244+ TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT, /* u32 */
245+
246+ __TIPC_NLA_SOCK_GROUP_MAX,
247+ TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1
248+};
249+
236250 /* Nest, connection info */
237251 enum {
238252 TIPC_NLA_CON_UNSPEC,
include/uapi/linux/vhost.h+18−0
@@ -65,6 +65,7 @@ struct vhost_iotlb_msg { · 64 unmodified lines
6565 };
6666
6767 #define VHOST_IOTLB_MSG 0x1
68+#define VHOST_IOTLB_MSG_V2 0x2
6869
6970 struct vhost_msg {
7071 int type;
@@ -74,6 +75,15 @@ struct vhost_msg { · 3 unmodified lines
7475 };
7576 };
7677
78+struct vhost_msg_v2 {
79+ __u32 type;
80+ __u32 reserved;
81+ union {
82+ struct vhost_iotlb_msg iotlb;
83+ __u8 padding[64];
84+ };
85+};
86+
7787 struct vhost_memory_region {
7888 __u64 guest_phys_addr;
7989 __u64 memory_size; /* bytes */
@@ -160,6 +170,14 @@ struct vhost_memory { · 80 unmodified lines
160170 #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \
161171 struct vhost_vring_state)
162172
173+/* Set or get vhost backend capability */
174+
175+/* Use message type V2 */
176+#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
177+
178+#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
179+#define VHOST_GET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x26, __u64)
180+
163181 /* VHOST_NET specific defines */
164182
165183 /* Attach virtio net ring to a raw socket, or tap device.
include/uapi/linux/xfrm.h+4−1
@@ -305,9 +305,12 @@ enum xfrm_attr_type_t { · 304 unmodified lines
305305 XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
306306 XFRMA_PAD,
307307 XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
308− XFRMA_OUTPUT_MARK, /* __u32 */
308+ XFRMA_SET_MARK, /* __u32 */
309+ XFRMA_SET_MARK_MASK, /* __u32 */
310+ XFRMA_IF_ID, /* __u32 */
309311 __XFRMA_MAX
310312
313+#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
311314 #define XFRMA_MAX (__XFRMA_MAX - 1)
312315 };
313316