Lines Matching refs:f
133 static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f) in fdb_delete() argument
135 if (f->is_static) in fdb_delete()
136 fdb_del_hw_addr(br, f->addr.addr); in fdb_delete()
138 hlist_del_rcu(&f->hlist); in fdb_delete()
139 fdb_notify(br, f, RTM_DELNEIGH); in fdb_delete()
140 call_rcu(&f->rcu, fdb_rcu_free); in fdb_delete()
146 struct net_bridge_fdb_entry *f) in fdb_delete_local() argument
148 const unsigned char *addr = f->addr.addr; in fdb_delete_local()
149 u16 vid = f->vlan_id; in fdb_delete_local()
156 f->dst = op; in fdb_delete_local()
157 f->added_by_user = 0; in fdb_delete_local()
165 f->dst = NULL; in fdb_delete_local()
166 f->added_by_user = 0; in fdb_delete_local()
170 fdb_delete(br, f); in fdb_delete_local()
178 struct net_bridge_fdb_entry *f; in br_fdb_find_delete_local() local
181 f = fdb_find(head, addr, vid); in br_fdb_find_delete_local()
182 if (f && f->is_local && !f->added_by_user && f->dst == p) in br_fdb_find_delete_local()
183 fdb_delete_local(br, p, f); in br_fdb_find_delete_local()
201 struct net_bridge_fdb_entry *f; in br_fdb_changeaddr() local
203 f = hlist_entry(h, struct net_bridge_fdb_entry, hlist); in br_fdb_changeaddr()
204 if (f->dst == p && f->is_local && !f->added_by_user) { in br_fdb_changeaddr()
206 fdb_delete_local(br, p, f); in br_fdb_changeaddr()
238 struct net_bridge_fdb_entry *f; in br_fdb_change_mac_address() local
245 f = __br_fdb_get(br, br->dev->dev_addr, 0); in br_fdb_change_mac_address()
246 if (f && f->is_local && !f->dst) in br_fdb_change_mac_address()
247 fdb_delete_local(br, NULL, f); in br_fdb_change_mac_address()
260 f = __br_fdb_get(br, br->dev->dev_addr, vid); in br_fdb_change_mac_address()
261 if (f && f->is_local && !f->dst) in br_fdb_change_mac_address()
262 fdb_delete_local(br, NULL, f); in br_fdb_change_mac_address()
278 struct net_bridge_fdb_entry *f; in br_fdb_cleanup() local
281 hlist_for_each_entry_safe(f, n, &br->hash[i], hlist) { in br_fdb_cleanup()
283 if (f->is_static) in br_fdb_cleanup()
285 this_timer = f->updated + delay; in br_fdb_cleanup()
287 fdb_delete(br, f); in br_fdb_cleanup()
304 struct net_bridge_fdb_entry *f; in br_fdb_flush() local
306 hlist_for_each_entry_safe(f, n, &br->hash[i], hlist) { in br_fdb_flush()
307 if (!f->is_static) in br_fdb_flush()
308 fdb_delete(br, f); in br_fdb_flush()
328 struct net_bridge_fdb_entry *f in br_fdb_delete_by_port() local
330 if (f->dst != p) in br_fdb_delete_by_port()
333 if (f->is_static && !do_all) in br_fdb_delete_by_port()
336 if (f->is_local) in br_fdb_delete_by_port()
337 fdb_delete_local(br, p, f); in br_fdb_delete_by_port()
339 fdb_delete(br, f); in br_fdb_delete_by_port()
398 struct net_bridge_fdb_entry *f; in br_fdb_fillbuf() local
404 hlist_for_each_entry_rcu(f, &br->hash[i], hlist) { in br_fdb_fillbuf()
408 if (has_expired(br, f)) in br_fdb_fillbuf()
412 if (!f->dst) in br_fdb_fillbuf()
421 memcpy(fe->mac_addr, f->addr.addr, ETH_ALEN); in br_fdb_fillbuf()
424 fe->port_no = f->dst->port_no; in br_fdb_fillbuf()
425 fe->port_hi = f->dst->port_no >> 8; in br_fdb_fillbuf()
427 fe->is_local = f->is_local; in br_fdb_fillbuf()
428 if (!f->is_static) in br_fdb_fillbuf()
429 fe->ageing_timer_value = jiffies_delta_to_clock_t(jiffies - f->updated); in br_fdb_fillbuf()
694 struct net_bridge_fdb_entry *f; in br_fdb_dump() local
696 hlist_for_each_entry_rcu(f, &br->hash[i], hlist) { in br_fdb_dump()
701 (!f->dst || f->dst->dev != filter_dev)) { in br_fdb_dump()
709 if (f->dst) in br_fdb_dump()
712 if (!filter_dev && f->dst) in br_fdb_dump()
715 if (fdb_fill_info(skb, br, f, in br_fdb_dump()