[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