[openib-general] RDMA connection and address translation API

Fab Tillier ftillier at silverstorm.com
Wed Aug 24 11:59:57 PDT 2005


> From: Caitlin Bestler [mailto:caitlin.bestler at gmail.com]
> Sent: Wednesday, August 24, 2005 11:14 AM
> 
> On 8/24/05, Fab Tillier <ftillier at silverstorm.com> wrote:
> > > From: Roland Dreier [mailto:rolandd at cisco.com]
> > > Sent: Wednesday, August 24, 2005 10:16 AM
> > >
> > >     Fab> Knowledge of actual IP addresses would be up to the consumer.
> > >     Fab> However, the IB CM can facilitate checks by allowing the user
> > >     Fab> to specify an offset and length in the private data to match
> > >     Fab> to for incoming requests.
> > >
> > > This seems too complex and at the same time too limited to me.  For
> > > one thing -- although I think ATS should die -- this doesn't support
> > > ATS reverse lookups.
> >
> > I think if all ULPs provide their source and destination IP in the private
> > data, you can eliminate the reverse lookup altogether.  A simple forward
> > lookup is all that's needed to validate that the source GID in the REQ
> > matches the reported source IP in the private data.  The forward lookup
> > could be done via ATS or via ARP, but the CM doesn't need to care which
> > method is used.
> 
> That is not an option.
> 
> The applications are expecting source/destination network addresses
> that come from a network layer, not from the peer application. IP has
> no problem meeting this requirement. This is an IB problem that needs
> to be solved within the scope of IB without changing any ULPs.

If the app wants to use source/destination network addresses, there isn't a
problem.  The problem is the app wants to use IP addresses, which are *not*
network addresses in IB.  So the app needs to decide between one of two things -
be aware of IB network addresses, or provide meaning to IP addresses over IB.
The latter can't be done reliably under the covers - ATS reverse lookups won't
tell you the IP the source actually used, and there's no way to do so without
either using private data in the CM REQ or requiring a 1:1 mapping of IB:IP
addresses.  The 1:1 IB:IP mapping is not feasible, so the only way to know what
IP address the application used is to embed that into the private data.  I would
expect protocols that try to use IP as their addressing would accommodate this
in their IB usage, just like SDP accommodates it in the hello message.

- Fab




More information about the general mailing list