On Sat, Jun 25, 2011 at 10:13:29AM +0200, Ondrej Zajicek wrote:
> On Fri, Jun 24, 2011 at 02:00:22PM +0200, csszep wrote:
> > Hello!
> >
> > I testing the radv protocol with bird 1.3.1, but no luck.
> >
> > Jun 24 14:12:46 router2 bird6: sk_set_ipv6_checksum: IPV6_CHECKSUM:
> > Invalid argument
> > Jun 24 14:12:46 router2 bird6: radv1: Socket open failed on interface dummy0
>
> It seems like your kernel does not support some standard IPv6 features
> (which are also used in OSPFv3 code), perhaps you have too old kernel
> version?
So not too old version, but too new version. :-) There is a bug in BIRD
(setting IPV6_CHECKSUM on ICMPv6 socket) which was ignored in older
kernels but fails in newer kernels [*]. Could you try attached patch?
[*] http://www.kerneltrap.com/mailarchive/linux-netdev/2008/4/18/1466754
--
Elen sila lumenn' omentielvo
Ondrej 'SanTiago' Zajicek (email: [email protected])
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
diff --git a/proto/radv/packets.c b/proto/radv/packets.c
index 8aa487b..ac59ce9 100644
--- a/proto/radv/packets.c
+++ b/proto/radv/packets.c
@@ -244,10 +244,6 @@ radv_sk_open(struct radv_iface *ifa)
sk->saddr = ifa->addr->ip;
- /* 2 is an offset of the checksum in an ICMPv6 packet */
- if (sk_set_ipv6_checksum(sk, 2) < 0)
- goto err;
-
/* We want listen just to ICMPv6 messages of type RS and RA */
if (sk_set_icmp_filter(sk, ICMPV6_RS, ICMPV6_RA) < 0)
goto err;