On Sun, 08 Mar 2015 01:04:16 +0100 Wilco Baan Hofman <wi...@baanhofman.nl> wrote:
> Hi Timo, > > On 07/03/15 01:03, Wilco Baan Hofman wrote: > > I've made a patch against OpenNHRP for IPv6 support. It mostly > > works, but I am currently stuck on a what seems to be a IPv6 GRE > > bug. Nice! This is something I wanted to implement, but which has not been of great importance so far. > > Patch 0001 can be applied easily. > > > > In Patch 0002 there are likely a few problems. > > 1. lladdr.sll_addr can only contain half an IPv6 address (8 bytes). > > There is no way to direct a message to an endpoint that I could > > find. > This is still an issue, patching the kernel and replacing the sll_addr > with a 16-byte buffer (as well as in /usr/include/linux), this works.. > but this is broken. Yes, that's one of the nasty things. Changing the ssl_addr size affects ABI, and I'm not sure how well that will work out. Though ssl_addr is the last entry of the structure so it might be doable. Or perhaps introduce sockaddr_ll_storage or similar for this purpose. You might want to start discussion of this problem on netdev mailing list. > However, the kernel seems to have another issue: > > # ip -6 neigh list > fe80::1 dev gre1 lladdr > fc:00:00:00:00:00:00:00:00:00:00:00:00:00:00:01 REACHABLE > fe80::3 dev gre1 lladdr > fc:00:00:00:00:00:00:00:00:00:00:00:00:00:00:03 REACHABLE > > # ping6 fe80::3%gre1 > PING fe80::3%gre1(fe80::3) 56 data bytes > .... > > No packets leaving the interface, error count incrementing. > > > 2. It assumes that ARPHDR_IP6GRE = IPv6 address types, while in > > reality, IPv4 and IPv6 can be completely mixed, this must be fixed > > before applying obviously. > > > > Number 2 is just something I need to fix. Number 1 is problematic, > > and I'd like your feedback on that. Have you looked at the ip6_gre > > code? I looked at ip6_gre when it first arrived, but have not done any real tests with it. Perhaps the internal skb header pointers are not properly in the sendmsg() path. It would probably require some debugging where the packets get dropped. > But not an issue actually, though not a fan of the code duplication > here for sysdep_netlink.c, this is TODO. > > > From what I see, what else needs to be changed: > > - The address_is_multicast function > Fixed. > > - is_any_address function > Fixed. > > - the broadcast address function (In IPv6 there is no subnet > > broadcast) > Fixed. > > - The netlink code assumes IPv4 in a couple of places. > Fixed. > > > > Did I miss something? > > Well, I guess that is still open ;-) On quick glance the patches look mostly ok. I probably have some comments. But I want to take a closer look at them first. I'll try to do it this week sometime. Thanks, Timo ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ opennhrp-devel mailing list opennhrp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opennhrp-devel