<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
h1
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:.3in;
        text-indent:-.3in;
        page-break-after:avoid;
        mso-list:l1 level1 lfo1;
        font-size:16.0pt;
        font-family:Arial;}
h2
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:.4in;
        text-indent:-.4in;
        page-break-after:avoid;
        mso-list:l1 level2 lfo2;
        font-size:14.0pt;
        font-family:Arial;
        font-style:italic;}
h3
        {margin-top:12.0pt;
        margin-right:.5in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.5in;
        page-break-after:avoid;
        mso-list:l1 level3 lfo3;
        direction:rtl;
        unicode-bidi:embed;
        font-size:13.0pt;
        font-family:Arial;}
h4
        {margin-top:12.0pt;
        margin-right:.6in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.6in;
        page-break-after:avoid;
        mso-list:l1 level4 lfo4;
        direction:rtl;
        unicode-bidi:embed;
        font-size:14.0pt;
        font-family:"Times New Roman";}
h5
        {margin-top:12.0pt;
        margin-right:.7in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.7in;
        mso-list:l1 level5 lfo5;
        direction:rtl;
        unicode-bidi:embed;
        font-size:13.0pt;
        font-family:"Times New Roman";
        font-style:italic;}
h6
        {margin-top:12.0pt;
        margin-right:.8in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.8in;
        mso-list:l1 level6 lfo6;
        direction:rtl;
        unicode-bidi:embed;
        font-size:11.0pt;
        font-family:"Times New Roman";}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
        {margin-top:12.0pt;
        margin-right:.9in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.9in;
        mso-list:l1 level7 lfo7;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
        {margin-top:12.0pt;
        margin-right:1.0in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-1.0in;
        mso-list:l1 level8 lfo8;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";
        font-style:italic;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
        {margin-top:12.0pt;
        margin-right:1.1in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-1.1in;
        mso-list:l1 level9 lfo9;
        direction:rtl;
        unicode-bidi:embed;
        font-size:11.0pt;
        font-family:Arial;}
span.MsoEndnoteReference
        {vertical-align:super;}
p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
        {margin:0in;
        margin-bottom:.0001pt;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:10.0pt;
        font-family:"Times New Roman";}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        text-indent:-.25in;
        mso-list:l2 level1 lfo11;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:center;
        direction:rtl;
        unicode-bidi:embed;
        font-size:16.0pt;
        font-family:Arial;
        font-weight:bold;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:center;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:Arial;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle23
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:-119;
        mso-list-type:simple;
        mso-list-template-ids:-156985440;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.25in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.25in;
        margin-bottom:0in;
        margin-left:.25in;
        margin-bottom:.0001pt;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1
        {mso-list-id:1285036741;
        mso-list-template-ids:-547819762;}
@list l1:level1
        {mso-level-style-link:"Heading 1";
        mso-level-text:%1;
        mso-level-tab-stop:.3in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.3in;
        margin-bottom:0in;
        margin-left:.3in;
        margin-bottom:.0001pt;
        text-indent:-.3in;}
@list l1:level2
        {mso-level-style-link:"Heading 2";
        mso-level-text:"%1\.%2";
        mso-level-tab-stop:.4in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.4in;
        margin-bottom:0in;
        margin-left:.4in;
        margin-bottom:.0001pt;
        text-indent:-.4in;}
@list l1:level3
        {mso-level-style-link:"Heading 3";
        mso-level-text:"%1\.%2\.%3";
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.5in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        text-indent:-.5in;}
@list l1:level4
        {mso-level-style-link:"Heading 4";
        mso-level-text:"%1\.%2\.%3\.%4";
        mso-level-tab-stop:.6in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.6in;
        margin-bottom:0in;
        margin-left:.6in;
        margin-bottom:.0001pt;
        text-indent:-.6in;}
@list l1:level5
        {mso-level-style-link:"Heading 5";
        mso-level-text:"%1\.%2\.%3\.%4\.%5";
        mso-level-tab-stop:.7in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.7in;
        margin-bottom:0in;
        margin-left:.7in;
        margin-bottom:.0001pt;
        text-indent:-.7in;}
@list l1:level6
        {mso-level-style-link:"Heading 6";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
        mso-level-tab-stop:.8in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.8in;
        margin-bottom:0in;
        margin-left:.8in;
        margin-bottom:.0001pt;
        text-indent:-.8in;}
@list l1:level7
        {mso-level-style-link:"Heading 7";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
        mso-level-tab-stop:.9in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.9in;
        margin-bottom:0in;
        margin-left:.9in;
        margin-bottom:.0001pt;
        text-indent:-.9in;}
@list l1:level8
        {mso-level-style-link:"Heading 8";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:1.0in;
        margin-bottom:0in;
        margin-left:1.0in;
        margin-bottom:.0001pt;
        text-indent:-1.0in;}
@list l1:level9
        {mso-level-style-link:"Heading 9";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
        mso-level-tab-stop:1.1in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:1.1in;
        margin-bottom:0in;
        margin-left:1.1in;
        margin-bottom:.0001pt;
        text-indent:-1.1in;}
@list l2
        {mso-list-id:1992904546;
        mso-list-type:hybrid;
        mso-list-template-ids:1467933110 -81507590 -942524410 67960837 67960833 67960835 67960837 67960833 67960835 67960837;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-style-link:"List Bullet";
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        margin-right:.5in;
        text-indent:-.25in;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        margin-right:1.0in;
        text-indent:-.25in;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1 dir=RTL>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
following email describes few new function calls for OpenIB access layer that
enable better/simpler use of the InfiniBand fabric resources, called ib_at (IB
address translation) See the attached preliminary ib_at h file. <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>There
are 3 main functions and few additional helper functions and structures<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>1.
ib_at_route_by_ip()  - Translate from Destination IP (and optionally
Source IP, IP TOS) to the IB route properties (IB device, SGID/DGID, and
recommended Partition and QoS attributes) <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>2.
ib_at_paths_by_route() - Translate from IB route properties (SGID/DGID and
optionally partition, QoS info, Multipath type) to one or more possible path
records.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>3.
ib_at_ips_by_gid() - Reverse resolution from remote IB address to IP address
(like RARP)<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Ib_at
will provide the following internal functionality:<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>1.
IP address translation to GID’s and adapters/ports (using IB-ARP and/or IB-ATS)
<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>2.
Reverse translation from GID to IP (using IB-ATS) <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>3.
Determine default partition (P_Key) and QoS (SL, QoS Tag) values for use in
ULP’s <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>4.
Obtain path information (SGID/DGID to path records) <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>5.
Obtain multiple paths for high-availability, QoS, multi-rail, and source based
routing (using LMC) <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>6.
Central path caching and invalidation <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
set of ib_at function calls allow for a central mechanism that will deal with
all address, path and path attributes resolution allowing ULP’s to become
simpler, take advantage all IB capabilities without special knowledge of IB
architecture, and reduce manual configuration.  <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>See
more background material and diagrams in (from the developers’ workshop): <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> <a
href="http://www.openib.org/docs/oib_wkshp_022005/part-qos-ha-voltaire-haviv.pdf"
title="http://www.openib.org/docs/oib_wkshp_022005/part-qos-ha-voltaire-haviv.pdf">http://www.openib.org/docs/oib_wkshp_022005/part-qos-ha-voltaire-haviv.pdf</a><o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>ib_at
will rely on the Linux IP infrastructure, and the IB SA (ATS ServiceRecords,
PathRecord, or MultiPathRecord, or QoSPathRecord) to provide the routing/path
information.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
exact implementation will be proposed after the API discussion will be agreed
on, and may be implemented in several stages (e.g. cant use SA Multipath before
RMPP is available in the GSI).<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>*
note a “QoS Tag” value is defined, it is automatically generated by
ib_at_route_by_ip() or optionally specifies by the ULP, initially it will be
mapped 1:1 to IB SL and in future will be aligned to the newly defined IB-QoS
architecture. <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Any
comments and suggestions for changes, fixes and improvements will be welcomed.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Shahar<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

</div>

</body>

</html>