[openib-general] Re: [PATCH] [ib_addr] generalize address to RDMA device translation
Sean Hefty
mshefty at ichips.intel.com
Tue Jan 3 12:05:28 PST 2006
Tom Tucker wrote:
> ARP Resolve
>
> The iWARP side needs to be able to resolve an IP address to an Ethernet
> address. Today this is not done for iWARP and it works because the
> AMSO1100 does this itself in the hardware. Other iWARP devices probably
> don't. This means that the logic in ib_at needs to be extended on the
> iWARP side to call neigh_event_send (instead of arp_send) to resolve an
> IP to an Ethernet address. The current method of calling arp_send
> directly and "sniffing" for arp replies is probably not the best way to
> go long term. It would be better to register for neighbor update events
> (new mechanism) and be notified when the neighbor entry gets resolved.
> This is better for two reasons: 1) it doesn't duplicate code already in
> Linux, and 2) unlike IB, Ethernet MAC addresses may change for the next
> hop while the connection is still active. The provider needs to know
> this so it's hardware ARP tables can be updated.
To be clear, the CMA uses ib_addr, and not ib_at, which is a different module.
I'm not sure I understand what's wrong with sniffing arp replies. There's very
little code (about a dozen lines) in ib_addr to handle arps. It also seems that
it's just as unlikely that the mapping from an IP address to a hardware address
will change for Ethernet as it does for IB.
Are you trying to deal with a destination IP address of a connection that is not
on the local subnet? If this is the case, then this seems like a separate issue
than address resolution.
> ROUTE Changes
>
> Two obvious cases, 1) the next hop changes due to normal network least-
> cost routing, and 2) the user changes a route manually. Both events
> would require the iWARP provider to be notified (via an event again) and
> update its hardware
Maybe this can be included as part of some sort of automatic "failover"?
Otherwise, I'm not sure how this functionality maps to IB. It's not a big deal
if it doesn't, but it'd be nice to keep similarities where possible.
> PathMTU
>
> The new route to the remote peer has a hop with a smaller MTU than we're
> currently using. Ouch! All my packets are going to be dropped until I
> reduce my path MTU. The provider can't know unless he is either
> filtering all ICMP traffic himself ("evil") or is notified via an event
> ("nice").
>
> So all this said, my little brain had imagined this logic going in and
> around the ib_at module in a wonderfully crafted bit of algorithmic art
> -- once I figured out how to do it all ;-)
>
> It sounds like you're beating the same bushes. How would you like to
> proceed?
I'd like to define a set of changes to ib_addr and the rdma_cm that makes it
easier to support multiple RDMA devices, then evolve the codebase from there.
My hope is to keep the network addressing ugliness in ib_addr.
The changes to the ib_addr interface is based on trying to determine what might
help support iWarp after looking at your patch. If the changes appear to be a
step in the right direction, then I will commit them. The essence of the change
is that ib_addr leaves the interpretation of the addresses up to the caller,
which may still be a good thing even if it doesn't directly make supporting
iWarp any easier.
- Sean
More information about the general
mailing list