Pull networking updates from David Miller: 1) More iov_iter conversion work from Al Viro. [ The "crypto: switch af_alg_make_sg() to iov_iter" commit was wrong, and this pull actually adds an extra commit on top of the branch I'm pulling to fix that up, so that the pre-merge state is ok. - Linus ] 2) Various optimizations to the ipv4 forwarding information base trie lookup implementation. From Alexander Duyck. 3) Remove sock_iocb altogether, from CHristoph Hellwig. 4) Allow congestion control algorithm selection via routing metrics. From Daniel Borkmann. 5) Make ipv4 uncached route list per-cpu, from Eric Dumazet. 6) Handle rfs hash collisions more gracefully, also from Eric Dumazet. 7) Add xmit_more support to r8169, e1000, and e1000e drivers. From Florian Westphal. 8) Transparent Ethernet Bridging support for GRO, from Jesse Gross. 9) Add BPF packet actions to packet scheduler, from Jiri Pirko. 10) Add support for uniqu flow IDs to openvswitch, from Joe Stringer. 11) New NetCP ethernet driver, from Muralidharan Karicheri and Wingman Kwok. 12) More sanely handle out-of-window dupacks, which can result in serious ACK storms. From Neal Cardwell. 13) Various rhashtable bug fixes and enhancements, from Herbert Xu, Patrick McHardy, and Thomas Graf. 14) Support xmit_more in be2net, from Sathya Perla. 15) Group Policy extensions for vxlan, from Thomas Graf. 16) Remove Checksum Offload support for vxlan, from Tom Herbert. 17) Like ipv4, support lockless transmit over ipv6 UDP sockets. From Vlad Yasevich. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1494+1 commits) crypto: fix af_alg_make_sg() conversion to iov_iter ipv4: Namespecify TCP PMTU mechanism i40e: Fix for stats init function call in Rx setup tcp: don't include Fast Open option in SYN-ACK on pure SYN-data openvswitch: Only set TUNNEL_VXLAN_OPT if VXLAN-GBP metadata is set ipv6: Make __ipv6_select_ident static ipv6: Fix fragment id assignment on LE arches. bridge: Fix inability to add non-vlan fdb entry net: Mellanox: Delete unnecessary checks before the function call "vunmap" cxgb4: Add support in cxgb4 to get expansion rom version via ethtool ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version net: dsa: Remove redundant phy_attach() IB/mlx4: Reset flow support for IB kernel ULPs IB/mlx4: Always use the correct port for mirrored multicast attachments net/bonding: Fix potential bad memory access during bonding events tipc: remove tipc_snprintf tipc: nl compat add noop and remove legacy nl framework tipc: convert legacy nl stats show to nl compat tipc: convert legacy nl net id get to nl compat tipc: convert legacy nl net id set to nl compat ...
Showing the changes to include/uapi/linux (21 of 1236 files). Show all
Unified · Split
| @@ -283,6 +283,7 @@ header-y += net.h · 282 unmodified lines | |||
| 283 | header-y += netlink_diag.h | 283 | header-y += netlink_diag.h |
| 284 | header-y += netlink.h | 284 | header-y += netlink.h |
| 285 | header-y += netrom.h | 285 | header-y += netrom.h |
| 286 | header-y += net_namespace.h | ||
| 286 | header-y += net_tstamp.h | 287 | header-y += net_tstamp.h |
| 287 | header-y += nfc.h | 288 | header-y += nfc.h |
| 288 | header-y += nfs2.h | 289 | header-y += nfs2.h |
| @@ -139,6 +139,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 138 unmodified lines | |||
| 139 | 139 | ||
| 140 | #define ETHTOOL_FWVERS_LEN 32 | 140 | #define ETHTOOL_FWVERS_LEN 32 |
| 141 | #define ETHTOOL_BUSINFO_LEN 32 | 141 | #define ETHTOOL_BUSINFO_LEN 32 |
| 142 | #define ETHTOOL_EROMVERS_LEN 32 | ||
| 142 | 143 | ||
| 143 | /** | 144 | /** |
| 144 | * struct ethtool_drvinfo - general driver and device information | 145 | * struct ethtool_drvinfo - general driver and device information |
| @@ -148,6 +149,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 3 unmodified lines | |||
| 148 | * not be an empty string. | 149 | * not be an empty string. |
| 149 | * @version: Driver version string; may be an empty string | 150 | * @version: Driver version string; may be an empty string |
| 150 | * @fw_version: Firmware version string; may be an empty string | 151 | * @fw_version: Firmware version string; may be an empty string |
| 152 | * @erom_version: Expansion ROM version string; may be an empty string | ||
| 151 | * @bus_info: Device bus address. This should match the dev_name() | 153 | * @bus_info: Device bus address. This should match the dev_name() |
| 152 | * string for the underlying bus device, if there is one. May be | 154 | * string for the underlying bus device, if there is one. May be |
| 153 | * an empty string. | 155 | * an empty string. |
| @@ -176,7 +178,7 @@ struct ethtool_drvinfo { · 22 unmodified lines | |||
| 176 | char version[32]; | 178 | char version[32]; |
| 177 | char fw_version[ETHTOOL_FWVERS_LEN]; | 179 | char fw_version[ETHTOOL_FWVERS_LEN]; |
| 178 | char bus_info[ETHTOOL_BUSINFO_LEN]; | 180 | char bus_info[ETHTOOL_BUSINFO_LEN]; |
| 179 | char reserved1[32]; | 181 | char erom_version[ETHTOOL_EROMVERS_LEN]; |
| 180 | char reserved2[12]; | 182 | char reserved2[12]; |
| 181 | __u32 n_priv_flags; | 183 | __u32 n_priv_flags; |
| 182 | __u32 n_stats; | 184 | __u32 n_stats; |
| @@ -125,6 +125,8 @@ enum { · 124 unmodified lines | |||
| 125 | #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ | 125 | #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ |
| 126 | #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ | 126 | #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ |
| 127 | #define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ | 127 | #define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ |
| 128 | #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */ | ||
| 129 | #define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */ | ||
| 128 | 130 | ||
| 129 | struct bridge_vlan_info { | 131 | struct bridge_vlan_info { |
| 130 | __u16 flags; | 132 | __u16 flags; |
| @@ -146,6 +146,7 @@ enum { · 145 unmodified lines | |||
| 146 | IFLA_PHYS_PORT_ID, | 146 | IFLA_PHYS_PORT_ID, |
| 147 | IFLA_CARRIER_CHANGES, | 147 | IFLA_CARRIER_CHANGES, |
| 148 | IFLA_PHYS_SWITCH_ID, | 148 | IFLA_PHYS_SWITCH_ID, |
| 149 | IFLA_LINK_NETNSID, | ||
| 149 | __IFLA_MAX | 150 | __IFLA_MAX |
| 150 | }; | 151 | }; |
| 151 | 152 | ||
| @@ -370,6 +371,9 @@ enum { · 218 unmodified lines | |||
| 370 | IFLA_VXLAN_UDP_CSUM, | 371 | IFLA_VXLAN_UDP_CSUM, |
| 371 | IFLA_VXLAN_UDP_ZERO_CSUM6_TX, | 372 | IFLA_VXLAN_UDP_ZERO_CSUM6_TX, |
| 372 | IFLA_VXLAN_UDP_ZERO_CSUM6_RX, | 373 | IFLA_VXLAN_UDP_ZERO_CSUM6_RX, |
| 374 | IFLA_VXLAN_REMCSUM_TX, | ||
| 375 | IFLA_VXLAN_REMCSUM_RX, | ||
| 376 | IFLA_VXLAN_GBP, | ||
| 373 | __IFLA_VXLAN_MAX | 377 | __IFLA_VXLAN_MAX |
| 374 | }; | 378 | }; |
| 375 | #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) | 379 | #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) |
| @@ -109,6 +109,7 @@ struct in_addr { · 108 unmodified lines | |||
| 109 | 109 | ||
| 110 | #define IP_MINTTL 21 | 110 | #define IP_MINTTL 21 |
| 111 | #define IP_NODEFRAG 22 | 111 | #define IP_NODEFRAG 22 |
| 112 | #define IP_CHECKSUM 23 | ||
| 112 | 113 | ||
| 113 | /* IP_MTU_DISCOVER values */ | 114 | /* IP_MTU_DISCOVER values */ |
| 114 | #define IP_PMTUDISC_DONT 0 /* Never send DF frames */ | 115 | #define IP_PMTUDISC_DONT 0 /* Never send DF frames */ |
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef _UAPI_IPV6_H | 1 | #ifndef _UAPI_IPV6_H |
| 2 | #define _UAPI_IPV6_H | 2 | #define _UAPI_IPV6_H |
| 3 | 3 | ||
| 4 | #include <linux/libc-compat.h> | ||
| 4 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 5 | #include <linux/in6.h> | 6 | #include <linux/in6.h> |
| 6 | #include <asm/byteorder.h> | 7 | #include <asm/byteorder.h> |
| @@ -15,16 +16,19 @@ · 8 unmodified lines | |||
| 15 | * *under construction* | 16 | * *under construction* |
| 16 | */ | 17 | */ |
| 17 | 18 | ||
| 18 | 19 | #if __UAPI_DEF_IN6_PKTINFO | |
| 19 | struct in6_pktinfo { | 20 | struct in6_pktinfo { |
| 20 | struct in6_addr ipi6_addr; | 21 | struct in6_addr ipi6_addr; |
| 21 | int ipi6_ifindex; | 22 | int ipi6_ifindex; |
| 22 | }; | 23 | }; |
| 24 | #endif | ||
| 23 | 25 | ||
| 26 | #if __UAPI_DEF_IP6_MTUINFO | ||
| 24 | struct ip6_mtuinfo { | 27 | struct ip6_mtuinfo { |
| 25 | struct sockaddr_in6 ip6m_addr; | 28 | struct sockaddr_in6 ip6m_addr; |
| 26 | __u32 ip6m_mtu; | 29 | __u32 ip6m_mtu; |
| 27 | }; | 30 | }; |
| 31 | #endif | ||
| 28 | 32 | ||
| 29 | struct in6_ifreq { | 33 | struct in6_ifreq { |
| 30 | struct in6_addr ifr6_addr; | 34 | struct in6_addr ifr6_addr; |
| @@ -165,6 +169,7 @@ enum { · 134 unmodified lines | |||
| 165 | DEVCONF_SUPPRESS_FRAG_NDISC, | 169 | DEVCONF_SUPPRESS_FRAG_NDISC, |
| 166 | DEVCONF_ACCEPT_RA_FROM_LOCAL, | 170 | DEVCONF_ACCEPT_RA_FROM_LOCAL, |
| 167 | DEVCONF_USE_OPTIMISTIC, | 171 | DEVCONF_USE_OPTIMISTIC, |
| 172 | DEVCONF_ACCEPT_RA_MTU, | ||
| 168 | DEVCONF_MAX | 173 | DEVCONF_MAX |
| 169 | }; | 174 | }; |
| 170 | 175 | ||
| @@ -178,5 +178,6 @@ enum l2tp_seqmode { · 177 unmodified lines | |||
| 178 | */ | 178 | */ |
| 179 | #define L2TP_GENL_NAME "l2tp" | 179 | #define L2TP_GENL_NAME "l2tp" |
| 180 | #define L2TP_GENL_VERSION 0x1 | 180 | #define L2TP_GENL_VERSION 0x1 |
| 181 | #define L2TP_GENL_MCGROUP "l2tp" | ||
| 181 | 182 | ||
| 182 | #endif /* _UAPI_LINUX_L2TP_H_ */ | 183 | #endif /* _UAPI_LINUX_L2TP_H_ */ |
| @@ -70,6 +70,8 @@ · 69 unmodified lines | |||
| 70 | #define __UAPI_DEF_IPV6_MREQ 0 | 70 | #define __UAPI_DEF_IPV6_MREQ 0 |
| 71 | #define __UAPI_DEF_IPPROTO_V6 0 | 71 | #define __UAPI_DEF_IPPROTO_V6 0 |
| 72 | #define __UAPI_DEF_IPV6_OPTIONS 0 | 72 | #define __UAPI_DEF_IPV6_OPTIONS 0 |
| 73 | #define __UAPI_DEF_IN6_PKTINFO 0 | ||
| 74 | #define __UAPI_DEF_IP6_MTUINFO 0 | ||
| 73 | 75 | ||
| 74 | #else | 76 | #else |
| 75 | 77 | ||
| @@ -84,6 +86,8 @@ · 8 unmodified lines | |||
| 84 | #define __UAPI_DEF_IPV6_MREQ 1 | 86 | #define __UAPI_DEF_IPV6_MREQ 1 |
| 85 | #define __UAPI_DEF_IPPROTO_V6 1 | 87 | #define __UAPI_DEF_IPPROTO_V6 1 |
| 86 | #define __UAPI_DEF_IPV6_OPTIONS 1 | 88 | #define __UAPI_DEF_IPV6_OPTIONS 1 |
| 89 | #define __UAPI_DEF_IN6_PKTINFO 1 | ||
| 90 | #define __UAPI_DEF_IP6_MTUINFO 1 | ||
| 87 | 91 | ||
| 88 | #endif /* _NETINET_IN_H */ | 92 | #endif /* _NETINET_IN_H */ |
| 89 | 93 | ||
| @@ -106,6 +110,8 @@ · 16 unmodified lines | |||
| 106 | #define __UAPI_DEF_IPV6_MREQ 1 | 110 | #define __UAPI_DEF_IPV6_MREQ 1 |
| 107 | #define __UAPI_DEF_IPPROTO_V6 1 | 111 | #define __UAPI_DEF_IPPROTO_V6 1 |
| 108 | #define __UAPI_DEF_IPV6_OPTIONS 1 | 112 | #define __UAPI_DEF_IPV6_OPTIONS 1 |
| 113 | #define __UAPI_DEF_IN6_PKTINFO 1 | ||
| 114 | #define __UAPI_DEF_IP6_MTUINFO 1 | ||
| 109 | 115 | ||
| 110 | /* Definitions for xattr.h */ | 116 | /* Definitions for xattr.h */ |
| 111 | #define __UAPI_DEF_XATTR 1 | 117 | #define __UAPI_DEF_XATTR 1 |
| @@ -25,6 +25,7 @@ enum { · 24 unmodified lines | |||
| 25 | NDA_VNI, | 25 | NDA_VNI, |
| 26 | NDA_IFINDEX, | 26 | NDA_IFINDEX, |
| 27 | NDA_MASTER, | 27 | NDA_MASTER, |
| 28 | NDA_LINK_NETNSID, | ||
| 28 | __NDA_MAX | 29 | __NDA_MAX |
| 29 | }; | 30 | }; |
| 30 | 31 | ||
| @@ -0,0 +1,23 @@ | |||
| 1 | /* Copyright (c) 2015 6WIND S.A. | ||
| 2 | * Author: Nicolas Dichtel <nicolas.dichtel@6wind.com> | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify it | ||
| 5 | * under the terms and conditions of the GNU General Public License, | ||
| 6 | * version 2, as published by the Free Software Foundation. | ||
| 7 | */ | ||
| 8 | #ifndef _UAPI_LINUX_NET_NAMESPACE_H_ | ||
| 9 | #define _UAPI_LINUX_NET_NAMESPACE_H_ | ||
| 10 | |||
| 11 | /* Attributes of RTM_NEWNSID/RTM_GETNSID messages */ | ||
| 12 | enum { | ||
| 13 | NETNSA_NONE, | ||
| 14 | #define NETNSA_NSID_NOT_ASSIGNED -1 | ||
| 15 | NETNSA_NSID, | ||
| 16 | NETNSA_PID, | ||
| 17 | NETNSA_FD, | ||
| 18 | __NETNSA_MAX, | ||
| 19 | }; | ||
| 20 | |||
| 21 | #define NETNSA_MAX (__NETNSA_MAX - 1) | ||
| 22 | |||
| 23 | #endif /* _UAPI_LINUX_NET_NAMESPACE_H_ */ | ||
| @@ -24,8 +24,9 @@ enum { · 23 unmodified lines | |||
| 24 | SOF_TIMESTAMPING_TX_SCHED = (1<<8), | 24 | SOF_TIMESTAMPING_TX_SCHED = (1<<8), |
| 25 | SOF_TIMESTAMPING_TX_ACK = (1<<9), | 25 | SOF_TIMESTAMPING_TX_ACK = (1<<9), |
| 26 | SOF_TIMESTAMPING_OPT_CMSG = (1<<10), | 26 | SOF_TIMESTAMPING_OPT_CMSG = (1<<10), |
| 27 | SOF_TIMESTAMPING_OPT_TSONLY = (1<<11), | ||
| 27 | 28 | ||
| 28 | SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_CMSG, | 29 | SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TSONLY, |
| 29 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | | 30 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | |
| 30 | SOF_TIMESTAMPING_LAST | 31 | SOF_TIMESTAMPING_LAST |
| 31 | }; | 32 | }; |
| @@ -183,6 +183,7 @@ enum nfc_attrs { · 182 unmodified lines | |||
| 183 | NFC_ATTR_SE_APDU, | 183 | NFC_ATTR_SE_APDU, |
| 184 | NFC_ATTR_TARGET_ISO15693_DSFID, | 184 | NFC_ATTR_TARGET_ISO15693_DSFID, |
| 185 | NFC_ATTR_TARGET_ISO15693_UID, | 185 | NFC_ATTR_TARGET_ISO15693_UID, |
| 186 | NFC_ATTR_SE_PARAMS, | ||
| 186 | /* private: internal use only */ | 187 | /* private: internal use only */ |
| 187 | __NFC_ATTR_AFTER_LAST | 188 | __NFC_ATTR_AFTER_LAST |
| 188 | }; | 189 | }; |
| @@ -29,6 +29,13 @@ · 28 unmodified lines | |||
| 29 | 29 | ||
| 30 | #define NL80211_GENL_NAME "nl80211" | 30 | #define NL80211_GENL_NAME "nl80211" |
| 31 | 31 | ||
| 32 | #define NL80211_MULTICAST_GROUP_CONFIG "config" | ||
| 33 | #define NL80211_MULTICAST_GROUP_SCAN "scan" | ||
| 34 | #define NL80211_MULTICAST_GROUP_REG "regulatory" | ||
| 35 | #define NL80211_MULTICAST_GROUP_MLME "mlme" | ||
| 36 | #define NL80211_MULTICAST_GROUP_VENDOR "vendor" | ||
| 37 | #define NL80211_MULTICAST_GROUP_TESTMODE "testmode" | ||
| 38 | |||
| 32 | /** | 39 | /** |
| 33 | * DOC: Station handling | 40 | * DOC: Station handling |
| 34 | * | 41 | * |
| @@ -173,8 +180,8 @@ · 138 unmodified lines | |||
| 173 | * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. | 180 | * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. |
| 174 | * | 181 | * |
| 175 | * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; | 182 | * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; |
| 176 | * either a dump request on a %NL80211_ATTR_WIPHY or a specific get | 183 | * either a dump request for all interfaces or a specific get with a |
| 177 | * on an %NL80211_ATTR_IFINDEX is supported. | 184 | * single %NL80211_ATTR_IFINDEX is supported. |
| 178 | * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires | 185 | * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires |
| 179 | * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. | 186 | * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. |
| 180 | * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response | 187 | * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response |
| @@ -252,7 +259,18 @@ · 71 unmodified lines | |||
| 252 | * %NL80211_ATTR_IFINDEX. | 259 | * %NL80211_ATTR_IFINDEX. |
| 253 | * | 260 | * |
| 254 | * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set | 261 | * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set |
| 255 | * regulatory domain. | 262 | * regulatory domain. If %NL80211_ATTR_WIPHY is specified and the device |
| 263 | * has a private regulatory domain, it will be returned. Otherwise, the | ||
| 264 | * global regdomain will be returned. | ||
| 265 | * A device will have a private regulatory domain if it uses the | ||
| 266 | * regulatory_hint() API. Even when a private regdomain is used the channel | ||
| 267 | * information will still be mended according to further hints from | ||
| 268 | * the regulatory core to help with compliance. A dump version of this API | ||
| 269 | * is now available which will returns the global regdomain as well as | ||
| 270 | * all private regdomains of present wiphys (for those that have it). | ||
| 271 | * If a wiphy is self-managed (%NL80211_ATTR_WIPHY_SELF_MANAGED_REG), then | ||
| 272 | * its private regdomain is the only valid one for it. The regulatory | ||
| 273 | * core is not used to help with compliance in this case. | ||
| 256 | * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command | 274 | * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command |
| 257 | * after being queried by the kernel. CRDA replies by sending a regulatory | 275 | * after being queried by the kernel. CRDA replies by sending a regulatory |
| 258 | * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our | 276 | * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our |
| @@ -306,7 +324,9 @@ · 47 unmodified lines | |||
| 306 | * if passed, define which channels should be scanned; if not | 324 | * if passed, define which channels should be scanned; if not |
| 307 | * passed, all channels allowed for the current regulatory domain | 325 | * passed, all channels allowed for the current regulatory domain |
| 308 | * are used. Extra IEs can also be passed from the userspace by | 326 | * are used. Extra IEs can also be passed from the userspace by |
| 309 | * using the %NL80211_ATTR_IE attribute. | 327 | * using the %NL80211_ATTR_IE attribute. The first cycle of the |
| 328 | * scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY | ||
| 329 | * is supplied. | ||
| 310 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if | 330 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if |
| 311 | * scheduled scan is not running. The caller may assume that as soon | 331 | * scheduled scan is not running. The caller may assume that as soon |
| 312 | * as the call returns, it is safe to start a new scheduled scan again. | 332 | * as the call returns, it is safe to start a new scheduled scan again. |
| @@ -774,6 +794,10 @@ · 461 unmodified lines | |||
| 774 | * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel | 794 | * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel |
| 775 | * when this command completes. | 795 | * when this command completes. |
| 776 | * | 796 | * |
| 797 | * @NL80211_CMD_WIPHY_REG_CHANGE: Similar to %NL80211_CMD_REG_CHANGE, but used | ||
| 798 | * as an event to indicate changes for devices with wiphy-specific regdom | ||
| 799 | * management. | ||
| 800 | * | ||
| 777 | * @NL80211_CMD_MAX: highest used command number | 801 | * @NL80211_CMD_MAX: highest used command number |
| 778 | * @__NL80211_CMD_AFTER_LAST: internal use | 802 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 779 | */ | 803 | */ |
| @@ -958,6 +982,8 @@ enum nl80211_commands { · 178 unmodified lines | |||
| 958 | NL80211_CMD_TDLS_CHANNEL_SWITCH, | 982 | NL80211_CMD_TDLS_CHANNEL_SWITCH, |
| 959 | NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, | 983 | NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, |
| 960 | 984 | ||
| 985 | NL80211_CMD_WIPHY_REG_CHANGE, | ||
| 986 | |||
| 961 | /* add new commands above here */ | 987 | /* add new commands above here */ |
| 962 | 988 | ||
| 963 | /* used to define NL80211_CMD_MAX below */ | 989 | /* used to define NL80211_CMD_MAX below */ |
| @@ -1655,6 +1681,9 @@ enum nl80211_commands { · 691 unmodified lines | |||
| 1655 | * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface | 1681 | * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface |
| 1656 | * creation then the new interface will be owned by the netlink socket | 1682 | * creation then the new interface will be owned by the netlink socket |
| 1657 | * that created it and will be destroyed when the socket is closed. | 1683 | * that created it and will be destroyed when the socket is closed. |
| 1684 | * If set during scheduled scan start then the new scan req will be | ||
| 1685 | * owned by the netlink socket that created it and the scheduled scan will | ||
| 1686 | * be stopped when the socket is closed. | ||
| 1658 | * | 1687 | * |
| 1659 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is | 1688 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is |
| 1660 | * the TDLS link initiator. | 1689 | * the TDLS link initiator. |
| @@ -1688,6 +1717,29 @@ enum nl80211_commands { · 27 unmodified lines | |||
| 1688 | * | 1717 | * |
| 1689 | * @NL80211_ATTR_MAC_MASK: MAC address mask | 1718 | * @NL80211_ATTR_MAC_MASK: MAC address mask |
| 1690 | * | 1719 | * |
| 1720 | * @NL80211_ATTR_WIPHY_SELF_MANAGED_REG: flag attribute indicating this device | ||
| 1721 | * is self-managing its regulatory information and any regulatory domain | ||
| 1722 | * obtained from it is coming from the device's wiphy and not the global | ||
| 1723 | * cfg80211 regdomain. | ||
| 1724 | * | ||
| 1725 | * @NL80211_ATTR_EXT_FEATURES: extended feature flags contained in a byte | ||
| 1726 | * array. The feature flags are identified by their bit index (see &enum | ||
| 1727 | * nl80211_ext_feature_index). The bit index is ordered starting at the | ||
| 1728 | * least-significant bit of the first byte in the array, ie. bit index 0 | ||
| 1729 | * is located at bit 0 of byte 0. bit index 25 would be located at bit 1 | ||
| 1730 | * of byte 3 (u8 array). | ||
| 1731 | * | ||
| 1732 | * @NL80211_ATTR_SURVEY_RADIO_STATS: Request overall radio statistics to be | ||
| 1733 | * returned along with other survey data. If set, @NL80211_CMD_GET_SURVEY | ||
| 1734 | * may return a survey entry without a channel indicating global radio | ||
| 1735 | * statistics (only some values are valid and make sense.) | ||
| 1736 | * For devices that don't return such an entry even then, the information | ||
| 1737 | * should be contained in the result as the sum of the respective counters | ||
| 1738 | * over all channels. | ||
| 1739 | * | ||
| 1740 | * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before a scheduled scan (or a | ||
| 1741 | * WoWLAN net-detect scan) is started, u32 in seconds. | ||
| 1742 | * | ||
| 1691 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 1743 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 1692 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1744 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1693 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1745 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2045,6 +2097,16 @@ enum nl80211_attrs { · 351 unmodified lines | |||
| 2045 | 2097 | ||
| 2046 | NL80211_ATTR_MAC_MASK, | 2098 | NL80211_ATTR_MAC_MASK, |
| 2047 | 2099 | ||
| 2100 | NL80211_ATTR_WIPHY_SELF_MANAGED_REG, | ||
| 2101 | |||
| 2102 | NL80211_ATTR_EXT_FEATURES, | ||
| 2103 | |||
| 2104 | NL80211_ATTR_SURVEY_RADIO_STATS, | ||
| 2105 | |||
| 2106 | NL80211_ATTR_NETNS_FD, | ||
| 2107 | |||
| 2108 | NL80211_ATTR_SCHED_SCAN_DELAY, | ||
| 2109 | |||
| 2048 | /* add attributes here, update the policy in nl80211.c */ | 2110 | /* add attributes here, update the policy in nl80211.c */ |
| 2049 | 2111 | ||
| 2050 | __NL80211_ATTR_AFTER_LAST, | 2112 | __NL80211_ATTR_AFTER_LAST, |
| @@ -2085,7 +2147,7 @@ enum nl80211_attrs { · 34 unmodified lines | |||
| 2085 | 2147 | ||
| 2086 | #define NL80211_MAX_SUPP_RATES 32 | 2148 | #define NL80211_MAX_SUPP_RATES 32 |
| 2087 | #define NL80211_MAX_SUPP_HT_RATES 77 | 2149 | #define NL80211_MAX_SUPP_HT_RATES 77 |
| 2088 | #define NL80211_MAX_SUPP_REG_RULES 32 | 2150 | #define NL80211_MAX_SUPP_REG_RULES 64 |
| 2089 | #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 | 2151 | #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 |
| 2090 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 | 2152 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 |
| 2091 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 | 2153 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
| @@ -2225,8 +2287,15 @@ struct nl80211_sta_flag_update { · 133 unmodified lines | |||
| 2225 | * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) | 2287 | * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) |
| 2226 | * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) | 2288 | * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) |
| 2227 | * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate | 2289 | * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate |
| 2228 | * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate | 2290 | * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: unused - 80+80 is treated the |
| 2291 | * same as 160 for purposes of the bitrates | ||
| 2229 | * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate | 2292 | * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate |
| 2293 | * @NL80211_RATE_INFO_10_MHZ_WIDTH: 10 MHz width - note that this is | ||
| 2294 | * a legacy rate and will be reported as the actual bitrate, i.e. | ||
| 2295 | * half the base (20 MHz) rate | ||
| 2296 | * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is | ||
| 2297 | * a legacy rate and will be reported as the actual bitrate, i.e. | ||
| 2298 | * a quarter of the base (20 MHz) rate | ||
| 2230 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use | 2299 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 2231 | */ | 2300 | */ |
| 2232 | enum nl80211_rate_info { | 2301 | enum nl80211_rate_info { |
| @@ -2241,6 +2310,8 @@ enum nl80211_rate_info { · 8 unmodified lines | |||
| 2241 | NL80211_RATE_INFO_80_MHZ_WIDTH, | 2310 | NL80211_RATE_INFO_80_MHZ_WIDTH, |
| 2242 | NL80211_RATE_INFO_80P80_MHZ_WIDTH, | 2311 | NL80211_RATE_INFO_80P80_MHZ_WIDTH, |
| 2243 | NL80211_RATE_INFO_160_MHZ_WIDTH, | 2312 | NL80211_RATE_INFO_160_MHZ_WIDTH, |
| 2313 | NL80211_RATE_INFO_10_MHZ_WIDTH, | ||
| 2314 | NL80211_RATE_INFO_5_MHZ_WIDTH, | ||
| 2244 | 2315 | ||
| 2245 | /* keep last */ | 2316 | /* keep last */ |
| 2246 | __NL80211_RATE_INFO_AFTER_LAST, | 2317 | __NL80211_RATE_INFO_AFTER_LAST, |
| @@ -2285,18 +2356,24 @@ enum nl80211_sta_bss_param { · 38 unmodified lines | |||
| 2285 | * | 2356 | * |
| 2286 | * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved | 2357 | * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved |
| 2287 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) | 2358 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) |
| 2288 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) | 2359 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (MPDU length) |
| 2289 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) | 2360 | * (u32, from this station) |
| 2290 | * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station) | 2361 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (MPDU length) |
| 2291 | * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station) | 2362 | * (u32, to this station) |
| 2363 | * @NL80211_STA_INFO_RX_BYTES64: total received bytes (MPDU length) | ||
| 2364 | * (u64, from this station) | ||
| 2365 | * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (MPDU length) | ||
| 2366 | * (u64, to this station) | ||
| 2292 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) | 2367 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) |
| 2293 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute | 2368 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute |
| 2294 | * containing info as possible, see &enum nl80211_rate_info | 2369 | * containing info as possible, see &enum nl80211_rate_info |
| 2295 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) | 2370 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (MSDUs and MMPDUs) |
| 2296 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this | 2371 | * (u32, from this station) |
| 2297 | * station) | 2372 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (MSDUs and MMPDUs) |
| 2298 | * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station) | 2373 | * (u32, to this station) |
| 2299 | * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station) | 2374 | * @NL80211_STA_INFO_TX_RETRIES: total retries (MPDUs) (u32, to this station) |
| 2375 | * @NL80211_STA_INFO_TX_FAILED: total failed packets (MPDUs) | ||
| 2376 | * (u32, to this station) | ||
| 2300 | * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) | 2377 | * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) |
| 2301 | * @NL80211_STA_INFO_LLID: the station's mesh LLID | 2378 | * @NL80211_STA_INFO_LLID: the station's mesh LLID |
| 2302 | * @NL80211_STA_INFO_PLID: the station's mesh PLID | 2379 | * @NL80211_STA_INFO_PLID: the station's mesh PLID |
| @@ -2320,6 +2397,16 @@ enum nl80211_sta_bss_param { · 17 unmodified lines | |||
| 2320 | * Same format as NL80211_STA_INFO_CHAIN_SIGNAL. | 2397 | * Same format as NL80211_STA_INFO_CHAIN_SIGNAL. |
| 2321 | * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the | 2398 | * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the |
| 2322 | * 802.11 header (u32, kbps) | 2399 | * 802.11 header (u32, kbps) |
| 2400 | * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons | ||
| 2401 | * (u64) | ||
| 2402 | * @NL80211_STA_INFO_BEACON_RX: number of beacons received from this peer (u64) | ||
| 2403 | * @NL80211_STA_INFO_BEACON_SIGNAL_AVG: signal strength average | ||
| 2404 | * for beacons only (u8, dBm) | ||
| 2405 | * @NL80211_STA_INFO_TID_STATS: per-TID statistics (see &enum nl80211_tid_stats) | ||
| 2406 | * This is a nested attribute where each the inner attribute number is the | ||
| 2407 | * TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames; | ||
| 2408 | * each one of those is again nested with &enum nl80211_tid_stats | ||
| 2409 | * attributes carrying the actual values. | ||
| 2323 | * @__NL80211_STA_INFO_AFTER_LAST: internal | 2410 | * @__NL80211_STA_INFO_AFTER_LAST: internal |
| 2324 | * @NL80211_STA_INFO_MAX: highest possible station info attribute | 2411 | * @NL80211_STA_INFO_MAX: highest possible station info attribute |
| 2325 | */ | 2412 | */ |
| @@ -2352,12 +2439,41 @@ enum nl80211_sta_info { · 26 unmodified lines | |||
| 2352 | NL80211_STA_INFO_CHAIN_SIGNAL, | 2439 | NL80211_STA_INFO_CHAIN_SIGNAL, |
| 2353 | NL80211_STA_INFO_CHAIN_SIGNAL_AVG, | 2440 | NL80211_STA_INFO_CHAIN_SIGNAL_AVG, |
| 2354 | NL80211_STA_INFO_EXPECTED_THROUGHPUT, | 2441 | NL80211_STA_INFO_EXPECTED_THROUGHPUT, |
| 2442 | NL80211_STA_INFO_RX_DROP_MISC, | ||
| 2443 | NL80211_STA_INFO_BEACON_RX, | ||
| 2444 | NL80211_STA_INFO_BEACON_SIGNAL_AVG, | ||
| 2445 | NL80211_STA_INFO_TID_STATS, | ||
| 2355 | 2446 | ||
| 2356 | /* keep last */ | 2447 | /* keep last */ |
| 2357 | __NL80211_STA_INFO_AFTER_LAST, | 2448 | __NL80211_STA_INFO_AFTER_LAST, |
| 2358 | NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 | 2449 | NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 |
| 2359 | }; | 2450 | }; |
| 2360 | 2451 | ||
| 2452 | /** | ||
| 2453 | * enum nl80211_tid_stats - per TID statistics attributes | ||
| 2454 | * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved | ||
| 2455 | * @NL80211_TID_STATS_RX_MSDU: number of MSDUs received (u64) | ||
| 2456 | * @NL80211_TID_STATS_TX_MSDU: number of MSDUs transmitted (or | ||
| 2457 | * attempted to transmit; u64) | ||
| 2458 | * @NL80211_TID_STATS_TX_MSDU_RETRIES: number of retries for | ||
| 2459 | * transmitted MSDUs (not counting the first attempt; u64) | ||
| 2460 | * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted | ||
| 2461 | * MSDUs (u64) | ||
| 2462 | * @NUM_NL80211_TID_STATS: number of attributes here | ||
| 2463 | * @NL80211_TID_STATS_MAX: highest numbered attribute here | ||
| 2464 | */ | ||
| 2465 | enum nl80211_tid_stats { | ||
| 2466 | __NL80211_TID_STATS_INVALID, | ||
| 2467 | NL80211_TID_STATS_RX_MSDU, | ||
| 2468 | NL80211_TID_STATS_TX_MSDU, | ||
| 2469 | NL80211_TID_STATS_TX_MSDU_RETRIES, | ||
| 2470 | NL80211_TID_STATS_TX_MSDU_FAILED, | ||
| 2471 | |||
| 2472 | /* keep last */ | ||
| 2473 | NUM_NL80211_TID_STATS, | ||
| 2474 | NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1 | ||
| 2475 | }; | ||
| 2476 | |||
| 2361 | /** | 2477 | /** |
| 2362 | * enum nl80211_mpath_flags - nl80211 mesh path flags | 2478 | * enum nl80211_mpath_flags - nl80211 mesh path flags |
| 2363 | * | 2479 | * |
| @@ -2772,16 +2888,18 @@ enum nl80211_user_reg_hint_type { · 408 unmodified lines | |||
| 2772 | * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel | 2888 | * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel |
| 2773 | * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) | 2889 | * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) |
| 2774 | * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used | 2890 | * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used |
| 2775 | * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio | 2891 | * @NL80211_SURVEY_INFO_TIME: amount of time (in ms) that the radio |
| 2776 | * spent on this channel | 2892 | * was turned on (on channel or globally) |
| 2777 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary | 2893 | * @NL80211_SURVEY_INFO_TIME_BUSY: amount of the time the primary |
| 2778 | * channel was sensed busy (either due to activity or energy detect) | 2894 | * channel was sensed busy (either due to activity or energy detect) |
| 2779 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension | 2895 | * @NL80211_SURVEY_INFO_TIME_EXT_BUSY: amount of time the extension |
| 2780 | * channel was sensed busy | 2896 | * channel was sensed busy |
| 2781 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent | 2897 | * @NL80211_SURVEY_INFO_TIME_RX: amount of time the radio spent |
| 2782 | * receiving data | 2898 | * receiving data (on channel or globally) |
| 2783 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent | 2899 | * @NL80211_SURVEY_INFO_TIME_TX: amount of time the radio spent |
| 2784 | * transmitting data | 2900 | * transmitting data (on channel or globally) |
| 2901 | * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan | ||
| 2902 | * (on this channel or globally) | ||
| 2785 | * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number | 2903 | * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number |
| 2786 | * currently defined | 2904 | * currently defined |
| 2787 | * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use | 2905 | * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use |
| @@ -2791,17 +2909,25 @@ enum nl80211_survey_info { · 3 unmodified lines | |||
| 2791 | NL80211_SURVEY_INFO_FREQUENCY, | 2909 | NL80211_SURVEY_INFO_FREQUENCY, |
| 2792 | NL80211_SURVEY_INFO_NOISE, | 2910 | NL80211_SURVEY_INFO_NOISE, |
| 2793 | NL80211_SURVEY_INFO_IN_USE, | 2911 | NL80211_SURVEY_INFO_IN_USE, |
| 2794 | NL80211_SURVEY_INFO_CHANNEL_TIME, | 2912 | NL80211_SURVEY_INFO_TIME, |
| 2795 | NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY, | 2913 | NL80211_SURVEY_INFO_TIME_BUSY, |
| 2796 | NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY, | 2914 | NL80211_SURVEY_INFO_TIME_EXT_BUSY, |
| 2797 | NL80211_SURVEY_INFO_CHANNEL_TIME_RX, | 2915 | NL80211_SURVEY_INFO_TIME_RX, |
| 2798 | NL80211_SURVEY_INFO_CHANNEL_TIME_TX, | 2916 | NL80211_SURVEY_INFO_TIME_TX, |
| 2917 | NL80211_SURVEY_INFO_TIME_SCAN, | ||
| 2799 | 2918 | ||
| 2800 | /* keep last */ | 2919 | /* keep last */ |
| 2801 | __NL80211_SURVEY_INFO_AFTER_LAST, | 2920 | __NL80211_SURVEY_INFO_AFTER_LAST, |
| 2802 | NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 | 2921 | NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 |
| 2803 | }; | 2922 | }; |
| 2804 | 2923 | ||
| 2924 | /* keep old names for compatibility */ | ||
| 2925 | #define NL80211_SURVEY_INFO_CHANNEL_TIME NL80211_SURVEY_INFO_TIME | ||
| 2926 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY NL80211_SURVEY_INFO_TIME_BUSY | ||
| 2927 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY NL80211_SURVEY_INFO_TIME_EXT_BUSY | ||
| 2928 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_RX NL80211_SURVEY_INFO_TIME_RX | ||
| 2929 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_TX NL80211_SURVEY_INFO_TIME_TX | ||
| 2930 | |||
| 2805 | /** | 2931 | /** |
| 2806 | * enum nl80211_mntr_flags - monitor configuration flags | 2932 | * enum nl80211_mntr_flags - monitor configuration flags |
| 2807 | * | 2933 | * |
| @@ -3238,6 +3364,9 @@ enum nl80211_bss { · 430 unmodified lines | |||
| 3238 | /** | 3364 | /** |
| 3239 | * enum nl80211_bss_status - BSS "status" | 3365 | * enum nl80211_bss_status - BSS "status" |
| 3240 | * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. | 3366 | * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. |
| 3367 | * Note that this is no longer used since cfg80211 no longer | ||
| 3368 | * keeps track of whether or not authentication was done with | ||
| 3369 | * a given BSS. | ||
| 3241 | * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. | 3370 | * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. |
| 3242 | * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. | 3371 | * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. |
| 3243 | * | 3372 | * |
| @@ -3621,9 +3750,12 @@ struct nl80211_pattern_support { · 377 unmodified lines | |||
| 3621 | * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network | 3750 | * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network |
| 3622 | * is detected. This is a nested attribute that contains the | 3751 | * is detected. This is a nested attribute that contains the |
| 3623 | * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It | 3752 | * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It |
| 3624 | * specifies how the scan is performed (e.g. the interval and the | 3753 | * specifies how the scan is performed (e.g. the interval, the |
| 3625 | * channels to scan) as well as the scan results that will | 3754 | * channels to scan and the initial delay) as well as the scan |
| 3626 | * trigger a wake (i.e. the matchsets). | 3755 | * results that will trigger a wake (i.e. the matchsets). This |
| 3756 | * attribute is also sent in a response to | ||
| 3757 | * @NL80211_CMD_GET_WIPHY, indicating the number of match sets | ||
| 3758 | * supported by the driver (u32). | ||
| 3627 | * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute | 3759 | * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute |
| 3628 | * containing an array with information about what triggered the | 3760 | * containing an array with information about what triggered the |
| 3629 | * wake up. If no elements are present in the array, it means | 3761 | * wake up. If no elements are present in the array, it means |
| @@ -4193,6 +4325,19 @@ enum nl80211_feature_flags { · 563 unmodified lines | |||
| 4193 | NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31, | 4325 | NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31, |
| 4194 | }; | 4326 | }; |
| 4195 | 4327 | ||
| 4328 | /** | ||
| 4329 | * enum nl80211_ext_feature_index - bit index of extended features. | ||
| 4330 | * | ||
| 4331 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | ||
| 4332 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | ||
| 4333 | */ | ||
| 4334 | enum nl80211_ext_feature_index { | ||
| 4335 | |||
| 4336 | /* add new features before the definition below */ | ||
| 4337 | NUM_NL80211_EXT_FEATURES, | ||
| 4338 | MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 | ||
| 4339 | }; | ||
| 4340 | |||
| 4196 | /** | 4341 | /** |
| 4197 | * enum nl80211_probe_resp_offload_support_attr - optional supported | 4342 | * enum nl80211_probe_resp_offload_support_attr - optional supported |
| 4198 | * protocols for probe-response offloading by the driver/FW. | 4343 | * protocols for probe-response offloading by the driver/FW. |
| @@ -252,11 +252,21 @@ enum ovs_vport_attr { · 251 unmodified lines | |||
| 252 | 252 | ||
| 253 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) | 253 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) |
| 254 | 254 | ||
| 255 | enum { | ||
| 256 | OVS_VXLAN_EXT_UNSPEC, | ||
| 257 | OVS_VXLAN_EXT_GBP, /* Flag or __u32 */ | ||
| 258 | __OVS_VXLAN_EXT_MAX, | ||
| 259 | }; | ||
| 260 | |||
| 261 | #define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1) | ||
| 262 | |||
| 263 | |||
| 255 | /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels. | 264 | /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels. |
| 256 | */ | 265 | */ |
| 257 | enum { | 266 | enum { |
| 258 | OVS_TUNNEL_ATTR_UNSPEC, | 267 | OVS_TUNNEL_ATTR_UNSPEC, |
| 259 | OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */ | 268 | OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */ |
| 269 | OVS_TUNNEL_ATTR_EXTENSION, | ||
| 260 | __OVS_TUNNEL_ATTR_MAX | 270 | __OVS_TUNNEL_ATTR_MAX |
| 261 | }; | 271 | }; |
| 262 | 272 | ||
| @@ -328,6 +338,7 @@ enum ovs_tunnel_key_attr { · 65 unmodified lines | |||
| 328 | OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */ | 338 | OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */ |
| 329 | OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */ | 339 | OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */ |
| 330 | OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */ | 340 | OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */ |
| 341 | OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested OVS_VXLAN_EXT_* */ | ||
| 331 | __OVS_TUNNEL_KEY_ATTR_MAX | 342 | __OVS_TUNNEL_KEY_ATTR_MAX |
| 332 | }; | 343 | }; |
| 333 | 344 | ||
| @@ -448,6 +459,14 @@ struct ovs_key_nd { · 114 unmodified lines | |||
| 448 | * a wildcarded match. Omitting attribute is treated as wildcarding all | 459 | * a wildcarded match. Omitting attribute is treated as wildcarding all |
| 449 | * corresponding fields. Optional for all requests. If not present, | 460 | * corresponding fields. Optional for all requests. If not present, |
| 450 | * all flow key bits are exact match bits. | 461 | * all flow key bits are exact match bits. |
| 462 | * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique | ||
| 463 | * identifier for the flow. Causes the flow to be indexed by this value rather | ||
| 464 | * than the value of the %OVS_FLOW_ATTR_KEY attribute. Optional for all | ||
| 465 | * requests. Present in notifications if the flow was created with this | ||
| 466 | * attribute. | ||
| 467 | * @OVS_FLOW_ATTR_UFID_FLAGS: A 32-bit value of OR'd %OVS_UFID_F_* | ||
| 468 | * flags that provide alternative semantics for flow installation and | ||
| 469 | * retrieval. Optional for all requests. | ||
| 451 | * | 470 | * |
| 452 | * These attributes follow the &struct ovs_header within the Generic Netlink | 471 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 453 | * payload for %OVS_FLOW_* commands. | 472 | * payload for %OVS_FLOW_* commands. |
| @@ -463,11 +482,23 @@ enum ovs_flow_attr { · 9 unmodified lines | |||
| 463 | OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */ | 482 | OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */ |
| 464 | OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error | 483 | OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error |
| 465 | * logging should be suppressed. */ | 484 | * logging should be suppressed. */ |
| 485 | OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */ | ||
| 486 | OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */ | ||
| 466 | __OVS_FLOW_ATTR_MAX | 487 | __OVS_FLOW_ATTR_MAX |
| 467 | }; | 488 | }; |
| 468 | 489 | ||
| 469 | #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) | 490 | #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) |
| 470 | 491 | ||
| 492 | /** | ||
| 493 | * Omit attributes for notifications. | ||
| 494 | * | ||
| 495 | * If a datapath request contains an %OVS_UFID_F_OMIT_* flag, then the datapath | ||
| 496 | * may omit the corresponding %OVS_FLOW_ATTR_* from the response. | ||
| 497 | */ | ||
| 498 | #define OVS_UFID_F_OMIT_KEY (1 << 0) | ||
| 499 | #define OVS_UFID_F_OMIT_MASK (1 << 1) | ||
| 500 | #define OVS_UFID_F_OMIT_ACTIONS (1 << 2) | ||
| 501 | |||
| 471 | /** | 502 | /** |
| 472 | * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action. | 503 | * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action. |
| 473 | * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with | 504 | * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with |
| @@ -568,6 +599,12 @@ struct ovs_action_hash { · 94 unmodified lines | |||
| 568 | * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The | 599 | * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The |
| 569 | * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its | 600 | * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its |
| 570 | * value. | 601 | * value. |
| 602 | * @OVS_ACTION_ATTR_SET_MASKED: Replaces the contents of an existing header. A | ||
| 603 | * nested %OVS_KEY_ATTR_* attribute specifies a header to modify, its value, | ||
| 604 | * and a mask. For every bit set in the mask, the corresponding bit value | ||
| 605 | * is copied from the value to the packet header field, rest of the bits are | ||
| 606 | * left unchanged. The non-masked value bits must be passed in as zeroes. | ||
| 607 | * Masking is not supported for the %OVS_KEY_ATTR_TUNNEL attribute. | ||
| 571 | * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the | 608 | * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the |
| 572 | * packet. | 609 | * packet. |
| 573 | * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. | 610 | * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. |
| @@ -586,6 +623,9 @@ struct ovs_action_hash { · 12 unmodified lines | |||
| 586 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all | 623 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 587 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment | 624 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
| 588 | * type may not be changed. | 625 | * type may not be changed. |
| 626 | * | ||
| 627 | * @OVS_ACTION_ATTR_SET_TO_MASKED: Kernel internal masked set action translated | ||
| 628 | * from the @OVS_ACTION_ATTR_SET. | ||
| 589 | */ | 629 | */ |
| 590 | 630 | ||
| 591 | enum ovs_action_attr { | 631 | enum ovs_action_attr { |
| @@ -600,8 +640,19 @@ enum ovs_action_attr { · 8 unmodified lines | |||
| 600 | OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */ | 640 | OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */ |
| 601 | OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */ | 641 | OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */ |
| 602 | OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */ | 642 | OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */ |
| 643 | OVS_ACTION_ATTR_SET_MASKED, /* One nested OVS_KEY_ATTR_* including | ||
| 644 | * data immediately followed by a mask. | ||
| 645 | * The data must be zero for the unmasked | ||
| 646 | * bits. */ | ||
| 603 | 647 | ||
| 604 | __OVS_ACTION_ATTR_MAX | 648 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 649 | * from userspace. */ | ||
| 650 | |||
| 651 | #ifdef __KERNEL__ | ||
| 652 | OVS_ACTION_ATTR_SET_TO_MASKED, /* Kernel module internal masked | ||
| 653 | * set action converted from | ||
| 654 | * OVS_ACTION_ATTR_SET. */ | ||
| 655 | #endif | ||
| 605 | }; | 656 | }; |
| 606 | 657 | ||
| 607 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) | 658 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) |
| @@ -774,6 +774,8 @@ enum { · 773 unmodified lines | |||
| 774 | 774 | ||
| 775 | TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */ | 775 | TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */ |
| 776 | 776 | ||
| 777 | TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */ | ||
| 778 | |||
| 777 | __TCA_FQ_MAX | 779 | __TCA_FQ_MAX |
| 778 | }; | 780 | }; |
| 779 | 781 | ||
| @@ -132,6 +132,11 @@ enum { · 131 unmodified lines | |||
| 132 | RTM_GETMDB = 86, | 132 | RTM_GETMDB = 86, |
| 133 | #define RTM_GETMDB RTM_GETMDB | 133 | #define RTM_GETMDB RTM_GETMDB |
| 134 | 134 | ||
| 135 | RTM_NEWNSID = 88, | ||
| 136 | #define RTM_NEWNSID RTM_NEWNSID | ||
| 137 | RTM_GETNSID = 90, | ||
| 138 | #define RTM_GETNSID RTM_GETNSID | ||
| 139 | |||
| 135 | __RTM_MAX, | 140 | __RTM_MAX, |
| 136 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) | 141 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| 137 | }; | 142 | }; |
| @@ -389,6 +394,8 @@ enum { · 251 unmodified lines | |||
| 389 | #define RTAX_INITRWND RTAX_INITRWND | 394 | #define RTAX_INITRWND RTAX_INITRWND |
| 390 | RTAX_QUICKACK, | 395 | RTAX_QUICKACK, |
| 391 | #define RTAX_QUICKACK RTAX_QUICKACK | 396 | #define RTAX_QUICKACK RTAX_QUICKACK |
| 397 | RTAX_CC_ALGO, | ||
| 398 | #define RTAX_CC_ALGO RTAX_CC_ALGO | ||
| 392 | __RTAX_MAX | 399 | __RTAX_MAX |
| 393 | }; | 400 | }; |
| 394 | 401 | ||
| @@ -634,6 +641,7 @@ struct tcamsg { · 239 unmodified lines | |||
| 634 | /* New extended info filters for IFLA_EXT_MASK */ | 641 | /* New extended info filters for IFLA_EXT_MASK */ |
| 635 | #define RTEXT_FILTER_VF (1 << 0) | 642 | #define RTEXT_FILTER_VF (1 << 0) |
| 636 | #define RTEXT_FILTER_BRVLAN (1 << 1) | 643 | #define RTEXT_FILTER_BRVLAN (1 << 1) |
| 644 | #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) | ||
| 637 | 645 | ||
| 638 | /* End of information exported to user level */ | 646 | /* End of information exported to user level */ |
| 639 | 647 | ||
| @@ -270,6 +270,12 @@ enum · 269 unmodified lines | |||
| 270 | LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */ | 270 | LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */ |
| 271 | LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */ | 271 | LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */ |
| 272 | LINUX_MIB_TCPHYSTARTDELAYCWND, /* TCPHystartDelayCwnd */ | 272 | LINUX_MIB_TCPHYSTARTDELAYCWND, /* TCPHystartDelayCwnd */ |
| 273 | LINUX_MIB_TCPACKSKIPPEDSYNRECV, /* TCPACKSkippedSynRecv */ | ||
| 274 | LINUX_MIB_TCPACKSKIPPEDPAWS, /* TCPACKSkippedPAWS */ | ||
| 275 | LINUX_MIB_TCPACKSKIPPEDSEQ, /* TCPACKSkippedSeq */ | ||
| 276 | LINUX_MIB_TCPACKSKIPPEDFINWAIT2, /* TCPACKSkippedFinWait2 */ | ||
| 277 | LINUX_MIB_TCPACKSKIPPEDTIMEWAIT, /* TCPACKSkippedTimeWait */ | ||
| 278 | LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */ | ||
| 273 | __LINUX_MIB_MAX | 279 | __LINUX_MIB_MAX |
| 274 | }; | 280 | }; |
| 275 | 281 | ||
| @@ -8,3 +8,4 @@ header-y += tc_nat.h · 7 unmodified lines | |||
| 8 | header-y += tc_pedit.h | 8 | header-y += tc_pedit.h |
| 9 | header-y += tc_skbedit.h | 9 | header-y += tc_skbedit.h |
| 10 | header-y += tc_vlan.h | 10 | header-y += tc_vlan.h |
| 11 | header-y += tc_bpf.h | ||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us> | ||
| 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_BPF_H | ||
| 11 | #define __LINUX_TC_BPF_H | ||
| 12 | |||
| 13 | #include <linux/pkt_cls.h> | ||
| 14 | |||
| 15 | #define TCA_ACT_BPF 13 | ||
| 16 | |||
| 17 | struct tc_act_bpf { | ||
| 18 | tc_gen; | ||
| 19 | }; | ||
| 20 | |||
| 21 | enum { | ||
| 22 | TCA_ACT_BPF_UNSPEC, | ||
| 23 | TCA_ACT_BPF_TM, | ||
| 24 | TCA_ACT_BPF_PARMS, | ||
| 25 | TCA_ACT_BPF_OPS_LEN, | ||
| 26 | TCA_ACT_BPF_OPS, | ||
| 27 | __TCA_ACT_BPF_MAX, | ||
| 28 | }; | ||
| 29 | #define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1) | ||
| 30 | |||
| 31 | #endif | ||
| @@ -0,0 +1,22 @@ | |||
| 1 | #ifndef __UAPI_TC_CONNMARK_H | ||
| 2 | #define __UAPI_TC_CONNMARK_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | #include <linux/pkt_cls.h> | ||
| 6 | |||
| 7 | #define TCA_ACT_CONNMARK 14 | ||
| 8 | |||
| 9 | struct tc_connmark { | ||
| 10 | tc_gen; | ||
| 11 | __u16 zone; | ||
| 12 | }; | ||
| 13 | |||
| 14 | enum { | ||
| 15 | TCA_CONNMARK_UNSPEC, | ||
| 16 | TCA_CONNMARK_PARMS, | ||
| 17 | TCA_CONNMARK_TM, | ||
| 18 | __TCA_CONNMARK_MAX | ||
| 19 | }; | ||
| 20 | #define TCA_CONNMARK_MAX (__TCA_CONNMARK_MAX - 1) | ||
| 21 | |||
| 22 | #endif | ||
| @@ -272,6 +272,26 @@ static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type) · 271 unmodified lines | |||
| 272 | (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type); | 272 | (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type); |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | static inline int TLV_GET_LEN(struct tlv_desc *tlv) | ||
| 276 | { | ||
| 277 | return ntohs(tlv->tlv_len); | ||
| 278 | } | ||
| 279 | |||
| 280 | static inline void TLV_SET_LEN(struct tlv_desc *tlv, __u16 len) | ||
| 281 | { | ||
| 282 | tlv->tlv_len = htons(len); | ||
| 283 | } | ||
| 284 | |||
| 285 | static inline int TLV_CHECK_TYPE(struct tlv_desc *tlv, __u16 type) | ||
| 286 | { | ||
| 287 | return (ntohs(tlv->tlv_type) == type); | ||
| 288 | } | ||
| 289 | |||
| 290 | static inline void TLV_SET_TYPE(struct tlv_desc *tlv, __u16 type) | ||
| 291 | { | ||
| 292 | tlv->tlv_type = htons(type); | ||
| 293 | } | ||
| 294 | |||
| 275 | static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) | 295 | static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) |
| 276 | { | 296 | { |
| 277 | struct tlv_desc *tlv_ptr; | 297 | struct tlv_desc *tlv_ptr; |