tags 599869 + moreinfo
thanks

        Hello,

Le mardi 12 octobre 2010 01:22:07 David Härdeman, vous avez écrit :
> Package: ndisc6
> Version: 0.9.8-1
> Severity: important
> Tags: ipv6
> 
> Running rdisc6 (from ndisc6, version 0.9.8-1) on an amd64 host:
> 
> Soliciting ff02::2 (ff02::2) on wlan0...
> 
> Hop limit                 :          255 (      0xff)
> Stateful address conf.    :           No
> Stateful other conf.      :          Yes
> Router preference         :       medium
> Router lifetime           :         1800 (0x00000708) seconds
> Reachable time            :  unspecified (0x00000000)
> Retransmit time           :  unspecified (0x00000000)
>  Prefix                   : <my-ipv6-prefix>::/64
>   Valid time              :         7200 (0x00001c20) seconds
>   Pref. time              :         3600 (0x00000e10) seconds
>  MTU                      :         1472 bytes (valid)
>  Source link-layer address: <router-mac>
>  from <router-link-local-ipv6>
> 
> Running rdisc6 (from ndisc6, version 0.9.7-1) on a sheevaplug (armv5tel)
> host:
> 
> Soliciting ff02::2 (ff02::2) on eth0...
> 
> Hop limit                 :          255 (      0xff)
> Stateful address conf.    :           No
> Stateful other conf.      :          Yes
> Router preference         :       medium
> Router lifetime           :         1800 (0x00000708) seconds
> Reachable time            :         1800 (0x00000708) milliseconds
> Retransmit time           :  unspecified (0x00000000)
>  Prefix                   : <my-ipv6-prefix>::/64
>   Valid time              :        16576 (0x000040c0) seconds
>   Pref. time              :         7200 (0x00001c20) seconds
>  MTU                      :            0 bytes (invalid)
>  Source link-layer address: <router-mac>
>  from <router-link-local-ipv6>
> 
> 
> Note the difference in the three lines following "Prefix".

It's not just that. The reachable time values are different as well.

> Both hosts are connected to the same switch and get identical router
> advertisement messages over the wire. Also, both kernels manage to get
> this right. I suspect the bug has to do with the unusual struct-packing
> behaviour on arm as compared to x86.

That's easy to verify. Just check the respective values of
        sizeof(struct nd_router_advert),
        sizeof(struct nd_opt_prefix_info) and
        sizeof(struct nd_opt_mtu)
on both systems, e.g.:

% cat << EOF | gcc -x c -
#include <stdio.h>
#include <netinet/icmp6.h> 

int main (void)
{
        printf ("%zu,%zu,%zu\n",
                sizeof(struct nd_router_advert),
                sizeof(struct nd_opt_prefix_info),
                sizeof(struct nd_opt_mtu));
        return 0;
}
EOF
% ./a.out

The correct result is 16,32,8.

Best regards,

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to