inm_st
if (inm->inm_st[1].iss_fmode != inm->inm_st[0].iss_fmode) {
inm->inm_st[0].iss_fmode, inm->inm_st[1].iss_fmode);
if (inm->inm_st[0].iss_fmode == MCAST_UNDEFINED) {
} else if (inm->inm_st[1].iss_fmode == MCAST_UNDEFINED) {
inm->inm_st[1].iss_fmode = MCAST_UNDEFINED;
mode = inm->inm_st[1].iss_fmode;
if (inm->inm_st[0].iss_asm > 0 && inm->inm_st[1].iss_asm > 0 &&
if (mode != inm->inm_st[0].iss_fmode) {
KASSERT(inm->inm_st[1].iss_asm == 0,
__func__, inm, inm->inm_st[1].iss_asm));
(inm->inm_st[0].iss_asm > 0 && inm->inm_st[1].iss_asm > 0))
mode = inm->inm_st[1].iss_fmode; /* filter mode at t1 */
--inm->inm_st[1].iss_in;
--inm->inm_st[1].iss_ex;
--inm->inm_st[1].iss_in;
inm->inm_st[1].iss_ex++;
inm->inm_st[1].iss_in++;
if (inm->inm_st[1].iss_ex > 0) {
inm->inm_st[1].iss_fmode = MCAST_EXCLUDE;
} else if (inm->inm_st[1].iss_in > 0) {
inm->inm_st[1].iss_fmode = MCAST_INCLUDE;
inm->inm_st[1].iss_fmode = MCAST_UNDEFINED;
--inm->inm_st[1].iss_asm;
inm->inm_st[1].iss_asm++;
inm->inm_st[0] = inm->inm_st[1];
fmode = inm->inm_st[1].iss_fmode;
inm_mode_str(inm->inm_st[t].iss_fmode),
inm->inm_st[t].iss_asm,
inm->inm_st[t].iss_ex,
inm->inm_st[t].iss_in,
inm->inm_st[t].iss_rec);
inm->inm_st[0].iss_fmode = MCAST_UNDEFINED;
inm->inm_st[1].iss_fmode = MCAST_UNDEFINED;
--inm->inm_st[1].iss_rec;
KASSERT(inm->inm_st[1].iss_rec == 0,
("%s: iss_rec %d not 0", __func__, inm->inm_st[1].iss_rec));
++inm->inm_st[1].iss_rec;
} inm_st[2]; /* state at t0, t1 */
if (inm->inm_st[t].iss_ex > 0 &&
inm->inm_st[t].iss_ex == ims->ims_st[t].ex)