[ofw] [IPoIB][patch 3/3] Adding support to dell guid and user-define mask for guid generation - revisited
Alex Naslednikov
xalex at mellanox.co.il
Tue Sep 23 07:55:24 PDT 2008
This patch contains fix for build break (free version only) caused by
IPOIB_PRINT macro used in ipoib_xfr_mgr.h
Signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_adapter.c
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_adapter.c
(revision 3222)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_adapter.c
(revision 3228)
@@ -368,8 +368,14 @@
/* Validate the port GUID and generate the MAC address. */
status =
ipoib_mac_from_guid( p_adapter->guids.port_guid.guid,
p_adapter->params.guid_mask, &p_adapter->mac);
- if( status != IB_SUCCESS )
+ if (status == IB_INVALID_GUID_MASK)
{
+ IPOIB_PRINT( TRACE_LEVEL_WARNING, IPOIB_DBG_ERROR,
+ ("Invalid GUID mask received, rejecting it") );
+ ipoib_create_log(p_adapter->h_adapter,
GUID_MASK_LOG_INDEX, EVENT_IPOIB_WRONG_PARAMETER_WRN);
+ }
+ else if( status != IB_SUCCESS )
+ {
IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
("ipoib_mac_from_guid returned %s\n",
p_adapter->p_ifc->get_err_str( status )) );
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_port.c
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_port.c (revision 3222)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_port.c (revision 3228)
@@ -1823,8 +1823,14 @@
#else /* IPOIB_INLINE_RECV */
p_desc->p_buf->ib.grh.src_gid.unicast.interface_id,
p_port->p_adapter->params.guid_mask, &mac );
#endif /* IPOIB_INLINE_RECV */
- if( status != IB_SUCCESS )
+ if (status == IB_INVALID_GUID_MASK)
{
+ IPOIB_PRINT( TRACE_LEVEL_WARNING,
IPOIB_DBG_ERROR,
+ ("Invalid GUID mask received,
rejecting it") );
+
ipoib_create_log(p_port->p_adapter->h_adapter, GUID_MASK_LOG_INDEX,
EVENT_IPOIB_WRONG_PARAMETER_WRN);
+ }
+ else if( status != IB_SUCCESS )
+ {
IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR,
IPOIB_DBG_ERROR,
("ipoib_mac_from_guid returned
%s\n",
p_port->p_adapter->p_ifc->get_err_str( status )) );
@@ -2316,6 +2322,13 @@
p_cid[1] = HW_ADDR_LEN +1;// CID length
p_cid[2] = DHCP_HW_TYPE_ETH;// CID type
status = ipoib_mac_from_guid( gid.unicast.interface_id,
p_port->p_adapter->params.guid_mask, (mac_addr_t*)&p_cid[3] );
+ if (status == IB_INVALID_GUID_MASK)
+ {
+ IPOIB_PRINT( TRACE_LEVEL_WARNING,
IPOIB_DBG_ERROR,
+ ("Invalid GUID mask received, rejecting
it") );
+ ipoib_create_log(p_port->p_adapter->h_adapter,
GUID_MASK_LOG_INDEX, EVENT_IPOIB_WRONG_PARAMETER_WRN);
+ status = IB_SUCCESS;
+ }
p_cid[HW_ADDR_LEN + 3] = DHCP_OPT_END; //terminate tag
}
IPOIB_EXIT( IPOIB_DBG_RECV );
@@ -2426,8 +2439,14 @@
/* Copy the src GID to allow aligned access */
cl_memcpy( &gid, &p_ib_arp->src_hw.gid, sizeof(ib_gid_t)
);
status = ipoib_mac_from_guid( gid.unicast.interface_id,
p_port->p_adapter->params.guid_mask, &mac );
- if( status != IB_SUCCESS )
+ if (status == IB_INVALID_GUID_MASK)
{
+ IPOIB_PRINT( TRACE_LEVEL_WARNING,
IPOIB_DBG_ERROR,
+ ("Invalid GUID mask received, rejecting
it") );
+ ipoib_create_log(p_port->p_adapter->h_adapter,
GUID_MASK_LOG_INDEX, EVENT_IPOIB_WRONG_PARAMETER_WRN);
+ }
+ else if( status != IB_SUCCESS )
+ {
IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR,
IPOIB_DBG_ERROR,
("ipoib_mac_from_guid returned %s\n",
p_port->p_adapter->p_ifc->get_err_str(
status )) );
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.c
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.c
(revision 3222)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.c
(revision 3228)
@@ -150,6 +150,8 @@
IPOIB_REG_ENTRY HCARegTable[] = {
// reg value name If Required Offset in parentr
struct Field size Default Min
Max
+ {NDIS_STRING_CONST("GUIDMask"), 1,
IPOIB_OFFSET(guid_mask), IPOIB_SIZE(guid_mask), 0,
0, MAX_GUID_MAX},
+ /* GUIDMask should be the first element */
{NDIS_STRING_CONST("RqDepth"), 1,
IPOIB_OFFSET(rq_depth), IPOIB_SIZE(rq_depth),
512, 128, 1024},
{NDIS_STRING_CONST("RqLowWatermark"), 0,
IPOIB_OFFSET(rq_low_watermark), IPOIB_SIZE(rq_low_watermark), 4,
2, 8},
{NDIS_STRING_CONST("SqDepth"), 1,
IPOIB_OFFSET(sq_depth), IPOIB_SIZE(sq_depth),
512, 128, 1024},
@@ -160,16 +162,14 @@
{NDIS_STRING_CONST("RecvRatio"), 1,
IPOIB_OFFSET(recv_pool_ratio), IPOIB_SIZE(recv_pool_ratio), 1,
1, 10},
{NDIS_STRING_CONST("PayloadMtu"), 1,
IPOIB_OFFSET(payload_mtu), IPOIB_SIZE(payload_mtu),
2044, 60, 4092},
{NDIS_STRING_CONST("lso"), 0, IPOIB_OFFSET(lso),
IPOIB_SIZE(lso), 0, 0, 1},
- {NDIS_STRING_CONST("MCLeaveRescan"), 1,
IPOIB_OFFSET(mc_leave_rescan), IPOIB_SIZE(mc_leave_rescan),
260, 1, 3600},
- {NDIS_STRING_CONST("GUIDMask"), 1,
IPOIB_OFFSET(guid_mask), IPOIB_SIZE(guid_mask), 0,
0, MAX_GUID_MAX}
+ {NDIS_STRING_CONST("MCLeaveRescan"), 1,
IPOIB_OFFSET(mc_leave_rescan), IPOIB_SIZE(mc_leave_rescan),
260, 1, 3600}
-
};
#define IPOIB_NUM_REG_PARAMS (sizeof (HCARegTable) /
sizeof(IPOIB_REG_ENTRY))
-static void
+void
ipoib_create_log(
NDIS_HANDLE h_adapter,
UINT ind,
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.h
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.h
(revision 3222)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.h
(revision 3228)
@@ -119,9 +119,14 @@
* List of adapters in the bundle. The adapter at the head
is the
* primary adapter of the bundle.
*********/
+void
+ipoib_create_log(
+ NDIS_HANDLE h_adapter,
+ UINT ind,
+ ULONG eventLogMsgId);
+#define GUID_MASK_LOG_INDEX 0
-
void
ipoib_resume_oids(
IN ipoib_adapter_t* const
p_adapter );
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_xfr_mgr.h
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_xfr_mgr.h
(revision 3222)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_xfr_mgr.h
(revision 3228)
@@ -291,7 +291,7 @@
IN uint32_t
guid_mask,
OUT mac_addr_t* const
p_mac_addr )
{
-#define MAC_ADDR_SIZE 6
+ static const mac_addr_size = HW_ADDR_LEN;
uint8_t i;
const uint8_t *p_guid = (const uint8_t*)&port_guid;
int digit_counter = 0;
@@ -301,22 +301,21 @@
for (i = 7; guid_mask; guid_mask >>= 1, --i) {
if (guid_mask & 1 ) {
++digit_counter;
- if (digit_counter > MAC_ADDR_SIZE) {
+ if (digit_counter > mac_addr_size) {
//to avoid negative index
return IB_INVALID_GUID_MASK;
}
- p_mac_addr->addr[MAC_ADDR_SIZE - digit_counter]
= p_guid [i];
+ p_mac_addr->addr[mac_addr_size - digit_counter]
= p_guid [i];
}
}
// check for the mask validity: it should have 6
non-zero bits
- if (digit_counter != MAC_ADDR_SIZE) {
+ if (digit_counter != mac_addr_size) {
return IB_INVALID_GUID_MASK;
}
return IB_SUCCESS;
}
-
/*
* PARAMETERS
* port_guid
@@ -372,66 +371,7 @@
return IB_SUCCESS;
}
-/****f* IPOIB/ipoib_mac_from_supermicro_guid
-* NAME
-* ipoib_mac_from_supermicro_guid
-*
-* DESCRIPTION
-* Generates an ethernet MAC address given a supermicro port GUID.
-*
-* SYNOPSIS
-*/
-static inline ib_api_status_t
-ipoib_mac_from_supermicro_guid(
- IN const net64_t
port_guid,
- OUT mac_addr_t* const
p_mac_addr )
-{
- const uint8_t *p_guid = (const uint8_t*)&port_guid;
- /* Port guid is in network byte order. OUI is in lower 3 bytes.
*/
- ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x30 && p_guid[2] ==
0x48
- && p_guid[3] == 0xff && p_guid[4] == 0xff);
-
- p_mac_addr->addr[0] = 0;
- p_mac_addr->addr[1] = 0x30;
- p_mac_addr->addr[2] = 0x48;
- p_mac_addr->addr[3] = p_guid[5];
- p_mac_addr->addr[4] = p_guid[6];
- p_mac_addr->addr[5] = p_guid[7];
-
- return IB_SUCCESS;
-}
-
-/****f* IPOIB/ipoib_mac_from_cisco_guid
-* NAME
-* ipoib_mac_from_cisco_guid
-*
-* DESCRIPTION
-* Generates an ethernet MAC address given a Cisco port GUID.
-*
-* SYNOPSIS
-*/
-static inline ib_api_status_t
-ipoib_mac_from_cisco_guid(
- IN const net64_t
port_guid,
- OUT mac_addr_t* const
p_mac_addr )
-{
- const uint8_t *p_guid = (const uint8_t*)&port_guid;
-
- /* Port guid is in network byte order. OUI is in lower 3 bytes.
*/
- ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x5 && p_guid[2] ==
0xad);
-
- p_mac_addr->addr[0] = 0;
- p_mac_addr->addr[1] = 0x5;
- p_mac_addr->addr[2] = 0xad;
- p_mac_addr->addr[3] = p_guid[5];
- p_mac_addr->addr[4] = p_guid[6];
- p_mac_addr->addr[5] = p_guid[7];
-
- return IB_SUCCESS;
-}
-
-
/****f* IPOIB/ipoib_mac_from_guid
* NAME
* ipoib_mac_from_guid
@@ -449,26 +389,26 @@
)
{
static const guid_default_mask = 0xE7; //==0b 11100111
- ib_api_status_t status;
+ ib_api_status_t status = IB_INVALID_GUID;
+ ib_api_status_t mask_status = IB_SUCCESS;
const uint8_t *p_guid = (const uint8_t*)&port_guid;
uint32_t laa;
if ( guid_mask )
{
- status = ipoib_mac_from_general_guid(port_guid,
guid_mask, p_mac_addr);
- if( status == IB_SUCCESS )
+ mask_status = ipoib_mac_from_general_guid(port_guid,
guid_mask, p_mac_addr);
+ if( mask_status == IB_SUCCESS )
return IB_SUCCESS;
//otherwise, mask was invalid, getting back to standard
flow
- if (status == IB_INVALID_GUID_MASK)
+ /*if (status == IB_INVALID_GUID_MASK)
{
IPOIB_PRINT( TRACE_LEVEL_WARNING,
IPOIB_DBG_ERROR,
("Invalid GUID mask received, rejecting it") );
- }
+ }*/
}
if( p_guid[0] == 0 )
{
- status = IB_INVALID_GUID;
if( p_guid[1] == 0x02 && p_guid[2] == 0xc9 )
{
status = ipoib_mac_from_mlx_guid( port_guid,
p_mac_addr );
@@ -503,9 +443,11 @@
status =ipoib_mac_from_general_guid(port_guid,
guid_default_mask, p_mac_addr);
}
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
- ASSERT(status != IB_INVALID_GUID_MASK);
+ if (status == IB_SUCCESS )
+ {
+ ASSERT ( mask_status == IB_SUCCESS ||
mask_status == IB_INVALID_GUID_MASK );
+ return mask_status;
+ }
}
/* Value of zero is reserved. */
@@ -521,7 +463,7 @@
p_mac_addr->addr[4] = (uint8_t)(laa >> 8);
p_mac_addr->addr[5] = (uint8_t)laa;
- return IB_SUCCESS;
+ return mask_status;
}
/*
* PARAMETERS
-----Original Message-----
From: Alex Naslednikov
Sent: Monday, September 22, 2008 7:09 PM
To: Alex Naslednikov; ofw at lists.openfabrics.org; Tzachi Dar
Cc: Ishai Rabinovitz
Subject: [ofw] [IPoIB][patch 3/3] Adding support to dell guid and
user-define mask for guid generation - revisited
This patch reuses ipoib_mac_from_general_guid and contains important
bugfix Signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_adapter.c
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_adapter.c
(revision 3221)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_adapter.c
(revision 3222)
@@ -121,7 +121,9 @@
NDIS_STATUS
ipoib_get_adapter_params(
IN NDIS_HANDLE* const
wrapper_config_context,
- IN OUT ipoib_adapter_t
*p_adapter );
+ IN OUT ipoib_adapter_t
*p_adapter,
+ OUT PUCHAR
*p_mac,
+ OUT UINT
*p_len);
/* Implementation */
@@ -134,6 +136,8 @@
ipoib_adapter_t *p_adapter;
ib_api_status_t status;
cl_status_t cl_status;
+ PUCHAR mac;
+ UINT len;
IPOIB_ENTER( IPOIB_DBG_INIT );
@@ -185,6 +189,17 @@
return IB_ERROR;
}
+ /* Read configuration parameters. */
+ status = ipoib_get_adapter_params( wrapper_config_context,
+ p_adapter , &mac, &len);
+ if( status != NDIS_STATUS_SUCCESS )
+ {
+ cl_obj_destroy( &p_adapter->obj );
+ IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
+ ("ipoib_get_adapter_params returned 0x%.8x.\n",
status) );
+ return status;
+ }
+
status = adapter_init( p_adapter );
if( status != IB_SUCCESS )
{
@@ -195,15 +210,23 @@
return status;
}
- /* Read configuration parameters. */
- status = ipoib_get_adapter_params( wrapper_config_context,
- p_adapter );
- if( status != NDIS_STATUS_SUCCESS )
+ ETH_COPY_NETWORK_ADDRESS( p_adapter->params.conf_mac.addr,
p_adapter->mac.addr );
+ /* If there is a NetworkAddress override in registry, use it */
+ if( (status == NDIS_STATUS_SUCCESS) && (len == HW_ADDR_LEN) )
{
- cl_obj_destroy( &p_adapter->obj );
- IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
- ("ipoib_get_adapter_params returned 0x%.8x.\n",
status) );
- return status;
+ if( ETH_IS_MULTICAST(mac) || ETH_IS_BROADCAST(mac) ||
+ !ETH_IS_LOCALLY_ADMINISTERED(mac) )
+ {
+ IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_INIT,
+ ("Overriding NetworkAddress is invalid -
"
+ "%02x-%02x-%02x-%02x-%02x-%02x\n",
+ mac[0], mac[1], mac[2],
+ mac[3], mac[4], mac[5]) );
+ }
+ else
+ {
+ ETH_COPY_NETWORK_ADDRESS(
p_adapter->params.conf_mac.addr, mac );
+ }
}
*pp_adapter = p_adapter;
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.c
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.c
(revision 3221)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_driver.c
(revision 3222)
@@ -484,13 +484,13 @@
NDIS_STATUS
ipoib_get_adapter_params(
IN NDIS_HANDLE* const
wrapper_config_context,
- IN OUT ipoib_adapter_t
*p_adapter )
+ IN OUT ipoib_adapter_t
*p_adapter,
+ OUT PUCHAR
*p_mac,
+ OUT UINT
*p_len)
{
NDIS_STATUS status;
NDIS_HANDLE
h_config;
NDIS_CONFIGURATION_PARAMETER *p_param;
- PUCHAR mac;
- UINT len;
UINT value;
PIPOIB_REG_ENTRY pRegEntry;
UINT i;
@@ -598,26 +598,8 @@
p_adapter->params.rq_depth /
p_adapter->params.rq_low_watermark;
p_adapter->params.xfer_block_size = (sizeof(eth_hdr_t) +
p_adapter->params.payload_mtu);
- NdisReadNetworkAddress( &status, &mac, &len, h_config );
+ NdisReadNetworkAddress( &status, p_mac, p_len, h_config );
- ETH_COPY_NETWORK_ADDRESS( p_adapter->params.conf_mac.addr,
p_adapter->mac.addr );
- /* If there is a NetworkAddress override in registry, use it */
- if( (status == NDIS_STATUS_SUCCESS) && (len == HW_ADDR_LEN) )
- {
- if( ETH_IS_MULTICAST(mac) || ETH_IS_BROADCAST(mac) ||
- !ETH_IS_LOCALLY_ADMINISTERED(mac) )
- {
- IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_INIT,
- ("Overriding NetworkAddress is invalid -
"
- "%02x-%02x-%02x-%02x-%02x-%02x\n",
- mac[0], mac[1], mac[2],
- mac[3], mac[4], mac[5]) );
- }
- else
- {
- ETH_COPY_NETWORK_ADDRESS(
p_adapter->params.conf_mac.addr, mac );
- }
- }
NdisCloseConfiguration( h_config );
Index: D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_xfr_mgr.h
===================================================================
--- D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_xfr_mgr.h
(revision 3221)
+++ D:/Windows/MLNX_WINOF/ulp/ipoib/kernel/ipoib_xfr_mgr.h
(revision 3222)
@@ -431,53 +431,7 @@
return IB_SUCCESS;
}
-/****f* IPOIB/ipoib_mac_from_hp_guid
-* NAME
-* ipoib_mac_from_hp_guid
-*
-* DESCRIPTION
-* Generates an ethernet MAC address given a HP port GUID.
-*
-* SYNOPSIS
-*/
-static inline ib_api_status_t
-ipoib_mac_from_hp_guid(
- IN const net64_t
port_guid,
- OUT mac_addr_t* const
p_mac_addr )
-{
- const uint8_t *p_guid = (const uint8_t*)&port_guid;
- /* Port guid is in network byte order. OUI is in lower 3 bytes.
*/
- ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x1a && p_guid[2] ==
0x4b);
-
- p_mac_addr->addr[0] = 0;
- p_mac_addr->addr[1] = 0x1a;
- p_mac_addr->addr[2] = 0x4b;
- p_mac_addr->addr[3] = p_guid[5];
- p_mac_addr->addr[4] = p_guid[6];
- p_mac_addr->addr[5] = p_guid[7];
-
- return IB_SUCCESS;
-}
-
-/*
-* PARAMETERS
-* port_guid
-* The port GUID, in network byte order, for which to
generate a
-* MAC address.
-*
-* p_mac_addr
-* Pointer to a mac address in which to store the results.
-*
-* RETURN VALUES
-* IB_SUCCESS
-* The MAC address was successfully converted.
-*
-* SEE ALSO
-* IPOIB
-*********/
-
-
/****f* IPOIB/ipoib_mac_from_guid
* NAME
* ipoib_mac_from_guid
@@ -505,53 +459,53 @@
if( status == IB_SUCCESS )
return IB_SUCCESS;
//otherwise, mask was invalid, getting back to standard
flow
+ if (status == IB_INVALID_GUID_MASK)
+ {
+ IPOIB_PRINT( TRACE_LEVEL_WARNING,
IPOIB_DBG_ERROR,
+ ("Invalid GUID mask received, rejecting it") );
+ }
}
if( p_guid[0] == 0 )
{
+ status = IB_INVALID_GUID;
if( p_guid[1] == 0x02 && p_guid[2] == 0xc9 )
{
status = ipoib_mac_from_mlx_guid( port_guid,
p_mac_addr );
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
}
else if( p_guid[1] == 0x08 && p_guid[2] == 0xf1 )
{
status = ipoib_mac_from_voltaire_guid(
port_guid, p_mac_addr );
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
}
else if( p_guid[1] == 0x30 && p_guid[2] == 0x48 )
{
- status = ipoib_mac_from_supermicro_guid(
port_guid, p_mac_addr );
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
+ //Supermicro GUID
+ status =ipoib_mac_from_general_guid(port_guid,
guid_default_mask,
+p_mac_addr);
}
else if( p_guid[1] == 0x05 && p_guid[2] == 0xad )
{
- status = ipoib_mac_from_cisco_guid( port_guid,
p_mac_addr );
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
+ //Cisco GUID
+ status =ipoib_mac_from_general_guid(port_guid,
guid_default_mask,
+p_mac_addr);
}
/* Port guid is in network byte order. OUI is in lower
3 bytes. */
else if( p_guid[1] == 0x06 && p_guid[2] == 0x6a )
{
status = ipoib_mac_from_sst_guid( port_guid,
p_mac_addr );
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
}
else if( p_guid[1] == 0x1a && p_guid[2] == 0x4b )
{
- status = ipoib_mac_from_hp_guid( port_guid,
p_mac_addr );
- if( status == IB_SUCCESS )
- return IB_SUCCESS;
+ //HP GUID
+ status =ipoib_mac_from_general_guid(port_guid,
guid_default_mask,
+p_mac_addr);
}
else if( p_guid[1] == 0x18 && p_guid[2] == 0x8b )
{
- status = ipoib_mac_from_dell_guid( port_guid,
p_mac_addr );
+ //DELL GUID
+ status =ipoib_mac_from_general_guid(port_guid,
guid_default_mask, p_mac_addr);
+ }
+
if( status == IB_SUCCESS )
return IB_SUCCESS;
- }
+ ASSERT(status != IB_INVALID_GUID_MASK);
}
/* Value of zero is reserved. */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipoib_guid4.diff
Type: application/octet-stream
Size: 10673 bytes
Desc: ipoib_guid4.diff
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20080923/b08391fa/attachment.obj>
More information about the ofw
mailing list