diff options
| author | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-11 14:36:25 +0100 | 
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-11 14:36:25 +0100 | 
| commit | a8931ef380c92d121ae74ecfb03b2d63f72eea6f (patch) | |
| tree | 980fb6b019e11e6cb1ece55b7faff184721a8053 /include/linux/netdevice.h | |
| parent | 90574d0a4d4b73308ae54a2a57a4f3f1fa98e984 (diff) | |
| parent | e5a5816f7875207cb0a0a7032e39a4686c5e10a4 (diff) | |
| download | olio-linux-3.10-a8931ef380c92d121ae74ecfb03b2d63f72eea6f.tar.xz olio-linux-3.10-a8931ef380c92d121ae74ecfb03b2d63f72eea6f.zip  | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/linux/netdevice.h')
| -rw-r--r-- | include/linux/netdevice.h | 42 | 
1 files changed, 33 insertions, 9 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 7c1d4466583..25f87102ab6 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -88,19 +88,23 @@ struct wireless_dev;  #define NETDEV_TX_BUSY 1	/* driver tx path was busy*/  #define NETDEV_TX_LOCKED -1	/* driver tx lock was already taken */ +#ifdef  __KERNEL__ +  /*   *	Compute the worst case header length according to the protocols   *	used.   */ -#if !defined(CONFIG_AX25) && !defined(CONFIG_AX25_MODULE) && !defined(CONFIG_TR) -#define LL_MAX_HEADER	32 -#else -#if defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE) -#define LL_MAX_HEADER	96 +#if defined(CONFIG_WLAN_80211) || defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE) +# if defined(CONFIG_MAC80211_MESH) +#  define LL_MAX_HEADER 128 +# else +#  define LL_MAX_HEADER 96 +# endif +#elif defined(CONFIG_TR) +# define LL_MAX_HEADER 48  #else -#define LL_MAX_HEADER	48 -#endif +# define LL_MAX_HEADER 32  #endif  #if !defined(CONFIG_NET_IPIP) && !defined(CONFIG_NET_IPIP_MODULE) && \ @@ -112,6 +116,8 @@ struct wireless_dev;  #define MAX_HEADER (LL_MAX_HEADER + 48)  #endif +#endif  /*  __KERNEL__  */ +  struct net_device_subqueue  {  	/* Give a control state for each queue.  This struct may contain @@ -244,11 +250,16 @@ struct hh_cache   *   * We could use other alignment values, but we must maintain the   * relationship HH alignment <= LL alignment. + * + * LL_ALLOCATED_SPACE also takes into account the tailroom the device + * may need.   */  #define LL_RESERVED_SPACE(dev) \ -	(((dev)->hard_header_len&~(HH_DATA_MOD - 1)) + HH_DATA_MOD) +	((((dev)->hard_header_len+(dev)->needed_headroom)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)  #define LL_RESERVED_SPACE_EXTRA(dev,extra) \ -	((((dev)->hard_header_len+extra)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD) +	((((dev)->hard_header_len+(dev)->needed_headroom+(extra))&~(HH_DATA_MOD - 1)) + HH_DATA_MOD) +#define LL_ALLOCATED_SPACE(dev) \ +	((((dev)->hard_header_len+(dev)->needed_headroom+(dev)->needed_tailroom)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)  struct header_ops {  	int	(*create) (struct sk_buff *skb, struct net_device *dev, @@ -567,6 +578,13 @@ struct net_device  	unsigned short		type;	/* interface hardware type	*/  	unsigned short		hard_header_len;	/* hardware hdr length	*/ +	/* extra head- and tailroom the hardware may need, but not in all cases +	 * can this be guaranteed, especially tailroom. Some cases also use +	 * LL_MAX_HEADER instead to allocate the skb. +	 */ +	unsigned short		needed_headroom; +	unsigned short		needed_tailroom; +  	struct net_device	*master; /* Pointer to master device of a group,  					  * which this device is member of.  					  */ @@ -715,6 +733,9 @@ struct net_device  	struct net		*nd_net;  #endif +	/* mid-layer private */ +	void			*ml_priv; +  	/* bridge stuff */  	struct net_bridge_port	*br_port;  	/* macvlan */ @@ -728,6 +749,9 @@ struct net_device  	/* rtnetlink link ops */  	const struct rtnl_link_ops *rtnl_link_ops; +	/* VLAN feature mask */ +	unsigned long vlan_features; +  	/* for setting kernel sock attribute on TCP connection setup */  #define GSO_MAX_SIZE		65536  	unsigned int		gso_max_size;  |