[openib-general] mapping between IP address and device name

Talpey, Thomas Thomas.Talpey at netapp.com
Tue Jun 28 06:38:16 PDT 2005


At 05:34 PM 6/27/2005, Roland Dreier wrote:
>I'm not sure I understand this.  At best, ATS can give you back a list
>of IPs.  How do you decide which one to check against the exports?

Any or all of them. Exports is a fairly simple access list, and membership
by the client is all that's required. It supports wildcards as well as single
address entries.

Here's the example from the Linux manpage:
      # sample /etc/exports file
       /               master(rw) trusty(rw,no_root_squash)
       /projects       proj*.local.domain(rw)
       /usr            *.local.domain(ro) @trusted(rw)
       /home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
       /pub            (ro,insecure,all_squash)

See the wildcards? If any of the machine's IPs matches one, that line
yields true. Also of course, even the non-wildcards can expand to a list
of addresses; in the first line "master" is a single host, any of its IP
addresses is eligible for a match.

>In a pure IP world, every packet from a multihomed client carries a
>source IP address.  So a server can use getpeername() to determine
>which address a client is connecting from.  This is fundamentally
>different from ATS.

I don't understand. ATS allows each incoming connection to map to
one or more IP addresses, effectively supporting getpeername() on
the IB QP. DAPL passes this address up to the consumer in the
connection indication via the cr_param's ia_address_ptr. The consumer
doesn't invoke ATS directly, nor would it want to. In the NFS server
case, it just needs to run this address down the exports list, same
way it would for a TCP connection or UDP datagram.

Tom. 



More information about the general mailing list