bridge: Simplify interface for ATM LANE
This patch changes FDB entry check for ATM LANE bridge integration. There's no point in holding a FDB entry around SKB building. br_fdb_get()/br_fdb_put() pair are changed into single br_fdb_test_addr() hook that checks if the addr has FDB entry pointing to other port to the one the request arrived on. FDB entry refcounting is removed as it's not used anywhere else. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Acked-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
746e6ad23c
commit
da6782927d
@@ -2071,11 +2071,13 @@ static inline int deliver_skb(struct sk_buff *skb,
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE)
|
||||
/* These hooks defined here for ATM */
|
||||
struct net_bridge;
|
||||
struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
|
||||
unsigned char *addr);
|
||||
void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent) __read_mostly;
|
||||
|
||||
#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
|
||||
/* This hook is defined here for ATM LANE */
|
||||
int (*br_fdb_test_addr_hook)(struct net_device *dev,
|
||||
unsigned char *addr) __read_mostly;
|
||||
EXPORT_SYMBOL(br_fdb_test_addr_hook);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If bridge module is loaded call bridging hook.
|
||||
@@ -2083,6 +2085,8 @@ void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent) __read_mostly;
|
||||
*/
|
||||
struct sk_buff *(*br_handle_frame_hook)(struct net_bridge_port *p,
|
||||
struct sk_buff *skb) __read_mostly;
|
||||
EXPORT_SYMBOL(br_handle_frame_hook);
|
||||
|
||||
static inline struct sk_buff *handle_bridge(struct sk_buff *skb,
|
||||
struct packet_type **pt_prev, int *ret,
|
||||
struct net_device *orig_dev)
|
||||
@@ -5665,12 +5669,6 @@ EXPORT_SYMBOL(net_enable_timestamp);
|
||||
EXPORT_SYMBOL(net_disable_timestamp);
|
||||
EXPORT_SYMBOL(dev_get_flags);
|
||||
|
||||
#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
|
||||
EXPORT_SYMBOL(br_handle_frame_hook);
|
||||
EXPORT_SYMBOL(br_fdb_get_hook);
|
||||
EXPORT_SYMBOL(br_fdb_put_hook);
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(dev_load);
|
||||
|
||||
EXPORT_PER_CPU_SYMBOL(softnet_data);
|
||||
|
Reference in New Issue
Block a user