Subject: Re: IPv6 over Firewire

From: Stephan Gatzka <[email-masked]>
Date: Sun, 23 Dec 2012 12:13:03 +0100

> net/ipv6/ndisc.c SHOULD build full NDP messages for IPv6
> over IEEE1394 as we do it for Infiniband.
>
> Please, please do not try to mangle them in the driver.
>
As far as I understand the code for Infiniband (and the corresponding 
RFC4391) I just see the introduction of two pad bytes. Moreover, I see 
that ndisc_build_skb calls ndisc_fill_addr_option which copies 
dev->dev_addr. Maybe the so called Queue Pair Number (QPN) is already 
included in dev->dev_addr. If not, I guess the Infiniband driver will 
also mangle the QPN into the link layer option. If not, this seems only 
possible because the format for IPv6 link layer option (IB) and IPv4/ARP 
(IB) has the same format.

This is not true IPv4/ARP and IPv6 link layer option for firewire. 
Moreover, firewire link layer address mapping (IPv4 and IPv6) requires 
some very firewire specific information like speed, max_rec and 
especially the so called unicast fifo address.

 From my point of view the generic ndisc code shall not cope with these 
nasty details of the specific link layers. I also haven't found a driver 
specific hook that might fill these information in. That's why I think I 
_have_ to mangle the NDP stuff in the driver.

Stephan