Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking changes from David Miller: "Noteworthy changes this time around: 1) Multicast rejoin support for team driver, from Jiri Pirko. 2) Centralize and simplify TCP RTT measurement handling in order to reduce the impact of bad RTO seeding from SYN/ACKs. Also, when both timestamps and local RTT measurements are available prefer the later because there are broken middleware devices which scramble the timestamp. From Yuchung Cheng. 3) Add TCP_NOTSENT_LOWAT socket option to limit the amount of kernel memory consumed to queue up unsend user data. From Eric Dumazet. 4) Add a "physical port ID" abstraction for network devices, from Jiri Pirko. 5) Add a "suppress" operation to influence fib_rules lookups, from Stefan Tomanek. 6) Add a networking development FAQ, from Paul Gortmaker. 7) Extend the information provided by tcp_probe and add ipv6 support, from Daniel Borkmann. 8) Use RCU locking more extensively in openvswitch data paths, from Pravin B Shelar. 9) Add SCTP support to openvswitch, from Joe Stringer. 10) Add EF10 chip support to SFC driver, from Ben Hutchings. 11) Add new SYNPROXY netfilter target, from Patrick McHardy. 12) Compute a rate approximation for sending in TCP sockets, and use this to more intelligently coalesce TSO frames. Furthermore, add a new packet scheduler which takes advantage of this estimate when available. From Eric Dumazet. 13) Allow AF_PACKET fanouts with random selection, from Daniel Borkmann. 14) Add ipv6 support to vxlan driver, from Cong Wang" Resolved conflicts as per discussion. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1218 commits) openvswitch: Fix alignment of struct sw_flow_key. netfilter: Fix build errors with xt_socket.c tcp: Add missing braces to do_tcp_setsockopt caif: Add missing braces to multiline if in cfctrl_linkup_request bnx2x: Add missing braces in bnx2x:bnx2x_link_initialize vxlan: Fix kernel panic on device delete. net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls net: mvneta: properly disable HW PHY polling and ensure adjust_link() works icplus: Use netif_running to determine device state ethernet/arc/arc_emac: Fix huge delays in large file copies tuntap: orphan frags before trying to set tx timestamp tuntap: purge socket error queue on detach qlcnic: use standard NAPI weights ipv6:introduce function to find route for redirect bnx2x: VF RSS support - VF side bnx2x: VF RSS support - PF side vxlan: Notify drivers for listening UDP port changes net: usbnet: update addr_assign_type if appropriate driver/net: enic: update enic maintainers and driver driver/net: enic: Exposing symbols for Cisco's low latency driver ...
This commit is contained in:
@@ -227,6 +227,7 @@ header-y += kvm_para.h
|
||||
endif
|
||||
|
||||
header-y += l2tp.h
|
||||
header-y += libc-compat.h
|
||||
header-y += limits.h
|
||||
header-y += llc.h
|
||||
header-y += loop.h
|
||||
|
@@ -45,6 +45,7 @@ enum {
|
||||
CGW_DST_IF, /* ifindex of destination network interface */
|
||||
CGW_FILTER, /* specify struct can_filter on source CAN device */
|
||||
CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */
|
||||
CGW_LIM_HOPS, /* limit the number of hops of this specific rule */
|
||||
__CGW_MAX
|
||||
};
|
||||
|
||||
@@ -116,13 +117,19 @@ enum {
|
||||
* Sets a CAN receive filter for the gateway job specified by the
|
||||
* struct can_filter described in include/linux/can.h
|
||||
*
|
||||
* CGW_MOD_XXX (length 17 bytes):
|
||||
* CGW_MOD_(AND|OR|XOR|SET) (length 17 bytes):
|
||||
* Specifies a modification that's done to a received CAN frame before it is
|
||||
* send out to the destination interface.
|
||||
*
|
||||
* <struct can_frame> data used as operator
|
||||
* <u8> affected CAN frame elements
|
||||
*
|
||||
* CGW_LIM_HOPS (length 1 byte):
|
||||
* Limit the number of hops of this specific rule. Usually the received CAN
|
||||
* frame can be processed as much as 'max_hops' times (which is given at module
|
||||
* load time of the can-gw module). This value is used to reduce the number of
|
||||
* possible hops for this gateway rule to a value smaller then max_hops.
|
||||
*
|
||||
* CGW_CS_XOR (length 4 bytes):
|
||||
* Set a simple XOR checksum starting with an initial value into
|
||||
* data[result-idx] using data[start-idx] .. data[end-idx]
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#define _LINUX_DN_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
/*
|
||||
|
||||
@@ -120,7 +121,7 @@ struct linkinfo_dn {
|
||||
* Ethernet address format (for DECnet)
|
||||
*/
|
||||
union etheraddress {
|
||||
__u8 dne_addr[6]; /* Full ethernet address */
|
||||
__u8 dne_addr[ETH_ALEN]; /* Full ethernet address */
|
||||
struct {
|
||||
__u8 dne_hiord[4]; /* DECnet HIORD prefix */
|
||||
__u8 dne_nodeaddr[2]; /* DECnet node address */
|
||||
|
@@ -44,8 +44,8 @@ enum {
|
||||
FRA_FWMARK, /* mark */
|
||||
FRA_FLOW, /* flow/class id */
|
||||
FRA_UNUSED6,
|
||||
FRA_UNUSED7,
|
||||
FRA_UNUSED8,
|
||||
FRA_SUPPRESS_IFGROUP,
|
||||
FRA_SUPPRESS_PREFIXLEN,
|
||||
FRA_TABLE, /* Extended table id */
|
||||
FRA_FWMASK, /* mask for netfilter mark */
|
||||
FRA_OIFNAME,
|
||||
|
@@ -115,6 +115,8 @@ struct icmp6hdr {
|
||||
#define ICMPV6_NOT_NEIGHBOUR 2
|
||||
#define ICMPV6_ADDR_UNREACH 3
|
||||
#define ICMPV6_PORT_UNREACH 4
|
||||
#define ICMPV6_POLICY_FAIL 5
|
||||
#define ICMPV6_REJECT_ROUTE 6
|
||||
|
||||
/*
|
||||
* Codes for Time Exceeded
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#define _UAPI_LINUX_IF_BRIDGE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
#define SYSFS_BRIDGE_ATTR "bridge"
|
||||
#define SYSFS_BRIDGE_FDB "brforward"
|
||||
@@ -88,7 +89,7 @@ struct __port_info {
|
||||
};
|
||||
|
||||
struct __fdb_entry {
|
||||
__u8 mac_addr[6];
|
||||
__u8 mac_addr[ETH_ALEN];
|
||||
__u8 port_no;
|
||||
__u8 is_local;
|
||||
__u32 ageing_timer_value;
|
||||
|
@@ -143,6 +143,7 @@ enum {
|
||||
IFLA_NUM_TX_QUEUES,
|
||||
IFLA_NUM_RX_QUEUES,
|
||||
IFLA_CARRIER,
|
||||
IFLA_PHYS_PORT_ID,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -313,6 +314,8 @@ enum {
|
||||
IFLA_VXLAN_L2MISS,
|
||||
IFLA_VXLAN_L3MISS,
|
||||
IFLA_VXLAN_PORT, /* destination port */
|
||||
IFLA_VXLAN_GROUP6,
|
||||
IFLA_VXLAN_LOCAL6,
|
||||
__IFLA_VXLAN_MAX
|
||||
};
|
||||
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
||||
|
@@ -56,6 +56,7 @@ struct sockaddr_ll {
|
||||
#define PACKET_FANOUT_LB 1
|
||||
#define PACKET_FANOUT_CPU 2
|
||||
#define PACKET_FANOUT_ROLLOVER 3
|
||||
#define PACKET_FANOUT_RND 4
|
||||
#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
|
||||
#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
|
||||
|
||||
|
@@ -46,7 +46,7 @@ struct pppoe_addr {
|
||||
* PPTP addressing definition
|
||||
*/
|
||||
struct pptp_addr {
|
||||
__be16 call_id;
|
||||
__u16 call_id;
|
||||
struct in_addr sin_addr;
|
||||
};
|
||||
|
||||
|
@@ -56,6 +56,8 @@
|
||||
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
|
||||
#define TUNSETVNETHDRSZ _IOW('T', 216, int)
|
||||
#define TUNSETQUEUE _IOW('T', 217, int)
|
||||
#define TUNSETIFINDEX _IOW('T', 218, unsigned int)
|
||||
#define TUNGETFILTER _IOR('T', 219, struct sock_fprog)
|
||||
|
||||
/* TUNSETIFF ifr flags */
|
||||
#define IFF_TUN 0x0001
|
||||
@@ -70,6 +72,10 @@
|
||||
#define IFF_DETACH_QUEUE 0x0400
|
||||
/* read-only flag */
|
||||
#define IFF_PERSIST 0x0800
|
||||
#define IFF_NOFILTER 0x1000
|
||||
|
||||
/* Socket options */
|
||||
#define TUN_TX_TIMESTAMP 1
|
||||
|
||||
/* Features for GSO (TUNSETOFFLOAD). */
|
||||
#define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
|
||||
|
@@ -24,30 +24,53 @@
|
||||
/* Standard well-defined IP protocols. */
|
||||
enum {
|
||||
IPPROTO_IP = 0, /* Dummy protocol for TCP */
|
||||
#define IPPROTO_IP IPPROTO_IP
|
||||
IPPROTO_ICMP = 1, /* Internet Control Message Protocol */
|
||||
#define IPPROTO_ICMP IPPROTO_ICMP
|
||||
IPPROTO_IGMP = 2, /* Internet Group Management Protocol */
|
||||
#define IPPROTO_IGMP IPPROTO_IGMP
|
||||
IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */
|
||||
#define IPPROTO_IPIP IPPROTO_IPIP
|
||||
IPPROTO_TCP = 6, /* Transmission Control Protocol */
|
||||
#define IPPROTO_TCP IPPROTO_TCP
|
||||
IPPROTO_EGP = 8, /* Exterior Gateway Protocol */
|
||||
#define IPPROTO_EGP IPPROTO_EGP
|
||||
IPPROTO_PUP = 12, /* PUP protocol */
|
||||
#define IPPROTO_PUP IPPROTO_PUP
|
||||
IPPROTO_UDP = 17, /* User Datagram Protocol */
|
||||
#define IPPROTO_UDP IPPROTO_UDP
|
||||
IPPROTO_IDP = 22, /* XNS IDP protocol */
|
||||
#define IPPROTO_IDP IPPROTO_IDP
|
||||
IPPROTO_TP = 29, /* SO Transport Protocol Class 4 */
|
||||
#define IPPROTO_TP IPPROTO_TP
|
||||
IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */
|
||||
IPPROTO_RSVP = 46, /* RSVP protocol */
|
||||
#define IPPROTO_DCCP IPPROTO_DCCP
|
||||
IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */
|
||||
#define IPPROTO_IPV6 IPPROTO_IPV6
|
||||
IPPROTO_RSVP = 46, /* RSVP Protocol */
|
||||
#define IPPROTO_RSVP IPPROTO_RSVP
|
||||
IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */
|
||||
|
||||
IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */
|
||||
|
||||
IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */
|
||||
IPPROTO_AH = 51, /* Authentication Header protocol */
|
||||
IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */
|
||||
IPPROTO_PIM = 103, /* Protocol Independent Multicast */
|
||||
|
||||
IPPROTO_COMP = 108, /* Compression Header protocol */
|
||||
IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
|
||||
#define IPPROTO_GRE IPPROTO_GRE
|
||||
IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */
|
||||
#define IPPROTO_ESP IPPROTO_ESP
|
||||
IPPROTO_AH = 51, /* Authentication Header protocol */
|
||||
#define IPPROTO_AH IPPROTO_AH
|
||||
IPPROTO_MTP = 92, /* Multicast Transport Protocol */
|
||||
#define IPPROTO_MTP IPPROTO_MTP
|
||||
IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */
|
||||
#define IPPROTO_BEETPH IPPROTO_BEETPH
|
||||
IPPROTO_ENCAP = 98, /* Encapsulation Header */
|
||||
#define IPPROTO_ENCAP IPPROTO_ENCAP
|
||||
IPPROTO_PIM = 103, /* Protocol Independent Multicast */
|
||||
#define IPPROTO_PIM IPPROTO_PIM
|
||||
IPPROTO_COMP = 108, /* Compression Header Protocol */
|
||||
#define IPPROTO_COMP IPPROTO_COMP
|
||||
IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
|
||||
#define IPPROTO_SCTP IPPROTO_SCTP
|
||||
IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
|
||||
|
||||
IPPROTO_RAW = 255, /* Raw IP packets */
|
||||
#define IPPROTO_UDPLITE IPPROTO_UDPLITE
|
||||
IPPROTO_RAW = 255, /* Raw IP packets */
|
||||
#define IPPROTO_RAW IPPROTO_RAW
|
||||
IPPROTO_MAX
|
||||
};
|
||||
|
||||
|
@@ -22,22 +22,30 @@
|
||||
#define _UAPI_LINUX_IN6_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/libc-compat.h>
|
||||
|
||||
/*
|
||||
* IPv6 address structure
|
||||
*/
|
||||
|
||||
#if __UAPI_DEF_IN6_ADDR
|
||||
struct in6_addr {
|
||||
union {
|
||||
__u8 u6_addr8[16];
|
||||
#if __UAPI_DEF_IN6_ADDR_ALT
|
||||
__be16 u6_addr16[8];
|
||||
__be32 u6_addr32[4];
|
||||
#endif
|
||||
} in6_u;
|
||||
#define s6_addr in6_u.u6_addr8
|
||||
#if __UAPI_DEF_IN6_ADDR_ALT
|
||||
#define s6_addr16 in6_u.u6_addr16
|
||||
#define s6_addr32 in6_u.u6_addr32
|
||||
#endif
|
||||
};
|
||||
#endif /* __UAPI_DEF_IN6_ADDR */
|
||||
|
||||
#if __UAPI_DEF_SOCKADDR_IN6
|
||||
struct sockaddr_in6 {
|
||||
unsigned short int sin6_family; /* AF_INET6 */
|
||||
__be16 sin6_port; /* Transport layer port # */
|
||||
@@ -45,7 +53,9 @@ struct sockaddr_in6 {
|
||||
struct in6_addr sin6_addr; /* IPv6 address */
|
||||
__u32 sin6_scope_id; /* scope id (new in RFC2553) */
|
||||
};
|
||||
#endif /* __UAPI_DEF_SOCKADDR_IN6 */
|
||||
|
||||
#if __UAPI_DEF_IPV6_MREQ
|
||||
struct ipv6_mreq {
|
||||
/* IPv6 multicast address of group */
|
||||
struct in6_addr ipv6mr_multiaddr;
|
||||
@@ -53,6 +63,7 @@ struct ipv6_mreq {
|
||||
/* local IPv6 address of interface */
|
||||
int ipv6mr_ifindex;
|
||||
};
|
||||
#endif /* __UAPI_DEF_IVP6_MREQ */
|
||||
|
||||
#define ipv6mr_acaddr ipv6mr_multiaddr
|
||||
|
||||
@@ -114,13 +125,24 @@ struct in6_flowlabel_req {
|
||||
/*
|
||||
* IPV6 extension headers
|
||||
*/
|
||||
#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
|
||||
#define IPPROTO_ROUTING 43 /* IPv6 routing header */
|
||||
#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
|
||||
#define IPPROTO_ICMPV6 58 /* ICMPv6 */
|
||||
#define IPPROTO_NONE 59 /* IPv6 no next header */
|
||||
#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
|
||||
#define IPPROTO_MH 135 /* IPv6 mobility header */
|
||||
#if __UAPI_DEF_IPPROTO_V6
|
||||
enum {
|
||||
IPPROTO_HOPOPTS = 0, /* IPv6 hop-by-hop options */
|
||||
#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
|
||||
IPPROTO_ROUTING = 43, /* IPv6 routing header */
|
||||
#define IPPROTO_ROUTING IPPROTO_ROUTING
|
||||
IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header */
|
||||
#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
|
||||
IPPROTO_ICMPV6 = 58, /* ICMPv6 */
|
||||
#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
|
||||
IPPROTO_NONE = 59, /* IPv6 no next header */
|
||||
#define IPPROTO_NONE IPPROTO_NONE
|
||||
IPPROTO_DSTOPTS = 60, /* IPv6 destination options */
|
||||
#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
|
||||
IPPROTO_MH = 135, /* IPv6 mobility header */
|
||||
#define IPPROTO_MH IPPROTO_MH
|
||||
};
|
||||
#endif /* __UAPI_DEF_IPPROTO_V6 */
|
||||
|
||||
/*
|
||||
* IPv6 TLV options.
|
||||
|
@@ -162,6 +162,8 @@ enum
|
||||
IPV4_DEVCONF_SRC_VMARK,
|
||||
IPV4_DEVCONF_PROXY_ARP_PVLAN,
|
||||
IPV4_DEVCONF_ROUTE_LOCALNET,
|
||||
IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL,
|
||||
IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL,
|
||||
__IPV4_DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
@@ -160,6 +160,9 @@ enum {
|
||||
DEVCONF_ACCEPT_DAD,
|
||||
DEVCONF_FORCE_TLLAO,
|
||||
DEVCONF_NDISC_NOTIFY,
|
||||
DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL,
|
||||
DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL,
|
||||
DEVCONF_SUPPRESS_FRAG_NDISC,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
103
include/uapi/linux/libc-compat.h
Normal file
103
include/uapi/linux/libc-compat.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Compatibility interface for userspace libc header coordination:
|
||||
*
|
||||
* Define compatibility macros that are used to control the inclusion or
|
||||
* exclusion of UAPI structures and definitions in coordination with another
|
||||
* userspace C library.
|
||||
*
|
||||
* This header is intended to solve the problem of UAPI definitions that
|
||||
* conflict with userspace definitions. If a UAPI header has such conflicting
|
||||
* definitions then the solution is as follows:
|
||||
*
|
||||
* * Synchronize the UAPI header and the libc headers so either one can be
|
||||
* used and such that the ABI is preserved. If this is not possible then
|
||||
* no simple compatibility interface exists (you need to write translating
|
||||
* wrappers and rename things) and you can't use this interface.
|
||||
*
|
||||
* Then follow this process:
|
||||
*
|
||||
* (a) Include libc-compat.h in the UAPI header.
|
||||
* e.g. #include <linux/libc-compat.h>
|
||||
* This include must be as early as possible.
|
||||
*
|
||||
* (b) In libc-compat.h add enough code to detect that the comflicting
|
||||
* userspace libc header has been included first.
|
||||
*
|
||||
* (c) If the userspace libc header has been included first define a set of
|
||||
* guard macros of the form __UAPI_DEF_FOO and set their values to 1, else
|
||||
* set their values to 0.
|
||||
*
|
||||
* (d) Back in the UAPI header with the conflicting definitions, guard the
|
||||
* definitions with:
|
||||
* #if __UAPI_DEF_FOO
|
||||
* ...
|
||||
* #endif
|
||||
*
|
||||
* This fixes the situation where the linux headers are included *after* the
|
||||
* libc headers. To fix the problem with the inclusion in the other order the
|
||||
* userspace libc headers must be fixed like this:
|
||||
*
|
||||
* * For all definitions that conflict with kernel definitions wrap those
|
||||
* defines in the following:
|
||||
* #if !__UAPI_DEF_FOO
|
||||
* ...
|
||||
* #endif
|
||||
*
|
||||
* This prevents the redefinition of a construct already defined by the kernel.
|
||||
*/
|
||||
#ifndef _UAPI_LIBC_COMPAT_H
|
||||
#define _UAPI_LIBC_COMPAT_H
|
||||
|
||||
/* We have included glibc headers... */
|
||||
#if defined(__GLIBC__)
|
||||
|
||||
/* Coordinate with glibc netinet/in.h header. */
|
||||
#if defined(_NETINET_IN_H)
|
||||
|
||||
/* GLIBC headers included first so don't define anything
|
||||
* that would already be defined. */
|
||||
#define __UAPI_DEF_IN6_ADDR 0
|
||||
/* The exception is the in6_addr macros which must be defined
|
||||
* if the glibc code didn't define them. This guard matches
|
||||
* the guard in glibc/inet/netinet/in.h which defines the
|
||||
* additional in6_addr macros e.g. s6_addr16, and s6_addr32. */
|
||||
#if defined(__USE_MISC) || defined (__USE_GNU)
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 0
|
||||
#else
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
#endif
|
||||
#define __UAPI_DEF_SOCKADDR_IN6 0
|
||||
#define __UAPI_DEF_IPV6_MREQ 0
|
||||
#define __UAPI_DEF_IPPROTO_V6 0
|
||||
|
||||
#else
|
||||
|
||||
/* Linux headers included first, and we must define everything
|
||||
* we need. The expectation is that glibc will check the
|
||||
* __UAPI_DEF_* defines and adjust appropriately. */
|
||||
#define __UAPI_DEF_IN6_ADDR 1
|
||||
/* We unconditionally define the in6_addr macros and glibc must
|
||||
* coordinate. */
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
#define __UAPI_DEF_SOCKADDR_IN6 1
|
||||
#define __UAPI_DEF_IPV6_MREQ 1
|
||||
#define __UAPI_DEF_IPPROTO_V6 1
|
||||
|
||||
#endif /* _NETINET_IN_H */
|
||||
|
||||
|
||||
/* If we did not see any headers from any supported C libraries,
|
||||
* or we are being included in the kernel, then define everything
|
||||
* that we need. */
|
||||
#else /* !defined(__GLIBC__) */
|
||||
|
||||
/* Definitions for in6.h */
|
||||
#define __UAPI_DEF_IN6_ADDR 1
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
#define __UAPI_DEF_SOCKADDR_IN6 1
|
||||
#define __UAPI_DEF_IPV6_MREQ 1
|
||||
#define __UAPI_DEF_IPPROTO_V6 1
|
||||
|
||||
#endif /* __GLIBC__ */
|
||||
|
||||
#endif /* _UAPI_LIBC_COMPAT_H */
|
@@ -22,6 +22,7 @@ header-y += xt_CONNMARK.h
|
||||
header-y += xt_CONNSECMARK.h
|
||||
header-y += xt_CT.h
|
||||
header-y += xt_DSCP.h
|
||||
header-y += xt_HMARK.h
|
||||
header-y += xt_IDLETIMER.h
|
||||
header-y += xt_LED.h
|
||||
header-y += xt_LOG.h
|
||||
@@ -68,6 +69,7 @@ header-y += xt_quota.h
|
||||
header-y += xt_rateest.h
|
||||
header-y += xt_realm.h
|
||||
header-y += xt_recent.h
|
||||
header-y += xt_rpfilter.h
|
||||
header-y += xt_sctp.h
|
||||
header-y += xt_set.h
|
||||
header-y += xt_socket.h
|
||||
|
@@ -99,7 +99,8 @@ enum ip_conntrack_events {
|
||||
IPCT_PROTOINFO, /* protocol information has changed */
|
||||
IPCT_HELPER, /* new helper has been set */
|
||||
IPCT_MARK, /* new mark has been set */
|
||||
IPCT_NATSEQADJ, /* NAT is doing sequence adjustment */
|
||||
IPCT_SEQADJ, /* sequence adjustment has changed */
|
||||
IPCT_NATSEQADJ = IPCT_SEQADJ,
|
||||
IPCT_SECMARK, /* new security mark has been set */
|
||||
IPCT_LABEL, /* new connlabel has been set */
|
||||
};
|
||||
|
@@ -42,8 +42,10 @@ enum ctattr_type {
|
||||
CTA_ID,
|
||||
CTA_NAT_DST,
|
||||
CTA_TUPLE_MASTER,
|
||||
CTA_NAT_SEQ_ADJ_ORIG,
|
||||
CTA_NAT_SEQ_ADJ_REPLY,
|
||||
CTA_SEQ_ADJ_ORIG,
|
||||
CTA_NAT_SEQ_ADJ_ORIG = CTA_SEQ_ADJ_ORIG,
|
||||
CTA_SEQ_ADJ_REPLY,
|
||||
CTA_NAT_SEQ_ADJ_REPLY = CTA_SEQ_ADJ_REPLY,
|
||||
CTA_SECMARK, /* obsolete */
|
||||
CTA_ZONE,
|
||||
CTA_SECCTX,
|
||||
@@ -165,6 +167,15 @@ enum ctattr_protonat {
|
||||
};
|
||||
#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
|
||||
|
||||
enum ctattr_seqadj {
|
||||
CTA_SEQADJ_UNSPEC,
|
||||
CTA_SEQADJ_CORRECTION_POS,
|
||||
CTA_SEQADJ_OFFSET_BEFORE,
|
||||
CTA_SEQADJ_OFFSET_AFTER,
|
||||
__CTA_SEQADJ_MAX
|
||||
};
|
||||
#define CTA_SEQADJ_MAX (__CTA_SEQADJ_MAX - 1)
|
||||
|
||||
enum ctattr_natseq {
|
||||
CTA_NAT_SEQ_UNSPEC,
|
||||
CTA_NAT_SEQ_CORRECTION_POS,
|
||||
|
@@ -46,6 +46,7 @@ enum nfqnl_attr_type {
|
||||
NFQA_CT_INFO, /* enum ip_conntrack_info */
|
||||
NFQA_CAP_LEN, /* __u32 length of captured packet */
|
||||
NFQA_SKB_INFO, /* __u32 skb meta information */
|
||||
NFQA_EXP, /* nf_conntrack_netlink.h */
|
||||
|
||||
__NFQA_MAX
|
||||
};
|
||||
|
50
include/uapi/linux/netfilter/xt_HMARK.h
Normal file
50
include/uapi/linux/netfilter/xt_HMARK.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#ifndef XT_HMARK_H_
|
||||
#define XT_HMARK_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
XT_HMARK_SADDR_MASK,
|
||||
XT_HMARK_DADDR_MASK,
|
||||
XT_HMARK_SPI,
|
||||
XT_HMARK_SPI_MASK,
|
||||
XT_HMARK_SPORT,
|
||||
XT_HMARK_DPORT,
|
||||
XT_HMARK_SPORT_MASK,
|
||||
XT_HMARK_DPORT_MASK,
|
||||
XT_HMARK_PROTO_MASK,
|
||||
XT_HMARK_RND,
|
||||
XT_HMARK_MODULUS,
|
||||
XT_HMARK_OFFSET,
|
||||
XT_HMARK_CT,
|
||||
XT_HMARK_METHOD_L3,
|
||||
XT_HMARK_METHOD_L3_4,
|
||||
};
|
||||
#define XT_HMARK_FLAG(flag) (1 << flag)
|
||||
|
||||
union hmark_ports {
|
||||
struct {
|
||||
__u16 src;
|
||||
__u16 dst;
|
||||
} p16;
|
||||
struct {
|
||||
__be16 src;
|
||||
__be16 dst;
|
||||
} b16;
|
||||
__u32 v32;
|
||||
__be32 b32;
|
||||
};
|
||||
|
||||
struct xt_hmark_info {
|
||||
union nf_inet_addr src_mask;
|
||||
union nf_inet_addr dst_mask;
|
||||
union hmark_ports port_mask;
|
||||
union hmark_ports port_set;
|
||||
__u32 flags;
|
||||
__u16 proto_mask;
|
||||
__u32 hashrnd;
|
||||
__u32 hmodulus;
|
||||
__u32 hoffset; /* Mark offset to start from */
|
||||
};
|
||||
|
||||
#endif /* XT_HMARK_H_ */
|
16
include/uapi/linux/netfilter/xt_SYNPROXY.h
Normal file
16
include/uapi/linux/netfilter/xt_SYNPROXY.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef _XT_SYNPROXY_H
|
||||
#define _XT_SYNPROXY_H
|
||||
|
||||
#define XT_SYNPROXY_OPT_MSS 0x01
|
||||
#define XT_SYNPROXY_OPT_WSCALE 0x02
|
||||
#define XT_SYNPROXY_OPT_SACK_PERM 0x04
|
||||
#define XT_SYNPROXY_OPT_TIMESTAMP 0x08
|
||||
#define XT_SYNPROXY_OPT_ECN 0x10
|
||||
|
||||
struct xt_synproxy_info {
|
||||
__u8 options;
|
||||
__u8 wscale;
|
||||
__u16 mss;
|
||||
};
|
||||
|
||||
#endif /* _XT_SYNPROXY_H */
|
23
include/uapi/linux/netfilter/xt_rpfilter.h
Normal file
23
include/uapi/linux/netfilter/xt_rpfilter.h
Normal file
@@ -0,0 +1,23 @@
|
||||
#ifndef _XT_RPATH_H
|
||||
#define _XT_RPATH_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
XT_RPFILTER_LOOSE = 1 << 0,
|
||||
XT_RPFILTER_VALID_MARK = 1 << 1,
|
||||
XT_RPFILTER_ACCEPT_LOCAL = 1 << 2,
|
||||
XT_RPFILTER_INVERT = 1 << 3,
|
||||
#ifdef __KERNEL__
|
||||
XT_RPFILTER_OPTION_MASK = XT_RPFILTER_LOOSE |
|
||||
XT_RPFILTER_VALID_MARK |
|
||||
XT_RPFILTER_ACCEPT_LOCAL |
|
||||
XT_RPFILTER_INVERT,
|
||||
#endif
|
||||
};
|
||||
|
||||
struct xt_rpfilter_info {
|
||||
__u8 flags;
|
||||
};
|
||||
|
||||
#endif
|
@@ -2,6 +2,7 @@
|
||||
#define _UAPI__LINUX_BRIDGE_EBT_802_3_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
#define EBT_802_3_SAP 0x01
|
||||
#define EBT_802_3_TYPE 0x02
|
||||
@@ -42,8 +43,8 @@ struct hdr_ni {
|
||||
};
|
||||
|
||||
struct ebt_802_3_hdr {
|
||||
__u8 daddr[6];
|
||||
__u8 saddr[6];
|
||||
__u8 daddr[ETH_ALEN];
|
||||
__u8 saddr[ETH_ALEN];
|
||||
__be16 len;
|
||||
union {
|
||||
struct hdr_ui ui;
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#define _IPT_CLUSTERIP_H_target
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
enum clusterip_hashmode {
|
||||
CLUSTERIP_HASHMODE_SIP = 0,
|
||||
@@ -22,7 +23,7 @@ struct ipt_clusterip_tgt_info {
|
||||
__u32 flags;
|
||||
|
||||
/* only relevant for new ones */
|
||||
__u8 clustermac[6];
|
||||
__u8 clustermac[ETH_ALEN];
|
||||
__u16 num_total_nodes;
|
||||
__u16 num_local_nodes;
|
||||
__u16 local_nodes[CLUSTERIP_MAX_NODES];
|
||||
|
@@ -71,6 +71,20 @@
|
||||
* @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element.
|
||||
* @NFC_CMD_FW_DOWNLOAD: Request to Load/flash firmware, or event to inform
|
||||
* that some firmware was loaded
|
||||
* @NFC_EVENT_SE_ADDED: Event emitted when a new secure element is discovered.
|
||||
* This typically will be sent whenever a new NFC controller with either
|
||||
* an embedded SE or an UICC one connected to it through SWP.
|
||||
* @NFC_EVENT_SE_REMOVED: Event emitted when a secure element is removed from
|
||||
* the system, as a consequence of e.g. an NFC controller being unplugged.
|
||||
* @NFC_EVENT_SE_CONNECTIVITY: This event is emitted whenever a secure element
|
||||
* is requesting connectivity access. For example a UICC SE may need to
|
||||
* talk with a sleeping modem and will notify this need by sending this
|
||||
* event. It is then up to userspace to decide if it will wake the modem
|
||||
* up or not.
|
||||
* @NFC_EVENT_SE_TRANSACTION: This event is sent when an application running on
|
||||
* a specific SE notifies us about the end of a transaction. The parameter
|
||||
* for this event is the application ID (AID).
|
||||
* @NFC_CMD_GET_SE: Dump all discovered secure elements from an NFC controller.
|
||||
*/
|
||||
enum nfc_commands {
|
||||
NFC_CMD_UNSPEC,
|
||||
@@ -97,6 +111,9 @@ enum nfc_commands {
|
||||
NFC_CMD_FW_DOWNLOAD,
|
||||
NFC_EVENT_SE_ADDED,
|
||||
NFC_EVENT_SE_REMOVED,
|
||||
NFC_EVENT_SE_CONNECTIVITY,
|
||||
NFC_EVENT_SE_TRANSACTION,
|
||||
NFC_CMD_GET_SE,
|
||||
/* private: internal use only */
|
||||
__NFC_CMD_AFTER_LAST
|
||||
};
|
||||
@@ -129,6 +146,7 @@ enum nfc_commands {
|
||||
* @NFC_ATTR_FIRMWARE_NAME: Free format firmware version
|
||||
* @NFC_ATTR_SE_INDEX: Secure element index
|
||||
* @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED)
|
||||
* @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status
|
||||
*/
|
||||
enum nfc_attrs {
|
||||
NFC_ATTR_UNSPEC,
|
||||
@@ -154,6 +172,8 @@ enum nfc_attrs {
|
||||
NFC_ATTR_FIRMWARE_NAME,
|
||||
NFC_ATTR_SE_INDEX,
|
||||
NFC_ATTR_SE_TYPE,
|
||||
NFC_ATTR_SE_AID,
|
||||
NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS,
|
||||
/* private: internal use only */
|
||||
__NFC_ATTR_AFTER_LAST
|
||||
};
|
||||
|
@@ -125,6 +125,31 @@
|
||||
* interfaces that a given device supports.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: packet coalesce support
|
||||
*
|
||||
* In most cases, host that receives IPv4 and IPv6 multicast/broadcast
|
||||
* packets does not do anything with these packets. Therefore the
|
||||
* reception of these unwanted packets causes unnecessary processing
|
||||
* and power consumption.
|
||||
*
|
||||
* Packet coalesce feature helps to reduce number of received interrupts
|
||||
* to host by buffering these packets in firmware/hardware for some
|
||||
* predefined time. Received interrupt will be generated when one of the
|
||||
* following events occur.
|
||||
* a) Expiration of hardware timer whose expiration time is set to maximum
|
||||
* coalescing delay of matching coalesce rule.
|
||||
* b) Coalescing buffer in hardware reaches it's limit.
|
||||
* c) Packet doesn't match any of the configured coalesce rules.
|
||||
*
|
||||
* User needs to configure following parameters for creating a coalesce
|
||||
* rule.
|
||||
* a) Maximum coalescing delay
|
||||
* b) List of packet patterns which needs to be matched
|
||||
* c) Condition for coalescence. pattern 'match' or 'no match'
|
||||
* Multiple such rules can be created.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum nl80211_commands - supported nl80211 commands
|
||||
*
|
||||
@@ -648,6 +673,19 @@
|
||||
* @NL80211_CMD_CRIT_PROTOCOL_STOP: Indicates the connection reliability can
|
||||
* return back to normal.
|
||||
*
|
||||
* @NL80211_CMD_GET_COALESCE: Get currently supported coalesce rules.
|
||||
* @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules.
|
||||
*
|
||||
* @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the
|
||||
* the new channel information (Channel Switch Announcement - CSA)
|
||||
* in the beacon for some time (as defined in the
|
||||
* %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
|
||||
* new channel. Userspace provides the new channel information (using
|
||||
* %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel
|
||||
* width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform
|
||||
* other station that transmission must be blocked until the channel
|
||||
* switch is complete.
|
||||
*
|
||||
* @NL80211_CMD_MAX: highest used command number
|
||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -810,6 +848,11 @@ enum nl80211_commands {
|
||||
NL80211_CMD_CRIT_PROTOCOL_START,
|
||||
NL80211_CMD_CRIT_PROTOCOL_STOP,
|
||||
|
||||
NL80211_CMD_GET_COALESCE,
|
||||
NL80211_CMD_SET_COALESCE,
|
||||
|
||||
NL80211_CMD_CHANNEL_SWITCH,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
@@ -1436,6 +1479,23 @@ enum nl80211_commands {
|
||||
* allowed to be used with the first @NL80211_CMD_SET_STATION command to
|
||||
* update a TDLS peer STA entry.
|
||||
*
|
||||
* @NL80211_ATTR_COALESCE_RULE: Coalesce rule information.
|
||||
*
|
||||
* @NL80211_ATTR_CH_SWITCH_COUNT: u32 attribute specifying the number of TBTT's
|
||||
* until the channel switch event.
|
||||
* @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission
|
||||
* must be blocked on the current channel (before the channel switch
|
||||
* operation).
|
||||
* @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
|
||||
* for the time while performing a channel switch.
|
||||
* @NL80211_ATTR_CSA_C_OFF_BEACON: Offset of the channel switch counter
|
||||
* field in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
|
||||
* @NL80211_ATTR_CSA_C_OFF_PRESP: Offset of the channel switch counter
|
||||
* field in the probe response (%NL80211_ATTR_PROBE_RESP).
|
||||
*
|
||||
* @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
|
||||
* As specified in the &enum nl80211_rxmgmt_flags.
|
||||
*
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -1736,6 +1796,16 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_PEER_AID,
|
||||
|
||||
NL80211_ATTR_COALESCE_RULE,
|
||||
|
||||
NL80211_ATTR_CH_SWITCH_COUNT,
|
||||
NL80211_ATTR_CH_SWITCH_BLOCK_TX,
|
||||
NL80211_ATTR_CSA_IES,
|
||||
NL80211_ATTR_CSA_C_OFF_BEACON,
|
||||
NL80211_ATTR_CSA_C_OFF_PRESP,
|
||||
|
||||
NL80211_ATTR_RXMGMT_FLAGS,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -2772,6 +2842,21 @@ enum nl80211_chan_width {
|
||||
NL80211_CHAN_WIDTH_10,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_bss_scan_width - control channel width for a BSS
|
||||
*
|
||||
* These values are used with the %NL80211_BSS_CHAN_WIDTH attribute.
|
||||
*
|
||||
* @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible
|
||||
* @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide
|
||||
* @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide
|
||||
*/
|
||||
enum nl80211_bss_scan_width {
|
||||
NL80211_BSS_CHAN_WIDTH_20,
|
||||
NL80211_BSS_CHAN_WIDTH_10,
|
||||
NL80211_BSS_CHAN_WIDTH_5,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_bss - netlink attributes for a BSS
|
||||
*
|
||||
@@ -2796,6 +2881,8 @@ enum nl80211_chan_width {
|
||||
* @NL80211_BSS_BEACON_IES: binary attribute containing the raw information
|
||||
* elements from a Beacon frame (bin); not present if no Beacon frame has
|
||||
* yet been received
|
||||
* @NL80211_BSS_CHAN_WIDTH: channel width of the control channel
|
||||
* (u32, enum nl80211_bss_scan_width)
|
||||
* @__NL80211_BSS_AFTER_LAST: internal
|
||||
* @NL80211_BSS_MAX: highest BSS attribute
|
||||
*/
|
||||
@@ -2812,6 +2899,7 @@ enum nl80211_bss {
|
||||
NL80211_BSS_STATUS,
|
||||
NL80211_BSS_SEEN_MS_AGO,
|
||||
NL80211_BSS_BEACON_IES,
|
||||
NL80211_BSS_CHAN_WIDTH,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BSS_AFTER_LAST,
|
||||
@@ -3060,11 +3148,11 @@ enum nl80211_tx_power_setting {
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_wowlan_packet_pattern_attr - WoWLAN packet pattern attribute
|
||||
* @__NL80211_WOWLAN_PKTPAT_INVALID: invalid number for nested attribute
|
||||
* @NL80211_WOWLAN_PKTPAT_PATTERN: the pattern, values where the mask has
|
||||
* enum nl80211_packet_pattern_attr - packet pattern attribute
|
||||
* @__NL80211_PKTPAT_INVALID: invalid number for nested attribute
|
||||
* @NL80211_PKTPAT_PATTERN: the pattern, values where the mask has
|
||||
* a zero bit are ignored
|
||||
* @NL80211_WOWLAN_PKTPAT_MASK: pattern mask, must be long enough to have
|
||||
* @NL80211_PKTPAT_MASK: pattern mask, must be long enough to have
|
||||
* a bit for each byte in the pattern. The lowest-order bit corresponds
|
||||
* to the first byte of the pattern, but the bytes of the pattern are
|
||||
* in a little-endian-like format, i.e. the 9th byte of the pattern
|
||||
@@ -3075,39 +3163,50 @@ enum nl80211_tx_power_setting {
|
||||
* Note that the pattern matching is done as though frames were not
|
||||
* 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked
|
||||
* first (including SNAP header unpacking) and then matched.
|
||||
* @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after
|
||||
* @NL80211_PKTPAT_OFFSET: packet offset, pattern is matched after
|
||||
* these fixed number of bytes of received packet
|
||||
* @NUM_NL80211_WOWLAN_PKTPAT: number of attributes
|
||||
* @MAX_NL80211_WOWLAN_PKTPAT: max attribute number
|
||||
* @NUM_NL80211_PKTPAT: number of attributes
|
||||
* @MAX_NL80211_PKTPAT: max attribute number
|
||||
*/
|
||||
enum nl80211_wowlan_packet_pattern_attr {
|
||||
__NL80211_WOWLAN_PKTPAT_INVALID,
|
||||
NL80211_WOWLAN_PKTPAT_MASK,
|
||||
NL80211_WOWLAN_PKTPAT_PATTERN,
|
||||
NL80211_WOWLAN_PKTPAT_OFFSET,
|
||||
enum nl80211_packet_pattern_attr {
|
||||
__NL80211_PKTPAT_INVALID,
|
||||
NL80211_PKTPAT_MASK,
|
||||
NL80211_PKTPAT_PATTERN,
|
||||
NL80211_PKTPAT_OFFSET,
|
||||
|
||||
NUM_NL80211_WOWLAN_PKTPAT,
|
||||
MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1,
|
||||
NUM_NL80211_PKTPAT,
|
||||
MAX_NL80211_PKTPAT = NUM_NL80211_PKTPAT - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct nl80211_wowlan_pattern_support - pattern support information
|
||||
* struct nl80211_pattern_support - packet pattern support information
|
||||
* @max_patterns: maximum number of patterns supported
|
||||
* @min_pattern_len: minimum length of each pattern
|
||||
* @max_pattern_len: maximum length of each pattern
|
||||
* @max_pkt_offset: maximum Rx packet offset
|
||||
*
|
||||
* This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when
|
||||
* that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the
|
||||
* capability information given by the kernel to userspace.
|
||||
* that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED or in
|
||||
* %NL80211_ATTR_COALESCE_RULE_PKT_PATTERN when that is part of
|
||||
* %NL80211_ATTR_COALESCE_RULE in the capability information given
|
||||
* by the kernel to userspace.
|
||||
*/
|
||||
struct nl80211_wowlan_pattern_support {
|
||||
struct nl80211_pattern_support {
|
||||
__u32 max_patterns;
|
||||
__u32 min_pattern_len;
|
||||
__u32 max_pattern_len;
|
||||
__u32 max_pkt_offset;
|
||||
} __attribute__((packed));
|
||||
|
||||
/* only for backward compatibility */
|
||||
#define __NL80211_WOWLAN_PKTPAT_INVALID __NL80211_PKTPAT_INVALID
|
||||
#define NL80211_WOWLAN_PKTPAT_MASK NL80211_PKTPAT_MASK
|
||||
#define NL80211_WOWLAN_PKTPAT_PATTERN NL80211_PKTPAT_PATTERN
|
||||
#define NL80211_WOWLAN_PKTPAT_OFFSET NL80211_PKTPAT_OFFSET
|
||||
#define NUM_NL80211_WOWLAN_PKTPAT NUM_NL80211_PKTPAT
|
||||
#define MAX_NL80211_WOWLAN_PKTPAT MAX_NL80211_PKTPAT
|
||||
#define nl80211_wowlan_pattern_support nl80211_pattern_support
|
||||
|
||||
/**
|
||||
* enum nl80211_wowlan_triggers - WoWLAN trigger definitions
|
||||
* @__NL80211_WOWLAN_TRIG_INVALID: invalid number for nested attributes
|
||||
@@ -3127,7 +3226,7 @@ struct nl80211_wowlan_pattern_support {
|
||||
* pattern matching is done after the packet is converted to the MSDU.
|
||||
*
|
||||
* In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
|
||||
* carrying a &struct nl80211_wowlan_pattern_support.
|
||||
* carrying a &struct nl80211_pattern_support.
|
||||
*
|
||||
* When reporting wakeup. it is a u32 attribute containing the 0-based
|
||||
* index of the pattern that caused the wakeup, in the patterns passed
|
||||
@@ -3284,7 +3383,7 @@ struct nl80211_wowlan_tcp_data_token_feature {
|
||||
* @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a
|
||||
* u32 attribute holding the maximum length
|
||||
* @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for
|
||||
* feature advertising. The mask works like @NL80211_WOWLAN_PKTPAT_MASK
|
||||
* feature advertising. The mask works like @NL80211_PKTPAT_MASK
|
||||
* but on the TCP payload only.
|
||||
* @NUM_NL80211_WOWLAN_TCP: number of TCP attributes
|
||||
* @MAX_NL80211_WOWLAN_TCP: highest attribute number
|
||||
@@ -3308,6 +3407,55 @@ enum nl80211_wowlan_tcp_attrs {
|
||||
MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* struct nl80211_coalesce_rule_support - coalesce rule support information
|
||||
* @max_rules: maximum number of rules supported
|
||||
* @pat: packet pattern support information
|
||||
* @max_delay: maximum supported coalescing delay in msecs
|
||||
*
|
||||
* This struct is carried in %NL80211_ATTR_COALESCE_RULE in the
|
||||
* capability information given by the kernel to userspace.
|
||||
*/
|
||||
struct nl80211_coalesce_rule_support {
|
||||
__u32 max_rules;
|
||||
struct nl80211_pattern_support pat;
|
||||
__u32 max_delay;
|
||||
} __attribute__((packed));
|
||||
|
||||
/**
|
||||
* enum nl80211_attr_coalesce_rule - coalesce rule attribute
|
||||
* @__NL80211_COALESCE_RULE_INVALID: invalid number for nested attribute
|
||||
* @NL80211_ATTR_COALESCE_RULE_DELAY: delay in msecs used for packet coalescing
|
||||
* @NL80211_ATTR_COALESCE_RULE_CONDITION: condition for packet coalescence,
|
||||
* see &enum nl80211_coalesce_condition.
|
||||
* @NL80211_ATTR_COALESCE_RULE_PKT_PATTERN: packet offset, pattern is matched
|
||||
* after these fixed number of bytes of received packet
|
||||
* @NUM_NL80211_ATTR_COALESCE_RULE: number of attributes
|
||||
* @NL80211_ATTR_COALESCE_RULE_MAX: max attribute number
|
||||
*/
|
||||
enum nl80211_attr_coalesce_rule {
|
||||
__NL80211_COALESCE_RULE_INVALID,
|
||||
NL80211_ATTR_COALESCE_RULE_DELAY,
|
||||
NL80211_ATTR_COALESCE_RULE_CONDITION,
|
||||
NL80211_ATTR_COALESCE_RULE_PKT_PATTERN,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_ATTR_COALESCE_RULE,
|
||||
NL80211_ATTR_COALESCE_RULE_MAX = NUM_NL80211_ATTR_COALESCE_RULE - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_coalesce_condition - coalesce rule conditions
|
||||
* @NL80211_COALESCE_CONDITION_MATCH: coalaesce Rx packets when patterns
|
||||
* in a rule are matched.
|
||||
* @NL80211_COALESCE_CONDITION_NO_MATCH: coalesce Rx packets when patterns
|
||||
* in a rule are not matched.
|
||||
*/
|
||||
enum nl80211_coalesce_condition {
|
||||
NL80211_COALESCE_CONDITION_MATCH,
|
||||
NL80211_COALESCE_CONDITION_NO_MATCH
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_iface_limit_attrs - limit attributes
|
||||
* @NL80211_IFACE_LIMIT_UNSPEC: (reserved)
|
||||
@@ -3758,4 +3906,15 @@ enum nl80211_crit_proto_id {
|
||||
/* maximum duration for critical protocol measures */
|
||||
#define NL80211_CRIT_PROTO_MAX_DURATION 5000 /* msec */
|
||||
|
||||
/**
|
||||
* enum nl80211_rxmgmt_flags - flags for received management frame.
|
||||
*
|
||||
* Used by cfg80211_rx_mgmt()
|
||||
*
|
||||
* @NL80211_RXMGMT_FLAG_ANSWERED: frame was answered by device/driver.
|
||||
*/
|
||||
enum nl80211_rxmgmt_flags {
|
||||
NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007-2011 Nicira Networks.
|
||||
* Copyright (c) 2007-2013 Nicira, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
@@ -165,6 +165,7 @@ enum ovs_vport_type {
|
||||
OVS_VPORT_TYPE_NETDEV, /* network device */
|
||||
OVS_VPORT_TYPE_INTERNAL, /* network device implemented by datapath */
|
||||
OVS_VPORT_TYPE_GRE, /* GRE tunnel. */
|
||||
OVS_VPORT_TYPE_VXLAN, /* VXLAN tunnel. */
|
||||
__OVS_VPORT_TYPE_MAX
|
||||
};
|
||||
|
||||
@@ -211,6 +212,16 @@ enum ovs_vport_attr {
|
||||
|
||||
#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
|
||||
|
||||
/* OVS_VPORT_ATTR_OPTIONS attributes for tunnels.
|
||||
*/
|
||||
enum {
|
||||
OVS_TUNNEL_ATTR_UNSPEC,
|
||||
OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */
|
||||
__OVS_TUNNEL_ATTR_MAX
|
||||
};
|
||||
|
||||
#define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1)
|
||||
|
||||
/* Flows. */
|
||||
|
||||
#define OVS_FLOW_FAMILY "ovs_flow"
|
||||
@@ -248,6 +259,7 @@ enum ovs_key_attr {
|
||||
OVS_KEY_ATTR_ND, /* struct ovs_key_nd */
|
||||
OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */
|
||||
OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */
|
||||
OVS_KEY_ATTR_SCTP, /* struct ovs_key_sctp */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
OVS_KEY_ATTR_IPV4_TUNNEL, /* struct ovs_key_ipv4_tunnel */
|
||||
@@ -322,6 +334,11 @@ struct ovs_key_udp {
|
||||
__be16 udp_dst;
|
||||
};
|
||||
|
||||
struct ovs_key_sctp {
|
||||
__be16 sctp_src;
|
||||
__be16 sctp_dst;
|
||||
};
|
||||
|
||||
struct ovs_key_icmp {
|
||||
__u8 icmp_type;
|
||||
__u8 icmp_code;
|
||||
@@ -368,6 +385,12 @@ struct ovs_key_nd {
|
||||
* @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the
|
||||
* last-used time, accumulated TCP flags, and statistics for this flow.
|
||||
* Otherwise ignored in requests. Never present in notifications.
|
||||
* @OVS_FLOW_ATTR_MASK: Nested %OVS_KEY_ATTR_* attributes specifying the
|
||||
* mask bits for wildcarded flow match. Mask bit value '1' specifies exact
|
||||
* match with corresponding flow key bit, while mask bit value '0' specifies
|
||||
* a wildcarded match. Omitting attribute is treated as wildcarding all
|
||||
* corresponding fields. Optional for all requests. If not present,
|
||||
* all flow key bits are exact match bits.
|
||||
*
|
||||
* These attributes follow the &struct ovs_header within the Generic Netlink
|
||||
* payload for %OVS_FLOW_* commands.
|
||||
@@ -380,6 +403,7 @@ enum ovs_flow_attr {
|
||||
OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */
|
||||
OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */
|
||||
OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */
|
||||
OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
|
||||
__OVS_FLOW_ATTR_MAX
|
||||
};
|
||||
|
||||
|
@@ -744,4 +744,45 @@ struct tc_fq_codel_xstats {
|
||||
};
|
||||
};
|
||||
|
||||
/* FQ */
|
||||
|
||||
enum {
|
||||
TCA_FQ_UNSPEC,
|
||||
|
||||
TCA_FQ_PLIMIT, /* limit of total number of packets in queue */
|
||||
|
||||
TCA_FQ_FLOW_PLIMIT, /* limit of packets per flow */
|
||||
|
||||
TCA_FQ_QUANTUM, /* RR quantum */
|
||||
|
||||
TCA_FQ_INITIAL_QUANTUM, /* RR quantum for new flow */
|
||||
|
||||
TCA_FQ_RATE_ENABLE, /* enable/disable rate limiting */
|
||||
|
||||
TCA_FQ_FLOW_DEFAULT_RATE,/* for sockets with unspecified sk_rate,
|
||||
* use the following rate
|
||||
*/
|
||||
|
||||
TCA_FQ_FLOW_MAX_RATE, /* per flow max rate */
|
||||
|
||||
TCA_FQ_BUCKETS_LOG, /* log2(number of buckets) */
|
||||
__TCA_FQ_MAX
|
||||
};
|
||||
|
||||
#define TCA_FQ_MAX (__TCA_FQ_MAX - 1)
|
||||
|
||||
struct tc_fq_qd_stats {
|
||||
__u64 gc_flows;
|
||||
__u64 highprio_packets;
|
||||
__u64 tcp_retrans;
|
||||
__u64 throttled;
|
||||
__u64 flows_plimit;
|
||||
__u64 pkts_too_long;
|
||||
__u64 allocation_errors;
|
||||
__s64 time_next_delayed_flow;
|
||||
__u32 flows;
|
||||
__u32 inactive_flows;
|
||||
__u32 throttled_flows;
|
||||
__u32 pad;
|
||||
};
|
||||
#endif
|
||||
|
@@ -28,7 +28,7 @@
|
||||
*
|
||||
* Please send any bug reports or fixes you make to the
|
||||
* email address(es):
|
||||
* lksctp developers <lksctp-developers@lists.sourceforge.net>
|
||||
* lksctp developers <linux-sctp@vger.kernel.org>
|
||||
*
|
||||
* Or submit a bug report through the following website:
|
||||
* http://www.sf.net/projects/lksctp
|
||||
|
@@ -51,6 +51,10 @@ enum
|
||||
IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */
|
||||
IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */
|
||||
IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */
|
||||
IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
|
||||
IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
|
||||
IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
|
||||
IPSTATS_MIB_CEPKTS, /* InCEPkts */
|
||||
__IPSTATS_MIB_MAX
|
||||
};
|
||||
|
||||
|
@@ -111,6 +111,7 @@ enum {
|
||||
#define TCP_REPAIR_OPTIONS 22
|
||||
#define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */
|
||||
#define TCP_TIMESTAMP 24
|
||||
#define TCP_NOTSENT_LOWAT 25 /* limit number of unsent bytes in write queue */
|
||||
|
||||
struct tcp_repair_opt {
|
||||
__u32 opt_code;
|
||||
|
@@ -60,7 +60,7 @@
|
||||
|
||||
struct virtio_net_config {
|
||||
/* The config defining mac address (if VIRTIO_NET_F_MAC) */
|
||||
__u8 mac[6];
|
||||
__u8 mac[ETH_ALEN];
|
||||
/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
|
||||
__u16 status;
|
||||
/* Maximum number of each of transmit and receive queues;
|
||||
@@ -70,7 +70,9 @@ struct virtio_net_config {
|
||||
__u16 max_virtqueue_pairs;
|
||||
} __attribute__((packed));
|
||||
|
||||
/* This is the first element of the scatter-gather list. If you don't
|
||||
/* This header comes first in the scatter-gather list.
|
||||
* If VIRTIO_F_ANY_LAYOUT is not negotiated, it must
|
||||
* be the first element of the scatter-gather list. If you don't
|
||||
* specify GSO or CSUM features, you can simply ignore the header. */
|
||||
struct virtio_net_hdr {
|
||||
#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset
|
||||
|
@@ -122,7 +122,7 @@
|
||||
#define __LINUX__WIMAX__I2400M_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
/*
|
||||
* Host Device Interface (HDI) common to all busses
|
||||
@@ -487,7 +487,7 @@ struct i2400m_tlv_l4_message_versions {
|
||||
struct i2400m_tlv_detailed_device_info {
|
||||
struct i2400m_tlv_hdr hdr;
|
||||
__u8 reserved1[400];
|
||||
__u8 mac_address[6];
|
||||
__u8 mac_address[ETH_ALEN];
|
||||
__u8 reserved2[2];
|
||||
} __attribute__((packed));
|
||||
|
||||
|
Reference in New Issue
Block a user