\r
return IB_SUCCESS;\r
}\r
+/*\r
+* PARAMETERS\r
+* port_guid\r
+* The port GUID, in network byte order, for which to generate a\r
+* MAC address.\r
+*\r
+* p_mac_addr\r
+* Pointer to a mac address in which to store the results.\r
+*\r
+* RETURN VALUES\r
+* IB_SUCCESS\r
+* The MAC address was successfully converted.\r
+*\r
+* IB_INVALID_GUID\r
+* The port GUID provided was not a known GUID format.\r
+*\r
+*********/\r
+\r
\r
-/****f* IPOIB/ipoib_mac_from_dell_guid\r
+/****f* IPOIB/ipoib_mac_from_voltaire_guid\r
* NAME\r
-* ipoib_mac_from_dell_guid\r
+* ipoib_mac_from_voltaire_guid\r
*\r
* DESCRIPTION\r
-* Generates an ethernet MAC address given a DELL port GUID.\r
+* Generates an ethernet MAC address given a Voltaire port GUID.\r
*\r
* SYNOPSIS\r
*/\r
static inline ib_api_status_t\r
-ipoib_mac_from_dell_guid(\r
+ipoib_mac_from_voltaire_guid(\r
IN const net64_t port_guid,\r
OUT mac_addr_t* const p_mac_addr )\r
{\r
const uint8_t *p_guid = (const uint8_t*)&port_guid;\r
\r
/* Port guid is in network byte order. OUI is in lower 3 bytes. */\r
- ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x18 && p_guid[2] == 0x8b );\r
- \r
+ ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x08 && p_guid[2] == 0xf1 );\r
+\r
p_mac_addr->addr[0] = p_guid[0];\r
p_mac_addr->addr[1] = p_guid[1];\r
p_mac_addr->addr[2] = p_guid[2];\r
- p_mac_addr->addr[3] = p_guid[5];\r
- p_mac_addr->addr[4] = p_guid[6];\r
- p_mac_addr->addr[5] = p_guid[7];\r
- \r
+ p_mac_addr->addr[3] = p_guid[4] ^ p_guid[6];\r
+ p_mac_addr->addr[4] = p_guid[5] ^ p_guid[7];\r
+ p_mac_addr->addr[5] = p_guid[5] + p_guid[6] + p_guid[7];\r
+\r
return IB_SUCCESS;\r
}\r
-/*\r
-* PARAMETERS\r
-* port_guid\r
-* The port GUID, in network byte order, for which to generate a\r
-* MAC address.\r
-*\r
-* p_mac_addr\r
-* Pointer to a mac address in which to store the results.\r
-*\r
-* RETURN VALUES\r
-* IB_SUCCESS\r
-* The MAC address was successfully converted.\r
-*\r
-*********/\r
\r
\r
/****f* IPOIB/ipoib_mac_from_guid_mask\r
\r
return IB_SUCCESS;\r
}\r
-\r
/*\r
* PARAMETERS\r
* port_guid\r
*********/\r
\r
\r
-/****f* IPOIB/ipoib_mac_from_voltaire_guid\r
-* NAME\r
-* ipoib_mac_from_voltaire_guid\r
-*\r
-* DESCRIPTION\r
-* Generates an ethernet MAC address given a Voltaire port GUID.\r
-*\r
-* SYNOPSIS\r
-*/\r
-static inline ib_api_status_t\r
-ipoib_mac_from_voltaire_guid(\r
- IN const net64_t port_guid,\r
- OUT mac_addr_t* const p_mac_addr )\r
-{\r
- const uint8_t *p_guid = (const uint8_t*)&port_guid;\r
-\r
- /* Port guid is in network byte order. OUI is in lower 3 bytes. */\r
- ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x08 && p_guid[2] == 0xf1 );\r
-\r
- p_mac_addr->addr[0] = p_guid[0];\r
- p_mac_addr->addr[1] = p_guid[1];\r
- p_mac_addr->addr[2] = p_guid[2];\r
- p_mac_addr->addr[3] = p_guid[4] ^ p_guid[6];\r
- p_mac_addr->addr[4] = p_guid[5] ^ p_guid[7];\r
- p_mac_addr->addr[5] = p_guid[5] + p_guid[6] + p_guid[7];\r
-\r
- return IB_SUCCESS;\r
-}\r
-\r
-\r
/****f* IPOIB/ipoib_mac_from_guid\r
* NAME\r
* ipoib_mac_from_guid\r
*********/\r
\r
\r
-/****f* IPOIB/ipoib_sst_guid_from_mac\r
-* NAME\r
-* ipoib_sst_guid_from_mac\r
-*\r
-* DESCRIPTION\r
-* Generates a port GUID given an ethernet MAC address.\r
-*\r
-* SYNOPSIS\r
-*/\r
-static inline ib_api_status_t\r
-ipoib_sst_guid_from_mac(\r
- IN const mac_addr_t mac,\r
- OUT net64_t* const p_port_guid )\r
-{\r
- uint8_t *p_guid = (uint8_t*)p_port_guid;\r
- uint32_t low24;\r
-\r
- /* MAC address is in network byte order. OUI is in lower 3 bytes. */\r
- if( mac.addr[0] != 0x00 || \r
- mac.addr[1] != 0x06 || \r
- mac.addr[2] != 0x6a )\r
- {\r
- return IB_INVALID_GUID;\r
- }\r
-\r
- low24 = mac.addr[3] << 16 || mac.addr[4] << 8 || mac.addr[5];\r
-\r
- low24 = 0x00FFF000 - low24;\r
- /* Divide by two */\r
- low24 >>= 1;\r
- /* Add the serial number base offset. */\r
- low24 += 0x101;\r
-\r
- /* OUI */\r
- p_guid[0] = mac.addr[0];\r
- p_guid[1] = mac.addr[1];\r
- p_guid[2] = mac.addr[2];\r
- /* Port number */\r
- p_guid[3] = mac.addr[5] & 0x01;\r
- /* Type */\r
- p_guid[4] = 0x98;\r
- /* Serial Number */\r
- p_guid[5] = (uint8_t)(low24 >> 16);\r
- p_guid[6] = (uint8_t)(low24 >> 8);\r
- p_guid[7] = (uint8_t)low24;\r
- \r
- return IB_SUCCESS;\r
-}\r
-/*\r
-* PARAMETERS\r
-* port_guid\r
-* The port GUID, in network byte order, for which to generate a\r
-* MAC address.\r
-*\r
-* p_mac_addr\r
-* Pointer to a mac address in which to store the results.\r
-*\r
-* RETURN VALUES\r
-* IB_SUCCESS\r
-* The MAC address was successfully converted.\r
-*\r
-* IB_INVALID_GUID\r
-* The port GUID provided was not a known GUID format.\r
-*\r
-* NOTES\r
-* The algorithm to convert portGuid to MAC address is as per DN0074, and\r
-* assumes a 2 port HCA.\r
-*\r
-* SEE ALSO\r
-* IPOIB\r
-*********/\r
-\r
-\r
-/****f* IPOIB/ipoib_mlx_guid_from_mac\r
-* NAME\r
-* ipoib_mlx_guid_from_mac\r
-*\r
-* DESCRIPTION\r
-* Generates a port GUID given an ethernet MAC address.\r
-*\r
-* SYNOPSIS\r
-*/\r
-static inline ib_api_status_t\r
-ipoib_mlx_guid_from_mac(\r
- IN const mac_addr_t mac,\r
- OUT net64_t* const p_port_guid )\r
-{\r
- uint8_t *p_guid = (uint8_t*)p_port_guid;\r
- uint32_t low24;\r
-\r
- /* MAC address is in network byte order. OUI is in lower 3 bytes. */\r
- if( mac.addr[0] != 0x00 || \r
- mac.addr[1] != 0x02 || \r
- mac.addr[2] != 0xc9 )\r
- {\r
- return IB_INVALID_GUID;\r
- }\r
-\r
- low24 = mac.addr[3] << 16 || mac.addr[4] << 8 || mac.addr[5];\r
-\r
- /* OUI */\r
- p_guid[0] = mac.addr[0];\r
- p_guid[1] = mac.addr[1];\r
- p_guid[2] = mac.addr[2];\r
- p_guid[3] = 0x02;\r
- p_guid[4] = 0x00;\r
- /* Serial Number */\r
- p_guid[5] = (uint8_t)(low24 >> 16);\r
- p_guid[6] = (uint8_t)(low24 >> 8);\r
- p_guid[7] = (uint8_t)low24;\r
- \r
- return IB_SUCCESS;\r
-}\r
-/*\r
-* PARAMETERS\r
-* port_guid\r
-* The port GUID, in network byte order, for which to generate a\r
-* MAC address.\r
-*\r
-* p_mac_addr\r
-* Pointer to a mac address in which to store the results.\r
-*\r
-* RETURN VALUES\r
-* IB_SUCCESS\r
-* The MAC address was successfully converted.\r
-*\r
-* IB_INVALID_GUID\r
-* The port GUID provided was not a known GUID format.\r
-*\r
-* NOTES\r
-* The algorithm to convert portGuid to MAC address is as \r
-*\r
-* SEE ALSO\r
-* IPOIB\r
-*********/\r
-\r
-\r
/****f* IPOIB/ipoib_is_voltaire_router_gid\r
* NAME\r
* ipoib_is_voltaire_router_gid\r