diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 00:04:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 00:04:44 -0400 |
commit | f8965467f366fd18f01feafb5db10512d7b4422c (patch) | |
tree | 3706a9cd779859271ca61b85c63a1bc3f82d626e /net/bridge/br_private.h | |
parent | a26272e5200765691e67d6780e52b32498fdb659 (diff) | |
parent | 2ec8c6bb5d8f3a62a79f463525054bae1e3d4487 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)
qlcnic: adding co maintainer
ixgbe: add support for active DA cables
ixgbe: dcb, do not tag tc_prio_control frames
ixgbe: fix ixgbe_tx_is_paused logic
ixgbe: always enable vlan strip/insert when DCB is enabled
ixgbe: remove some redundant code in setting FCoE FIP filter
ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp
ixgbe: fix header len when unsplit packet overflows to data buffer
ipv6: Never schedule DAD timer on dead address
ipv6: Use POSTDAD state
ipv6: Use state_lock to protect ifa state
ipv6: Replace inet6_ifaddr->dead with state
cxgb4: notify upper drivers if the device is already up when they load
cxgb4: keep interrupts available when the ports are brought down
cxgb4: fix initial addition of MAC address
cnic: Return SPQ credit to bnx2x after ring setup and shutdown.
cnic: Convert cnic_local_flags to atomic ops.
can: Fix SJA1000 command register writes on SMP systems
bridge: fix build for CONFIG_SYSFS disabled
ARCNET: Limit com20020 PCI ID matches for SOHARD cards
...
Fix up various conflicts with pcmcia tree drivers/net/
{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and
wireless/orinoco/spectrum_cs.c} and feature removal
(Documentation/feature-removal-schedule.txt).
Also fix a non-content conflict due to pm_qos_requirement getting
renamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 846d7d1e207..0f4a74bc6a9 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 | ||
@@ -128,6 +139,17 @@ struct net_bridge_port | |||
128 | struct hlist_head mglist; | 139 | struct hlist_head mglist; |
129 | struct hlist_node rlist; | 140 | struct hlist_node rlist; |
130 | #endif | 141 | #endif |
142 | |||
143 | #ifdef CONFIG_SYSFS | ||
144 | char sysfs_name[IFNAMSIZ]; | ||
145 | #endif | ||
146 | }; | ||
147 | |||
148 | struct br_cpu_netstats { | ||
149 | unsigned long rx_packets; | ||
150 | unsigned long rx_bytes; | ||
151 | unsigned long tx_packets; | ||
152 | unsigned long tx_bytes; | ||
131 | }; | 153 | }; |
132 | 154 | ||
133 | struct net_bridge | 155 | struct net_bridge |
@@ -135,6 +157,8 @@ struct net_bridge | |||
135 | spinlock_t lock; | 157 | spinlock_t lock; |
136 | struct list_head port_list; | 158 | struct list_head port_list; |
137 | struct net_device *dev; | 159 | struct net_device *dev; |
160 | |||
161 | struct br_cpu_netstats __percpu *stats; | ||
138 | spinlock_t hash_lock; | 162 | spinlock_t hash_lock; |
139 | struct hlist_head hash[BR_HASH_SIZE]; | 163 | struct hlist_head hash[BR_HASH_SIZE]; |
140 | unsigned long feature_mask; | 164 | unsigned long feature_mask; |
@@ -220,6 +244,21 @@ struct br_input_skb_cb { | |||
220 | # define BR_INPUT_SKB_CB_MROUTERS_ONLY(__skb) (0) | 244 | # define BR_INPUT_SKB_CB_MROUTERS_ONLY(__skb) (0) |
221 | #endif | 245 | #endif |
222 | 246 | ||
247 | #define br_printk(level, br, format, args...) \ | ||
248 | printk(level "%s: " format, (br)->dev->name, ##args) | ||
249 | |||
250 | #define br_err(__br, format, args...) \ | ||
251 | br_printk(KERN_ERR, __br, format, ##args) | ||
252 | #define br_warn(__br, format, args...) \ | ||
253 | br_printk(KERN_WARNING, __br, format, ##args) | ||
254 | #define br_notice(__br, format, args...) \ | ||
255 | br_printk(KERN_NOTICE, __br, format, ##args) | ||
256 | #define br_info(__br, format, args...) \ | ||
257 | br_printk(KERN_INFO, __br, format, ##args) | ||
258 | |||
259 | #define br_debug(br, format, args...) \ | ||
260 | pr_debug("%s: " format, (br)->dev->name, ##args) | ||
261 | |||
223 | extern struct notifier_block br_device_notifier; | 262 | extern struct notifier_block br_device_notifier; |
224 | extern const u8 br_group_address[ETH_ALEN]; | 263 | extern const u8 br_group_address[ETH_ALEN]; |
225 | 264 | ||
@@ -233,6 +272,18 @@ static inline int br_is_root_bridge(const struct net_bridge *br) | |||
233 | extern void br_dev_setup(struct net_device *dev); | 272 | extern void br_dev_setup(struct net_device *dev); |
234 | extern netdev_tx_t br_dev_xmit(struct sk_buff *skb, | 273 | extern netdev_tx_t br_dev_xmit(struct sk_buff *skb, |
235 | struct net_device *dev); | 274 | struct net_device *dev); |
275 | #ifdef CONFIG_NET_POLL_CONTROLLER | ||
276 | extern void br_netpoll_cleanup(struct net_device *dev); | ||
277 | extern void br_netpoll_enable(struct net_bridge *br, | ||
278 | struct net_device *dev); | ||
279 | extern void br_netpoll_disable(struct net_bridge *br, | ||
280 | struct net_device *dev); | ||
281 | #else | ||
282 | #define br_netpoll_cleanup(br) | ||
283 | #define br_netpoll_enable(br, dev) | ||
284 | #define br_netpoll_disable(br, dev) | ||
285 | |||
286 | #endif | ||
236 | 287 | ||
237 | /* br_fdb.c */ | 288 | /* br_fdb.c */ |
238 | extern int br_fdb_init(void); | 289 | extern int br_fdb_init(void); |
@@ -433,6 +484,7 @@ extern void br_ifinfo_notify(int event, struct net_bridge_port *port); | |||
433 | /* br_sysfs_if.c */ | 484 | /* br_sysfs_if.c */ |
434 | extern const struct sysfs_ops brport_sysfs_ops; | 485 | extern const struct sysfs_ops brport_sysfs_ops; |
435 | extern int br_sysfs_addif(struct net_bridge_port *p); | 486 | extern int br_sysfs_addif(struct net_bridge_port *p); |
487 | extern int br_sysfs_renameif(struct net_bridge_port *p); | ||
436 | 488 | ||
437 | /* br_sysfs_br.c */ | 489 | /* br_sysfs_br.c */ |
438 | extern int br_sysfs_addbr(struct net_device *dev); | 490 | extern int br_sysfs_addbr(struct net_device *dev); |
@@ -441,6 +493,7 @@ extern void br_sysfs_delbr(struct net_device *dev); | |||
441 | #else | 493 | #else |
442 | 494 | ||
443 | #define br_sysfs_addif(p) (0) | 495 | #define br_sysfs_addif(p) (0) |
496 | #define br_sysfs_renameif(p) (0) | ||
444 | #define br_sysfs_addbr(dev) (0) | 497 | #define br_sysfs_addbr(dev) (0) |
445 | #define br_sysfs_delbr(dev) do { } while(0) | 498 | #define br_sysfs_delbr(dev) do { } while(0) |
446 | #endif /* CONFIG_SYSFS */ | 499 | #endif /* CONFIG_SYSFS */ |