[Xorp-hackers] Re: XORP PIMSM6 and IPv6 multicast forwarding patch
Pavlin Radoslavov
pavlin@icir.org
Sun, 30 Oct 2005 14:51:41 -0800
> You are right, I did the compile check on my system and at first it failed. Later on when i copy the mroute6.h into /usr/include/linux where IPv4 mroute.h exists.Then everything is OK
> (No message when compile).
> I confirm that HAVE_IPV6 and HAVE_IPV6_MULTICAST are defined to 1 in myconfig.h .
>
> Looks like I have to wait your correctness.
>
>
> FYI only:
> The mroute6.h is not in the right place. I did compile a new kernel on RH9(2.4.20-8) to upgrade it to Linux kernel 2.6.7 as the multicast forwarding patch required. The file still stay in the place where new kernel source files and didnot installed in!
>
> When I force the HAVE_IPV6_MULTICAST_ROUTING to 1, gmake failed with many message related. See attachement. Also tried renamed the mroute6.h to netinet6/ip6_mroute.h but failed gmake too. The error message is icmp6_filter struct redefination or some kind of info(caused by the HAVE_NETINET6_IP6_MROUTE_H some where)
Yes, mroute6.h is not in the right place so you have to copy it by
hand to the /usr/include/linux/ directory.
However, it contains a number of definitions that shouldn't be
there (e.g., the PIM-specific stuff should be in <netinet/pim.h>).
Anyway, I just committed some mods to XORP itself so now it can
compile with the Linux IPv6 multicast forwarding patch.
The catch however is that you have to comment-out some of the stuff
in the new <linux/mroute6.h> (see the patch below).
Note that I have only tested that XORP compiles, but I haven't
tested whether it can work with the modified kernel.
Please let me know what happens when you try to run it.
Pavlin
--- mroute6.h.broken 2005-10-30 03:50:10.000000000 -0800
+++ mroute6.h 2005-10-30 21:43:17.000000000 -0800
@@ -204,7 +204,9 @@
#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
+#if 0
#define PIM_REGISTER 1
+#endif
#ifdef __KERNEL__
@@ -257,6 +259,7 @@
struct in6_addr im6_src, im6_dst;
};
+#if 0
/*
* PIM packet header
*/
@@ -279,10 +282,12 @@
#define PIM_MINLEN 8 /* The header min. length is 8 */
#define PIM6_REG_MINLEN (PIM_MINLEN+40) /* Register message + inner IP6 header */
+#endif /* 0 */
#define IPV6_VERSION 0x60
#define IPV6_VERSION_MASK 0xf0
+#if 0
/* XXX :there should not be there */
#include <linux/icmpv6.h>
@@ -292,5 +297,6 @@
};
#define mld_type mld_icmp6_hdr.icmp6_type
+#endif /* 0 */
#endif