Lines 2989-2994
mld_v2_dispatch_general_query(struct mld_ifinfo *m
Link Here
|
2989 |
KASSERT(mli->mli_version == MLD_VERSION_2, |
2989 |
KASSERT(mli->mli_version == MLD_VERSION_2, |
2990 |
("%s: called when version %d", __func__, mli->mli_version)); |
2990 |
("%s: called when version %d", __func__, mli->mli_version)); |
2991 |
|
2991 |
|
|
|
2992 |
/* |
2993 |
* Check that there are some packets queued. If so, send them first. |
2994 |
* For large number of groups the reply to general query can take |
2995 |
* many packets, we should finish sending them before starting of |
2996 |
* queuing the new reply. |
2997 |
*/ |
2998 |
if (mli->mli_gq.ifq_head != NULL) |
2999 |
goto send; |
3000 |
|
2992 |
ifp = mli->mli_ifp; |
3001 |
ifp = mli->mli_ifp; |
2993 |
|
3002 |
|
2994 |
IF_ADDR_RLOCK(ifp); |
3003 |
IF_ADDR_RLOCK(ifp); |
Lines 3024-3029
mld_v2_dispatch_general_query(struct mld_ifinfo *m
Link Here
|
3024 |
} |
3033 |
} |
3025 |
IF_ADDR_RUNLOCK(ifp); |
3034 |
IF_ADDR_RUNLOCK(ifp); |
3026 |
|
3035 |
|
|
|
3036 |
send: |
3027 |
mld_dispatch_queue(&mli->mli_gq, MLD_MAX_RESPONSE_BURST); |
3037 |
mld_dispatch_queue(&mli->mli_gq, MLD_MAX_RESPONSE_BURST); |
3028 |
|
3038 |
|
3029 |
/* |
3039 |
/* |