• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/bridge/

Lines Matching refs:br

129 static int fdb_insert(struct net_bridge *br, struct net_bridge_port *source,
156 static inline unsigned long hold_time(const struct net_bridge *br)
158 return br->topology_change ? br->forward_delay : br->ageing_time;
161 static inline int has_expired(const struct net_bridge *br,
165 && time_before_eq(fdb->ageing_timer + hold_time(br), jiffies);
183 struct net_bridge *br = p->br;
186 spin_lock_bh(&br->hash_lock);
191 hlist_for_each(h, &br->hash[i]) {
198 list_for_each_entry(op, &br->port_list, list) {
215 fdb_insert(br, p, newaddr);
217 spin_unlock_bh(&br->hash_lock);
222 struct net_bridge *br = (struct net_bridge *)_data;
223 unsigned long delay = hold_time(br);
224 unsigned long next_timer = jiffies + br->forward_delay;
227 spin_lock_bh(&br->hash_lock);
232 hlist_for_each_entry_safe(f, h, n, &br->hash[i], hlist) {
261 spin_unlock_bh(&br->hash_lock);
265 mod_timer(&br->gc_timer, round_jiffies(next_timer + HZ/4));
269 void br_fdb_flush(struct net_bridge *br)
273 spin_lock_bh(&br->hash_lock);
277 hlist_for_each_entry_safe(f, h, n, &br->hash[i], hlist) {
282 spin_unlock_bh(&br->hash_lock);
288 void br_fdb_delete_by_port(struct net_bridge *br,
294 spin_lock_bh(&br->hash_lock);
298 hlist_for_each_safe(h, g, &br->hash[i]) {
313 list_for_each_entry(op, &br->port_list, list) {
327 spin_unlock_bh(&br->hash_lock);
331 struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br,
337 hlist_for_each_entry_rcu(fdb, h, &br->hash[br_mac_hash(addr)], hlist) {
339 if (unlikely(has_expired(br, fdb)))
349 struct net_bridge_fdb_entry *br_fdb_get(struct net_bridge *br,
355 fdb = __br_fdb_get(br, addr);
388 int br_fdb_fillbuf(struct net_bridge *br, void *buf,
400 hlist_for_each_entry_rcu(f, h, &br->hash[i], hlist) {
404 if (has_expired(br, f))
475 static int fdb_insert(struct net_bridge *br, struct net_bridge_port *source,
478 struct hlist_head *head = &br->hash[br_mac_hash(addr)];
504 int br_fdb_insert(struct net_bridge *br, struct net_bridge_port *source,
509 spin_lock_bh(&br->hash_lock);
510 ret = fdb_insert(br, source, addr);
511 spin_unlock_bh(&br->hash_lock);
515 void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source,
518 struct hlist_head *head = &br->hash[br_mac_hash(addr)];
522 if (hold_time(br) == 0)
548 spin_lock(&br->hash_lock);
554 spin_unlock(&br->hash_lock);