[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 03678) Re: IPv6 multicast routing in Linux 2.6.16.18 + USAGI



Hello.

In article <20060524052548.GC17587@xxxxxxxx> (at Wed, 24 May 2006 00:25:48 -0500), Otto Solares <solca@xxxxxxxx> says:

> I am running 2.6.16.18 + latest USAGI kernel patch, I'm
> implementing IPv6 multicast routing.
:
> KERNEL: assertion (newskb->dst) failed at net/ipv6/ip6_output.c (113)

Thanks for the report.

I'm not sure the following patch is related to your report,
but anyway, please try it.

Regards,

Index: net/ipv6/mcast.c
===================================================================
RCS file: /cvsroot/usagi/usagi/kernel/linux26/net/ipv6/mcast.c,v
retrieving revision 1.48
diff -u -r1.48 mcast.c
--- net/ipv6/mcast.c	3 Apr 2006 11:58:31 -0000	1.48
+++ net/ipv6/mcast.c	30 May 2006 11:57:42 -0000
@@ -1482,8 +1482,6 @@
 
 	pmr->csum = csum_ipv6_magic(&pip6->saddr, &pip6->daddr, mldlen,
 		IPPROTO_ICMPV6, csum_partial(skb->h.raw, mldlen, 0));
-	err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dev,
-		mld_dev_queue_xmit);
 
 #ifdef CONFIG_IPV6_MROUTE
 	/* 
@@ -1498,6 +1496,9 @@
 	}
 #endif
 
+	err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dev,
+		mld_dev_queue_xmit);
+
 	if (!err) {
 		ICMP6_INC_STATS(idev,ICMP6_MIB_OUTMSGS);
 #ifdef CONFIG_IPV6_STATISTICS
@@ -1839,9 +1840,6 @@
 					   IPPROTO_ICMPV6,
 					   csum_partial((__u8 *) hdr, len, 0));
 
-	err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dev,
-		mld_dev_queue_xmit);
-
 #ifdef CONFIG_IPV6_MROUTE
 	/* 
 	 * if we are acting as a multicast router, loopback a copy to the
@@ -1855,6 +1853,9 @@
 	}
 #endif
 
+	err = NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, skb->dev,
+		mld_dev_queue_xmit);
+
 	if (!err) {
 		if (type == ICMPV6_MGM_REDUCTION)
 			ICMP6_INC_STATS(idev, ICMP6_MIB_OUTGROUPMEMBREDUCTIONS);

-- 
YOSHIFUJI Hideaki @ USAGI Project  <yoshfuji@xxxxxxxxxxxxxx>
GPG-FP  : 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA