<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Message</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1498" name=GENERATOR></HEAD>
<BODY>
<DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT></DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005>Dear DAT and OpenIB members,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>There is a 
debate going on on OpenIB and DAT reflectors which is going around about kDAT 
registry for Linux.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>I would like to 
review the requirements we <SPAN class=703341815-29062005>had 
</SPAN>agreed <SPAN class=703341815-29062005>at</SPAN> DAT 
collaborative <SPAN class=703341815-29062005>and captured in the 
kDAT</SPAN></SPAN></FONT></DIV>
<DIV><FONT><SPAN class=934533914-27062005><SPAN 
class=703341815-29062005></SPAN><FONT face=Arial><FONT size=2><SPAN 
class=703341815-29062005>and uDAT specs </SPAN>and review<SPAN 
class=703341815-29062005> </SPAN></FONT></FONT></SPAN></FONT><FONT face=Arial 
size=2><SPAN class=934533914-27062005>DAT registry in OpenIB from that 
prospective.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>I would like to make 
it clear that I do NOT speak on behalf of DAT Collaborative 
but</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>as just one of its 
members.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<OL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
  class=934533914-27062005>Ability of Consumers to open IA based on its 
  name</SPAN><FONT face="Times New Roman" size=3> </FONT>
  <UL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB supports 
    it</SPAN></FONT></LI></UL></SPAN></FONT>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
  class=934533914-27062005>Support for Consumers to get a list of available IAs 
  to open</SPAN><FONT face="Times New Roman" size=3> </FONT></LI>
  <UL>
    <LI><SPAN class=934533914-27062005>OpenIB kDAT and uDAT registry provide 
    this</SPAN> 
    <LI><SPAN class=934533914-27062005>OpenIB kDAT registry no longer provide 
    Provider attributes as stated above</SPAN></LI>
    <LI><SPAN class=934533914-27062005><SPAN class=703341815-29062005>Preserves 
    dat_registry_list_providers</SPAN></SPAN></LI>
    <LI><SPAN class=934533914-27062005><SPAN class=703341815-29062005>for kDAPL 
    OpenIB changed dat_provider_info format so binary compatibility not 
    preserved, but source compatibility is preserved.</SPAN></SPAN></LI>
    <UL>
      <LI><SPAN class=934533914-27062005><SPAN 
      class=703341815-29062005>dat_provider_info differs between uDAPL and kDAPL 
      in OpenIB</SPAN></SPAN></SPAN></FONT></LI></UL></UL><FONT><SPAN 
  class=934533914-27062005>
  <LI><FONT face=Arial><FONT size=2><SPAN class=934533914-27062005><SPAN 
  class=703341815-29062005>A</SPAN>bility to enumerate available IAs and their 
  attributes</SPAN> </FONT></FONT></LI>
  <UL>
    <LI><FONT face=Arial><FONT size=2><SPAN class=934533914-27062005>OpenIB 
    supports that for uDAPL<SPAN class=703341815-29062005> </SPAN><SPAN 
    class=703341815-29062005>unchanged from DAPL SF RI</SPAN></SPAN> 
    </FONT></FONT>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>for kDAPL openIB 
    supports a single type of thread-safety defined by the Linux kernel and the 
    version of Linux kernel defines the kDAPL APIs that kernel version 
    supports.</SPAN></FONT></LI>
    <UL>
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
      class=703341815-29062005>for kDAPL query will not return DAT version and 
      thread safety Provider 
  attribute.</SPAN></SPAN></FONT></LI></UL></UL></SPAN></FONT>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>Map IA_name to 
  Provider library (kDAPL or uDAPL)</SPAN></FONT> 
  <UL>
    <LI><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2>OpenIB 
    kDAPL and uDAPL support th<SPAN 
    class=703341815-29062005>is</SPAN></FONT></FONT></SPAN></LI></UL>
  <LI><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2>Ability for 
  DAT providers to dynamically register and deregister DAPL <SPAN 
  class=703341815-29062005>Provider</SPAN></FONT></FONT></SPAN> </LI>
  <UL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB supports 
    that for kDAPL and uDAPL</SPAN></FONT></LI>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
    class=703341815-29062005>All existing registry APIs at DAPL SF RI are 
    preserved</SPAN></SPAN></FONT></LI></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>Single static DAT 
  registry - platform specific</SPAN></FONT> 
  <UL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>kDAT and uDAT 
    specs explicitly state that the DAT registry is defined by the platform and 
    </SPAN></FONT><FONT face=Arial size=2><SPAN class=934533914-27062005>DAT 
    collaborative provided an example of Registry for Linux and Windows and 
    agree that the DAT provided registry should be used by all providers. This 
    ensures that DAT Registry will support all Providers and DAT registry from 
    one vendor does not block other providers.</SPAN></FONT> 
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT 
    registry is the Linux platform DAT registry which achieves the goal of 
    supporting all kDAPL providers. It also provides additional benefit that it 
    is Linux core which maintain kDAT registry</SPAN></FONT> <SPAN 
    class=703341815-29062005><FONT face=Arial size=2> instead of DAT 
    Collaborative</FONT></SPAN>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB uDAT 
    registry remains the DAT collaborative one unchanged.</SPAN></FONT> 
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>We can discuss 
    whether or not we want to get uDAT registry closer to the OpenIB kDAT 
    one</SPAN></FONT> 
    <LI><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2>The DAT 
    registry for kDAPL and uDAPL <SPAN class=703341815-29062005>are 
    different at DAPL SF RI and OpenIB maintains 
    it.</SPAN></FONT></FONT></SPAN></LI>
    <LI><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2><SPAN 
    class=703341815-29062005>Some changes may be needed for kDAPL Registry hot 
    plug support for OpenIB. How it may impact uDAPL 
    registry.</SPAN></FONT></FONT></SPAN></LI></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>ia_name is under 
  system admin control</SPAN></FONT> 
  <UL>
    <LI><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2>remains the 
    same<SPAN class=703341815-29062005> following a platform 
    convention</SPAN></FONT></FONT></SPAN></LI></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>IA can 
  represent</SPAN></FONT> 
  <UL>
    <OL>
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>single 
      port</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>several 
      ports</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>several HBAs or 
      RNICs</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>multiple IAs 
      represent the same port</SPAN></FONT></LI></OL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAPL 
    currently implements #1. Members can submit code patches to support other 
    choices </SPAN></FONT> 
    <LI><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2>OpenIB 
    uDAPL remains the same with current implementation providing #1<SPAN 
    class=703341815-29062005> under Provider 
    control.</SPAN></FONT></FONT></SPAN></LI></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>Support for 
  Consumers to get a list of available IAs to open</SPAN></FONT> 
  <UL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT and 
    uDAT registry provide this</SPAN></FONT> 
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT 
    registry no longer provide Provider attributes as stated 
    above</SPAN></FONT></LI></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>DAT registry 
  supports loading multiple DAPL <SPAN 
  class=703341815-29062005>Providers</SPAN> into <SPAN 
  class=703341815-29062005>the same </SPAN>address space.</SPAN></FONT> 
  <UL>
    <OL>
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>A Provider 
      library loaded into an address space once</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>A Provider 
      library unloaded only when all open instances of its IAs are 
      closed</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>The same 
      Provider library can be loaded into multiple address 
      spaces</SPAN></FONT></LI></OL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB uDAPL 
    continues to provide it</SPAN></FONT> 
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAPL 
    supports it</SPAN></FONT></LI></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>DAT registry shall 
  support polymorphism (Provider independency)</SPAN></FONT> </LI>
  <UL>
    <OL>
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>Consumer call 
      DAT functions by the DAT handle independently from Provider is 
      used</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>DAT registry 
      provides redirection</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>dat_<SPAN 
      class=703341815-29062005>ia_</SPAN>open is Provider specific and sets up 
      redirection table per address space per Provider</SPAN></FONT></LI>
      <UL>
        <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
        class=703341815-29062005>first time open ensures that table redirection 
        for a Provider is set up</SPAN></SPAN></FONT></LI></UL></OL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT and 
    uDAT registry provide that</SPAN></FONT> </LI>
    <UL>
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT 
      registry preserves the DAT redirection table as defined by DAT 
      Collaborative</SPAN></FONT> 
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT 
      registry preserves DAT_provider structure </SPAN></FONT></LI>
      <UL>
        <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
        class=703341815-29062005>need to file errata to DAT to move dat_ia_close 
        after dat_ia_query to match DAPL SF RI and OpenIB one for kDAPL and 
        uDAPL</SPAN></SPAN></FONT></LI></UL></UL></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>The DAT_handle 
  structure first field provides a pointer for redirection</SPAN></FONT> </LI>
  <UL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB kDAT and 
    uDAT reg<SPAN class=703341815-29062005>is</SPAN>try support 
    this</SPAN></FONT></LI>
    <UL>
      <LI><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
      class=703341815-29062005>DAT registry interpret the DAT_handle as a 
      pointer to redirection table</SPAN></SPAN></FONT></LI></UL></UL>
  <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>DAT registry 
  supports multiple dat_<SPAN class=703341815-29062005>ia_</SPAN>open for the 
  same library from the same and different address spaces</SPAN></FONT> </LI>
  <UL>
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB DAT 
    registry preserves that</SPAN></FONT> 
    <LI><FONT face=Arial size=2><SPAN class=934533914-27062005>OpenIB DAT 
    registry supports refcount so the library is not closed until the last 
    Consumer leaves and library is loaded into an address space 
    once.</SPAN></FONT></LI></UL></OL>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005> So for 
uDAT Consumer and uDAT Provider which are compliant with uDAT spec continue to 
work as before<SPAN class=703341815-29062005> from DAPL SF 
RI</SPAN>.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>kDAT Consumer no 
longer can choose Provider by DAT version # and thread safety. The Linux kernel 
version defines which version of DAT and its thread safety. Since kernel ULP is 
specific to the kernel <SPAN class=703341815-29062005>configuration</SPAN> 
this is OK.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>If kernel <SPAN 
class=703341815-29062005>module</SPAN> was choosing DAT Provider based on these 
attributes it is no longer needed. The kernel <SPAN 
class=703341815-29062005>module</SPAN> MUST match what kernel <SPAN 
class=703341815-29062005>configuration, including version 
number,</SPAN> provides. If kernel ULP behaves differently based on version 
of DAT <SPAN class=703341815-29062005>API </SPAN>and <SPAN 
class=703341815-29062005>Provider</SPAN> thread safety this switch will have to 
be replaced by kernel <SPAN 
class=703341815-29062005>configuration/version</SPAN> switch. This is "standard" 
for kernel ULP<SPAN class=703341815-29062005> 
modules</SPAN>.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>kDAT Provider will 
be effected. The <SPAN class=703341815-29062005>dat</SPAN>_info structure 
is changed. It no longer has fields for DAT major and minor versions and no 
field for thread safety. DAT Provider must match kernel <SPAN 
class=703341815-29062005>configuration/</SPAN>version <SPAN 
class=703341815-29062005>DAT API and </SPAN>thread-safety.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>Others: kDAT 
Providers will need to maintain a separate tree for Linux than for generic DAT 
or DAT for other platforms with appropriate Linux kernel versioning<SPAN 
class=703341815-29062005>/configuration</SPAN> support. For IB Providers it is 
not needed since OpenIB kDAT provides that.  For iWARP vendors if the<SPAN 
class=703341815-29062005>y</SPAN> do not plug<SPAN 
class=703341815-29062005>-</SPAN>in into gen2 as HW driver then <SPAN 
class=703341815-29062005>they </SPAN>need to match the OpenIB/Linux kDAPL 
version<SPAN class=703341815-29062005> DAT APIs and 
threading</SPAN>.</SPAN></FONT></DIV>
<DIV><SPAN class=934533914-27062005><FONT face=Arial><FONT 
size=2></FONT></FONT></SPAN> </DIV>
<DIV><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2>DAT Provider 
registration is different for uDAPL and kDAPL.<SPAN class=703341815-29062005> 
This is true at DAPL SF RI. And it is still the case for 
OpenIB.</SPAN></FONT></FONT></SPAN></DIV>
<DIV><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2><SPAN 
class=703341815-29062005></SPAN></FONT></FONT></SPAN> </DIV>
<DIV><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2><SPAN 
class=703341815-29062005>The biggest difference from DAT Spec Linux Registry 
example and OpenIB kDAT registry is a uDAPL/KDAPL registry shared configuration 
file that contains all available Providers information. But this is just an 
example. How Registry keeps the Provider info is up to a platform. Consumer can 
not rely on the back door access to the static DAT registry database. They 
should use the dat_registry_list_providers to get that info. OpenIB kDAT 
registry preserves that API with a format change for dat_info structure usable 
by Consumers.</SPAN></FONT></FONT></SPAN></DIV>
<DIV><SPAN class=934533914-27062005><FONT face=Arial><FONT size=2><SPAN 
class=703341815-29062005></SPAN></FONT></FONT></SPAN> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005>uDAT and 
kDAT <SPAN class=703341815-29062005>Providers </SPAN>code sharing is 
slightly diminished.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=934533914-27062005></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
class=703341815-29062005>In summary, kDAT registry in OpenIB fulfils all DAT 
requirements.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=934533914-27062005><SPAN 
class=703341815-29062005>There is a small change in one of the structure which 
impacts kDAPL Consumers but is consistent with the way Linux kernel ULP modules 
operation. The biggest change for DAT Collaborative is that this body no longer 
"the sole Provider of DAT Registry". I view that as good news since Linux 
maintainers are much better source of kDAPL and uDAPL registry then DAT 
Collaborative.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV><?xml:namespace prefix = o ns = 
"urn:schemas-microsoft-com:office:office" /><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="Street"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="address"></o:SmartTagType>
<STYLE>st1\:* {
        BEHAVIOR: url(#ieooui)
}
</STYLE>

<STYLE>@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; mso-header-margin: .5in; mso-footer-margin: .5in; mso-paper-source: 0; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; text-underline: single
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; text-underline: single
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
SPAN.SpellE {
        mso-style-name: ""; mso-spl-e: yes
}
DIV.Section1 {
        page: Section1
}
</STYLE>

<DIV class=Section1>
<P class=MsoNormal align=left><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Arkady <SPAN 
class=SpellE>Kanevsky</SPAN><SPAN 
style="mso-tab-count: 2">                       
</SPAN>email: <A 
href="mailto:arkady@netapp.com">arkady@netapp.com</A><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Network 
Appliance<SPAN 
style="mso-tab-count: 2">                     
</SPAN>phone: 781-768-5395<o:p></o:p></SPAN></P>
<P class=MsoNormal><?xml:namespace prefix = st1 ns = 
"urn:schemas-microsoft-com:office:smarttags" /><st1:Street><st1:address 
style="BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x"><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">375 <SPAN class=SpellE>Totten</SPAN> 
Pond Rd.</SPAN></st1:address></st1:Street><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><SPAN 
style="mso-tab-count: 2">                  
</SPAN>Fax: 781-895-1195<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Waltham, MA 
02451-2010<SPAN 
style="mso-tab-count: 1">          
</SPAN>central phone: 781-768-5300<o:p></o:p></SPAN></P>
<P class=MsoNormal><o:p> </o:p></P></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV> </DIV><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="Street"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="address"></o:SmartTagType>
<OBJECT id=ieooui classid=clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D></OBJECT>
<STYLE>st1\:* {
        BEHAVIOR: url(#ieooui)
}
</STYLE>

<STYLE>@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; mso-header-margin: .5in; mso-footer-margin: .5in; mso-paper-source: 0; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; text-underline: single
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; text-underline: single
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
SPAN.SpellE {
        mso-style-name: ""; mso-spl-e: yes
}
DIV.Section1 {
        page: Section1
}
</STYLE>

<DIV class=Section1>
<P class=MsoNormal align=left><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Arkady <SPAN 
class=SpellE>Kanevsky</SPAN><SPAN 
style="mso-tab-count: 2">                       
</SPAN>email: <A 
href="mailto:arkady@netapp.com">arkady@netapp.com</A><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Network 
Appliance<SPAN 
style="mso-tab-count: 2">                     
</SPAN>phone: 781-768-5395<o:p></o:p></SPAN></P>
<P class=MsoNormal><st1:Street><st1:address 
style="BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x"><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">375 <SPAN class=SpellE>Totten</SPAN> 
Pond Rd.</SPAN></st1:address></st1:Street><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><SPAN 
style="mso-tab-count: 2">                  
</SPAN>Fax: 781-895-1195<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Waltham, MA 
02451-2010<SPAN 
style="mso-tab-count: 1">          
</SPAN>central phone: 781-768-5300<o:p></o:p></SPAN></P>
<P class=MsoNormal><o:p> </o:p></P></DIV>
<DIV> </DIV></BODY></HTML>