<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3314" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff size=2>Hi 
Tzachi,</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff size=2>The 
patch removes the following functions (they are not used 
anymore):</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2>    ipoib_mac_from_dell_guid(),</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008></SPAN><SPAN class=503252813-03112008><FONT 
face=Arial color=#0000ff size=2>    
ipoib_sst_guid_from_mac(),</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2>    ipoib_mlx_guid_from_mac()</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN><SPAN class=503252813-03112008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff size=2>I'm 
sure that mac_from_dell_guid() can be removed (since we used generic 
function instead - mac_from_guid_mask)</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff size=2>I'm 
not sure if we ever used/will use the latter two functions. Your 
comments will be helpful.</FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><EM>Thanks, Reuven.</EM></FONT></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff 
size=2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>></FONT></SPAN></DIV>
<DIV><SPAN class=503252813-03112008><FONT face=Arial color=#0000ff size=2>Index: 
ulp/ipoib/kernel/ipoib_xfr_mgr.h<BR>===================================================================<BR>--- 
ulp/ipoib/kernel/ipoib_xfr_mgr.h (revision 1722)<BR>+++ 
ulp/ipoib/kernel/ipoib_xfr_mgr.h (working copy)<BR>@@ -231,49 +231,53 
@@<BR>  <BR>  return IB_SUCCESS;<BR> }<BR>+/*<BR>+* 
PARAMETERS<BR>+* port_guid<BR>+*  The port GUID, in network byte 
order, for which to generate a<BR>+*  MAC 
address.<BR>+*<BR>+* p_mac_addr<BR>+*  Pointer to a mac address 
in which to store the results.<BR>+*<BR>+* RETURN 
VALUES<BR>+* IB_SUCCESS<BR>+*  The MAC address was successfully 
converted.<BR>+*<BR>+* IB_INVALID_GUID<BR>+*  The port GUID 
provided was not a known GUID format.<BR>+*<BR>+*********/<BR> <BR>-/****f* 
IPOIB/ipoib_mac_from_dell_guid<BR>+<BR>+/****f* 
IPOIB/ipoib_mac_from_voltaire_guid<BR> * 
NAME<BR>-* ipoib_mac_from_dell_guid<BR>+* ipoib_mac_from_voltaire_guid<BR> *<BR> * 
DESCRIPTION<BR>-* Generates an ethernet MAC address given a DELL port 
GUID.<BR>+* Generates an ethernet MAC address given a Voltaire port 
GUID.<BR> *<BR> * SYNOPSIS<BR> */<BR> static inline 
ib_api_status_t<BR>-ipoib_mac_from_dell_guid(<BR>+ipoib_mac_from_voltaire_guid(<BR>  IN  const net64_t      port_guid,<BR>   OUT   mac_addr_t* 
const   p_mac_addr )<BR> {<BR>  const 
uint8_t *p_guid = (const 
uint8_t*)&port_guid;<BR> <BR>  /* Port guid is in network 
byte order.  OUI is in lower 3 bytes. */<BR>- ASSERT( p_guid[0] == 
0x00 && p_guid[1] == 0x18 && p_guid[2] == 0x8b 
);<BR>- <BR>+ ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x08 
&& p_guid[2] == 0xf1 );<BR>+<BR>  p_mac_addr->addr[0] = 
p_guid[0];<BR>  p_mac_addr->addr[1] = 
p_guid[1];<BR>  p_mac_addr->addr[2] = 
p_guid[2];<BR>- p_mac_addr->addr[3] = 
p_guid[5];<BR>- p_mac_addr->addr[4] = 
p_guid[6];<BR>- p_mac_addr->addr[5] = 
p_guid[7];<BR>- <BR>+ p_mac_addr->addr[3] = p_guid[4] ^ 
p_guid[6];<BR>+ p_mac_addr->addr[4] = p_guid[5] ^ 
p_guid[7];<BR>+ p_mac_addr->addr[5] = p_guid[5] + p_guid[6] + 
p_guid[7];<BR>+<BR>  return IB_SUCCESS;<BR> }<BR>-/*<BR>-* 
PARAMETERS<BR>-* port_guid<BR>-*  The port GUID, in network byte 
order, for which to generate a<BR>-*  MAC 
address.<BR>-*<BR>-* p_mac_addr<BR>-*  Pointer to a mac address 
in which to store the results.<BR>-*<BR>-* RETURN 
VALUES<BR>-* IB_SUCCESS<BR>-*  The MAC address was successfully 
converted.<BR>-*<BR>-*********/<BR> <BR> <BR> /****f* 
IPOIB/ipoib_mac_from_guid_mask<BR>@@ -317,7 +321,6 
@@<BR> <BR>  return 
IB_SUCCESS;<BR> }<BR>-<BR> /*<BR> * 
PARAMETERS<BR> * port_guid<BR>@@ -344,36 +347,6 
@@<BR> *********/<BR> <BR> <BR>-/****f* 
IPOIB/ipoib_mac_from_voltaire_guid<BR>-* 
NAME<BR>-* ipoib_mac_from_voltaire_guid<BR>-*<BR>-* 
DESCRIPTION<BR>-* Generates an ethernet MAC address given a Voltaire port 
GUID.<BR>-*<BR>-* SYNOPSIS<BR>-*/<BR>-static inline 
ib_api_status_t<BR>-ipoib_mac_from_voltaire_guid(<BR>- IN  const net64_t      port_guid,<BR>-  OUT   mac_addr_t* 
const   p_mac_addr )<BR>-{<BR>- const uint8_t *p_guid = 
(const uint8_t*)&port_guid;<BR>-<BR>- /* Port guid is in network byte 
order.  OUI is in lower 3 bytes. */<BR>- ASSERT( p_guid[0] == 0x00 
&& p_guid[1] == 0x08 && p_guid[2] == 0xf1 
);<BR>-<BR>- p_mac_addr->addr[0] = 
p_guid[0];<BR>- p_mac_addr->addr[1] = 
p_guid[1];<BR>- p_mac_addr->addr[2] = 
p_guid[2];<BR>- p_mac_addr->addr[3] = p_guid[4] ^ 
p_guid[6];<BR>- p_mac_addr->addr[4] = p_guid[5] ^ 
p_guid[7];<BR>- p_mac_addr->addr[5] = p_guid[5] + p_guid[6] + 
p_guid[7];<BR>-<BR>- return IB_SUCCESS;<BR>-}<BR>-<BR>-<BR> /****f* 
IPOIB/ipoib_mac_from_guid<BR> * 
NAME<BR> * ipoib_mac_from_guid<BR>@@ -478,143 +451,6 
@@<BR> *********/<BR> <BR> <BR>-/****f* 
IPOIB/ipoib_sst_guid_from_mac<BR>-* 
NAME<BR>-* ipoib_sst_guid_from_mac<BR>-*<BR>-* 
DESCRIPTION<BR>-* Generates a port GUID given an ethernet MAC 
address.<BR>-*<BR>-* SYNOPSIS<BR>-*/<BR>-static inline 
ib_api_status_t<BR>-ipoib_sst_guid_from_mac(<BR>- IN  const mac_addr_t     mac,<BR>-  OUT   net64_t* 
const    p_port_guid 
)<BR>-{<BR>- uint8_t  *p_guid = 
(uint8_t*)p_port_guid;<BR>- uint32_t low24;<BR>-<BR>- /* MAC 
address is in network byte order.  OUI is in lower 3 bytes. 
*/<BR>- if( mac.addr[0] != 0x00 || <BR>-  mac.addr[1] != 0x06 || 
<BR>-  mac.addr[2] != 0x6a )<BR>- {<BR>-  return 
IB_INVALID_GUID;<BR>- }<BR>-<BR>- low24 = mac.addr[3] << 16 || 
mac.addr[4] << 8 || mac.addr[5];<BR>-<BR>- low24 = 0x00FFF000 - 
low24;<BR>- /* Divide by two */<BR>- low24 >>= 1;<BR>- /* 
Add the serial number base offset. */<BR>- low24 += 
0x101;<BR>-<BR>- /* OUI */<BR>- p_guid[0] = 
mac.addr[0];<BR>- p_guid[1] = mac.addr[1];<BR>- p_guid[2] = 
mac.addr[2];<BR>- /* Port number */<BR>- p_guid[3] = mac.addr[5] & 
0x01;<BR>- /* Type */<BR>- p_guid[4] = 0x98;<BR>- /* Serial 
Number */<BR>- p_guid[5] = (uint8_t)(low24 >> 
16);<BR>- p_guid[6] = (uint8_t)(low24 >> 8);<BR>- p_guid[7] = 
(uint8_t)low24;<BR>- <BR>- return IB_SUCCESS;<BR>-}<BR>-/*<BR>-* 
PARAMETERS<BR>-* port_guid<BR>-*  The port GUID, in network byte 
order, for which to generate a<BR>-*  MAC 
address.<BR>-*<BR>-* p_mac_addr<BR>-*  Pointer to a mac address 
in which to store the results.<BR>-*<BR>-* RETURN 
VALUES<BR>-* IB_SUCCESS<BR>-*  The MAC address was successfully 
converted.<BR>-*<BR>-* IB_INVALID_GUID<BR>-*  The port GUID 
provided was not a known GUID format.<BR>-*<BR>-* NOTES<BR>-* The algorithm 
to convert portGuid to MAC address is as per DN0074, and<BR>-* assumes a 2 
port HCA.<BR>-*<BR>-* SEE 
ALSO<BR>-* IPOIB<BR>-*********/<BR>-<BR>-<BR>-/****f* 
IPOIB/ipoib_mlx_guid_from_mac<BR>-* 
NAME<BR>-* ipoib_mlx_guid_from_mac<BR>-*<BR>-* 
DESCRIPTION<BR>-* Generates a port GUID given an ethernet MAC 
address.<BR>-*<BR>-* SYNOPSIS<BR>-*/<BR>-static inline 
ib_api_status_t<BR>-ipoib_mlx_guid_from_mac(<BR>- IN  const mac_addr_t     mac,<BR>-  OUT   net64_t* 
const    p_port_guid 
)<BR>-{<BR>- uint8_t  *p_guid = 
(uint8_t*)p_port_guid;<BR>- uint32_t low24;<BR>-<BR>- /* MAC 
address is in network byte order.  OUI is in lower 3 bytes. 
*/<BR>- if( mac.addr[0] != 0x00 || <BR>-  mac.addr[1] != 0x02 || 
<BR>-  mac.addr[2] != 0xc9 )<BR>- {<BR>-  return 
IB_INVALID_GUID;<BR>- }<BR>-<BR>- low24 = mac.addr[3] << 16 || 
mac.addr[4] << 8 || mac.addr[5];<BR>-<BR>- /* OUI 
*/<BR>- p_guid[0] = mac.addr[0];<BR>- p_guid[1] = 
mac.addr[1];<BR>- p_guid[2] = mac.addr[2];<BR>- p_guid[3] = 
0x02;<BR>- p_guid[4] = 0x00;<BR>- /* Serial Number 
*/<BR>- p_guid[5] = (uint8_t)(low24 >> 16);<BR>- p_guid[6] = 
(uint8_t)(low24 >> 8);<BR>- p_guid[7] = 
(uint8_t)low24;<BR>- <BR>- return IB_SUCCESS;<BR>-}<BR>-/*<BR>-* 
PARAMETERS<BR>-* port_guid<BR>-*  The port GUID, in network byte 
order, for which to generate a<BR>-*  MAC 
address.<BR>-*<BR>-* p_mac_addr<BR>-*  Pointer to a mac address 
in which to store the results.<BR>-*<BR>-* RETURN 
VALUES<BR>-* IB_SUCCESS<BR>-*  The MAC address was successfully 
converted.<BR>-*<BR>-* IB_INVALID_GUID<BR>-*  The port GUID 
provided was not a known GUID format.<BR>-*<BR>-* NOTES<BR>-* The algorithm 
to convert portGuid to MAC address is as <BR>-*<BR>-* SEE 
ALSO<BR>-* IPOIB<BR>-*********/<BR>-<BR>-<BR> /****f* 
IPOIB/ipoib_is_voltaire_router_gid<BR> * 
NAME<BR> * ipoib_is_voltaire_router_gid<BR></FONT></SPAN></DIV></BODY></HTML>