Lines Matching defs:inm
142 rti_fill(struct in_multi *inm)
147 if (rti->rti_ifidx == inm->inm_ifidx) {
148 inm->inm_rti = rti;
157 rti->rti_ifidx = inm->inm_ifidx;
160 inm->inm_rti = rti;
228 struct in_multi *inm;
297 inm = ifmatoinm(ifma);
298 if (inm->inm_timer == 0 &&
299 !IN_LOCAL_GROUP(inm->inm_addr.s_addr)) {
300 inm->inm_state = IGMP_DELAYING_MEMBER;
301 inm->inm_timer = IGMP_RANDOM_DELAY(
328 inm = ifmatoinm(ifma);
329 if (!IN_LOCAL_GROUP(inm->inm_addr.s_addr) &&
331 ip->ip_dst.s_addr == inm->inm_addr.s_addr)) {
332 switch (inm->inm_state) {
334 if (inm->inm_timer <= timer)
340 inm->inm_state =
342 inm->inm_timer =
347 inm->inm_state =
389 IN_LOOKUP_MULTI(igmp->igmp_group, ifp, inm);
390 if (inm != NULL) {
391 inm->inm_timer = 0;
394 switch (inm->inm_state) {
399 inm->inm_state = IGMP_SLEEPING_MEMBER;
402 if (inm->inm_rti->rti_type == IGMP_v1_ROUTER)
403 inm->inm_state = IGMP_LAZY_MEMBER;
405 inm->inm_state = IGMP_SLEEPING_MEMBER;
457 IN_LOOKUP_MULTI(igmp->igmp_group, ifp, inm);
458 if (inm != NULL) {
459 inm->inm_timer = 0;
462 switch (inm->inm_state) {
466 inm->inm_state = IGMP_LAZY_MEMBER;
491 igmp_joingroup(struct in_multi *inm, struct ifnet *ifp)
495 inm->inm_state = IGMP_IDLE_MEMBER;
497 if (!IN_LOCAL_GROUP(inm->inm_addr.s_addr) &&
499 i = rti_fill(inm);
500 igmp_sendpkt(ifp, inm, i, 0);
501 inm->inm_state = IGMP_DELAYING_MEMBER;
502 inm->inm_timer = IGMP_RANDOM_DELAY(
506 inm->inm_timer = 0;
515 igmp_leavegroup(struct in_multi *inm, struct ifnet *ifp)
517 switch (inm->inm_state) {
520 if (!IN_LOCAL_GROUP(inm->inm_addr.s_addr) &&
522 if (inm->inm_rti->rti_type != IGMP_v1_ROUTER)
523 igmp_sendpkt(ifp, inm,
567 struct in_multi *inm;
576 inm = ifmatoinm(ifma);
577 if (inm->inm_timer == 0) {
579 } else if (--inm->inm_timer == 0) {
580 if (inm->inm_state == IGMP_DELAYING_MEMBER) {
581 if (inm->inm_rti->rti_type == IGMP_v1_ROUTER)
582 igmp_sendpkt(ifp, inm,
585 igmp_sendpkt(ifp, inm,
587 inm->inm_state = IGMP_IDLE_MEMBER;
615 igmp_sendpkt(struct ifnet *ifp, struct in_multi *inm, int type,
644 ip->ip_dst = inm->inm_addr;
652 igmp->igmp_group = inm->inm_addr;
659 imo.imo_ifidx = inm->inm_ifidx;