History

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

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 ...

Linus Torvalds committed 11 years ago

Commit c5ce28d2 parents 29afc4e 9399f0c1236 files · +72067 −29395Browse files

Showing the changes to include/uapi/linux (21 of 1236 files). Show all

Unified · Split

21 files
  1. include/uapi/linux/Kbuild +1 −0
  2. include/uapi/linux/ethtool.h +3 −1
  3. include/uapi/linux/if_bridge.h +2 −0
  4. include/uapi/linux/if_link.h +4 −0
  5. include/uapi/linux/in.h +1 −0
  6. include/uapi/linux/ipv6.h +6 −1
  7. include/uapi/linux/l2tp.h +1 −0
  8. include/uapi/linux/libc-compat.h +6 −0
  9. include/uapi/linux/neighbour.h +1 −0
  10. include/uapi/linux/net_namespace.h +23 −0
  11. include/uapi/linux/net_tstamp.h +2 −1
  12. include/uapi/linux/nfc.h +1 −0
  13. include/uapi/linux/nl80211.h +176 −31
  14. include/uapi/linux/openvswitch.h +52 −1
  15. include/uapi/linux/pkt_sched.h +2 −0
  16. include/uapi/linux/rtnetlink.h +8 −0
  17. include/uapi/linux/snmp.h +6 −0
  18. include/uapi/linux/tc_act/Kbuild +1 −0
  19. include/uapi/linux/tc_act/tc_bpf.h +31 −0
  20. include/uapi/linux/tc_act/tc_connmark.h +22 −0
  21. include/uapi/linux/tipc_config.h +20 −0
