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 791d4ab0fd4d..3d2d3fe0a97e 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h | |||
| @@ -45,6 +45,17 @@ struct mac_addr | |||
| 45 | unsigned char addr[6]; | 45 | unsigned char addr[6]; |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | struct br_ip | ||
| 49 | { | ||
| 50 | union { | ||
| 51 | __be32 ip4; | ||
| 52 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
| 53 | struct in6_addr ip6; | ||
| 54 | #endif | ||
| 55 | } u; | ||
| 56 | __be16 proto; | ||
| 57 | }; | ||
| 58 | |||
| 48 | struct net_bridge_fdb_entry | 59 | struct net_bridge_fdb_entry |
| 49 | { | 60 | { |
| 50 | struct hlist_node hlist; | 61 | struct hlist_node hlist; |
| @@ -64,7 +75,7 @@ struct net_bridge_port_group { | |||
| 64 | struct rcu_head rcu; | 75 | struct rcu_head rcu; |
| 65 | struct timer_list timer; | 76 | struct timer_list timer; |
| 66 | struct timer_list query_timer; | 77 | struct timer_list query_timer; |
| 67 | __be32 addr; | 78 | struct br_ip addr; |
| 68 | u32 queries_sent; | 79 | u32 queries_sent; |
| 69 | }; | 80 | }; |
| 70 | 81 | ||
| @@ -77,7 +88,7 @@ struct net_bridge_mdb_entry | |||
| 77 | struct rcu_head rcu; | 88 | struct rcu_head rcu; |
| 78 | struct timer_list timer; | 89 | struct timer_list timer; |
| 79 | struct timer_list query_timer; | 90 | struct timer_list query_timer; |
| 80 | __be32 addr; | 91 | struct br_ip addr; |
| 81 | u32 queries_sent; | 92 | u32 queries_sent; |
| 82 | }; | 93 | }; |
| 83 | 94 | ||
| @@ -130,19 +141,20 @@ struct net_bridge_port | |||
| 130 | #endif | 141 | #endif |
| 131 | }; | 142 | }; |
| 132 | 143 | ||
| 144 | struct br_cpu_netstats { | ||
| 145 | unsigned long rx_packets; | ||
| 146 | unsigned long rx_bytes; | ||
| 147 | unsigned long tx_packets; | ||
| 148 | unsigned long tx_bytes; | ||
| 149 | }; | ||
| 150 | |||
| 133 | struct net_bridge | 151 | struct net_bridge |
| 134 | { | 152 | { |
| 135 | spinlock_t lock; | 153 | spinlock_t lock; |
| 136 | struct list_head port_list; | 154 | struct list_head port_list; |
| 137 | struct net_device *dev; | 155 | struct net_device *dev; |
| 138 | 156 | ||
| 139 | struct br_cpu_netstats __percpu { | 157 | struct br_cpu_netstats __percpu *stats; |
| 140 | unsigned long rx_packets; | ||
| 141 | unsigned long rx_bytes; | ||
| 142 | unsigned long tx_packets; | ||
| 143 | unsigned long tx_bytes; | ||
| 144 | } *stats; | ||
| 145 | |||
| 146 | spinlock_t hash_lock; | 158 | spinlock_t hash_lock; |
| 147 | struct hlist_head hash[BR_HASH_SIZE]; | 159 | struct hlist_head hash[BR_HASH_SIZE]; |
| 148 | unsigned long feature_mask; | 160 | unsigned long feature_mask; |
| @@ -241,6 +253,8 @@ static inline int br_is_root_bridge(const struct net_bridge *br) | |||
| 241 | extern void br_dev_setup(struct net_device *dev); | 253 | extern void br_dev_setup(struct net_device *dev); |
| 242 | extern netdev_tx_t br_dev_xmit(struct sk_buff *skb, | 254 | extern netdev_tx_t br_dev_xmit(struct sk_buff *skb, |
| 243 | struct net_device *dev); | 255 | struct net_device *dev); |
| 256 | extern bool br_devices_support_netpoll(struct net_bridge *br); | ||
| 257 | extern void br_netpoll_cleanup(struct net_device *br_dev); | ||
| 244 | 258 | ||
| 245 | /* br_fdb.c */ | 259 | /* br_fdb.c */ |
| 246 | extern int br_fdb_init(void); | 260 | extern int br_fdb_init(void); |
