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 ...
Showing the changes to include/uapi/linux (36 of 1752 files). Show all
Unified · Split
| @@ -75,6 +75,11 @@ struct bpf_lpm_trie_key { · 74 unmodified lines | ||
| 75 | 75 | __u8 data[0]; /* Arbitrary size */ |
| 76 | 76 | }; |
| 77 | 77 | |
| 78 | +struct bpf_cgroup_storage_key { | |
| 79 | + __u64 cgroup_inode_id; /* cgroup inode id */ | |
| 80 | + __u32 attach_type; /* program attach type */ | |
| 81 | +}; | |
| 82 | + | |
| 78 | 83 | /* BPF syscall commands, see bpf(2) man-page for details. */ |
| 79 | 84 | enum bpf_cmd { |
| 80 | 85 | BPF_MAP_CREATE, |
| @@ -120,6 +125,8 @@ enum bpf_map_type { · 39 unmodified lines | ||
| 120 | 125 | BPF_MAP_TYPE_CPUMAP, |
| 121 | 126 | BPF_MAP_TYPE_XSKMAP, |
| 122 | 127 | BPF_MAP_TYPE_SOCKHASH, |
| 128 | + BPF_MAP_TYPE_CGROUP_STORAGE, | |
| 129 | + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, | |
| 123 | 130 | }; |
| 124 | 131 | |
| 125 | 132 | enum bpf_prog_type { |
| @@ -144,6 +151,7 @@ enum bpf_prog_type { · 18 unmodified lines | ||
| 144 | 151 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, |
| 145 | 152 | BPF_PROG_TYPE_LWT_SEG6LOCAL, |
| 146 | 153 | BPF_PROG_TYPE_LIRC_MODE2, |
| 154 | + BPF_PROG_TYPE_SK_REUSEPORT, | |
| 147 | 155 | }; |
| 148 | 156 | |
| 149 | 157 | enum bpf_attach_type { |
| @@ -1371,6 +1379,20 @@ union bpf_attr { · 1221 unmodified lines | ||
| 1371 | 1379 | * A 8-byte long non-decreasing number on success, or 0 if the |
| 1372 | 1380 | * socket field is missing inside *skb*. |
| 1373 | 1381 | * |
| 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 | + * | |
| 1374 | 1396 | * u32 bpf_get_socket_uid(struct sk_buff *skb) |
| 1375 | 1397 | * Return |
| 1376 | 1398 | * The owner UID of the socket associated to *skb*. If the socket |
| @@ -1826,7 +1848,7 @@ union bpf_attr { · 449 unmodified lines | ||
| 1826 | 1848 | * A non-negative value equal to or less than *size* on success, |
| 1827 | 1849 | * or a negative error in case of failure. |
| 1828 | 1850 | * |
| 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) | |
| 1830 | 1852 | * Description |
| 1831 | 1853 | * This helper is similar to **bpf_skb_load_bytes**\ () in that |
| 1832 | 1854 | * it provides an easy way to load *len* bytes from *offset* |
| @@ -1877,7 +1899,7 @@ union bpf_attr { · 44 unmodified lines | ||
| 1877 | 1899 | * * < 0 if any input argument is invalid |
| 1878 | 1900 | * * 0 on success (packet is forwarded, nexthop neighbor exists) |
| 1879 | 1901 | * * > 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 | |
| 1881 | 1903 | * |
| 1882 | 1904 | * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags) |
| 1883 | 1905 | * Description |
| @@ -2033,7 +2055,6 @@ union bpf_attr { · 149 unmodified lines | ||
| 2033 | 2055 | * This helper is only available is the kernel was compiled with |
| 2034 | 2056 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to |
| 2035 | 2057 | * "**y**". |
| 2036 | − * | |
| 2037 | 2058 | * Return |
| 2038 | 2059 | * 0 |
| 2039 | 2060 | * |
| @@ -2053,7 +2074,6 @@ union bpf_attr { · 13 unmodified lines | ||
| 2053 | 2074 | * This helper is only available is the kernel was compiled with |
| 2054 | 2075 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to |
| 2055 | 2076 | * "**y**". |
| 2056 | − * | |
| 2057 | 2077 | * Return |
| 2058 | 2078 | * 0 |
| 2059 | 2079 | * |
| @@ -2073,10 +2093,54 @@ union bpf_attr { · 13 unmodified lines | ||
| 2073 | 2093 | * Return |
| 2074 | 2094 | * The id is returned or 0 in case the id could not be retrieved. |
| 2075 | 2095 | * |
| 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 | + * | |
| 2076 | 2114 | * u64 bpf_get_current_cgroup_id(void) |
| 2077 | 2115 | * Return |
| 2078 | 2116 | * A 64-bit integer containing the current cgroup id based |
| 2079 | 2117 | * 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. | |
| 2080 | 2144 | */ |
| 2081 | 2145 | #define __BPF_FUNC_MAPPER(FN) \ |
| 2082 | 2146 | FN(unspec), \ |
| @@ -2159,7 +2223,10 @@ union bpf_attr { · 76 unmodified lines | ||
| 2159 | 2223 | FN(rc_repeat), \ |
| 2160 | 2224 | FN(rc_keydown), \ |
| 2161 | 2225 | 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), | |
| 2163 | 2230 | |
| 2164 | 2231 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 2165 | 2232 | * function eBPF program intends to call |
| @@ -2376,6 +2443,30 @@ struct sk_msg_md { · 210 unmodified lines | ||
| 2376 | 2443 | __u32 local_port; /* stored in host byte order */ |
| 2377 | 2444 | }; |
| 2378 | 2445 | |
| 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 | + | |
| 2379 | 2470 | #define BPF_TAG_SIZE 8 |
| 2380 | 2471 | |
| 2381 | 2472 | struct bpf_prog_info { |
| @@ -2557,6 +2648,9 @@ enum { · 175 unmodified lines | ||
| 2557 | 2648 | * Arg1: old_state |
| 2558 | 2649 | * Arg2: new_state |
| 2559 | 2650 | */ |
| 2651 | + BPF_SOCK_OPS_TCP_LISTEN_CB, /* Called on listen(2), right after | |
| 2652 | + * socket transition to LISTEN state. | |
| 2653 | + */ | |
| 2560 | 2654 | }; |
| 2561 | 2655 | |
| 2562 | 2656 | /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect |
| @@ -77,7 +77,7 @@ typedef __u32 canid_t; · 76 unmodified lines | ||
| 77 | 77 | /* |
| 78 | 78 | * Controller Area Network Error Message Frame Mask structure |
| 79 | 79 | * |
| 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) | |
| 81 | 81 | * bit 29-31 : set to zero |
| 82 | 82 | */ |
| 83 | 83 | typedef __u32 can_err_mask_t; |
| @@ -233,7 +233,8 @@ struct cee_pfc { · 232 unmodified lines | ||
| 233 | 233 | * 2 Well known port number over TCP or SCTP |
| 234 | 234 | * 3 Well known port number over UDP or DCCP |
| 235 | 235 | * 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 | |
| 237 | 238 | * |
| 238 | 239 | * Selector field values for CEE |
| 239 | 240 | * 0 Ethertype |
| @@ -78,6 +78,17 @@ enum devlink_command { · 77 unmodified lines | ||
| 78 | 78 | */ |
| 79 | 79 | DEVLINK_CMD_RELOAD, |
| 80 | 80 | |
| 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 | + | |
| 81 | 92 | /* add new commands above here */ |
| 82 | 93 | __DEVLINK_CMD_MAX, |
| 83 | 94 | DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 |
| @@ -142,6 +153,16 @@ enum devlink_port_flavour { · 58 unmodified lines | ||
| 142 | 153 | */ |
| 143 | 154 | }; |
| 144 | 155 | |
| 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 | + | |
| 145 | 166 | enum devlink_attr { |
| 146 | 167 | /* don't change the order or add anything between, this is ABI! */ |
| 147 | 168 | DEVLINK_ATTR_UNSPEC, |
| @@ -238,6 +259,27 @@ enum devlink_attr { · 90 unmodified lines | ||
| 238 | 259 | DEVLINK_ATTR_PORT_NUMBER, /* u32 */ |
| 239 | 260 | DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, /* u32 */ |
| 240 | 261 | |
| 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 | + | |
| 241 | 283 | /* add new attributes above here, update the policy in devlink.c */ |
| 242 | 284 | |
| 243 | 285 | __DEVLINK_ATTR_MAX, |
| @@ -20,12 +20,16 @@ struct sock_extended_err { · 19 unmodified lines | ||
| 20 | 20 | #define SO_EE_ORIGIN_ICMP6 3 |
| 21 | 21 | #define SO_EE_ORIGIN_TXSTATUS 4 |
| 22 | 22 | #define SO_EE_ORIGIN_ZEROCOPY 5 |
| 23 | +#define SO_EE_ORIGIN_TXTIME 6 | |
| 23 | 24 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS |
| 24 | 25 | |
| 25 | 26 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) |
| 26 | 27 | |
| 27 | 28 | #define SO_EE_CODE_ZEROCOPY_COPIED 1 |
| 28 | 29 | |
| 30 | +#define SO_EE_CODE_TXTIME_INVALID_PARAM 1 | |
| 31 | +#define SO_EE_CODE_TXTIME_MISSED 2 | |
| 32 | + | |
| 29 | 33 | /** |
| 30 | 34 | * struct scm_timestamping - timestamps exposed through cmsg |
| 31 | 35 | * |
| @@ -870,7 +870,8 @@ struct ethtool_flow_ext { · 869 unmodified lines | ||
| 870 | 870 | * includes the %FLOW_EXT or %FLOW_MAC_EXT flag |
| 871 | 871 | * (see &struct ethtool_flow_ext description). |
| 872 | 872 | * @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 | |
| 874 | 875 | * @location: Location of rule in the table. Locations must be |
| 875 | 876 | * numbered such that a flow matching multiple rules will be |
| 876 | 877 | * classified according to the first (lowest numbered) rule. |
| @@ -902,13 +903,13 @@ struct ethtool_rx_flow_spec { · 25 unmodified lines | ||
| 902 | 903 | static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie) |
| 903 | 904 | { |
| 904 | 905 | return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie; |
| 905 | −}; | |
| 906 | +} | |
| 906 | 907 | |
| 907 | 908 | static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie) |
| 908 | 909 | { |
| 909 | 910 | return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >> |
| 910 | 911 | ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF; |
| 911 | −}; | |
| 912 | +} | |
| 912 | 913 | |
| 913 | 914 | /** |
| 914 | 915 | * 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 | ||
| 1634 | 1635 | #define WAKE_ARP (1 << 4) |
| 1635 | 1636 | #define WAKE_MAGIC (1 << 5) |
| 1636 | 1637 | #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ |
| 1638 | +#define WAKE_FILTER (1 << 7) | |
| 1637 | 1639 | |
| 1638 | 1640 | /* L2-L4 network traffic flow types */ |
| 1639 | 1641 | #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 | ||
| 1671 | 1673 | #define RXH_DISCARD (1 << 31) |
| 1672 | 1674 | |
| 1673 | 1675 | #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL |
| 1676 | +#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL | |
| 1674 | 1677 | |
| 1675 | 1678 | /* Special RX classification rule insert location values */ |
| 1676 | 1679 | #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ |
| @@ -164,6 +164,8 @@ enum { · 163 unmodified lines | ||
| 164 | 164 | IFLA_CARRIER_UP_COUNT, |
| 165 | 165 | IFLA_CARRIER_DOWN_COUNT, |
| 166 | 166 | IFLA_NEW_IFINDEX, |
| 167 | + IFLA_MIN_MTU, | |
| 168 | + IFLA_MAX_MTU, | |
| 167 | 169 | __IFLA_MAX |
| 168 | 170 | }; |
| 169 | 171 | |
| @@ -334,6 +336,7 @@ enum { · 164 unmodified lines | ||
| 334 | 336 | IFLA_BRPORT_GROUP_FWD_MASK, |
| 335 | 337 | IFLA_BRPORT_NEIGH_SUPPRESS, |
| 336 | 338 | IFLA_BRPORT_ISOLATED, |
| 339 | + IFLA_BRPORT_BACKUP_PORT, | |
| 337 | 340 | __IFLA_BRPORT_MAX |
| 338 | 341 | }; |
| 339 | 342 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -459,6 +462,16 @@ enum { · 119 unmodified lines | ||
| 459 | 462 | |
| 460 | 463 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) |
| 461 | 464 | |
| 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 | + | |
| 462 | 475 | enum macsec_validation_type { |
| 463 | 476 | MACSEC_VALIDATE_DISABLED = 0, |
| 464 | 477 | MACSEC_VALIDATE_CHECK = 1, |
| @@ -920,6 +933,7 @@ enum { · 455 unmodified lines | ||
| 920 | 933 | XDP_ATTACHED_DRV, |
| 921 | 934 | XDP_ATTACHED_SKB, |
| 922 | 935 | XDP_ATTACHED_HW, |
| 936 | + XDP_ATTACHED_MULTI, | |
| 923 | 937 | }; |
| 924 | 938 | |
| 925 | 939 | enum { |
| @@ -928,6 +942,9 @@ enum { · 2 unmodified lines | ||
| 928 | 942 | IFLA_XDP_ATTACHED, |
| 929 | 943 | IFLA_XDP_FLAGS, |
| 930 | 944 | IFLA_XDP_PROG_ID, |
| 945 | + IFLA_XDP_DRV_PROG_ID, | |
| 946 | + IFLA_XDP_SKB_PROG_ID, | |
| 947 | + IFLA_XDP_HW_PROG_ID, | |
| 931 | 948 | __IFLA_XDP_MAX, |
| 932 | 949 | }; |
| 933 | 950 | |
| @@ -30,6 +30,7 @@ enum { · 29 unmodified lines | ||
| 30 | 30 | ILA_CMD_ADD, |
| 31 | 31 | ILA_CMD_DEL, |
| 32 | 32 | ILA_CMD_GET, |
| 33 | + ILA_CMD_FLUSH, | |
| 33 | 34 | |
| 34 | 35 | __ILA_CMD_MAX, |
| 35 | 36 | }; |
| @@ -168,6 +168,7 @@ enum · 167 unmodified lines | ||
| 168 | 168 | IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN, |
| 169 | 169 | IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, |
| 170 | 170 | IPV4_DEVCONF_DROP_GRATUITOUS_ARP, |
| 171 | + IPV4_DEVCONF_BC_FORWARDING, | |
| 171 | 172 | __IPV4_DEVCONF_MAX |
| 172 | 173 | }; |
| 173 | 174 | |
| @@ -60,14 +60,14 @@ struct sockaddr_l2tpip6 { · 59 unmodified lines | ||
| 60 | 60 | /* |
| 61 | 61 | * Commands. |
| 62 | 62 | * 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 | |
| 64 | 64 | * TUNNEL_DELETE - CONN_ID |
| 65 | 65 | * TUNNEL_MODIFY - CONN_ID, udpcsum |
| 66 | 66 | * TUNNEL_GETSTATS - CONN_ID, (stats) |
| 67 | 67 | * 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 | |
| 69 | 69 | * SESSION_DELETE - SESSION_ID |
| 70 | − * SESSION_MODIFY - SESSION_ID, data_seq | |
| 70 | + * SESSION_MODIFY - SESSION_ID | |
| 71 | 71 | * SESSION_GET - SESSION_ID, (...) |
| 72 | 72 | * SESSION_GETSTATS - SESSION_ID, (stats) |
| 73 | 73 | * |
| @@ -95,7 +95,7 @@ enum { · 21 unmodified lines | ||
| 95 | 95 | L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */ |
| 96 | 96 | L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */ |
| 97 | 97 | L2TP_ATTR_OFFSET, /* u16 (not used) */ |
| 98 | − L2TP_ATTR_DATA_SEQ, /* u16 */ | |
| 98 | + L2TP_ATTR_DATA_SEQ, /* u16 (not used) */ | |
| 99 | 99 | L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */ |
| 100 | 100 | L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */ |
| 101 | 101 | L2TP_ATTR_PROTO_VERSION, /* u8 */ |
| @@ -105,7 +105,7 @@ enum { · 3 unmodified lines | ||
| 105 | 105 | L2TP_ATTR_SESSION_ID, /* u32 */ |
| 106 | 106 | L2TP_ATTR_PEER_SESSION_ID, /* u32 */ |
| 107 | 107 | L2TP_ATTR_UDP_CSUM, /* u8 */ |
| 108 | − L2TP_ATTR_VLAN_ID, /* u16 */ | |
| 108 | + L2TP_ATTR_VLAN_ID, /* u16 (not used) */ | |
| 109 | 109 | L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */ |
| 110 | 110 | L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */ |
| 111 | 111 | L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */ |
| @@ -119,8 +119,8 @@ enum { · 7 unmodified lines | ||
| 119 | 119 | L2TP_ATTR_IP_DADDR, /* u32 */ |
| 120 | 120 | L2TP_ATTR_UDP_SPORT, /* u16 */ |
| 121 | 121 | 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) */ | |
| 124 | 124 | L2TP_ATTR_STATS, /* nested */ |
| 125 | 125 | L2TP_ATTR_IP6_SADDR, /* struct in6_addr */ |
| 126 | 126 | L2TP_ATTR_IP6_DADDR, /* struct in6_addr */ |
| @@ -169,6 +169,7 @@ enum l2tp_encap_type { · 42 unmodified lines | ||
| 169 | 169 | L2TP_ENCAPTYPE_IP, |
| 170 | 170 | }; |
| 171 | 171 | |
| 172 | +/* For L2TP_ATTR_DATA_SEQ. Unused. */ | |
| 172 | 173 | enum l2tp_seqmode { |
| 173 | 174 | L2TP_SEQ_NONE = 0, |
| 174 | 175 | L2TP_SEQ_IP = 1, |
| @@ -136,6 +136,7 @@ · 135 unmodified lines | ||
| 136 | 136 | #define CTL1000_ENABLE_MASTER 0x1000 |
| 137 | 137 | |
| 138 | 138 | /* 1000BASE-T Status register */ |
| 139 | +#define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */ | |
| 139 | 140 | #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ |
| 140 | 141 | #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ |
| 141 | 142 | #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */ |
| @@ -120,6 +120,7 @@ enum { · 119 unmodified lines | ||
| 120 | 120 | IPMRA_TABLE_MROUTE_DO_ASSERT, |
| 121 | 121 | IPMRA_TABLE_MROUTE_DO_PIM, |
| 122 | 122 | IPMRA_TABLE_VIFS, |
| 123 | + IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE, | |
| 123 | 124 | __IPMRA_TABLE_MAX |
| 124 | 125 | }; |
| 125 | 126 | #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1) |
| @@ -173,5 +174,6 @@ enum { · 47 unmodified lines | ||
| 173 | 174 | #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */ |
| 174 | 175 | #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */ |
| 175 | 176 | #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */ |
| 177 | +#define IGMPMSG_WRVIFWHOLE 4 /* For PIM Register and assert processing */ | |
| 176 | 178 | |
| 177 | 179 | #endif /* _UAPI__LINUX_MROUTE_H */ |
| @@ -141,4 +141,22 @@ struct scm_ts_pktinfo { · 140 unmodified lines | ||
| 141 | 141 | __u32 reserved[2]; |
| 142 | 142 | }; |
| 143 | 143 | |
| 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 | + | |
| 144 | 162 | #endif /* _NET_TIMESTAMPING_H */ |
| @@ -18,6 +18,7 @@ enum { · 17 unmodified lines | ||
| 18 | 18 | NETCONFA_PROXY_NEIGH, |
| 19 | 19 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, |
| 20 | 20 | NETCONFA_INPUT, |
| 21 | + NETCONFA_BC_FORWARDING, | |
| 21 | 22 | __NETCONFA_MAX |
| 22 | 23 | }; |
| 23 | 24 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
| @@ -8,6 +8,7 @@ · 7 unmodified lines | ||
| 8 | 8 | #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN |
| 9 | 9 | #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN |
| 10 | 10 | #define NFT_USERDATA_MAXLEN 256 |
| 11 | +#define NFT_OSF_MAXGENRELEN 16 | |
| 11 | 12 | |
| 12 | 13 | /** |
| 13 | 14 | * enum nft_registers - nf_tables registers |
| @@ -921,10 +922,12 @@ enum nft_socket_attributes { · 907 unmodified lines | ||
| 921 | 922 | /* |
| 922 | 923 | * enum nft_socket_keys - nf_tables socket expression keys |
| 923 | 924 | * |
| 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 | |
| 925 | 927 | */ |
| 926 | 928 | enum nft_socket_keys { |
| 927 | 929 | NFT_SOCKET_TRANSPARENT, |
| 930 | + NFT_SOCKET_MARK, | |
| 928 | 931 | __NFT_SOCKET_MAX |
| 929 | 932 | }; |
| 930 | 933 | #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) |
| @@ -955,6 +958,7 @@ enum nft_socket_keys { · 24 unmodified lines | ||
| 955 | 958 | * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address) |
| 956 | 959 | * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address) |
| 957 | 960 | * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address) |
| 961 | + * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack | |
| 958 | 962 | */ |
| 959 | 963 | enum nft_ct_keys { |
| 960 | 964 | NFT_CT_STATE, |
| @@ -980,6 +984,7 @@ enum nft_ct_keys { · 19 unmodified lines | ||
| 980 | 984 | NFT_CT_DST_IP, |
| 981 | 985 | NFT_CT_SRC_IP6, |
| 982 | 986 | NFT_CT_DST_IP6, |
| 987 | + NFT_CT_TIMEOUT, | |
| 983 | 988 | __NFT_CT_MAX |
| 984 | 989 | }; |
| 985 | 990 | #define NFT_CT_MAX (__NFT_CT_MAX - 1) |
| @@ -1250,6 +1255,22 @@ enum nft_nat_attributes { · 264 unmodified lines | ||
| 1250 | 1255 | }; |
| 1251 | 1256 | #define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1) |
| 1252 | 1257 | |
| 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 | + | |
| 1253 | 1274 | /** |
| 1254 | 1275 | * enum nft_masq_attributes - nf_tables masquerade expression attributes |
| 1255 | 1276 | * |
| @@ -1392,13 +1413,24 @@ enum nft_ct_helper_attributes { · 136 unmodified lines | ||
| 1392 | 1413 | }; |
| 1393 | 1414 | #define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1) |
| 1394 | 1415 | |
| 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 | + | |
| 1395 | 1425 | #define NFT_OBJECT_UNSPEC 0 |
| 1396 | 1426 | #define NFT_OBJECT_COUNTER 1 |
| 1397 | 1427 | #define NFT_OBJECT_QUOTA 2 |
| 1398 | 1428 | #define NFT_OBJECT_CT_HELPER 3 |
| 1399 | 1429 | #define NFT_OBJECT_LIMIT 4 |
| 1400 | 1430 | #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 | |
| 1402 | 1434 | #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) |
| 1403 | 1435 | |
| 1404 | 1436 | /** |
| @@ -1461,6 +1493,13 @@ enum nft_flowtable_hook_attributes { · 56 unmodified lines | ||
| 1461 | 1493 | }; |
| 1462 | 1494 | #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1) |
| 1463 | 1495 | |
| 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 | + | |
| 1464 | 1503 | /** |
| 1465 | 1504 | * enum nft_device_attributes - nf_tables device netlink attributes |
| 1466 | 1505 | * |
| @@ -1555,4 +1594,85 @@ enum nft_ng_types { · 88 unmodified lines | ||
| 1555 | 1594 | }; |
| 1556 | 1595 | #define NFT_NG_MAX (__NFT_NG_MAX - 1) |
| 1557 | 1596 | |
| 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 | + | |
| 1558 | 1678 | #endif /* _LINUX_NF_TABLES_H */ |
| @@ -16,9 +16,14 @@ · 15 unmodified lines | ||
| 16 | 16 | |
| 17 | 17 | #define NF_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */ |
| 18 | 18 | |
| 19 | +/* Check if ip TTL is less than fingerprint one */ | |
| 20 | +#define NF_OSF_TTL_LESS 1 | |
| 21 | + | |
| 19 | 22 | /* Do not compare ip and fingerprint TTL at all */ |
| 20 | 23 | #define NF_OSF_TTL_NOCHECK 2 |
| 21 | 24 | |
| 25 | +#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | \ | |
| 26 | + NF_OSF_LOG | NF_OSF_INVERT) | |
| 22 | 27 | /* Wildcard MSS (kind of). |
| 23 | 28 | * It is used to implement a state machine for the different wildcard values |
| 24 | 29 | * of the MSS and window sizes. |
| @@ -83,4 +88,31 @@ enum iana_options { · 58 unmodified lines | ||
| 83 | 88 | OSFOPT_EMPTY = 255, |
| 84 | 89 | }; |
| 85 | 90 | |
| 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 | + | |
| 86 | 118 | #endif /* _NF_OSF_H */ |
| @@ -23,7 +23,7 @@ · 22 unmodified lines | ||
| 23 | 23 | #include <linux/types.h> |
| 24 | 24 | #include <linux/ip.h> |
| 25 | 25 | #include <linux/tcp.h> |
| 26 | −#include <linux/netfilter/nf_osf.h> | |
| 26 | +#include <linux/netfilter/nfnetlink_osf.h> | |
| 27 | 27 | |
| 28 | 28 | #define XT_OSF_GENRE NF_OSF_GENRE |
| 29 | 29 | #define XT_OSF_INVERT NF_OSF_INVERT |
| @@ -37,8 +37,7 @@ · 7 unmodified lines | ||
| 37 | 37 | |
| 38 | 38 | #define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE |
| 39 | 39 | #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 | |
| 42 | 41 | |
| 43 | 42 | #define xt_osf_wc nf_osf_wc |
| 44 | 43 | #define xt_osf_opt nf_osf_opt |
| @@ -47,19 +46,8 @@ · 2 unmodified lines | ||
| 47 | 46 | #define xt_osf_finger nf_osf_finger |
| 48 | 47 | #define xt_osf_nlmsg nf_osf_nlmsg |
| 49 | 48 | |
| 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 | |
| 64 | 52 | |
| 65 | 53 | #endif /* _XT_OSF_H */ |
| @@ -26,4 +26,15 @@ · 25 unmodified lines | ||
| 26 | 26 | #define NF_BR_BROUTING 5 |
| 27 | 27 | #define NF_BR_NUMHOOKS 6 |
| 28 | 28 | |
| 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 | + | |
| 29 | 40 | #endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */ |
| @@ -2237,6 +2237,9 @@ enum nl80211_commands { · 2236 unmodified lines | ||
| 2237 | 2237 | * enforced. |
| 2238 | 2238 | * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes |
| 2239 | 2239 | * 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. | |
| 2240 | 2243 | * |
| 2241 | 2244 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2242 | 2245 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| @@ -2677,6 +2680,8 @@ enum nl80211_attrs { · 434 unmodified lines | ||
| 2677 | 2680 | NL80211_ATTR_TXQ_MEMORY_LIMIT, |
| 2678 | 2681 | NL80211_ATTR_TXQ_QUANTUM, |
| 2679 | 2682 | |
| 2683 | + NL80211_ATTR_HE_CAPABILITY, | |
| 2684 | + | |
| 2680 | 2685 | /* add attributes here, update the policy in nl80211.c */ |
| 2681 | 2686 | |
| 2682 | 2687 | __NL80211_ATTR_AFTER_LAST, |
| @@ -2726,7 +2731,8 @@ enum nl80211_attrs { · 43 unmodified lines | ||
| 2726 | 2731 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
| 2727 | 2732 | #define NL80211_HT_CAPABILITY_LEN 26 |
| 2728 | 2733 | #define NL80211_VHT_CAPABILITY_LEN 12 |
| 2729 | − | |
| 2734 | +#define NL80211_HE_MIN_CAPABILITY_LEN 16 | |
| 2735 | +#define NL80211_HE_MAX_CAPABILITY_LEN 51 | |
| 2730 | 2736 | #define NL80211_MAX_NR_CIPHER_SUITES 5 |
| 2731 | 2737 | #define NL80211_MAX_NR_AKM_SUITES 2 |
| 2732 | 2738 | |
| @@ -2853,6 +2859,38 @@ struct nl80211_sta_flag_update { · 120 unmodified lines | ||
| 2853 | 2859 | __u32 set; |
| 2854 | 2860 | } __attribute__((packed)); |
| 2855 | 2861 | |
| 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 | + | |
| 2856 | 2894 | /** |
| 2857 | 2895 | * enum nl80211_rate_info - bitrate information |
| 2858 | 2896 | * |
| @@ -2885,6 +2923,13 @@ struct nl80211_sta_flag_update { · 26 unmodified lines | ||
| 2885 | 2923 | * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is |
| 2886 | 2924 | * a legacy rate and will be reported as the actual bitrate, i.e. |
| 2887 | 2925 | * 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) | |
| 2888 | 2933 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 2889 | 2934 | */ |
| 2890 | 2935 | enum nl80211_rate_info { |
| @@ -2901,6 +2946,11 @@ enum nl80211_rate_info { · 10 unmodified lines | ||
| 2901 | 2946 | NL80211_RATE_INFO_160_MHZ_WIDTH, |
| 2902 | 2947 | NL80211_RATE_INFO_10_MHZ_WIDTH, |
| 2903 | 2948 | 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, | |
| 2904 | 2954 | |
| 2905 | 2955 | /* keep last */ |
| 2906 | 2956 | __NL80211_RATE_INFO_AFTER_LAST, |
| @@ -3166,6 +3216,38 @@ enum nl80211_mpath_info { · 259 unmodified lines | ||
| 3166 | 3216 | NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 |
| 3167 | 3217 | }; |
| 3168 | 3218 | |
| 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 | + | |
| 3169 | 3251 | /** |
| 3170 | 3252 | * enum nl80211_band_attr - band attributes |
| 3171 | 3253 | * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved |
| @@ -3181,6 +3263,8 @@ enum nl80211_mpath_info { · 9 unmodified lines | ||
| 3181 | 3263 | * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as |
| 3182 | 3264 | * defined in 802.11ac |
| 3183 | 3265 | * @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 | |
| 3184 | 3268 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined |
| 3185 | 3269 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use |
| 3186 | 3270 | */ |
| @@ -3196,6 +3280,7 @@ enum nl80211_band_attr { · 9 unmodified lines | ||
| 3196 | 3280 | |
| 3197 | 3281 | NL80211_BAND_ATTR_VHT_MCS_SET, |
| 3198 | 3282 | NL80211_BAND_ATTR_VHT_CAPA, |
| 3283 | + NL80211_BAND_ATTR_IFTYPE_DATA, | |
| 3199 | 3284 | |
| 3200 | 3285 | /* keep last */ |
| 3201 | 3286 | __NL80211_BAND_ATTR_AFTER_LAST, |
| @@ -5133,6 +5218,11 @@ enum nl80211_feature_flags { · 1931 unmodified lines | ||
| 5133 | 5218 | * support to nl80211. |
| 5134 | 5219 | * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate |
| 5135 | 5220 | * 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. | |
| 5136 | 5226 | * |
| 5137 | 5227 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 5138 | 5228 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -5167,6 +5257,8 @@ enum nl80211_ext_feature_index { · 28 unmodified lines | ||
| 5167 | 5257 | NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211, |
| 5168 | 5258 | NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT, |
| 5169 | 5259 | NL80211_EXT_FEATURE_TXQS, |
| 5260 | + NL80211_EXT_FEATURE_SCAN_RANDOM_SN, | |
| 5261 | + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, | |
| 5170 | 5262 | |
| 5171 | 5263 | /* add new features before the definition below */ |
| 5172 | 5264 | NUM_NL80211_EXT_FEATURES, |
| @@ -5272,6 +5364,12 @@ enum nl80211_timeout_reason { · 99 unmodified lines | ||
| 5272 | 5364 | * possible scan results. This flag hints the driver to use the best |
| 5273 | 5365 | * possible scan configuration to improve the accuracy in scanning. |
| 5274 | 5366 | * 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.) | |
| 5275 | 5373 | */ |
| 5276 | 5374 | enum nl80211_scan_flags { |
| 5277 | 5375 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, |
| @@ -5285,6 +5383,8 @@ enum nl80211_scan_flags { · 7 unmodified lines | ||
| 5285 | 5383 | NL80211_SCAN_FLAG_LOW_SPAN = 1<<8, |
| 5286 | 5384 | NL80211_SCAN_FLAG_LOW_POWER = 1<<9, |
| 5287 | 5385 | NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10, |
| 5386 | + NL80211_SCAN_FLAG_RANDOM_SN = 1<<11, | |
| 5387 | + NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12, | |
| 5288 | 5388 | }; |
| 5289 | 5389 | |
| 5290 | 5390 | /** |
| @@ -840,6 +840,8 @@ struct ovs_action_push_eth { · 839 unmodified lines | ||
| 840 | 840 | * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet. |
| 841 | 841 | * @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the |
| 842 | 842 | * 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. | |
| 843 | 845 | * |
| 844 | 846 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 845 | 847 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
| @@ -873,6 +875,7 @@ enum ovs_action_attr { · 27 unmodified lines | ||
| 873 | 875 | OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */ |
| 874 | 876 | OVS_ACTION_ATTR_POP_NSH, /* No argument. */ |
| 875 | 877 | OVS_ACTION_ATTR_METER, /* u32 meter ID. */ |
| 878 | + OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */ | |
| 876 | 879 | |
| 877 | 880 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 878 | 881 | * from userspace. */ |
| @@ -45,6 +45,7 @@ enum { · 44 unmodified lines | ||
| 45 | 45 | * the skb and act like everything |
| 46 | 46 | * is alright. |
| 47 | 47 | */ |
| 48 | +#define TC_ACT_VALUE_MAX TC_ACT_TRAP | |
| 48 | 49 | |
| 49 | 50 | /* There is a special kind of actions called "extended actions", |
| 50 | 51 | * which need a value parameter. These have a local opcode located in |
| @@ -55,11 +56,12 @@ enum { · 4 unmodified lines | ||
| 55 | 56 | #define __TC_ACT_EXT_SHIFT 28 |
| 56 | 57 | #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) |
| 57 | 58 | #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) | |
| 60 | 61 | |
| 61 | 62 | #define TC_ACT_JUMP __TC_ACT_EXT(1) |
| 62 | 63 | #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) |
| 64 | +#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN | |
| 63 | 65 | |
| 64 | 66 | /* Action type identifiers*/ |
| 65 | 67 | enum { |
| @@ -469,11 +471,46 @@ enum { · 403 unmodified lines | ||
| 469 | 471 | TCA_FLOWER_KEY_IP_TTL, /* u8 */ |
| 470 | 472 | TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */ |
| 471 | 473 | |
| 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 | + | |
| 472 | 486 | __TCA_FLOWER_MAX, |
| 473 | 487 | }; |
| 474 | 488 | |
| 475 | 489 | #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) |
| 476 | 490 | |
| 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 | + | |
| 477 | 514 | enum { |
| 478 | 515 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), |
| 479 | 516 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), |
| @@ -124,6 +124,21 @@ struct tc_fifo_qopt { · 123 unmodified lines | ||
| 124 | 124 | __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */ |
| 125 | 125 | }; |
| 126 | 126 | |
| 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 | + | |
| 127 | 142 | /* PRIO section */ |
| 128 | 143 | |
| 129 | 144 | #define TCQ_PRIO_BANDS 16 |
| @@ -539,6 +554,7 @@ enum { · 409 unmodified lines | ||
| 539 | 554 | TCA_NETEM_LATENCY64, |
| 540 | 555 | TCA_NETEM_JITTER64, |
| 541 | 556 | TCA_NETEM_SLOT, |
| 557 | + TCA_NETEM_SLOT_DIST, | |
| 542 | 558 | __TCA_NETEM_MAX, |
| 543 | 559 | }; |
| 544 | 560 | |
| @@ -581,6 +597,8 @@ struct tc_netem_slot { · 36 unmodified lines | ||
| 581 | 597 | __s64 max_delay; |
| 582 | 598 | __s32 max_packets; |
| 583 | 599 | __s32 max_bytes; |
| 600 | + __s64 dist_delay; /* nsec */ | |
| 601 | + __s64 dist_jitter; /* nsec */ | |
| 584 | 602 | }; |
| 585 | 603 | |
| 586 | 604 | enum { |
| @@ -934,4 +952,136 @@ enum { · 347 unmodified lines | ||
| 934 | 952 | |
| 935 | 953 | #define TCA_CBS_MAX (__TCA_CBS_MAX - 1) |
| 936 | 954 | |
| 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 | + | |
| 937 | 1087 | #endif |
| @@ -68,7 +68,7 @@ struct ppp_option_data { · 67 unmodified lines | ||
| 68 | 68 | struct pppol2tp_ioc_stats { |
| 69 | 69 | __u16 tunnel_id; /* redundant */ |
| 70 | 70 | __u16 session_id; /* if zero, get tunnel stats */ |
| 71 | − __u32 using_ipsec:1; /* valid only for session_id == 0 */ | |
| 71 | + __u32 using_ipsec:1; | |
| 72 | 72 | __aligned_u64 tx_packets; |
| 73 | 73 | __aligned_u64 tx_bytes; |
| 74 | 74 | __aligned_u64 tx_errors; |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */ |
| 2 | 2 | /* |
| 3 | − * Copyright (c) 2008 Oracle. All rights reserved. | |
| 3 | + * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved. | |
| 4 | 4 | * |
| 5 | 5 | * This software is available to you under a choice of one of two |
| 6 | 6 | * licenses. You may choose to be licensed under the terms of the GNU |
| @@ -118,7 +118,17 @@ · 111 unmodified lines | ||
| 118 | 118 | #define RDS_INFO_IB_CONNECTIONS 10008 |
| 119 | 119 | #define RDS_INFO_CONNECTION_STATS 10009 |
| 120 | 120 | #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 | |
| 122 | 132 | |
| 123 | 133 | struct rds_info_counter { |
| 124 | 134 | __u8 name[32]; |
| @@ -140,6 +150,15 @@ struct rds_info_connection { · 15 unmodified lines | ||
| 140 | 150 | __u8 flags; |
| 141 | 151 | } __attribute__((packed)); |
| 142 | 152 | |
| 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 | + | |
| 143 | 162 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 |
| 144 | 163 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 |
| 145 | 164 | |
| @@ -153,6 +172,17 @@ struct rds_info_message { · 7 unmodified lines | ||
| 153 | 172 | __u8 flags; |
| 154 | 173 | } __attribute__((packed)); |
| 155 | 174 | |
| 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 | + | |
| 156 | 186 | struct rds_info_socket { |
| 157 | 187 | __u32 sndbuf; |
| 158 | 188 | __be32 bound_addr; |
| @@ -163,6 +193,16 @@ struct rds_info_socket { · 4 unmodified lines | ||
| 163 | 193 | __u64 inum; |
| 164 | 194 | } __attribute__((packed)); |
| 165 | 195 | |
| 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 | + | |
| 166 | 206 | struct rds_info_tcp_socket { |
| 167 | 207 | __be32 local_addr; |
| 168 | 208 | __be16 local_port; |
| @@ -175,6 +215,18 @@ struct rds_info_tcp_socket { · 6 unmodified lines | ||
| 175 | 215 | __u32 last_seen_una; |
| 176 | 216 | } __attribute__((packed)); |
| 177 | 217 | |
| 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 | + | |
| 178 | 230 | #define RDS_IB_GID_LEN 16 |
| 179 | 231 | struct rds_info_rdma_connection { |
| 180 | 232 | __be32 src_addr; |
| @@ -189,6 +241,19 @@ struct rds_info_rdma_connection { · 8 unmodified lines | ||
| 189 | 241 | __u32 rdma_mr_size; |
| 190 | 242 | }; |
| 191 | 243 | |
| 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 | + | |
| 192 | 257 | /* RDS message Receive Path Latency points */ |
| 193 | 258 | enum rds_message_rxpath_latency { |
| 194 | 259 | RDS_MSG_RX_HDR_TO_DGRAM_START = 0, |
| @@ -150,6 +150,13 @@ enum { · 149 unmodified lines | ||
| 150 | 150 | RTM_NEWCACHEREPORT = 96, |
| 151 | 151 | #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT |
| 152 | 152 | |
| 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 | + | |
| 153 | 160 | __RTM_MAX, |
| 154 | 161 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| 155 | 162 | }; |
| @@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t; · 99 unmodified lines | ||
| 100 | 100 | #define SCTP_RECVNXTINFO 33 |
| 101 | 101 | #define SCTP_DEFAULT_SNDINFO 34 |
| 102 | 102 | #define SCTP_AUTH_DEACTIVATE_KEY 35 |
| 103 | +#define SCTP_REUSE_PORT 36 | |
| 103 | 104 | |
| 104 | 105 | /* Internal Socket Options. Some of the sctp library functions are |
| 105 | 106 | * implemented using these socket options. |
| @@ -762,6 +763,8 @@ enum sctp_spp_flags { · 656 unmodified lines | ||
| 762 | 763 | SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/ |
| 763 | 764 | SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE, |
| 764 | 765 | SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */ |
| 766 | + SPP_IPV6_FLOWLABEL = 1<<8, | |
| 767 | + SPP_DSCP = 1<<9, | |
| 765 | 768 | }; |
| 766 | 769 | |
| 767 | 770 | struct sctp_paddrparams { |
| @@ -772,6 +775,8 @@ struct sctp_paddrparams { · 4 unmodified lines | ||
| 772 | 775 | __u32 spp_pathmtu; |
| 773 | 776 | __u32 spp_sackdelay; |
| 774 | 777 | __u32 spp_flags; |
| 778 | + __u32 spp_ipv6_flowlabel; | |
| 779 | + __u8 spp_dscp; | |
| 775 | 780 | } __attribute__((packed, aligned(4))); |
| 776 | 781 | |
| 777 | 782 | /* |
| @@ -20,7 +20,7 @@ struct smc_diag_req { · 19 unmodified lines | ||
| 20 | 20 | struct smc_diag_msg { |
| 21 | 21 | __u8 diag_family; |
| 22 | 22 | __u8 diag_state; |
| 23 | − __u8 diag_fallback; | |
| 23 | + __u8 diag_mode; | |
| 24 | 24 | __u8 diag_shutdown; |
| 25 | 25 | struct inet_diag_sockid id; |
| 26 | 26 | |
| @@ -28,6 +28,13 @@ struct smc_diag_msg { · 1 unmodified line | ||
| 28 | 28 | __u64 diag_inode; |
| 29 | 29 | }; |
| 30 | 30 | |
| 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 | + | |
| 31 | 38 | /* Extensions */ |
| 32 | 39 | |
| 33 | 40 | enum { |
| @@ -35,6 +42,8 @@ enum { · 1 unmodified line | ||
| 35 | 42 | SMC_DIAG_CONNINFO, |
| 36 | 43 | SMC_DIAG_LGRINFO, |
| 37 | 44 | SMC_DIAG_SHUTDOWN, |
| 45 | + SMC_DIAG_DMBINFO, | |
| 46 | + SMC_DIAG_FALLBACK, | |
| 38 | 47 | __SMC_DIAG_MAX, |
| 39 | 48 | }; |
| 40 | 49 | |
| @@ -83,4 +92,18 @@ struct smc_diag_lgrinfo { · 42 unmodified lines | ||
| 83 | 92 | struct smc_diag_linkinfo lnk[1]; |
| 84 | 93 | __u8 role; |
| 85 | 94 | }; |
| 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 | + | |
| 86 | 109 | #endif /* _UAPI_SMC_DIAG_H_ */ |
| @@ -56,6 +56,7 @@ enum · 55 unmodified lines | ||
| 56 | 56 | IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */ |
| 57 | 57 | IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */ |
| 58 | 58 | IPSTATS_MIB_CEPKTS, /* InCEPkts */ |
| 59 | + IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */ | |
| 59 | 60 | __IPSTATS_MIB_MAX |
| 60 | 61 | }; |
| 61 | 62 | |
| @@ -279,6 +280,8 @@ enum · 217 unmodified lines | ||
| 279 | 280 | LINUX_MIB_TCPDELIVERED, /* TCPDelivered */ |
| 280 | 281 | LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */ |
| 281 | 282 | LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */ |
| 283 | + LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */ | |
| 284 | + LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */ | |
| 282 | 285 | __LINUX_MIB_MAX |
| 283 | 286 | }; |
| 284 | 287 | |
| @@ -575,7 +575,8 @@ enum { · 574 unmodified lines | ||
| 575 | 575 | |
| 576 | 576 | /* /proc/sys/net/ipv6/icmp */ |
| 577 | 577 | enum { |
| 578 | − NET_IPV6_ICMP_RATELIMIT=1 | |
| 578 | + NET_IPV6_ICMP_RATELIMIT = 1, | |
| 579 | + NET_IPV6_ICMP_ECHO_IGNORE_ALL = 2 | |
| 579 | 580 | }; |
| 580 | 581 | |
| 581 | 582 | /* /proc/sys/net/<protocol>/neigh/<dev> */ |
| @@ -17,13 +17,15 @@ enum { · 16 unmodified lines | ||
| 17 | 17 | TCA_PEDIT_KEY_EX, |
| 18 | 18 | __TCA_PEDIT_MAX |
| 19 | 19 | }; |
| 20 | + | |
| 20 | 21 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) |
| 21 | − | |
| 22 | + | |
| 22 | 23 | enum { |
| 23 | 24 | TCA_PEDIT_KEY_EX_HTYPE = 1, |
| 24 | 25 | TCA_PEDIT_KEY_EX_CMD = 2, |
| 25 | 26 | __TCA_PEDIT_KEY_EX_MAX |
| 26 | 27 | }; |
| 28 | + | |
| 27 | 29 | #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1) |
| 28 | 30 | |
| 29 | 31 | /* 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 | ||
| 38 | 40 | TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5, |
| 39 | 41 | __PEDIT_HDR_TYPE_MAX, |
| 40 | 42 | }; |
| 43 | + | |
| 41 | 44 | #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1) |
| 42 | 45 | |
| 43 | 46 | enum pedit_cmd { |
| @@ -45,6 +48,7 @@ enum pedit_cmd { · 1 unmodified line | ||
| 45 | 48 | TCA_PEDIT_KEY_EX_CMD_ADD = 1, |
| 46 | 49 | __PEDIT_CMD_MAX, |
| 47 | 50 | }; |
| 51 | + | |
| 48 | 52 | #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1) |
| 49 | 53 | |
| 50 | 54 | struct tc_pedit_key { |
| @@ -55,13 +59,14 @@ struct tc_pedit_key { · 4 unmodified lines | ||
| 55 | 59 | __u32 offmask; |
| 56 | 60 | __u32 shift; |
| 57 | 61 | }; |
| 58 | − | |
| 62 | + | |
| 59 | 63 | struct tc_pedit_sel { |
| 60 | 64 | tc_gen; |
| 61 | 65 | unsigned char nkeys; |
| 62 | 66 | unsigned char flags; |
| 63 | 67 | struct tc_pedit_key keys[0]; |
| 64 | 68 | }; |
| 69 | + | |
| 65 | 70 | #define tc_pedit tc_pedit_sel |
| 66 | 71 | |
| 67 | 72 | #endif |
| @@ -30,6 +30,7 @@ · 29 unmodified lines | ||
| 30 | 30 | #define SKBEDIT_F_MARK 0x4 |
| 31 | 31 | #define SKBEDIT_F_PTYPE 0x8 |
| 32 | 32 | #define SKBEDIT_F_MASK 0x10 |
| 33 | +#define SKBEDIT_F_INHERITDSFIELD 0x20 | |
| 33 | 34 | |
| 34 | 35 | struct tc_skbedit { |
| 35 | 36 | tc_gen; |
| @@ -45,6 +46,7 @@ enum { · 9 unmodified lines | ||
| 45 | 46 | TCA_SKBEDIT_PAD, |
| 46 | 47 | TCA_SKBEDIT_PTYPE, |
| 47 | 48 | TCA_SKBEDIT_MASK, |
| 49 | + TCA_SKBEDIT_FLAGS, | |
| 48 | 50 | __TCA_SKBEDIT_MAX |
| 49 | 51 | }; |
| 50 | 52 | #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) |
| @@ -36,9 +36,37 @@ enum { · 35 unmodified lines | ||
| 36 | 36 | TCA_TUNNEL_KEY_PAD, |
| 37 | 37 | TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */ |
| 38 | 38 | 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 */ | |
| 39 | 44 | __TCA_TUNNEL_KEY_MAX, |
| 40 | 45 | }; |
| 41 | 46 | |
| 42 | 47 | #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1) |
| 43 | 48 | |
| 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 | + | |
| 44 | 72 | #endif |
| @@ -235,6 +235,11 @@ struct tcp_info { · 234 unmodified lines | ||
| 235 | 235 | |
| 236 | 236 | __u32 tcpi_delivered; |
| 237 | 237 | __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 */ | |
| 238 | 243 | }; |
| 239 | 244 | |
| 240 | 245 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ |
| @@ -257,7 +262,10 @@ enum { · 16 unmodified lines | ||
| 257 | 262 | TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */ |
| 258 | 263 | TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */ |
| 259 | 264 | 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 */ | |
| 261 | 269 | }; |
| 262 | 270 | |
| 263 | 271 | /* for TCP_MD5SIG socket option */ |
| @@ -121,6 +121,7 @@ enum { · 120 unmodified lines | ||
| 121 | 121 | TIPC_NLA_SOCK_TIPC_STATE, /* u32 */ |
| 122 | 122 | TIPC_NLA_SOCK_COOKIE, /* u64 */ |
| 123 | 123 | TIPC_NLA_SOCK_PAD, /* flag */ |
| 124 | + TIPC_NLA_SOCK_GROUP, /* nest */ | |
| 124 | 125 | |
| 125 | 126 | __TIPC_NLA_SOCK_MAX, |
| 126 | 127 | TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1 |
| @@ -233,6 +234,19 @@ enum { · 106 unmodified lines | ||
| 233 | 234 | TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1 |
| 234 | 235 | }; |
| 235 | 236 | |
| 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 | + | |
| 236 | 250 | /* Nest, connection info */ |
| 237 | 251 | enum { |
| 238 | 252 | TIPC_NLA_CON_UNSPEC, |
| @@ -65,6 +65,7 @@ struct vhost_iotlb_msg { · 64 unmodified lines | ||
| 65 | 65 | }; |
| 66 | 66 | |
| 67 | 67 | #define VHOST_IOTLB_MSG 0x1 |
| 68 | +#define VHOST_IOTLB_MSG_V2 0x2 | |
| 68 | 69 | |
| 69 | 70 | struct vhost_msg { |
| 70 | 71 | int type; |
| @@ -74,6 +75,15 @@ struct vhost_msg { · 3 unmodified lines | ||
| 74 | 75 | }; |
| 75 | 76 | }; |
| 76 | 77 | |
| 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 | + | |
| 77 | 87 | struct vhost_memory_region { |
| 78 | 88 | __u64 guest_phys_addr; |
| 79 | 89 | __u64 memory_size; /* bytes */ |
| @@ -160,6 +170,14 @@ struct vhost_memory { · 80 unmodified lines | ||
| 160 | 170 | #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \ |
| 161 | 171 | struct vhost_vring_state) |
| 162 | 172 | |
| 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 | + | |
| 163 | 181 | /* VHOST_NET specific defines */ |
| 164 | 182 | |
| 165 | 183 | /* Attach virtio net ring to a raw socket, or tap device. |
| @@ -305,9 +305,12 @@ enum xfrm_attr_type_t { · 304 unmodified lines | ||
| 305 | 305 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ |
| 306 | 306 | XFRMA_PAD, |
| 307 | 307 | 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 */ | |
| 309 | 311 | __XFRMA_MAX |
| 310 | 312 | |
| 313 | +#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */ | |
| 311 | 314 | #define XFRMA_MAX (__XFRMA_MAX - 1) |
| 312 | 315 | }; |
| 313 | 316 | |