--- ../../../linux-2.4.22-3-msc/net/ipv4/igmp.c Mon Aug 25 13:44:44 2003 +++ ./igmp.c Thu Jan 8 18:39:48 2004 @@ -477,6 +477,7 @@ struct sk_buff *skb = 0; int type; + printk(KERN_DEBUG "igmpv3_send_report\n"); if (!pmc) { read_lock(&in_dev->lock); for (pmc=in_dev->mc_list; pmc; pmc=pmc->next) { @@ -609,6 +610,7 @@ u32 group = pmc ? pmc->multiaddr : 0; u32 dst; + printk(KERN_DEBUG "igmp_send_report: %0x %d\n",group, type); if (type == IGMPV3_HOST_MEMBERSHIP_REPORT) return igmpv3_send_report(in_dev, pmc); else if (type == IGMP_HOST_LEAVE_MESSAGE) @@ -708,9 +710,10 @@ im->reporter = 1; spin_unlock(&im->lock); + printk(KERN_DEBUG "igmp_timer_expire\n"); if (IGMP_V1_SEEN(in_dev)) igmp_send_report(in_dev, im, IGMP_HOST_MEMBERSHIP_REPORT); - else if (IGMP_V2_SEEN(in_dev)) + else if (1 || IGMP_V2_SEEN(in_dev)) igmp_send_report(in_dev, im, IGMPV2_HOST_MEMBERSHIP_REPORT); else igmp_send_report(in_dev, im, IGMPV3_HOST_MEMBERSHIP_REPORT); @@ -774,6 +777,7 @@ IGMP_V1_Router_Present_Timeout; group = 0; } else { + printk(KERN_DEBUG "igmp_heard_query for V2\n"); /* v2 router present */ max_delay = ih->code*(HZ/IGMP_TIMER_SCALE); in_dev->mr_v2_seen = jiffies + @@ -840,11 +844,13 @@ struct in_device *in_dev = in_dev_get(skb->dev); int len = skb->len; + printk(KERN_DEBUG "igmp_rcv: entered\n"); if (in_dev==NULL) { kfree_skb(skb); return 0; } + printk(KERN_DEBUG "igmp_rcv: 1\n"); if (skb_is_nonlinear(skb)) { if (skb_linearize(skb, GFP_ATOMIC) != 0) { kfree_skb(skb); @@ -853,12 +859,14 @@ ih = skb->h.igmph; } + printk(KERN_DEBUG "igmp_rcv: 2\n"); if (len < sizeof(struct igmphdr) || ip_compute_csum((void *)ih, len)) { in_dev_put(in_dev); kfree_skb(skb); return 0; } + printk(KERN_DEBUG "igmp_rcv: 3\n"); switch (ih->type) { case IGMP_HOST_MEMBERSHIP_QUERY: igmp_heard_query(in_dev, ih, len); @@ -909,6 +917,7 @@ if (dev->mc_list && dev->flags&IFF_MULTICAST) { do it; } --ANK */ + printk(KERN_DEBUG "ip_mc_filter_add: %s %x\n",dev->name,addr); if (arp_mc_map(addr, buf, dev, 0) == 0) dev_mc_add(dev,buf,dev->addr_len,0); } @@ -1052,7 +1061,7 @@ if (in_dev->dev->flags & IFF_UP) { if (IGMP_V1_SEEN(in_dev)) goto done; - if (IGMP_V2_SEEN(in_dev)) { + if (1 || IGMP_V2_SEEN(in_dev)) { if (reporter) igmp_send_report(in_dev, im, IGMP_HOST_LEAVE_MESSAGE); goto done; @@ -1071,16 +1080,19 @@ { struct in_device *in_dev = im->interface; + printk(KERN_DEBUG "igmp_group_added: 1\n"); if (im->loaded == 0) { im->loaded = 1; ip_mc_filter_add(in_dev, im->multiaddr); } #ifdef CONFIG_IP_MULTICAST + printk(KERN_DEBUG "igmp_group_added: 2\n"); if (im->multiaddr == IGMP_ALL_HOSTS) return; - if (IGMP_V1_SEEN(in_dev) || IGMP_V2_SEEN(in_dev)) { + printk(KERN_DEBUG "igmp_group_added: 3\n"); + if (1 || IGMP_V1_SEEN(in_dev) || IGMP_V2_SEEN(in_dev)) { spin_lock_bh(&im->lock); igmp_start_timer(im, IGMP_Initial_Report_Delay); spin_unlock_bh(&im->lock); @@ -1088,6 +1100,7 @@ } /* else, v3 */ + printk(KERN_DEBUG "igmp_group_added: 4\n"); im->crcount = in_dev->mr_qrv ? in_dev->mr_qrv : IGMP_Unsolicited_Report_Count; igmp_ifc_event(in_dev); @@ -1110,6 +1123,7 @@ ASSERT_RTNL(); + printk(KERN_DEBUG "ip_mc_inc_group: %s %x\n",in_dev->dev->name,addr); for (im=in_dev->mc_list; im; im=im->next) { if (im->multiaddr == addr) { im->users++; @@ -1135,6 +1149,7 @@ im->crcount = 0; atomic_set(&im->refcnt, 1); spin_lock_init(&im->lock); + printk(KERN_DEBUG "ip_mc_inc_group: 1\n"); #ifdef CONFIG_IP_MULTICAST im->tm_running=0; init_timer(&im->timer);