include/uapi/linux/Kbuild+1−0
@@ -283,6 +283,7 @@ header-y += net.h · 282 unmodified lines
283283 header-y += netlink_diag.h
284284 header-y += netlink.h
285285 header-y += netrom.h
286+header-y += net_namespace.h
286287 header-y += net_tstamp.h
287288 header-y += nfc.h
288289 header-y += nfs2.h
include/uapi/linux/ethtool.h+3−1
@@ -139,6 +139,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 138 unmodified lines
139139
140140 #define ETHTOOL_FWVERS_LEN 32
141141 #define ETHTOOL_BUSINFO_LEN 32
142+#define ETHTOOL_EROMVERS_LEN 32
142143
143144 /**
144145 * 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
148149 * not be an empty string.
149150 * @version: Driver version string; may be an empty string
150151 * @fw_version: Firmware version string; may be an empty string
152+ * @erom_version: Expansion ROM version string; may be an empty string
151153 * @bus_info: Device bus address. This should match the dev_name()
152154 * string for the underlying bus device, if there is one. May be
153155 * an empty string.
@@ -176,7 +178,7 @@ struct ethtool_drvinfo { · 22 unmodified lines
176178 char version[32];
177179 char fw_version[ETHTOOL_FWVERS_LEN];
178180 char bus_info[ETHTOOL_BUSINFO_LEN];
179− char reserved1[32];
181+ char erom_version[ETHTOOL_EROMVERS_LEN];
180182 char reserved2[12];
181183 __u32 n_priv_flags;
182184 __u32 n_stats;
include/uapi/linux/if_bridge.h+2−0
@@ -125,6 +125,8 @@ enum { · 124 unmodified lines
125125 #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */
126126 #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */
127127 #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 */
128130
129131 struct bridge_vlan_info {
130132 __u16 flags;
include/uapi/linux/if_link.h+4−0
@@ -146,6 +146,7 @@ enum { · 145 unmodified lines
146146 IFLA_PHYS_PORT_ID,
147147 IFLA_CARRIER_CHANGES,
148148 IFLA_PHYS_SWITCH_ID,
149+ IFLA_LINK_NETNSID,
149150 __IFLA_MAX
150151 };
151152
@@ -370,6 +371,9 @@ enum { · 218 unmodified lines
370371 IFLA_VXLAN_UDP_CSUM,
371372 IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
372373 IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
374+ IFLA_VXLAN_REMCSUM_TX,
375+ IFLA_VXLAN_REMCSUM_RX,
376+ IFLA_VXLAN_GBP,
373377 __IFLA_VXLAN_MAX
374378 };
375379 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
include/uapi/linux/in.h+1−0
@@ -109,6 +109,7 @@ struct in_addr { · 108 unmodified lines
109109
110110 #define IP_MINTTL 21
111111 #define IP_NODEFRAG 22
112+#define IP_CHECKSUM 23
112113
113114 /* IP_MTU_DISCOVER values */
114115 #define IP_PMTUDISC_DONT 0 /* Never send DF frames */
include/uapi/linux/ipv6.h+6−1
@@ -1,6 +1,7 @@
11 #ifndef _UAPI_IPV6_H
22 #define _UAPI_IPV6_H
33
4+#include <linux/libc-compat.h>
45 #include <linux/types.h>
56 #include <linux/in6.h>
67 #include <asm/byteorder.h>
@@ -15,16 +16,19 @@ · 8 unmodified lines
1516 * *under construction*
1617 */
1718
18−
19+#if __UAPI_DEF_IN6_PKTINFO
1920 struct in6_pktinfo {
2021 struct in6_addr ipi6_addr;
2122 int ipi6_ifindex;
2223 };
24+#endif
2325
26+#if __UAPI_DEF_IP6_MTUINFO
2427 struct ip6_mtuinfo {
2528 struct sockaddr_in6 ip6m_addr;
2629 __u32 ip6m_mtu;
2730 };
31+#endif
2832
2933 struct in6_ifreq {
3034 struct in6_addr ifr6_addr;
@@ -165,6 +169,7 @@ enum { · 134 unmodified lines
165169 DEVCONF_SUPPRESS_FRAG_NDISC,
166170 DEVCONF_ACCEPT_RA_FROM_LOCAL,
167171 DEVCONF_USE_OPTIMISTIC,
172+ DEVCONF_ACCEPT_RA_MTU,
168173 DEVCONF_MAX
169174 };
170175
include/uapi/linux/l2tp.h+1−0
@@ -178,5 +178,6 @@ enum l2tp_seqmode { · 177 unmodified lines
178178 */
179179 #define L2TP_GENL_NAME "l2tp"
180180 #define L2TP_GENL_VERSION 0x1
181+#define L2TP_GENL_MCGROUP "l2tp"
181182
182183 #endif /* _UAPI_LINUX_L2TP_H_ */
include/uapi/linux/libc-compat.h+6−0
@@ -70,6 +70,8 @@ · 69 unmodified lines
7070 #define __UAPI_DEF_IPV6_MREQ 0
7171 #define __UAPI_DEF_IPPROTO_V6 0
7272 #define __UAPI_DEF_IPV6_OPTIONS 0
73+#define __UAPI_DEF_IN6_PKTINFO 0
74+#define __UAPI_DEF_IP6_MTUINFO 0
7375
7476 #else
7577
@@ -84,6 +86,8 @@ · 8 unmodified lines
8486 #define __UAPI_DEF_IPV6_MREQ 1
8587 #define __UAPI_DEF_IPPROTO_V6 1
8688 #define __UAPI_DEF_IPV6_OPTIONS 1
89+#define __UAPI_DEF_IN6_PKTINFO 1
90+#define __UAPI_DEF_IP6_MTUINFO 1
8791
8892 #endif /* _NETINET_IN_H */
8993
@@ -106,6 +110,8 @@ · 16 unmodified lines
106110 #define __UAPI_DEF_IPV6_MREQ 1
107111 #define __UAPI_DEF_IPPROTO_V6 1
108112 #define __UAPI_DEF_IPV6_OPTIONS 1
113+#define __UAPI_DEF_IN6_PKTINFO 1
114+#define __UAPI_DEF_IP6_MTUINFO 1
109115
110116 /* Definitions for xattr.h */
111117 #define __UAPI_DEF_XATTR 1
include/uapi/linux/neighbour.h+1−0
@@ -25,6 +25,7 @@ enum { · 24 unmodified lines
2525 NDA_VNI,
2626 NDA_IFINDEX,
2727 NDA_MASTER,
28+ NDA_LINK_NETNSID,
2829 __NDA_MAX
2930 };
3031
include/uapi/linux/net_namespace.h+23−0
@@ -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_ */
include/uapi/linux/net_tstamp.h+2−1
@@ -24,8 +24,9 @@ enum { · 23 unmodified lines
2424 SOF_TIMESTAMPING_TX_SCHED = (1<<8),
2525 SOF_TIMESTAMPING_TX_ACK = (1<<9),
2626 SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
27+ SOF_TIMESTAMPING_OPT_TSONLY = (1<<11),
2728
28− SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_CMSG,
29+ SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TSONLY,
2930 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
3031 SOF_TIMESTAMPING_LAST
3132 };
include/uapi/linux/nfc.h+1−0
@@ -183,6 +183,7 @@ enum nfc_attrs { · 182 unmodified lines
183183 NFC_ATTR_SE_APDU,
184184 NFC_ATTR_TARGET_ISO15693_DSFID,
185185 NFC_ATTR_TARGET_ISO15693_UID,
186+ NFC_ATTR_SE_PARAMS,
186187 /* private: internal use only */
187188 __NFC_ATTR_AFTER_LAST
188189 };
include/uapi/linux/nl80211.h+176−31
@@ -29,6 +29,13 @@ · 28 unmodified lines
2929
3030 #define NL80211_GENL_NAME "nl80211"
3131
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+
3239 /**
3340 * DOC: Station handling
3441 *
@@ -173,8 +180,8 @@ · 138 unmodified lines
173180 * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
174181 *
175182 * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration;
176− * either a dump request on a %NL80211_ATTR_WIPHY or a specific get
177− * on an %NL80211_ATTR_IFINDEX is supported.
183+ * either a dump request for all interfaces or a specific get with a
184+ * single %NL80211_ATTR_IFINDEX is supported.
178185 * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires
179186 * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
180187 * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response
@@ -252,7 +259,18 @@ · 71 unmodified lines
252259 * %NL80211_ATTR_IFINDEX.
253260 *
254261 * @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.
256274 * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command
257275 * after being queried by the kernel. CRDA replies by sending a regulatory
258276 * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
@@ -306,7 +324,9 @@ · 47 unmodified lines
306324 * if passed, define which channels should be scanned; if not
307325 * passed, all channels allowed for the current regulatory domain
308326 * 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.
310330 * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if
311331 * scheduled scan is not running. The caller may assume that as soon
312332 * as the call returns, it is safe to start a new scheduled scan again.
@@ -774,6 +794,10 @@ · 461 unmodified lines
774794 * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel
775795 * when this command completes.
776796 *
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+ *
777801 * @NL80211_CMD_MAX: highest used command number
778802 * @__NL80211_CMD_AFTER_LAST: internal use
779803 */
@@ -958,6 +982,8 @@ enum nl80211_commands { · 178 unmodified lines
958982 NL80211_CMD_TDLS_CHANNEL_SWITCH,
959983 NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
960984
985+ NL80211_CMD_WIPHY_REG_CHANGE,
986+
961987 /* add new commands above here */
962988
963989 /* used to define NL80211_CMD_MAX below */
@@ -1655,6 +1681,9 @@ enum nl80211_commands { · 691 unmodified lines
16551681 * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface
16561682 * creation then the new interface will be owned by the netlink socket
16571683 * 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.
16581687 *
16591688 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
16601689 * the TDLS link initiator.
@@ -1688,6 +1717,29 @@ enum nl80211_commands { · 27 unmodified lines
16881717 *
16891718 * @NL80211_ATTR_MAC_MASK: MAC address mask
16901719 *
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+ *
16911743 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
16921744 * @NL80211_ATTR_MAX: highest attribute number currently defined
16931745 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2045,6 +2097,16 @@ enum nl80211_attrs { · 351 unmodified lines
20452097
20462098 NL80211_ATTR_MAC_MASK,
20472099
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+
20482110 /* add attributes here, update the policy in nl80211.c */
20492111
20502112 __NL80211_ATTR_AFTER_LAST,
@@ -2085,7 +2147,7 @@ enum nl80211_attrs { · 34 unmodified lines
20852147
20862148 #define NL80211_MAX_SUPP_RATES 32
20872149 #define NL80211_MAX_SUPP_HT_RATES 77
2088−#define NL80211_MAX_SUPP_REG_RULES 32
2150+#define NL80211_MAX_SUPP_REG_RULES 64
20892151 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
20902152 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
20912153 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
@@ -2225,8 +2287,15 @@ struct nl80211_sta_flag_update { · 133 unmodified lines
22252287 * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8)
22262288 * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8)
22272289 * @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
22292292 * @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
22302299 * @__NL80211_RATE_INFO_AFTER_LAST: internal use
22312300 */
22322301 enum nl80211_rate_info {
@@ -2241,6 +2310,8 @@ enum nl80211_rate_info { · 8 unmodified lines
22412310 NL80211_RATE_INFO_80_MHZ_WIDTH,
22422311 NL80211_RATE_INFO_80P80_MHZ_WIDTH,
22432312 NL80211_RATE_INFO_160_MHZ_WIDTH,
2313+ NL80211_RATE_INFO_10_MHZ_WIDTH,
2314+ NL80211_RATE_INFO_5_MHZ_WIDTH,
22442315
22452316 /* keep last */
22462317 __NL80211_RATE_INFO_AFTER_LAST,
@@ -2285,18 +2356,24 @@ enum nl80211_sta_bss_param { · 38 unmodified lines
22852356 *
22862357 * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved
22872358 * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
2288− * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
2289− * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
2290− * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station)
2291− * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station)
2359+ * @NL80211_STA_INFO_RX_BYTES: total received bytes (MPDU length)
2360+ * (u32, from this station)
2361+ * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (MPDU length)
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)
22922367 * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm)
22932368 * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute
22942369 * containing info as possible, see &enum nl80211_rate_info
2295− * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
2296− * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
2297− * station)
2298− * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station)
2299− * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station)
2370+ * @NL80211_STA_INFO_RX_PACKETS: total received packet (MSDUs and MMPDUs)
2371+ * (u32, from this station)
2372+ * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (MSDUs and MMPDUs)
2373+ * (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)
23002377 * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm)
23012378 * @NL80211_STA_INFO_LLID: the station's mesh LLID
23022379 * @NL80211_STA_INFO_PLID: the station's mesh PLID
@@ -2320,6 +2397,16 @@ enum nl80211_sta_bss_param { · 17 unmodified lines
23202397 * Same format as NL80211_STA_INFO_CHAIN_SIGNAL.
23212398 * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the
23222399 * 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.
23232410 * @__NL80211_STA_INFO_AFTER_LAST: internal
23242411 * @NL80211_STA_INFO_MAX: highest possible station info attribute
23252412 */
@@ -2352,12 +2439,41 @@ enum nl80211_sta_info { · 26 unmodified lines
23522439 NL80211_STA_INFO_CHAIN_SIGNAL,
23532440 NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
23542441 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,
23552446
23562447 /* keep last */
23572448 __NL80211_STA_INFO_AFTER_LAST,
23582449 NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
23592450 };
23602451
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+
23612477 /**
23622478 * enum nl80211_mpath_flags - nl80211 mesh path flags
23632479 *
@@ -2772,16 +2888,18 @@ enum nl80211_user_reg_hint_type { · 408 unmodified lines
27722888 * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
27732889 * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
27742890 * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
2775− * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio
2776− * spent on this channel
2777− * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary
2891+ * @NL80211_SURVEY_INFO_TIME: amount of time (in ms) that the radio
2892+ * was turned on (on channel or globally)
2893+ * @NL80211_SURVEY_INFO_TIME_BUSY: amount of the time the primary
27782894 * 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
27802896 * channel was sensed busy
2781− * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent
2782− * receiving data
2783− * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent
2784− * transmitting data
2897+ * @NL80211_SURVEY_INFO_TIME_RX: amount of time the radio spent
2898+ * receiving data (on channel or globally)
2899+ * @NL80211_SURVEY_INFO_TIME_TX: amount of time the radio spent
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)
27852903 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
27862904 * currently defined
27872905 * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
@@ -2791,17 +2909,25 @@ enum nl80211_survey_info { · 3 unmodified lines
27912909 NL80211_SURVEY_INFO_FREQUENCY,
27922910 NL80211_SURVEY_INFO_NOISE,
27932911 NL80211_SURVEY_INFO_IN_USE,
2794− NL80211_SURVEY_INFO_CHANNEL_TIME,
2795− NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
2796− NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
2797− NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
2798− NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
2912+ NL80211_SURVEY_INFO_TIME,
2913+ NL80211_SURVEY_INFO_TIME_BUSY,
2914+ NL80211_SURVEY_INFO_TIME_EXT_BUSY,
2915+ NL80211_SURVEY_INFO_TIME_RX,
2916+ NL80211_SURVEY_INFO_TIME_TX,
2917+ NL80211_SURVEY_INFO_TIME_SCAN,
27992918
28002919 /* keep last */
28012920 __NL80211_SURVEY_INFO_AFTER_LAST,
28022921 NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
28032922 };
28042923
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+
28052931 /**
28062932 * enum nl80211_mntr_flags - monitor configuration flags
28072933 *
@@ -3238,6 +3364,9 @@ enum nl80211_bss { · 430 unmodified lines
32383364 /**
32393365 * enum nl80211_bss_status - BSS "status"
32403366 * @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.
32413370 * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS.
32423371 * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS.
32433372 *
@@ -3621,9 +3750,12 @@ struct nl80211_pattern_support { · 377 unmodified lines
36213750 * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network
36223751 * is detected. This is a nested attribute that contains the
36233752 * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It
3624− * specifies how the scan is performed (e.g. the interval and the
3625− * channels to scan) as well as the scan results that will
3626− * trigger a wake (i.e. the matchsets).
3753+ * specifies how the scan is performed (e.g. the interval, the
3754+ * channels to scan and the initial delay) as well as the scan
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).
36273759 * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute
36283760 * containing an array with information about what triggered the
36293761 * wake up. If no elements are present in the array, it means
@@ -4193,6 +4325,19 @@ enum nl80211_feature_flags { · 563 unmodified lines
41934325 NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
41944326 };
41954327
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+
41964341 /**
41974342 * enum nl80211_probe_resp_offload_support_attr - optional supported
41984343 * protocols for probe-response offloading by the driver/FW.
include/uapi/linux/openvswitch.h+52−1
@@ -252,11 +252,21 @@ enum ovs_vport_attr { · 251 unmodified lines
252252
253253 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
254254
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+
255264 /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels.
256265 */
257266 enum {
258267 OVS_TUNNEL_ATTR_UNSPEC,
259268 OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */
269+ OVS_TUNNEL_ATTR_EXTENSION,
260270 __OVS_TUNNEL_ATTR_MAX
261271 };
262272
@@ -328,6 +338,7 @@ enum ovs_tunnel_key_attr { · 65 unmodified lines
328338 OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */
329339 OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */
330340 OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */
341+ OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested OVS_VXLAN_EXT_* */
331342 __OVS_TUNNEL_KEY_ATTR_MAX
332343 };
333344
@@ -448,6 +459,14 @@ struct ovs_key_nd { · 114 unmodified lines
448459 * a wildcarded match. Omitting attribute is treated as wildcarding all
449460 * corresponding fields. Optional for all requests. If not present,
450461 * 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.
451470 *
452471 * These attributes follow the &struct ovs_header within the Generic Netlink
453472 * payload for %OVS_FLOW_* commands.
@@ -463,11 +482,23 @@ enum ovs_flow_attr { · 9 unmodified lines
463482 OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
464483 OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error
465484 * 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_*. */
466487 __OVS_FLOW_ATTR_MAX
467488 };
468489
469490 #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
470491
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+
471502 /**
472503 * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action.
473504 * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with
@@ -568,6 +599,12 @@ struct ovs_action_hash { · 94 unmodified lines
568599 * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The
569600 * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its
570601 * 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.
571608 * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the
572609 * packet.
573610 * @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
586623 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
587624 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
588625 * 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.
589629 */
590630
591631 enum ovs_action_attr {
@@ -600,8 +640,19 @@ enum ovs_action_attr { · 8 unmodified lines
600640 OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */
601641 OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */
602642 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. */
603647
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
605656 };
606657
607658 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
include/uapi/linux/pkt_sched.h+2−0
@@ -774,6 +774,8 @@ enum { · 773 unmodified lines
774774
775775 TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */
776776
777+ TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */
778+
777779 __TCA_FQ_MAX
778780 };
779781
include/uapi/linux/rtnetlink.h+8−0
@@ -132,6 +132,11 @@ enum { · 131 unmodified lines
132132 RTM_GETMDB = 86,
133133 #define RTM_GETMDB RTM_GETMDB
134134
135+ RTM_NEWNSID = 88,
136+#define RTM_NEWNSID RTM_NEWNSID
137+ RTM_GETNSID = 90,
138+#define RTM_GETNSID RTM_GETNSID
139+
135140 __RTM_MAX,
136141 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
137142 };
@@ -389,6 +394,8 @@ enum { · 251 unmodified lines
389394 #define RTAX_INITRWND RTAX_INITRWND
390395 RTAX_QUICKACK,
391396 #define RTAX_QUICKACK RTAX_QUICKACK
397+ RTAX_CC_ALGO,
398+#define RTAX_CC_ALGO RTAX_CC_ALGO
392399 __RTAX_MAX
393400 };
394401
@@ -634,6 +641,7 @@ struct tcamsg { · 239 unmodified lines
634641 /* New extended info filters for IFLA_EXT_MASK */
635642 #define RTEXT_FILTER_VF (1 << 0)
636643 #define RTEXT_FILTER_BRVLAN (1 << 1)
644+#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
637645
638646 /* End of information exported to user level */
639647
include/uapi/linux/snmp.h+6−0
@@ -270,6 +270,12 @@ enum · 269 unmodified lines
270270 LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */
271271 LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */
272272 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 */
273279 __LINUX_MIB_MAX
274280 };
275281
include/uapi/linux/tc_act/Kbuild+1−0
@@ -8,3 +8,4 @@ header-y += tc_nat.h · 7 unmodified lines
88 header-y += tc_pedit.h
99 header-y += tc_skbedit.h
1010 header-y += tc_vlan.h
11+header-y += tc_bpf.h
include/uapi/linux/tc_act/tc_bpf.h+31−0
@@ -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
include/uapi/linux/tc_act/tc_connmark.h+22−0
@@ -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
include/uapi/linux/tipc_config.h+20−0
@@ -272,6 +272,26 @@ static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type) · 271 unmodified lines
272272 (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type);
273273 }
274274
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+
275295 static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len)
276296 {
277297 struct tlv_desc *tlv_ptr;