Lines Matching defs:eht_set

80 br_multicast_eht_set_entry_lookup(struct net_bridge_group_eht_set *eht_set,
83 struct rb_node *node = eht_set->entry_tree.rb_node;
151 struct net_bridge_group_eht_set *eht_set;
153 eht_set = container_of(gc, struct net_bridge_group_eht_set, mcast_gc);
154 WARN_ON(!RB_EMPTY_NODE(&eht_set->rb_node));
155 WARN_ON(!RB_EMPTY_ROOT(&eht_set->entry_tree));
157 timer_shutdown_sync(&eht_set->timer);
158 kfree(eht_set);
166 rb_erase(&set_h->rb_node, &set_h->eht_set->entry_tree);
179 static void br_multicast_del_eht_set(struct net_bridge_group_eht_set *eht_set)
184 while ((node = rb_first(&eht_set->entry_tree))) {
190 rb_erase(&eht_set->rb_node, &eht_set->pg->eht_set_tree);
191 RB_CLEAR_NODE(&eht_set->rb_node);
192 hlist_add_head(&eht_set->mcast_gc.gc_node, &eht_set->br->mcast_gc_list);
193 queue_work(system_long_wq, &eht_set->br->mcast_gc_work);
198 struct net_bridge_group_eht_set *eht_set;
202 eht_set = rb_entry(node, struct net_bridge_group_eht_set,
204 br_multicast_del_eht_set(eht_set);
217 br_multicast_del_eht_set_entry(set_h->eht_set->pg,
218 &set_h->eht_set->src_addr,
226 struct net_bridge_group_eht_set *eht_set = from_timer(eht_set, t,
228 struct net_bridge *br = eht_set->br;
231 if (RB_EMPTY_NODE(&eht_set->rb_node) || timer_pending(&eht_set->timer))
234 br_multicast_del_eht_set(eht_set);
285 struct net_bridge_group_eht_set *eht_set,
289 struct rb_node **link = &eht_set->entry_tree.rb_node, *parent = NULL;
320 set_h->eht_set = eht_set;
327 rb_insert_color(&set_h->rb_node, &eht_set->entry_tree);
342 struct net_bridge_group_eht_set *eht_set;
360 eht_set = kzalloc(sizeof(*eht_set), GFP_ATOMIC);
361 if (!eht_set)
364 memcpy(&eht_set->src_addr, src_addr, sizeof(*src_addr));
365 eht_set->mcast_gc.destroy = br_multicast_destroy_eht_set;
366 eht_set->pg = pg;
367 eht_set->br = pg->key.port->br;
368 eht_set->entry_tree = RB_ROOT;
369 timer_setup(&eht_set->timer, br_multicast_eht_set_expired, 0);
371 rb_link_node(&eht_set->rb_node, parent, link);
372 rb_insert_color(&eht_set->rb_node, &pg->eht_set_tree);
374 return eht_set;
427 struct net_bridge_group_eht_set *eht_set;
434 eht_set = __eht_lookup_create_set(pg, src_addr);
435 if (!eht_set)
442 set_h = __eht_lookup_create_set_entry(br, eht_set, eht_host,
448 mod_timer(&eht_set->timer, jiffies + br_multicast_gmi(brmctx));
456 if (RB_EMPTY_ROOT(&eht_set->entry_tree))
457 br_multicast_del_eht_set(eht_set);
465 struct net_bridge_group_eht_set *eht_set;
468 eht_set = br_multicast_eht_set_lookup(pg, src_addr);
469 if (!eht_set)
472 set_h = br_multicast_eht_set_entry_lookup(eht_set, h_addr);
478 if (RB_EMPTY_ROOT(&eht_set->entry_tree)) {
479 br_multicast_del_eht_set(eht_set);
499 br_multicast_del_eht_set_entry(set_h->eht_set->pg,
500 &set_h->eht_set->src_addr,
626 struct net_bridge_group_eht_set *eht_set;
652 eht_set = br_multicast_eht_set_lookup(pg,
654 if (!eht_set)
656 mod_timer(&eht_set->timer, jiffies + br_multicast_lmqt(brmctx));