Lines Matching refs:bat_priv

70 static void batadv_mcast_start_timer(struct batadv_priv *bat_priv)  in batadv_mcast_start_timer()  argument
72 queue_delayed_work(batadv_event_workqueue, &bat_priv->mcast.work, in batadv_mcast_start_timer()
166 static u8 batadv_mcast_mla_rtr_flags_softif_get(struct batadv_priv *bat_priv, in batadv_mcast_mla_rtr_flags_softif_get() argument
169 struct net_device *dev = bridge ? bridge : bat_priv->soft_iface; in batadv_mcast_mla_rtr_flags_softif_get()
196 static u8 batadv_mcast_mla_rtr_flags_bridge_get(struct batadv_priv *bat_priv, in batadv_mcast_mla_rtr_flags_bridge_get() argument
199 struct net_device *dev = bat_priv->soft_iface; in batadv_mcast_mla_rtr_flags_bridge_get()
228 static u8 batadv_mcast_mla_rtr_flags_get(struct batadv_priv *bat_priv, in batadv_mcast_mla_rtr_flags_get() argument
233 flags &= batadv_mcast_mla_rtr_flags_softif_get(bat_priv, bridge); in batadv_mcast_mla_rtr_flags_get()
234 flags &= batadv_mcast_mla_rtr_flags_bridge_get(bat_priv, bridge); in batadv_mcast_mla_rtr_flags_get()
247 batadv_mcast_mla_flags_get(struct batadv_priv *bat_priv) in batadv_mcast_mla_flags_get() argument
249 struct net_device *dev = bat_priv->soft_iface; in batadv_mcast_mla_flags_get()
258 mla_flags.tvlv_flags |= batadv_mcast_mla_rtr_flags_get(bat_priv, in batadv_mcast_mla_flags_get()
653 static void batadv_mcast_mla_tt_retract(struct batadv_priv *bat_priv, in batadv_mcast_mla_tt_retract() argument
659 hlist_for_each_entry_safe(mcast_entry, tmp, &bat_priv->mcast.mla_list, in batadv_mcast_mla_tt_retract()
666 batadv_tt_local_remove(bat_priv, mcast_entry->addr, in batadv_mcast_mla_tt_retract()
683 static void batadv_mcast_mla_tt_add(struct batadv_priv *bat_priv, in batadv_mcast_mla_tt_add() argument
694 &bat_priv->mcast.mla_list)) in batadv_mcast_mla_tt_add()
697 if (!batadv_tt_local_add(bat_priv->soft_iface, in batadv_mcast_mla_tt_add()
703 hlist_add_head(&mcast_entry->list, &bat_priv->mcast.mla_list); in batadv_mcast_mla_tt_add()
730 batadv_mcast_querier_log(struct batadv_priv *bat_priv, char *str_proto, in batadv_mcast_querier_log() argument
735 batadv_info(bat_priv->soft_iface, "%s Querier appeared\n", in batadv_mcast_querier_log()
738 batadv_info(bat_priv->soft_iface, in batadv_mcast_querier_log()
741 else if (!bat_priv->mcast.mla_flags.bridged && !new_state->exists) in batadv_mcast_querier_log()
742 batadv_info(bat_priv->soft_iface, in batadv_mcast_querier_log()
749 batadv_dbg(BATADV_DBG_MCAST, bat_priv, in batadv_mcast_querier_log()
753 batadv_dbg(BATADV_DBG_MCAST, bat_priv, in batadv_mcast_querier_log()
776 batadv_mcast_bridge_log(struct batadv_priv *bat_priv, in batadv_mcast_bridge_log() argument
779 struct batadv_mcast_mla_flags *old_flags = &bat_priv->mcast.mla_flags; in batadv_mcast_bridge_log()
782 batadv_dbg(BATADV_DBG_MCAST, bat_priv, in batadv_mcast_bridge_log()
785 batadv_dbg(BATADV_DBG_MCAST, bat_priv, in batadv_mcast_bridge_log()
789 batadv_mcast_querier_log(bat_priv, "IGMP", in batadv_mcast_bridge_log()
792 batadv_mcast_querier_log(bat_priv, "MLD", in batadv_mcast_bridge_log()
806 static void batadv_mcast_flags_log(struct batadv_priv *bat_priv, u8 flags) in batadv_mcast_flags_log() argument
808 bool old_enabled = bat_priv->mcast.mla_flags.enabled; in batadv_mcast_flags_log()
809 u8 old_flags = bat_priv->mcast.mla_flags.tvlv_flags; in batadv_mcast_flags_log()
819 batadv_dbg(BATADV_DBG_MCAST, bat_priv, in batadv_mcast_flags_log()
838 batadv_mcast_mla_flags_update(struct batadv_priv *bat_priv, in batadv_mcast_mla_flags_update() argument
843 if (!memcmp(flags, &bat_priv->mcast.mla_flags, sizeof(*flags))) in batadv_mcast_mla_flags_update()
846 batadv_mcast_bridge_log(bat_priv, flags); in batadv_mcast_mla_flags_update()
847 batadv_mcast_flags_log(bat_priv, flags->tvlv_flags); in batadv_mcast_mla_flags_update()
852 batadv_tvlv_container_register(bat_priv, BATADV_TVLV_MCAST, 2, in batadv_mcast_mla_flags_update()
855 bat_priv->mcast.mla_flags = *flags; in batadv_mcast_mla_flags_update()
870 static void __batadv_mcast_mla_update(struct batadv_priv *bat_priv) in __batadv_mcast_mla_update() argument
872 struct net_device *soft_iface = bat_priv->soft_iface; in __batadv_mcast_mla_update()
877 flags = batadv_mcast_mla_flags_get(bat_priv); in __batadv_mcast_mla_update()
887 spin_lock(&bat_priv->mcast.mla_lock); in __batadv_mcast_mla_update()
888 batadv_mcast_mla_tt_retract(bat_priv, &mcast_list); in __batadv_mcast_mla_update()
889 batadv_mcast_mla_tt_add(bat_priv, &mcast_list); in __batadv_mcast_mla_update()
890 batadv_mcast_mla_flags_update(bat_priv, &flags); in __batadv_mcast_mla_update()
891 spin_unlock(&bat_priv->mcast.mla_lock); in __batadv_mcast_mla_update()
910 struct batadv_priv *bat_priv; in batadv_mcast_mla_update() local
914 bat_priv = container_of(priv_mcast, struct batadv_priv, mcast); in batadv_mcast_mla_update()
916 __batadv_mcast_mla_update(bat_priv); in batadv_mcast_mla_update()
917 batadv_mcast_start_timer(bat_priv); in batadv_mcast_mla_update()
959 static int batadv_mcast_forw_mode_check_ipv4(struct batadv_priv *bat_priv, in batadv_mcast_forw_mode_check_ipv4() argument
1023 static int batadv_mcast_forw_mode_check_ipv6(struct batadv_priv *bat_priv, in batadv_mcast_forw_mode_check_ipv6() argument
1065 static int batadv_mcast_forw_mode_check(struct batadv_priv *bat_priv, in batadv_mcast_forw_mode_check() argument
1072 if (!atomic_read(&bat_priv->multicast_mode)) in batadv_mcast_forw_mode_check()
1077 return batadv_mcast_forw_mode_check_ipv4(bat_priv, skb, in batadv_mcast_forw_mode_check()
1084 return batadv_mcast_forw_mode_check_ipv6(bat_priv, skb, in batadv_mcast_forw_mode_check()
1102 static int batadv_mcast_forw_want_all_ip_count(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_all_ip_count() argument
1107 return atomic_read(&bat_priv->mcast.num_want_all_ipv4); in batadv_mcast_forw_want_all_ip_count()
1109 return atomic_read(&bat_priv->mcast.num_want_all_ipv6); in batadv_mcast_forw_want_all_ip_count()
1126 static int batadv_mcast_forw_rtr_count(struct batadv_priv *bat_priv, in batadv_mcast_forw_rtr_count() argument
1131 return atomic_read(&bat_priv->mcast.num_want_all_rtr4); in batadv_mcast_forw_rtr_count()
1133 return atomic_read(&bat_priv->mcast.num_want_all_rtr6); in batadv_mcast_forw_rtr_count()
1148 batadv_mcast_forw_tt_node_get(struct batadv_priv *bat_priv, in batadv_mcast_forw_tt_node_get() argument
1151 return batadv_transtable_search(bat_priv, NULL, ethhdr->h_dest, in batadv_mcast_forw_tt_node_get()
1163 batadv_mcast_forw_ipv4_node_get(struct batadv_priv *bat_priv) in batadv_mcast_forw_ipv4_node_get() argument
1169 &bat_priv->mcast.want_all_ipv4_list, in batadv_mcast_forw_ipv4_node_get()
1190 batadv_mcast_forw_ipv6_node_get(struct batadv_priv *bat_priv) in batadv_mcast_forw_ipv6_node_get() argument
1196 &bat_priv->mcast.want_all_ipv6_list, in batadv_mcast_forw_ipv6_node_get()
1219 batadv_mcast_forw_ip_node_get(struct batadv_priv *bat_priv, in batadv_mcast_forw_ip_node_get() argument
1224 return batadv_mcast_forw_ipv4_node_get(bat_priv); in batadv_mcast_forw_ip_node_get()
1226 return batadv_mcast_forw_ipv6_node_get(bat_priv); in batadv_mcast_forw_ip_node_get()
1241 batadv_mcast_forw_unsnoop_node_get(struct batadv_priv *bat_priv) in batadv_mcast_forw_unsnoop_node_get() argument
1247 &bat_priv->mcast.want_all_unsnoopables_list, in batadv_mcast_forw_unsnoop_node_get()
1268 batadv_mcast_forw_rtr4_node_get(struct batadv_priv *bat_priv) in batadv_mcast_forw_rtr4_node_get() argument
1274 &bat_priv->mcast.want_all_rtr4_list, in batadv_mcast_forw_rtr4_node_get()
1295 batadv_mcast_forw_rtr6_node_get(struct batadv_priv *bat_priv) in batadv_mcast_forw_rtr6_node_get() argument
1301 &bat_priv->mcast.want_all_rtr6_list, in batadv_mcast_forw_rtr6_node_get()
1324 batadv_mcast_forw_rtr_node_get(struct batadv_priv *bat_priv, in batadv_mcast_forw_rtr_node_get() argument
1329 return batadv_mcast_forw_rtr4_node_get(bat_priv); in batadv_mcast_forw_rtr_node_get()
1331 return batadv_mcast_forw_rtr6_node_get(bat_priv); in batadv_mcast_forw_rtr_node_get()
1350 batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, in batadv_mcast_forw_mode() argument
1359 ret = batadv_mcast_forw_mode_check(bat_priv, skb, &is_unsnoopable, in batadv_mcast_forw_mode()
1368 tt_count = batadv_tt_global_hash_count(bat_priv, ethhdr->h_dest, in batadv_mcast_forw_mode()
1370 ip_count = batadv_mcast_forw_want_all_ip_count(bat_priv, ethhdr); in batadv_mcast_forw_mode()
1372 atomic_read(&bat_priv->mcast.num_want_all_unsnoopables); in batadv_mcast_forw_mode()
1373 rtr_count = batadv_mcast_forw_rtr_count(bat_priv, *is_routable); in batadv_mcast_forw_mode()
1380 *orig = batadv_mcast_forw_tt_node_get(bat_priv, ethhdr); in batadv_mcast_forw_mode()
1382 *orig = batadv_mcast_forw_ip_node_get(bat_priv, ethhdr); in batadv_mcast_forw_mode()
1384 *orig = batadv_mcast_forw_unsnoop_node_get(bat_priv); in batadv_mcast_forw_mode()
1386 *orig = batadv_mcast_forw_rtr_node_get(bat_priv, in batadv_mcast_forw_mode()
1396 mcast_fanout = atomic_read(&bat_priv->multicast_fanout); in batadv_mcast_forw_mode()
1414 int batadv_mcast_forw_send_orig(struct batadv_priv *bat_priv, in batadv_mcast_forw_send_orig() argument
1425 if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig, vid)) { in batadv_mcast_forw_send_orig()
1430 return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0, in batadv_mcast_forw_send_orig()
1448 batadv_mcast_forw_tt(struct batadv_priv *bat_priv, struct sk_buff *skb, in batadv_mcast_forw_tt() argument
1459 tt_global = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_mcast_forw_tt()
1471 batadv_mcast_forw_send_orig(bat_priv, newskb, vid, in batadv_mcast_forw_tt()
1496 batadv_mcast_forw_want_all_ipv4(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_all_ipv4() argument
1505 &bat_priv->mcast.want_all_ipv4_list, in batadv_mcast_forw_want_all_ipv4()
1513 batadv_mcast_forw_send_orig(bat_priv, newskb, vid, orig_node); in batadv_mcast_forw_want_all_ipv4()
1533 batadv_mcast_forw_want_all_ipv6(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_all_ipv6() argument
1542 &bat_priv->mcast.want_all_ipv6_list, in batadv_mcast_forw_want_all_ipv6()
1550 batadv_mcast_forw_send_orig(bat_priv, newskb, vid, orig_node); in batadv_mcast_forw_want_all_ipv6()
1571 batadv_mcast_forw_want_all(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_all() argument
1576 return batadv_mcast_forw_want_all_ipv4(bat_priv, skb, vid); in batadv_mcast_forw_want_all()
1578 return batadv_mcast_forw_want_all_ipv6(bat_priv, skb, vid); in batadv_mcast_forw_want_all()
1599 batadv_mcast_forw_want_all_rtr4(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_all_rtr4() argument
1608 &bat_priv->mcast.want_all_rtr4_list, in batadv_mcast_forw_want_all_rtr4()
1616 batadv_mcast_forw_send_orig(bat_priv, newskb, vid, orig_node); in batadv_mcast_forw_want_all_rtr4()
1636 batadv_mcast_forw_want_all_rtr6(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_all_rtr6() argument
1645 &bat_priv->mcast.want_all_rtr6_list, in batadv_mcast_forw_want_all_rtr6()
1653 batadv_mcast_forw_send_orig(bat_priv, newskb, vid, orig_node); in batadv_mcast_forw_want_all_rtr6()
1674 batadv_mcast_forw_want_rtr(struct batadv_priv *bat_priv, in batadv_mcast_forw_want_rtr() argument
1679 return batadv_mcast_forw_want_all_rtr4(bat_priv, skb, vid); in batadv_mcast_forw_want_rtr()
1681 return batadv_mcast_forw_want_all_rtr6(bat_priv, skb, vid); in batadv_mcast_forw_want_rtr()
1705 int batadv_mcast_forw_send(struct batadv_priv *bat_priv, struct sk_buff *skb, in batadv_mcast_forw_send() argument
1710 ret = batadv_mcast_forw_tt(bat_priv, skb, vid); in batadv_mcast_forw_send()
1716 ret = batadv_mcast_forw_want_all(bat_priv, skb, vid); in batadv_mcast_forw_send()
1725 ret = batadv_mcast_forw_want_rtr(bat_priv, skb, vid); in batadv_mcast_forw_send()
1748 static void batadv_mcast_want_unsnoop_update(struct batadv_priv *bat_priv, in batadv_mcast_want_unsnoop_update() argument
1753 struct hlist_head *head = &bat_priv->mcast.want_all_unsnoopables_list; in batadv_mcast_want_unsnoop_update()
1760 atomic_inc(&bat_priv->mcast.num_want_all_unsnoopables); in batadv_mcast_want_unsnoop_update()
1762 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_unsnoop_update()
1767 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_unsnoop_update()
1771 atomic_dec(&bat_priv->mcast.num_want_all_unsnoopables); in batadv_mcast_want_unsnoop_update()
1773 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_unsnoop_update()
1778 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_unsnoop_update()
1793 static void batadv_mcast_want_ipv4_update(struct batadv_priv *bat_priv, in batadv_mcast_want_ipv4_update() argument
1798 struct hlist_head *head = &bat_priv->mcast.want_all_ipv4_list; in batadv_mcast_want_ipv4_update()
1805 atomic_inc(&bat_priv->mcast.num_want_all_ipv4); in batadv_mcast_want_ipv4_update()
1807 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv4_update()
1812 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv4_update()
1816 atomic_dec(&bat_priv->mcast.num_want_all_ipv4); in batadv_mcast_want_ipv4_update()
1818 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv4_update()
1823 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv4_update()
1838 static void batadv_mcast_want_ipv6_update(struct batadv_priv *bat_priv, in batadv_mcast_want_ipv6_update() argument
1843 struct hlist_head *head = &bat_priv->mcast.want_all_ipv6_list; in batadv_mcast_want_ipv6_update()
1850 atomic_inc(&bat_priv->mcast.num_want_all_ipv6); in batadv_mcast_want_ipv6_update()
1852 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv6_update()
1857 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv6_update()
1861 atomic_dec(&bat_priv->mcast.num_want_all_ipv6); in batadv_mcast_want_ipv6_update()
1863 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv6_update()
1868 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_ipv6_update()
1883 static void batadv_mcast_want_rtr4_update(struct batadv_priv *bat_priv, in batadv_mcast_want_rtr4_update() argument
1888 struct hlist_head *head = &bat_priv->mcast.want_all_rtr4_list; in batadv_mcast_want_rtr4_update()
1895 atomic_inc(&bat_priv->mcast.num_want_all_rtr4); in batadv_mcast_want_rtr4_update()
1897 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr4_update()
1902 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr4_update()
1906 atomic_dec(&bat_priv->mcast.num_want_all_rtr4); in batadv_mcast_want_rtr4_update()
1908 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr4_update()
1913 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr4_update()
1928 static void batadv_mcast_want_rtr6_update(struct batadv_priv *bat_priv, in batadv_mcast_want_rtr6_update() argument
1933 struct hlist_head *head = &bat_priv->mcast.want_all_rtr6_list; in batadv_mcast_want_rtr6_update()
1940 atomic_inc(&bat_priv->mcast.num_want_all_rtr6); in batadv_mcast_want_rtr6_update()
1942 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr6_update()
1947 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr6_update()
1951 atomic_dec(&bat_priv->mcast.num_want_all_rtr6); in batadv_mcast_want_rtr6_update()
1953 spin_lock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr6_update()
1958 spin_unlock_bh(&bat_priv->mcast.want_lists_lock); in batadv_mcast_want_rtr6_update()
2001 static void batadv_mcast_tvlv_ogm_handler(struct batadv_priv *bat_priv, in batadv_mcast_tvlv_ogm_handler() argument
2025 batadv_mcast_want_unsnoop_update(bat_priv, orig, mcast_flags); in batadv_mcast_tvlv_ogm_handler()
2026 batadv_mcast_want_ipv4_update(bat_priv, orig, mcast_flags); in batadv_mcast_tvlv_ogm_handler()
2027 batadv_mcast_want_ipv6_update(bat_priv, orig, mcast_flags); in batadv_mcast_tvlv_ogm_handler()
2028 batadv_mcast_want_rtr4_update(bat_priv, orig, mcast_flags); in batadv_mcast_tvlv_ogm_handler()
2029 batadv_mcast_want_rtr6_update(bat_priv, orig, mcast_flags); in batadv_mcast_tvlv_ogm_handler()
2039 void batadv_mcast_init(struct batadv_priv *bat_priv) in batadv_mcast_init() argument
2041 batadv_tvlv_handler_register(bat_priv, batadv_mcast_tvlv_ogm_handler, in batadv_mcast_init()
2045 INIT_DELAYED_WORK(&bat_priv->mcast.work, batadv_mcast_mla_update); in batadv_mcast_init()
2046 batadv_mcast_start_timer(bat_priv); in batadv_mcast_init()
2057 struct batadv_priv *bat_priv) in batadv_mcast_mesh_info_put() argument
2059 u32 flags = bat_priv->mcast.mla_flags.tvlv_flags; in batadv_mcast_mesh_info_put()
2062 if (bat_priv->mcast.mla_flags.bridged) { in batadv_mcast_mesh_info_put()
2065 if (bat_priv->mcast.mla_flags.querier_ipv4.exists) in batadv_mcast_mesh_info_put()
2067 if (bat_priv->mcast.mla_flags.querier_ipv6.exists) in batadv_mcast_mesh_info_put()
2069 if (bat_priv->mcast.mla_flags.querier_ipv4.shadowing) in batadv_mcast_mesh_info_put()
2071 if (bat_priv->mcast.mla_flags.querier_ipv6.shadowing) in batadv_mcast_mesh_info_put()
2187 struct batadv_priv *bat_priv, long *bucket, long *idx) in __batadv_mcast_flags_dump() argument
2189 struct batadv_hashtable *hash = bat_priv->orig_hash; in __batadv_mcast_flags_dump()
2223 struct batadv_priv *bat_priv; in batadv_mcast_netlink_get_primary() local
2237 bat_priv = netdev_priv(soft_iface); in batadv_mcast_netlink_get_primary()
2239 hard_iface = batadv_primary_if_get_selected(bat_priv); in batadv_mcast_netlink_get_primary()
2267 struct batadv_priv *bat_priv; in batadv_mcast_flags_dump() local
2276 bat_priv = netdev_priv(primary_if->soft_iface); in batadv_mcast_flags_dump()
2277 ret = __batadv_mcast_flags_dump(msg, portid, cb, bat_priv, bucket, idx); in batadv_mcast_flags_dump()
2287 void batadv_mcast_free(struct batadv_priv *bat_priv) in batadv_mcast_free() argument
2289 cancel_delayed_work_sync(&bat_priv->mcast.work); in batadv_mcast_free()
2291 batadv_tvlv_container_unregister(bat_priv, BATADV_TVLV_MCAST, 2); in batadv_mcast_free()
2292 batadv_tvlv_handler_unregister(bat_priv, BATADV_TVLV_MCAST, 2); in batadv_mcast_free()
2295 batadv_mcast_mla_tt_retract(bat_priv, NULL); in batadv_mcast_free()
2304 struct batadv_priv *bat_priv = orig->bat_priv; in batadv_mcast_purge_orig() local
2308 batadv_mcast_want_unsnoop_update(bat_priv, orig, BATADV_NO_FLAGS); in batadv_mcast_purge_orig()
2309 batadv_mcast_want_ipv4_update(bat_priv, orig, BATADV_NO_FLAGS); in batadv_mcast_purge_orig()
2310 batadv_mcast_want_ipv6_update(bat_priv, orig, BATADV_NO_FLAGS); in batadv_mcast_purge_orig()
2311 batadv_mcast_want_rtr4_update(bat_priv, orig, in batadv_mcast_purge_orig()
2313 batadv_mcast_want_rtr6_update(bat_priv, orig, in batadv_mcast_purge_orig()