Hello,
I'm in the process of integrating IPv6 in our user stack. I'm using lwip-2.1.0RC1, and thanks for that (especially partial SACK since last stable that saved my day this morning). Beeing a complete beginner with IPv6, I started with the basics: ping. I set up a link-local address by hand on lwip as the linux-peer's + 2. linux: inet6 addr: fe80::76da:38ff:fe3a:1f61/64 Scope:Link lwip: fe80:0:0:0:76da:38ff:fe3a:1f63 (:: not yet implemented in my code) I understand linux's link local is built from the mac address, but I assume one don't care what it is, anything can be setup as soon as it starts with fe80:: . Then I pang lwip from linux and check what happens with tcpdump: 13:54:28.502368 IP6 fe80::76da:38ff:fe3a:1f61 > ff02::1:ff3a:1f63: ICMP6, neighbor solicitation, who has fe80::76da:38ff:fe3a:1f63, length 32 If I understand well IPv6 addressing, ff02::1:ff3a:1f63 is really ff02:0:0:0:0:1:ff3a:1f63 But this packet was never swallowed by lwip ("not for us"). After checking and printing from within lwip, I found that this macro did not accept the discovery request, src/include/lwip/ip6_addr.h L247 #define ip6_addr_isallnodes_linklocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff020000UL)) && \ ((ip6addr)->addr[1] == 0UL) && \ ((ip6addr)->addr[2] == 0UL) && \ ((ip6addr)->addr[3] == PP_HTONL(0x00000001UL))) That one would accept the request #define ip6_addr_isallnodes_linklocal(ip6addr) (((ip6addr)->addr[0] == PP_HTONL(0xff020000UL)) && \ ((ip6addr)->addr[1] == 0UL) && \ ((ip6addr)->addr[2] == PP_HTONL(0x00000001UL))) This test is done at src/core/ipv6/ip6.c L598 Before digging further, I was wondering whether I'm not currently going into a wall. Thanks david _______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users