diff options
Diffstat (limited to 'include/uapi')
27 files changed, 778 insertions, 22 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index 185f8ea2702f..d0352a971ebd 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
| @@ -71,6 +71,7 @@ header-y += binfmts.h | |||
| 71 | header-y += blkpg.h | 71 | header-y += blkpg.h |
| 72 | header-y += blktrace_api.h | 72 | header-y += blktrace_api.h |
| 73 | header-y += bpf_common.h | 73 | header-y += bpf_common.h |
| 74 | header-y += bpf_perf_event.h | ||
| 74 | header-y += bpf.h | 75 | header-y += bpf.h |
| 75 | header-y += bpqether.h | 76 | header-y += bpqether.h |
| 76 | header-y += bsg.h | 77 | header-y += bsg.h |
diff --git a/include/uapi/linux/batman_adv.h b/include/uapi/linux/batman_adv.h index 0fbf6fd4711b..734fe83ab645 100644 --- a/include/uapi/linux/batman_adv.h +++ b/include/uapi/linux/batman_adv.h | |||
| @@ -23,6 +23,42 @@ | |||
| 23 | #define BATADV_NL_MCAST_GROUP_TPMETER "tpmeter" | 23 | #define BATADV_NL_MCAST_GROUP_TPMETER "tpmeter" |
| 24 | 24 | ||
| 25 | /** | 25 | /** |
| 26 | * enum batadv_tt_client_flags - TT client specific flags | ||
| 27 | * @BATADV_TT_CLIENT_DEL: the client has to be deleted from the table | ||
| 28 | * @BATADV_TT_CLIENT_ROAM: the client roamed to/from another node and the new | ||
| 29 | * update telling its new real location has not been received/sent yet | ||
| 30 | * @BATADV_TT_CLIENT_WIFI: this client is connected through a wifi interface. | ||
| 31 | * This information is used by the "AP Isolation" feature | ||
| 32 | * @BATADV_TT_CLIENT_ISOLA: this client is considered "isolated". This | ||
| 33 | * information is used by the Extended Isolation feature | ||
| 34 | * @BATADV_TT_CLIENT_NOPURGE: this client should never be removed from the table | ||
| 35 | * @BATADV_TT_CLIENT_NEW: this client has been added to the local table but has | ||
| 36 | * not been announced yet | ||
| 37 | * @BATADV_TT_CLIENT_PENDING: this client is marked for removal but it is kept | ||
| 38 | * in the table for one more originator interval for consistency purposes | ||
| 39 | * @BATADV_TT_CLIENT_TEMP: this global client has been detected to be part of | ||
| 40 | * the network but no nnode has already announced it | ||
| 41 | * | ||
| 42 | * Bits from 0 to 7 are called _remote flags_ because they are sent on the wire. | ||
| 43 | * Bits from 8 to 15 are called _local flags_ because they are used for local | ||
| 44 | * computations only. | ||
| 45 | * | ||
| 46 | * Bits from 4 to 7 - a subset of remote flags - are ensured to be in sync with | ||
| 47 | * the other nodes in the network. To achieve this goal these flags are included | ||
| 48 | * in the TT CRC computation. | ||
| 49 | */ | ||
| 50 | enum batadv_tt_client_flags { | ||
| 51 | BATADV_TT_CLIENT_DEL = (1 << 0), | ||
| 52 | BATADV_TT_CLIENT_ROAM = (1 << 1), | ||
| 53 | BATADV_TT_CLIENT_WIFI = (1 << 4), | ||
| 54 | BATADV_TT_CLIENT_ISOLA = (1 << 5), | ||
| 55 | BATADV_TT_CLIENT_NOPURGE = (1 << 8), | ||
| 56 | BATADV_TT_CLIENT_NEW = (1 << 9), | ||
| 57 | BATADV_TT_CLIENT_PENDING = (1 << 10), | ||
| 58 | BATADV_TT_CLIENT_TEMP = (1 << 11), | ||
| 59 | }; | ||
| 60 | |||
| 61 | /** | ||
| 26 | * enum batadv_nl_attrs - batman-adv netlink attributes | 62 | * enum batadv_nl_attrs - batman-adv netlink attributes |
| 27 | * | 63 | * |
| 28 | * @BATADV_ATTR_UNSPEC: unspecified attribute to catch errors | 64 | * @BATADV_ATTR_UNSPEC: unspecified attribute to catch errors |
| @@ -40,6 +76,26 @@ | |||
| 40 | * @BATADV_ATTR_TPMETER_BYTES: amount of acked bytes during run | 76 | * @BATADV_ATTR_TPMETER_BYTES: amount of acked bytes during run |
| 41 | * @BATADV_ATTR_TPMETER_COOKIE: session cookie to match tp_meter session | 77 | * @BATADV_ATTR_TPMETER_COOKIE: session cookie to match tp_meter session |
| 42 | * @BATADV_ATTR_PAD: attribute used for padding for 64-bit alignment | 78 | * @BATADV_ATTR_PAD: attribute used for padding for 64-bit alignment |
| 79 | * @BATADV_ATTR_ACTIVE: Flag indicating if the hard interface is active | ||
| 80 | * @BATADV_ATTR_TT_ADDRESS: Client MAC address | ||
| 81 | * @BATADV_ATTR_TT_TTVN: Translation table version | ||
| 82 | * @BATADV_ATTR_TT_LAST_TTVN: Previous translation table version | ||
| 83 | * @BATADV_ATTR_TT_CRC32: CRC32 over translation table | ||
| 84 | * @BATADV_ATTR_TT_VID: VLAN ID | ||
| 85 | * @BATADV_ATTR_TT_FLAGS: Translation table client flags | ||
| 86 | * @BATADV_ATTR_FLAG_BEST: Flags indicating entry is the best | ||
| 87 | * @BATADV_ATTR_LAST_SEEN_MSECS: Time in milliseconds since last seen | ||
| 88 | * @BATADV_ATTR_NEIGH_ADDRESS: Neighbour MAC address | ||
| 89 | * @BATADV_ATTR_TQ: TQ to neighbour | ||
| 90 | * @BATADV_ATTR_THROUGHPUT: Estimated throughput to Neighbour | ||
| 91 | * @BATADV_ATTR_BANDWIDTH_UP: Reported uplink bandwidth | ||
| 92 | * @BATADV_ATTR_BANDWIDTH_DOWN: Reported downlink bandwidth | ||
| 93 | * @BATADV_ATTR_ROUTER: Gateway router MAC address | ||
| 94 | * @BATADV_ATTR_BLA_OWN: Flag indicating own originator | ||
| 95 | * @BATADV_ATTR_BLA_ADDRESS: Bridge loop avoidance claim MAC address | ||
| 96 | * @BATADV_ATTR_BLA_VID: BLA VLAN ID | ||
| 97 | * @BATADV_ATTR_BLA_BACKBONE: BLA gateway originator MAC address | ||
| 98 | * @BATADV_ATTR_BLA_CRC: BLA CRC | ||
| 43 | * @__BATADV_ATTR_AFTER_LAST: internal use | 99 | * @__BATADV_ATTR_AFTER_LAST: internal use |
| 44 | * @NUM_BATADV_ATTR: total number of batadv_nl_attrs available | 100 | * @NUM_BATADV_ATTR: total number of batadv_nl_attrs available |
| 45 | * @BATADV_ATTR_MAX: highest attribute number currently defined | 101 | * @BATADV_ATTR_MAX: highest attribute number currently defined |
| @@ -60,6 +116,26 @@ enum batadv_nl_attrs { | |||
| 60 | BATADV_ATTR_TPMETER_BYTES, | 116 | BATADV_ATTR_TPMETER_BYTES, |
| 61 | BATADV_ATTR_TPMETER_COOKIE, | 117 | BATADV_ATTR_TPMETER_COOKIE, |
| 62 | BATADV_ATTR_PAD, | 118 | BATADV_ATTR_PAD, |
| 119 | BATADV_ATTR_ACTIVE, | ||
| 120 | BATADV_ATTR_TT_ADDRESS, | ||
| 121 | BATADV_ATTR_TT_TTVN, | ||
| 122 | BATADV_ATTR_TT_LAST_TTVN, | ||
| 123 | BATADV_ATTR_TT_CRC32, | ||
| 124 | BATADV_ATTR_TT_VID, | ||
| 125 | BATADV_ATTR_TT_FLAGS, | ||
| 126 | BATADV_ATTR_FLAG_BEST, | ||
| 127 | BATADV_ATTR_LAST_SEEN_MSECS, | ||
| 128 | BATADV_ATTR_NEIGH_ADDRESS, | ||
| 129 | BATADV_ATTR_TQ, | ||
| 130 | BATADV_ATTR_THROUGHPUT, | ||
| 131 | BATADV_ATTR_BANDWIDTH_UP, | ||
| 132 | BATADV_ATTR_BANDWIDTH_DOWN, | ||
| 133 | BATADV_ATTR_ROUTER, | ||
| 134 | BATADV_ATTR_BLA_OWN, | ||
| 135 | BATADV_ATTR_BLA_ADDRESS, | ||
| 136 | BATADV_ATTR_BLA_VID, | ||
| 137 | BATADV_ATTR_BLA_BACKBONE, | ||
| 138 | BATADV_ATTR_BLA_CRC, | ||
| 63 | /* add attributes above here, update the policy in netlink.c */ | 139 | /* add attributes above here, update the policy in netlink.c */ |
| 64 | __BATADV_ATTR_AFTER_LAST, | 140 | __BATADV_ATTR_AFTER_LAST, |
| 65 | NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST, | 141 | NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST, |
| @@ -73,6 +149,15 @@ enum batadv_nl_attrs { | |||
| 73 | * @BATADV_CMD_GET_MESH_INFO: Query basic information about batman-adv device | 149 | * @BATADV_CMD_GET_MESH_INFO: Query basic information about batman-adv device |
| 74 | * @BATADV_CMD_TP_METER: Start a tp meter session | 150 | * @BATADV_CMD_TP_METER: Start a tp meter session |
| 75 | * @BATADV_CMD_TP_METER_CANCEL: Cancel a tp meter session | 151 | * @BATADV_CMD_TP_METER_CANCEL: Cancel a tp meter session |
| 152 | * @BATADV_CMD_GET_ROUTING_ALGOS: Query the list of routing algorithms. | ||
| 153 | * @BATADV_CMD_GET_HARDIFS: Query list of hard interfaces | ||
| 154 | * @BATADV_CMD_GET_TRANSTABLE_LOCAL: Query list of local translations | ||
| 155 | * @BATADV_CMD_GET_TRANSTABLE_GLOBAL Query list of global translations | ||
| 156 | * @BATADV_CMD_GET_ORIGINATORS: Query list of originators | ||
| 157 | * @BATADV_CMD_GET_NEIGHBORS: Query list of neighbours | ||
| 158 | * @BATADV_CMD_GET_GATEWAYS: Query list of gateways | ||
| 159 | * @BATADV_CMD_GET_BLA_CLAIM: Query list of bridge loop avoidance claims | ||
| 160 | * @BATADV_CMD_GET_BLA_BACKBONE: Query list of bridge loop avoidance backbones | ||
| 76 | * @__BATADV_CMD_AFTER_LAST: internal use | 161 | * @__BATADV_CMD_AFTER_LAST: internal use |
| 77 | * @BATADV_CMD_MAX: highest used command number | 162 | * @BATADV_CMD_MAX: highest used command number |
| 78 | */ | 163 | */ |
| @@ -81,6 +166,15 @@ enum batadv_nl_commands { | |||
| 81 | BATADV_CMD_GET_MESH_INFO, | 166 | BATADV_CMD_GET_MESH_INFO, |
| 82 | BATADV_CMD_TP_METER, | 167 | BATADV_CMD_TP_METER, |
| 83 | BATADV_CMD_TP_METER_CANCEL, | 168 | BATADV_CMD_TP_METER_CANCEL, |
| 169 | BATADV_CMD_GET_ROUTING_ALGOS, | ||
| 170 | BATADV_CMD_GET_HARDIFS, | ||
| 171 | BATADV_CMD_GET_TRANSTABLE_LOCAL, | ||
| 172 | BATADV_CMD_GET_TRANSTABLE_GLOBAL, | ||
| 173 | BATADV_CMD_GET_ORIGINATORS, | ||
| 174 | BATADV_CMD_GET_NEIGHBORS, | ||
| 175 | BATADV_CMD_GET_GATEWAYS, | ||
| 176 | BATADV_CMD_GET_BLA_CLAIM, | ||
| 177 | BATADV_CMD_GET_BLA_BACKBONE, | ||
| 84 | /* add new commands above here */ | 178 | /* add new commands above here */ |
| 85 | __BATADV_CMD_AFTER_LAST, | 179 | __BATADV_CMD_AFTER_LAST, |
| 86 | BATADV_CMD_MAX = __BATADV_CMD_AFTER_LAST - 1 | 180 | BATADV_CMD_MAX = __BATADV_CMD_AFTER_LAST - 1 |
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 9e5fc168c8a3..f09c70b97eca 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h | |||
| @@ -95,6 +95,7 @@ enum bpf_prog_type { | |||
| 95 | BPF_PROG_TYPE_SCHED_ACT, | 95 | BPF_PROG_TYPE_SCHED_ACT, |
| 96 | BPF_PROG_TYPE_TRACEPOINT, | 96 | BPF_PROG_TYPE_TRACEPOINT, |
| 97 | BPF_PROG_TYPE_XDP, | 97 | BPF_PROG_TYPE_XDP, |
| 98 | BPF_PROG_TYPE_PERF_EVENT, | ||
| 98 | }; | 99 | }; |
| 99 | 100 | ||
| 100 | #define BPF_PSEUDO_MAP_FD 1 | 101 | #define BPF_PSEUDO_MAP_FD 1 |
| @@ -375,6 +376,56 @@ enum bpf_func_id { | |||
| 375 | */ | 376 | */ |
| 376 | BPF_FUNC_probe_write_user, | 377 | BPF_FUNC_probe_write_user, |
| 377 | 378 | ||
| 379 | /** | ||
| 380 | * bpf_current_task_under_cgroup(map, index) - Check cgroup2 membership of current task | ||
| 381 | * @map: pointer to bpf_map in BPF_MAP_TYPE_CGROUP_ARRAY type | ||
| 382 | * @index: index of the cgroup in the bpf_map | ||
| 383 | * Return: | ||
| 384 | * == 0 current failed the cgroup2 descendant test | ||
| 385 | * == 1 current succeeded the cgroup2 descendant test | ||
| 386 | * < 0 error | ||
| 387 | */ | ||
| 388 | BPF_FUNC_current_task_under_cgroup, | ||
| 389 | |||
| 390 | /** | ||
| 391 | * bpf_skb_change_tail(skb, len, flags) | ||
| 392 | * The helper will resize the skb to the given new size, | ||
| 393 | * to be used f.e. with control messages. | ||
| 394 | * @skb: pointer to skb | ||
| 395 | * @len: new skb length | ||
| 396 | * @flags: reserved | ||
| 397 | * Return: 0 on success or negative error | ||
| 398 | */ | ||
| 399 | BPF_FUNC_skb_change_tail, | ||
| 400 | |||
| 401 | /** | ||
| 402 | * bpf_skb_pull_data(skb, len) | ||
| 403 | * The helper will pull in non-linear data in case the | ||
| 404 | * skb is non-linear and not all of len are part of the | ||
| 405 | * linear section. Only needed for read/write with direct | ||
| 406 | * packet access. | ||
| 407 | * @skb: pointer to skb | ||
| 408 | * @len: len to make read/writeable | ||
| 409 | * Return: 0 on success or negative error | ||
| 410 | */ | ||
| 411 | BPF_FUNC_skb_pull_data, | ||
| 412 | |||
| 413 | /** | ||
| 414 | * bpf_csum_update(skb, csum) | ||
| 415 | * Adds csum into skb->csum in case of CHECKSUM_COMPLETE. | ||
| 416 | * @skb: pointer to skb | ||
| 417 | * @csum: csum to add | ||
| 418 | * Return: csum on success or negative error | ||
| 419 | */ | ||
| 420 | BPF_FUNC_csum_update, | ||
| 421 | |||
| 422 | /** | ||
| 423 | * bpf_set_hash_invalid(skb) | ||
| 424 | * Invalidate current skb>hash. | ||
| 425 | * @skb: pointer to skb | ||
| 426 | */ | ||
| 427 | BPF_FUNC_set_hash_invalid, | ||
| 428 | |||
| 378 | __BPF_FUNC_MAX_ID, | 429 | __BPF_FUNC_MAX_ID, |
| 379 | }; | 430 | }; |
| 380 | 431 | ||
diff --git a/include/uapi/linux/bpf_perf_event.h b/include/uapi/linux/bpf_perf_event.h new file mode 100644 index 000000000000..067427259820 --- /dev/null +++ b/include/uapi/linux/bpf_perf_event.h | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* Copyright (c) 2016 Facebook | ||
| 2 | * | ||
| 3 | * This program is free software; you can redistribute it and/or | ||
| 4 | * modify it under the terms of version 2 of the GNU General Public | ||
| 5 | * License as published by the Free Software Foundation. | ||
| 6 | */ | ||
| 7 | #ifndef _UAPI__LINUX_BPF_PERF_EVENT_H__ | ||
| 8 | #define _UAPI__LINUX_BPF_PERF_EVENT_H__ | ||
| 9 | |||
| 10 | #include <linux/types.h> | ||
| 11 | #include <linux/ptrace.h> | ||
| 12 | |||
| 13 | struct bpf_perf_event_data { | ||
| 14 | struct pt_regs regs; | ||
| 15 | __u64 sample_period; | ||
| 16 | }; | ||
| 17 | |||
| 18 | #endif /* _UAPI__LINUX_BPF_PERF_EVENT_H__ */ | ||
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index b8f38e84d93a..099a4200732c 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h | |||
| @@ -1362,7 +1362,14 @@ enum ethtool_link_mode_bit_indices { | |||
| 1362 | ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, | 1362 | ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, |
| 1363 | ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, | 1363 | ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, |
| 1364 | ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, | 1364 | ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, |
| 1365 | ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, | 1365 | ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, |
| 1366 | ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, | ||
| 1367 | ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, | ||
| 1368 | ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, | ||
| 1369 | ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, | ||
| 1370 | ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, | ||
| 1371 | ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, | ||
| 1372 | |||
| 1366 | 1373 | ||
| 1367 | /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit | 1374 | /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit |
| 1368 | * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* | 1375 | * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* |
| @@ -1371,7 +1378,7 @@ enum ethtool_link_mode_bit_indices { | |||
| 1371 | */ | 1378 | */ |
| 1372 | 1379 | ||
| 1373 | __ETHTOOL_LINK_MODE_LAST | 1380 | __ETHTOOL_LINK_MODE_LAST |
| 1374 | = ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT, | 1381 | = ETHTOOL_LINK_MODE_10000baseER_Full_BIT, |
| 1375 | }; | 1382 | }; |
| 1376 | 1383 | ||
| 1377 | #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ | 1384 | #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ |
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index c186f64fffca..ab92bca6d448 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h | |||
| @@ -140,7 +140,7 @@ struct bridge_vlan_xstats { | |||
| 140 | __u64 tx_bytes; | 140 | __u64 tx_bytes; |
| 141 | __u64 tx_packets; | 141 | __u64 tx_packets; |
| 142 | __u16 vid; | 142 | __u16 vid; |
| 143 | __u16 pad1; | 143 | __u16 flags; |
| 144 | __u32 pad2; | 144 | __u32 pad2; |
| 145 | }; | 145 | }; |
| 146 | 146 | ||
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index a1b5202c5f6b..b4fba662cd32 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h | |||
| @@ -318,6 +318,7 @@ enum { | |||
| 318 | IFLA_BRPORT_FLUSH, | 318 | IFLA_BRPORT_FLUSH, |
| 319 | IFLA_BRPORT_MULTICAST_ROUTER, | 319 | IFLA_BRPORT_MULTICAST_ROUTER, |
| 320 | IFLA_BRPORT_PAD, | 320 | IFLA_BRPORT_PAD, |
| 321 | IFLA_BRPORT_MCAST_FLOOD, | ||
| 321 | __IFLA_BRPORT_MAX | 322 | __IFLA_BRPORT_MAX |
| 322 | }; | 323 | }; |
| 323 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 324 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -463,6 +464,7 @@ enum { | |||
| 463 | enum ipvlan_mode { | 464 | enum ipvlan_mode { |
| 464 | IPVLAN_MODE_L2 = 0, | 465 | IPVLAN_MODE_L2 = 0, |
| 465 | IPVLAN_MODE_L3, | 466 | IPVLAN_MODE_L3, |
| 467 | IPVLAN_MODE_L3S, | ||
| 466 | IPVLAN_MODE_MAX | 468 | IPVLAN_MODE_MAX |
| 467 | }; | 469 | }; |
| 468 | 470 | ||
| @@ -617,7 +619,7 @@ enum { | |||
| 617 | enum { | 619 | enum { |
| 618 | IFLA_VF_UNSPEC, | 620 | IFLA_VF_UNSPEC, |
| 619 | IFLA_VF_MAC, /* Hardware queue specific attributes */ | 621 | IFLA_VF_MAC, /* Hardware queue specific attributes */ |
| 620 | IFLA_VF_VLAN, | 622 | IFLA_VF_VLAN, /* VLAN ID and QoS */ |
| 621 | IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ | 623 | IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ |
| 622 | IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ | 624 | IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ |
| 623 | IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ | 625 | IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ |
| @@ -629,6 +631,7 @@ enum { | |||
| 629 | IFLA_VF_TRUST, /* Trust VF */ | 631 | IFLA_VF_TRUST, /* Trust VF */ |
| 630 | IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ | 632 | IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ |
| 631 | IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ | 633 | IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ |
| 634 | IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */ | ||
| 632 | __IFLA_VF_MAX, | 635 | __IFLA_VF_MAX, |
| 633 | }; | 636 | }; |
| 634 | 637 | ||
| @@ -645,6 +648,22 @@ struct ifla_vf_vlan { | |||
| 645 | __u32 qos; | 648 | __u32 qos; |
| 646 | }; | 649 | }; |
| 647 | 650 | ||
| 651 | enum { | ||
| 652 | IFLA_VF_VLAN_INFO_UNSPEC, | ||
| 653 | IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */ | ||
| 654 | __IFLA_VF_VLAN_INFO_MAX, | ||
| 655 | }; | ||
| 656 | |||
| 657 | #define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1) | ||
| 658 | #define MAX_VLAN_LIST_LEN 1 | ||
| 659 | |||
| 660 | struct ifla_vf_vlan_info { | ||
| 661 | __u32 vf; | ||
| 662 | __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ | ||
| 663 | __u32 qos; | ||
| 664 | __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */ | ||
| 665 | }; | ||
| 666 | |||
| 648 | struct ifla_vf_tx_rate { | 667 | struct ifla_vf_tx_rate { |
| 649 | __u32 vf; | 668 | __u32 vf; |
| 650 | __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ | 669 | __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ |
| @@ -825,6 +844,7 @@ enum { | |||
| 825 | IFLA_STATS_LINK_64, | 844 | IFLA_STATS_LINK_64, |
| 826 | IFLA_STATS_LINK_XSTATS, | 845 | IFLA_STATS_LINK_XSTATS, |
| 827 | IFLA_STATS_LINK_XSTATS_SLAVE, | 846 | IFLA_STATS_LINK_XSTATS_SLAVE, |
| 847 | IFLA_STATS_LINK_OFFLOAD_XSTATS, | ||
| 828 | __IFLA_STATS_MAX, | 848 | __IFLA_STATS_MAX, |
| 829 | }; | 849 | }; |
| 830 | 850 | ||
| @@ -844,6 +864,14 @@ enum { | |||
| 844 | }; | 864 | }; |
| 845 | #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) | 865 | #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) |
| 846 | 866 | ||
| 867 | /* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */ | ||
| 868 | enum { | ||
| 869 | IFLA_OFFLOAD_XSTATS_UNSPEC, | ||
| 870 | IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */ | ||
| 871 | __IFLA_OFFLOAD_XSTATS_MAX | ||
| 872 | }; | ||
| 873 | #define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1) | ||
| 874 | |||
| 847 | /* XDP section */ | 875 | /* XDP section */ |
| 848 | 876 | ||
| 849 | enum { | 877 | enum { |
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h index 777b6cdb1b7b..92f3c8677523 100644 --- a/include/uapi/linux/if_tunnel.h +++ b/include/uapi/linux/if_tunnel.h | |||
| @@ -27,9 +27,23 @@ | |||
| 27 | #define GRE_SEQ __cpu_to_be16(0x1000) | 27 | #define GRE_SEQ __cpu_to_be16(0x1000) |
| 28 | #define GRE_STRICT __cpu_to_be16(0x0800) | 28 | #define GRE_STRICT __cpu_to_be16(0x0800) |
| 29 | #define GRE_REC __cpu_to_be16(0x0700) | 29 | #define GRE_REC __cpu_to_be16(0x0700) |
| 30 | #define GRE_FLAGS __cpu_to_be16(0x00F8) | 30 | #define GRE_ACK __cpu_to_be16(0x0080) |
| 31 | #define GRE_FLAGS __cpu_to_be16(0x0078) | ||
| 31 | #define GRE_VERSION __cpu_to_be16(0x0007) | 32 | #define GRE_VERSION __cpu_to_be16(0x0007) |
| 32 | 33 | ||
| 34 | #define GRE_IS_CSUM(f) ((f) & GRE_CSUM) | ||
| 35 | #define GRE_IS_ROUTING(f) ((f) & GRE_ROUTING) | ||
| 36 | #define GRE_IS_KEY(f) ((f) & GRE_KEY) | ||
| 37 | #define GRE_IS_SEQ(f) ((f) & GRE_SEQ) | ||
| 38 | #define GRE_IS_STRICT(f) ((f) & GRE_STRICT) | ||
| 39 | #define GRE_IS_REC(f) ((f) & GRE_REC) | ||
| 40 | #define GRE_IS_ACK(f) ((f) & GRE_ACK) | ||
| 41 | |||
| 42 | #define GRE_VERSION_0 __cpu_to_be16(0x0000) | ||
| 43 | #define GRE_VERSION_1 __cpu_to_be16(0x0001) | ||
| 44 | #define GRE_PROTO_PPP __cpu_to_be16(0x880b) | ||
| 45 | #define GRE_PPTP_KEY_MASK __cpu_to_be32(0xffff) | ||
| 46 | |||
| 33 | struct ip_tunnel_parm { | 47 | struct ip_tunnel_parm { |
| 34 | char name[IFNAMSIZ]; | 48 | char name[IFNAMSIZ]; |
| 35 | int link; | 49 | int link; |
| @@ -60,6 +74,7 @@ enum { | |||
| 60 | IFLA_IPTUN_ENCAP_FLAGS, | 74 | IFLA_IPTUN_ENCAP_FLAGS, |
| 61 | IFLA_IPTUN_ENCAP_SPORT, | 75 | IFLA_IPTUN_ENCAP_SPORT, |
| 62 | IFLA_IPTUN_ENCAP_DPORT, | 76 | IFLA_IPTUN_ENCAP_DPORT, |
| 77 | IFLA_IPTUN_COLLECT_METADATA, | ||
| 63 | __IFLA_IPTUN_MAX, | 78 | __IFLA_IPTUN_MAX, |
| 64 | }; | 79 | }; |
| 65 | #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) | 80 | #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) |
diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h index abbd1dc5d683..509cd961068d 100644 --- a/include/uapi/linux/inet_diag.h +++ b/include/uapi/linux/inet_diag.h | |||
| @@ -73,6 +73,7 @@ enum { | |||
| 73 | INET_DIAG_BC_S_COND, | 73 | INET_DIAG_BC_S_COND, |
| 74 | INET_DIAG_BC_D_COND, | 74 | INET_DIAG_BC_D_COND, |
| 75 | INET_DIAG_BC_DEV_COND, /* u32 ifindex */ | 75 | INET_DIAG_BC_DEV_COND, /* u32 ifindex */ |
| 76 | INET_DIAG_BC_MARK_COND, | ||
| 76 | }; | 77 | }; |
| 77 | 78 | ||
| 78 | struct inet_diag_hostcond { | 79 | struct inet_diag_hostcond { |
| @@ -82,6 +83,11 @@ struct inet_diag_hostcond { | |||
| 82 | __be32 addr[0]; | 83 | __be32 addr[0]; |
| 83 | }; | 84 | }; |
| 84 | 85 | ||
| 86 | struct inet_diag_markcond { | ||
| 87 | __u32 mark; | ||
| 88 | __u32 mask; | ||
| 89 | }; | ||
| 90 | |||
| 85 | /* Base info structure. It contains socket identity (addrs/ports/cookie) | 91 | /* Base info structure. It contains socket identity (addrs/ports/cookie) |
| 86 | * and, alas, the information shown by netstat. */ | 92 | * and, alas, the information shown by netstat. */ |
| 87 | struct inet_diag_msg { | 93 | struct inet_diag_msg { |
| @@ -117,6 +123,8 @@ enum { | |||
| 117 | INET_DIAG_LOCALS, | 123 | INET_DIAG_LOCALS, |
| 118 | INET_DIAG_PEERS, | 124 | INET_DIAG_PEERS, |
| 119 | INET_DIAG_PAD, | 125 | INET_DIAG_PAD, |
| 126 | INET_DIAG_MARK, | ||
| 127 | INET_DIAG_BBRINFO, | ||
| 120 | __INET_DIAG_MAX, | 128 | __INET_DIAG_MAX, |
| 121 | }; | 129 | }; |
| 122 | 130 | ||
| @@ -150,8 +158,20 @@ struct tcp_dctcp_info { | |||
| 150 | __u32 dctcp_ab_tot; | 158 | __u32 dctcp_ab_tot; |
| 151 | }; | 159 | }; |
| 152 | 160 | ||
| 161 | /* INET_DIAG_BBRINFO */ | ||
| 162 | |||
| 163 | struct tcp_bbr_info { | ||
| 164 | /* u64 bw: max-filtered BW (app throughput) estimate in Byte per sec: */ | ||
| 165 | __u32 bbr_bw_lo; /* lower 32 bits of bw */ | ||
| 166 | __u32 bbr_bw_hi; /* upper 32 bits of bw */ | ||
| 167 | __u32 bbr_min_rtt; /* min-filtered RTT in uSec */ | ||
| 168 | __u32 bbr_pacing_gain; /* pacing gain shifted left 8 bits */ | ||
| 169 | __u32 bbr_cwnd_gain; /* cwnd gain shifted left 8 bits */ | ||
| 170 | }; | ||
| 171 | |||
| 153 | union tcp_cc_info { | 172 | union tcp_cc_info { |
| 154 | struct tcpvegas_info vegas; | 173 | struct tcpvegas_info vegas; |
| 155 | struct tcp_dctcp_info dctcp; | 174 | struct tcp_dctcp_info dctcp; |
| 175 | struct tcp_bbr_info bbr; | ||
| 156 | }; | 176 | }; |
| 157 | #endif /* _UAPI_INET_DIAG_H_ */ | 177 | #endif /* _UAPI_INET_DIAG_H_ */ |
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h index 395876060f50..8c2772340c3f 100644 --- a/include/uapi/linux/ipv6.h +++ b/include/uapi/linux/ipv6.h | |||
| @@ -177,6 +177,7 @@ enum { | |||
| 177 | DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, | 177 | DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, |
| 178 | DEVCONF_DROP_UNSOLICITED_NA, | 178 | DEVCONF_DROP_UNSOLICITED_NA, |
| 179 | DEVCONF_KEEP_ADDR_ON_DOWN, | 179 | DEVCONF_KEEP_ADDR_ON_DOWN, |
| 180 | DEVCONF_RTR_SOLICIT_MAX_INTERVAL, | ||
| 180 | DEVCONF_MAX | 181 | DEVCONF_MAX |
| 181 | }; | 182 | }; |
| 182 | 183 | ||
diff --git a/include/uapi/linux/mii.h b/include/uapi/linux/mii.h index 237fac4bc17b..15d8510cdae0 100644 --- a/include/uapi/linux/mii.h +++ b/include/uapi/linux/mii.h | |||
| @@ -48,6 +48,7 @@ | |||
| 48 | #define BMCR_SPEED100 0x2000 /* Select 100Mbps */ | 48 | #define BMCR_SPEED100 0x2000 /* Select 100Mbps */ |
| 49 | #define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */ | 49 | #define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */ |
| 50 | #define BMCR_RESET 0x8000 /* Reset to default state */ | 50 | #define BMCR_RESET 0x8000 /* Reset to default state */ |
| 51 | #define BMCR_SPEED10 0x0000 /* Select 10Mbps */ | ||
| 51 | 52 | ||
| 52 | /* Basic mode status register. */ | 53 | /* Basic mode status register. */ |
| 53 | #define BMSR_ERCAP 0x0001 /* Ext-reg capability */ | 54 | #define BMSR_ERCAP 0x0001 /* Ext-reg capability */ |
diff --git a/include/uapi/linux/netfilter/nf_log.h b/include/uapi/linux/netfilter/nf_log.h new file mode 100644 index 000000000000..8be21e02387d --- /dev/null +++ b/include/uapi/linux/netfilter/nf_log.h | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | #ifndef _NETFILTER_NF_LOG_H | ||
| 2 | #define _NETFILTER_NF_LOG_H | ||
| 3 | |||
| 4 | #define NF_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */ | ||
| 5 | #define NF_LOG_TCPOPT 0x02 /* Log TCP options */ | ||
| 6 | #define NF_LOG_IPOPT 0x04 /* Log IP options */ | ||
| 7 | #define NF_LOG_UID 0x08 /* Log UID owning local socket */ | ||
| 8 | #define NF_LOG_NFLOG 0x10 /* Unsupported, don't reuse */ | ||
| 9 | #define NF_LOG_MACDECODE 0x20 /* Decode MAC header */ | ||
| 10 | #define NF_LOG_MASK 0x2f | ||
| 11 | |||
| 12 | #endif /* _NETFILTER_NF_LOG_H */ | ||
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h index c674ba2563b7..c6c4477c136b 100644 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h | |||
| @@ -546,6 +546,35 @@ enum nft_cmp_attributes { | |||
| 546 | }; | 546 | }; |
| 547 | #define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1) | 547 | #define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1) |
| 548 | 548 | ||
| 549 | /** | ||
| 550 | * enum nft_range_ops - nf_tables range operator | ||
| 551 | * | ||
| 552 | * @NFT_RANGE_EQ: equal | ||
| 553 | * @NFT_RANGE_NEQ: not equal | ||
| 554 | */ | ||
| 555 | enum nft_range_ops { | ||
| 556 | NFT_RANGE_EQ, | ||
| 557 | NFT_RANGE_NEQ, | ||
| 558 | }; | ||
| 559 | |||
| 560 | /** | ||
| 561 | * enum nft_range_attributes - nf_tables range expression netlink attributes | ||
| 562 | * | ||
| 563 | * @NFTA_RANGE_SREG: source register of data to compare (NLA_U32: nft_registers) | ||
| 564 | * @NFTA_RANGE_OP: cmp operation (NLA_U32: nft_cmp_ops) | ||
| 565 | * @NFTA_RANGE_FROM_DATA: data range from (NLA_NESTED: nft_data_attributes) | ||
| 566 | * @NFTA_RANGE_TO_DATA: data range to (NLA_NESTED: nft_data_attributes) | ||
| 567 | */ | ||
| 568 | enum nft_range_attributes { | ||
| 569 | NFTA_RANGE_UNSPEC, | ||
| 570 | NFTA_RANGE_SREG, | ||
| 571 | NFTA_RANGE_OP, | ||
| 572 | NFTA_RANGE_FROM_DATA, | ||
| 573 | NFTA_RANGE_TO_DATA, | ||
| 574 | __NFTA_RANGE_MAX | ||
| 575 | }; | ||
| 576 | #define NFTA_RANGE_MAX (__NFTA_RANGE_MAX - 1) | ||
| 577 | |||
| 549 | enum nft_lookup_flags { | 578 | enum nft_lookup_flags { |
| 550 | NFT_LOOKUP_F_INV = (1 << 0), | 579 | NFT_LOOKUP_F_INV = (1 << 0), |
| 551 | }; | 580 | }; |
| @@ -575,6 +604,10 @@ enum nft_dynset_ops { | |||
| 575 | NFT_DYNSET_OP_UPDATE, | 604 | NFT_DYNSET_OP_UPDATE, |
| 576 | }; | 605 | }; |
| 577 | 606 | ||
| 607 | enum nft_dynset_flags { | ||
| 608 | NFT_DYNSET_F_INV = (1 << 0), | ||
| 609 | }; | ||
| 610 | |||
| 578 | /** | 611 | /** |
| 579 | * enum nft_dynset_attributes - dynset expression attributes | 612 | * enum nft_dynset_attributes - dynset expression attributes |
| 580 | * | 613 | * |
| @@ -585,6 +618,7 @@ enum nft_dynset_ops { | |||
| 585 | * @NFTA_DYNSET_SREG_DATA: source register of the data (NLA_U32) | 618 | * @NFTA_DYNSET_SREG_DATA: source register of the data (NLA_U32) |
| 586 | * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64) | 619 | * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64) |
| 587 | * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes) | 620 | * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes) |
| 621 | * @NFTA_DYNSET_FLAGS: flags (NLA_U32) | ||
| 588 | */ | 622 | */ |
| 589 | enum nft_dynset_attributes { | 623 | enum nft_dynset_attributes { |
| 590 | NFTA_DYNSET_UNSPEC, | 624 | NFTA_DYNSET_UNSPEC, |
| @@ -596,6 +630,7 @@ enum nft_dynset_attributes { | |||
| 596 | NFTA_DYNSET_TIMEOUT, | 630 | NFTA_DYNSET_TIMEOUT, |
| 597 | NFTA_DYNSET_EXPR, | 631 | NFTA_DYNSET_EXPR, |
| 598 | NFTA_DYNSET_PAD, | 632 | NFTA_DYNSET_PAD, |
| 633 | NFTA_DYNSET_FLAGS, | ||
| 599 | __NFTA_DYNSET_MAX, | 634 | __NFTA_DYNSET_MAX, |
| 600 | }; | 635 | }; |
| 601 | #define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1) | 636 | #define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1) |
| @@ -724,6 +759,28 @@ enum nft_meta_keys { | |||
| 724 | }; | 759 | }; |
| 725 | 760 | ||
| 726 | /** | 761 | /** |
| 762 | * enum nft_hash_attributes - nf_tables hash expression netlink attributes | ||
| 763 | * | ||
| 764 | * @NFTA_HASH_SREG: source register (NLA_U32) | ||
| 765 | * @NFTA_HASH_DREG: destination register (NLA_U32) | ||
| 766 | * @NFTA_HASH_LEN: source data length (NLA_U32) | ||
| 767 | * @NFTA_HASH_MODULUS: modulus value (NLA_U32) | ||
| 768 | * @NFTA_HASH_SEED: seed value (NLA_U32) | ||
| 769 | * @NFTA_HASH_OFFSET: add this offset value to hash result (NLA_U32) | ||
| 770 | */ | ||
| 771 | enum nft_hash_attributes { | ||
| 772 | NFTA_HASH_UNSPEC, | ||
| 773 | NFTA_HASH_SREG, | ||
| 774 | NFTA_HASH_DREG, | ||
| 775 | NFTA_HASH_LEN, | ||
| 776 | NFTA_HASH_MODULUS, | ||
| 777 | NFTA_HASH_SEED, | ||
| 778 | NFTA_HASH_OFFSET, | ||
| 779 | __NFTA_HASH_MAX, | ||
| 780 | }; | ||
| 781 | #define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1) | ||
| 782 | |||
| 783 | /** | ||
| 727 | * enum nft_meta_attributes - nf_tables meta expression netlink attributes | 784 | * enum nft_meta_attributes - nf_tables meta expression netlink attributes |
| 728 | * | 785 | * |
| 729 | * @NFTA_META_DREG: destination register (NLA_U32) | 786 | * @NFTA_META_DREG: destination register (NLA_U32) |
| @@ -866,12 +923,14 @@ enum nft_log_attributes { | |||
| 866 | * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16) | 923 | * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16) |
| 867 | * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16) | 924 | * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16) |
| 868 | * @NFTA_QUEUE_FLAGS: various flags (NLA_U16) | 925 | * @NFTA_QUEUE_FLAGS: various flags (NLA_U16) |
| 926 | * @NFTA_QUEUE_SREG_QNUM: source register of queue number (NLA_U32: nft_registers) | ||
| 869 | */ | 927 | */ |
| 870 | enum nft_queue_attributes { | 928 | enum nft_queue_attributes { |
| 871 | NFTA_QUEUE_UNSPEC, | 929 | NFTA_QUEUE_UNSPEC, |
| 872 | NFTA_QUEUE_NUM, | 930 | NFTA_QUEUE_NUM, |
| 873 | NFTA_QUEUE_TOTAL, | 931 | NFTA_QUEUE_TOTAL, |
| 874 | NFTA_QUEUE_FLAGS, | 932 | NFTA_QUEUE_FLAGS, |
| 933 | NFTA_QUEUE_SREG_QNUM, | ||
| 875 | __NFTA_QUEUE_MAX | 934 | __NFTA_QUEUE_MAX |
| 876 | }; | 935 | }; |
| 877 | #define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1) | 936 | #define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1) |
| @@ -880,6 +939,25 @@ enum nft_queue_attributes { | |||
| 880 | #define NFT_QUEUE_FLAG_CPU_FANOUT 0x02 /* use current CPU (no hashing) */ | 939 | #define NFT_QUEUE_FLAG_CPU_FANOUT 0x02 /* use current CPU (no hashing) */ |
| 881 | #define NFT_QUEUE_FLAG_MASK 0x03 | 940 | #define NFT_QUEUE_FLAG_MASK 0x03 |
| 882 | 941 | ||
| 942 | enum nft_quota_flags { | ||
| 943 | NFT_QUOTA_F_INV = (1 << 0), | ||
| 944 | }; | ||
| 945 | |||
| 946 | /** | ||
| 947 | * enum nft_quota_attributes - nf_tables quota expression netlink attributes | ||
| 948 | * | ||
| 949 | * @NFTA_QUOTA_BYTES: quota in bytes (NLA_U16) | ||
| 950 | * @NFTA_QUOTA_FLAGS: flags (NLA_U32) | ||
| 951 | */ | ||
| 952 | enum nft_quota_attributes { | ||
| 953 | NFTA_QUOTA_UNSPEC, | ||
| 954 | NFTA_QUOTA_BYTES, | ||
| 955 | NFTA_QUOTA_FLAGS, | ||
| 956 | NFTA_QUOTA_PAD, | ||
| 957 | __NFTA_QUOTA_MAX | ||
| 958 | }; | ||
| 959 | #define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1) | ||
| 960 | |||
| 883 | /** | 961 | /** |
| 884 | * enum nft_reject_types - nf_tables reject expression reject types | 962 | * enum nft_reject_types - nf_tables reject expression reject types |
| 885 | * | 963 | * |
| @@ -1051,7 +1129,7 @@ enum nft_gen_attributes { | |||
| 1051 | * @NFTA_TRACE_NFPROTO: nf protocol processed (NLA_U32) | 1129 | * @NFTA_TRACE_NFPROTO: nf protocol processed (NLA_U32) |
| 1052 | * @NFTA_TRACE_POLICY: policy that decided fate of packet (NLA_U32) | 1130 | * @NFTA_TRACE_POLICY: policy that decided fate of packet (NLA_U32) |
| 1053 | */ | 1131 | */ |
| 1054 | enum nft_trace_attibutes { | 1132 | enum nft_trace_attributes { |
| 1055 | NFTA_TRACE_UNSPEC, | 1133 | NFTA_TRACE_UNSPEC, |
| 1056 | NFTA_TRACE_TABLE, | 1134 | NFTA_TRACE_TABLE, |
| 1057 | NFTA_TRACE_CHAIN, | 1135 | NFTA_TRACE_CHAIN, |
| @@ -1082,4 +1160,30 @@ enum nft_trace_types { | |||
| 1082 | __NFT_TRACETYPE_MAX | 1160 | __NFT_TRACETYPE_MAX |
| 1083 | }; | 1161 | }; |
| 1084 | #define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1) | 1162 | #define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1) |
| 1163 | |||
| 1164 | /** | ||
| 1165 | * enum nft_ng_attributes - nf_tables number generator expression netlink attributes | ||
| 1166 | * | ||
| 1167 | * @NFTA_NG_DREG: destination register (NLA_U32) | ||
| 1168 | * @NFTA_NG_MODULUS: maximum counter value (NLA_U32) | ||
| 1169 | * @NFTA_NG_TYPE: operation type (NLA_U32) | ||
| 1170 | * @NFTA_NG_OFFSET: offset to be added to the counter (NLA_U32) | ||
| 1171 | */ | ||
| 1172 | enum nft_ng_attributes { | ||
| 1173 | NFTA_NG_UNSPEC, | ||
| 1174 | NFTA_NG_DREG, | ||
| 1175 | NFTA_NG_MODULUS, | ||
| 1176 | NFTA_NG_TYPE, | ||
| 1177 | NFTA_NG_OFFSET, | ||
| 1178 | __NFTA_NG_MAX | ||
| 1179 | }; | ||
| 1180 | #define NFTA_NG_MAX (__NFTA_NG_MAX - 1) | ||
| 1181 | |||
| 1182 | enum nft_ng_types { | ||
| 1183 | NFT_NG_INCREMENTAL, | ||
| 1184 | NFT_NG_RANDOM, | ||
| 1185 | __NFT_NG_MAX | ||
| 1186 | }; | ||
| 1187 | #define NFT_NG_MAX (__NFT_NG_MAX - 1) | ||
| 1188 | |||
| 1085 | #endif /* _LINUX_NF_TABLES_H */ | 1189 | #endif /* _LINUX_NF_TABLES_H */ |
diff --git a/include/uapi/linux/netfilter/nfnetlink_conntrack.h b/include/uapi/linux/netfilter/nfnetlink_conntrack.h index 9df789709abe..6deb8867c5fc 100644 --- a/include/uapi/linux/netfilter/nfnetlink_conntrack.h +++ b/include/uapi/linux/netfilter/nfnetlink_conntrack.h | |||
| @@ -231,13 +231,13 @@ enum ctattr_secctx { | |||
| 231 | 231 | ||
| 232 | enum ctattr_stats_cpu { | 232 | enum ctattr_stats_cpu { |
| 233 | CTA_STATS_UNSPEC, | 233 | CTA_STATS_UNSPEC, |
| 234 | CTA_STATS_SEARCHED, | 234 | CTA_STATS_SEARCHED, /* no longer used */ |
| 235 | CTA_STATS_FOUND, | 235 | CTA_STATS_FOUND, |
| 236 | CTA_STATS_NEW, | 236 | CTA_STATS_NEW, /* no longer used */ |
| 237 | CTA_STATS_INVALID, | 237 | CTA_STATS_INVALID, |
| 238 | CTA_STATS_IGNORE, | 238 | CTA_STATS_IGNORE, |
| 239 | CTA_STATS_DELETE, | 239 | CTA_STATS_DELETE, /* no longer used */ |
| 240 | CTA_STATS_DELETE_LIST, | 240 | CTA_STATS_DELETE_LIST, /* no longer used */ |
| 241 | CTA_STATS_INSERT, | 241 | CTA_STATS_INSERT, |
| 242 | CTA_STATS_INSERT_FAILED, | 242 | CTA_STATS_INSERT_FAILED, |
| 243 | CTA_STATS_DROP, | 243 | CTA_STATS_DROP, |
diff --git a/include/uapi/linux/netfilter/xt_hashlimit.h b/include/uapi/linux/netfilter/xt_hashlimit.h index 6db90372f09c..3efc0ca18345 100644 --- a/include/uapi/linux/netfilter/xt_hashlimit.h +++ b/include/uapi/linux/netfilter/xt_hashlimit.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | /* timings are in milliseconds. */ | 7 | /* timings are in milliseconds. */ |
| 8 | #define XT_HASHLIMIT_SCALE 10000 | 8 | #define XT_HASHLIMIT_SCALE 10000 |
| 9 | #define XT_HASHLIMIT_SCALE_v2 1000000llu | ||
| 9 | /* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 | 10 | /* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 |
| 10 | * seconds, or one packet every 59 hours. | 11 | * seconds, or one packet every 59 hours. |
| 11 | */ | 12 | */ |
| @@ -63,6 +64,20 @@ struct hashlimit_cfg1 { | |||
| 63 | __u8 srcmask, dstmask; | 64 | __u8 srcmask, dstmask; |
| 64 | }; | 65 | }; |
| 65 | 66 | ||
| 67 | struct hashlimit_cfg2 { | ||
| 68 | __u64 avg; /* Average secs between packets * scale */ | ||
| 69 | __u64 burst; /* Period multiplier for upper limit. */ | ||
| 70 | __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */ | ||
| 71 | |||
| 72 | /* user specified */ | ||
| 73 | __u32 size; /* how many buckets */ | ||
| 74 | __u32 max; /* max number of entries */ | ||
| 75 | __u32 gc_interval; /* gc interval */ | ||
| 76 | __u32 expire; /* when do entries expire? */ | ||
| 77 | |||
| 78 | __u8 srcmask, dstmask; | ||
| 79 | }; | ||
| 80 | |||
| 66 | struct xt_hashlimit_mtinfo1 { | 81 | struct xt_hashlimit_mtinfo1 { |
| 67 | char name[IFNAMSIZ]; | 82 | char name[IFNAMSIZ]; |
| 68 | struct hashlimit_cfg1 cfg; | 83 | struct hashlimit_cfg1 cfg; |
| @@ -71,4 +86,12 @@ struct xt_hashlimit_mtinfo1 { | |||
| 71 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); | 86 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); |
| 72 | }; | 87 | }; |
| 73 | 88 | ||
| 89 | struct xt_hashlimit_mtinfo2 { | ||
| 90 | char name[NAME_MAX]; | ||
| 91 | struct hashlimit_cfg2 cfg; | ||
| 92 | |||
| 93 | /* Used internally by the kernel */ | ||
| 94 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); | ||
| 95 | }; | ||
| 96 | |||
| 74 | #endif /* _UAPI_XT_HASHLIMIT_H */ | 97 | #endif /* _UAPI_XT_HASHLIMIT_H */ |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 220694151434..56368e9b4622 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
| @@ -48,6 +48,7 @@ | |||
| 48 | #define NL80211_MULTICAST_GROUP_REG "regulatory" | 48 | #define NL80211_MULTICAST_GROUP_REG "regulatory" |
| 49 | #define NL80211_MULTICAST_GROUP_MLME "mlme" | 49 | #define NL80211_MULTICAST_GROUP_MLME "mlme" |
| 50 | #define NL80211_MULTICAST_GROUP_VENDOR "vendor" | 50 | #define NL80211_MULTICAST_GROUP_VENDOR "vendor" |
| 51 | #define NL80211_MULTICAST_GROUP_NAN "nan" | ||
| 51 | #define NL80211_MULTICAST_GROUP_TESTMODE "testmode" | 52 | #define NL80211_MULTICAST_GROUP_TESTMODE "testmode" |
| 52 | 53 | ||
| 53 | /** | 54 | /** |
| @@ -838,6 +839,41 @@ | |||
| 838 | * not running. The driver indicates the status of the scan through | 839 | * not running. The driver indicates the status of the scan through |
| 839 | * cfg80211_scan_done(). | 840 | * cfg80211_scan_done(). |
| 840 | * | 841 | * |
| 842 | * @NL80211_CMD_START_NAN: Start NAN operation, identified by its | ||
| 843 | * %NL80211_ATTR_WDEV interface. This interface must have been previously | ||
| 844 | * created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the | ||
| 845 | * NAN interface will create or join a cluster. This command must have a | ||
| 846 | * valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional | ||
| 847 | * %NL80211_ATTR_NAN_DUAL attributes. | ||
| 848 | * After this command NAN functions can be added. | ||
| 849 | * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by | ||
| 850 | * its %NL80211_ATTR_WDEV interface. | ||
| 851 | * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined | ||
| 852 | * with %NL80211_ATTR_NAN_FUNC nested attribute. When called, this | ||
| 853 | * operation returns the strictly positive and unique instance id | ||
| 854 | * (%NL80211_ATTR_NAN_FUNC_INST_ID) and a cookie (%NL80211_ATTR_COOKIE) | ||
| 855 | * of the function upon success. | ||
| 856 | * Since instance ID's can be re-used, this cookie is the right | ||
| 857 | * way to identify the function. This will avoid races when a termination | ||
| 858 | * event is handled by the user space after it has already added a new | ||
| 859 | * function that got the same instance id from the kernel as the one | ||
| 860 | * which just terminated. | ||
| 861 | * This cookie may be used in NAN events even before the command | ||
| 862 | * returns, so userspace shouldn't process NAN events until it processes | ||
| 863 | * the response to this command. | ||
| 864 | * Look at %NL80211_ATTR_SOCKET_OWNER as well. | ||
| 865 | * @NL80211_CMD_DEL_NAN_FUNCTION: Delete a NAN function by cookie. | ||
| 866 | * This command is also used as a notification sent when a NAN function is | ||
| 867 | * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID | ||
| 868 | * and %NL80211_ATTR_COOKIE attributes. | ||
| 869 | * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN configuration. NAN | ||
| 870 | * must be operational (%NL80211_CMD_START_NAN was executed). | ||
| 871 | * It must contain at least one of the following attributes: | ||
| 872 | * %NL80211_ATTR_NAN_MASTER_PREF, %NL80211_ATTR_NAN_DUAL. | ||
| 873 | * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported. | ||
| 874 | * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and | ||
| 875 | * %NL80211_ATTR_COOKIE. | ||
| 876 | * | ||
| 841 | * @NL80211_CMD_MAX: highest used command number | 877 | * @NL80211_CMD_MAX: highest used command number |
| 842 | * @__NL80211_CMD_AFTER_LAST: internal use | 878 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 843 | */ | 879 | */ |
| @@ -1026,6 +1062,13 @@ enum nl80211_commands { | |||
| 1026 | 1062 | ||
| 1027 | NL80211_CMD_ABORT_SCAN, | 1063 | NL80211_CMD_ABORT_SCAN, |
| 1028 | 1064 | ||
| 1065 | NL80211_CMD_START_NAN, | ||
| 1066 | NL80211_CMD_STOP_NAN, | ||
| 1067 | NL80211_CMD_ADD_NAN_FUNCTION, | ||
| 1068 | NL80211_CMD_DEL_NAN_FUNCTION, | ||
| 1069 | NL80211_CMD_CHANGE_NAN_CONFIG, | ||
| 1070 | NL80211_CMD_NAN_MATCH, | ||
| 1071 | |||
| 1029 | /* add new commands above here */ | 1072 | /* add new commands above here */ |
| 1030 | 1073 | ||
| 1031 | /* used to define NL80211_CMD_MAX below */ | 1074 | /* used to define NL80211_CMD_MAX below */ |
| @@ -1343,7 +1386,13 @@ enum nl80211_commands { | |||
| 1343 | * enum nl80211_band value is used as the index (nla_type() of the nested | 1386 | * enum nl80211_band value is used as the index (nla_type() of the nested |
| 1344 | * data. If a band is not included, it will be configured to allow all | 1387 | * data. If a band is not included, it will be configured to allow all |
| 1345 | * rates based on negotiated supported rates information. This attribute | 1388 | * rates based on negotiated supported rates information. This attribute |
| 1346 | * is used with %NL80211_CMD_SET_TX_BITRATE_MASK. | 1389 | * is used with %NL80211_CMD_SET_TX_BITRATE_MASK and with starting AP, |
| 1390 | * and joining mesh networks (not IBSS yet). In the later case, it must | ||
| 1391 | * specify just a single bitrate, which is to be used for the beacon. | ||
| 1392 | * The driver must also specify support for this with the extended | ||
| 1393 | * features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, | ||
| 1394 | * NL80211_EXT_FEATURE_BEACON_RATE_HT and | ||
| 1395 | * NL80211_EXT_FEATURE_BEACON_RATE_VHT. | ||
| 1347 | * | 1396 | * |
| 1348 | * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain | 1397 | * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain |
| 1349 | * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. | 1398 | * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. |
| @@ -1733,6 +1782,12 @@ enum nl80211_commands { | |||
| 1733 | * regulatory indoor configuration would be owned by the netlink socket | 1782 | * regulatory indoor configuration would be owned by the netlink socket |
| 1734 | * that configured the indoor setting, and the indoor operation would be | 1783 | * that configured the indoor setting, and the indoor operation would be |
| 1735 | * cleared when the socket is closed. | 1784 | * cleared when the socket is closed. |
| 1785 | * If set during NAN interface creation, the interface will be destroyed | ||
| 1786 | * if the socket is closed just like any other interface. Moreover, only | ||
| 1787 | * the netlink socket that created the interface will be allowed to add | ||
| 1788 | * and remove functions. NAN notifications will be sent in unicast to that | ||
| 1789 | * socket. Without this attribute, any socket can add functions and the | ||
| 1790 | * notifications will be sent to the %NL80211_MCGRP_NAN multicast group. | ||
| 1736 | * | 1791 | * |
| 1737 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is | 1792 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is |
| 1738 | * the TDLS link initiator. | 1793 | * the TDLS link initiator. |
| @@ -1867,6 +1922,21 @@ enum nl80211_commands { | |||
| 1867 | * @NL80211_ATTR_MESH_PEER_AID: Association ID for the mesh peer (u16). This is | 1922 | * @NL80211_ATTR_MESH_PEER_AID: Association ID for the mesh peer (u16). This is |
| 1868 | * used to pull the stored data for mesh peer in power save state. | 1923 | * used to pull the stored data for mesh peer in power save state. |
| 1869 | * | 1924 | * |
| 1925 | * @NL80211_ATTR_NAN_MASTER_PREF: the master preference to be used by | ||
| 1926 | * %NL80211_CMD_START_NAN and optionally with | ||
| 1927 | * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0. | ||
| 1928 | * Also, values 1 and 255 are reserved for certification purposes and | ||
| 1929 | * should not be used during a normal device operation. | ||
| 1930 | * @NL80211_ATTR_NAN_DUAL: NAN dual band operation config (see | ||
| 1931 | * &enum nl80211_nan_dual_band_conf). This attribute is used with | ||
| 1932 | * %NL80211_CMD_START_NAN and optionally with | ||
| 1933 | * %NL80211_CMD_CHANGE_NAN_CONFIG. | ||
| 1934 | * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See | ||
| 1935 | * &enum nl80211_nan_func_attributes for description of this nested | ||
| 1936 | * attribute. | ||
| 1937 | * @NL80211_ATTR_NAN_MATCH: used to report a match. This is a nested attribute. | ||
| 1938 | * See &enum nl80211_nan_match_attributes. | ||
| 1939 | * | ||
| 1870 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 1940 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 1871 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1941 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1872 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1942 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2261,6 +2331,11 @@ enum nl80211_attrs { | |||
| 2261 | 2331 | ||
| 2262 | NL80211_ATTR_MESH_PEER_AID, | 2332 | NL80211_ATTR_MESH_PEER_AID, |
| 2263 | 2333 | ||
| 2334 | NL80211_ATTR_NAN_MASTER_PREF, | ||
| 2335 | NL80211_ATTR_NAN_DUAL, | ||
| 2336 | NL80211_ATTR_NAN_FUNC, | ||
| 2337 | NL80211_ATTR_NAN_MATCH, | ||
| 2338 | |||
| 2264 | /* add attributes here, update the policy in nl80211.c */ | 2339 | /* add attributes here, update the policy in nl80211.c */ |
| 2265 | 2340 | ||
| 2266 | __NL80211_ATTR_AFTER_LAST, | 2341 | __NL80211_ATTR_AFTER_LAST, |
| @@ -2339,6 +2414,7 @@ enum nl80211_attrs { | |||
| 2339 | * commands to create and destroy one | 2414 | * commands to create and destroy one |
| 2340 | * @NL80211_IF_TYPE_OCB: Outside Context of a BSS | 2415 | * @NL80211_IF_TYPE_OCB: Outside Context of a BSS |
| 2341 | * This mode corresponds to the MIB variable dot11OCBActivated=true | 2416 | * This mode corresponds to the MIB variable dot11OCBActivated=true |
| 2417 | * @NL80211_IFTYPE_NAN: NAN device interface type (not a netdev) | ||
| 2342 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined | 2418 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
| 2343 | * @NUM_NL80211_IFTYPES: number of defined interface types | 2419 | * @NUM_NL80211_IFTYPES: number of defined interface types |
| 2344 | * | 2420 | * |
| @@ -2359,6 +2435,7 @@ enum nl80211_iftype { | |||
| 2359 | NL80211_IFTYPE_P2P_GO, | 2435 | NL80211_IFTYPE_P2P_GO, |
| 2360 | NL80211_IFTYPE_P2P_DEVICE, | 2436 | NL80211_IFTYPE_P2P_DEVICE, |
| 2361 | NL80211_IFTYPE_OCB, | 2437 | NL80211_IFTYPE_OCB, |
| 2438 | NL80211_IFTYPE_NAN, | ||
| 2362 | 2439 | ||
| 2363 | /* keep last */ | 2440 | /* keep last */ |
| 2364 | NUM_NL80211_IFTYPES, | 2441 | NUM_NL80211_IFTYPES, |
| @@ -4551,6 +4628,12 @@ enum nl80211_feature_flags { | |||
| 4551 | * (if available). | 4628 | * (if available). |
| 4552 | * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of | 4629 | * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of |
| 4553 | * channel dwell time. | 4630 | * channel dwell time. |
| 4631 | * @NL80211_EXT_FEATURE_BEACON_RATE_LEGACY: Driver supports beacon rate | ||
| 4632 | * configuration (AP/mesh), supporting a legacy (non HT/VHT) rate. | ||
| 4633 | * @NL80211_EXT_FEATURE_BEACON_RATE_HT: Driver supports beacon rate | ||
| 4634 | * configuration (AP/mesh) with HT rates. | ||
| 4635 | * @NL80211_EXT_FEATURE_BEACON_RATE_VHT: Driver supports beacon rate | ||
| 4636 | * configuration (AP/mesh) with VHT rates. | ||
| 4554 | * | 4637 | * |
| 4555 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 4638 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 4556 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 4639 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -4562,6 +4645,9 @@ enum nl80211_ext_feature_index { | |||
| 4562 | NL80211_EXT_FEATURE_SCAN_START_TIME, | 4645 | NL80211_EXT_FEATURE_SCAN_START_TIME, |
| 4563 | NL80211_EXT_FEATURE_BSS_PARENT_TSF, | 4646 | NL80211_EXT_FEATURE_BSS_PARENT_TSF, |
| 4564 | NL80211_EXT_FEATURE_SET_SCAN_DWELL, | 4647 | NL80211_EXT_FEATURE_SET_SCAN_DWELL, |
| 4648 | NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, | ||
| 4649 | NL80211_EXT_FEATURE_BEACON_RATE_HT, | ||
| 4650 | NL80211_EXT_FEATURE_BEACON_RATE_VHT, | ||
| 4565 | 4651 | ||
| 4566 | /* add new features before the definition below */ | 4652 | /* add new features before the definition below */ |
| 4567 | NUM_NL80211_EXT_FEATURES, | 4653 | NUM_NL80211_EXT_FEATURES, |
| @@ -4855,4 +4941,186 @@ enum nl80211_bss_select_attr { | |||
| 4855 | NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1 | 4941 | NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1 |
| 4856 | }; | 4942 | }; |
| 4857 | 4943 | ||
| 4944 | /** | ||
| 4945 | * enum nl80211_nan_dual_band_conf - NAN dual band configuration | ||
| 4946 | * | ||
| 4947 | * Defines the NAN dual band mode of operation | ||
| 4948 | * | ||
| 4949 | * @NL80211_NAN_BAND_DEFAULT: device default mode | ||
| 4950 | * @NL80211_NAN_BAND_2GHZ: 2.4GHz mode | ||
| 4951 | * @NL80211_NAN_BAND_5GHZ: 5GHz mode | ||
| 4952 | */ | ||
| 4953 | enum nl80211_nan_dual_band_conf { | ||
| 4954 | NL80211_NAN_BAND_DEFAULT = 1 << 0, | ||
| 4955 | NL80211_NAN_BAND_2GHZ = 1 << 1, | ||
| 4956 | NL80211_NAN_BAND_5GHZ = 1 << 2, | ||
| 4957 | }; | ||
| 4958 | |||
| 4959 | /** | ||
| 4960 | * enum nl80211_nan_function_type - NAN function type | ||
| 4961 | * | ||
| 4962 | * Defines the function type of a NAN function | ||
| 4963 | * | ||
| 4964 | * @NL80211_NAN_FUNC_PUBLISH: function is publish | ||
| 4965 | * @NL80211_NAN_FUNC_SUBSCRIBE: function is subscribe | ||
| 4966 | * @NL80211_NAN_FUNC_FOLLOW_UP: function is follow-up | ||
| 4967 | */ | ||
| 4968 | enum nl80211_nan_function_type { | ||
| 4969 | NL80211_NAN_FUNC_PUBLISH, | ||
| 4970 | NL80211_NAN_FUNC_SUBSCRIBE, | ||
| 4971 | NL80211_NAN_FUNC_FOLLOW_UP, | ||
| 4972 | |||
| 4973 | /* keep last */ | ||
| 4974 | __NL80211_NAN_FUNC_TYPE_AFTER_LAST, | ||
| 4975 | NL80211_NAN_FUNC_MAX_TYPE = __NL80211_NAN_FUNC_TYPE_AFTER_LAST - 1, | ||
| 4976 | }; | ||
| 4977 | |||
| 4978 | /** | ||
| 4979 | * enum nl80211_nan_publish_type - NAN publish tx type | ||
| 4980 | * | ||
| 4981 | * Defines how to send publish Service Discovery Frames | ||
| 4982 | * | ||
| 4983 | * @NL80211_NAN_SOLICITED_PUBLISH: publish function is solicited | ||
| 4984 | * @NL80211_NAN_UNSOLICITED_PUBLISH: publish function is unsolicited | ||
| 4985 | */ | ||
| 4986 | enum nl80211_nan_publish_type { | ||
| 4987 | NL80211_NAN_SOLICITED_PUBLISH = 1 << 0, | ||
| 4988 | NL80211_NAN_UNSOLICITED_PUBLISH = 1 << 1, | ||
| 4989 | }; | ||
| 4990 | |||
| 4991 | /** | ||
| 4992 | * enum nl80211_nan_func_term_reason - NAN functions termination reason | ||
| 4993 | * | ||
| 4994 | * Defines termination reasons of a NAN function | ||
| 4995 | * | ||
| 4996 | * @NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST: requested by user | ||
| 4997 | * @NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED: timeout | ||
| 4998 | * @NL80211_NAN_FUNC_TERM_REASON_ERROR: errored | ||
| 4999 | */ | ||
| 5000 | enum nl80211_nan_func_term_reason { | ||
| 5001 | NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST, | ||
| 5002 | NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED, | ||
| 5003 | NL80211_NAN_FUNC_TERM_REASON_ERROR, | ||
| 5004 | }; | ||
| 5005 | |||
| 5006 | #define NL80211_NAN_FUNC_SERVICE_ID_LEN 6 | ||
| 5007 | #define NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN 0xff | ||
| 5008 | #define NL80211_NAN_FUNC_SRF_MAX_LEN 0xff | ||
| 5009 | |||
| 5010 | /** | ||
| 5011 | * enum nl80211_nan_func_attributes - NAN function attributes | ||
| 5012 | * @__NL80211_NAN_FUNC_INVALID: invalid | ||
| 5013 | * @NL80211_NAN_FUNC_TYPE: &enum nl80211_nan_function_type (u8). | ||
| 5014 | * @NL80211_NAN_FUNC_SERVICE_ID: 6 bytes of the service ID hash as | ||
| 5015 | * specified in NAN spec. This is a binary attribute. | ||
| 5016 | * @NL80211_NAN_FUNC_PUBLISH_TYPE: relevant if the function's type is | ||
| 5017 | * publish. Defines the transmission type for the publish Service Discovery | ||
| 5018 | * Frame, see &enum nl80211_nan_publish_type. Its type is u8. | ||
| 5019 | * @NL80211_NAN_FUNC_PUBLISH_BCAST: relevant if the function is a solicited | ||
| 5020 | * publish. Should the solicited publish Service Discovery Frame be sent to | ||
| 5021 | * the NAN Broadcast address. This is a flag. | ||
| 5022 | * @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE: relevant if the function's type is | ||
| 5023 | * subscribe. Is the subscribe active. This is a flag. | ||
| 5024 | * @NL80211_NAN_FUNC_FOLLOW_UP_ID: relevant if the function's type is follow up. | ||
| 5025 | * The instance ID for the follow up Service Discovery Frame. This is u8. | ||
| 5026 | * @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID: relevant if the function's type | ||
| 5027 | * is follow up. This is a u8. | ||
| 5028 | * The requestor instance ID for the follow up Service Discovery Frame. | ||
| 5029 | * @NL80211_NAN_FUNC_FOLLOW_UP_DEST: the MAC address of the recipient of the | ||
| 5030 | * follow up Service Discovery Frame. This is a binary attribute. | ||
| 5031 | * @NL80211_NAN_FUNC_CLOSE_RANGE: is this function limited for devices in a | ||
| 5032 | * close range. The range itself (RSSI) is defined by the device. | ||
| 5033 | * This is a flag. | ||
| 5034 | * @NL80211_NAN_FUNC_TTL: strictly positive number of DWs this function should | ||
| 5035 | * stay active. If not present infinite TTL is assumed. This is a u32. | ||
| 5036 | * @NL80211_NAN_FUNC_SERVICE_INFO: array of bytes describing the service | ||
| 5037 | * specific info. This is a binary attribute. | ||
| 5038 | * @NL80211_NAN_FUNC_SRF: Service Receive Filter. This is a nested attribute. | ||
| 5039 | * See &enum nl80211_nan_srf_attributes. | ||
| 5040 | * @NL80211_NAN_FUNC_RX_MATCH_FILTER: Receive Matching filter. This is a nested | ||
| 5041 | * attribute. It is a list of binary values. | ||
| 5042 | * @NL80211_NAN_FUNC_TX_MATCH_FILTER: Transmit Matching filter. This is a | ||
| 5043 | * nested attribute. It is a list of binary values. | ||
| 5044 | * @NL80211_NAN_FUNC_INSTANCE_ID: The instance ID of the function. | ||
| 5045 | * Its type is u8 and it cannot be 0. | ||
| 5046 | * @NL80211_NAN_FUNC_TERM_REASON: NAN function termination reason. | ||
| 5047 | * See &enum nl80211_nan_func_term_reason. | ||
| 5048 | * | ||
| 5049 | * @NUM_NL80211_NAN_FUNC_ATTR: internal | ||
| 5050 | * @NL80211_NAN_FUNC_ATTR_MAX: highest NAN function attribute | ||
| 5051 | */ | ||
| 5052 | enum nl80211_nan_func_attributes { | ||
| 5053 | __NL80211_NAN_FUNC_INVALID, | ||
| 5054 | NL80211_NAN_FUNC_TYPE, | ||
| 5055 | NL80211_NAN_FUNC_SERVICE_ID, | ||
| 5056 | NL80211_NAN_FUNC_PUBLISH_TYPE, | ||
| 5057 | NL80211_NAN_FUNC_PUBLISH_BCAST, | ||
| 5058 | NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE, | ||
| 5059 | NL80211_NAN_FUNC_FOLLOW_UP_ID, | ||
| 5060 | NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID, | ||
| 5061 | NL80211_NAN_FUNC_FOLLOW_UP_DEST, | ||
| 5062 | NL80211_NAN_FUNC_CLOSE_RANGE, | ||
| 5063 | NL80211_NAN_FUNC_TTL, | ||
| 5064 | NL80211_NAN_FUNC_SERVICE_INFO, | ||
| 5065 | NL80211_NAN_FUNC_SRF, | ||
| 5066 | NL80211_NAN_FUNC_RX_MATCH_FILTER, | ||
| 5067 | NL80211_NAN_FUNC_TX_MATCH_FILTER, | ||
| 5068 | NL80211_NAN_FUNC_INSTANCE_ID, | ||
| 5069 | NL80211_NAN_FUNC_TERM_REASON, | ||
| 5070 | |||
| 5071 | /* keep last */ | ||
| 5072 | NUM_NL80211_NAN_FUNC_ATTR, | ||
| 5073 | NL80211_NAN_FUNC_ATTR_MAX = NUM_NL80211_NAN_FUNC_ATTR - 1 | ||
| 5074 | }; | ||
| 5075 | |||
| 5076 | /** | ||
| 5077 | * enum nl80211_nan_srf_attributes - NAN Service Response filter attributes | ||
| 5078 | * @__NL80211_NAN_SRF_INVALID: invalid | ||
| 5079 | * @NL80211_NAN_SRF_INCLUDE: present if the include bit of the SRF set. | ||
| 5080 | * This is a flag. | ||
| 5081 | * @NL80211_NAN_SRF_BF: Bloom Filter. Present if and only if | ||
| 5082 | * &NL80211_NAN_SRF_MAC_ADDRS isn't present. This attribute is binary. | ||
| 5083 | * @NL80211_NAN_SRF_BF_IDX: index of the Bloom Filter. Mandatory if | ||
| 5084 | * &NL80211_NAN_SRF_BF is present. This is a u8. | ||
| 5085 | * @NL80211_NAN_SRF_MAC_ADDRS: list of MAC addresses for the SRF. Present if | ||
| 5086 | * and only if &NL80211_NAN_SRF_BF isn't present. This is a nested | ||
| 5087 | * attribute. Each nested attribute is a MAC address. | ||
| 5088 | * @NUM_NL80211_NAN_SRF_ATTR: internal | ||
| 5089 | * @NL80211_NAN_SRF_ATTR_MAX: highest NAN SRF attribute | ||
| 5090 | */ | ||
| 5091 | enum nl80211_nan_srf_attributes { | ||
| 5092 | __NL80211_NAN_SRF_INVALID, | ||
| 5093 | NL80211_NAN_SRF_INCLUDE, | ||
| 5094 | NL80211_NAN_SRF_BF, | ||
| 5095 | NL80211_NAN_SRF_BF_IDX, | ||
| 5096 | NL80211_NAN_SRF_MAC_ADDRS, | ||
| 5097 | |||
| 5098 | /* keep last */ | ||
| 5099 | NUM_NL80211_NAN_SRF_ATTR, | ||
| 5100 | NL80211_NAN_SRF_ATTR_MAX = NUM_NL80211_NAN_SRF_ATTR - 1, | ||
| 5101 | }; | ||
| 5102 | |||
| 5103 | /** | ||
| 5104 | * enum nl80211_nan_match_attributes - NAN match attributes | ||
| 5105 | * @__NL80211_NAN_MATCH_INVALID: invalid | ||
| 5106 | * @NL80211_NAN_MATCH_FUNC_LOCAL: the local function that had the | ||
| 5107 | * match. This is a nested attribute. | ||
| 5108 | * See &enum nl80211_nan_func_attributes. | ||
| 5109 | * @NL80211_NAN_MATCH_FUNC_PEER: the peer function | ||
| 5110 | * that caused the match. This is a nested attribute. | ||
| 5111 | * See &enum nl80211_nan_func_attributes. | ||
| 5112 | * | ||
| 5113 | * @NUM_NL80211_NAN_MATCH_ATTR: internal | ||
| 5114 | * @NL80211_NAN_MATCH_ATTR_MAX: highest NAN match attribute | ||
| 5115 | */ | ||
| 5116 | enum nl80211_nan_match_attributes { | ||
| 5117 | __NL80211_NAN_MATCH_INVALID, | ||
| 5118 | NL80211_NAN_MATCH_FUNC_LOCAL, | ||
| 5119 | NL80211_NAN_MATCH_FUNC_PEER, | ||
| 5120 | |||
| 5121 | /* keep last */ | ||
| 5122 | NUM_NL80211_NAN_MATCH_ATTR, | ||
| 5123 | NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1 | ||
| 5124 | }; | ||
| 5125 | |||
| 4858 | #endif /* __LINUX_NL80211_H */ | 5126 | #endif /* __LINUX_NL80211_H */ |
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index 54c3b4f4aceb..59ed3992c760 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
| @@ -605,13 +605,13 @@ struct ovs_action_push_mpls { | |||
| 605 | * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set | 605 | * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set |
| 606 | * (but it will not be set in the 802.1Q header that is pushed). | 606 | * (but it will not be set in the 802.1Q header that is pushed). |
| 607 | * | 607 | * |
| 608 | * The @vlan_tpid value is typically %ETH_P_8021Q. The only acceptable TPID | 608 | * The @vlan_tpid value is typically %ETH_P_8021Q or %ETH_P_8021AD. |
| 609 | * values are those that the kernel module also parses as 802.1Q headers, to | 609 | * The only acceptable TPID values are those that the kernel module also parses |
| 610 | * prevent %OVS_ACTION_ATTR_PUSH_VLAN followed by %OVS_ACTION_ATTR_POP_VLAN | 610 | * as 802.1Q or 802.1AD headers, to prevent %OVS_ACTION_ATTR_PUSH_VLAN followed |
| 611 | * from having surprising results. | 611 | * by %OVS_ACTION_ATTR_POP_VLAN from having surprising results. |
| 612 | */ | 612 | */ |
| 613 | struct ovs_action_push_vlan { | 613 | struct ovs_action_push_vlan { |
| 614 | __be16 vlan_tpid; /* 802.1Q TPID. */ | 614 | __be16 vlan_tpid; /* 802.1Q or 802.1ad TPID. */ |
| 615 | __be16 vlan_tci; /* 802.1Q TCI (VLAN ID and priority). */ | 615 | __be16 vlan_tci; /* 802.1Q TCI (VLAN ID and priority). */ |
| 616 | }; | 616 | }; |
| 617 | 617 | ||
| @@ -721,9 +721,10 @@ enum ovs_nat_attr { | |||
| 721 | * is copied from the value to the packet header field, rest of the bits are | 721 | * is copied from the value to the packet header field, rest of the bits are |
| 722 | * left unchanged. The non-masked value bits must be passed in as zeroes. | 722 | * left unchanged. The non-masked value bits must be passed in as zeroes. |
| 723 | * Masking is not supported for the %OVS_KEY_ATTR_TUNNEL attribute. | 723 | * Masking is not supported for the %OVS_KEY_ATTR_TUNNEL attribute. |
| 724 | * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the | 724 | * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q or 802.1ad header |
| 725 | * packet. | 725 | * onto the packet. |
| 726 | * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. | 726 | * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q or 802.1ad header |
| 727 | * from the packet. | ||
| 727 | * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in | 728 | * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in |
| 728 | * the nested %OVS_SAMPLE_ATTR_* attributes. | 729 | * the nested %OVS_SAMPLE_ATTR_* attributes. |
| 729 | * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the | 730 | * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the |
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index d1c1ccaba787..8fd715f806a2 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h | |||
| @@ -396,6 +396,7 @@ enum { | |||
| 396 | TCA_BPF_FD, | 396 | TCA_BPF_FD, |
| 397 | TCA_BPF_NAME, | 397 | TCA_BPF_NAME, |
| 398 | TCA_BPF_FLAGS, | 398 | TCA_BPF_FLAGS, |
| 399 | TCA_BPF_FLAGS_GEN, | ||
| 399 | __TCA_BPF_MAX, | 400 | __TCA_BPF_MAX, |
| 400 | }; | 401 | }; |
| 401 | 402 | ||
| @@ -428,6 +429,24 @@ enum { | |||
| 428 | TCA_FLOWER_KEY_UDP_DST, /* be16 */ | 429 | TCA_FLOWER_KEY_UDP_DST, /* be16 */ |
| 429 | 430 | ||
| 430 | TCA_FLOWER_FLAGS, | 431 | TCA_FLOWER_FLAGS, |
| 432 | TCA_FLOWER_KEY_VLAN_ID, /* be16 */ | ||
| 433 | TCA_FLOWER_KEY_VLAN_PRIO, /* u8 */ | ||
| 434 | TCA_FLOWER_KEY_VLAN_ETH_TYPE, /* be16 */ | ||
| 435 | |||
| 436 | TCA_FLOWER_KEY_ENC_KEY_ID, /* be32 */ | ||
| 437 | TCA_FLOWER_KEY_ENC_IPV4_SRC, /* be32 */ | ||
| 438 | TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,/* be32 */ | ||
| 439 | TCA_FLOWER_KEY_ENC_IPV4_DST, /* be32 */ | ||
| 440 | TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,/* be32 */ | ||
| 441 | TCA_FLOWER_KEY_ENC_IPV6_SRC, /* struct in6_addr */ | ||
| 442 | TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,/* struct in6_addr */ | ||
| 443 | TCA_FLOWER_KEY_ENC_IPV6_DST, /* struct in6_addr */ | ||
| 444 | TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,/* struct in6_addr */ | ||
| 445 | |||
| 446 | TCA_FLOWER_KEY_TCP_SRC_MASK, /* be16 */ | ||
| 447 | TCA_FLOWER_KEY_TCP_DST_MASK, /* be16 */ | ||
| 448 | TCA_FLOWER_KEY_UDP_SRC_MASK, /* be16 */ | ||
| 449 | TCA_FLOWER_KEY_UDP_DST_MASK, /* be16 */ | ||
| 431 | __TCA_FLOWER_MAX, | 450 | __TCA_FLOWER_MAX, |
| 432 | }; | 451 | }; |
| 433 | 452 | ||
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index 2382eed50278..df7451d35131 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h | |||
| @@ -792,6 +792,8 @@ enum { | |||
| 792 | 792 | ||
| 793 | TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */ | 793 | TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */ |
| 794 | 794 | ||
| 795 | TCA_FQ_LOW_RATE_THRESHOLD, /* per packet delay under this rate */ | ||
| 796 | |||
| 795 | __TCA_FQ_MAX | 797 | __TCA_FQ_MAX |
| 796 | }; | 798 | }; |
| 797 | 799 | ||
| @@ -809,7 +811,7 @@ struct tc_fq_qd_stats { | |||
| 809 | __u32 flows; | 811 | __u32 flows; |
| 810 | __u32 inactive_flows; | 812 | __u32 inactive_flows; |
| 811 | __u32 throttled_flows; | 813 | __u32 throttled_flows; |
| 812 | __u32 pad; | 814 | __u32 unthrottle_latency_ns; |
| 813 | }; | 815 | }; |
| 814 | 816 | ||
| 815 | /* Heavy-Hitter Filter */ | 817 | /* Heavy-Hitter Filter */ |
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index 25a9ad8bcef1..e7a31f830690 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h | |||
| @@ -235,6 +235,7 @@ enum | |||
| 235 | LINUX_MIB_TCPSPURIOUSRTOS, /* TCPSpuriousRTOs */ | 235 | LINUX_MIB_TCPSPURIOUSRTOS, /* TCPSpuriousRTOs */ |
| 236 | LINUX_MIB_TCPMD5NOTFOUND, /* TCPMD5NotFound */ | 236 | LINUX_MIB_TCPMD5NOTFOUND, /* TCPMD5NotFound */ |
| 237 | LINUX_MIB_TCPMD5UNEXPECTED, /* TCPMD5Unexpected */ | 237 | LINUX_MIB_TCPMD5UNEXPECTED, /* TCPMD5Unexpected */ |
| 238 | LINUX_MIB_TCPMD5FAILURE, /* TCPMD5Failure */ | ||
| 238 | LINUX_MIB_SACKSHIFTED, | 239 | LINUX_MIB_SACKSHIFTED, |
| 239 | LINUX_MIB_SACKMERGED, | 240 | LINUX_MIB_SACKMERGED, |
| 240 | LINUX_MIB_SACKSHIFTFALLBACK, | 241 | LINUX_MIB_SACKSHIFTFALLBACK, |
diff --git a/include/uapi/linux/tc_act/tc_ife.h b/include/uapi/linux/tc_act/tc_ife.h index 4ece02a77b9a..cd18360eca24 100644 --- a/include/uapi/linux/tc_act/tc_ife.h +++ b/include/uapi/linux/tc_act/tc_ife.h | |||
| @@ -32,8 +32,9 @@ enum { | |||
| 32 | #define IFE_META_HASHID 2 | 32 | #define IFE_META_HASHID 2 |
| 33 | #define IFE_META_PRIO 3 | 33 | #define IFE_META_PRIO 3 |
| 34 | #define IFE_META_QMAP 4 | 34 | #define IFE_META_QMAP 4 |
| 35 | #define IFE_META_TCINDEX 5 | ||
| 35 | /*Can be overridden at runtime by module option*/ | 36 | /*Can be overridden at runtime by module option*/ |
| 36 | #define __IFE_META_MAX 5 | 37 | #define __IFE_META_MAX 6 |
| 37 | #define IFE_META_MAX (__IFE_META_MAX - 1) | 38 | #define IFE_META_MAX (__IFE_META_MAX - 1) |
| 38 | 39 | ||
| 39 | #endif | 40 | #endif |
diff --git a/include/uapi/linux/tc_act/tc_skbmod.h b/include/uapi/linux/tc_act/tc_skbmod.h new file mode 100644 index 000000000000..10fc07da6c69 --- /dev/null +++ b/include/uapi/linux/tc_act/tc_skbmod.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2016, Jamal Hadi Salim | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License as published by | ||
| 6 | * the Free Software Foundation; either version 2 of the License, or | ||
| 7 | * (at your option) any later version. | ||
| 8 | */ | ||
| 9 | |||
| 10 | #ifndef __LINUX_TC_SKBMOD_H | ||
| 11 | #define __LINUX_TC_SKBMOD_H | ||
| 12 | |||
| 13 | #include <linux/pkt_cls.h> | ||
| 14 | |||
| 15 | #define TCA_ACT_SKBMOD 15 | ||
| 16 | |||
| 17 | #define SKBMOD_F_DMAC 0x1 | ||
| 18 | #define SKBMOD_F_SMAC 0x2 | ||
| 19 | #define SKBMOD_F_ETYPE 0x4 | ||
| 20 | #define SKBMOD_F_SWAPMAC 0x8 | ||
| 21 | |||
| 22 | struct tc_skbmod { | ||
| 23 | tc_gen; | ||
| 24 | __u64 flags; | ||
| 25 | }; | ||
| 26 | |||
| 27 | enum { | ||
| 28 | TCA_SKBMOD_UNSPEC, | ||
| 29 | TCA_SKBMOD_TM, | ||
| 30 | TCA_SKBMOD_PARMS, | ||
| 31 | TCA_SKBMOD_DMAC, | ||
| 32 | TCA_SKBMOD_SMAC, | ||
| 33 | TCA_SKBMOD_ETYPE, | ||
| 34 | TCA_SKBMOD_PAD, | ||
| 35 | __TCA_SKBMOD_MAX | ||
| 36 | }; | ||
| 37 | #define TCA_SKBMOD_MAX (__TCA_SKBMOD_MAX - 1) | ||
| 38 | |||
| 39 | #endif | ||
diff --git a/include/uapi/linux/tc_act/tc_tunnel_key.h b/include/uapi/linux/tc_act/tc_tunnel_key.h new file mode 100644 index 000000000000..890106ff16e6 --- /dev/null +++ b/include/uapi/linux/tc_act/tc_tunnel_key.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2016, Amir Vadai <amir@vadai.me> | ||
| 3 | * Copyright (c) 2016, Mellanox Technologies. All rights reserved. | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License as published by | ||
| 7 | * the Free Software Foundation; either version 2 of the License, or | ||
| 8 | * (at your option) any later version. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #ifndef __LINUX_TC_TUNNEL_KEY_H | ||
| 12 | #define __LINUX_TC_TUNNEL_KEY_H | ||
| 13 | |||
| 14 | #include <linux/pkt_cls.h> | ||
| 15 | |||
| 16 | #define TCA_ACT_TUNNEL_KEY 17 | ||
| 17 | |||
| 18 | #define TCA_TUNNEL_KEY_ACT_SET 1 | ||
| 19 | #define TCA_TUNNEL_KEY_ACT_RELEASE 2 | ||
| 20 | |||
| 21 | struct tc_tunnel_key { | ||
| 22 | tc_gen; | ||
| 23 | int t_action; | ||
| 24 | }; | ||
| 25 | |||
| 26 | enum { | ||
| 27 | TCA_TUNNEL_KEY_UNSPEC, | ||
| 28 | TCA_TUNNEL_KEY_TM, | ||
| 29 | TCA_TUNNEL_KEY_PARMS, | ||
| 30 | TCA_TUNNEL_KEY_ENC_IPV4_SRC, /* be32 */ | ||
| 31 | TCA_TUNNEL_KEY_ENC_IPV4_DST, /* be32 */ | ||
| 32 | TCA_TUNNEL_KEY_ENC_IPV6_SRC, /* struct in6_addr */ | ||
| 33 | TCA_TUNNEL_KEY_ENC_IPV6_DST, /* struct in6_addr */ | ||
| 34 | TCA_TUNNEL_KEY_ENC_KEY_ID, /* be64 */ | ||
| 35 | TCA_TUNNEL_KEY_PAD, | ||
| 36 | __TCA_TUNNEL_KEY_MAX, | ||
| 37 | }; | ||
| 38 | |||
| 39 | #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1) | ||
| 40 | |||
| 41 | #endif | ||
diff --git a/include/uapi/linux/tc_act/tc_vlan.h b/include/uapi/linux/tc_act/tc_vlan.h index 31151ff6264f..bddb272b843f 100644 --- a/include/uapi/linux/tc_act/tc_vlan.h +++ b/include/uapi/linux/tc_act/tc_vlan.h | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | 16 | ||
| 17 | #define TCA_VLAN_ACT_POP 1 | 17 | #define TCA_VLAN_ACT_POP 1 |
| 18 | #define TCA_VLAN_ACT_PUSH 2 | 18 | #define TCA_VLAN_ACT_PUSH 2 |
| 19 | #define TCA_VLAN_ACT_MODIFY 3 | ||
| 19 | 20 | ||
| 20 | struct tc_vlan { | 21 | struct tc_vlan { |
| 21 | tc_gen; | 22 | tc_gen; |
| @@ -29,6 +30,7 @@ enum { | |||
| 29 | TCA_VLAN_PUSH_VLAN_ID, | 30 | TCA_VLAN_PUSH_VLAN_ID, |
| 30 | TCA_VLAN_PUSH_VLAN_PROTOCOL, | 31 | TCA_VLAN_PUSH_VLAN_PROTOCOL, |
| 31 | TCA_VLAN_PAD, | 32 | TCA_VLAN_PAD, |
| 33 | TCA_VLAN_PUSH_VLAN_PRIORITY, | ||
| 32 | __TCA_VLAN_MAX, | 34 | __TCA_VLAN_MAX, |
| 33 | }; | 35 | }; |
| 34 | #define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1) | 36 | #define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1) |
diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h index 482898fc433a..73ac0db487f8 100644 --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h | |||
| @@ -167,6 +167,7 @@ struct tcp_info { | |||
| 167 | __u8 tcpi_backoff; | 167 | __u8 tcpi_backoff; |
| 168 | __u8 tcpi_options; | 168 | __u8 tcpi_options; |
| 169 | __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; | 169 | __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; |
| 170 | __u8 tcpi_delivery_rate_app_limited:1; | ||
| 170 | 171 | ||
| 171 | __u32 tcpi_rto; | 172 | __u32 tcpi_rto; |
| 172 | __u32 tcpi_ato; | 173 | __u32 tcpi_ato; |
| @@ -211,6 +212,8 @@ struct tcp_info { | |||
| 211 | __u32 tcpi_min_rtt; | 212 | __u32 tcpi_min_rtt; |
| 212 | __u32 tcpi_data_segs_in; /* RFC4898 tcpEStatsDataSegsIn */ | 213 | __u32 tcpi_data_segs_in; /* RFC4898 tcpEStatsDataSegsIn */ |
| 213 | __u32 tcpi_data_segs_out; /* RFC4898 tcpEStatsDataSegsOut */ | 214 | __u32 tcpi_data_segs_out; /* RFC4898 tcpEStatsDataSegsOut */ |
| 215 | |||
| 216 | __u64 tcpi_delivery_rate; | ||
| 214 | }; | 217 | }; |
| 215 | 218 | ||
| 216 | /* for TCP_MD5SIG socket option */ | 219 | /* for TCP_MD5SIG socket option */ |
diff --git a/include/uapi/linux/tipc_netlink.h b/include/uapi/linux/tipc_netlink.h index 5f3f6d09fb79..f9edd20fe9ba 100644 --- a/include/uapi/linux/tipc_netlink.h +++ b/include/uapi/linux/tipc_netlink.h | |||
| @@ -59,6 +59,9 @@ enum { | |||
| 59 | TIPC_NL_MON_SET, | 59 | TIPC_NL_MON_SET, |
| 60 | TIPC_NL_MON_GET, | 60 | TIPC_NL_MON_GET, |
| 61 | TIPC_NL_MON_PEER_GET, | 61 | TIPC_NL_MON_PEER_GET, |
| 62 | TIPC_NL_PEER_REMOVE, | ||
| 63 | TIPC_NL_BEARER_ADD, | ||
| 64 | TIPC_NL_UDP_GET_REMOTEIP, | ||
| 62 | 65 | ||
| 63 | __TIPC_NL_CMD_MAX, | 66 | __TIPC_NL_CMD_MAX, |
| 64 | TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 | 67 | TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 |
| @@ -98,6 +101,7 @@ enum { | |||
| 98 | TIPC_NLA_UDP_UNSPEC, | 101 | TIPC_NLA_UDP_UNSPEC, |
| 99 | TIPC_NLA_UDP_LOCAL, /* sockaddr_storage */ | 102 | TIPC_NLA_UDP_LOCAL, /* sockaddr_storage */ |
| 100 | TIPC_NLA_UDP_REMOTE, /* sockaddr_storage */ | 103 | TIPC_NLA_UDP_REMOTE, /* sockaddr_storage */ |
| 104 | TIPC_NLA_UDP_MULTI_REMOTEIP, /* flag */ | ||
| 101 | 105 | ||
| 102 | __TIPC_NLA_UDP_MAX, | 106 | __TIPC_NLA_UDP_MAX, |
| 103 | TIPC_NLA_UDP_MAX = __TIPC_NLA_UDP_MAX - 1 | 107 | TIPC_NLA_UDP_MAX = __TIPC_NLA_UDP_MAX - 1 |
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h index 143338978b48..1fc62b239f1b 100644 --- a/include/uapi/linux/xfrm.h +++ b/include/uapi/linux/xfrm.h | |||
| @@ -298,7 +298,7 @@ enum xfrm_attr_type_t { | |||
| 298 | XFRMA_ALG_AUTH_TRUNC, /* struct xfrm_algo_auth */ | 298 | XFRMA_ALG_AUTH_TRUNC, /* struct xfrm_algo_auth */ |
| 299 | XFRMA_MARK, /* struct xfrm_mark */ | 299 | XFRMA_MARK, /* struct xfrm_mark */ |
| 300 | XFRMA_TFCPAD, /* __u32 */ | 300 | XFRMA_TFCPAD, /* __u32 */ |
| 301 | XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */ | 301 | XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_state_esn */ |
| 302 | XFRMA_SA_EXTRA_FLAGS, /* __u32 */ | 302 | XFRMA_SA_EXTRA_FLAGS, /* __u32 */ |
| 303 | XFRMA_PROTO, /* __u8 */ | 303 | XFRMA_PROTO, /* __u8 */ |
| 304 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ | 304 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ |
