[CORE, TESTS] This patch adds a library and test utility that performs IP to IB addre...
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 3 Jul 2008 08:22:07 +0000 (08:22 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 3 Jul 2008 08:22:07 +0000 (08:22 +0000)
commit5385f8c30819cb4da3f4af13882bfbddeadc1bca
tree8f4434acf978dcb10b5c007f4bb7f629f07c8885
parent6769520bba2c18a770771a4d094b496a398f3fc8
[CORE, TESTS] This patch adds a library and test utility that performs IP to IB address translation without going to the SA for DAPL ATS service records.

It's a sequence of operations between the IP helper library and IPoIB.

1. Get the local IPoIB port's IB address information (GID).
2. Lookup the destination MAC address via the IP Helper functions, send ARP if needed 3. Ask IPoIB for the destination IB address information given the destination Ethernet MAC.

As input, the IBAT library takes two IP addresses (v4 or v6).  As output, it returns two GIDs (as IN6_ADDRs), as well as the pkey.

There's a test program, wherebu, that will exercise the IBAT library.

Note that there is special code for Windows Vista/Server 2008 to take advantage of newer functionality in the IP Helper library.  Without this lookups get quite slow as you increase the number of nodes.  On our 256 node cluster the Windows Server 2008 code path performed an order of magnitude better than the Windows Server 2003 code path.

There will be a follow up patch that moves WSD over to using this library.

Signed-off-by: Fab Tillier <ftillier@microsoft.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1331 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
13 files changed:
core/dirs
core/ibat/dirs [new file with mode: 0644]
core/ibat/user/SOURCES [new file with mode: 0644]
core/ibat/user/ibat.cpp [new file with mode: 0644]
core/ibat/user/makefile [new file with mode: 0644]
inc/iba/ib_at_ioctl.h
inc/user/iba/ibat.h [new file with mode: 0644]
tests/dirs
tests/wherebu/dirs [new file with mode: 0644]
tests/wherebu/user/SOURCES [new file with mode: 0644]
tests/wherebu/user/makefile [new file with mode: 0644]
tests/wherebu/user/wherebu.cpp [new file with mode: 0644]
ulp/ipoib/kernel/ipoib_ibat.c