[radvd-devel-l] radvd on freetz (Fritzbox mod) - radvd[1865]: setsockopt(IPV6_RECVPKTINFO): Protocol not available
Paul Oranje
p.oranje at xs4all.nl
Tue Jan 13 03:28:37 EST 2009
with the following patch applied, radvd start, but does not work.
<patch>
-/* Note: these are applicable to receiving sockopts only */
-#if defined IPV6_HOPLIMIT && !defined IPV6_RECVHOPLIMIT
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
+# undef IPV6_RECVHOPLIMIT
+# undef IPV6_RECVPKTINFO
+# define IPV6_HOPLIMIT 8
+# define IPV6_PKTINFO 2
# define IPV6_RECVHOPLIMIT IPV6_HOPLIMIT
-#endif
-
-#if defined IPV6_PKTINFO && !defined IPV6_RECVPKTINFO
# define IPV6_RECVPKTINFO IPV6_PKTINFO
#endif
</patch>
strace then produces:
[pid 1716] 0.001463 socket(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6) =
4 <0.001053>
[pid 1716] 0.002556 setsockopt(4, SOL_IPV6, 0x2 /* IPV6_??? */,
[1], 4) = 0 <0.000292>
[pid 1716] 0.002046 setsockopt(4, SOL_RAW, 0x7 /* RAW_??? */,
[2], 4) = 0 <0.000253>
[pid 1716] 0.002020 setsockopt(4, SOL_IPV6, IPV6_UNICAST_HOPS,
[255], 4) = 0 <0.000251>
[pid 1716] 0.001401 setsockopt(4, SOL_IPV6, IPV6_MULTICAST_HOPS,
[255], 4) = 0 <0.000250>
[pid 1716] 0.001402 setsockopt(4, SOL_IPV6, 0x8 /* IPV6_??? */,
[1], 4) = 0 <0.000251>
[pid 1716] 0.002801 setsockopt(4, SOL_ICMPV6, 1,
"\377
\377
\377
\377
\377
\377
\377\377\377\377\377\377\377\377\377\377\237\377\377\377\377\377\377\3
77\377\377\377\377\377\377\377\377"..., 32) = 0 <0.000265>
Also see http://trac.freetz.org/ticket/348 for more information on
this bug as traced with the freetz project
.
--
Paul Oranje
Op 13 jan 2009, om 06:59 heeft Pekka Savola het volgende geschreven:
> On Mon, 12 Jan 2009, Paul Oranje wrote:
>> radvd 1.2, compiled for uClibc 0.9.29 and kernel 2.6.13, fails at
>> start with . compiled with uClibc 0.9.28 radvd works well.
>>
>> "strace -f -r -T -v /etc/init.d/rc.radvd start" produces:
>>
>> [pid 2323] 0.002957 socket(PF_INET6, SOCK_RAW,
>> IPPROTO_ICMPV6) =
>> 4 <0.000366>
>> [pid 2323] 0.001497 setsockopt(4, SOL_IPV6, 0x31 /* IPV6_???
>> */,
>> [1], 4) = -1 ENOPROTOOPT (Protocol not available) <0.000247>
>>
>> How should this be fixed? in socket.c?
>
> You could try to comment out the socket.c line about setsockopt
> IPV6_RECVPKTINFO and see if the error goes away (likely radvd
> doesn't work, but that could give an indication if this is the
> reason).
>
> I'm guessing this is a problem in that version of uClibc. You could
> try to look at the changelogs or code for clues, or try 0.9.30.
>
> --
> Pekka Savola "You each name yourselves king, yet the
> Netcore Oy kingdom bleeds."
> Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
More information about the radvd-devel-l
mailing list