[openib-general] [RFC] IB address translation using ARP
Tom Tucker
tom at ammasso.com
Mon Oct 10 11:30:53 PDT 2005
> -----Original Message-----
> From: Sean Hefty [mailto:mshefty at ichips.intel.com]
> Sent: Monday, October 10, 2005 12:37 PM
> To: Tom Tucker
> Cc: Sean Hefty; Openib
> Subject: Re: [openib-general] [RFC] IB address translation using ARP
>
> Tom Tucker wrote:
> >>Again, I don't think that the binding is the issue, so much
> as the desire to use
> >>an address for a protocol that isn't actually being used
> for communication.
> >
> > Not to be pedantic, but if binding or mapping or somesuch weren't an
> > issue we wouldn't need AT.
>
> We need AT because we're not using network addresses. If a
> client used an IP
> address and ran over IP, we wouldn't need to do anything special.
agreed.
>
> > IMHO, you need a service separate from the CMA to do address
> > translation. My (iWARP's) rationale for this is that there are two
> > clients of the service, the CM and IP. For CM, you need it
> to elect a
> > route and thereby a local interface. For IP you need it
> because routes
> > change and ARP entries time out.
>
> The connection management and address translation are
> separate services, with
> the CMA calling the address translation for the user. You
> may want to look at
> ib_addr for details on how the address translation works.
Very cool. I've applied the patch and will take a look.
>
> > - route is discovered by looking at the Linux routing table
> ^^^^^
> address mapping from IP to GID/Pkey.
I think I understand where I'm upside down now. In my world,
you don't know which interface to send the ARP request on
until you've identified the local interface and you can't
identify the local interface until you've looked up the route.
Not all interface have a path to all remote peers.
In your world, you can't look up the path record until you've
identified the remote GID. What I don't get is, if you have more
than one IB interface, which interface do you submit your IPoIB ARP
request on? All of them?
>
> > - local interface is IPoIB (looks at rdma_ptr embedded in
> netdev struct)
> The address translation looks only at the hardware and
> broadcast addresses. No
> additional rdma_ptr is needed with ib_addr.
>
Cool, I must have misunderstood an earlier discussion.
> > - send ARP AT message over local IB interface
> It sends a normal IP ARP to get the remove hardware address,
> which contains the
> destination GID. An ARP is sent only if the mapping isn't
> available in the
> local ARP table.
Not sure what a "normal IP ARP" message is. In my world, ARP and
IP are peer protocols. ARP does not sit on top of IP, nor is it a
special kind of IP message. Forgive my ignorance, but does IPoIB
have ARP built into it?
But regardless, how do you know which local interface to send the
IP ARP message on?
>
> At this point, the client has the SGID, DGID, and PKey. It
> then issues a path
> record query to obtain the "route" to the destination. The
> CMA doesn't really
> care if that destination is the actual destination or some gateway.
Thanks for the clarifications.
>
> - Sean
>
More information about the general
mailing list