Lines Matching refs:inm

855 	struct in6_multi        *inm;  in mld_v1_input_query()  local
933 IN6_FIRST_MULTI(step, inm); in mld_v1_input_query()
934 while (inm != NULL) { in mld_v1_input_query()
935 IN6M_LOCK(inm); in mld_v1_input_query()
936 if (inm->in6m_ifp == ifp) { in mld_v1_input_query()
937 mtp.cst += mld_v1_update_group(inm, timer); in mld_v1_input_query()
939 IN6M_UNLOCK(inm); in mld_v1_input_query()
940 IN6_NEXT_MULTI(step, inm); in mld_v1_input_query()
950 IN6_LOOKUP_MULTI(&mld->mld_addr, ifp, inm); in mld_v1_input_query()
953 if (inm != NULL) { in mld_v1_input_query()
954 IN6M_LOCK(inm); in mld_v1_input_query()
959 mtp.cst = mld_v1_update_group(inm, timer); in mld_v1_input_query()
960 IN6M_UNLOCK(inm); in mld_v1_input_query()
961 IN6M_REMREF(inm); /* from IN6_LOOKUP_MULTI */ in mld_v1_input_query()
988 mld_v1_update_group(struct in6_multi *inm, const int timer) in mld_v1_update_group() argument
990 IN6M_LOCK_ASSERT_HELD(inm); in mld_v1_update_group()
993 ip6_sprintf(&inm->in6m_addr), in mld_v1_update_group()
994 if_name(inm->in6m_ifp), timer)); in mld_v1_update_group()
996 switch (inm->in6m_state) { in mld_v1_update_group()
1001 if (inm->in6m_timer != 0 && in mld_v1_update_group()
1002 inm->in6m_timer <= timer) { in mld_v1_update_group()
1014 inm->in6m_state = MLD_REPORTING_MEMBER; in mld_v1_update_group()
1015 inm->in6m_timer = MLD_RANDOM_DELAY(timer); in mld_v1_update_group()
1019 inm->in6m_state = MLD_AWAKENING_MEMBER; in mld_v1_update_group()
1025 return inm->in6m_timer; in mld_v1_update_group()
1042 struct in6_multi *inm; in mld_v2_input_query() local
1183 IN6_LOOKUP_MULTI(&mld->mld_addr, ifp, inm); in mld_v2_input_query()
1185 if (inm == NULL) { in mld_v2_input_query()
1189 IN6M_LOCK(inm); in mld_v2_input_query()
1191 if (!ratecheck(&inm->in6m_lastgsrtv, in mld_v2_input_query()
1195 IN6M_UNLOCK(inm); in mld_v2_input_query()
1196 IN6M_REMREF(inm); /* from IN6_LOOKUP_MULTI */ in mld_v2_input_query()
1213 (void) mld_v2_process_group_query(inm, timer, m, off); in mld_v2_input_query()
1214 mtp.cst = inm->in6m_timer; in mld_v2_input_query()
1216 IN6M_UNLOCK(inm); in mld_v2_input_query()
1217 IN6M_REMREF(inm); /* from IN6_LOOKUP_MULTI */ in mld_v2_input_query()
1238 mld_v2_process_group_query(struct in6_multi *inm, int timer, struct mbuf *m0, in mld_v2_process_group_query() argument
1245 IN6M_LOCK_ASSERT_HELD(inm); in mld_v2_process_group_query()
1250 switch (inm->in6m_state) { in mld_v2_process_group_query()
1274 if (inm->in6m_state == MLD_G_QUERY_PENDING_MEMBER || in mld_v2_process_group_query()
1275 inm->in6m_state == MLD_SG_QUERY_PENDING_MEMBER) { in mld_v2_process_group_query()
1276 in6m_clear_recorded(inm); in mld_v2_process_group_query()
1277 timer = min(inm->in6m_timer, timer); in mld_v2_process_group_query()
1279 inm->in6m_state = MLD_G_QUERY_PENDING_MEMBER; in mld_v2_process_group_query()
1280 inm->in6m_timer = MLD_RANDOM_DELAY(timer); in mld_v2_process_group_query()
1288 if (inm->in6m_state == MLD_G_QUERY_PENDING_MEMBER) { in mld_v2_process_group_query()
1289 timer = min(inm->in6m_timer, timer); in mld_v2_process_group_query()
1290 inm->in6m_timer = MLD_RANDOM_DELAY(timer); in mld_v2_process_group_query()
1305 if (inm->in6m_nsrc > 0) { in mld_v2_process_group_query()
1316 retval = in6m_record_source(inm, &addr); in mld_v2_process_group_query()
1336 inm->in6m_state = MLD_SG_QUERY_PENDING_MEMBER; in mld_v2_process_group_query()
1337 inm->in6m_timer = MLD_RANDOM_DELAY(timer); in mld_v2_process_group_query()
1357 struct in6_multi *inm; in mld_v1_input_report() local
1441 IN6_LOOKUP_MULTI(&mld->mld_addr, ifp, inm); in mld_v1_input_report()
1444 if (inm != NULL) { in mld_v1_input_report()
1447 IN6M_LOCK(inm); in mld_v1_input_report()
1448 mli = inm->in6m_mli; in mld_v1_input_report()
1458 IN6M_UNLOCK(inm); in mld_v1_input_report()
1459 IN6M_REMREF(inm); /* from IN6_LOOKUP_MULTI */ in mld_v1_input_report()
1464 inm->in6m_timer = 0; in mld_v1_input_report()
1466 switch (inm->in6m_state) { in mld_v1_input_report()
1480 inm->in6m_state = MLD_LAZY_MEMBER; in mld_v1_input_report()
1487 IN6M_UNLOCK(inm); in mld_v1_input_report()
1488 IN6M_REMREF(inm); /* from IN6_LOOKUP_MULTI */ in mld_v1_input_report()
1627 struct in6_multi *inm; in mld_timeout() local
1767 IN6_FIRST_MULTI(step, inm); in mld_timeout()
1768 while (inm != NULL) { in mld_timeout()
1769 IN6M_LOCK(inm); in mld_timeout()
1770 if (inm->in6m_ifp != ifp) { in mld_timeout()
1777 mld_v1_process_group_timer(inm, in mld_timeout()
1782 &scq, inm, uri_sec); in mld_timeout()
1787 IN6M_UNLOCK(inm); in mld_timeout()
1788 IN6_NEXT_MULTI(step, inm); in mld_timeout()
1914 mld_append_relq(struct mld_ifinfo *mli, struct in6_multi *inm) in mld_append_relq() argument
1918 __func__, (uint64_t)VM_KERNEL_ADDRPERM(inm), in mld_append_relq()
1921 SLIST_INSERT_HEAD(&mli->mli_relinmhead, inm, in6m_nrele); in mld_append_relq()
1932 struct in6_multi *inm; in mld_flush_relq() local
1942 while ((inm = SLIST_FIRST(&mli->mli_relinmhead)) != NULL) { in mld_flush_relq()
1944 SLIST_INSERT_HEAD(&temp_relinmhead, inm, in6m_nrele); in mld_flush_relq()
1948 while ((inm = SLIST_FIRST(&temp_relinmhead)) != NULL) { in mld_flush_relq()
1952 IN6M_LOCK(inm); in mld_flush_relq()
1953 VERIFY(inm->in6m_nrelecnt != 0); in mld_flush_relq()
1954 inm->in6m_nrelecnt--; in mld_flush_relq()
1955 lastref = in6_multi_detach(inm); in mld_flush_relq()
1956 VERIFY(!lastref || (!(inm->in6m_debug & IFD_ATTACHED) && in mld_flush_relq()
1957 inm->in6m_reqcnt == 0)); in mld_flush_relq()
1958 IN6M_UNLOCK(inm); in mld_flush_relq()
1960 IN6M_REMREF(inm); in mld_flush_relq()
1971 MLD_ADD_DETACHED_IN6M(in6m_dthead, inm); in mld_flush_relq()
1983 mld_v1_process_group_timer(struct in6_multi *inm, const int mld_version) in mld_v1_process_group_timer() argument
1989 IN6M_LOCK_ASSERT_HELD(inm); in mld_v1_process_group_timer()
1990 MLI_LOCK_ASSERT_HELD(inm->in6m_mli); in mld_v1_process_group_timer()
1992 if (inm->in6m_timer == 0) { in mld_v1_process_group_timer()
1994 } else if (--inm->in6m_timer == 0) { in mld_v1_process_group_timer()
2002 switch (inm->in6m_state) { in mld_v1_process_group_timer()
2012 inm->in6m_state = MLD_IDLE_MEMBER; in mld_v1_process_group_timer()
2013 (void) mld_v1_transmit_report(inm, in mld_v1_process_group_timer()
2015 IN6M_LOCK_ASSERT_HELD(inm); in mld_v1_process_group_timer()
2016 MLI_LOCK_ASSERT_HELD(inm->in6m_mli); in mld_v1_process_group_timer()
2034 struct in6_multi *inm, const int uri_sec) in mld_v2_process_group_timers() argument
2040 IN6M_LOCK_ASSERT_HELD(inm); in mld_v2_process_group_timers()
2042 VERIFY(mli == inm->in6m_mli); in mld_v2_process_group_timers()
2053 if (inm->in6m_timer == 0) { in mld_v2_process_group_timers()
2055 } else if (--inm->in6m_timer == 0) { in mld_v2_process_group_timers()
2062 if (inm->in6m_sctimer == 0) { in mld_v2_process_group_timers()
2064 } else if (--inm->in6m_sctimer == 0) { in mld_v2_process_group_timers()
2077 switch (inm->in6m_state) { in mld_v2_process_group_timers()
2096 retval = mld_v2_enqueue_group_record(qrq, inm, 0, 1, in mld_v2_process_group_timers()
2097 (inm->in6m_state == MLD_SG_QUERY_PENDING_MEMBER), in mld_v2_process_group_timers()
2101 inm->in6m_state = MLD_REPORTING_MEMBER; in mld_v2_process_group_timers()
2102 in6m_clear_recorded(inm); in mld_v2_process_group_timers()
2114 if (--inm->in6m_scrv > 0) { in mld_v2_process_group_timers()
2115 inm->in6m_sctimer = (uint16_t)uri_sec; in mld_v2_process_group_timers()
2126 (void) mld_v2_merge_state_changes(inm, scq); in mld_v2_process_group_timers()
2128 in6m_commit(inm); in mld_v2_process_group_timers()
2130 ip6_sprintf(&inm->in6m_addr), in mld_v2_process_group_timers()
2131 if_name(inm->in6m_ifp))); in mld_v2_process_group_timers()
2140 if (inm->in6m_state == MLD_LEAVING_MEMBER && in mld_v2_process_group_timers()
2141 inm->in6m_scrv == 0) { in mld_v2_process_group_timers()
2142 inm->in6m_state = MLD_NOT_MEMBER; in mld_v2_process_group_timers()
2152 VERIFY(inm->in6m_nrelecnt != 0); in mld_v2_process_group_timers()
2153 mld_append_relq(mli, inm); in mld_v2_process_group_timers()
2207 struct in6_multi *inm; in mld_v2_cancel_link_timers() local
2230 IN6_FIRST_MULTI(step, inm); in mld_v2_cancel_link_timers()
2231 while (inm != NULL) { in mld_v2_cancel_link_timers()
2232 IN6M_LOCK(inm); in mld_v2_cancel_link_timers()
2233 if (inm->in6m_ifp != ifp) { in mld_v2_cancel_link_timers()
2237 switch (inm->in6m_state) { in mld_v2_cancel_link_timers()
2259 VERIFY(inm->in6m_nrelecnt != 0); in mld_v2_cancel_link_timers()
2261 mld_append_relq(mli, inm); in mld_v2_cancel_link_timers()
2266 in6m_clear_recorded(inm); in mld_v2_cancel_link_timers()
2269 inm->in6m_state = MLD_REPORTING_MEMBER; in mld_v2_cancel_link_timers()
2276 inm->in6m_sctimer = 0; in mld_v2_cancel_link_timers()
2277 inm->in6m_timer = 0; in mld_v2_cancel_link_timers()
2278 IF_DRAIN(&inm->in6m_scq); in mld_v2_cancel_link_timers()
2280 IN6M_UNLOCK(inm); in mld_v2_cancel_link_timers()
2281 IN6_NEXT_MULTI(step, inm); in mld_v2_cancel_link_timers()
2431 mld_change_state(struct in6_multi *inm, struct mld_tparams *mtp, in mld_change_state() argument
2441 IN6M_LOCK_ASSERT_HELD(inm); in mld_change_state()
2442 VERIFY(inm->in6m_mli != NULL); in mld_change_state()
2443 MLI_LOCK_ASSERT_NOTHELD(inm->in6m_mli); in mld_change_state()
2449 VERIFY(inm->in6m_ifma != NULL); in mld_change_state()
2450 ifp = inm->in6m_ifma->ifma_ifp; in mld_change_state()
2454 VERIFY(inm->in6m_ifp == ifp); in mld_change_state()
2464 if (inm->in6m_st[1].iss_fmode != inm->in6m_st[0].iss_fmode) { in mld_change_state()
2466 inm->in6m_st[0].iss_fmode, inm->in6m_st[1].iss_fmode)); in mld_change_state()
2467 if (inm->in6m_st[0].iss_fmode == MCAST_UNDEFINED) { in mld_change_state()
2469 error = mld_initial_join(inm, mli, mtp, delay); in mld_change_state()
2471 } else if (inm->in6m_st[1].iss_fmode == MCAST_UNDEFINED) { in mld_change_state()
2473 mld_final_leave(inm, mli, mtp); in mld_change_state()
2480 error = mld_handle_state_change(inm, mli, mtp); in mld_change_state()
2498 mld_initial_join(struct in6_multi *inm, struct mld_ifinfo *mli, in mld_initial_join() argument
2506 IN6M_LOCK_ASSERT_HELD(inm); in mld_initial_join()
2511 __func__, ip6_sprintf(&inm->in6m_addr), in mld_initial_join()
2512 (uint64_t)VM_KERNEL_ADDRPERM(inm->in6m_ifp), in mld_initial_join()
2513 if_name(inm->in6m_ifp))); in mld_initial_join()
2518 ifp = inm->in6m_ifp; in mld_initial_join()
2537 …(IN6_IS_ADDR_MC_LINKLOCAL(&inm->in6m_addr) || IN6_IS_ADDR_MC_UNICAST_BASED_LINKLOCAL(&inm->in6m_ad… in mld_initial_join()
2538 !mld_is_addr_reported(&inm->in6m_addr)) { in mld_initial_join()
2541 inm->in6m_state = MLD_SILENT_MEMBER; in mld_initial_join()
2542 inm->in6m_timer = 0; in mld_initial_join()
2553 inm->in6m_state == MLD_LEAVING_MEMBER) { in mld_initial_join()
2554 VERIFY(inm->in6m_nrelecnt != 0); in mld_initial_join()
2555 mld_append_relq(mli, inm); in mld_initial_join()
2558 inm->in6m_state = MLD_REPORTING_MEMBER; in mld_initial_join()
2571 inm->in6m_timer = max(delay, odelay); in mld_initial_join()
2574 inm->in6m_state = MLD_IDLE_MEMBER; in mld_initial_join()
2575 error = mld_v1_transmit_report(inm, in mld_initial_join()
2578 IN6M_LOCK_ASSERT_HELD(inm); in mld_initial_join()
2582 inm->in6m_timer = odelay; in mld_initial_join()
2601 ifq = &inm->in6m_scq; in mld_initial_join()
2603 retval = mld_v2_enqueue_group_record(ifq, inm, 1, in mld_initial_join()
2623 inm->in6m_scrv = (uint16_t)mli->mli_rv; in mld_initial_join()
2625 if (inm->in6m_sctimer > 1) { in mld_initial_join()
2626 inm->in6m_sctimer = in mld_initial_join()
2627 MIN(inm->in6m_sctimer, (uint16_t)delay); in mld_initial_join()
2629 inm->in6m_sctimer = (uint16_t)delay; in mld_initial_join()
2632 inm->in6m_sctimer = 1; in mld_initial_join()
2647 in6m_commit(inm); in mld_initial_join()
2649 ip6_sprintf(&inm->in6m_addr), in mld_initial_join()
2650 if_name(inm->in6m_ifp))); in mld_initial_join()
2660 mld_handle_state_change(struct in6_multi *inm, struct mld_ifinfo *mli, in mld_handle_state_change() argument
2666 IN6M_LOCK_ASSERT_HELD(inm); in mld_handle_state_change()
2671 __func__, ip6_sprintf(&inm->in6m_addr), in mld_handle_state_change()
2672 (uint64_t)VM_KERNEL_ADDRPERM(inm->in6m_ifp), in mld_handle_state_change()
2673 if_name(inm->in6m_ifp))); in mld_handle_state_change()
2675 ifp = inm->in6m_ifp; in mld_handle_state_change()
2682 !mld_is_addr_reported(&inm->in6m_addr) || in mld_handle_state_change()
2685 if (!mld_is_addr_reported(&inm->in6m_addr)) { in mld_handle_state_change()
2690 in6m_commit(inm); in mld_handle_state_change()
2692 ip6_sprintf(&inm->in6m_addr), in mld_handle_state_change()
2693 if_name(inm->in6m_ifp))); in mld_handle_state_change()
2697 IF_DRAIN(&inm->in6m_scq); in mld_handle_state_change()
2699 retval = mld_v2_enqueue_group_record(&inm->in6m_scq, inm, 1, 0, 0, in mld_handle_state_change()
2701 mtp->cst = (inm->in6m_scq.ifq_len > 0); in mld_handle_state_change()
2715 inm->in6m_scrv = (uint16_t)mli->mli_rv; in mld_handle_state_change()
2716 inm->in6m_sctimer = 1; in mld_handle_state_change()
2733 mld_final_leave(struct in6_multi *inm, struct mld_ifinfo *mli, in mld_final_leave() argument
2738 IN6M_LOCK_ASSERT_HELD(inm); in mld_final_leave()
2743 __func__, ip6_sprintf(&inm->in6m_addr), in mld_final_leave()
2744 (uint64_t)VM_KERNEL_ADDRPERM(inm->in6m_ifp), in mld_final_leave()
2745 if_name(inm->in6m_ifp))); in mld_final_leave()
2747 switch (inm->in6m_state) { in mld_final_leave()
2761 if (inm->in6m_state == MLD_G_QUERY_PENDING_MEMBER || in mld_final_leave()
2762 inm->in6m_state == MLD_SG_QUERY_PENDING_MEMBER) { in mld_final_leave()
2768 mtp->cst = (mld_v1_transmit_report(inm, in mld_final_leave()
2771 IN6M_LOCK_ASSERT_HELD(inm); in mld_final_leave()
2774 inm->in6m_state = MLD_NOT_MEMBER; in mld_final_leave()
2782 IF_DRAIN(&inm->in6m_scq); in mld_final_leave()
2783 inm->in6m_timer = 0; in mld_final_leave()
2784 inm->in6m_scrv = (uint16_t)mli->mli_rv; in mld_final_leave()
2787 ip6_sprintf(&inm->in6m_addr), in mld_final_leave()
2788 if_name(inm->in6m_ifp), in mld_final_leave()
2789 inm->in6m_scrv)); in mld_final_leave()
2790 if (inm->in6m_scrv == 0) { in mld_final_leave()
2791 inm->in6m_state = MLD_NOT_MEMBER; in mld_final_leave()
2792 inm->in6m_sctimer = 0; in mld_final_leave()
2801 IN6M_ADDREF_LOCKED(inm); in mld_final_leave()
2802 VERIFY(inm->in6m_debug & IFD_ATTACHED); in mld_final_leave()
2803 inm->in6m_reqcnt++; in mld_final_leave()
2804 VERIFY(inm->in6m_reqcnt >= 1); in mld_final_leave()
2805 inm->in6m_nrelecnt++; in mld_final_leave()
2806 VERIFY(inm->in6m_nrelecnt != 0); in mld_final_leave()
2809 &inm->in6m_scq, inm, 1, 0, 0, in mld_final_leave()
2811 mtp->cst = (inm->in6m_scq.ifq_len > 0); in mld_final_leave()
2816 inm->in6m_state = MLD_LEAVING_MEMBER; in mld_final_leave()
2817 inm->in6m_sctimer = 1; in mld_final_leave()
2832 in6m_commit(inm); in mld_final_leave()
2834 ip6_sprintf(&inm->in6m_addr), in mld_final_leave()
2835 if_name(inm->in6m_ifp))); in mld_final_leave()
2836 inm->in6m_st[1].iss_fmode = MCAST_UNDEFINED; in mld_final_leave()
2838 __func__, (uint64_t)VM_KERNEL_ADDRPERM(&inm->in6m_addr), in mld_final_leave()
2839 if_name(inm->in6m_ifp))); in mld_final_leave()
2871 mld_v2_enqueue_group_record(struct ifqueue *ifq, struct in6_multi *inm, in mld_v2_enqueue_group_record() argument
2887 IN6M_LOCK_ASSERT_HELD(inm); in mld_v2_enqueue_group_record()
2888 MLI_LOCK_ASSERT_HELD(inm->in6m_mli); in mld_v2_enqueue_group_record()
2891 ifp = inm->in6m_ifp; in mld_v2_enqueue_group_record()
2902 mode = (uint8_t)inm->in6m_st[1].iss_fmode; in mld_v2_enqueue_group_record()
2909 if (inm->in6m_st[0].iss_asm > 0 && inm->in6m_st[1].iss_asm > 0 && in mld_v2_enqueue_group_record()
2910 inm->in6m_nsrc == 0) { in mld_v2_enqueue_group_record()
2931 if (mode != inm->in6m_st[0].iss_fmode) { in mld_v2_enqueue_group_record()
2976 VERIFY(inm->in6m_st[1].iss_asm == 0); in mld_v2_enqueue_group_record()
2984 return mld_v2_enqueue_filter_change(ifq, inm); in mld_v2_enqueue_group_record()
2989 __func__, ip6_sprintf(&inm->in6m_addr), in mld_v2_enqueue_group_record()
2990 if_name(inm->in6m_ifp))); in mld_v2_enqueue_group_record()
3005 ip6_sprintf(&inm->in6m_addr), in mld_v2_enqueue_group_record()
3006 if_name(inm->in6m_ifp))); in mld_v2_enqueue_group_record()
3057 mr.mr_addr = inm->in6m_addr; in mld_v2_enqueue_group_record()
3095 RB_FOREACH_SAFE(ims, ip6_msource_tree, &inm->in6m_srcs, in mld_v2_enqueue_group_record()
3099 now = im6s_get_mode(inm, ims, 1); in mld_v2_enqueue_group_record()
3198 now = im6s_get_mode(inm, ims, 1); in mld_v2_enqueue_group_record()
3269 mld_v2_enqueue_filter_change(struct ifqueue *ifq, struct in6_multi *inm) in mld_v2_enqueue_filter_change() argument
3283 IN6M_LOCK_ASSERT_HELD(inm); in mld_v2_enqueue_filter_change()
3285 if (inm->in6m_nsrc == 0 || in mld_v2_enqueue_filter_change()
3286 (inm->in6m_st[0].iss_asm > 0 && inm->in6m_st[1].iss_asm > 0)) { in mld_v2_enqueue_filter_change()
3290 ifp = inm->in6m_ifp; /* interface */ in mld_v2_enqueue_filter_change()
3291 mode = (uint8_t)inm->in6m_st[1].iss_fmode; /* filter mode at t1 */ in mld_v2_enqueue_filter_change()
3352 mr.mr_addr = inm->in6m_addr; in mld_v2_enqueue_filter_change()
3388 &inm->in6m_srcs); in mld_v2_enqueue_filter_change()
3393 now = im6s_get_mode(inm, ims, 1); in mld_v2_enqueue_filter_change()
3394 then = im6s_get_mode(inm, ims, 0); in mld_v2_enqueue_filter_change()
3478 mld_v2_merge_state_changes(struct in6_multi *inm, struct ifqueue *ifscq) in mld_v2_merge_state_changes() argument
3488 IN6M_LOCK_ASSERT_HELD(inm); in mld_v2_merge_state_changes()
3498 if (inm->in6m_scrv > 0) { in mld_v2_merge_state_changes()
3502 gq = &inm->in6m_scq; in mld_v2_merge_state_changes()
3506 __func__, (uint64_t)VM_KERNEL_ADDRPERM(inm))); in mld_v2_merge_state_changes()
3533 (inm->in6m_ifp->if_mtu - MLD_MTUSPACE))) { in mld_v2_merge_state_changes()
3602 struct in6_multi *inm; in mld_v2_dispatch_general_query() local
3614 IN6_FIRST_MULTI(step, inm); in mld_v2_dispatch_general_query()
3615 while (inm != NULL) { in mld_v2_dispatch_general_query()
3616 IN6M_LOCK(inm); in mld_v2_dispatch_general_query()
3617 if (inm->in6m_ifp != ifp) { in mld_v2_dispatch_general_query()
3621 switch (inm->in6m_state) { in mld_v2_dispatch_general_query()
3630 inm->in6m_state = MLD_REPORTING_MEMBER; in mld_v2_dispatch_general_query()
3633 inm, 0, 0, 0, 0); in mld_v2_dispatch_general_query()
3644 IN6M_UNLOCK(inm); in mld_v2_dispatch_general_query()
3645 IN6_NEXT_MULTI(step, inm); in mld_v2_dispatch_general_query()