diff options
Diffstat (limited to 'net/bridge/br_private.h')
| -rw-r--r-- | net/bridge/br_private.h | 32 | 
1 files changed, 23 insertions, 9 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 791d4ab0fd4..3d2d3fe0a97 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -45,6 +45,17 @@ struct mac_addr  	unsigned char	addr[6];  }; +struct br_ip +{ +	union { +		__be32	ip4; +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) +		struct in6_addr ip6; +#endif +	} u; +	__be16		proto; +}; +  struct net_bridge_fdb_entry  {  	struct hlist_node		hlist; @@ -64,7 +75,7 @@ struct net_bridge_port_group {  	struct rcu_head			rcu;  	struct timer_list		timer;  	struct timer_list		query_timer; -	__be32				addr; +	struct br_ip			addr;  	u32				queries_sent;  }; @@ -77,7 +88,7 @@ struct net_bridge_mdb_entry  	struct rcu_head			rcu;  	struct timer_list		timer;  	struct timer_list		query_timer; -	__be32				addr; +	struct br_ip			addr;  	u32				queries_sent;  }; @@ -130,19 +141,20 @@ struct net_bridge_port  #endif  }; +struct br_cpu_netstats { +	unsigned long	rx_packets; +	unsigned long	rx_bytes; +	unsigned long	tx_packets; +	unsigned long	tx_bytes; +}; +  struct net_bridge  {  	spinlock_t			lock;  	struct list_head		port_list;  	struct net_device		*dev; -	struct br_cpu_netstats __percpu { -		unsigned long	rx_packets; -		unsigned long	rx_bytes; -		unsigned long	tx_packets; -		unsigned long	tx_bytes; -	} *stats; - +	struct br_cpu_netstats __percpu *stats;  	spinlock_t			hash_lock;  	struct hlist_head		hash[BR_HASH_SIZE];  	unsigned long			feature_mask; @@ -241,6 +253,8 @@ static inline int br_is_root_bridge(const struct net_bridge *br)  extern void br_dev_setup(struct net_device *dev);  extern netdev_tx_t br_dev_xmit(struct sk_buff *skb,  			       struct net_device *dev); +extern bool br_devices_support_netpoll(struct net_bridge *br); +extern void br_netpoll_cleanup(struct net_device *br_dev);  /* br_fdb.c */  extern int br_fdb_init(void);  |