taglinefilesource code
im199net/ipv4/igmp.cstatic void igmp_stop_timer(struct ip_mc_list *im)
im201net/ipv4/igmp.cif (im->tm_running) {
im202net/ipv4/igmp.cdel_timer(&im->timer);
im203net/ipv4/igmp.cim->tm_running=0;
im221net/ipv4/igmp.cstatic void igmp_start_timer(struct ip_mc_list *im,unsigned char max_resp_time)
im224net/ipv4/igmp.cif(im->tm_running)
im227net/ipv4/igmp.cim->timer.expires=jiffies+tv;
im228net/ipv4/igmp.cim->tm_running=1;
im229net/ipv4/igmp.cadd_timer(&im->timer);
im265net/ipv4/igmp.cstruct ip_mc_list *im=(struct ip_mc_list *)data;
im268net/ipv4/igmp.cim->tm_running=0;
im269net/ipv4/igmp.cr=igmp_get_mrouter_info(im->interface);
im273net/ipv4/igmp.cigmp_send_report(im->interface, im->multiaddr, IGMP_HOST_NEW_MEMBERSHIP_REPORT);
im275net/ipv4/igmp.cigmp_send_report(im->interface, im->multiaddr, IGMP_HOST_MEMBERSHIP_REPORT);
im278net/ipv4/igmp.cstatic void igmp_init_timer(struct ip_mc_list *im)
im280net/ipv4/igmp.cim->tm_running=0;
im281net/ipv4/igmp.cinit_timer(&im->timer);
im282net/ipv4/igmp.cim->timer.data=(unsigned long)im;
im283net/ipv4/igmp.cim->timer.function=&igmp_timer_expire;
im289net/ipv4/igmp.cstruct ip_mc_list *im;
im293net/ipv4/igmp.cfor(im=dev->ip_mc_list;im!=NULL;im=im->next) {
im294net/ipv4/igmp.cif(im->multiaddr==address && im->tm_running) {
im295net/ipv4/igmp.cigmp_stop_timer(im);
im303net/ipv4/igmp.cstruct ip_mc_list *im;
im325net/ipv4/igmp.cfor(im=dev->ip_mc_list;im!=NULL;im=im->next)
im327net/ipv4/igmp.cif(im->tm_running)
im329net/ipv4/igmp.cif(im->timer.expires>max_resp_time*HZ/IGMP_TIMER_SCALE)
im331net/ipv4/igmp.cigmp_stop_timer(im);
im332net/ipv4/igmp.cigmp_start_timer(im,max_resp_time);
im337net/ipv4/igmp.cif((im->multiaddr & IGMP_LOCAL_GROUP_MASK)!=IGMP_LOCAL_GROUP)
im338net/ipv4/igmp.cigmp_start_timer(im,max_resp_time);
im357net/ipv4/igmp.cfor(im=dev->ip_mc_list;im!=NULL;im=im->next)
im359net/ipv4/igmp.cif(!im->tm_running && (im->multiaddr & IGMP_LOCAL_GROUP_MASK)!=IGMP_LOCAL_GROUP)
im360net/ipv4/igmp.cigmp_start_timer(im,max_resp_time);
im408net/ipv4/igmp.cextern __inline__ void igmp_group_dropped(struct ip_mc_list *im)
im410net/ipv4/igmp.cdel_timer(&im->timer);
im411net/ipv4/igmp.cigmp_send_report(im->interface, im->multiaddr, IGMP_HOST_LEAVE_MESSAGE);
im412net/ipv4/igmp.cip_mc_filter_del(im->interface, im->multiaddr);
im415net/ipv4/igmp.cextern __inline__ void igmp_group_added(struct ip_mc_list *im)
im418net/ipv4/igmp.cigmp_init_timer(im);
im419net/ipv4/igmp.cip_mc_filter_add(im->interface, im->multiaddr);
im420net/ipv4/igmp.cr=igmp_get_mrouter_info(im->interface);
im424net/ipv4/igmp.cigmp_send_report(im->interface, im->multiaddr, IGMP_HOST_NEW_MEMBERSHIP_REPORT);
im426net/ipv4/igmp.cigmp_send_report(im->interface, im->multiaddr, IGMP_HOST_MEMBERSHIP_REPORT);
im46net/ipv4/ip_sockglue.cstruct ip_mc_list *im;
im61net/ipv4/ip_sockglue.cfor(im = dev->ip_mc_list; im; im = im->next)
im65net/ipv4/ip_sockglue.cim->multiaddr, im->users,
im66net/ipv4/ip_sockglue.cim->tm_running, im->timer.expires-jiffies);