--snip/snip
> The more I dig into this, the more I figure out that the
> problem is larger than I though. Not only do I need to increase the size of a
> hardware address, I also need to provide a new interface service routine to
> allow the device driver to lookup/translate a portion of the hardware address
> and return more information that needs to go into the ARP cache.
>
> Specifically, the IETF IPoIB group has defined an Infiniband hardware
> address to have 1 byte of reserved, 3 bytes of Queue Pair Number (QPN) and
> 16 bytes of Global Identifier (GID). Unfortunately, in order to build the
> hardware header in packets to send, another piece of information is needed
> -- that being the Local
> Identifier (LID). If the LID is kept in the ARP cache, then it will be readily
> available from "arp_find()" at the time of transmission.
> If we don't do that, we would have to
> have a separate table and mechanism in the driver to map from
> QPN/GID ===> LID.
> I would rather not do that if I didn't have to. It seems fundamental
> (at least to me) that everything one needs to build the hardware header
> (at least everything that is related
> specifically to the destination) should be stored in the ARP cache.
you can already do that, since you will save everything in the arp
cache which is the size of dev->addr_len. - did i miss the point?
cheers,
tm
--
in some way i do, and in some way i don't.
|