Discussion:
[Openib-windows] ib_types.h and Win/Linux consolidation
Eitan Zahavi
2006-07-06 18:11:46 UTC
Permalink
Hi All,

I have been approached by several people asking for where does one gets
a header
file defining the IBTA "wire" protocol.
My response was: "Ohh we got it all coded in
osm/include/iba/ib_types.h".
"But that thing is so down the tree I do not consider as official" was
the answer.

So the point is clear: If we are missing such a complete IBTA H file and
people are actually looking for where the wire protocol is being defined
why shouldn't we promote ib_types.h to the main include directory?

Another issue with ib_types.h :
Apparently the WinIB (OpenIB windows) version and the Linux version are
a little different.
Major changes are that the Windows version is a spec 1.1 compliant and
the Linux is supporting version 1.2.
Another difference is the fact some "verbs" or core oriented
definitions found their way into the WinIB version.
I hope we can clean those up and have a merged version in place.

Thanks

Eitan Zahavi
Sean Hefty
2006-07-06 18:31:44 UTC
Permalink
Post by Eitan Zahavi
I have been approached by several people asking for where does one gets
a header
file defining the IBTA “wire” protocol.
I'm not sure that it makes sense to try to have a single header file that
defines all wire data structures. For example, I don't think that any module
outside of the IB CM cares about the CM wire formats.

Getting and setting values in wire format is also non-trivial for many of the
structures definitions. The approach used so far has been to pack/unpack the
structures under another API, like the sa_query.
Post by Eitan Zahavi
So the point is clear: If we are missing such a complete IBTA H file and
people are actually looking for where the wire protocol is being defined
why shouldn’t we promote ib_types.h to the main include directory?
What wire structures are missing from the include files in include/rdma?

- Sean
Hal Rosenstock
2006-07-06 19:03:02 UTC
Permalink
Hi Eitan,
Post by Eitan Zahavi
Hi All,
I have been approached by several people asking for where does one
gets a header
file defining the IBTA “wire” protocol.
My response was: “Ohh we got it all coded in
osm/include/iba/ib_types.h”.
Actually I was thinking the opposite: that this file was way too big and
should be broken up into smaller more manageable pieces.

In this usage, I think all is referring to all MADs. ib_types.h supports
SM and SA MADs and some other MADs but not all MADs.
Post by Eitan Zahavi
“But that thing is so down the tree I do not consider as official” was
the answer.
It is currently used by management and utils. utils/linux-user could be
moved.

What would be the new proposed location for this ?
Post by Eitan Zahavi
So the point is clear: If we are missing such a complete IBTA H file
and people are actually looking for where the wire protocol is being
defined why shouldn’t we promote ib_types.h to the main include
directory?
Apparently the WinIB (OpenIB windows) version and the Linux version
are a little different.
Major changes are that the Windows version is a spec 1.1 compliant and
the Linux is supporting version 1.2.
Why is Windows 1.1 and not 1.2 compliant ?
Post by Eitan Zahavi
Another difference is the fact some “verbs” or core oriented
definitions found their way into the WinIB version.
Another issue is that ib_types.h requires some complib things too.
Post by Eitan Zahavi
I hope we can clean those up and have a merged version in place.
Perhaps but is this a real requirement ?

-- Hal
Post by Eitan Zahavi
Thanks
Eitan Zahavi
______________________________________________________________________
_______________________________________________
openib-windows mailing list
http://openib.org/mailman/listinfo/openib-windows
Fabian Tillier
2006-07-06 19:22:48 UTC
Permalink
Post by Hal Rosenstock
Hi Eitan,
Post by Eitan Zahavi
Hi All,
I have been approached by several people asking for where does one
gets a header
file defining the IBTA "wire" protocol.
My response was: "Ohh we got it all coded in
osm/include/iba/ib_types.h".
Actually I was thinking the opposite: that this file was way too big and
should be broken up into smaller more manageable pieces.
In this usage, I think all is referring to all MADs. ib_types.h supports
SM and SA MADs and some other MADs but not all MADs.
Post by Eitan Zahavi
"But that thing is so down the tree I do not consider as official" was
the answer.
It is currently used by management and utils. utils/linux-user could be
moved.
What would be the new proposed location for this ?
Post by Eitan Zahavi
So the point is clear: If we are missing such a complete IBTA H file
and people are actually looking for where the wire protocol is being
defined why shouldn't we promote ib_types.h to the main include
directory?
Apparently the WinIB (OpenIB windows) version and the Linux version
are a little different.
Major changes are that the Windows version is a spec 1.1 compliant and
the Linux is supporting version 1.2.
Why is Windows 1.1 and not 1.2 compliant ?
I'm not sure what the deficiencies are here - Windows doesn't have SRQ
support, or IB 1.2 FMR support, but other than that the on-wire MAD
stuff should all be fine.

What's missing?
Post by Hal Rosenstock
Post by Eitan Zahavi
Another difference is the fact some "verbs" or core oriented
definitions found their way into the WinIB version.
Another issue is that ib_types.h requires some complib things too.
Post by Eitan Zahavi
I hope we can clean those up and have a merged version in place.
Perhaps but is this a real requirement ?
I think that it would be a mistake to share a file like this between
Windows and Linux, as that requires some sort of abstraction for types
and packing. Since abstractions like this won't fly in LKML, it would
become the burden of the Windows stack to try to get things to be
portable. I don't support such an uneven burden being placed on me.

- Fab
Hal Rosenstock
2006-07-06 19:40:43 UTC
Permalink
Hi Fab,
Post by Fabian Tillier
Post by Hal Rosenstock
Hi Eitan,
Post by Eitan Zahavi
Hi All,
I have been approached by several people asking for where does one
gets a header
file defining the IBTA "wire" protocol.
My response was: "Ohh we got it all coded in
osm/include/iba/ib_types.h".
Actually I was thinking the opposite: that this file was way too big and
should be broken up into smaller more manageable pieces.
In this usage, I think all is referring to all MADs. ib_types.h supports
SM and SA MADs and some other MADs but not all MADs.
Post by Eitan Zahavi
"But that thing is so down the tree I do not consider as official" was
the answer.
It is currently used by management and utils. utils/linux-user could be
moved.
What would be the new proposed location for this ?
Post by Eitan Zahavi
So the point is clear: If we are missing such a complete IBTA H file
and people are actually looking for where the wire protocol is being
defined why shouldn't we promote ib_types.h to the main include
directory?
Apparently the WinIB (OpenIB windows) version and the Linux version
are a little different.
Major changes are that the Windows version is a spec 1.1 compliant and
the Linux is supporting version 1.2.
Why is Windows 1.1 and not 1.2 compliant ?
I'm not sure what the deficiencies are here - Windows doesn't have SRQ
support, or IB 1.2 FMR support,
Linux doesn't have real 1.2 FMR support either.
Post by Fabian Tillier
but other than that the on-wire MAD
stuff should all be fine.
What's missing?
I'm not familiar with the Windows support so can't comment on the
specifics. Eitan ?
Post by Fabian Tillier
Post by Hal Rosenstock
Post by Eitan Zahavi
Another difference is the fact some "verbs" or core oriented
definitions found their way into the WinIB version.
Another issue is that ib_types.h requires some complib things too.
Post by Eitan Zahavi
I hope we can clean those up and have a merged version in place.
Perhaps but is this a real requirement ?
I think that it would be a mistake to share a file like this between
Windows and Linux, as that requires some sort of abstraction for types
and packing. Since abstractions like this won't fly in LKML,
This is not an LKML file. It's a userspace file.
Post by Fabian Tillier
it would
become the burden of the Windows stack to try to get things to be
portable. I don't support such an uneven burden being placed on me.
I'm neither for or against this as I do not understand what this means
(e.g. what are the specific changes). In the past, Windows changes have
been rolled back into the Linux user support for OpenSM. However, I am
also wary of any "baggage" here which limits what can be done. As I have
stated before, IMO OpenIB OpenSM is currently accomodating Windows as
opposed to it being a firm requirement that it be supported. I would
prefer the two not to fork but if OpenSM on Linux is impaired for some
reason a split might be necessary. One area where there has been
difficulty in this in the past has been the direct use of pthreads
versus the threading API in complib.

-- Hal
Post by Fabian Tillier
- Fab
Eitan Zahavi
2006-07-09 14:35:47 UTC
Permalink
Hi Sean, Hal, Fab,

I did the obvious diff...
Attached is the results.

To me most of the differences seem trivial to merge.

Eitan Zahavi
Senior Engineering Director, Software Architect
Mellanox Technologies LTD
Tel:+972-4-9097208
Fax:+972-4-9593245
P.O. Box 586 Yokneam 20692 ISRAEL
-----Original Message-----
Sent: Thursday, July 06, 2006 9:32 PM
To: Eitan Zahavi
Subject: Re: [openib-general] ib_types.h and Win/Linux consolidation
Post by Eitan Zahavi
I have been approached by several people asking for where does one
gets a header file defining the IBTA "wire" protocol.
I'm not sure that it makes sense to try to have a single header file
that defines all wire
data structures. For example, I don't think that any module outside
of the IB CM
cares about the CM wire formats.
Getting and setting values in wire format is also non-trivial for many
of the structures
definitions. The approach used so far has been to pack/unpack the
structures under
another API, like the sa_query.
Post by Eitan Zahavi
So the point is clear: If we are missing such a complete IBTA H file
and people are actually looking for where the wire protocol is being
defined why shouldn't we promote ib_types.h to the main include
directory?
What wire structures are missing from the include files in
include/rdma?
- Sean
Sean Hefty
2006-07-10 05:56:44 UTC
Permalink
Post by Eitan Zahavi
Hi Sean, Hal, Fab,
I did the obvious diff...
Attached is the results.
To me most of the differences seem trivial to merge.
Can you please resend as inline text, or at the very least a plain text
attachment?

- Sean
Eitan Zahavi
2006-07-10 10:54:26 UTC
Permalink
Can you please resend as inline text, or at the very least a plain text attachment?
Enjoy:

2c2,3
< * Copyright (c) 2005 SilverStorm Technologies. All rights reserved.
---
* Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
5,6c6,10
< * This software is available to you under the OpenIB.org BSD license
< * below:
---
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
* General Public License (GPL) Version 2, available from the file
* COPYING in the main directory of this source tree, or the
30c34
< * $Id: ib_types.h 381 2006-06-08 17:10:14Z ftillier $
---
* $Id: ib_types.h 8291 2006-06-29 18:53:06Z halr $
36a41
#include <string.h>
40,54d44
< #ifdef CL_KERNEL
< #define AL_EXPORT
< #define AL_API
< #define AL_INLINE static inline
< #else
< #if defined( EXPORT_AL_SYMBOLS )
< #define AL_EXPORT __declspec(dllexport)
< #else
< #define AL_EXPORT __declspec(dllimport)
< #endif
< #define AL_API __stdcall
< #define AL_INLINE AL_EXPORT inline
< #endif /* CL_KERNEL */
<
<
56,57c46,50
< extern "C"
< {
---
# define BEGIN_C_DECLS extern "C" {
# define END_C_DECLS }
#else /* !__cplusplus */
# define BEGIN_C_DECLS
# define END_C_DECLS
59a53
BEGIN_C_DECLS
222c216
< #define IB_DEFAULT_SUBNET_PREFIX (CL_HTON64(CL_CONST64(0xFE80000000000000)))
---
#define IB_DEFAULT_SUBNET_PREFIX (CL_HTON64(0xFE80000000000000ULL))
365c359
< #define IB_PKEY_ENTRIES_MAX (IB_PKEY_MAX_BLOCKS * IB_PKEY_BLOCK_SIZE)
---
#define IB_PKEY_ENTRIES_MAX (IB_PKEY_MAX_BLOCKS * IB_NUM_PKEY_ELEMENTS_IN_BLOCK)
377c371
< #define IB_PKEY_BASE_MASK (CL_NTOH16(0x7FFF))
---
#define IB_PKEY_BASE_MASK (CL_HTON16(0x7FFF))
391a386,397
/****d* IBA Base: Constants/IB_DEFAULT_PARTIAL_PKEY
* NAME
* IB_DEFAULT_PARTIAL_PKEY
*
* DESCRIPTION
* 0x7FFF in network order
*
* SOURCE
*/
#define IB_DEFAULT_PARTIAL_PKEY (CL_HTON16(0x7FFF))
/**********/
511a518,541
/****d* IBA Base: Constants/IB_MCLASS_DEV_ADM
* NAME
* IB_MCLASS_DEV_ADM
*
* DESCRIPTION
* Subnet Management Class, Device Administration
*
* SOURCE
*/
#define IB_MCLASS_DEV_ADM 0x10
/**********/
/****d* IBA Base: Constants/IB_MCLASS_BIS
* NAME
* IB_MCLASS_BIS
*
* DESCRIPTION
* Subnet Management Class, BIS
*
* SOURCE
*/
#define IB_MCLASS_BIS 0x12
/**********/
541c571
< * Indicitates if the Class Code if a vendor specific class from
---
* Indicates if the Class Code if a vendor specific class from
573c603
< * Indicitates if the Class Code if a vendor specific class from
---
* Indicates if the Class Code if a vendor specific class from
606c636
< * Indicitates if the Class Code if a vendor specific class
---
* Indicates if the Class Code if a vendor specific class
631a662,693
/****f* IBA Base: Types/ib_class_is_rmpp
* NAME
* ib_class_is_rmpp
*
* DESCRIPTION
* Indicates if the Class Code supports RMPP
*
* SYNOPSIS
*/
static inline boolean_t
ib_class_is_rmpp(
IN const uint8_t class_code )
{
return( (class_code == IB_MCLASS_SUBN_ADM) ||
(class_code == IB_MCLASS_DEV_MGMT) ||
(class_code == IB_MCLASS_DEV_ADM) ||
(class_code == IB_MCLASS_BIS) ||
ib_class_is_vendor_specific_high( class_code ) );
}
/*
* PARAMETERS
* class_code
* [in] The Management Datagram Class Code
*
* RETURN VALUE
* TRUE if the class supports RMPP
* FALSE otherwise.
*
* NOTES
*
*********/
902d963
< /*********/
1100c1161
< * SmInfoRecord attribute (15.2.5)
---
* SMInfoRecord attribute (15.2.5)
1106a1168,1179
/****d* IBA Base: Constants/IB_MAD_ATTR_GUIDINFO_RECORD
* NAME
* IB_MAD_ATTR_GUIDINFO_RECORD
*
* DESCRIPTION
* GuidInfoRecord attribute (15.2.5)
*
* SOURCE
*/
#define IB_MAD_ATTR_GUIDINFO_RECORD (CL_NTOH16(0x0030))
/**********/
1117a1191
1128a1203
1139a1215
1145c1221
< * LinearForwardingRecord attribute (15.2.5.6)
---
* LinearForwardingTableRecord attribute (15.2.5.6)
1150a1227
1156c1233
< * P-KEY table attribute (15.2.5)
---
* PKEY Table Record attribute (15.2.5)
1161a1239
1172a1251
1178c1257
< * VL Arbitration Table attribute (15.2.5)
---
* VL Arbitration Table Record attribute (15.2.5)
1183a1263
1189c1269
< * VSLtoL Map Table attribute (15.2.5)
---
* SLtoVL Mapping Table Record attribute (15.2.5)
1194a1275
1205a1287
1216a1299
1222c1305
< * MultiPath attribute (15.2.5)
---
* MultiPathRecord attribute (15.2.5)
1227a1311
1233c1317
< * Service Association attribute (15.2.5)
---
* Service Association Record attribute (15.2.5)
1238a1323
1250c1335,1336
< /****d* IBA Base: Constants/IB_MAD_ATTR_IOC_PROFILE
---
/****d* IBA Base: Constants/IB_MAD_ATTR_IO_CONTROLLER_PROFILE
1252c1338
< * IB_MAD_ATTR_IOC_PROFILE
---
* IB_MAD_ATTR_IO_CONTROLLER_PROFILE
1259c1345
< #define IB_MAD_ATTR_IOC_PROFILE (CL_NTOH16(0x0011))
---
#define IB_MAD_ATTR_IO_CONTROLLER_PROFILE (CL_NTOH16(0x0011))
1260a1347
1271a1359
1282a1371
1293a1383
1304a1395
1315a1407
1327c1419,1420
< /*** IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD
---
/****d* IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD
1332c1425
< * Service Association attribute (15.2.5)
---
* Service Association Record attribute (15.2.5)
1337a1431
1348a1443
1359a1455
1382a1479
1393a1491
1404a1503
1419c1518
< /****d* IBA Base: Constants/IB_MTU_TYPE
---
/****d* IBA Base: Constants/IB_MTU_LEN_TYPE
1421c1520
< * IB_MTU_TYPE
---
* IB_MTU_LEN_TYPE
1434,1438c1533,1541
< #define IB_MTU_256 1
< #define IB_MTU_512 2
< #define IB_MTU_1024 3
< #define IB_MTU_2048 4
< #define IB_MTU_4096 5
---
#define IB_MTU_LEN_256 1
#define IB_MTU_LEN_512 2
#define IB_MTU_LEN_1024 3
#define IB_MTU_LEN_2048 4
#define IB_MTU_LEN_4096 5
#define IB_MIN_MTU IB_MTU_LEN_256
#define IB_MAX_MTU IB_MTU_LEN_4096
1509c1612
< * Mask for the selector field for path record MTU, rate
---
* Mask for the selector field for path record MTU, rate,
1514a1618,1628
/****d* IBA Base: Constants/IB_MULTIPATH_REC_SELECTOR_MASK
* NAME
* IB_MULTIPATH_REC_SELECTOR_MASK
*
* DESCRIPTION
* Mask for the selector field for multipath record MTU, rate,
* and packet lifetime.
*
* SOURCE
*/
#define IB_MULTIPATH_REC_SELECTOR_MASK 0xC0
1521c1635
< * Mask for the base value field for path record MTU, rate
---
* Mask for the base value field for path record MTU, rate,
1527a1642,1653
/****d* IBA Base: Constants/IB_MULTIPATH_REC_BASE_MASK
* NAME
* IB_MULTIPATH_REC_BASE_MASK
*
* DESCRIPTION
* Mask for the base value field for multipath record MTU, rate,
* and packet lifetime.
*
* SOURCE
*/
#define IB_MULTIPATH_REC_BASE_MASK 0x3F
/**********/
1534c1660
< * Definitions are from the InfiniBand Architecture Specification v1.1
---
* Definitions are from the InfiniBand Architecture Specification v1.2
1616c1742
< AL_INLINE const char* AL_API
---
static inline const char*
1618c1744
< IN uint8_t node_type )
---
IN uint32_t node_type )
1620c1746
< if( node_type >= IB_NODE_TYPE_ROUTER )
---
if( node_type >= IB_NOTICE_NODE_TYPE_ROUTER )
1658c1784
< AL_INLINE const char* AL_API
---
static inline const char*
1668c1794
< * port_state
---
* node_type
1689c1815
< AL_INLINE const uint8_t AL_API
---
static inline uint8_t
1744c1870
< AL_INLINE ib_net16_t AL_API
---
static inline ib_net16_t
1767c1893
< * Indicitates if the port is a full member of the parition.
---
* Indicates if the port is a full member of the parition.
1771c1897
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
1791a1918,1950
/****f* IBA Base: Types/ib_pkey_is_invalid
* NAME
* ib_pkey_is_invalid
*
* DESCRIPTION
* Returns TRUE if the given P_Key is an invalid P_Key
* C10-116: the CI shall regard a P_Key as invalid if its low-order
* 15 bits are all zero...
*
* SYNOPSIS
*/
static inline boolean_t
ib_pkey_is_invalid(
IN const ib_net16_t pkey )
{
if (ib_pkey_get_base(pkey) == 0x0000)
return TRUE;
return FALSE;
}
/*
* PARAMETERS
* pkey
* [in] P_Key value
*
* RETURN VALUE
* Returns the base P_Key value with the membership bit stripped.
*
* NOTES
*
* SEE ALSO
*********/
1835c1994
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
1851c2010
< AL_INLINE void AL_API
---
static inline void
1884c2043
< AL_INLINE ib_net64_t AL_API
---
static inline ib_net64_t
1948,1949c2107
< CL_HTON64( CL_CONST64(0xFFFFFFFFFFFF0000) ) ) ==
< CL_HTON64( CL_CONST64(0xFEC0000000000000) ) );
---
CL_HTON64( 0xFFFFFFFFFFFF0000ULL ) ) == CL_HTON64( 0xFEC0000000000000ULL ) );
1974c2132
< AL_INLINE ib_net64_t AL_API
---
static inline ib_net64_t
1994,2021d2151
< /****s* IBA Base: Types/ib_field32_t
< * NAME
< * ib_field32_t
< *
< * DESCRIPTION
< * Represents a 32-bit field, and allows access as a 32-bit network byte
< * ordered or a 4-byte array.
< *
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef union _ib_field32_t
< {
< net32_t val;
< uint8_t bytes[4];
<
< } PACK_SUFFIX ib_field32_t;
< #include <complib/cl_packoff.h>
< /*
< * FIELDS
< * val
< * Full field value.
< *
< * bytes
< * Byte array representing the field. The byte array provides identical
< * access independently from CPU byte-ordering.
< *********/
<
2033c2163
< typedef __declspec(align(8)) struct _ib_path_rec
---
typedef struct _ib_path_rec
2035c2165
< uint64_t resv0;
---
uint8_t resv0[8];
2040c2170
< ib_field32_t hop_flow_raw;
---
ib_net32_t hop_flow_raw;
2049,2050c2179
< uint16_t resv1;
< uint32_t resv2;
---
uint8_t resv2[6];
2078c2207,2208
< * In queries, maximum number of paths to return.
---
* Reversible path - 1 bit to say if path is reversible.
* num_path [6:0] In queries, maximum number of paths to return.
2103,2105d2232
< * resv1
< * Reserved bytes.
< *
2111,2132c2238,2258
< /* Port Record Component Masks */
< #define IB_PR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_PR_COMPMASK_DGID (CL_HTON64(1<<2))
< #define IB_PR_COMPMASK_SGID (CL_HTON64(1<<3))
< #define IB_PR_COMPMASK_DLID (CL_HTON64(1<<4))
< #define IB_PR_COMPMASK_SLID (CL_HTON64(1<<5))
< #define IB_PR_COMPMASK_RAWTRAFIC (CL_HTON64(1<<6))
< #define IB_PR_COMPMASK_RESV0 (CL_HTON64(1<<7))
< #define IB_PR_COMPMASK_FLOWLABEL (CL_HTON64(1<<8))
< #define IB_PR_COMPMASK_HOPLIMIT (CL_HTON64(1<<9))
< #define IB_PR_COMPMASK_TCLASS (CL_HTON64(1<<10))
< #define IB_PR_COMPMASK_REVERSIBLE (CL_HTON64(1<<11))
< #define IB_PR_COMPMASK_NUM_PATH (CL_HTON64(1<<12))
< #define IB_PR_COMPMASK_PKEY (CL_HTON64(1<<13))
< #define IB_PR_COMPMASK_RESV1 (CL_HTON64(1<<14))
< #define IB_PR_COMPMASK_SL (CL_HTON64(1<<15))
< #define IB_PR_COMPMASK_MTU_SEL (CL_HTON64(1<<16))
< #define IB_PR_COMPMASK_MTU (CL_HTON64(1<<17))
< #define IB_PR_COMPMASK_RATE_SEL (CL_HTON64(1<<18))
< #define IB_PR_COMPMASK_RATE (CL_HTON64(1<<19))
< #define IB_PR_COMPMASK_PKTLIFETIME_SEL (CL_HTON64(1<<20))
< #define IB_PR_COMPMASK_PFTLIFETIME (CL_HTON64(1<<21))
---
/* Path Record Component Masks */
#define IB_PR_COMPMASK_DGID (CL_HTON64(((uint64_t)1)<<2))
#define IB_PR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<3))
#define IB_PR_COMPMASK_DLID (CL_HTON64(((uint64_t)1)<<4))
#define IB_PR_COMPMASK_SLID (CL_HTON64(((uint64_t)1)<<5))
#define IB_PR_COMPMASK_RAWTRAFFIC (CL_HTON64(((uint64_t)1)<<6))
#define IB_PR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<7))
#define IB_PR_COMPMASK_FLOWLABEL (CL_HTON64(((uint64_t)1)<<8))
#define IB_PR_COMPMASK_HOPLIMIT (CL_HTON64(((uint64_t)1)<<9))
#define IB_PR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<10))
#define IB_PR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<11))
#define IB_PR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<12))
#define IB_PR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<13))
#define IB_PR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<14))
#define IB_PR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<15))
#define IB_PR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<16))
#define IB_PR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<17))
#define IB_PR_COMPMASK_RATESELEC (CL_HTON64(((uint64_t)1)<<18))
#define IB_PR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<19))
#define IB_PR_COMPMASK_PKTLIFETIMESELEC (CL_HTON64(((uint64_t)1)<<20))
#define IB_PR_COMPMASK_PKTLIFETIME (CL_HTON64(((uint64_t)1)<<21))
2135,2138c2261,2264
< #define IB_LR_COMPMASK_FROM_LID (CL_HTON64(1<<0))
< #define IB_LR_COMPMASK_FROM_PORT (CL_HTON64(1<<1))
< #define IB_LR_COMPMASK_TO_PORT (CL_HTON64(1<<2))
< #define IB_LR_COMPMASK_TO_LID (CL_HTON64(1<<3))
---
#define IB_LR_COMPMASK_FROM_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_LR_COMPMASK_FROM_PORT (CL_HTON64(((uint64_t)1)<<1))
#define IB_LR_COMPMASK_TO_PORT (CL_HTON64(((uint64_t)1)<<2))
#define IB_LR_COMPMASK_TO_LID (CL_HTON64(((uint64_t)1)<<3))
2141,2143c2267,2270
< #define IB_VLA_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(1<<1))
< #define IB_VLA_COMPMASK_BLOCK (CL_HTON64(1<<2))
---
#define IB_VLA_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<1))
#define IB_VLA_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<2))
2145,2166c2272,2301
< #define IB_SLVL_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_SLVL_COMPMASK_IN_PORT (CL_HTON64(1<<1))
< #define IB_SLVL_COMPMASK_OUT_PORT (CL_HTON64(1<<2))
< /* LFT Record MASKS */
< #define IB_LFTR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(1<<1))
< /* ModeInfo Record MASKS */
< #define IB_NR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(1<<1))
< #define IB_NR_COMPMASK_BASEVERSION (CL_HTON64(1<<2))
< #define IB_NR_COMPMASK_CLASSVERSION (CL_HTON64(1<<3))
< #define IB_NR_COMPMASK_NODETYPE (CL_HTON64(1<<4))
< #define IB_NR_COMPMASK_NUMPORTS (CL_HTON64(1<<5))
< #define IB_NR_COMPMASK_SYSIMAGEGUID (CL_HTON64(1<<6))
< #define IB_NR_COMPMASK_NODEGUID (CL_HTON64(1<<7))
< #define IB_NR_COMPMASK_PORTGUID (CL_HTON64(1<<8))
< #define IB_NR_COMPMASK_PARTCAP (CL_HTON64(1<<9))
< #define IB_NR_COMPMASK_DEVID (CL_HTON64(1<<10))
< #define IB_NR_COMPMASK_REV (CL_HTON64(1<<11))
< #define IB_NR_COMPMASK_PORTNUM (CL_HTON64(1<<12))
< #define IB_NR_COMPMASK_VENDID (CL_HTON64(1<<13))
< #define IB_NR_COMPMASK_NODEDESC (CL_HTON64(1<<14))
---
#define IB_SLVL_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_SLVL_COMPMASK_IN_PORT (CL_HTON64(((uint64_t)1)<<1))
#define IB_SLVL_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<2))
/* P_Key Table Record Masks */
#define IB_PKEY_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_PKEY_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1))
#define IB_PKEY_COMPMASK_PORT (CL_HTON64(((uint64_t)1)<<2))
/* LFT Record Masks */
#define IB_LFTR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1))
/* NodeInfo Record Masks */
#define IB_NR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(((uint64_t)1)<<1))
#define IB_NR_COMPMASK_BASEVERSION (CL_HTON64(((uint64_t)1)<<2))
#define IB_NR_COMPMASK_CLASSVERSION (CL_HTON64(((uint64_t)1)<<3))
#define IB_NR_COMPMASK_NODETYPE (CL_HTON64(((uint64_t)1)<<4))
#define IB_NR_COMPMASK_NUMPORTS (CL_HTON64(((uint64_t)1)<<5))
#define IB_NR_COMPMASK_SYSIMAGEGUID (CL_HTON64(((uint64_t)1)<<6))
#define IB_NR_COMPMASK_NODEGUID (CL_HTON64(((uint64_t)1)<<7))
#define IB_NR_COMPMASK_PORTGUID (CL_HTON64(((uint64_t)1)<<8))
#define IB_NR_COMPMASK_PARTCAP (CL_HTON64(((uint64_t)1)<<9))
#define IB_NR_COMPMASK_DEVID (CL_HTON64(((uint64_t)1)<<10))
#define IB_NR_COMPMASK_REV (CL_HTON64(((uint64_t)1)<<11))
#define IB_NR_COMPMASK_PORTNUM (CL_HTON64(((uint64_t)1)<<12))
#define IB_NR_COMPMASK_VENDID (CL_HTON64(((uint64_t)1)<<13))
#define IB_NR_COMPMASK_NODEDESC (CL_HTON64(((uint64_t)1)<<14))
2168,2199c2303,2334
< #define IB_SR_COMPMASK_SID (CL_HTON64(1<<0))
< #define IB_SR_COMPMASK_SGID (CL_HTON64(1<<1))
< #define IB_SR_COMPMASK_SPKEY (CL_HTON64(1<<2))
< #define IB_SR_COMPMASK_RES1 (CL_HTON64(1<<3))
< #define IB_SR_COMPMASK_SLEASE (CL_HTON64(1<<4))
< #define IB_SR_COMPMASK_SKEY (CL_HTON64(1<<5))
< #define IB_SR_COMPMASK_SNAME (CL_HTON64(1<<6))
< #define IB_SR_COMPMASK_SDATA8_0 (CL_HTON64(1<<7))
< #define IB_SR_COMPMASK_SDATA8_1 (CL_HTON64(1<<8))
< #define IB_SR_COMPMASK_SDATA8_2 (CL_HTON64(1<<9))
< #define IB_SR_COMPMASK_SDATA8_3 (CL_HTON64(1<<10))
< #define IB_SR_COMPMASK_SDATA8_4 (CL_HTON64(1<<11))
< #define IB_SR_COMPMASK_SDATA8_5 (CL_HTON64(1<<12))
< #define IB_SR_COMPMASK_SDATA8_6 (CL_HTON64(1<<13))
< #define IB_SR_COMPMASK_SDATA8_7 (CL_HTON64(1<<14))
< #define IB_SR_COMPMASK_SDATA8_8 (CL_HTON64(1<<15))
< #define IB_SR_COMPMASK_SDATA8_9 (CL_HTON64(1<<16))
< #define IB_SR_COMPMASK_SDATA8_10 (CL_HTON64(1<<17))
< #define IB_SR_COMPMASK_SDATA8_11 (CL_HTON64(1<<18))
< #define IB_SR_COMPMASK_SDATA8_12 (CL_HTON64(1<<19))
< #define IB_SR_COMPMASK_SDATA8_13 (CL_HTON64(1<<20))
< #define IB_SR_COMPMASK_SDATA8_14 (CL_HTON64(1<<21))
< #define IB_SR_COMPMASK_SDATA8_15 (CL_HTON64(1<<22))
< #define IB_SR_COMPMASK_SDATA16_0 (CL_HTON64(1<<23))
< #define IB_SR_COMPMASK_SDATA16_1 (CL_HTON64(1<<24))
< #define IB_SR_COMPMASK_SDATA16_2 (CL_HTON64(1<<25))
< #define IB_SR_COMPMASK_SDATA16_3 (CL_HTON64(1<<26))
< #define IB_SR_COMPMASK_SDATA16_4 (CL_HTON64(1<<27))
< #define IB_SR_COMPMASK_SDATA16_5 (CL_HTON64(1<<28))
< #define IB_SR_COMPMASK_SDATA16_6 (CL_HTON64(1<<29))
< #define IB_SR_COMPMASK_SDATA16_7 (CL_HTON64(1<<30))
< #define IB_SR_COMPMASK_SDATA32_0 (CL_HTON64(1<<31))
---
#define IB_SR_COMPMASK_SID (CL_HTON64(((uint64_t)1)<<0))
#define IB_SR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<1))
#define IB_SR_COMPMASK_SPKEY (CL_HTON64(((uint64_t)1)<<2))
#define IB_SR_COMPMASK_RES1 (CL_HTON64(((uint64_t)1)<<3))
#define IB_SR_COMPMASK_SLEASE (CL_HTON64(((uint64_t)1)<<4))
#define IB_SR_COMPMASK_SKEY (CL_HTON64(((uint64_t)1)<<5))
#define IB_SR_COMPMASK_SNAME (CL_HTON64(((uint64_t)1)<<6))
#define IB_SR_COMPMASK_SDATA8_0 (CL_HTON64(((uint64_t)1)<<7))
#define IB_SR_COMPMASK_SDATA8_1 (CL_HTON64(((uint64_t)1)<<8))
#define IB_SR_COMPMASK_SDATA8_2 (CL_HTON64(((uint64_t)1)<<9))
#define IB_SR_COMPMASK_SDATA8_3 (CL_HTON64(((uint64_t)1)<<10))
#define IB_SR_COMPMASK_SDATA8_4 (CL_HTON64(((uint64_t)1)<<11))
#define IB_SR_COMPMASK_SDATA8_5 (CL_HTON64(((uint64_t)1)<<12))
#define IB_SR_COMPMASK_SDATA8_6 (CL_HTON64(((uint64_t)1)<<13))
#define IB_SR_COMPMASK_SDATA8_7 (CL_HTON64(((uint64_t)1)<<14))
#define IB_SR_COMPMASK_SDATA8_8 (CL_HTON64(((uint64_t)1)<<15))
#define IB_SR_COMPMASK_SDATA8_9 (CL_HTON64(((uint64_t)1)<<16))
#define IB_SR_COMPMASK_SDATA8_10 (CL_HTON64(((uint64_t)1)<<17))
#define IB_SR_COMPMASK_SDATA8_11 (CL_HTON64(((uint64_t)1)<<18))
#define IB_SR_COMPMASK_SDATA8_12 (CL_HTON64(((uint64_t)1)<<19))
#define IB_SR_COMPMASK_SDATA8_13 (CL_HTON64(((uint64_t)1)<<20))
#define IB_SR_COMPMASK_SDATA8_14 (CL_HTON64(((uint64_t)1)<<21))
#define IB_SR_COMPMASK_SDATA8_15 (CL_HTON64(((uint64_t)1)<<22))
#define IB_SR_COMPMASK_SDATA16_0 (CL_HTON64(((uint64_t)1)<<23))
#define IB_SR_COMPMASK_SDATA16_1 (CL_HTON64(((uint64_t)1)<<24))
#define IB_SR_COMPMASK_SDATA16_2 (CL_HTON64(((uint64_t)1)<<25))
#define IB_SR_COMPMASK_SDATA16_3 (CL_HTON64(((uint64_t)1)<<26))
#define IB_SR_COMPMASK_SDATA16_4 (CL_HTON64(((uint64_t)1)<<27))
#define IB_SR_COMPMASK_SDATA16_5 (CL_HTON64(((uint64_t)1)<<28))
#define IB_SR_COMPMASK_SDATA16_6 (CL_HTON64(((uint64_t)1)<<29))
#define IB_SR_COMPMASK_SDATA16_7 (CL_HTON64(((uint64_t)1)<<30))
#define IB_SR_COMPMASK_SDATA32_0 (CL_HTON64(((uint64_t)1)<<31))
2204a2340
2206,2253c2342,2391
< #define IB_PIR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_PIR_COMPMASK_PORTNUM (CL_HTON64(1<<1))
< #define IB_PIR_COMPMASK_RESV1 (CL_HTON64(1<<2))
< #define IB_PIR_COMPMASK_MKEY (CL_HTON64(1<<3))
< #define IB_PIR_COMPMASK_GIDPRE (CL_HTON64(1<<4))
< #define IB_PIR_COMPMASK_BASELID (CL_HTON64(1<<5))
< #define IB_PIR_COMPMASK_SMLID (CL_HTON64(1<<6))
< #define IB_PIR_COMPMASK_CAPMASK (CL_HTON64(1<<7))
< #define IB_PIR_COMPMASK_DIAGCODE (CL_HTON64(1<<8))
< #define IB_PIR_COMPMASK_MKEYLEASEPRD (CL_HTON64(1<<9))
< #define IB_PIR_COMPMASK_LOCALPORTNUM (CL_HTON64(1<<10))
< #define IB_PIR_COMPMASK_LNKWIDTHSUPPORT (CL_HTON64(1<<11))
< #define IB_PIR_COMPMASK_LNKWIDTHACTIVE (CL_HTON64(1<<12))
< #define IB_PIR_COMPMASK_LINKWIDTHENABLED (CL_HTON64(1<<13))
< #define IB_PIR_COMPMASK_LNKSPEEDSUPPORT (CL_HTON64(1<<14))
< #define IB_PIR_COMPMASK_PORTSTATE (CL_HTON64(1<<15))
< #define IB_PIR_COMPMASK_PORTPHYSTATE (CL_HTON64(1<<16))
< #define IB_PIR_COMPMASK_LINKDWNDFLTSTATE (CL_HTON64(1<<17))
< #define IB_PIR_COMPMASK_MKEYPROTBITS (CL_HTON64(1<<18))
< #define IB_PIR_COMPMASK_LMC (CL_HTON64(1<<19))
< #define IB_PIR_COMPMASK_LINKSPEEDACTIVE (CL_HTON64(1<<20))
< #define IB_PIR_COMPMASK_LINKSPEEDENABLE (CL_HTON64(1<<21))
< #define IB_PIR_COMPMASK_NEIGHBORMTU (CL_HTON64(1<<22))
< #define IB_PIR_COMPMASK_MASTERSMSL (CL_HTON64(1<<23))
< #define IB_PIR_COMPMASK_VLCAP (CL_HTON64(1<<24))
< #define IB_PIR_COMPMASK_INITTYPE (CL_HTON64(1<<25))
< #define IB_PIR_COMPMASK_VLHIGHLIMIT (CL_HTON64(1<<26))
< #define IB_PIR_COMPMASK_VLARBHIGHCAP (CL_HTON64(1<<27))
< #define IB_PIR_COMPMASK_VLARBLOWCAP (CL_HTON64(1<<28))
< #define IB_PIR_COMPMASK_INITTYPEREPLY (CL_HTON64(1<<29))
< #define IB_PIR_COMPMASK_MTUCAP (CL_HTON64(1<<30))
< #define IB_PIR_COMPMASK_VLSTALLCNT (CL_HTON64(1<<31))
< #define IB_PIR_COMPMASK_HOQLIFE (CL_HTON64(((uint64_t)1)<<32))
< #define IB_PIR_COMPMASK_OPVLS (CL_HTON64(((uint64_t)1)<<33))
< #define IB_PIR_COMPMASK_PARENFIN (CL_HTON64(((uint64_t)1)<<34))
< #define IB_PIR_COMPMASK_PARENFOUT (CL_HTON64(((uint64_t)1)<<35))
< #define IB_PIR_COMPMASK_FILTERRAWIN (CL_HTON64(((uint64_t)1)<<36))
< #define IB_PIR_COMPMASK_FILTERRAWOUT (CL_HTON64(((uint64_t)1)<<37))
< #define IB_PIR_COMPMASK_MKEYVIO (CL_HTON64(((uint64_t)1)<<38))
< #define IB_PIR_COMPMASK_PKEYVIO (CL_HTON64(((uint64_t)1)<<39))
< #define IB_PIR_COMPMASK_QKEYVIO (CL_HTON64(((uint64_t)1)<<40))
< #define IB_PIR_COMPMASK_GUIDCAP (CL_HTON64(((uint64_t)1)<<41))
< #define IB_PIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<42))
< #define IB_PIR_COMPMASK_SUBNTO (CL_HTON64(((uint64_t)1)<<43))
< #define IB_PIR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<44))
< #define IB_PIR_COMPMASK_RESPTIME (CL_HTON64(((uint64_t)1)<<45))
< #define IB_PIR_COMPMASK_LOCALPHYERR (CL_HTON64(((uint64_t)1)<<46))
< #define IB_PIR_COMPMASK_OVERRUNERR (CL_HTON64(((uint64_t)1)<<47))
---
#define IB_PIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_PIR_COMPMASK_PORTNUM (CL_HTON64(((uint64_t)1)<<1))
#define IB_PIR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<2))
#define IB_PIR_COMPMASK_MKEY (CL_HTON64(((uint64_t)1)<<3))
#define IB_PIR_COMPMASK_GIDPRE (CL_HTON64(((uint64_t)1)<<4))
#define IB_PIR_COMPMASK_BASELID (CL_HTON64(((uint64_t)1)<<5))
#define IB_PIR_COMPMASK_SMLID (CL_HTON64(((uint64_t)1)<<6))
#define IB_PIR_COMPMASK_CAPMASK (CL_HTON64(((uint64_t)1)<<7))
#define IB_PIR_COMPMASK_DIAGCODE (CL_HTON64(((uint64_t)1)<<8))
#define IB_PIR_COMPMASK_MKEYLEASEPRD (CL_HTON64(((uint64_t)1)<<9))
#define IB_PIR_COMPMASK_LOCALPORTNUM (CL_HTON64(((uint64_t)1)<<10))
#define IB_PIR_COMPMASK_LINKWIDTHENABLED (CL_HTON64(((uint64_t)1)<<11))
#define IB_PIR_COMPMASK_LNKWIDTHSUPPORT (CL_HTON64(((uint64_t)1)<<12))
#define IB_PIR_COMPMASK_LNKWIDTHACTIVE (CL_HTON64(((uint64_t)1)<<13))
#define IB_PIR_COMPMASK_LNKSPEEDSUPPORT (CL_HTON64(((uint64_t)1)<<14))
#define IB_PIR_COMPMASK_PORTSTATE (CL_HTON64(((uint64_t)1)<<15))
#define IB_PIR_COMPMASK_PORTPHYSTATE (CL_HTON64(((uint64_t)1)<<16))
#define IB_PIR_COMPMASK_LINKDWNDFLTSTATE (CL_HTON64(((uint64_t)1)<<17))
#define IB_PIR_COMPMASK_MKEYPROTBITS (CL_HTON64(((uint64_t)1)<<18))
#define IB_PIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<19))
#define IB_PIR_COMPMASK_LMC (CL_HTON64(((uint64_t)1)<<20))
#define IB_PIR_COMPMASK_LINKSPEEDACTIVE (CL_HTON64(((uint64_t)1)<<21))
#define IB_PIR_COMPMASK_LINKSPEEDENABLE (CL_HTON64(((uint64_t)1)<<22))
#define IB_PIR_COMPMASK_NEIGHBORMTU (CL_HTON64(((uint64_t)1)<<23))
#define IB_PIR_COMPMASK_MASTERSMSL (CL_HTON64(((uint64_t)1)<<24))
#define IB_PIR_COMPMASK_VLCAP (CL_HTON64(((uint64_t)1)<<25))
#define IB_PIR_COMPMASK_INITTYPE (CL_HTON64(((uint64_t)1)<<26))
#define IB_PIR_COMPMASK_VLHIGHLIMIT (CL_HTON64(((uint64_t)1)<<27))
#define IB_PIR_COMPMASK_VLARBHIGHCAP (CL_HTON64(((uint64_t)1)<<28))
#define IB_PIR_COMPMASK_VLARBLOWCAP (CL_HTON64(((uint64_t)1)<<29))
#define IB_PIR_COMPMASK_INITTYPEREPLY (CL_HTON64(((uint64_t)1)<<30))
#define IB_PIR_COMPMASK_MTUCAP (CL_HTON64(((uint64_t)1)<<31))
#define IB_PIR_COMPMASK_VLSTALLCNT (CL_HTON64(((uint64_t)1)<<32))
#define IB_PIR_COMPMASK_HOQLIFE (CL_HTON64(((uint64_t)1)<<33))
#define IB_PIR_COMPMASK_OPVLS (CL_HTON64(((uint64_t)1)<<34))
#define IB_PIR_COMPMASK_PARENFIN (CL_HTON64(((uint64_t)1)<<35))
#define IB_PIR_COMPMASK_PARENFOUT (CL_HTON64(((uint64_t)1)<<36))
#define IB_PIR_COMPMASK_FILTERRAWIN (CL_HTON64(((uint64_t)1)<<37))
#define IB_PIR_COMPMASK_FILTERRAWOUT (CL_HTON64(((uint64_t)1)<<38))
#define IB_PIR_COMPMASK_MKEYVIO (CL_HTON64(((uint64_t)1)<<39))
#define IB_PIR_COMPMASK_PKEYVIO (CL_HTON64(((uint64_t)1)<<40))
#define IB_PIR_COMPMASK_QKEYVIO (CL_HTON64(((uint64_t)1)<<41))
#define IB_PIR_COMPMASK_GUIDCAP (CL_HTON64(((uint64_t)1)<<42))
#define IB_PIR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<43))
#define IB_PIR_COMPMASK_SUBNTO (CL_HTON64(((uint64_t)1)<<44))
#define IB_PIR_COMPMASK_RESV4 (CL_HTON64(((uint64_t)1)<<45))
#define IB_PIR_COMPMASK_RESPTIME (CL_HTON64(((uint64_t)1)<<46))
#define IB_PIR_COMPMASK_LOCALPHYERR (CL_HTON64(((uint64_t)1)<<47))
#define IB_PIR_COMPMASK_OVERRUNERR (CL_HTON64(((uint64_t)1)<<48))
2255,2273c2393,2449
< #define IB_MCR_COMPMASK_GID (CL_HTON64(1<<0))
< #define IB_MCR_COMPMASK_MGID (CL_HTON64(1<<0))
< #define IB_MCR_COMPMASK_PORT_GID (CL_HTON64(1<<1))
< #define IB_MCR_COMPMASK_QKEY (CL_HTON64(1<<2))
< #define IB_MCR_COMPMASK_MLID (CL_HTON64(1<<3))
< #define IB_MCR_COMPMASK_MTU_SEL (CL_HTON64(1<<4))
< #define IB_MCR_COMPMASK_MTU (CL_HTON64(1<<5))
< #define IB_MCR_COMPMASK_TCLASS (CL_HTON64(1<<6))
< #define IB_MCR_COMPMASK_PKEY (CL_HTON64(1<<7))
< #define IB_MCR_COMPMASK_RATE_SEL (CL_HTON64(1<<8))
< #define IB_MCR_COMPMASK_RATE (CL_HTON64(1<<9))
< #define IB_MCR_COMPMASK_LIFE_SEL (CL_HTON64(1<<10))
< #define IB_MCR_COMPMASK_LIFE (CL_HTON64(1<<11))
< #define IB_MCR_COMPMASK_SL (CL_HTON64(1<<12))
< #define IB_MCR_COMPMASK_FLOW (CL_HTON64(1<<13))
< #define IB_MCR_COMPMASK_HOP (CL_HTON64(1<<14))
< #define IB_MCR_COMPMASK_SCOPE (CL_HTON64(1<<15))
< #define IB_MCR_COMPMASK_JOIN_STATE (CL_HTON64(1<<16))
< #define IB_MCR_COMPMASK_PROXY (CL_HTON64(1<<17))
---
#define IB_MCR_COMPMASK_GID (CL_HTON64(((uint64_t)1)<<0))
#define IB_MCR_COMPMASK_MGID (CL_HTON64(((uint64_t)1)<<0))
#define IB_MCR_COMPMASK_PORT_GID (CL_HTON64(((uint64_t)1)<<1))
#define IB_MCR_COMPMASK_QKEY (CL_HTON64(((uint64_t)1)<<2))
#define IB_MCR_COMPMASK_MLID (CL_HTON64(((uint64_t)1)<<3))
#define IB_MCR_COMPMASK_MTU_SEL (CL_HTON64(((uint64_t)1)<<4))
#define IB_MCR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<5))
#define IB_MCR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<6))
#define IB_MCR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7))
#define IB_MCR_COMPMASK_RATE_SEL (CL_HTON64(((uint64_t)1)<<8))
#define IB_MCR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<9))
#define IB_MCR_COMPMASK_LIFE_SEL (CL_HTON64(((uint64_t)1)<<10))
#define IB_MCR_COMPMASK_LIFE (CL_HTON64(((uint64_t)1)<<11))
#define IB_MCR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<12))
#define IB_MCR_COMPMASK_FLOW (CL_HTON64(((uint64_t)1)<<13))
#define IB_MCR_COMPMASK_HOP (CL_HTON64(((uint64_t)1)<<14))
#define IB_MCR_COMPMASK_SCOPE (CL_HTON64(((uint64_t)1)<<15))
#define IB_MCR_COMPMASK_JOIN_STATE (CL_HTON64(((uint64_t)1)<<16))
#define IB_MCR_COMPMASK_PROXY (CL_HTON64(((uint64_t)1)<<17))
/* GUID Info Record Component Masks */
#define IB_GIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_GIR_COMPMASK_BLOCKNUM (CL_HTON64(((uint64_t)1)<<1))
#define IB_GIR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<2))
#define IB_GIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<3))
#define IB_GIR_COMPMASK_GID0 (CL_HTON64(((uint64_t)1)<<4))
#define IB_GIR_COMPMASK_GID1 (CL_HTON64(((uint64_t)1)<<5))
#define IB_GIR_COMPMASK_GID2 (CL_HTON64(((uint64_t)1)<<6))
#define IB_GIR_COMPMASK_GID3 (CL_HTON64(((uint64_t)1)<<7))
#define IB_GIR_COMPMASK_GID4 (CL_HTON64(((uint64_t)1)<<8))
#define IB_GIR_COMPMASK_GID5 (CL_HTON64(((uint64_t)1)<<9))
#define IB_GIR_COMPMASK_GID6 (CL_HTON64(((uint64_t)1)<<10))
#define IB_GIR_COMPMASK_GID7 (CL_HTON64(((uint64_t)1)<<11))
/* MultiPath Record Component Masks */
#define IB_MPR_COMPMASK_RAWTRAFFIC (CL_HTON64(((uint64_t)1)<<0))
#define IB_MPR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<1))
#define IB_MPR_COMPMASK_FLOWLABEL (CL_HTON64(((uint64_t)1)<<2))
#define IB_MPR_COMPMASK_HOPLIMIT (CL_HTON64(((uint64_t)1)<<3))
#define IB_MPR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<4))
#define IB_MPR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<5))
#define IB_MPR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<6))
#define IB_MPR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7))
#define IB_MPR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<8))
#define IB_MPR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<9))
#define IB_MPR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<10))
#define IB_MPR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<11))
#define IB_MPR_COMPMASK_RATESELEC (CL_HTON64(((uint64_t)1)<<12))
#define IB_MPR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<13))
#define IB_MPR_COMPMASK_PKTLIFETIMESELEC (CL_HTON64(((uint64_t)1)<<14))
#define IB_MPR_COMPMASK_PKTLIFETIME (CL_HTON64(((uint64_t)1)<<15))
#define IB_MPR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<16))
#define IB_MPR_COMPMASK_INDEPSELEC (CL_HTON64(((uint64_t)1)<<17))
#define IB_MPR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<18))
#define IB_MPR_COMPMASK_SGIDCOUNT (CL_HTON64(((uint64_t)1)<<19))
#define IB_MPR_COMPMASK_DGIDCOUNT (CL_HTON64(((uint64_t)1)<<20))
#define IB_MPR_COMPMASK_RESV4 (CL_HTON64(((uint64_t)1)<<21))
2284c2460
< AL_INLINE void AL_API
---
static inline void
2287,2300c2463,2476
< IN const ib_gid_t* const p_dgid,
< IN const ib_gid_t* const p_sgid,
< IN const ib_net16_t dlid,
< IN const ib_net16_t slid,
< IN const uint8_t num_path,
< IN const ib_net16_t pkey,
< IN const uint8_t sl,
< IN const uint8_t mtu_selector,
< IN const uint8_t mtu,
< IN const uint8_t rate_selector,
< IN const uint8_t rate,
< IN const uint8_t pkt_life_selector,
< IN const uint8_t pkt_life,
< IN const uint8_t preference )
---
IN ib_gid_t* const p_dgid,
IN ib_gid_t* const p_sgid,
IN ib_net16_t dlid,
IN ib_net16_t slid,
IN uint8_t num_path,
IN ib_net16_t pkey,
IN uint8_t sl,
IN uint8_t mtu_selector,
IN uint8_t mtu,
IN uint8_t rate_selector,
IN uint8_t rate,
IN uint8_t pkt_life_selector,
IN uint8_t pkt_life,
IN uint8_t preference )
2319c2495
< p_rec->hop_flow_raw.val = 0;
---
p_rec->hop_flow_raw = 0;
2322,2324c2498,2500
< p_rec->resv0 = 0;
< p_rec->resv1 = 0;
< p_rec->resv2 = 0;
---
*((uint64_t*)p_rec->resv0) = 0;
*((uint32_t*)p_rec->resv2) = 0;
*((uint16_t*)p_rec->resv2 + 2) = 0;
2344c2520,2521
< * [in] In queries, maximum number of paths to return.
---
* [in] Reversible path - 1 bit to say if path is reversible.
* num_path [6:0] In queries, maximum number of paths to return.
2383a2561,2589
/****f* IBA Base: Types/ib_path_rec_num_path
* NAME
* ib_path_rec_num_path
*
* DESCRIPTION
* Get max number of paths to return.
*
* SYNOPSIS
*/
static inline uint8_t
ib_path_rec_num_path(
IN const ib_path_rec_t* const p_rec )
{
return( p_rec->num_path &0x7F );
}
/*
* PARAMETERS
* p_rec
* [in] Pointer to the path record object.
*
* RETURN VALUES
* Maximum number of paths to return for each unique SGID_DGID combination.
*
* NOTES
*
* SEE ALSO
* ib_path_rec_t
*********/
2393c2599
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2405,2411c2611
< * Encoded path MTU.
< * 1: 256
< * 2: 512
< * 3: 1024
< * 4: 2048
< * 5: 4096
< * others: reserved
---
* SL.
2428c2628
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2463c2663
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2496c2696
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2511a2712,2717
* 5: 5 Gb/sec.
* 6: 20 Gb/sec.
* 7: 40 Gb/sec.
* 8: 60 Gb/sec.
* 9: 80 Gb/sec.
* 10: 120 Gb/sec.
2529c2735
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2562c2768
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2574c2780
< * Encoded path pkt_life = 4.096 µsec * 2 PacketLifeTime.
---
* Encoded path pkt_life = 4.096 µsec * 2 ** PacketLifeTime.
2591c2797
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2624c2830
< AL_INLINE net32_t AL_API
---
static inline uint32_t
2628c2834
< return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw.val) >> 8) & 0x000FFFFF ) );
---
return( ((cl_ntoh32(p_rec->hop_flow_raw) >> 8) & 0x000FFFFF) );
2653c2859
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2657c2863
< return( p_rec->hop_flow_raw.bytes[3] );
---
return( (uint8_t)(p_rec->hop_flow_raw & 0x000000FF ) );
2673,2714d2878
< /****f* IBA Base: Types/ib_path_rec_set_hop_flow_raw
< * NAME
< * ib_path_rec_set_hop_flow_raw
< *
< * DESCRIPTION
< * Sets the hop limit, flow label, and raw traffic bits of a path record.
< *
< * SYNOPSIS
< */
< AL_INLINE void AL_API
< ib_path_rec_set_hop_flow_raw(
< OUT ib_path_rec_t* const p_rec,
< IN const uint8_t hop_limit,
< IN const net32_t flow_lbl,
< IN const boolean_t raw )
< {
< p_rec->hop_flow_raw.val = (cl_ntoh32( flow_lbl ) & 0x000FFFFF) << 8;
< if( raw )
< p_rec->hop_flow_raw.val |= 0x80000000;
< p_rec->hop_flow_raw.val = cl_hton32( p_rec->hop_flow_raw.val );
< p_rec->hop_flow_raw.bytes[3] = hop_limit;
< }
< /*
< * PARAMETERS
< * p_rec
< * Pointer to the path record whose hop limit, flow label, and rab
< * traffic fields to set.
< *
< * hop_limit
< * Hop limit to set in the path record.
< *
< * flow_lbl
< * Flow label, in network byte order, to set in the path record.
< *
< * raw
< * Boolean flag to indicate whether the path record is for raw traffic.
< *
< * SEE ALSO
< * ib_path_rec_t
< *********/
<
<
2776c2940,2941
< ib_net32_t resp_time_val;
---
uint8_t reserved[3];
uint8_t resp_time_val;
2894c3059
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2922c3087
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2963d3127
<
3041c3205
< AL_INLINE void AL_API
---
static inline void
3104c3268
< AL_INLINE void AL_API
---
static inline void
3149c3313
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3206c3370
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3231c3395
< AL_INLINE void AL_API
---
static inline void
3241c3405
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3259c3423,3424
< #define IB_SMP_DIRECTION (CL_HTON16(0x8000))
---
#define IB_SMP_DIRECTION_HO 0x8000
#define IB_SMP_DIRECTION (CL_HTON16(IB_SMP_DIRECTION_HO))
3271c3436,3437
< #define IB_SMP_STATUS_MASK (CL_HTON16(0x7FFF))
---
#define IB_SMP_STATUS_MASK_HO 0x7FFF
#define IB_SMP_STATUS_MASK (CL_HTON16(IB_SMP_STATUS_MASK_HO))
3376c3542
< AL_INLINE ib_net16_t AL_API
---
static inline ib_net16_t
3405c3571
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3433c3599
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3466c3632
< AL_INLINE void AL_API
---
static inline void
3496c3662
< cl_memclr( p_smp->resv1,
---
memset( p_smp->resv1, 0,
3503c3669
< cl_memcpy( &p_smp->initial_path, path_out,
---
memcpy( &p_smp->initial_path, path_out,
3552c3718
< AL_INLINE void* AL_API
---
static inline void*
3645,3647c3811
<
<
< AL_INLINE uint32_t AL_API
---
static inline uint32_t
3654c3818
< AL_INLINE ib_net16_t AL_API
---
static inline ib_net16_t
3658,3660d3821
< if( attr_size & 0x07 )
< return( cl_hton16( (uint16_t)(attr_size >> 3) + 1 ) );
< else
3664d3824
<
3674c3834
< AL_INLINE void* AL_API
---
static inline void*
3711c3871
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3741c3901
< AL_INLINE ib_net32_t AL_API
---
static inline ib_net32_t
3810,3811c3970,3971
< uint8_t state_info1; // LinkSpeedSupported and PortState
< uint8_t state_info2; // PortPhysState and LinkDownDefaultState
---
uint8_t state_info1; /* LinkSpeedSupported and PortState */
uint8_t state_info2; /* PortPhysState and LinkDownDefaultState */
3813c3973
< uint8_t link_speed; // LinkSpeedEnabled and LinkSpeedActive
---
uint8_t link_speed; /* LinkSpeedEnabled and LinkSpeedActive */
3815c3975
< uint8_t vl_cap; // VlCap and InitType
---
uint8_t vl_cap; /* VLCap and InitType */
3826c3986,3987
< uint8_t subnet_timeout;
---
uint8_t subnet_timeout; /* cli_rereg(1b), resrv(
2b), timeout(5b) */
3835a3997
#define IB_PORT_LMC_MAX 0x07
3841a4004,4006
#define IB_PORT_PHYS_STATE_MASK 0xF0
#define IB_PORT_PHYS_STATE_SHIFT 4
#define IB_PORT_LNKDWNDFTSTATE_MASK 0x0F
3854c4019
< #define IB_PORT_CAP_HAS_SYS_GUID (CL_NTOH32(0x00000800))
---
#define IB_PORT_CAP_HAS_SYS_IMG_GUID (CL_NTOH32(0x00000800))
3861c4026
< #define IB_PORT_CAP_HAS_REINIT (CL_NTOH32(0x00040000))
---
#define IB_PORT_CAP_REINIT (CL_NTOH32(0x00040000))
3867,3868c4032,4033
< #define IB_PORT_CAP_HAS_LINK_TRIP (CL_NTOH32(0x01000000))
< #define IB_PORT_CAP_HAS_CLI_REREG (CL_NTOH32(0x02000000))
---
#define IB_PORT_CAP_HAS_LINK_RT_LATENCY (CL_NTOH32(0x01000000))
#define IB_PORT_CAP_HAS_CLIENT_REREG (CL_NTOH32(0x02000000))
3885c4050
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3912c4077
< AL_INLINE void AL_API
---
static inline void
3943c4108
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3960a4126,4152
/****f* IBA Base: Types/ib_port_info_get_init_type
* NAME
* ib_port_info_get_init_type
*
* DESCRIPTION
* Gets the init type of a port.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_init_type(
IN const ib_port_info_t* const p_pi)
{
return (uint8_t) (p_pi->vl_cap & 0x0F);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* InitType field
*
* NOTES
*
* SEE ALSO
*********/
3970c4162
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3997c4189
< AL_INLINE void AL_API
---
static inline void
4028c4220
< AL_INLINE void AL_API
---
static inline void
4057c4249
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4088c4280
< AL_INLINE void AL_API
---
static inline void
4114c4306
< /****f* IBA Base: Types/ib_port_info_get_link_speed_active
---
/****f* IBA Base: Types/ib_port_info_get_port_phys_state
4116c4308
< * ib_port_info_get_link_speed_active
---
* ib_port_info_get_port_phys_state
4119c4311
< * Returns the Link Speed Active value assigned to this port.
---
* Returns the encoded value for the port physical state.
4123,4124c4315,4316
< AL_INLINE uint8_t AL_API
< ib_port_info_get_link_speed_active(
---
static inline uint8_t
ib_port_info_get_port_phys_state(
4127,4128c4319,4321
< return( (uint8_t)((p_pi->link_speed & IB_PORT_LINK_SPEED_ACTIVE_MASK) >>
< IB_PORT_LINK_SPEED_SHIFT) );
---
return( (uint8_t)((p_pi->state_info2 &
IB_PORT_PHYS_STATE_MASK) >>
IB_PORT_PHYS_STATE_SHIFT) );
4136c4329
< * Returns the link speed active value assigned to this port.
---
* Returns the encoded value for the port physical state.
4142a4336,4467
/****f* IBA Base: Types/ib_port_info_set_port_phys_state.
* NAME
* ib_port_info_set_port_phys_state
*
* DESCRIPTION
* Given an integer of the port physical state,
* Set the appropriate bits in state_info2
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_port_phys_state(
IN uint8_t const phys_state,
IN ib_port_info_t* p_pi )
{
p_pi->state_info2 =
( ~IB_PORT_PHYS_STATE_MASK & p_pi->state_info2 ) |
( IB_PORT_PHYS_STATE_MASK &
(phys_state << IB_PORT_PHYS_STATE_SHIFT) );
}
/*
* PARAMETERS
* phys_state
* [in] port physical state.
*
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* This function does not return a value.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_link_down_def_state
* NAME
* ib_port_info_get_link_down_def_state
*
* DESCRIPTION
* Returns the link down default state.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_link_down_def_state(
IN const ib_port_info_t* const p_pi )
{
return( (uint8_t)(p_pi->state_info2 & IB_PORT_LNKDWNDFTSTATE_MASK) );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* link down default state of the port.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_set_link_down_def_state
* NAME
* ib_port_info_set_link_down_def_state
*
* DESCRIPTION
* Sets the link down default state of the port.
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_link_down_def_state(
IN ib_port_info_t* const p_pi,
IN const uint8_t link_dwn_state )
{
p_pi->state_info2 = (uint8_t)((p_pi->state_info2 & 0xF0) | link_dwn_state );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* link_dwn_state
* [in] Link down default state of the port.
*
* RETURN VALUES
* None.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_link_speed_active
* NAME
* ib_port_info_get_link_speed_active
*
* DESCRIPTION
* Returns the Link Speed Active value assigned to this port.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_link_speed_active(
IN const ib_port_info_t* const p_pi )
{
return( (uint8_t)((p_pi->link_speed &
IB_PORT_LINK_SPEED_ACTIVE_MASK) >>
IB_PORT_LINK_SPEED_SHIFT) );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Returns the link speed active value assigned to this port.
*
* NOTES
*
* SEE ALSO
*********/
#define IB_LINK_WIDTH_ACTIVE_1X 1
#define IB_LINK_WIDTH_ACTIVE_4X 2
#define IB_LINK_WIDTH_ACTIVE_12X 8
#define IB_LINK_SPEED_ACTIVE_2_5 1
#define IB_LINK_SPEED_ACTIVE_5 2
#define IB_LINK_SPEED_ACTIVE_10 4
4144,4151c4469
< #define IB_LINK_WIDTH_ACTIVE_1X 1
< #define IB_LINK_WIDTH_ACTIVE_4X 2
< #define IB_LINK_WIDTH_ACTIVE_12X 8
<
< #define IB_LINK_SPEED_ACTIVE_2_5 1
< #define IB_LINK_SPEED_ACTIVE_5 2
< #define IB_LINK_SPEED_ACTIVE_10 4
<
---
/* following v1 ver1.2 p901 */
4161a4480,4481
#define IB_MIN_RATE IB_PATH_RECORD_RATE_2_5_GBS
#define IB_MAX_RATE IB_PATH_RECORD_RATE_120_GBS
4172c4492,4493
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4176,4177c4497,4502
< switch( p_pi->link_width_active * p_pi->link_width_active *
< ib_port_info_get_link_speed_active( p_pi ) )
---
uint8_t rate = 0;
switch (ib_port_info_get_link_speed_active(p_pi))
{
switch (p_pi->link_width_active)
4179,4180c4504,4510
< case 1:
< return IB_PATH_RECORD_RATE_2_5_GBS;
---
rate = IB_PATH_RECORD_RATE_2_5_GBS;
break;
rate = IB_PATH_RECORD_RATE_10_GBS;
break;
4182,4183c4512,4514
< case 2:
< return IB_PATH_RECORD_RATE_5_GBS;
---
rate = IB_PATH_RECORD_RATE_30_GBS;
break;
4185,4186c4516,4526
< case 4:
< return IB_PATH_RECORD_RATE_10_GBS;
---
rate = IB_PATH_RECORD_RATE_2_5_GBS;
break;
}
break;
switch (p_pi->link_width_active)
{
rate = IB_PATH_RECORD_RATE_5_GBS;
break;
4188,4189c4528,4530
< case 8:
< return IB_PATH_RECORD_RATE_20_GBS;
---
rate = IB_PATH_RECORD_RATE_20_GBS;
break;
4191,4192c4532,4534
< case 16:
< return IB_PATH_RECORD_RATE_40_GBS;
---
rate = IB_PATH_RECORD_RATE_60_GBS;
break;
4194,4195c4536,4546
< case 64:
< return IB_PATH_RECORD_RATE_30_GBS;
---
rate = IB_PATH_RECORD_RATE_5_GBS;
break;
}
break;
switch (p_pi->link_width_active)
{
rate = IB_PATH_RECORD_RATE_10_GBS;
break;
4197,4198c4548,4550
< case 128:
< return IB_PATH_RECORD_RATE_60_GBS;
---
rate = IB_PATH_RECORD_RATE_40_GBS;
break;
4200,4201c4552,4554
< case 256:
< return IB_PATH_RECORD_RATE_120_GBS;
---
rate =IB_PATH_RECORD_RATE_120_GBS;
break;
4204c4557,4563
< return IB_PATH_RECORD_RATE_2_5_GBS;
---
rate = IB_PATH_RECORD_RATE_10_GBS;
break;
}
break;
rate = IB_PATH_RECORD_RATE_2_5_GBS;
break;
4205a4565,4566
return rate;
4229c4590
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4238c4599
< //link_width_supported = 1: 1x
---
/* link_width_supported = 1: 1x */
4242c4603
< //link_width_supported = 3: 1x or 4x
---
/* link_width_supported = 3: 1x or 4x */
4254c4615
< //link_width_supported = 11: 1x or 4x or 12x
---
/* link_width_supported = 11: 1x or 4x or 12x */
4291d4651
<
4301c4661
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4328c4688
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4355c4715
< AL_INLINE void AL_API
---
static inline void
4379a4740,4798
/****f* IBA Base: Types/ib_port_info_get_master_smsl
* NAME
* ib_port_info_get_master_smsl
*
* DESCRIPTION
* Returns the encoded value for the Master SMSL at this port.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_master_smsl(
IN const ib_port_info_t* const p_pi )
{
return (uint8_t) (p_pi->mtu_smsl & 0x0F);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Returns the encoded value for the Master SMSL at this port.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_set_master_smsl
* NAME
* ib_port_info_set_master_smsl
*
* DESCRIPTION
* Sets the Master SMSL value in the PortInfo attribute.
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_master_smsl(
IN ib_port_info_t* const p_pi,
IN const uint8_t smsl )
{
p_pi->mtu_smsl = (uint8_t)((p_pi->mtu_smsl & 0xF0) | smsl );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* mtu
* [in] Encoded Master SMSL value to set
*
* RETURN VALUES
* None.
*
* NOTES
*
* SEE ALSO
*********/
4389c4808
< AL_INLINE void AL_API
---
static inline void
4395c4814,4816
< p_pi->subnet_timeout = (uint8_t)(timeout & 0x1F);
---
p_pi->subnet_timeout =
(uint8_t)(
(p_pi->subnet_timeout & 0x80) | (timeout & 0x1F));
4413c4834
< /****f* IBA Base: Types/ib_port_info_get_lmc
---
/****f* IBA Base: Types/ib_port_info_set_client_rereg
4415c4836
< * ib_port_info_get_lmc
---
* ib_port_info_set_client_rereg
4418c4839
< * Returns the LMC value assigned to this port.
---
* Sets the encoded client reregistration bit value in the PortInfo attribute.
4422,4424c4843,4846
< AL_INLINE uint8_t AL_API
< ib_port_info_get_lmc(
< IN const ib_port_info_t* const p_pi )
---
static inline void
ib_port_info_set_client_rereg(
IN ib_port_info_t* const p_pi,
IN const uint8_t client_rereg )
4426c4848,4851
< return( (uint8_t)(p_pi->mkey_lmc & IB_PORT_LMC_MASK) );
---
CL_ASSERT( client_rereg <= 0x1 );
p_pi->subnet_timeout =
(uint8_t)(
(p_pi->subnet_timeout & 0x1F) | ((client_rereg << 7) & 0x80));
4432a4858,4860
* client_rereg
* [in] Client reregistration value to set (either 1 or 0).
*
4434c4862
< * Returns the LMC value assigned to this port.
---
* None.
4440c4868,4869
< /****f* IBA Base: Types/ib_port_info_set_lmc
---
/****f* IBA Base: Types/ib_port_info_get_timeout
4442c4871
< * ib_port_info_set_lmc
---
* ib_port_info_get_timeout
4445c4874
< * Sets the LMC value in the PortInfo attribute.
---
* Gets the encoded subnet timeout value in the PortInfo attribute.
4449,4452c4878,4880
< AL_INLINE void AL_API
< ib_port_info_set_lmc(
< IN ib_port_info_t* const p_pi,
< IN const uint8_t lmc )
---
static inline uint8_t
ib_port_info_get_timeout(
IN ib_port_info_t const* p_pi )
4454,4455c4882
< CL_ASSERT( lmc <= 0x7 );
< p_pi->mkey_lmc = (uint8_t)((p_pi->mkey_lmc & 0xF8) | lmc);
---
return(p_pi->subnet_timeout & 0x1F );
4462,4464d4888
< * lmc
< * [in] LMC value to set, must be less than 7.
< *
4466c4890
< * None.
---
* The encoded timeout value
4472c4896,4897
< /****f* IBA Base: Types/ib_port_info_get_mpb
---
/****f* IBA Base: Types/ib_port_info_get_client_rereg
4474c4899
< * ib_port_info_get_mpb
---
* ib_port_info_get_client_rereg
4477c4902
< * Returns the M_Key protect bits assigned to this port.
---
* Gets the encoded client reregistration bit value in the PortInfo attribute.
4481,4483c4906,4908
< AL_INLINE uint8_t AL_API
< ib_port_info_get_mpb(
< IN const ib_port_info_t* const p_pi )
---
static inline uint8_t
ib_port_info_get_client_rereg(
IN ib_port_info_t const* p_pi )
4485,4486c4910
< return( (uint8_t)((p_pi->mkey_lmc & IB_PORT_MPB_MASK) >>
< IB_PORT_MPB_SHIFT) );
---
return ( (p_pi->subnet_timeout & 0x80 ) >> 7);
4490c4914
< * p_ni
---
* p_pi
4494c4918
< * Returns the M_Key protect bits assigned to this port.
---
* Client reregistration value (either 1 or 0).
4501c4925
< /****f* IBA Base: Types/ib_port_info_set_mpb
---
/****f* IBA Base: Types/ib_port_info_set_hoq_lifetime
4503c4927
< * ib_port_info_set_mpb
---
* ib_port_info_set_hoq_lifetime
4506c4930,4931
< * Set the M_Key protect bits of this port.
---
* Sets the Head of Queue Lifetime for which a packet can live in the head
* of VL queue
4510,4513c4935,4938
< AL_INLINE void AL_API
< ib_port_info_set_mpb(
< IN ib_port_info_t* p_pi,
< IN uint8_t mpb )
---
static inline void
ib_port_info_set_hoq_lifetime(
IN ib_port_info_t* const p_pi,
IN const uint8_t hoq_life )
4515,4517c4940,4941
< p_pi->mkey_lmc =
< ((p_pi->mkey_lmc & ~IB_PORT_MPB_MASK) |
< (mpb << IB_PORT_MPB_SHIFT));
---
p_pi->vl_stall_life = (uint8_t)((hoq_life & 0x1f) |
(p_pi->vl_stall_life & 0xe0));
4521,4523c4945
< * mpb
< * [in] M_Key protect bits
< * p_ni
---
* p_pi
4525a4948,4950
* hoq_life
* [in] Encoded lifetime value to set
*
4526a4952
* None.
4532a4959,4974
/****f* IBA Base: Types/ib_port_info_get_hoq_lifetime
* NAME
* ib_port_info_get_hoq_lifetime
*
* DESCRIPTION
* Gets the Head of Queue Lifetime for which a packet can live in the head
* of VL queue
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_hoq_lifetime(
IN const ib_port_info_t* const p_pi )
{
return( (uint8_t)(p_pi->vl_stall_life & 0x1f) );
}
4534c4976,4987
< typedef uint8_t ib_svc_name_t[64];
---
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Encoded lifetime value
*
* NOTES
*
* SEE ALSO
*********/
4536,4537c4989,5002
< #include <complib/cl_packon.h>
< typedef struct _ib_service_record
---
/****f* IBA Base: Types/ib_port_info_set_vl_stall_count
* NAME
* ib_port_info_set_vl_stall_count
*
* DESCRIPTION
* Sets the VL Stall Count which define the number of contiguous
* HLL (hoq) drops that will put the VL into stalled mode.
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_vl_stall_count(
IN ib_port_info_t* const p_pi,
IN const uint8_t vl_stall_count )
4539,4591c5004,5010
< ib_net64_t service_id;
< ib_gid_t service_gid;
< ib_net16_t service_pkey;
< ib_net16_t resv;
< ib_net32_t service_lease;
< uint8_t service_key[16];
< ib_svc_name_t service_name;
< uint8_t service_data8[16];
< ib_net16_t service_data16[8];
< ib_net32_t service_data32[4];
< ib_net64_t service_data64[2];
<
< } PACK_SUFFIX ib_service_record_t;
< #include <complib/cl_packoff.h>
<
< #include <complib/cl_packon.h>
< typedef struct _ib_portinfo_record
< {
< ib_net16_t lid;
< uint8_t port_num;
< uint8_t resv;
< ib_port_info_t port_info;
< uint8_t pad[6];
<
< } PACK_SUFFIX ib_portinfo_record_t;
< #include <complib/cl_packoff.h>
<
< #include <complib/cl_packon.h>
< typedef struct _ib_link_record
< {
< ib_net16_t from_lid;
< uint8_t from_port_num;
< uint8_t to_port_num;
< ib_net16_t to_lid;
< uint8_t pad[2];
<
< } PACK_SUFFIX ib_link_record_t;
< #include <complib/cl_packoff.h>
<
< #include <complib/cl_packon.h>
< typedef struct _ib_sminfo_record
< {
< ib_net16_t lid;
< uint16_t resv0;
< ib_sm_info_t sm_info;
< uint8_t pad[7];
<
< } PACK_SUFFIX ib_sminfo_record_t;
< #include <complib/cl_packoff.h>
<
< /****s* IBA Base: Types/ib_lft_record_t
< * NAME
< * ib_lft_record_t
---
p_pi->vl_stall_life = (uint8_t)((p_pi->vl_stall_life & 0x1f) |
((vl_stall_count << 5) & 0xe0));
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
4593,4594c5012,5013
< * DESCRIPTION
< * IBA defined LinearForwardingTable. (14.2.5.6)
---
* vl_stall_count
* [in] value to set
4596,4612c5015,5016
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef struct _ib_lft_record
< {
< ib_net16_t lid;
< ib_net16_t block_num;
< uint32_t resv0;
< uint8_t lft[64];
<
< } PACK_SUFFIX ib_lft_record_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****s* IBA Base: Types/ib_switch_info_t
< * NAME
< * ib_switch_info_t
---
* RETURN VALUES
* None.
4614,4615c5018
< * DESCRIPTION
< * IBA defined SwitchInfo. (14.2.5.4)
---
* NOTES
4617,4649c5020,5021
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef struct _ib_switch_info
< {
< ib_net16_t lin_cap;
< ib_net16_t rand_cap;
< ib_net16_t mcast_cap;
< ib_net16_t lin_top;
< uint8_t def_port;
< uint8_t def_mcast_pri_port;
< uint8_t def_mcast_not_port;
< uint8_t life_state;
< ib_net16_t lids_per_port;
< ib_net16_t enforce_cap;
< uint8_t flags;
<
< } PACK_SUFFIX ib_switch_info_t;
< #include <complib/cl_packoff.h>
< /************/
<
< #include <complib/cl_packon.h>
< typedef struct _ib_switch_info_record
< {
< ib_net16_t lid;
< uint16_t resv0;
< ib_switch_info_t switch_info;
< uint8_t pad[3];
<
< } PACK_SUFFIX ib_switch_info_record_t;
< #include <complib/cl_packoff.h>
<
< #define IB_SWITCH_PSC 0x04
---
* SEE ALSO
*********/
4651c5023
< /****f* IBA Base: Types/ib_switch_info_get_state_change
---
/****f* IBA Base: Types/ib_port_info_get_vl_stall_count
4653c5025
< * ib_switch_info_get_state_change
---
* ib_port_info_get_vl_stall_count
4656c5028,5029
< * Returns the value of the state change flag.
---
* Gets the VL Stall Count which define the number of contiguous
* HLL (hoq) drops that will put the VL into stalled mode
4660,4662c5033,5035
< AL_INLINE boolean_t AL_API
< ib_switch_info_get_state_change(
< IN const ib_switch_info_t* const p_si )
---
static inline uint8_t
ib_port_info_get_vl_stall_count(
IN const ib_port_info_t* const p_pi )
4664c5037
< return( (p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC );
---
return( (uint8_t)(p_pi->vl_stall_life & 0xe0) >> 5);
4665a5039
4668,4669c5042,5043
< * p_si
< * [in] Pointer to a SwitchInfo attribute.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4672c5046
< * Returns the value of the state change flag.
---
* vl stall count
4679c5053
< /****f* IBA Base: Types/ib_switch_info_clear_state_change
---
/****f* IBA Base: Types/ib_port_info_get_lmc
4681c5055
< * ib_switch_info_clear_state_change
---
* ib_port_info_get_lmc
4684c5058
< * Clears the switch's state change bit.
---
* Returns the LMC value assigned to this port.
4688,4690c5062,5064
< AL_INLINE void AL_API
< ib_switch_info_clear_state_change(
< IN ib_switch_info_t* const p_si )
---
static inline uint8_t
ib_port_info_get_lmc(
IN const ib_port_info_t* const p_pi )
4692c5066
< p_si->life_state = (uint8_t)(p_si->life_state & 0xFB);
---
return( (uint8_t)(p_pi->mkey_lmc & IB_PORT_LMC_MASK) );
4696c5070
< * p_ni
---
* p_pi
4707c5081
< /****s* IBA Base: Types/ib_guid_info_t
---
/****f* IBA Base: Types/ib_port_info_set_lmc
4709c5083
< * ib_guid_info_t
---
* ib_port_info_set_lmc
4712c5086
< * IBA defined GuidInfo. (14.2.5.5)
---
* Sets the LMC value in the PortInfo attribute.
4716,4719c5090,5093
< #define GUID_TABLE_MAX_ENTRIES 8
<
< #include <complib/cl_packon.h>
< typedef struct _ib_guid_info
---
static inline void
ib_port_info_set_lmc(
IN ib_port_info_t* const p_pi,
IN const uint8_t lmc )
4721,4729c5095,5101
< ib_net64_t guid[GUID_TABLE_MAX_ENTRIES];
<
< } PACK_SUFFIX ib_guid_info_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****s* IBA Base: Types/ib_pkey_table_info_t
< * NAME
< * ib_pkey_table_info_t
---
CL_ASSERT( lmc <= IB_PORT_LMC_MAX );
p_pi->mkey_lmc = (uint8_t)((p_pi->mkey_lmc & 0xF8) | lmc);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
4731,4732c5103,5104
< * DESCRIPTION
< * IBA defined PKey table. (14.2.5.7)
---
* lmc
* [in] LMC value to set, must be less than 7.
4734,4745c5106,5112
< * SYNOPSIS
< */
< #define PKEY_TABLE_MAX_ENTRIES 32
<
< #include <complib/cl_packon.h>
< typedef struct _ib_pkey_table_info
< {
< ib_net16_t pkey[PKEY_TABLE_MAX_ENTRIES];
<
< } PACK_SUFFIX ib_pkey_table_info_t;
< #include <complib/cl_packoff.h>
< /************/
---
* RETURN VALUES
* None.
*
* NOTES
*
* SEE ALSO
*********/
4747,4748c5114
< #define IB_MAX_NUM_VLS 16
< /****s* IBA Base: Types/ib_slvl_table_t
---
/****f* IBA Base: Types/ib_port_info_get_link_speed_enabled
4750c5116
< * ib_slvl_table_t
---
* ib_port_info_get_link_speed_enabled
4753c5119
< * IBA defined SL2VL Mapping Table Attribute. (14.2.5.8)
---
* Returns the link speed enabled value assigned to this port.
4757,4758c5123,5125
< #include <complib/cl_packon.h>
< typedef struct _ib_slvl_table
---
static inline uint8_t
ib_port_info_get_link_speed_enabled(
IN const ib_port_info_t* const p_pi )
4760,4766c5127,5141
< uint8_t vl_table[IB_MAX_NUM_VLS/2];
<
< } PACK_SUFFIX ib_slvl_table_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****f* IBA Base: Types/ib_slvl_table_get_vl
---
return( (uint8_t)(p_pi->link_speed & IB_PORT_LINK_SPEED_ENABLED_MASK) );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Port state.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_set_link_speed_enabled
4768c5143
< * ib_slvl_table_get_vl
---
* ib_port_info_set_link_speed_enabled
4771c5146
< * Retrieves the VL for a given SL from an SL to VL mapping table.
---
* Sets the link speed enabled value in the PortInfo attribute.
4775,4778c5150,5153
< AL_INLINE uint8_t AL_API
< ib_slvl_table_get_vl(
< IN const ib_slvl_table_t* const p_slvl_tbl,
< IN const uint8_t sl )
---
static inline void
ib_port_info_set_link_speed_enabled(
IN ib_port_info_t* const p_pi,
IN const uint8_t link_speed_enabled )
4780,4789c5155
< uint8_t vl;
<
< /* There are two VL's per byte. */
< vl = p_slvl_tbl->vl_table[sl/2];
< /* If odd, shift down 4 bits. */
< if( sl % 2 )
< vl >>= 4;
<
< /* Mask off upper bits and return. */
< return vl & 0x0F;
---
p_pi->link_speed = (uint8_t)((p_pi->link_speed & 0xF0) | link_speed_enabled );
4793,4794c5159,5160
< * p_slvl_tbl
< * [in] Pointer to the SL to VL mapping table from which to return the VL.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4796,4797c5162,5163
< * sl
< * [in] SL in the table for which to return the VL.
---
* link_speed_enabled
* [in] link speed enabled value to set.
4800c5166,5168
< * Returns the VL value for the specified SL in the provided table.
---
* None.
*
* NOTES
4803d5170
< * ib_slvl_table_t, ib_slvl_table_set_vl
4806c5173
< /****f* IBA Base: Types/ib_slvl_table_set_vl
---
/****f* IBA Base: Types/ib_port_info_get_mpb
4808c5175
< * ib_slvl_table_set_vl
---
* ib_port_info_get_mpb
4811c5178
< * Sets the VL for a given SL in an SL to VL mapping table.
---
* Returns the M_Key protect bits assigned to this port.
4815,4832c5182,5184
< AL_INLINE void AL_API
< ib_slvl_table_set_vl(
< IN OUT ib_slvl_table_t* const p_slvl_tbl,
< IN const uint8_t sl,
< IN const uint8_t vl )
< {
< uint8_t entry;
<
< /* Get the current value for the byte in which the VL is stored. */
< entry = p_slvl_tbl->vl_table[sl/2];
<
< /* Clear the appropriate bits and set the new VL value. */
< if( sl % 2 )
< {
< entry &= 0x0F;
< entry |= ((vl & 0x0F) << 4);
< }
< else
---
static inline uint8_t
ib_port_info_get_mpb(
IN const ib_port_info_t* const p_pi )
4834,4838c5186,5187
< entry &= 0xF0;
< entry |= (vl & 0x0F);
< }
< /* Store the updated entry back into the table. */
< p_slvl_tbl->vl_table[sl/2] = entry;
---
return( (uint8_t)((p_pi->mkey_lmc & IB_PORT_MPB_MASK) >>
IB_PORT_MPB_SHIFT) );
4842,4849c5191,5192
< * slvl_tbl
< * [in/out] Pointer to the SL to VL mapping table in which to store the VL.
< *
< * sl
< * [in] SL in the table for which to store the VL.
< *
< * vl
< * [in] VL to store at the specifed SL.
---
* p_ni
* [in] Pointer to a PortInfo attribute.
4852c5195,5197
< * This function does not return a value.
---
* Returns the M_Key protect bits assigned to this port.
*
* NOTES
4855d5199
< * ib_slvl_table_t, ib_slvl_table_get_vl
4858c5202
< /****s* IBA Base: Types/ib_slvl_table_record_t
---
/****f* IBA Base: Types/ib_port_info_set_mpb
4860c5204
< * ib_slvl_table_record_t
---
* ib_port_info_set_mpb
4863c5207
< * IBA defined Sl to VL Mapping Table Record for SA Query. (15.2.5.4)
---
* Set the M_Key protect bits of this port.
4867,4868c5211,5214
< #include <complib/cl_packon.h>
< typedef struct _ib_slvl_table_record
---
static inline void
ib_port_info_set_mpb(
IN ib_port_info_t* p_pi,
IN uint8_t mpb )
4870,4880c5216,5233
< ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
< uint8_t in_port_num; // reserved for CA's
< uint8_t out_port_num; // reserved for CA's
< uint32_t resv;
< ib_slvl_table_t slvl_tbl;
<
< } PACK_SUFFIX ib_slvl_table_record_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****s* IBA Base: Types/ib_vl_arb_element_t
---
p_pi->mkey_lmc =
(~IB_PORT_MPB_MASK & p_pi->mkey_lmc) |
( IB_PORT_MPB_MASK & (mpb << IB_PORT_MPB_SHIFT) );
}
/*
* PARAMETERS
* mpb
* [in] M_Key protect bits
* p_ni
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_local_phy_err_thd
4882c5235
< * ib_vl_arb_element_t
---
* ib_port_info_get_local_phy_err_thd
4885c5238
< * IBA defined VL Arbitration Table Element. (14.2.5.9)
---
* Returns the Phy Link Threshold
4889,4890c5242,5244
< #include <complib/cl_packon.h>
< typedef struct _ib_vl_arb_element
---
static inline uint8_t
ib_port_info_get_local_phy_err_thd(
IN const ib_port_info_t* const p_pi )
4892,4899c5246,5260
< uint8_t res_vl;
< uint8_t weight;
<
< } PACK_SUFFIX ib_vl_arb_element_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****f* IBA Base: Types/ib_vl_arb_element_get_vl
---
return (uint8_t)( (p_pi->error_threshold & 0xF0) >> 4);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Returns the Phy Link error threshold assigned to this port.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_overrun_err_thd
4901c5262
< * ib_vl_arb_element_get_vl
---
* ib_port_info_get_local_overrun_err_thd
4904c5265
< * Retrieves the VL from a VL arbitration table element.
---
* Returns the Credits Overrun Errors Threshold
4908,4910c5269,5271
< AL_INLINE uint8_t AL_API
< ib_vl_arb_element_get_vl(
< IN const ib_vl_arb_element_t vl_arb_element )
---
static inline uint8_t
ib_port_info_get_overrun_err_thd(
IN const ib_port_info_t* const p_pi )
4912c5273
< return (vl_arb_element.res_vl >> 4);
---
return (uint8_t)(p_pi->error_threshold & 0x0F);
4916,4917c5277,5278
< * vl_arb_element
< * [in] VL arbitration table element from which to return the VL.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4920c5281,5283
< * Returns the VL value for the specified VL arbitration table element.
---
* Returns the Credits Overrun errors threshold assigned to this port.
*
* NOTES
4923d5285
< * vl_arb_element, ib_vl_arb_element_set_vl
4926c5288
< /****f* IBA Base: Types/ib_vl_arb_element_set_vl
---
/****f* IBA Base: Types/ib_port_info_set_phy_and_overrun_err_thd
4928c5290
< * ib_vl_arb_element_set_vl
---
* ib_port_info_set_phy_and_overrun_err_thd
4931c5293
< * Retrieves the VL from a VL arbitration table element.
---
* Sets the Phy Link and Credits Overrun Errors Threshold
4935,4938c5297,5301
< AL_INLINE void AL_API
< ib_vl_arb_element_set_vl(
< IN OUT ib_vl_arb_element_t* const p_vl_arb_element,
< IN const uint8_t vl )
---
static inline void
ib_port_info_set_phy_and_overrun_err_thd(
IN ib_port_info_t* const p_pi,
IN uint8_t phy_threshold,
IN uint8_t overrun_threshold )
4940c5303,5304
< p_vl_arb_element->res_vl = vl << 4;
---
p_pi->error_threshold =
(uint8_t)( ((phy_threshold & 0x0F) << 4) | (overrun_threshold & 0x0F) );
4944,4945c5308,5309
< * vl_arb_element
< * [in/out] VL arbitration table element in which to store the VL.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4947,4948c5311,5315
< * vl
< * [in] VL to store in the specified element.
---
* phy_threshold
* [in] Physical Link Errors Threshold above which Trap 129 is generated
*
* overrun_threshold
* [in] Credits overrun Errors Threshold above which Trap 129 is generated
4951c5318,5320
< * This function does not return a value.
---
* None.
*
* NOTES
4954d5322
< * vl_arb_element, ib_vl_arb_element_get_vl
4957,4958c5325,5380
< #define IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK 32
< /****s* IBA Base: Types/ib_vl_arb_table_t
---
typedef uint8_t ib_svc_name_t[64];
#include <complib/cl_packon.h>
typedef struct _ib_service_record
{
ib_net64_t service_id;
ib_gid_t service_gid;
ib_net16_t service_pkey;
ib_net16_t resv;
ib_net32_t service_lease;
uint8_t service_key[16];
ib_svc_name_t service_name;
uint8_t service_data8[16];
ib_net16_t service_data16[8];
ib_net32_t service_data32[4];
ib_net64_t service_data64[2];
} PACK_SUFFIX ib_service_record_t;
#include <complib/cl_packoff.h>
#include <complib/cl_packon.h>
typedef struct _ib_portinfo_record
{
ib_net16_t lid;
uint8_t port_num;
uint8_t resv;
ib_port_info_t port_info;
uint8_t pad[6];
} PACK_SUFFIX ib_portinfo_record_t;
#include <complib/cl_packoff.h>
#include <complib/cl_packon.h>
typedef struct _ib_link_record
{
ib_net16_t from_lid;
uint8_t from_port_num;
uint8_t to_port_num;
ib_net16_t to_lid;
uint8_t pad[2];
} PACK_SUFFIX ib_link_record_t;
#include <complib/cl_packoff.h>
#include <complib/cl_packon.h>
typedef struct _ib_sminfo_record
{
ib_net16_t lid;
uint16_t resv0;
ib_sm_info_t sm_info;
uint8_t pad[7];
} PACK_SUFFIX ib_sminfo_record_t;
#include <complib/cl_packoff.h>
/****s* IBA Base: Types/ib_lft_record_t
4960c5382
< * ib_vl_arb_table_t
---
* ib_lft_record_t
4963c5385
< * IBA defined VL Arbitration Table. (14.2.5.9)
---
* IBA defined LinearForwardingTable. (14.2.5.6)
4968c5390
< typedef struct _ib_vl_arb_table
---
typedef struct _ib_lft_record
4970,4972c5392,5396
< ib_vl_arb_element_t vl_entry[IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK];
<
< } PACK_SUFFIX ib_vl_arb_table_t;
---
ib_net16_t lid;
ib_net16_t block_num;
uint32_t resv0;
uint8_t lft[64];
} PACK_SUFFIX ib_lft_record_t;
4976c5400
< /****s* IBA Base: Types/ib_vl_arb_table_record_t
---
/****s* IBA Base: Types/ib_switch_info_t
4978c5402
< * ib_vl_arb_table_record_t
---
* ib_switch_info_t
4981c5405
< * IBA defined VL Arbitration Table Record for SA Query. (15.2.5.9)
---
* IBA defined SwitchInfo. (14.2.5.4)
4986c5410
< typedef struct _ib_vl_arb_table_record
---
typedef struct _ib_switch_info
4988,4992c5412,5422
< ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
< uint8_t port_num;
< uint8_t block_num;
< uint32_t reserved;
< ib_vl_arb_table_t vl_arb_tbl;
---
ib_net16_t lin_cap;
ib_net16_t rand_cap;
ib_net16_t mcast_cap;
ib_net16_t lin_top;
uint8_t def_port;
uint8_t def_mcast_pri_port;
uint8_t def_mcast_not_port;
uint8_t life_state;
ib_net16_t lids_per_port;
ib_net16_t enforce_cap;
uint8_t flags;
4994c5424
< } PACK_SUFFIX ib_vl_arb_table_record_t;
---
} PACK_SUFFIX ib_switch_info_t;
4998c5428,5441
< /****s* IBA Base: Types/ib_grh_t
---
#include <complib/cl_packon.h>
typedef struct _ib_switch_info_record
{
ib_net16_t lid;
uint16_t resv0;
ib_switch_info_t switch_info;
uint8_t pad[3];
} PACK_SUFFIX ib_switch_info_record_t;
#include <complib/cl_packoff.h>
#define IB_SWITCH_PSC 0x04
/****f* IBA Base: Types/ib_switch_info_get_state_change
5000c5443
< * ib_grh_t
---
* ib_switch_info_get_state_change
5003c5446
< * Global route header information received with unreliable datagram messages
---
* Returns the value of the state change flag.
5007,5008c5450,5452
< #include <complib/cl_packon.h>
< typedef struct _ib_grh
---
static inline boolean_t
ib_switch_info_get_state_change(
IN const ib_switch_info_t* const p_si )
5010,5019c5454,5467
< ib_net32_t ver_class_flow;
< ib_net16_t resv1;
< uint8_t resv2;
< uint8_t hop_limit;
< ib_gid_t src_gid;
< ib_gid_t dest_gid;
<
< } PACK_SUFFIX ib_grh_t;
< #include <complib/cl_packoff.h>
< /************/
---
return( (p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC );
}
/*
* PARAMETERS
* p_si
* [in] Pointer to a SwitchInfo attribute.
*
* RETURN VALUES
* Returns the value of the state change flag.
*
* NOTES
*
* SEE ALSO
*********/
5021c5469
< /****f* IBA Base: Types/ib_grh_get_ver_class_flow
---
/****f* IBA Base: Types/ib_switch_info_clear_state_change
5023c5471
< * ib_grh_get_ver_class_flow
---
* ib_switch_info_clear_state_change
5026c5474
< * Get encoded version, traffic class and flow label in grh
---
* Clears the switch's state change bit.
5030,5035c5478,5480
< AL_INLINE void AL_API
< ib_grh_get_ver_class_flow(
< IN const ib_net32_t ver_class_flow,
< OUT uint8_t* const p_ver OPTIONAL,
< OUT uint8_t* const p_tclass OPTIONAL,
< OUT net32_t* const p_flow_lbl OPTIONAL )
---
static inline void
ib_switch_info_clear_state_change(
IN ib_switch_info_t* const p_si )
5037,5048c5482
< ib_net32_t tmp_ver_class_flow;
<
< tmp_ver_class_flow = cl_ntoh32( ver_class_flow );
<
< if (p_ver)
< *p_ver = (uint8_t)(tmp_ver_class_flow >> 28);
<
< if (p_tclass)
< *p_tclass = (uint8_t)(tmp_ver_class_flow >> 20);
<
< if (p_flow_lbl)
< *p_flow_lbl = (ver_class_flow & CL_HTON32( 0x000FFFFF ));
---
p_si->life_state = (uint8_t)(p_si->life_state & 0xFB);
5052,5053c5486,5487
< * ver_class_flow
< * [in] the version, traffic class and flow label info.
---
* p_ni
* [in] Pointer to a PortInfo attribute.
5056,5063c5490
< * p_ver
< * [out] pointer to the version info.
< *
< * p_tclass
< * [out] pointer to the traffic class info.
< *
< * p_flow_lbl
< * [out] pointer to the flow label info
---
* Returns the LMC value assigned to this port.
5068d5494
< * ib_grh_t
5071c5497,5498
< /****f* IBA Base: Types/ib_grh_set_ver_class_flow
---
/****f* IBA Base: Types/ib_switch_info_is_enhanced_port0
5073c5500
< * ib_grh_set_ver_class_flow
---
* ib_switch_info_is_enhanced_port0
5076c5503,5505
< * Set encoded version, traffic class and flow label in grh
---
* Returns TRUE if the enhancedPort0 bit is on (meaning the switch
* port zero supports enhanced functions).
* Returns FALSE otherwise.
5080,5084c5509,5511
< AL_INLINE ib_net32_t AL_API
< ib_grh_set_ver_class_flow(
< IN const uint8_t ver,
< IN const uint8_t tclass,
< IN const net32_t flow_lbl )
---
static inline boolean_t
ib_switch_info_is_enhanced_port0(
IN const ib_switch_info_t* const p_si )
5086,5090c5513
< ib_net32_t ver_class_flow;
<
< ver_class_flow = cl_hton32( (ver << 28) | (tclass << 20) );
< ver_class_flow |= (flow_lbl & CL_HTON32( 0x000FFFFF ));
< return (ver_class_flow);
---
return( (p_si->flags & 0x08) == 0x08 );
5094,5101c5517,5518
< * ver
< * [in] the version info.
< *
< * tclass
< * [in] the traffic class info.
< *
< * flow_lbl
< * [in] the flow label info
---
* p_si
* [in] Pointer to a SwitchInfo attribute.
5104,5105c5521
< * ver_class_flow
< * [out] the version, traffic class and flow label info.
---
* Returns TRUE if the switch supports enhanced port 0. FALSE otherwise.
5110d5525
< * ib_grh_t
5113c5528
< /****s* IBA Base: Types/ib_member_rec_t
---
/****s* IBA Base: Types/ib_guid_info_t
5115c5530
< * ib_member_rec_t
---
* ib_guid_info_t
5118,5119c5533
< * Multicast member record, used to create, join, and leave multicast
< * groups.
---
* IBA defined GuidInfo. (14.2.5.5)
5122a5537,5538
#define GUID_TABLE_MAX_ENTRIES 8
5124c5540
< typedef struct _ib_member_rec
---
typedef struct _ib_guid_info
5126,5130c5542,5564
< ib_gid_t mgid;
< ib_gid_t port_gid;
< ib_net32_t qkey;
< ib_net16_t mlid;
< uint8_t mtu;
---
ib_net64_t guid[GUID_TABLE_MAX_ENTRIES];
} PACK_SUFFIX ib_guid_info_t;
#include <complib/cl_packoff.h>
/************/
#include <complib/cl_packon.h>
typedef struct _ib_guidinfo_record
{
ib_net16_t lid;
uint8_t block_num;
uint8_t resv;
uint32_t reserved;
ib_guid_info_t guid_info;
} PACK_SUFFIX ib_guidinfo_record_t;
#include <complib/cl_packoff.h>
#define IB_MULTIPATH_MAX_GIDS 11 /* Support max that can fit into first MAD (for now) */
#include <complib/cl_packon.h>
typedef struct _ib_multipath_rec_t
{
ib_net32_t hop_flow_raw;
5131a5566
uint8_t num_path;
5132a5568,5570
uint8_t resv0;
uint8_t sl;
uint8_t mtu;
5135,5141c5573,5579
< ib_net32_t sl_flow_hop;
< uint8_t scope_state;
< uint8_t proxy_join;
< uint8_t reserved[2];
< uint8_t pad[4];
<
< } PACK_SUFFIX ib_member_rec_t;
---
uint8_t resv1;
uint8_t independence; /* formerly resv2 */
uint8_t sgid_count;
uint8_t dgid_count;
uint8_t resv3[7];
ib_gid_t gids[IB_MULTIPATH_MAX_GIDS];
} PACK_SUFFIX ib_multipath_rec_t;
5145,5146c5583,5584
< * mgid
< * Multicast GID address for this multicast group.
---
* hop_flow_raw
* Global routing parameters: hop count, flow label and raw bit.
5148,5149c5586,5587
< * port_gid
< * Valid GID of the endpoint joining this multicast group.
---
* tclass
* Another global routing parameter.
5151,5152c5589,5592
< * requestor_gid
< * GID of the endpoint making this request on hehave of port_gid.
---
* num_path
* Reversible path - 1 bit to say if path is reversible.
* num_path [6:0] In queries, maximum number of paths to return.
* In responses, undefined.
5154,5155c5594,5595
< * qkey
< * Q_Key to be used by this multicast group.
---
* pkey
* Partition key (P_Key) to use on this path.
5157,5158c5597,5598
< * mlid
< * Multicast LID for this multicast group.
---
* sl
* Service level to use on this path.
5162,5168d5601
< *
< * tclass
< * Another global routing parameter.
< *
< * pkey
< * Partition key (P_Key) to use for this member.
< *
5175,5233c5608,5610
< * sl_flow_hop
< * Global routing parameters: service level, hop count, and flow label.
< *
< * scope_state
< * MGID scope and JoinState of multicast request.
< *
< * proxy_join
< * Enables others in the Partition to proxy add/remove from the group
< *
< * SEE ALSO
< *********/
<
< /****f* IBA Base: Types/ib_member_get_sl_flow_hop
< * NAME
< * ib_member_get_sl_flow_hop
< *
< * DESCRIPTION
< * Get encoded sl flow label and hop limit
< *
< * SYNOPSIS
< */
< AL_INLINE void AL_API
< ib_member_get_sl_flow_hop(
< IN const ib_net32_t sl_flow_hop,
< OUT uint8_t* const p_sl OPTIONAL,
< OUT net32_t* const p_flow_lbl OPTIONAL,
< OUT uint8_t* const p_hop OPTIONAL )
< {
< ib_net32_t tmp_sl_flow_hop;
<
< if (p_sl)
< *p_sl = (uint8_t)(sl_flow_hop & 0x0f);
<
< tmp_sl_flow_hop = sl_flow_hop >> 4;
<
< if (p_flow_lbl)
< *p_flow_lbl = (uint32_t)(tmp_sl_flow_hop & 0xffffff);
<
< tmp_sl_flow_hop = tmp_sl_flow_hop >> 20;
<
< if (p_hop)
< *p_hop = (uint8_t)(tmp_sl_flow_hop & 0xff);
< }
< /*
< * PARAMETERS
< * sl_flow_hop
< * [in] the sl flow label and hop limit of MC Group
< *
< * RETURN VALUES
< * p_sl
< * [out] pointer to the service level
< *
< * p_flow_lbl
< * [out] pointer to the flow label info
< *
< * p_hop
< * [out] pointer to the hop count limit.
< *
< * NOTES
---
* preference
* Indicates the relative merit of this path versus other path
* records returned from the SA. Lower numbers are better.
5236d5612
< * ib_member_rec_t
5239c5615
< /****f* IBA Base: Types/ib_member_set_sl_flow_hop
---
/****f* IBA Base: Types/ib_multipath_rec_num_path
5241c5617
< * ib_member_set_sl_flow_hop
---
* ib_multipath_rec_num_path
5244c5620
< * Set encoded version, sl flow and hop
---
* Get max number of paths to return.
5248,5261c5624,5628
< AL_INLINE ib_net32_t AL_API
< ib_member_set_sl_flow_hop(
< IN const uint8_t sl,
< IN const net32_t flow_lbl,
< IN const uint8_t hop_limit )
< {
< ib_net32_t sl_flow_hop;
<
< sl_flow_hop = sl;
< sl_flow_hop <<= 20;
< sl_flow_hop |= (cl_ntoh32( flow_lbl ) & 0x000FFFFF);
< sl_flow_hop <<= 8;
< sl_flow_hop |= hop_limit;
< return cl_hton32(sl_flow_hop);
---
static inline uint8_t
ib_multipath_rec_num_path(
IN const ib_multipath_rec_t* const p_rec )
{
return( p_rec->num_path &0x7F );
5265,5272c5632,5633
< * sl
< * [in] the service level.
< *
< * flow_lbl
< * [in] the flow label info
< *
< * hop_limit
< * [in] the hop limit.
---
* p_rec
* [in] Pointer to the multipath record object.
5275,5276c5636
< * sl_flow_hop
< * [out] the sl flow label and hop limit
---
* Maximum number of paths to return for each unique SGID_DGID combination.
5281c5641
< * ib_member_rec_t
---
* ib_multipath_rec_t
5284c5644
< /****f* IBA Base: Types/ib_member_get_scope
---
/****f* IBA Base: Types/ib_multipath_rec_sl
5286c5646
< * ib_member_get_scope
---
* ib_multipath_rec_sl
5289c5649
< * Get encoded MGID scope
---
* Get multipath service level.
5293,5295c5653,5655
< AL_INLINE uint8_t AL_API
< ib_member_get_scope(
< IN const uint8_t scope_state )
---
static inline uint8_t
ib_multipath_rec_sl(
IN const ib_multipath_rec_t* const p_rec )
5297c5657
< return (scope_state >> 4);
---
return( (uint8_t)((cl_ntoh16( p_rec->sl )) & 0xF) );
5301,5302c5661,5662
< * scope_state
< * [in] the scope and state
---
* p_rec
* [in] Pointer to the multipath record object.
5305c5665,5667
< * Encoded scope.
---
* SL.
*
* NOTES
5308c5670
< * ib_member_rec_t
---
* ib_multipath_rec_t
5311c5673
< /****f* IBA Base: Types/ib_member_get_state
---
/****f* IBA Base: Types/ib_multipath_rec_mtu
5313c5675
< * ib_member_get_state
---
* ib_multipath_rec_mtu
5316c5678
< * Get encoded MGID JoinState
---
* Get encoded path MTU.
5320,5322c5682,5684
< AL_INLINE uint8_t AL_API
< ib_member_get_state(
< IN const uint8_t scope_state )
---
static inline uint8_t
ib_multipath_rec_mtu(
IN const ib_multipath_rec_t* const p_rec )
5324c5686
< return (scope_state & 0x0f);
---
return( (uint8_t)(p_rec->mtu & IB_MULTIPATH_REC_BASE_MASK) );
5328,5329c5690,5691
< * scope_state
< * [in] the scope and state
---
* p_rec
* [in] Pointer to the multipath record object.
5332c5694,5702
< * Encoded JoinState
---
* Encoded path MTU.
* 1: 256
* 2: 512
* 3: 1024
* 4: 2048
* 5: 4096
* others: reserved
*
* NOTES
5335c5705
< * ib_member_rec_t
---
* ib_multipath_rec_t
5338c5708
< /****f* IBA Base: Types/ib_member_get_scope_state
---
/****f* IBA Base: Types/ib_multipath_rec_mtu_sel
5340c5710
< * ib_member_get_scope_state
---
* ib_multipath_rec_mtu_sel
5343c5713
< * Get encoded MGID scope and JoinState
---
* Get encoded multipath MTU selector.
5347,5351c5717,5719
< AL_INLINE void AL_API
< ib_member_get_scope_state(
< IN const uint8_t scope_state,
< OUT uint8_t* const p_scope,
< OUT uint8_t* const p_state )
---
static inline uint8_t
ib_multipath_rec_mtu_sel(
IN const ib_multipath_rec_t* const p_rec )
5353,5357c5721
< if (p_scope)
< *p_scope = ib_member_get_scope( scope_state );
<
< if (p_state)
< *p_state = ib_member_get_state( scope_state );
---
return( (uint8_t)((p_rec->mtu & IB_MULTIPATH_REC_SELECTOR_MASK) >> 6) );
5361,5362c5725,5726
< * scope_state
< * [in] the scope and state
---
* p_rec
* [in] Pointer to the multipath record object.
5365,5369c5729,5733
< * p_scope
< * [out] pointer to the MGID scope
< *
< * p_state
< * [out] pointer to the join state
---
* Encoded path MTU selector value (for queries).
* 0: greater than MTU specified
* 1: less than MTU specified
* 2: exactly the MTU specified
* 3: largest MTU available
5374c5738
< * ib_member_rec_t
---
* ib_multipath_rec_t
5377c5741
< /****f* IBA Base: Types/ib_member_set_scope
---
/****f* IBA Base: Types/ib_multipath_rec_rate
5379c5743
< * ib_member_set_scope
---
* ib_multipath_rec_rate
5382c5746
< * Set encoded scope of a MCR.
---
* Get encoded multipath rate.
5386,5389c5750,5752
< AL_INLINE void AL_API
< ib_member_set_scope(
< IN OUT uint8_t* const p_scope_state,
< IN const uint8_t scope )
---
static inline uint8_t
ib_multipath_rec_rate(
IN const ib_multipath_rec_t* const p_rec )
5391,5394c5754
< CL_ASSERT( scope <= 0x0F );
< /* Scope is MS 4-bits. */
< *p_scope_state &= 0xF0;
< *p_scope_state |= (scope << 4);
---
return( (uint8_t)(p_rec->rate & IB_MULTIPATH_REC_BASE_MASK) );
5398,5402c5758,5759
< * scope_state
< * [in/out] Pointer to the MCR scope_state field.
< *
< * scope
< * [in] The desired scope.
---
* p_rec
* [in] Pointer to the multipath record object.
5405c5762,5768
< * This function does not return a value.
---
* Encoded multipath rate.
* 2: 2.5 Gb/sec.
* 3: 10 Gb/sec.
* 4: 30 Gb/sec.
* others: reserved
*
* NOTES
5408c5771
< * ib_member_rec_t
---
* ib_multipath_rec_t
5411c5774
< /****f* IBA Base: Types/ib_member_set_state
---
/****f* IBA Base: Types/ib_multipath_rec_rate_sel
5413c5776
< * ib_member_set_state
---
* ib_multipath_rec_rate_sel
5416c5779
< * Set encoded JoinState of a MCR.
---
* Get encoded multipath rate selector.
5420,5423c5783,5785
< AL_INLINE void AL_API
< ib_member_set_state(
< IN OUT uint8_t* const p_scope_state,
< IN const uint8_t state )
---
static inline uint8_t
ib_multipath_rec_rate_sel(
IN const ib_multipath_rec_t* const p_rec )
5425,5428c5787
< CL_ASSERT( state <= 0x0F );
< /* State is LS 4-bits. */
< *p_scope_state &= 0x0F;
< *p_scope_state |= (state & 0x0F);
---
return( (uint8_t)((p_rec->rate & IB_MULTIPATH_REC_SELECTOR_MASK) >> 6) );
5432,5436c5791,5792
< * scope_state
< * [in/out] Pointer to the MCR scope_state field to modify.
< *
< * state
< * [in] the JoinState
---
* p_rec
* [in] Pointer to the multipath record object.
5439c5795,5801
< * This function does not return a value.
---
* Encoded path rate selector value (for queries).
* 0: greater than rate specified
* 1: less than rate specified
* 2: exactly the rate specified
* 3: largest rate available
*
* NOTES
5442c5804
< * ib_member_rec_t
---
* ib_multipath_rec_t
5445c5807
< /****f* IBA Base: Types/ib_member_set_scope_state
---
/****f* IBA Base: Types/ib_multipath_rec_pkt_life
5447c5809
< * ib_member_set_scope_state
---
* ib_multipath_rec_pkt_life
5450c5812
< * Set encoded version, MGID scope and JoinState
---
* Get encoded multipath pkt_life.
5454,5457c5816,5818
< AL_INLINE uint8_t AL_API
< ib_member_set_scope_state(
< IN const uint8_t scope,
< IN const uint8_t state )
---
static inline uint8_t
ib_multipath_rec_pkt_life(
IN const ib_multipath_rec_t* const p_rec )
5459,5460c5820
< /* Scope is MS 4-bits, state is LS 4-bits */
< return ((scope << 4) | (state & 0xF));
---
return( (uint8_t)(p_rec->pkt_life & IB_MULTIPATH_REC_BASE_MASK) );
5464,5468c5824,5825
< * scope
< * [in] the MGID scope
< *
< * state
< * [in] the JoinState
---
* p_rec
* [in] Pointer to the multipath record object.
5471,5472c5828
< * scope_state
< * [out] the encoded one
---
* Encoded multipath pkt_life = 4.096 µsec * 2 ** PacketLifeTime.
5477c5833
< * ib_member_rec_t
---
* ib_multipath_rec_t
5480c5836
< /****f* IBA Base: Types/ib_member_set_join_state
---
/****f* IBA Base: Types/ib_multipath_rec_pkt_life_sel
5482c5838
< * ib_member_set_join_state
---
* ib_multipath_rec_pkt_life_sel
5485c5841
< * Set JoinState
---
* Get encoded multipath pkt_lifetime selector.
5489,5492c5845,5847
< AL_INLINE void AL_API
< ib_member_set_join_state(
< IN OUT ib_member_rec_t *p_mc_rec,
< IN const uint8_t state )
---
static inline uint8_t
ib_multipath_rec_pkt_life_sel(
IN const ib_multipath_rec_t* const p_rec )
5494,5495c5849
< p_mc_rec->scope_state &= 0xF0;
< p_mc_rec->scope_state |= (state & 0x0F);
---
return( (uint8_t)((p_rec->pkt_life & IB_MULTIPATH_REC_SELECTOR_MASK) >> 6 ));
5499,5503c5853,5854
< * p_mc_rec
< * [in] pointer to the member record
< *
< * state
< * [in] the JoinState
---
* p_rec
* [in] Pointer to the multipath record object.
5506c5857,5861
< * NONE
---
* Encoded path pkt_lifetime selector value (for queries).
* 0: greater than rate specified
* 1: less than rate specified
* 2: exactly the rate specified
* 3: smallest packet lifetime available
5511c5866
< * ib_member_rec_t
---
* ib_multipath_rec_t
5514,5515c5869,5877
< /*
< * Join State Codes:
---
#define IB_NUM_PKEY_ELEMENTS_IN_BLOCK 32
/****s* IBA Base: Types/ib_pkey_table_t
* NAME
* ib_pkey_table_t
*
* DESCRIPTION
* IBA defined PKey table. (14.2.5.7)
*
* SYNOPSIS
5517,5519d5878
< #define IB_MC_REC_STATE_FULL_MEMBER 0x01
< #define IB_MC_REC_STATE_NON_MEMBER 0x02
< #define IB_MC_REC_STATE_SEND_ONLY_MEMBER 0x04
5521,5529c5880,5883
< /*
< * Generic MAD notice types
< */
< #define IB_NOTICE_TYPE_FATAL 0x00
< #define IB_NOTICE_TYPE_URGENT 0x01
< #define IB_NOTICE_TYPE_SECURITY 0x02
< #define IB_NOTICE_TYPE_SUBN_MGMT 0x03
< #define IB_NOTICE_TYPE_INFO 0x04
< #define IB_NOTICE_TYPE_EMPTY 0x7F
---
#include <complib/cl_packon.h>
typedef struct _ib_pkey_table
{
ib_net16_t pkey_entry[IB_NUM_PKEY_ELEMENTS_IN_BLOCK];
5530a5885,5887
} PACK_SUFFIX ib_pkey_table_t;
#include <complib/cl_packoff.h>
/************/
5531a5889,5897
/****s* IBA Base: Types/ib_pkey_table_record_t
* NAME
* ib_pkey_table_record_t
*
* DESCRIPTION
* IBA defined P_Key Table Record for SA Query. (15.2.5.11)
*
* SYNOPSIS
*/
5533c5899
< typedef struct _ib_mad_notice_attr
---
typedef struct _ib_pkey_table_record
5535,5545c5901,5906
< /* is_generic:1, type:7, producer type or vendor id:24 */
< net32_t combo1;
< /* trap number or device id, depending on is_generic. */
< net16_t combo2;
<
< net16_t issuer_lid;
< /* notice toggle:1, notice_count:15 */
< net16_t combo3;
<
< uint8_t data_details[54];
< ib_gid_t issuer_gid;
---
ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
uint16_t block_num;
uint8_t port_num; // for switch: port number, for CA: reserved
uint8_t reserved1;
uint16_t reserved2;
ib_pkey_table_t pkey_tbl;
5547c5908
< } PACK_SUFFIX ib_mad_notice_attr_t;
---
} PACK_SUFFIX ib_pkey_table_record_t;
5548a5910
/************/
5550c5912,5914
< /****f* IBA Base: Types/ib_notice_get_generic
---
#define IB_DROP_VL 15
#define IB_MAX_NUM_VLS 16
/****s* IBA Base: Types/ib_slvl_table_t
5552c5916
< * ib_notice_get_generic
---
* ib_slvl_table_t
5555c5919
< * Retrieves whether a notice trap is generic.
---
* IBA defined SL2VL Mapping Table Attribute. (14.2.5.8)
5559,5561c5923,5924
< AL_INLINE boolean_t AL_API
< ib_notice_get_generic(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
#include <complib/cl_packon.h>
typedef struct _ib_slvl_table
5563,5574c5926,5933
< if( cl_ntoh32( p_notice_attr->combo1 ) & 0x00000001 )
< return TRUE;
< return FALSE;
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in] Pointer to the notice attribute structure for which to return
< * whether it is generic or not.
< *
< * RETURN VALUES
< * Returns TRUE if the notice is generic.
---
uint8_t raw_vl_by_sl[IB_MAX_NUM_VLS/2];
} PACK_SUFFIX ib_slvl_table_t;
#include <complib/cl_packoff.h>
/************/
/****s* IBA Base: Types/ib_slvl_table_record_t
* NAME
* ib_slvl_table_record_t
5576c5935,5936
< * Returns FALSE if the notice is vendor specific.
---
* DESCRIPTION
* IBA defined SL to VL Mapping Table Record for SA Query. (15.2.5.4)
5578,5580c5938,5947
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_set_generic
< *********/
---
* SYNOPSIS
*/
#include <complib/cl_packon.h>
typedef struct _ib_slvl_table_record
{
ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
uint8_t in_port_num; // reserved for CAs
uint8_t out_port_num; // reserved for CAs
uint32_t resv;
ib_slvl_table_t slvl_tbl;
5582c5949,5953
< /****f* IBA Base: Types/ib_notice_set_generic
---
} PACK_SUFFIX ib_slvl_table_record_t;
#include <complib/cl_packoff.h>
/************/
/****f* IBA Base: Types/ib_slvl_table_set
5584c5955
< * ib_notice_set_generic
---
* ib_slvl_table_set
5587c5958
< * Sets whether a notice trap is generic.
---
* Set slvl table entry.
5591,5594c5962,5966
< AL_INLINE void AL_API
< ib_notice_set_generic(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const boolean_t is_generic )
---
static inline void
ib_slvl_table_set(
IN ib_slvl_table_t* p_slvl_tbl,
IN uint8_t sl_index,
IN uint8_t vl )
5596c5968,5970
< uint32_t val;
---
uint8_t idx = sl_index/2;
CL_ASSERT(vl <= 15);
CL_ASSERT(sl_index <= 15);
5598,5600c5972,5976
< val = cl_ntoh32( p_notice_attr->combo1 );
< if( is_generic )
< val |= 0x00000001;
---
if (sl_index%2)
{
/* this is an odd sl. Need to update the ls bits */
p_slvl_tbl->raw_vl_by_sl[idx] = ( p_slvl_tbl->raw_vl_by_sl[idx] & 0xF0 ) | vl ;
}
5602,5603c5978,5981
< val &= 0xFFFFFFFE;
< p_notice_attr->combo1 = cl_hton32( val );
---
{
/* this is an even sl. Need to update the ms bits */
p_slvl_tbl->raw_vl_by_sl[idx] = ( vl << 4 ) | ( p_slvl_tbl->raw_vl_by_sl[idx] & 0x0F );
}
5607,5609c5985,5989
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure for which to set
< * the generic bit.
---
* p_slvl_tbl
* [in] pointer to ib_slvl_table_t object.
*
* sl_index
* [in] the sl index in the table to be updated.
5611,5612c5991,5992
< * is_generic
< * [in] TRUE if the notice is generic, FALSE if vendor specific.
---
* vl
* [in] the vl value to update for that sl.
5615c5995,5997
< * This function does not return a value.
---
* None
*
* NOTES
5618c6000
< * ib_mad_notice_attr_t, ib_notice_get_generic
---
* ib_slvl_table_t
5621c6003
< /****f* IBA Base: Types/ib_notice_get_type
---
/****f* IBA Base: Types/ib_slvl_table_get
5623c6005
< * ib_notice_get_type
---
* ib_slvl_table_get
5626c6008
< * Retrieves the type of a notice trap.
---
* Get slvl table entry.
5630,5632c6012,6020
< AL_INLINE uint8_t AL_API
< ib_notice_get_type(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
static inline uint8_t
ib_slvl_table_get(
IN const ib_slvl_table_t* p_slvl_tbl,
IN uint8_t sl_index )
{
uint8_t idx = sl_index/2;
CL_ASSERT(sl_index <= 15);
if (sl_index%2)
5634c6022,6029
< return (uint8_t)((cl_ntoh32( p_notice_attr->combo1 ) >> 1) & 0x0000007F);
---
/* this is an odd sl. Need to return the ls bits. */
return ( p_slvl_tbl->raw_vl_by_sl[idx] & 0x0F );
}
else
{
/* this is an even sl. Need to return the ms bits. */
return ( (p_slvl_tbl->raw_vl_by_sl[idx] & 0xF0) >> 4 );
}
5638,5639c6033,6037
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose type to return.
---
* p_slvl_tbl
* [in] pointer to ib_slvl_table_t object.
*
* sl_index
* [in] the sl index in the table whose value should be returned.
5642c6040,6042
< * Returns the type of the notice.
---
* vl for the requested sl_index.
*
* NOTES
5645c6045
< * ib_mad_notice_attr_t, ib_notice_set_type
---
* ib_slvl_table_t
5648c6048
< /****f* IBA Base: Types/ib_notice_set_type
---
/****s* IBA Base: Types/ib_vl_arb_element_t
5650c6050
< * ib_notice_set_type
---
* ib_vl_arb_element_t
5653c6053
< * Sets the type of a notice trap.
---
* IBA defined VL Arbitration Table Element. (14.2.5.9)
5657,5660c6057,6058
< AL_INLINE void AL_API
< ib_notice_set_type(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint8_t type )
---
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_element
5662c6060,6061
< uint32_t val;
---
uint8_t vl;
uint8_t weight;
5664,5684c6063,6065
< val = cl_ntoh32( p_notice_attr->combo1 );
< /* Clear the type. */
< val &= 0xFFFFFF01;
< /* Set new value. */
< val |= (((uint32_t)(type & 0x7F)) << 1);
< p_notice_attr->combo1 = cl_hton32( val );
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure whose type to set.
< *
< * type
< * [in] Type of notice trap.
< *
< * RETURN VALUES
< * This function does not return a value.
< *
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_get_type
< *********/
---
} PACK_SUFFIX ib_vl_arb_element_t;
#include <complib/cl_packoff.h>
/************/
5686c6067,6068
< /****f* IBA Base: Types/ib_notice_get_prod_type
---
#define IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK 32
/****s* IBA Base: Types/ib_vl_arb_table_t
5688c6070
< * ib_notice_get_prod_type
---
* ib_vl_arb_table_t
5691c6073
< * Retrieves the producer type from a generic notice trap.
---
* IBA defined VL Arbitration Table. (14.2.5.9)
5695,5697c6077,6078
< AL_INLINE uint32_t AL_API
< ib_notice_get_prod_type(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_table
5699,5712c6080,6084
< return (cl_ntoh32( p_notice_attr->combo1 ) >> 8);
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * prducer type to return.
< *
< * RETURN VALUES
< * Returns the producer type of the notice, in host byte order.
< *
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_set_prod_type
< *********/
---
ib_vl_arb_element_t vl_entry[IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK];
} PACK_SUFFIX ib_vl_arb_table_t;
#include <complib/cl_packoff.h>
/************/
5714c6086
< /****f* IBA Base: Types/ib_notice_set_prod_type
---
/****s* IBA Base: Types/ib_vl_arb_table_record_t
5716c6088
< * ib_notice_set_prod_type
---
* ib_vl_arb_table_record_t
5719c6091
< * Sets the producer type of a generic notice trap.
---
* IBA defined VL Arbitration Table Record for SA Query. (15.2.5.9)
5723,5726c6095,6096
< AL_INLINE void AL_API
< ib_notice_set_prod_type(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint32_t prod_type )
---
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_table_record
5728c6098,6106
< uint32_t val;
---
ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
uint8_t port_num;
uint8_t block_num;
uint32_t reserved;
ib_vl_arb_table_t vl_arb_tbl;
} PACK_SUFFIX ib_vl_arb_table_record_t;
#include <complib/cl_packoff.h>
/************/
5730,5736d6107
< val = cl_ntoh32( p_notice_attr->combo1 );
< /* Clear the type. */
< val &= 0x000000FF;
< /* Set new value. */
< val |= (prod_type << 8);
< p_notice_attr->combo1 = cl_hton32( val );
< }
5738,5751c6109,6119
< * PARAMETERS
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose producer type to set.
< *
< * prod_type
< * [in] Producer type of notice trap.
< *
< * RETURN VALUES
< * This function does not return a value.
< *
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_get_prod_type
< *********/
---
* Global route header information received with unreliable datagram messages
*/
#include <complib/cl_packon.h>
typedef struct _ib_grh
{
ib_net32_t ver_class_flow;
ib_net16_t resv1;
uint8_t resv2;
uint8_t hop_limit;
ib_gid_t src_gid;
ib_gid_t dest_gid;
5753c6121,6124
< /****f* IBA Base: Types/ib_notice_get_vend_id
---
} PACK_SUFFIX ib_grh_t;
#include <complib/cl_packoff.h>
/****f* IBA Base: Types/ib_grh_get_ver_class_flow
5755c6126
< * ib_notice_get_vend_id
---
* ib_grh_get_ver_class_flow
5758c6129
< * Retrieves the vendor ID from a vendor specific notice trap.
---
* Get encoded version, traffic class and flow label in grh
5762,5764c6133,6138
< AL_INLINE uint32_t AL_API
< ib_notice_get_vend_id(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
static inline void
ib_grh_get_ver_class_flow(
IN const ib_net32_t ver_class_flow,
OUT uint8_t* const p_ver,
OUT uint8_t* const p_tclass,
OUT uint32_t* const p_flow_lbl )
5766c6140,6153
< return ib_notice_get_prod_type( p_notice_attr );
---
ib_net32_t tmp_ver_class_flow;
if (p_ver)
*p_ver = (uint8_t)(ver_class_flow & 0x0f);
tmp_ver_class_flow = ver_class_flow >> 4;
if (p_tclass)
*p_tclass = (uint8_t)(tmp_ver_class_flow & 0xff);
tmp_ver_class_flow = tmp_ver_class_flow >> 8;
if (p_flow_lbl)
*p_flow_lbl = tmp_ver_class_flow & 0xfffff;
5770,5772c6157,6158
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * vendor ID to return.
---
* ver_class_flow
* [in] the version, traffic class and flow label info.
5775c6161,6170
< * Returns the vendor ID of the notice, in host byte order.
---
* p_ver
* [out] pointer to the version info.
*
* p_tclass
* [out] pointer to the traffic class info.
*
* p_flow_lbl
* [out] pointer to the flow label info
*
* NOTES
5778c6173
< * ib_mad_notice_attr_t, ib_notice_set_vend_id
---
* ib_grh_t
5781c6176
< /****f* IBA Base: Types/ib_notice_set_vend_id
---
/****f* IBA Base: Types/ib_grh_set_ver_class_flow
5783c6178
< * ib_notice_set_vend_id
---
* ib_grh_set_ver_class_flow
5786c6181
< * Sets the vendor ID of a vendor specific notice trap.
---
* Set encoded version, traffic class and flow label in grh
5790,5793c6185,6189
< AL_INLINE void AL_API
< ib_notice_set_vend_id(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint32_t vend_id )
---
static inline ib_net32_t
ib_grh_set_ver_class_flow(
IN const uint8_t ver,
IN const uint8_t tclass,
IN const uint32_t flow_lbl )
5795c6191,6198
< ib_notice_set_prod_type( p_notice_attr, vend_id );
---
ib_net32_t ver_class_flow;
ver_class_flow = flow_lbl;
ver_class_flow = ver_class_flow << 8;
ver_class_flow = ver_class_flow | tclass;
ver_class_flow = ver_class_flow << 4;
ver_class_flow = ver_class_flow | ver;
return (ver_class_flow);
5799,5801c6202,6203
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose vendor ID to set.
---
* ver
* [in] the version info.
5803,5804c6205,6209
< * vend_id
< * [in] Vendor ID of notice trap.
---
* tclass
* [in] the traffic class info.
*
* flow_lbl
* [in] the flow label info
5807c6212,6215
< * This function does not return a value.
---
* ver_class_flow
* [out] the version, traffic class and flow label info.
*
* NOTES
5810c6218
< * ib_mad_notice_attr_t, ib_notice_get_vend_id
---
* ib_grh_t
5813c6221
< /****f* IBA Base: Types/ib_notice_get_trap_num
---
/****s* IBA Base: Types/ib_member_rec_t
5815c6223
< * ib_notice_get_trap_num
---
* ib_member_rec_t
5818c6226,6227
< * Retrieves the trap number from a generic notice trap.
---
* Multicast member record, used to create, join, and leave multicast
* groups.
5822,5824c6231,6232
< AL_INLINE uint16_t AL_API
< ib_notice_get_trap_num(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
#include <complib/cl_packon.h>
typedef struct _ib_member_rec
5826,5827c6234,6250
< return cl_ntoh16( p_notice_attr->combo2 );
< }
---
ib_gid_t mgid;
ib_gid_t port_gid;
ib_net32_t qkey;
ib_net16_t mlid;
uint8_t mtu;
uint8_t tclass;
ib_net16_t pkey;
uint8_t rate;
uint8_t pkt_life;
ib_net32_t sl_flow_hop;
uint8_t scope_state;
uint8_t proxy_join:1;
uint8_t reserved[2];
uint8_t pad[4];
} PACK_SUFFIX ib_member_rec_t;
#include <complib/cl_packoff.h>
5829,5832c6252,6254
< * PARAMETERS
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * trap number to return.
---
* FIELDS
* mgid
* Multicast GID address for this multicast group.
5834,5835c6256,6257
< * RETURN VALUES
< * Returns the vendor ID of the notice, in host byte order.
---
* port_gid
* Valid GID of the endpoint joining this multicast group.
5837,5843c6259,6260
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_set_trap_num
< *********/
<
< /****f* IBA Base: Types/ib_notice_set_trap_num
< * NAME
< * ib_notice_set_trap_num
---
* qkey
* Q_Key to be sued by this multicast group.
5845,5846c6262,6263
< * DESCRIPTION
< * Sets the trap number of a generic notice trap.
---
* mlid
* Multicast LID for this multicast group.
5848,5861c6265,6266
< * SYNOPSIS
< */
< AL_INLINE void AL_API
< ib_notice_set_trap_num(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint16_t trap_num )
< {
< p_notice_attr->combo2 = cl_hton16( trap_num );
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose trap number to set.
---
* mtu
* MTU and MTU selector fields to use on this path
5863,5864c6268,6269
< * trap_num
< * [in] Trap number to set.
---
* tclass
* Another global routing parameter.
5866,5867c6271,6272
< * RETURN VALUES
< * This function does not return a value.
---
* pkey
* Partition key (P_Key) to use for this member.
5869,5875c6274,6275
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_get_trap_num
< *********/
<
< /****f* IBA Base: Types/ib_notice_get_dev_id
< * NAME
< * ib_notice_get_dev_id
---
* rate
* Rate and rate selector fields to use on this path.
5877,5878c6277,6278
< * DESCRIPTION
< * Retrieves the device ID from a vendor specific notice trap.
---
* pkt_life
* Packet lifetime
5880,5892c6280,6281
< * SYNOPSIS
< */
< AL_INLINE uint16_t AL_API
< ib_notice_get_dev_id(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
< {
< return ib_notice_get_trap_num( p_notice_attr );
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * device ID to return.
---
* sl_flow_hop
* Global routing parameters: service level, hop count, and flow label.
5894,5895c6283,6287
< * RETURN VALUES
< * Returns the vendor ID of the notice, in host byte order.
---
* scope_state
* MGID scope and JoinState of multicast request.
*
* proxy_join
* Enables others in the Partition to proxy add/remove from the group
5898d6289
< * ib_mad_notice_attr_t, ib_notice_set_dev_id
5901c6292
< /****f* IBA Base: Types/ib_notice_set_dev_id
---
/****f* IBA Base: Types/ib_member_get_sl_flow_hop
5903c6294
< * ib_notice_set_dev_id
---
* ib_member_get_sl_flow_hop
5906c6297
< * Sets the producer type of a vendor specific notice trap.
---
* Get encoded sl, flow label, and hop limit
5910,5913c6301,6306
< AL_INLINE void AL_API
< ib_notice_set_dev_id(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint16_t dev_id )
---
static inline void
ib_member_get_sl_flow_hop(
IN const ib_net32_t sl_flow_hop,
OUT uint8_t* const p_sl,
OUT uint32_t* const p_flow_lbl,
OUT uint8_t* const p_hop )
5915c6308,6320
< ib_notice_set_trap_num( p_notice_attr, dev_id );
---
uint32_t tmp;
tmp = cl_ntoh32(sl_flow_hop);
if (p_hop)
*p_hop = (uint8_t)tmp;
tmp >>= 8;
if (p_flow_lbl)
*p_flow_lbl = (uint32_t)(tmp & 0xfffff);
tmp >>= 20;
if (p_sl)
*p_sl = (uint8_t)tmp;
5919,5924c6324,6325
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose device ID to set.
< *
< * dev_id
< * [in] Device ID of notice trap.
---
* sl_flow_hop
* [in] the sl, flow label, and hop limit of MC Group
5927c6328,6337
< * This function does not return a value.
---
* p_sl
* [out] pointer to the service level
*
* p_flow_lbl
* [out] pointer to the flow label info
*
* p_hop
* [out] pointer to the hop count limit.
*
* NOTES
5930c6340
< * ib_mad_notice_attr_t, ib_notice_get_dev_id
---
* ib_member_rec_t
5933c6343
< /****f* IBA Base: Types/ib_notice_get_toggle
---
/****f* IBA Base: Types/ib_member_set_sl_flow_hop
5935c6345
< * ib_notice_get_toggle
---
* ib_member_set_sl_flow_hop
5938c6348
< * Retrieves the notice toggle bit from a notice trap.
---
* Set encoded sl, flow label, and hop limit
5942,5944c6352,6356
< AL_INLINE boolean_t AL_API
< ib_notice_get_toggle(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
static inline ib_net32_t
ib_member_set_sl_flow_hop(
IN const uint8_t sl,
IN const uint32_t flow_label,
IN const uint8_t hop_limit )
5946c6358,6361
< return (cl_ntoh16( p_notice_attr->combo3 ) & 0x0001);
---
uint32_t tmp;
tmp = (sl << 28) | ((flow_label & 0xfffff) << 8) | hop_limit;
return cl_hton32(tmp);
5950,5952c6365,6372
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * notice toggle bit value to return.
---
* sl
* [in] the service level.
*
* flow_lbl
* [in] the flow label info
*
* hop_limit
* [in] the hop limit.
5955c6375,6376
< * Returns TRUE if the notice toggle bit of the notice is set.
---
* sl_flow_hop
* [out] the sl, flow label, and hop limit
5957c6378
< * Returns FALSE otherwise.
---
* NOTES
5960c6381
< * ib_mad_notice_attr_t, ib_notice_set_toggle
---
* ib_member_rec_t
5963c6384
< /****f* IBA Base: Types/ib_notice_set_toggle
---
/****f* IBA Base: Types/ib_member_get_scope_state
5965c6386
< * ib_notice_set_toggle
---
* ib_member_get_scope_state
5968c6389
< * Sets the notice toggle bit of a notice trap.
---
* Get encoded MGID scope and JoinState
5972,5975c6393,6397
< AL_INLINE void AL_API
< ib_notice_set_toggle(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const boolean_t toggle_val )
---
static inline void
ib_member_get_scope_state(
IN const uint8_t scope_state,
OUT uint8_t* const p_scope,
OUT uint8_t* const p_state )
5977,5983c6399,6408
< uint16_t val;
< val = cl_ntoh16( p_notice_attr->combo3 );
< if( toggle_val )
< val |= 0x0001;
< else
< val &= 0xFFFE;
< p_notice_attr->combo3 = cl_hton16( val );
---
uint8_t tmp_scope_state;
if (p_state)
*p_state = (uint8_t)(scope_state & 0x0f);
tmp_scope_state = scope_state >> 4;
if (p_scope)
*p_scope = (uint8_t)(tmp_scope_state & 0x0f);
5987,5993c6412,6413
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose notice toggle bit to set or clear.
< *
< * toggle_val
< * [in] Boolean value indicating whether the toggle bit of the notice
< * should be set or cleared.
---
* scope_state
* [in] the scope and state
5996c6416,6422
< * This function does not return a value.
---
* p_scope
* [out] pointer to the MGID scope
*
* p_state
* [out] pointer to the join state
*
* NOTES
5999c6425
< * ib_mad_notice_attr_t, ib_notice_get_toggle
---
* ib_member_rec_t
6002c6428
< /****f* IBA Base: Types/ib_notice_get_count
---
/****f* IBA Base: Types/ib_member_set_scope_state
6004c6430
< * ib_notice_get_count
---
* ib_member_set_scope_state
6007c6433
< * Retrieves the notice toggle count from a notice trap.
---
* Set encoded version, MGID scope and JoinState
6011,6013c6437,6440
< AL_INLINE boolean_t AL_API
< ib_notice_get_count(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
static inline uint8_t
ib_member_set_scope_state(
IN const uint8_t scope,
IN const uint8_t state )
6015c6442,6447
< return ((cl_ntoh16( p_notice_attr->combo3 ) & 0xFFFE) >> 1);
---
uint8_t scope_state;
scope_state = scope;
scope_state = scope_state << 4;
scope_state = scope_state | state;
return (scope_state);
6019,6021c6451,6455
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * notice toggle count to return.
---
* scope
* [in] the MGID scope
*
* state
* [in] the JoinState
6024c6458,6461
< * Returns the notice toggle count of the notice.
---
* scope_state
* [out] the encoded one
*
* NOTES
6027c6464
< * ib_mad_notice_attr_t, ib_notice_set_count
---
* ib_member_rec_t
6030c6467
< /****f* IBA Base: Types/ib_notice_set_count
---
/****f* IBA Base: Types/ib_member_set_join_state
6032c6469
< * ib_notice_set_count
---
* ib_member_set_join_state
6035c6472
< * Sets the toggle count of a notice trap.
---
* Set JoinState
6039,6042c6476,6479
< AL_INLINE void AL_API
< ib_notice_set_count(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint16_t toggle_cnt )
---
static inline void
ib_member_set_join_state(
IN OUT ib_member_rec_t *p_mc_rec,
IN const uint8_t state )
6044,6048c6481,6482
< uint16_t val;
< val = cl_ntoh16( p_notice_attr->combo3 );
< val &= 0x0001;
< val |= (toggle_cnt << 1);
< p_notice_attr->combo3 = cl_hton16( val );
---
/* keep the scope as it is */
p_mc_rec->scope_state = (p_mc_rec->scope_state & 0xF0) | (0x0f & state);
6052,6054c6486,6487
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose device ID to set.
---
* p_mc_rec
* [in] pointer to the member record
6056,6057c6489,6490
< * toggle_cnt
< * [in] Toggle count value of the notice.
---
* state
* [in] the JoinState
6060c6493,6495
< * This function does not return a value.
---
* NONE
*
* NOTES
6063c6498
< * ib_mad_notice_attr_t, ib_notice_get_count
---
* ib_member_rec_t
6065a6501,6518
/*
*/
#define IB_MC_REC_STATE_FULL_MEMBER 0x01
#define IB_MC_REC_STATE_NON_MEMBER 0x02
#define IB_MC_REC_STATE_SEND_ONLY_MEMBER 0x04
/*
* Generic MAD notice types
*/
#define IB_NOTICE_TYPE_FATAL 0x00
#define IB_NOTICE_TYPE_URGENT 0x01
#define IB_NOTICE_TYPE_SECURITY 0x02
#define IB_NOTICE_TYPE_SUBN_MGMT 0x03
#define IB_NOTICE_TYPE_INFO 0x04
#define IB_NOTICE_TYPE_EMPTY 0x7F
6067c6520
< typedef struct _ib_inform_info
---
typedef struct _ib_mad_notice_attr // Total Size calc Accumulated
6069c6522
< ib_gid_t gid;
---
uint8_t generic_type; // 1 1
6071,6078c6524,6531
< ib_net16_t lid_range_begin;
< ib_net16_t lid_range_end;
< // EZ: not v1.1 ib_net16_t pkey;
< ib_net16_t reserved;
< uint8_t is_generic;
< uint8_t subscribe;
< // EZ: not v1.1 ib_net16_t class_range;
< ib_net16_t trap_type;
---
union _notice_g_or_v
{
struct _notice_generic // 5 6
{
uint8_t prod_type_msb;
ib_net16_t prod_type_lsb;
ib_net16_t trap_num;
} PACK_SUFFIX generic;
6080,6085c6533,6539
< /* trap num or dev_id */
< ib_net16_t combo1;
< /* QPN:24, resv:3, resp_time_val:5 */
< ib_net32_t combo2;
< /* resv:8, producer type or vendor id:24 */
< ib_net32_t combo3;
---
struct _notice_vend
{
uint8_t vend_id_msb;
ib_net16_t vend_id_lsb;
ib_net16_t dev_id;
} PACK_SUFFIX vend;
} g_or_v;
6087,6088c6541,6565
< } PACK_SUFFIX ib_inform_info_t;
< #include <complib/cl_packoff.h>
---
ib_net16_t issuer_lid; // 2 8
ib_net16_t toggle_count; // 2 10
union _data_details // 54 64
{
struct _raw_data
{
uint8_t details[54];
} PACK_SUFFIX raw_data;
struct _ntc_64_67
{
uint8_t res[6];
ib_gid_t gid; // the Node or Multicast Group that came in/out
} PACK_SUFFIX ntc_64_67;
struct _ntc_128 {
ib_net16_t sw_lid; // the sw lid of which link state changed
} PACK_SUFFIX ntc_128;
struct _ntc_129_131 {
ib_net16_t pad;
ib_net16_t lid; // lid and port number of the violation
uint8_t port_num;
} PACK_SUFFIX ntc_129_131;
6089a6567,6629
struct _ntc_144 {
ib_net16_t pad1;
ib_net16_t lid; // lid where capability mask changed
ib_net16_t pad2;
ib_net32_t new_cap_mask; // new capability mask
} PACK_SUFFIX ntc_144;
struct _ntc_145 {
ib_net16_t pad1;
ib_net16_t lid; // lid where sys guid changed
ib_net16_t pad2;
ib_net64_t new_sys_guid; // new system image guid
} PACK_SUFFIX ntc_145;
struct _ntc_256 { // total: 54
ib_net16_t pad1; // 2
ib_net16_t lid; // 2
ib_net16_t pad2; // 2
uint8_t method; // 1
uint8_t pad3; // 1
ib_net16_t attr_id; // 2
ib_net32_t attr_mod; // 4
ib_net64_t mkey; // 8
uint8_t dr_slid; // 1
uint8_t dr_trunc_hop; // 1
uint8_t dr_rtn_path[30]; // 30
} PACK_SUFFIX ntc_256;
struct _ntc_257_258 // violation of p/q_key // 49
{
ib_net16_t pad1; // 2
ib_net16_t lid1; // 2
ib_net16_t lid2; // 2
ib_net32_t key; // 2
uint8_t sl; // 1
ib_net32_t qp1; // 4
ib_net32_t qp2; // 4
ib_gid_t gid1; // 16
ib_gid_t gid2; // 16
} PACK_SUFFIX ntc_257_258;
struct _ntc_259 // p/q_key violation with sw info 53
{
ib_net16_t data_valid; // 2
ib_net16_t lid1; // 2
ib_net16_t lid2; // 2
ib_net32_t key; // 4
uint8_t sl; // 1
ib_net32_t qp1; // 4
uint8_t qp2_msb; // 1
ib_net16_t qp2_lsb; // 2
ib_gid_t gid1; // 16
ib_gid_t gid2; // 16
ib_net16_t sw_lid; // 2
uint8_t port_no; // 1
} PACK_SUFFIX ntc_259;
} data_details;
ib_gid_t issuer_gid; // 16 80
} PACK_SUFFIX ib_mad_notice_attr_t;
#include <complib/cl_packoff.h>
6091c6631
< /****f* IBA Base: Types/ib_inform_get_trap_num
---
/****f* IBA Base: Types/ib_notice_is_generic
6093c6633
< * ib_inform_get_trap_num
---
* ib_notice_is_generic
6096c6636
< * Retrieves the trap number from an inform info structure.
---
* Check if the notice is generic
6100,6102c6640,6642
< AL_INLINE uint16_t AL_API
< ib_inform_get_trap_num(
< IN const ib_inform_info_t* const p_inform_info )
---
static inline boolean_t
ib_notice_is_generic(
IN const ib_mad_notice_attr_t *p_ntc)
6104c6644
< return cl_ntoh16( p_inform_info->combo1 );
---
return (p_ntc->generic_type & 0x80);
6108,6110c6648,6649
< * p_inform_info
< * [in] Pointer to the inform info structure whose
< * trap number to return.
---
* p_ntc
* [in] Pointer to the notice MAD attribute
6113c6652
< * Returns the trap number of the infrom info, in host byte order.
---
* TRUE if mad is generic
6116c6655
< * ib_inform_info_t, ib_inform_set_trap_num
---
* ib_mad_notice_attr_t
6119c6658
< /****f* IBA Base: Types/ib_inform_set_trap_num
---
/****f* IBA Base: Types/ib_notice_get_type
6121c6660
< * ib_inform_set_trap_num
---
* ib_notice_get_type
6124c6663
< * Sets the trap number of an inform info structure.
---
* Get the notice type
6128,6131c6667,6669
< AL_INLINE void AL_API
< ib_inform_set_trap_num(
< IN OUT ib_inform_info_t* const p_inform_info,
< IN const uint16_t trap_num )
---
static inline uint8_t
ib_notice_get_type(
IN const ib_mad_notice_attr_t *p_ntc)
6133c6671
< p_inform_info->combo1 = cl_hton16( trap_num );
---
return p_ntc->generic_type & 0x7f;
6137,6142c6675,6676
< * p_inform_info
< * [in/out] Pointer to the inform info structure
< * whose trap number to set.
< *
< * trap_num
< * [in] Trap number to set.
---
* p_ntc
* [in] Pointer to the notice MAD attribute
6145c6679
< * This function does not return a value.
---
* TRUE if mad is generic
6148c6682
< * ib_inform_info_t, ib_inform_get_trap_num
---
* ib_mad_notice_attr_t
6151c6685
< /****f* IBA Base: Types/ib_inform_get_dev_id
---
/****f* IBA Base: Types/ib_notice_get_prod_type
6153c6687
< * ib_inform_get_dev_id
---
* ib_notice_get_prod_type
6156c6690
< * Retrieves the device ID from a vendor specific inform trap.
---
* Get the notice Producer Type of Generic Notice
6160,6162c6694,6696
< AL_INLINE uint16_t AL_API
< ib_inform_get_dev_id(
< IN const ib_inform_info_t* const p_inform_info )
---
static inline ib_net32_t
ib_notice_get_prod_type(
IN const ib_mad_notice_attr_t *p_ntc)
6164c6698,6701
< return ib_inform_get_trap_num( p_inform_info );
---
uint32_t pt;
pt = cl_ntoh16(p_ntc->g_or_v.generic.prod_type_lsb) |
(p_ntc->g_or_v.generic.prod_type_msb << 16);
return cl_hton32(pt);
6168,6170c6705,6706
< * p_inform_info
< * [in] Pointer to the inform info structure whose
< * device ID to return.
---
* p_ntc
* [in] Pointer to the notice MAD attribute
6173c6709
< * Returns the vendor ID of the inform info, in host byte order.
---
* The producer type
6176c6712
< * ib_inform_info_t, ib_inform_set_dev_id
---
* ib_mad_notice_attr_t
6179c6715
< /****f* IBA Base: Types/ib_inform_set_dev_id
---
/****f* IBA Base: Types/ib_notice_set_prod_type
6181c6717
< * ib_inform_set_dev_id
---
* ib_notice_set_prod_type
6184c6720
< * Sets the producer type of a vendor specific inform trap.
---
* Set the notice Producer Type of Generic Notice
6188,6191c6724,6727
< AL_INLINE void AL_API
< ib_inform_set_dev_id(
< IN OUT ib_inform_info_t* const p_inform_info,
< IN const uint16_t dev_id )
---
static inline void
ib_notice_set_prod_type(
IN ib_mad_notice_attr_t *p_ntc,
IN ib_net32_t prod_type_val)
6193c6729,6731
< ib_inform_set_trap_num( p_inform_info, dev_id );
---
uint32_t ptv = cl_ntoh32(prod_type_val);
p_ntc->g_or_v.generic.prod_type_lsb = cl_hton16((uint16_t)(ptv & 0x0000ffff));
p_ntc->g_or_v.generic.prod_type_msb = (uint8_t)( (ptv & 0x00ff0000) >> 16);
6197,6199c6735,6736
< * p_inform_info
< * [in/out] Pointer to the inform info structure
< * whose device ID to set.
---
* p_ntc
* [in] Pointer to the notice MAD attribute
6201,6202c6738,6739
< * dev_id
< * [in] Device ID of inform trap.
---
* prod_type
* [in] The producer Type code
6205c6742
< * This function does not return a value.
---
* None
6208c6745
< * ib_inform_info_t, ib_inform_get_dev_id
---
* ib_mad_notice_attr_t
6211c6748
< /****f* IBA Base: Types/ib_inform_get_qpn
---
/****f* IBA Base: Types/ib_notice_get_vend_id
6213c6750
< * ib_inform_get_qpn
---
* ib_notice_get_vend_id
6216c6753
< * Retrieves the QPN from an inform info structure.
---
* Get the Vendor Id of Vendor type Notice
6220,6222c6757,6759
< AL_INLINE net32_t AL_API
< ib_inform_get_qpn(
< IN const ib_inform_info_t* const p_inform_info )
---
static inline ib_net32_t
ib_notice_get_vend_id(
IN const ib_mad_notice_attr_t *p_ntc)
6224c6761,6764
< return (p_inform_info->combo2 & CL_NTOH32( 0x00FFFFFF ));
---
uint32_t vi;
vi = cl_ntoh16(p_ntc->g_or_v.vend.vend_id_lsb) |
(p_ntc->g_or_v.vend.vend_id_msb << 16);
return cl_hton32(vi);
6228,6230c6768,6769
< * p_inform_info
< * [in] Pointer to the inform info structure whose
< * QPN to return.
---
* p_ntc
* [in] Pointer to the notice MAD attribute
6233c6772
< * Returns the QPN of the infrom info.
---
* The Vendor Id of Vendor type Notice
6236c6775
< * ib_inform_info_t, ib_inform_set_qpn
---
* ib_mad_notice_attr_t
6239c6778
< /****f* IBA Base: Types/ib_inform_set_qpn
---
/****f* IBA Base: Types/ib_notice_set_vend_id
6241c6780
< * ib_inform_set_qpn
---
* ib_notice_set_vend_id
6244c6783
< * Sets the QPN of an inform info structure.
---
* Set the notice Producer Type of Generic Notice
6248,6251c6787,6790
< AL_INLINE void AL_API
< ib_inform_set_qpn(
< IN OUT ib_inform_info_t* const p_inform_info,
< IN const net32_t qpn )
---
static inline void
ib_notice_set_vend_id(
IN ib_mad_notice_attr_t *p_ntc,
IN ib_net32_t vend_id)
6253,6254c6792,6794
< p_inform_info->combo2 &= CL_NTOH32( 0xFF000000 );
< p_inform_info->combo2 |= (qpn & CL_NTOH32( 0x00FFFFFF ));
---
uint32_t vi = cl_ntoh32(vend_id);
p_ntc->g_or_v.vend.vend_id_lsb = cl_hton16((uint16_t)(vi & 0x0000ffff));
p_ntc->g_or_v.vend.vend_id_msb = (uint8_t)((vi & 0x00ff0000) >> 16);
6258,6260c6798,6799
< * p_inform_info
< * [in/out] Pointer to the inform info structure
< * whose QPN to set.
---
* p_ntc
* [in] Pointer to the notice MAD attribute
6262,6263c6801,6802
< * qpn
< * [in] QPN of the inform info.
---
* vend_id
* [in] The producer Type code
6266c6805
< * This function does not return a value.
---
* None
6269c6808
< * ib_inform_info_t, ib_inform_get_qpn
---
* ib_mad_notice_attr_t
6272,6283c6811,6812
< /****f* IBA Base: Types/ib_inform_get_resp_time_val
< * NAME
< * ib_inform_get_resp_time_val
< *
< * DESCRIPTION
< * Retrieves the response time value from an inform info structure.
< *
< * SYNOPSIS
< */
< AL_INLINE uint8_t AL_API
< ib_inform_get_resp_time_val(
< IN const ib_inform_info_t* const p_inform_info )
---
#include <complib/cl_packon.h>
typedef struct _ib_inform_info
6285,6298c6814,6839
< return (uint8_t)(cl_ntoh32( p_inform_info->combo2 ) >> 27);
< }
< /*
< * PARAMETERS
< * p_inform_info
< * [in] Pointer to the inform info structure whose
< * response time value to return.
< *
< * RETURN VALUES
< * Returns the response time value of the infrom info.
< *
< * SEE ALSO
< * ib_inform_info_t, ib_inform_set_resp_time_val
< *********/
---
ib_gid_t gid;
ib_net16_t lid_range_begin;
ib_net16_t lid_range_end;
ib_net16_t reserved1;
uint8_t is_generic;
uint8_t subscribe;
ib_net16_t trap_type;
union _inform_g_or_v
{
struct _inform_generic
{
ib_net16_t trap_num;
ib_net32_t qpn_resp_time_val;
uint8_t reserved2;
uint8_t node_type_msb;
ib_net16_t node_type_lsb;
} PACK_SUFFIX generic;
struct _inform_vend
{
ib_net16_t dev_id;
ib_net32_t qpn_resp_time_val;
uint8_t reserved2;
uint8_t vendor_id_msb;
ib_net16_t vendor_id_lsb;
} PACK_SUFFIX vend;
6300c6841,6846
< /****f* IBA Base: Types/ib_inform_set_resp_time_val
---
} PACK_SUFFIX g_or_v;
} PACK_SUFFIX ib_inform_info_t;
#include <complib/cl_packoff.h>
/****f* IBA Base: Types/ib_inform_info_get_qpn_resp_time
6302c6848
< * ib_inform_set_resp_time_val
---
* ib_inform_info_get_qpn_resp_time
6305c6851
< * Sets the response time value of an inform info structure.
---
* Get QPN of the inform info
6309,6312c6855,6859
< AL_INLINE void AL_API
< ib_inform_set_resp_time_val(
< IN OUT ib_inform_info_t* const p_inform_info,
< IN const uint8_t resp_time_val )
---
static inline void
ib_inform_info_get_qpn_resp_time(
IN const ib_net32_t qpn_resp_time_val,
OUT ib_net32_t* const p_qpn,
OUT uint8_t* const p_resp_time_val )
6314c6861
< uint32_t val;
---
uint32_t tmp = cl_ntoh32(qpn_resp_time_val);
6316,6319c6863,6867
< val = cl_ntoh32( p_inform_info->combo2 );
< val &= 0x07FFFFFF;
< val |= (resp_time_val << 27);
< p_inform_info->combo2 = cl_hton32( val );
---
if (p_qpn)
*p_qpn = cl_hton32((tmp & 0xffffff00) >> 8);
if (p_resp_time_val)
*p_resp_time_val = (uint8_t)(tmp & 0x0000001f);
6323,6328c6871,6872
< * p_inform_info
< * [in/out] Pointer to the inform info structure
< * whose response time value to set.
< *
< * resp_time_val
< * [in] Response time value of the inform info.
---
* qpn_resp_time_val
* [in] the qpn and resp time val from the mad
6331,6339c6875,6876
< * This function does not return a value.
< *
< * SEE ALSO
< * ib_inform_info_t, ib_inform_get_resp_time_val
< *********/
<
< /****f* IBA Base: Types/ib_inform_get_prod_type
< * NAME
< * ib_inform_get_prod_type
---
* p_qpn
* [out] pointer to the qpn
6341,6356c6878,6879
< * DESCRIPTION
< * Retrieves the producer type from an inform info structure.
< *
< * SYNOPSIS
< */
< AL_INLINE uint32_t AL_API
< ib_inform_get_prod_type(
< IN const ib_inform_info_t* const p_inform_info )
< {
< return (cl_ntoh32( p_inform_info->combo3 ) >> 8);
< }
< /*
< * PARAMETERS
< * p_inform_info
< * [in] Pointer to the inform info structure whose
< * prducer type to return.
---
* p_state
* [out] pointer to the resp time val
6358,6359c6881
< * RETURN VALUES
< * Returns the producer type of the infrom info, in host byte order.
---
* NOTES
6362c6884
< * ib_inform_info_t, ib_inform_set_prod_type
---
* ib_inform_info_t
6365c6887
< /****f* IBA Base: Types/ib_inform_set_prod_type
---
/****f* IBA Base: Types/ib_inform_info_set_qpn
6367c6889
< * ib_inform_set_prod_type
---
* ib_inform_info_set_qpn
6370c6892
< * Sets the producer type of an inform info structure.
---
* Set the QPN of the inform info
6374,6377c6896,6899
< AL_INLINE void AL_API
< ib_inform_set_prod_type(
< IN OUT ib_inform_info_t* const p_inform_info,
< IN const uint32_t prod_type )
---
static inline void
ib_inform_info_set_qpn(
IN ib_inform_info_t *p_ii,
IN ib_net32_t const qpn)
6379c6901,6906
< p_inform_info->combo3 = cl_hton32( prod_type << 8 );
---
uint32_t tmp = cl_ntoh32(p_ii->g_or_v.generic.qpn_resp_time_val);
p_ii->g_or_v.generic.qpn_resp_time_val =
cl_hton32(
(tmp & 0x000000ff) |
((cl_ntoh32(qpn) << 8) & 0xffffff00)
);
6383,6388d6909
< * p_inform_info
< * [in/out] Pointer to the inform info structure
< * whose producer type to set.
< *
< * prod_type
< * [in] Producer type of inform trap.
6390,6391c6911
< * RETURN VALUES
< * This function does not return a value.
---
* NOTES
6394c6914
< * ib_inform_info_t, ib_inform_get_prod_type
---
* ib_inform_info_t
6397c6917
< /****f* IBA Base: Types/ib_inform_get_vend_id
---
/****f* IBA Base: Types/ib_inform_info_get_node_type
6399c6919
< * ib_inform_get_vend_id
---
* ib_inform_info_get_node_type
6402c6922
< * Retrieves the vendor ID from an inform info structure.
---
* Get Node Type of the Inform Info
6406,6408c6926,6928
< AL_INLINE uint32_t AL_API
< ib_inform_get_vend_id(
< IN const ib_inform_info_t* const p_inform_info )
---
static inline ib_net32_t
ib_inform_info_get_node_type(
IN const ib_inform_info_t *p_inf)
6410c6930,6933
< return ib_inform_get_prod_type( p_inform_info );
---
uint32_t nt;
nt = cl_ntoh16(p_inf->g_or_v.generic.node_type_lsb) |
(p_inf->g_or_v.generic.node_type_msb << 16);
return cl_hton32(nt);
6414,6416c6937,6938
< * p_inform_info
< * [in] Pointer to the inform info structure whose
< * vendor ID to return.
---
* p_inf
* [in] pointer to an inform info
6419c6941,6943
< * Returns the vendor ID of the infrom info, in host byte order.
---
* The node type
*
* NOTES
6422c6946
< * ib_inform_info_t, ib_inform_set_vend_id
---
* ib_inform_info_t
6425c6949
< /****f* IBA Base: Types/ib_inform_set_vend_id
---
/****f* IBA Base: Types/ib_inform_info_get_vend_id
6427c6951
< * ib_inform_set_vend_id
---
* ib_inform_info_get_vend_id
6430c6954
< * Sets the vendor ID of an inform info structure.
---
* Get Node Type of the Inform Info
6434,6437c6958,6960
< AL_INLINE void AL_API
< ib_inform_set_vend_id(
< IN OUT ib_inform_info_t* const p_inform_info,
< IN const uint32_t vend_id )
---
static inline ib_net32_t
ib_inform_info_get_vend_id(
IN const ib_inform_info_t *p_inf)
6439c6962,6965
< ib_inform_set_prod_type( p_inform_info, vend_id );
---
uint32_t vi;
vi = cl_ntoh16(p_inf->g_or_v.vend.vendor_id_lsb) |
(p_inf->g_or_v.vend.vendor_id_msb << 16);
return cl_hton32(vi);
6443,6448c6969,6970
< * p_inform_info
< * [in/out] Pointer to the inform info structure
< * whose vendor ID to set.
< *
< * vend_id
< * [in] Vendor ID of inform trap.
---
* p_inf
* [in] pointer to an inform info
6451c6973,6975
< * This function does not return a value.
---
* The node type
*
* NOTES
6454c6978
< * ib_mad_inform_info_t, ib_inform_get_vend_id
---
* ib_inform_info_t
6457d6980
<
6471,6472c6994,6995
< net16_t subscriber_enum;
< uint16_t reserved[3];
---
ib_net16_t subscriber_enum;
uint8_t reserved[6];
6477c7000
< /********/
---
6504c7027
< ib_mad_t hdr;
---
ib_mad_t header;
6514c7037
< * hdr
---
* header
6545d7067
< #define IB_DM_MAX_CTRL 0xFF;
6586c7108
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
6615c7137
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
6644c7166
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
6649,6654c7171,7175
< if( !slot )
< return SLOT_DOES_NOT_EXIST;
< else if( slot-- & 0x01 )
< return (p_iou_info->controller_list[slot >> 1] >> 4);
< else
< return (p_iou_info->controller_list[slot >> 1] & 0x0F);
---
if( slot >= IB_DM_CTRL_LIST_SIZE ) return SLOT_DOES_NOT_EXIST;
else return (int8_t)
( (slot%2) ?
(p_iou_info->controller_list[slot/2] & 0x0f) );
6662c7183
< * [in] 1-based slot number of the IOC slot to check.
---
* [in] Pointer to the IO Unit information structure.
6665,6666c7186
< * Returns the encoded value for the desired slot. Possible values are
< * SLOT_DOES_NOT_EXIST, IOC_NOT_INSTALLED, and IOC_INSTALLED.
---
* OptionROM field of the IO Unit information.
6669d7188
< * The input slot number is 1-based, not zero based.
6685c7204
< typedef __declspec(align(8)) struct _ib_ioc_profile
---
typedef struct _ib_ioc_profile
6794c7313
< AL_INLINE uint32_t AL_API
---
static inline uint32_t
6802c7321
< AL_INLINE void AL_API
---
static inline void
6811,6826d7329
< AL_INLINE uint32_t AL_API
< ib_ioc_profile_get_subsys_vend_id(
< IN const ib_ioc_profile_t* const p_ioc_profile )
< {
< return( cl_ntoh32(p_ioc_profile->subsys_vend_id) >> 8 );
< }
<
<
< AL_INLINE void AL_API
< ib_ioc_profile_set_subsys_vend_id(
< IN ib_ioc_profile_t* const p_ioc_profile,
< IN const uint32_t subsys_vend_id )
< {
< p_ioc_profile->subsys_id = (cl_hton32(subsys_vend_id) << 8);
< }
<
6886,6891c7389
< /****f* IBA Bases: Types/ib_dm_get_slot_lo_hi
< * DESCRIPTION
< * Returns the IOC slot number, and the lower and upper bound of the
< * service entries given the attribute modifier of ServiceEntries response.
< */
< AL_INLINE void AL_API
---
static inline void
6894,6896c7392,7394
< OUT uint8_t *const p_slot OPTIONAL,
< OUT uint8_t *const p_lo OPTIONAL,
< OUT uint8_t *const p_hi OPTIONAL )
---
OUT uint8_t *const p_slot,
OUT uint8_t *const p_lo,
OUT uint8_t *const p_hi )
6901c7399
< *p_slot = (uint8_t)( ( tmp_slot_lo_hi >> 16 ) );
---
*p_slot = (uint8_t)( ( tmp_slot_lo_hi >> 16 ) & 0x0f );
6904c7402
< *p_hi = (uint8_t)( ( tmp_slot_lo_hi >> 8 ) );
---
*p_hi = (uint8_t)( ( tmp_slot_lo_hi >> 8 ) & 0xff );
6907c7405
< *p_lo = (uint8_t)( ( tmp_slot_lo_hi >> 0 ) );
---
*p_lo = (uint8_t)( ( tmp_slot_lo_hi >> 0 ) & 0xff );
6909,6924d7406
< /* SEE ALSO
< * ib_dm_set_slot_lo_hi
< ********/
<
< /****f* IBA Bases: Types/ib_dm_set_slot_lo_hi
< * DESCRIPTION
< * Joins the IOC slot number, and the lower and upper bound of the service
< * entries and returns it.
< */
< AL_INLINE net32_t AL_API
< ib_dm_set_slot_lo_hi(
< IN const uint8_t slot,
< IN const uint8_t lo,
< IN const uint8_t hi )
< {
< uint32_t tmp;
6926,6933d7407
< tmp = slot << 16;
< tmp |= hi << 8;
< tmp |= lo;
< return cl_hton32( tmp );
< }
< /* SEE ALSO
< * ib_dm_get_slot_lo_hi
< ********/
6936c7410
< * Information describing an I/O controller
---
* IBA defined information describing an I/O controller
6938c7412
< #pragma warning(disable:4324)
---
#include <complib/cl_packon.h>
6941,6948c7415,7420
< net64_t chassis_guid;
< uint8_t chassis_slot;
< net64_t iou_guid;
< uint8_t iou_slot;
< ib_ioc_profile_t profile;
<
< } ib_ioc_info_t;
< #pragma warning(default:4324)
---
ib_net64_t module_guid;
ib_net64_t iou_guid;
ib_ioc_profile_t ioc_profile;
ib_net64_t access_key;
uint16_t initiators_conf;
uint8_t resv[38];
6949a7422,7423
} PACK_SUFFIX ib_ioc_info_t;
#include <complib/cl_packoff.h>
6954a7429
#define IB_MCLASS_CM_VER_1 1
6959,6969c7434,7456
< #define IB_REQ_PDATA_SIZE 92
< #define IB_MRA_PDATA_SIZE 222
< #define IB_REJ_PDATA_SIZE 148
< #define IB_REP_PDATA_SIZE 196
< #define IB_RTU_PDATA_SIZE 224
< #define IB_LAP_PDATA_SIZE 168
< #define IB_APR_PDATA_SIZE 148
< #define IB_DREQ_PDATA_SIZE 220
< #define IB_DREP_PDATA_SIZE 224
< #define IB_SIDR_REQ_PDATA_SIZE 216
< #define IB_SIDR_REP_PDATA_SIZE 136
---
#define IB_REQ_PDATA_SIZE_VER2 92
#define IB_MRA_PDATA_SIZE_VER2 222
#define IB_REJ_PDATA_SIZE_VER2 148
#define IB_REP_PDATA_SIZE_VER2 196
#define IB_RTU_PDATA_SIZE_VER2 224
#define IB_LAP_PDATA_SIZE_VER2 168
#define IB_APR_PDATA_SIZE_VER2 148
#define IB_DREQ_PDATA_SIZE_VER2 220
#define IB_DREP_PDATA_SIZE_VER2 224
#define IB_SIDR_REQ_PDATA_SIZE_VER2 216
#define IB_SIDR_REP_PDATA_SIZE_VER2 136
#define IB_REQ_PDATA_SIZE_VER1 92
#define IB_MRA_PDATA_SIZE_VER1 222
#define IB_REJ_PDATA_SIZE_VER1 148
#define IB_REP_PDATA_SIZE_VER1 204
#define IB_RTU_PDATA_SIZE_VER1 224
#define IB_LAP_PDATA_SIZE_VER1 168
#define IB_APR_PDATA_SIZE_VER1 151
#define IB_DREQ_PDATA_SIZE_VER1 220
#define IB_DREP_PDATA_SIZE_VER1 224
#define IB_SIDR_REQ_PDATA_SIZE_VER1 216
#define IB_SIDR_REP_PDATA_SIZE_VER1 140
7022a7510,7511
#define IB_REJ_SERVICE_HANDOFF CL_HTON16(65535)
7048c7537
< #define IB_AP_INVALID_QPN 6
---
#define IB_AP_INVALID_QPN_EECN 6
7084c7573
< typedef uint8_t ib_sidr_status_t;
---
typedef uint16_t ib_sidr_status_t;
7093,7186d7581
< /************/
< /****s* IBA Base: Types/ib_gmp_t
< * NAME
< * ib_gmp_t
< *
< * DESCRIPTION
< * IBA defined GMP MAD format. (16.1.1)
< *
< * SYNOPSIS
< */
< #define IB_GMP_DATA_SIZE 200
<
< #include <complib/cl_packon.h>
< typedef struct _ib_gmp
< {
< uint8_t base_ver;
< uint8_t mgmt_class;
< uint8_t class_ver;
< uint8_t method;
< ib_net16_t status;
< ib_net16_t resv;
< ib_net64_t trans_id;
< ib_net16_t attr_id;
< ib_net16_t resv1;
< ib_net32_t attr_mod;
< uint8_t resv2[40];
< uint8_t data[IB_GMP_DATA_SIZE];
<
< } PACK_SUFFIX ib_gmp_t;
< #include <complib/cl_packoff.h>
< /**********/
< #define IB_GMP_MAD_HDR_SIZE (sizeof(ib_gmp_t) - IB_GMP_DATA_SIZE)
<
<
<
< /************/
< /****s* IBA Base: Types/ib_port_counters_t
< * NAME
< * ib_gmp_t
< *
< * DESCRIPTION
< * IBA defined PortCounters MAD format. (16.1.3.5)
< *
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef struct _ib_port_counters
< {
< uint8_t reserved0;
< uint8_t port_select;
< ib_net16_t counter_select;
< ib_net16_t symbol_error_counter;
< uint8_t link_error_recovery_counter;
< uint8_t link_down_counter;
< ib_net16_t port_rcv_errors;
< ib_net16_t port_rcv_remote_physical_errors;
< ib_net16_t port_rcv_switch_relay_errors;
< ib_net16_t port_xmit_discard;
< uint8_t port_xmit_constraint_errors;
< uint8_t port_rcv_constraint_errors;
< uint8_t reserved1;
< /* uint4_t excessive_buffer_overrun_errors;
< uint4_t local_link_integrity_errors; */
< uint8_t lli_errors_exc_buf_errors;
< ib_net16_t reserved2;
< ib_net16_t vl15_dropped;
< ib_net32_t port_xmit_data;
< ib_net32_t port_rcv_data;
< ib_net32_t port_xmit_pkts;
< ib_net32_t port_rcv_pkts;
<
< } PACK_SUFFIX ib_port_counters_t;
< #include <complib/cl_packoff.h>
<
<
< #define IB_COUNTER_SYMBOL_ERROR CL_NTOH16(1<<0)
< #define IB_COUNTER_LINK_RECOVERY_ERROR CL_NTOH16(1<<1)
< #define IB_COUNTER_LINK_DOWN CL_NTOH16(1<<2)
< #define IB_COUNTER_RCV_ERROR CL_NTOH16(1<<3)
< #define IB_COUNTERT_RCV_RMT_PHY_ERROR CL_NTOH16(1<<4)
< #define IB_COUNTER_RCV_SWITCH_RELAY_ERROR CL_NTOH16(1<<5)
< #define IB_COUNTER_XMIT_DISCARD CL_NTOH16(1<<6)
< #define IB_COUNTER_XMIT_CONSTRAIN CL_NTOH16(1<<7)
< #define IB_COUNTER_RCV_CONSTRAIN CL_NTOH16(1<<8)
< #define IB_COUNTER_LINK_INTEG_ERROR CL_NTOH16(1<<9)
< #define IB_COUNTER_EXECE_BUF_ERROR CL_NTOH16(1<<10)
< #define IB_COUNTER_VL15_DROP CL_NTOH16(1<<11)
< #define IB_COUNTER_XMIT_DATA CL_NTOH16(1<<12)
< #define IB_COUNTER_XMIT_PKT CL_NTOH16(1<<13)
< #define IB_COUNTER_RCV_DATA CL_NTOH16(1<<14)
< #define IB_COUNTER_RCV_PKT CL_NTOH16(1<<15)
< #define IB_COUNTER_ALL 0xff
<
<
7192,7200c7587,7596
< typedef struct _ib_ca* __ptr64 ib_ca_handle_t;
< typedef struct _ib_pd* __ptr64 ib_pd_handle_t;
< typedef struct _ib_mr* __ptr64 ib_mr_handle_t;
< typedef struct _mlnx_fmr* __ptr64 mlnx_fmr_handle_t;
< typedef struct _ib_mw* __ptr64 ib_mw_handle_t;
< typedef struct _ib_qp* __ptr64 ib_qp_handle_t;
< typedef struct _ib_cq* __ptr64 ib_cq_handle_t;
< typedef struct _ib_av* __ptr64 ib_av_handle_t;
< typedef struct _ib_mcast* __ptr64 ib_mcast_handle_t;
---
typedef struct _ib_ca *ib_ca_handle_t;
typedef struct _ib_pd *ib_pd_handle_t;
typedef struct _ib_rdd *ib_rdd_handle_t;
typedef struct _ib_mr *ib_mr_handle_t;
typedef struct _ib_mw *ib_mw_handle_t;
typedef struct _ib_qp *ib_qp_handle_t;
typedef struct _ib_eec *ib_eec_handle_t;
typedef struct _ib_cq *ib_cq_handle_t;
typedef struct _ib_av *ib_av_handle_t;
typedef struct _ib_mcast *ib_mcast_handle_t;
7233a7630
IB_INVALID_EEC_STATE,
7250a7648
IB_INVALID_EEC_HANDLE,
7254d7651
< IB_INVALID_FMR_HANDLE,
7255a7653
IB_INVALID_RDD_HANDLE,
7264a7663
IB_EE_IN_TIMEWAIT,
7267,7269d7665
< IB_INVALID_INDEX,
< IB_NO_MATCH,
< IB_PENDING,
7275c7671
<
---
extern const char* ib_error_str[];
7286c7682
< AL_EXPORT const char* AL_API
---
static inline const char*
7288c7684,7689
< IN ib_api_status_t status );
---
IN ib_api_status_t status )
{
if( status > IB_UNKNOWN_ERROR )
status = IB_UNKNOWN_ERROR;
return( ib_error_str[status] );
}
7323a7725,7727
IB_AE_EEC_FATAL,
IB_AE_EEC_COMM,
IB_AE_EEC_APM,
7334a7739
IB_AE_EEC_APM_ERROR,
7339d7743
< IB_AE_CLIENT_REREGISTER,
7346c7750
< * An error occurred when accessing the send queue of the QP.
---
* An error occurred when accessing the send queue of the QP or EEC.
7355c7759
< * An error occurred when accessing the receive queue of the QP.
---
* An error occurred when accessing the receive queue of the QP or EEC.
7372a7777,7791
* IB_AE_EEC_FATAL
* If reliable datagram service is supported, this event indicates that
* a catastrophic error occurred while accessing or processing the EEC
* that prevents reporting of completions.
*
* IB_AE_EEC_COMM
* If reliable datagram service is supported, this event indicates that
* the first packet has arrived for the receive work queue where the
* EEC is still in the RTR state.
*
* IB_AE_EEC_APM
* If reliable datagram service and alternate path migration is supported,
* this event indicates that the EEC connection has migrated to the
* alternate path.
*
7414a7834,7838
* IB_AE_EEC_APM_ERROR
* If reliable datagram service and alternate path migration is supported,
* this event indicates that an incoming path migration request to this
* EEC was not accepted.
*
7429,7431d7852
< * IB_AE_CLIENT_REREGISTER
< * The SM idicate to client to reregister its SA records.
< *
7438c7859
<
---
extern const char* ib_async_event_str[];
7449c7870
< AL_EXPORT const char* AL_API
---
static inline const char*
7451c7872,7877
< IN ib_async_event_t event );
---
IN ib_async_event_t event )
{
if( event > IB_AE_UNKNOWN )
event = IB_AE_UNKNOWN;
return( ib_async_event_str[event] );
}
7485c7911
< void* __ptr64 context;
---
void *context;
7595,7599d8020
< boolean_t ipd;
< boolean_t pkey_switch_ext_port;
< boolean_t bm;
< boolean_t link_rtl;
< boolean_t client_reregister;
7703,7704c8124,8125
< ib_gid_t* __ptr64 p_gid_table;
< ib_net16_t* __ptr64 p_pkey_table;
---
ib_gid_t *p_gid_table;
ib_net16_t *p_pkey_table;
7729d8149
< uint64_t fw_ver;
7756a8177
uint8_t max_eec_resp_res;
7759a8181,8184
uint8_t max_eec_init_depth;
uint32_t max_eecs;
uint32_t max_rdds;
7767,7768d8191
< uint32_t max_fmr;
< uint32_t max_map_per_fmr;
7798,7799c8221,8222
< uint32_t* __ptr64 p_page_size;
< ib_port_attr_t* __ptr64 p_port_attr;
---
uint32_t *p_page_size;
ib_port_attr_t *p_port_attr;
7816,7818d8238
< * fw_ver
< * Device Firmware version.
< *
7870,7871c8290,8292
< * Maximum limit on number of responder resources for incomming RDMA
< * operations on QPs.
---
* max_eec_resp_res
* Maximum limit on number of responder resources for incoming RDMA
* operations, on QPs and EEC's respectively.
7878c8299,8300
< * Maximimum initiator depth per QP for initiating RDMA reads and
---
* max_eec_init_depth
* Maximimum initiator depth per QP or EEC for initiating RDMA reads and
7880a8303,8308
* max_eecs
* Maximimum number of EEC's supported by the HCA.
*
* max_rdds
* Maximum number of Reliable datagram domains supported.
*
7913c8341
< * Indicates ability to change primary port for a QP during a
---
* Indicates ability to change primary port for a QP or EEC during a
7974c8402
< AL_EXPORT ib_ca_attr_t* AL_API
---
ib_ca_attr_t*
7977,8014c8405
< IN const ib_ca_attr_t* const p_src );
< /*
< * PARAMETERS
< * p_dest
< * Pointer to the buffer that is the destination of the copy.
< *
< * p_src
< * Pointer to the CA attributes to copy.
< *
< * RETURN VALUE
< * Pointer to the copied CA attributes.
< *
< * NOTES
< * The buffer pointed to by the p_dest parameter must be at least the size
< * specified in the size field of the buffer pointed to by p_src.
< *
< * SEE ALSO
< * ib_ca_attr_t, ib_dup_ca_attr, ib_free_ca_attr
< *****/
<
<
< /****d* Access Layer/ib_pd_type_t
< * NAME
< * ib_pd_type_t
< *
< * DESCRIPTION
< * Indicates the type of protection domain being allocated.
< *
< * SYNOPSIS
< */
< typedef enum _ib_pd_type
< {
< IB_PDT_NORMAL,
< IB_PDT_ALIAS,
< IB_PDT_SQP,
< IB_PDT_UD
<
< } ib_pd_type_t;
---
IN const ib_ca_attr_t* const p_src );
8016,8018c8407,8412
< * VALUES
< * IB_PDT_NORMAL
< * Protection domain for all non-aliased QPs.
---
* PARAMETERS
* p_dest
* Pointer to the buffer that is the destination of the copy.
*
* p_src
* Pointer to the CA attributes to copy.
8020,8021c8414,8415
< * IB_PDT_ALIAS
< * Protection domain for IB_QPT_QP0_ALIAS and IB_QPT_QP1_ALIAS QPs.
---
* RETURN VALUE
* Pointer to the copied CA attributes.
8023,8024c8417,8419
< * IB_PDT_SQP
< * Protection domain for special queue pair usage.
---
* NOTES
* The buffer pointed to by the p_dest parameter must be at least the size
* specified in the size field of the buffer pointed to by p_src.
8026,8027c8421,8422
< * IB_PDT_UD
< * Protection domain for UD queue pair usage.
---
* SEE ALSO
* ib_ca_attr_t, ib_dup_ca_attr, ib_free_ca_attr
8081c8476,8477
< IB_QPT_UNRELIABLE_DGRM = 3, /* Purposefully skip RDD type. */
---
IB_QPT_RELIABLE_DGRM = 2, /* Matches CM REQ transport type */
IB_QPT_UNRELIABLE_DGRM,
8098a8495,8497
* IB_QPT_RELIABLE_DGRM
* Reliable, datagram queue pair.
*
8211a8611,8612
ib_rdd_handle_t h_rdd;
8227a8629,8633
* h_rdd
* A handle to a reliable datagram domain to associate with the queue
* pair. This field is ignored if the queue pair is not a reliable
* datagram type queue pair.
*
8291d8696
< uint32_t sq_max_inline;
8300a8706
ib_rdd_handle_t h_rdd;
8322,8326c8728,8729
< * This is a handle to a protection domain associated with the QP.
< *
< * sq_max_inline
< * Maximum payload that can be inlined directly in a WQE, eliminating
< * protection checks and additional DMA operations.
---
* This is a handle to a protection domain associated with the queue
* pair, or NULL if the queue pair is type IB_QPT_RELIABLE_DGRM.
8384a8788,8797
struct _qp_reset
{
/*
* Time, in milliseconds, that the QP needs to spend in the
* time wait state before being reused.
*/
uint32_t timewait;
} reset;
8386a8800
ib_qp_opts_t opts;
8400d8813
< uint8_t rnr_nak_timeout;
8408a8822
uint8_t rnr_nak_timeout;
8416a8831
uint8_t rnr_nak_timeout;
8421d8835
< uint8_t rnr_nak_timeout;
8454c8868
< /****d* Access Layer/ib_wr_type_t
---
/****s* Access Layer/ib_eec_attr_t
8456c8870
< * ib_wr_type_t
---
* ib_eec_attr_t
8459c8873
< * Identifies the type of work request posted to a queue pair.
---
* Information about an end-to-end context.
8463c8877
< typedef enum _ib_wr_type_t
---
typedef struct _ib_eec_attr
8465,8470c8879,8881
< WR_SEND = 1,
< WR_RDMA_WRITE,
< WR_RDMA_READ,
< WR_COMPARE_SWAP,
< WR_FETCH_ADD,
< WR_UNKNOWN
---
ib_qp_state_t state;
ib_rdd_handle_t h_rdd;
ib_net32_t local_eecn;
8472,8473c8883,8899
< } ib_wr_type_t;
< /*****/
---
ib_net32_t sq_psn;
ib_net32_t rq_psn;
uint8_t primary_port;
uint16_t pkey_index;
uint32_t resp_res;
ib_net32_t remote_eecn;
uint32_t init_depth;
uint32_t dest_num; // ??? What is this?
ib_av_attr_t primary_av;
ib_av_attr_t alternate_av;
ib_apm_state_t apm_state;
} ib_eec_attr_t;
/*
* SEE ALSO
* ib_qp_state_t, ib_av_attr_t, ib_apm_state_t
*****/
8476c8902
< /****f* IBA Base: Types/ib_get_wr_type_str
---
/****d* Access Layer/ib_eec_opts_t
8478c8904
< * ib_get_wr_type_str
---
* ib_eec_opts_t
8481c8907
< * Returns a string for the specified work request type
---
* Optional fields supplied in the modify EEC operation.
8485,8488c8911,8919
< AL_EXPORT const char* AL_API
< ib_get_wr_type_str(
< IN uint8_t wr_type );
<
---
typedef uint32_t ib_eec_opts_t;
#define IB_MOD_EEC_ALTERNATE_AV 0x00000001
#define IB_MOD_EEC_PKEY 0x00000002
#define IB_MOD_EEC_APM_STATE 0x00000004
#define IB_MOD_EEC_PRIMARY_AV 0x00000008
#define IB_MOD_EEC_RNR 0x00000010
#define IB_MOD_EEC_RESP_RES 0x00000020
#define IB_MOD_EEC_OUTSTANDING 0x00000040
#define IB_MOD_EEC_PRIMARY_PORT 0x00000080
8490,8493c8921,8924
< * PARAMETERS
< * wr_type
< * [in] Encoded work request type as defined in the
< work request attribute.
---
* NOTES
*
*
*****/
8495,8496c8926,8928
< * RETURN VALUES
< * Pointer to the work request type string.
---
/****s* Access Layer/ib_eec_mod_t
* NAME
* ib_eec_mod_t
8498c8930,8932
< * NOTES
---
* DESCRIPTION
* Information needed to change the state of an end-to-end context through
* the ib_modify_eec function.
8499a8934,8989
* SYNOPSIS
*/
typedef struct _ib_eec_mod
{
ib_qp_state_t req_state;
union _eec_state
{
struct _eec_init
{
uint8_t primary_port;
uint16_t pkey_index;
} init;
struct _eec_rtr
{
ib_net32_t rq_psn;
ib_net32_t remote_eecn;
ib_av_attr_t primary_av;
uint8_t resp_res;
ib_eec_opts_t opts;
ib_av_attr_t alternate_av;
uint16_t pkey_index;
} rtr;
struct _eec_rts
{
ib_net32_t sq_psn;
uint8_t retry_cnt;
uint8_t rnr_retry_cnt;
uint8_t local_ack_timeout;
uint8_t init_depth;
ib_eec_opts_t opts;
ib_av_attr_t alternate_av;
ib_apm_state_t apm_state;
ib_av_attr_t primary_av;
uint16_t pkey_index;
uint8_t primary_port;
} rts;
struct _eec_sqd
{
boolean_t sqd_event;
} sqd;
} state;
} ib_eec_mod_t;
/*
8500a8991,8996
* ib_qp_state_t, ib_av_attr_t, ib_apm_state_t
*****/
/****d* Access Layer/ib_wr_type_t
* NAME
8502c8998,9013
< *********/
---
*
* DESCRIPTION
* Identifies the type of work request posted to a queue pair.
*
* SYNOPSIS
*/
typedef enum _ib_wr_type_t
{
WR_SEND = 1,
WR_RDMA_WRITE,
WR_RDMA_READ,
WR_COMPARE_SWAP,
WR_FETCH_ADD
} ib_wr_type_t;
/*****/
8518c9029
< uint64_t vaddr;
---
void *vaddr;
8543a9055,9056
8570a9084
*
8575a9090
*
8597c9112
< struct _ib_send_wr* __ptr64 p_next;
---
struct _ib_send_wr *p_next;
8602c9117
< ib_local_ds_t* __ptr64 ds_array;
---
ib_local_ds_t *ds_array;
8612,8613d9126
< uint16_t pkey_index;
< void* __ptr64 rsvd;
8616a9130,9137
struct _send_rd
{
ib_net32_t remote_qp;
ib_net32_t remote_qkey;
ib_net32_t eecn;
} rd;
8641c9162
< net32_t rkey;
---
uint32_t rkey;
8689,8693c9210,9215
< * dgrm.ud.pkey_index
< * The pkey index for this send work request. This is valid only
< * for IB_QPT_QP1 and IB_QPT_QP1_ALIAS QP types. The work request
< * is posted to using this pkey index build the GMP's BTH instead
< * of the QP's pkey.
---
* dgrm.rd.remote_qp
* Identifies the destination queue pair of a reliable datagram send
* operation.
*
* dgrm.rd.remote_qkey
* The qkey for the destination queue pair.
8695,8696c9217,9219
< * dgrm.ud.rsvd
< * Reserved for use by the Access Layer.
---
* dgrm.rd.eecn
* The local end-to-end context number to use with the reliable datagram
* send operation.
8764c9287
< struct _ib_recv_wr* __ptr64 p_next;
---
struct _ib_recv_wr *p_next;
8767c9290
< ib_local_ds_t* __ptr64 ds_array;
---
ib_local_ds_t *ds_array;
8810c9333
< net32_t current_rkey;
---
uint32_t current_rkey;
8856a9380
IB_WCS_LOCAL_EEC_OP_ERR,
8865,8867c9389,9391
< IB_WCS_BAD_RESP_ERR,
< IB_WCS_LOCAL_ACCESS_ERR,
< IB_WCS_GENERAL_ERR,
---
IB_WCS_REM_INVALID_RD_REQ_ERR,
IB_WCS_INVALID_EECN,
IB_WCS_INVALID_EEC_STATE,
8894a9419,9423
* IB_WCS_LOCAL_EEC_OP_ERR
* An internal EEC consistency error was generated while processing
* this work request. This may indicate that the EEC was in an incorrect
* state for the requested operation.
*
8931,8938c9460,9468
< * IB_WCS_BAD_RESP_ERR,
< * An unexpected transport layer opcode was returned
< * by the responder.
< *
< * IB_WCS_LOCAL_ACCESS_ERR,
< * A protection error occurred on a local data buffer
< * during the processing of a RDMA Write with Immediate Data
< * operation sent from the remote node.
---
* IB_WCS_REM_INVALID_RD_REQ_ERR,
* Responder detected an invalid RD message. This may be the result of an
* invalid qkey or an RDD mismatch.
*
* IB_WCS_INVALID_EECN
* An invalid EE context number was detected.
*
* IB_WCS_INVALID_EEC_STATE
* The EEC was in an invalid state for the specified request.
8947,8950d9476
< *
< * IB_WCS_GENERAL_ERR,
< * Any other error
< *
8953a9480,9481
extern const char* ib_wc_status_str[];
8964c9492
< AL_EXPORT const char* AL_API
---
static inline const char*
8966c9494,9499
< IN ib_wc_status_t wc_status );
---
IN ib_wc_status_t wc_status )
{
if( wc_status > IB_WCS_UNKNOWN )
wc_status = IB_WCS_UNKNOWN;
return( ib_wc_status_str[wc_status] );
}
8999,9000c9532
< IB_WC_RECV_RDMA_WRITE,
< IB_WC_UNKNOWN
---
IB_WC_RECV_RDMA_WRITE
9006,9031d9537
< /****f* IBA Base: Types/ib_get_wc_type_str
< * NAME
< * ib_get_wc_type_str
< *
< * DESCRIPTION
< * Returns a string for the specified work completion type.
< *
< * SYNOPSIS
< */
< AL_EXPORT const char* AL_API
< ib_get_wc_type_str(
< IN ib_wc_type_t wc_type );
< /*
< * PARAMETERS
< * wc_type
< * [in] work completion type value
< *
< * RETURN VALUES
< * Pointer to the work completion type description string.
< *
< * NOTES
< *
< * SEE ALSO
< *********/
<
<
9077c9583
< struct _ib_wc* __ptr64 p_next;
---
struct _ib_wc *p_next;
9105a9612,9621
struct _wc_rd
{
ib_net32_t remote_eecn;
ib_net32_t remote_qp;
ib_net16_t remote_lid;
uint8_t remote_sl;
uint32_t free_cnt;
} rd;
9140a9657
*
9172,9173c9689,9690
< * The pkey index of the source queue pair. This is valid only for
< * IB_QPT_QP1 and IB_QPT_QP1_ALIAS QP types.
---
* The pkey index for the source queue pair. This is valid only for
* GSI type QP's.
9183a9701,9717
* recv.rd.remote_eecn
* The remote end-to-end context number that sent the received message.
*
* recv.rd.remote_qp
* Identifies the source queue pair of a received message.
*
* recv.rd.remote_lid
* The source LID of the received message.
*
* recv.rd.remote_sl
* The service level used by the source of the received message.
*
* recv.rd.free_cnt
* The number of available entries in the completion queue. Reliable
* datagrams may complete out of order, so this field may be used to
* determine the number of additional completions that may occur.
*
9229c9763
< void* __ptr64 vaddr;
---
void *vaddr;
9249,9320d9782
< #ifdef CL_KERNEL
<
< /****s* Access Layer/mlnx_fmr_create_t
< * NAME
< * mlnx_fmr_create_t
< *
< * DESCRIPTION
< * Information required to create a Mellanox fast memory region.
< *
< * SYNOPSIS
< */
< typedef struct _mlnx_fmr_create
< {
< int max_pages;
< int max_maps;
< uint8_t page_size;
< ib_access_t access_ctrl;
<
< } mlnx_fmr_create_t;
< /*
< * FIELDS
< * max_pages
< * max pages in the region.
< *
< * max_maps
< * max times, the region can be mapped before remapping.
< *
< * page_size
< * log2 of the page size (e.g. 12 for 4KB).
< *
< * access_ctrl
< * Access rights of the registered region.
< *
< * NOTES
< * This is a Mellanox specific extension to verbs.
< *
< * SEE ALSO
< * ib_access_t
< *****/
<
< #endif
<
< /****s* Access Layer/ib_phys_range_t
< * NAME
< * ib_phys_range_t
< *
< * DESCRIPTION
< * Information describing a physical memory range.
< *
< * SYNOPSIS
< */
< typedef struct _ib_phys_range
< {
< uint64_t base_addr;
< uint64_t size;
<
< } ib_phys_range_t;
< /*
< * FIELDS
< * base_addr
< * Physical address of the base of the memory range.
< *
< * size
< * size, in bytes, of the memory range.
< *
< * NOTES
< * The base address must be start and end on an HCA-supported page boundary.
< *
< * SEE ALSO
< * ib_phys_create_t
< *********/
<
9334,9335c9796,9797
< uint32_t num_ranges;
< ib_phys_range_t* __ptr64 range_array;
---
uint32_t num_bufs;
uint64_t *buf_array;
9337c9799
< uint32_t hca_page_size;
---
uint32_t page_size;
9342d9803
< * FIELDS
9346,9347c9807,9808
< * num_ranges
< * Number of ib_phys_range structures listed in the specified range array.
---
* num_bufs
* Number of buffers listed in the specified buffer array.
9349,9350c9810,9811
< * range_array
< * An array of ib_phys_range structures to be registered as a single memory
---
* buf_array
* An array of physical buffers to be registered as a single memory
9354,9355c9815,9816
< * The offset into the first physical memory range of the specified memory
< * region on which to start the virtual address.
---
* The offset into the first physical page of the specified memory
* region to start the virtual address.
9357,9358c9818,9819
< * hca_page_size
< * The HCA page size to use to register the memory.
---
* page_size
* The physical page size of the memory being registered.
9380,9383c9841,9844
< uint64_t local_lb;
< uint64_t local_ub;
< uint64_t remote_lb;
< uint64_t remote_ub;
---
void *local_lb;
void *local_ub;
void *remote_lb;
void *remote_ub;
9385,9386c9846,9847
< net32_t lkey;
< net32_t rkey;
---
uint32_t lkey;
uint32_t rkey;
9396,9397c9857
< * memory access. This is always a 64-bit quantity to support registering
< * more than 4GB of memory on 32-bit systems with PAE.
---
* memory access.
9401,9402c9861
< * memory access. This is always a 64-bit quantity to support registering
< * more than 4GB of memory on 32-bit systems with PAE.
---
* memory access.
9406,9407c9865
< * memory access. This is always a 64-bit quantity to support registering
< * more than 4GB of memory on 32-bit systems with PAE.
---
* memory access.
9411,9412c9869
< * memory access. This is always a 64-bit quantity to support registering
< * more than 4GB of memory on 32-bit systems with PAE.
---
* memory access.
9465d9921
< #define IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED 0x00800000
9544,9547d9999
< *
< * IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED
< * Used to modify the system image GUID for the port.
< *
9661a10114
IN OUT void* p_buf OPTIONAL;
9663c10116
< IN uint32_t buf_info;
---
IN OUT uint32_t num_bytes_ret;
9665,9666d10117
< OUT uint32_t num_bytes_ret;
< IN OUT void* __ptr64 p_buf OPTIONAL;
9674,9684d10124
< * status
< * The completion status from the verbs provider. This field should be
< * initialize to indicate an error to allow detection and cleanup in
< * case a communication error occurs between user-mode and kernel-mode.
< *
< * buf_size
< * The size of the buffer in bytes.
< *
< * buf_info
< * Additional buffer information
< *
9690a10131,10133
* buf_size
* The size of the buffer in bytes.
*
9696a10140,10144
* status
* The completion status from the verbs provider. This field should be
* initialize to indicate an error to allow detection and cleanup in
* case a communication error occurs between user-mode and kernel-mode.
*
9703a10152
END_C_DECLS
9705,9710c10154
< #ifdef __cplusplus
< } /* extern "C" */
< #endif /* __cplusplus */
<
<
< #endif /* __IB_TYPES_H__ */
---
#endif // __IB_TYPES_H__
Fabian Tillier
2006-07-10 13:21:35 UTC
Permalink
Hi Eitan,

A lot of the changes are whitespace, comments, and repeated things
like using the AL_API and AL_INLINE macros versus static inline.

Could you filter these out and send out what the actual changes that
matter are? I quickly lost interest here.

Also, the AL_API and AL_INLINE stuff cannot go away in Windows, so if
this is an issue for Linux OpenSM, then we should stop now.

- Fab
Post by Eitan Zahavi
Can you please resend as inline text, or at the very least a plain text attachment?
2c2,3
< * Copyright (c) 2005 SilverStorm Technologies. All rights reserved.
---
* Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
5,6c6,10
< * This software is available to you under the OpenIB.org BSD license
---
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
* General Public License (GPL) Version 2, available from the file
* COPYING in the main directory of this source tree, or the
30c34
< * $Id: ib_types.h 381 2006-06-08 17:10:14Z ftillier $
---
* $Id: ib_types.h 8291 2006-06-29 18:53:06Z halr $
36a41
#include <string.h>
40,54d44
< #ifdef CL_KERNEL
< #define AL_EXPORT
< #define AL_API
< #define AL_INLINE static inline
< #else
< #if defined( EXPORT_AL_SYMBOLS )
< #define AL_EXPORT __declspec(dllexport)
< #else
< #define AL_EXPORT __declspec(dllimport)
< #endif
< #define AL_API __stdcall
< #define AL_INLINE AL_EXPORT inline
< #endif /* CL_KERNEL */
<
<
56,57c46,50
< extern "C"
< {
---
# define BEGIN_C_DECLS extern "C" {
# define END_C_DECLS }
#else /* !__cplusplus */
# define BEGIN_C_DECLS
# define END_C_DECLS
59a53
BEGIN_C_DECLS
222c216
< #define IB_DEFAULT_SUBNET_PREFIX (CL_HTON64(CL_CONST64(0xFE80000000000000)))
---
#define IB_DEFAULT_SUBNET_PREFIX (CL_HTON64(0xFE80000000000000ULL))
365c359
< #define IB_PKEY_ENTRIES_MAX (IB_PKEY_MAX_BLOCKS * IB_PKEY_BLOCK_SIZE)
---
#define IB_PKEY_ENTRIES_MAX (IB_PKEY_MAX_BLOCKS * IB_NUM_PKEY_ELEMENTS_IN_BLOCK)
377c371
< #define IB_PKEY_BASE_MASK (CL_NTOH16(0x7FFF))
---
#define IB_PKEY_BASE_MASK (CL_HTON16(0x7FFF))
391a386,397
/****d* IBA Base: Constants/IB_DEFAULT_PARTIAL_PKEY
* NAME
* IB_DEFAULT_PARTIAL_PKEY
*
* DESCRIPTION
* 0x7FFF in network order
*
* SOURCE
*/
#define IB_DEFAULT_PARTIAL_PKEY (CL_HTON16(0x7FFF))
/**********/
511a518,541
/****d* IBA Base: Constants/IB_MCLASS_DEV_ADM
* NAME
* IB_MCLASS_DEV_ADM
*
* DESCRIPTION
* Subnet Management Class, Device Administration
*
* SOURCE
*/
#define IB_MCLASS_DEV_ADM 0x10
/**********/
/****d* IBA Base: Constants/IB_MCLASS_BIS
* NAME
* IB_MCLASS_BIS
*
* DESCRIPTION
* Subnet Management Class, BIS
*
* SOURCE
*/
#define IB_MCLASS_BIS 0x12
/**********/
541c571
< * Indicitates if the Class Code if a vendor specific class from
---
* Indicates if the Class Code if a vendor specific class from
573c603
< * Indicitates if the Class Code if a vendor specific class from
---
* Indicates if the Class Code if a vendor specific class from
606c636
< * Indicitates if the Class Code if a vendor specific class
---
* Indicates if the Class Code if a vendor specific class
631a662,693
/****f* IBA Base: Types/ib_class_is_rmpp
* NAME
* ib_class_is_rmpp
*
* DESCRIPTION
* Indicates if the Class Code supports RMPP
*
* SYNOPSIS
*/
static inline boolean_t
ib_class_is_rmpp(
IN const uint8_t class_code )
{
return( (class_code == IB_MCLASS_SUBN_ADM) ||
(class_code == IB_MCLASS_DEV_MGMT) ||
(class_code == IB_MCLASS_DEV_ADM) ||
(class_code == IB_MCLASS_BIS) ||
ib_class_is_vendor_specific_high( class_code ) );
}
/*
* PARAMETERS
* class_code
* [in] The Management Datagram Class Code
*
* RETURN VALUE
* TRUE if the class supports RMPP
* FALSE otherwise.
*
* NOTES
*
*********/
902d963
< /*********/
1100c1161
< * SmInfoRecord attribute (15.2.5)
---
* SMInfoRecord attribute (15.2.5)
1106a1168,1179
/****d* IBA Base: Constants/IB_MAD_ATTR_GUIDINFO_RECORD
* NAME
* IB_MAD_ATTR_GUIDINFO_RECORD
*
* DESCRIPTION
* GuidInfoRecord attribute (15.2.5)
*
* SOURCE
*/
#define IB_MAD_ATTR_GUIDINFO_RECORD (CL_NTOH16(0x0030))
/**********/
1117a1191
1128a1203
1139a1215
1145c1221
< * LinearForwardingRecord attribute (15.2.5.6)
---
* LinearForwardingTableRecord attribute (15.2.5.6)
1150a1227
1156c1233
< * P-KEY table attribute (15.2.5)
---
* PKEY Table Record attribute (15.2.5)
1161a1239
1172a1251
1178c1257
< * VL Arbitration Table attribute (15.2.5)
---
* VL Arbitration Table Record attribute (15.2.5)
1183a1263
1189c1269
< * VSLtoL Map Table attribute (15.2.5)
---
* SLtoVL Mapping Table Record attribute (15.2.5)
1194a1275
1205a1287
1216a1299
1222c1305
< * MultiPath attribute (15.2.5)
---
* MultiPathRecord attribute (15.2.5)
1227a1311
1233c1317
< * Service Association attribute (15.2.5)
---
* Service Association Record attribute (15.2.5)
1238a1323
1250c1335,1336
< /****d* IBA Base: Constants/IB_MAD_ATTR_IOC_PROFILE
---
/****d* IBA Base: Constants/IB_MAD_ATTR_IO_CONTROLLER_PROFILE
1252c1338
< * IB_MAD_ATTR_IOC_PROFILE
---
* IB_MAD_ATTR_IO_CONTROLLER_PROFILE
1259c1345
< #define IB_MAD_ATTR_IOC_PROFILE (CL_NTOH16(0x0011))
---
#define IB_MAD_ATTR_IO_CONTROLLER_PROFILE (CL_NTOH16(0x0011))
1260a1347
1271a1359
1282a1371
1293a1383
1304a1395
1315a1407
1327c1419,1420
< /*** IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD
---
/****d* IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD
1332c1425
< * Service Association attribute (15.2.5)
---
* Service Association Record attribute (15.2.5)
1337a1431
1348a1443
1359a1455
1382a1479
1393a1491
1404a1503
1419c1518
< /****d* IBA Base: Constants/IB_MTU_TYPE
---
/****d* IBA Base: Constants/IB_MTU_LEN_TYPE
1421c1520
< * IB_MTU_TYPE
---
* IB_MTU_LEN_TYPE
1434,1438c1533,1541
< #define IB_MTU_256 1
< #define IB_MTU_512 2
< #define IB_MTU_1024 3
< #define IB_MTU_2048 4
< #define IB_MTU_4096 5
---
#define IB_MTU_LEN_256 1
#define IB_MTU_LEN_512 2
#define IB_MTU_LEN_1024 3
#define IB_MTU_LEN_2048 4
#define IB_MTU_LEN_4096 5
#define IB_MIN_MTU IB_MTU_LEN_256
#define IB_MAX_MTU IB_MTU_LEN_4096
1509c1612
< * Mask for the selector field for path record MTU, rate
---
* Mask for the selector field for path record MTU, rate,
1514a1618,1628
/****d* IBA Base: Constants/IB_MULTIPATH_REC_SELECTOR_MASK
* NAME
* IB_MULTIPATH_REC_SELECTOR_MASK
*
* DESCRIPTION
* Mask for the selector field for multipath record MTU, rate,
* and packet lifetime.
*
* SOURCE
*/
#define IB_MULTIPATH_REC_SELECTOR_MASK 0xC0
1521c1635
< * Mask for the base value field for path record MTU, rate
---
* Mask for the base value field for path record MTU, rate,
1527a1642,1653
/****d* IBA Base: Constants/IB_MULTIPATH_REC_BASE_MASK
* NAME
* IB_MULTIPATH_REC_BASE_MASK
*
* DESCRIPTION
* Mask for the base value field for multipath record MTU, rate,
* and packet lifetime.
*
* SOURCE
*/
#define IB_MULTIPATH_REC_BASE_MASK 0x3F
/**********/
1534c1660
< * Definitions are from the InfiniBand Architecture Specification v1.1
---
* Definitions are from the InfiniBand Architecture Specification v1.2
1616c1742
< AL_INLINE const char* AL_API
---
static inline const char*
1618c1744
< IN uint8_t node_type )
---
IN uint32_t node_type )
1620c1746
< if( node_type >= IB_NODE_TYPE_ROUTER )
---
if( node_type >= IB_NOTICE_NODE_TYPE_ROUTER )
1658c1784
< AL_INLINE const char* AL_API
---
static inline const char*
1668c1794
< * port_state
---
* node_type
1689c1815
< AL_INLINE const uint8_t AL_API
---
static inline uint8_t
1744c1870
< AL_INLINE ib_net16_t AL_API
---
static inline ib_net16_t
1767c1893
< * Indicitates if the port is a full member of the parition.
---
* Indicates if the port is a full member of the parition.
1771c1897
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
1791a1918,1950
/****f* IBA Base: Types/ib_pkey_is_invalid
* NAME
* ib_pkey_is_invalid
*
* DESCRIPTION
* Returns TRUE if the given P_Key is an invalid P_Key
* C10-116: the CI shall regard a P_Key as invalid if its low-order
* 15 bits are all zero...
*
* SYNOPSIS
*/
static inline boolean_t
ib_pkey_is_invalid(
IN const ib_net16_t pkey )
{
if (ib_pkey_get_base(pkey) == 0x0000)
return TRUE;
return FALSE;
}
/*
* PARAMETERS
* pkey
* [in] P_Key value
*
* RETURN VALUE
* Returns the base P_Key value with the membership bit stripped.
*
* NOTES
*
* SEE ALSO
*********/
1835c1994
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
1851c2010
< AL_INLINE void AL_API
---
static inline void
1884c2043
< AL_INLINE ib_net64_t AL_API
---
static inline ib_net64_t
1948,1949c2107
< CL_HTON64( CL_CONST64(0xFFFFFFFFFFFF0000) ) ) ==
< CL_HTON64( CL_CONST64(0xFEC0000000000000) ) );
---
CL_HTON64( 0xFFFFFFFFFFFF0000ULL ) ) == CL_HTON64( 0xFEC0000000000000ULL ) );
1974c2132
< AL_INLINE ib_net64_t AL_API
---
static inline ib_net64_t
1994,2021d2151
< /****s* IBA Base: Types/ib_field32_t
< * NAME
< * ib_field32_t
< *
< * DESCRIPTION
< * Represents a 32-bit field, and allows access as a 32-bit network byte
< * ordered or a 4-byte array.
< *
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef union _ib_field32_t
< {
< net32_t val;
< uint8_t bytes[4];
<
< } PACK_SUFFIX ib_field32_t;
< #include <complib/cl_packoff.h>
< /*
< * FIELDS
< * val
< * Full field value.
< *
< * bytes
< * Byte array representing the field. The byte array provides identical
< * access independently from CPU byte-ordering.
< *********/
<
2033c2163
< typedef __declspec(align(8)) struct _ib_path_rec
---
typedef struct _ib_path_rec
2035c2165
< uint64_t resv0;
---
uint8_t resv0[8];
2040c2170
< ib_field32_t hop_flow_raw;
---
ib_net32_t hop_flow_raw;
2049,2050c2179
< uint16_t resv1;
< uint32_t resv2;
---
uint8_t resv2[6];
2078c2207,2208
< * In queries, maximum number of paths to return.
---
* Reversible path - 1 bit to say if path is reversible.
* num_path [6:0] In queries, maximum number of paths to return.
2103,2105d2232
< * resv1
< * Reserved bytes.
< *
2111,2132c2238,2258
< /* Port Record Component Masks */
< #define IB_PR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_PR_COMPMASK_DGID (CL_HTON64(1<<2))
< #define IB_PR_COMPMASK_SGID (CL_HTON64(1<<3))
< #define IB_PR_COMPMASK_DLID (CL_HTON64(1<<4))
< #define IB_PR_COMPMASK_SLID (CL_HTON64(1<<5))
< #define IB_PR_COMPMASK_RAWTRAFIC (CL_HTON64(1<<6))
< #define IB_PR_COMPMASK_RESV0 (CL_HTON64(1<<7))
< #define IB_PR_COMPMASK_FLOWLABEL (CL_HTON64(1<<8))
< #define IB_PR_COMPMASK_HOPLIMIT (CL_HTON64(1<<9))
< #define IB_PR_COMPMASK_TCLASS (CL_HTON64(1<<10))
< #define IB_PR_COMPMASK_REVERSIBLE (CL_HTON64(1<<11))
< #define IB_PR_COMPMASK_NUM_PATH (CL_HTON64(1<<12))
< #define IB_PR_COMPMASK_PKEY (CL_HTON64(1<<13))
< #define IB_PR_COMPMASK_RESV1 (CL_HTON64(1<<14))
< #define IB_PR_COMPMASK_SL (CL_HTON64(1<<15))
< #define IB_PR_COMPMASK_MTU_SEL (CL_HTON64(1<<16))
< #define IB_PR_COMPMASK_MTU (CL_HTON64(1<<17))
< #define IB_PR_COMPMASK_RATE_SEL (CL_HTON64(1<<18))
< #define IB_PR_COMPMASK_RATE (CL_HTON64(1<<19))
< #define IB_PR_COMPMASK_PKTLIFETIME_SEL (CL_HTON64(1<<20))
< #define IB_PR_COMPMASK_PFTLIFETIME (CL_HTON64(1<<21))
---
/* Path Record Component Masks */
#define IB_PR_COMPMASK_DGID (CL_HTON64(((uint64_t)1)<<2))
#define IB_PR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<3))
#define IB_PR_COMPMASK_DLID (CL_HTON64(((uint64_t)1)<<4))
#define IB_PR_COMPMASK_SLID (CL_HTON64(((uint64_t)1)<<5))
#define IB_PR_COMPMASK_RAWTRAFFIC (CL_HTON64(((uint64_t)1)<<6))
#define IB_PR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<7))
#define IB_PR_COMPMASK_FLOWLABEL (CL_HTON64(((uint64_t)1)<<8))
#define IB_PR_COMPMASK_HOPLIMIT (CL_HTON64(((uint64_t)1)<<9))
#define IB_PR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<10))
#define IB_PR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<11))
#define IB_PR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<12))
#define IB_PR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<13))
#define IB_PR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<14))
#define IB_PR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<15))
#define IB_PR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<16))
#define IB_PR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<17))
#define IB_PR_COMPMASK_RATESELEC (CL_HTON64(((uint64_t)1)<<18))
#define IB_PR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<19))
#define IB_PR_COMPMASK_PKTLIFETIMESELEC (CL_HTON64(((uint64_t)1)<<20))
#define IB_PR_COMPMASK_PKTLIFETIME (CL_HTON64(((uint64_t)1)<<21))
2135,2138c2261,2264
< #define IB_LR_COMPMASK_FROM_LID (CL_HTON64(1<<0))
< #define IB_LR_COMPMASK_FROM_PORT (CL_HTON64(1<<1))
< #define IB_LR_COMPMASK_TO_PORT (CL_HTON64(1<<2))
< #define IB_LR_COMPMASK_TO_LID (CL_HTON64(1<<3))
---
#define IB_LR_COMPMASK_FROM_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_LR_COMPMASK_FROM_PORT (CL_HTON64(((uint64_t)1)<<1))
#define IB_LR_COMPMASK_TO_PORT (CL_HTON64(((uint64_t)1)<<2))
#define IB_LR_COMPMASK_TO_LID (CL_HTON64(((uint64_t)1)<<3))
2141,2143c2267,2270
< #define IB_VLA_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(1<<1))
< #define IB_VLA_COMPMASK_BLOCK (CL_HTON64(1<<2))
---
#define IB_VLA_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<1))
#define IB_VLA_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<2))
2145,2166c2272,2301
< #define IB_SLVL_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_SLVL_COMPMASK_IN_PORT (CL_HTON64(1<<1))
< #define IB_SLVL_COMPMASK_OUT_PORT (CL_HTON64(1<<2))
< /* LFT Record MASKS */
< #define IB_LFTR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(1<<1))
< /* ModeInfo Record MASKS */
< #define IB_NR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(1<<1))
< #define IB_NR_COMPMASK_BASEVERSION (CL_HTON64(1<<2))
< #define IB_NR_COMPMASK_CLASSVERSION (CL_HTON64(1<<3))
< #define IB_NR_COMPMASK_NODETYPE (CL_HTON64(1<<4))
< #define IB_NR_COMPMASK_NUMPORTS (CL_HTON64(1<<5))
< #define IB_NR_COMPMASK_SYSIMAGEGUID (CL_HTON64(1<<6))
< #define IB_NR_COMPMASK_NODEGUID (CL_HTON64(1<<7))
< #define IB_NR_COMPMASK_PORTGUID (CL_HTON64(1<<8))
< #define IB_NR_COMPMASK_PARTCAP (CL_HTON64(1<<9))
< #define IB_NR_COMPMASK_DEVID (CL_HTON64(1<<10))
< #define IB_NR_COMPMASK_REV (CL_HTON64(1<<11))
< #define IB_NR_COMPMASK_PORTNUM (CL_HTON64(1<<12))
< #define IB_NR_COMPMASK_VENDID (CL_HTON64(1<<13))
< #define IB_NR_COMPMASK_NODEDESC (CL_HTON64(1<<14))
---
#define IB_SLVL_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_SLVL_COMPMASK_IN_PORT (CL_HTON64(((uint64_t)1)<<1))
#define IB_SLVL_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<2))
/* P_Key Table Record Masks */
#define IB_PKEY_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_PKEY_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1))
#define IB_PKEY_COMPMASK_PORT (CL_HTON64(((uint64_t)1)<<2))
/* LFT Record Masks */
#define IB_LFTR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1))
/* NodeInfo Record Masks */
#define IB_NR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(((uint64_t)1)<<1))
#define IB_NR_COMPMASK_BASEVERSION (CL_HTON64(((uint64_t)1)<<2))
#define IB_NR_COMPMASK_CLASSVERSION (CL_HTON64(((uint64_t)1)<<3))
#define IB_NR_COMPMASK_NODETYPE (CL_HTON64(((uint64_t)1)<<4))
#define IB_NR_COMPMASK_NUMPORTS (CL_HTON64(((uint64_t)1)<<5))
#define IB_NR_COMPMASK_SYSIMAGEGUID (CL_HTON64(((uint64_t)1)<<6))
#define IB_NR_COMPMASK_NODEGUID (CL_HTON64(((uint64_t)1)<<7))
#define IB_NR_COMPMASK_PORTGUID (CL_HTON64(((uint64_t)1)<<8))
#define IB_NR_COMPMASK_PARTCAP (CL_HTON64(((uint64_t)1)<<9))
#define IB_NR_COMPMASK_DEVID (CL_HTON64(((uint64_t)1)<<10))
#define IB_NR_COMPMASK_REV (CL_HTON64(((uint64_t)1)<<11))
#define IB_NR_COMPMASK_PORTNUM (CL_HTON64(((uint64_t)1)<<12))
#define IB_NR_COMPMASK_VENDID (CL_HTON64(((uint64_t)1)<<13))
#define IB_NR_COMPMASK_NODEDESC (CL_HTON64(((uint64_t)1)<<14))
2168,2199c2303,2334
< #define IB_SR_COMPMASK_SID (CL_HTON64(1<<0))
< #define IB_SR_COMPMASK_SGID (CL_HTON64(1<<1))
< #define IB_SR_COMPMASK_SPKEY (CL_HTON64(1<<2))
< #define IB_SR_COMPMASK_RES1 (CL_HTON64(1<<3))
< #define IB_SR_COMPMASK_SLEASE (CL_HTON64(1<<4))
< #define IB_SR_COMPMASK_SKEY (CL_HTON64(1<<5))
< #define IB_SR_COMPMASK_SNAME (CL_HTON64(1<<6))
< #define IB_SR_COMPMASK_SDATA8_0 (CL_HTON64(1<<7))
< #define IB_SR_COMPMASK_SDATA8_1 (CL_HTON64(1<<8))
< #define IB_SR_COMPMASK_SDATA8_2 (CL_HTON64(1<<9))
< #define IB_SR_COMPMASK_SDATA8_3 (CL_HTON64(1<<10))
< #define IB_SR_COMPMASK_SDATA8_4 (CL_HTON64(1<<11))
< #define IB_SR_COMPMASK_SDATA8_5 (CL_HTON64(1<<12))
< #define IB_SR_COMPMASK_SDATA8_6 (CL_HTON64(1<<13))
< #define IB_SR_COMPMASK_SDATA8_7 (CL_HTON64(1<<14))
< #define IB_SR_COMPMASK_SDATA8_8 (CL_HTON64(1<<15))
< #define IB_SR_COMPMASK_SDATA8_9 (CL_HTON64(1<<16))
< #define IB_SR_COMPMASK_SDATA8_10 (CL_HTON64(1<<17))
< #define IB_SR_COMPMASK_SDATA8_11 (CL_HTON64(1<<18))
< #define IB_SR_COMPMASK_SDATA8_12 (CL_HTON64(1<<19))
< #define IB_SR_COMPMASK_SDATA8_13 (CL_HTON64(1<<20))
< #define IB_SR_COMPMASK_SDATA8_14 (CL_HTON64(1<<21))
< #define IB_SR_COMPMASK_SDATA8_15 (CL_HTON64(1<<22))
< #define IB_SR_COMPMASK_SDATA16_0 (CL_HTON64(1<<23))
< #define IB_SR_COMPMASK_SDATA16_1 (CL_HTON64(1<<24))
< #define IB_SR_COMPMASK_SDATA16_2 (CL_HTON64(1<<25))
< #define IB_SR_COMPMASK_SDATA16_3 (CL_HTON64(1<<26))
< #define IB_SR_COMPMASK_SDATA16_4 (CL_HTON64(1<<27))
< #define IB_SR_COMPMASK_SDATA16_5 (CL_HTON64(1<<28))
< #define IB_SR_COMPMASK_SDATA16_6 (CL_HTON64(1<<29))
< #define IB_SR_COMPMASK_SDATA16_7 (CL_HTON64(1<<30))
< #define IB_SR_COMPMASK_SDATA32_0 (CL_HTON64(1<<31))
---
#define IB_SR_COMPMASK_SID (CL_HTON64(((uint64_t)1)<<0))
#define IB_SR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<1))
#define IB_SR_COMPMASK_SPKEY (CL_HTON64(((uint64_t)1)<<2))
#define IB_SR_COMPMASK_RES1 (CL_HTON64(((uint64_t)1)<<3))
#define IB_SR_COMPMASK_SLEASE (CL_HTON64(((uint64_t)1)<<4))
#define IB_SR_COMPMASK_SKEY (CL_HTON64(((uint64_t)1)<<5))
#define IB_SR_COMPMASK_SNAME (CL_HTON64(((uint64_t)1)<<6))
#define IB_SR_COMPMASK_SDATA8_0 (CL_HTON64(((uint64_t)1)<<7))
#define IB_SR_COMPMASK_SDATA8_1 (CL_HTON64(((uint64_t)1)<<8))
#define IB_SR_COMPMASK_SDATA8_2 (CL_HTON64(((uint64_t)1)<<9))
#define IB_SR_COMPMASK_SDATA8_3 (CL_HTON64(((uint64_t)1)<<10))
#define IB_SR_COMPMASK_SDATA8_4 (CL_HTON64(((uint64_t)1)<<11))
#define IB_SR_COMPMASK_SDATA8_5 (CL_HTON64(((uint64_t)1)<<12))
#define IB_SR_COMPMASK_SDATA8_6 (CL_HTON64(((uint64_t)1)<<13))
#define IB_SR_COMPMASK_SDATA8_7 (CL_HTON64(((uint64_t)1)<<14))
#define IB_SR_COMPMASK_SDATA8_8 (CL_HTON64(((uint64_t)1)<<15))
#define IB_SR_COMPMASK_SDATA8_9 (CL_HTON64(((uint64_t)1)<<16))
#define IB_SR_COMPMASK_SDATA8_10 (CL_HTON64(((uint64_t)1)<<17))
#define IB_SR_COMPMASK_SDATA8_11 (CL_HTON64(((uint64_t)1)<<18))
#define IB_SR_COMPMASK_SDATA8_12 (CL_HTON64(((uint64_t)1)<<19))
#define IB_SR_COMPMASK_SDATA8_13 (CL_HTON64(((uint64_t)1)<<20))
#define IB_SR_COMPMASK_SDATA8_14 (CL_HTON64(((uint64_t)1)<<21))
#define IB_SR_COMPMASK_SDATA8_15 (CL_HTON64(((uint64_t)1)<<22))
#define IB_SR_COMPMASK_SDATA16_0 (CL_HTON64(((uint64_t)1)<<23))
#define IB_SR_COMPMASK_SDATA16_1 (CL_HTON64(((uint64_t)1)<<24))
#define IB_SR_COMPMASK_SDATA16_2 (CL_HTON64(((uint64_t)1)<<25))
#define IB_SR_COMPMASK_SDATA16_3 (CL_HTON64(((uint64_t)1)<<26))
#define IB_SR_COMPMASK_SDATA16_4 (CL_HTON64(((uint64_t)1)<<27))
#define IB_SR_COMPMASK_SDATA16_5 (CL_HTON64(((uint64_t)1)<<28))
#define IB_SR_COMPMASK_SDATA16_6 (CL_HTON64(((uint64_t)1)<<29))
#define IB_SR_COMPMASK_SDATA16_7 (CL_HTON64(((uint64_t)1)<<30))
#define IB_SR_COMPMASK_SDATA32_0 (CL_HTON64(((uint64_t)1)<<31))
2204a2340
2206,2253c2342,2391
< #define IB_PIR_COMPMASK_LID (CL_HTON64(1<<0))
< #define IB_PIR_COMPMASK_PORTNUM (CL_HTON64(1<<1))
< #define IB_PIR_COMPMASK_RESV1 (CL_HTON64(1<<2))
< #define IB_PIR_COMPMASK_MKEY (CL_HTON64(1<<3))
< #define IB_PIR_COMPMASK_GIDPRE (CL_HTON64(1<<4))
< #define IB_PIR_COMPMASK_BASELID (CL_HTON64(1<<5))
< #define IB_PIR_COMPMASK_SMLID (CL_HTON64(1<<6))
< #define IB_PIR_COMPMASK_CAPMASK (CL_HTON64(1<<7))
< #define IB_PIR_COMPMASK_DIAGCODE (CL_HTON64(1<<8))
< #define IB_PIR_COMPMASK_MKEYLEASEPRD (CL_HTON64(1<<9))
< #define IB_PIR_COMPMASK_LOCALPORTNUM (CL_HTON64(1<<10))
< #define IB_PIR_COMPMASK_LNKWIDTHSUPPORT (CL_HTON64(1<<11))
< #define IB_PIR_COMPMASK_LNKWIDTHACTIVE (CL_HTON64(1<<12))
< #define IB_PIR_COMPMASK_LINKWIDTHENABLED (CL_HTON64(1<<13))
< #define IB_PIR_COMPMASK_LNKSPEEDSUPPORT (CL_HTON64(1<<14))
< #define IB_PIR_COMPMASK_PORTSTATE (CL_HTON64(1<<15))
< #define IB_PIR_COMPMASK_PORTPHYSTATE (CL_HTON64(1<<16))
< #define IB_PIR_COMPMASK_LINKDWNDFLTSTATE (CL_HTON64(1<<17))
< #define IB_PIR_COMPMASK_MKEYPROTBITS (CL_HTON64(1<<18))
< #define IB_PIR_COMPMASK_LMC (CL_HTON64(1<<19))
< #define IB_PIR_COMPMASK_LINKSPEEDACTIVE (CL_HTON64(1<<20))
< #define IB_PIR_COMPMASK_LINKSPEEDENABLE (CL_HTON64(1<<21))
< #define IB_PIR_COMPMASK_NEIGHBORMTU (CL_HTON64(1<<22))
< #define IB_PIR_COMPMASK_MASTERSMSL (CL_HTON64(1<<23))
< #define IB_PIR_COMPMASK_VLCAP (CL_HTON64(1<<24))
< #define IB_PIR_COMPMASK_INITTYPE (CL_HTON64(1<<25))
< #define IB_PIR_COMPMASK_VLHIGHLIMIT (CL_HTON64(1<<26))
< #define IB_PIR_COMPMASK_VLARBHIGHCAP (CL_HTON64(1<<27))
< #define IB_PIR_COMPMASK_VLARBLOWCAP (CL_HTON64(1<<28))
< #define IB_PIR_COMPMASK_INITTYPEREPLY (CL_HTON64(1<<29))
< #define IB_PIR_COMPMASK_MTUCAP (CL_HTON64(1<<30))
< #define IB_PIR_COMPMASK_VLSTALLCNT (CL_HTON64(1<<31))
< #define IB_PIR_COMPMASK_HOQLIFE (CL_HTON64(((uint64_t)1)<<32))
< #define IB_PIR_COMPMASK_OPVLS (CL_HTON64(((uint64_t)1)<<33))
< #define IB_PIR_COMPMASK_PARENFIN (CL_HTON64(((uint64_t)1)<<34))
< #define IB_PIR_COMPMASK_PARENFOUT (CL_HTON64(((uint64_t)1)<<35))
< #define IB_PIR_COMPMASK_FILTERRAWIN (CL_HTON64(((uint64_t)1)<<36))
< #define IB_PIR_COMPMASK_FILTERRAWOUT (CL_HTON64(((uint64_t)1)<<37))
< #define IB_PIR_COMPMASK_MKEYVIO (CL_HTON64(((uint64_t)1)<<38))
< #define IB_PIR_COMPMASK_PKEYVIO (CL_HTON64(((uint64_t)1)<<39))
< #define IB_PIR_COMPMASK_QKEYVIO (CL_HTON64(((uint64_t)1)<<40))
< #define IB_PIR_COMPMASK_GUIDCAP (CL_HTON64(((uint64_t)1)<<41))
< #define IB_PIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<42))
< #define IB_PIR_COMPMASK_SUBNTO (CL_HTON64(((uint64_t)1)<<43))
< #define IB_PIR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<44))
< #define IB_PIR_COMPMASK_RESPTIME (CL_HTON64(((uint64_t)1)<<45))
< #define IB_PIR_COMPMASK_LOCALPHYERR (CL_HTON64(((uint64_t)1)<<46))
< #define IB_PIR_COMPMASK_OVERRUNERR (CL_HTON64(((uint64_t)1)<<47))
---
#define IB_PIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_PIR_COMPMASK_PORTNUM (CL_HTON64(((uint64_t)1)<<1))
#define IB_PIR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<2))
#define IB_PIR_COMPMASK_MKEY (CL_HTON64(((uint64_t)1)<<3))
#define IB_PIR_COMPMASK_GIDPRE (CL_HTON64(((uint64_t)1)<<4))
#define IB_PIR_COMPMASK_BASELID (CL_HTON64(((uint64_t)1)<<5))
#define IB_PIR_COMPMASK_SMLID (CL_HTON64(((uint64_t)1)<<6))
#define IB_PIR_COMPMASK_CAPMASK (CL_HTON64(((uint64_t)1)<<7))
#define IB_PIR_COMPMASK_DIAGCODE (CL_HTON64(((uint64_t)1)<<8))
#define IB_PIR_COMPMASK_MKEYLEASEPRD (CL_HTON64(((uint64_t)1)<<9))
#define IB_PIR_COMPMASK_LOCALPORTNUM (CL_HTON64(((uint64_t)1)<<10))
#define IB_PIR_COMPMASK_LINKWIDTHENABLED (CL_HTON64(((uint64_t)1)<<11))
#define IB_PIR_COMPMASK_LNKWIDTHSUPPORT (CL_HTON64(((uint64_t)1)<<12))
#define IB_PIR_COMPMASK_LNKWIDTHACTIVE (CL_HTON64(((uint64_t)1)<<13))
#define IB_PIR_COMPMASK_LNKSPEEDSUPPORT (CL_HTON64(((uint64_t)1)<<14))
#define IB_PIR_COMPMASK_PORTSTATE (CL_HTON64(((uint64_t)1)<<15))
#define IB_PIR_COMPMASK_PORTPHYSTATE (CL_HTON64(((uint64_t)1)<<16))
#define IB_PIR_COMPMASK_LINKDWNDFLTSTATE (CL_HTON64(((uint64_t)1)<<17))
#define IB_PIR_COMPMASK_MKEYPROTBITS (CL_HTON64(((uint64_t)1)<<18))
#define IB_PIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<19))
#define IB_PIR_COMPMASK_LMC (CL_HTON64(((uint64_t)1)<<20))
#define IB_PIR_COMPMASK_LINKSPEEDACTIVE (CL_HTON64(((uint64_t)1)<<21))
#define IB_PIR_COMPMASK_LINKSPEEDENABLE (CL_HTON64(((uint64_t)1)<<22))
#define IB_PIR_COMPMASK_NEIGHBORMTU (CL_HTON64(((uint64_t)1)<<23))
#define IB_PIR_COMPMASK_MASTERSMSL (CL_HTON64(((uint64_t)1)<<24))
#define IB_PIR_COMPMASK_VLCAP (CL_HTON64(((uint64_t)1)<<25))
#define IB_PIR_COMPMASK_INITTYPE (CL_HTON64(((uint64_t)1)<<26))
#define IB_PIR_COMPMASK_VLHIGHLIMIT (CL_HTON64(((uint64_t)1)<<27))
#define IB_PIR_COMPMASK_VLARBHIGHCAP (CL_HTON64(((uint64_t)1)<<28))
#define IB_PIR_COMPMASK_VLARBLOWCAP (CL_HTON64(((uint64_t)1)<<29))
#define IB_PIR_COMPMASK_INITTYPEREPLY (CL_HTON64(((uint64_t)1)<<30))
#define IB_PIR_COMPMASK_MTUCAP (CL_HTON64(((uint64_t)1)<<31))
#define IB_PIR_COMPMASK_VLSTALLCNT (CL_HTON64(((uint64_t)1)<<32))
#define IB_PIR_COMPMASK_HOQLIFE (CL_HTON64(((uint64_t)1)<<33))
#define IB_PIR_COMPMASK_OPVLS (CL_HTON64(((uint64_t)1)<<34))
#define IB_PIR_COMPMASK_PARENFIN (CL_HTON64(((uint64_t)1)<<35))
#define IB_PIR_COMPMASK_PARENFOUT (CL_HTON64(((uint64_t)1)<<36))
#define IB_PIR_COMPMASK_FILTERRAWIN (CL_HTON64(((uint64_t)1)<<37))
#define IB_PIR_COMPMASK_FILTERRAWOUT (CL_HTON64(((uint64_t)1)<<38))
#define IB_PIR_COMPMASK_MKEYVIO (CL_HTON64(((uint64_t)1)<<39))
#define IB_PIR_COMPMASK_PKEYVIO (CL_HTON64(((uint64_t)1)<<40))
#define IB_PIR_COMPMASK_QKEYVIO (CL_HTON64(((uint64_t)1)<<41))
#define IB_PIR_COMPMASK_GUIDCAP (CL_HTON64(((uint64_t)1)<<42))
#define IB_PIR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<43))
#define IB_PIR_COMPMASK_SUBNTO (CL_HTON64(((uint64_t)1)<<44))
#define IB_PIR_COMPMASK_RESV4 (CL_HTON64(((uint64_t)1)<<45))
#define IB_PIR_COMPMASK_RESPTIME (CL_HTON64(((uint64_t)1)<<46))
#define IB_PIR_COMPMASK_LOCALPHYERR (CL_HTON64(((uint64_t)1)<<47))
#define IB_PIR_COMPMASK_OVERRUNERR (CL_HTON64(((uint64_t)1)<<48))
2255,2273c2393,2449
< #define IB_MCR_COMPMASK_GID (CL_HTON64(1<<0))
< #define IB_MCR_COMPMASK_MGID (CL_HTON64(1<<0))
< #define IB_MCR_COMPMASK_PORT_GID (CL_HTON64(1<<1))
< #define IB_MCR_COMPMASK_QKEY (CL_HTON64(1<<2))
< #define IB_MCR_COMPMASK_MLID (CL_HTON64(1<<3))
< #define IB_MCR_COMPMASK_MTU_SEL (CL_HTON64(1<<4))
< #define IB_MCR_COMPMASK_MTU (CL_HTON64(1<<5))
< #define IB_MCR_COMPMASK_TCLASS (CL_HTON64(1<<6))
< #define IB_MCR_COMPMASK_PKEY (CL_HTON64(1<<7))
< #define IB_MCR_COMPMASK_RATE_SEL (CL_HTON64(1<<8))
< #define IB_MCR_COMPMASK_RATE (CL_HTON64(1<<9))
< #define IB_MCR_COMPMASK_LIFE_SEL (CL_HTON64(1<<10))
< #define IB_MCR_COMPMASK_LIFE (CL_HTON64(1<<11))
< #define IB_MCR_COMPMASK_SL (CL_HTON64(1<<12))
< #define IB_MCR_COMPMASK_FLOW (CL_HTON64(1<<13))
< #define IB_MCR_COMPMASK_HOP (CL_HTON64(1<<14))
< #define IB_MCR_COMPMASK_SCOPE (CL_HTON64(1<<15))
< #define IB_MCR_COMPMASK_JOIN_STATE (CL_HTON64(1<<16))
< #define IB_MCR_COMPMASK_PROXY (CL_HTON64(1<<17))
---
#define IB_MCR_COMPMASK_GID (CL_HTON64(((uint64_t)1)<<0))
#define IB_MCR_COMPMASK_MGID (CL_HTON64(((uint64_t)1)<<0))
#define IB_MCR_COMPMASK_PORT_GID (CL_HTON64(((uint64_t)1)<<1))
#define IB_MCR_COMPMASK_QKEY (CL_HTON64(((uint64_t)1)<<2))
#define IB_MCR_COMPMASK_MLID (CL_HTON64(((uint64_t)1)<<3))
#define IB_MCR_COMPMASK_MTU_SEL (CL_HTON64(((uint64_t)1)<<4))
#define IB_MCR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<5))
#define IB_MCR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<6))
#define IB_MCR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7))
#define IB_MCR_COMPMASK_RATE_SEL (CL_HTON64(((uint64_t)1)<<8))
#define IB_MCR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<9))
#define IB_MCR_COMPMASK_LIFE_SEL (CL_HTON64(((uint64_t)1)<<10))
#define IB_MCR_COMPMASK_LIFE (CL_HTON64(((uint64_t)1)<<11))
#define IB_MCR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<12))
#define IB_MCR_COMPMASK_FLOW (CL_HTON64(((uint64_t)1)<<13))
#define IB_MCR_COMPMASK_HOP (CL_HTON64(((uint64_t)1)<<14))
#define IB_MCR_COMPMASK_SCOPE (CL_HTON64(((uint64_t)1)<<15))
#define IB_MCR_COMPMASK_JOIN_STATE (CL_HTON64(((uint64_t)1)<<16))
#define IB_MCR_COMPMASK_PROXY (CL_HTON64(((uint64_t)1)<<17))
/* GUID Info Record Component Masks */
#define IB_GIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
#define IB_GIR_COMPMASK_BLOCKNUM (CL_HTON64(((uint64_t)1)<<1))
#define IB_GIR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<2))
#define IB_GIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<3))
#define IB_GIR_COMPMASK_GID0 (CL_HTON64(((uint64_t)1)<<4))
#define IB_GIR_COMPMASK_GID1 (CL_HTON64(((uint64_t)1)<<5))
#define IB_GIR_COMPMASK_GID2 (CL_HTON64(((uint64_t)1)<<6))
#define IB_GIR_COMPMASK_GID3 (CL_HTON64(((uint64_t)1)<<7))
#define IB_GIR_COMPMASK_GID4 (CL_HTON64(((uint64_t)1)<<8))
#define IB_GIR_COMPMASK_GID5 (CL_HTON64(((uint64_t)1)<<9))
#define IB_GIR_COMPMASK_GID6 (CL_HTON64(((uint64_t)1)<<10))
#define IB_GIR_COMPMASK_GID7 (CL_HTON64(((uint64_t)1)<<11))
/* MultiPath Record Component Masks */
#define IB_MPR_COMPMASK_RAWTRAFFIC (CL_HTON64(((uint64_t)1)<<0))
#define IB_MPR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<1))
#define IB_MPR_COMPMASK_FLOWLABEL (CL_HTON64(((uint64_t)1)<<2))
#define IB_MPR_COMPMASK_HOPLIMIT (CL_HTON64(((uint64_t)1)<<3))
#define IB_MPR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<4))
#define IB_MPR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<5))
#define IB_MPR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<6))
#define IB_MPR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7))
#define IB_MPR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<8))
#define IB_MPR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<9))
#define IB_MPR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<10))
#define IB_MPR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<11))
#define IB_MPR_COMPMASK_RATESELEC (CL_HTON64(((uint64_t)1)<<12))
#define IB_MPR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<13))
#define IB_MPR_COMPMASK_PKTLIFETIMESELEC (CL_HTON64(((uint64_t)1)<<14))
#define IB_MPR_COMPMASK_PKTLIFETIME (CL_HTON64(((uint64_t)1)<<15))
#define IB_MPR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<16))
#define IB_MPR_COMPMASK_INDEPSELEC (CL_HTON64(((uint64_t)1)<<17))
#define IB_MPR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<18))
#define IB_MPR_COMPMASK_SGIDCOUNT (CL_HTON64(((uint64_t)1)<<19))
#define IB_MPR_COMPMASK_DGIDCOUNT (CL_HTON64(((uint64_t)1)<<20))
#define IB_MPR_COMPMASK_RESV4 (CL_HTON64(((uint64_t)1)<<21))
2284c2460
< AL_INLINE void AL_API
---
static inline void
2287,2300c2463,2476
< IN const ib_gid_t* const p_dgid,
< IN const ib_gid_t* const p_sgid,
< IN const ib_net16_t dlid,
< IN const ib_net16_t slid,
< IN const uint8_t num_path,
< IN const ib_net16_t pkey,
< IN const uint8_t sl,
< IN const uint8_t mtu_selector,
< IN const uint8_t mtu,
< IN const uint8_t rate_selector,
< IN const uint8_t rate,
< IN const uint8_t pkt_life_selector,
< IN const uint8_t pkt_life,
< IN const uint8_t preference )
---
IN ib_gid_t* const p_dgid,
IN ib_gid_t* const p_sgid,
IN ib_net16_t dlid,
IN ib_net16_t slid,
IN uint8_t num_path,
IN ib_net16_t pkey,
IN uint8_t sl,
IN uint8_t mtu_selector,
IN uint8_t mtu,
IN uint8_t rate_selector,
IN uint8_t rate,
IN uint8_t pkt_life_selector,
IN uint8_t pkt_life,
IN uint8_t preference )
2319c2495
< p_rec->hop_flow_raw.val = 0;
---
p_rec->hop_flow_raw = 0;
2322,2324c2498,2500
< p_rec->resv0 = 0;
< p_rec->resv1 = 0;
< p_rec->resv2 = 0;
---
*((uint64_t*)p_rec->resv0) = 0;
*((uint32_t*)p_rec->resv2) = 0;
*((uint16_t*)p_rec->resv2 + 2) = 0;
2344c2520,2521
< * [in] In queries, maximum number of paths to return.
---
* [in] Reversible path - 1 bit to say if path is reversible.
* num_path [6:0] In queries, maximum number of paths to return.
2383a2561,2589
/****f* IBA Base: Types/ib_path_rec_num_path
* NAME
* ib_path_rec_num_path
*
* DESCRIPTION
* Get max number of paths to return.
*
* SYNOPSIS
*/
static inline uint8_t
ib_path_rec_num_path(
IN const ib_path_rec_t* const p_rec )
{
return( p_rec->num_path &0x7F );
}
/*
* PARAMETERS
* p_rec
* [in] Pointer to the path record object.
*
* RETURN VALUES
* Maximum number of paths to return for each unique SGID_DGID combination.
*
* NOTES
*
* SEE ALSO
* ib_path_rec_t
*********/
2393c2599
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2405,2411c2611
< * Encoded path MTU.
< * 1: 256
< * 2: 512
< * 3: 1024
< * 4: 2048
< * 5: 4096
< * others: reserved
---
* SL.
2428c2628
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2463c2663
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2496c2696
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2511a2712,2717
* 5: 5 Gb/sec.
* 6: 20 Gb/sec.
* 7: 40 Gb/sec.
* 8: 60 Gb/sec.
* 9: 80 Gb/sec.
* 10: 120 Gb/sec.
2529c2735
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2562c2768
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2574c2780
< * Encoded path pkt_life = 4.096 �sec * 2 PacketLifeTime.
---
* Encoded path pkt_life = 4.096 �sec * 2 ** PacketLifeTime.
2591c2797
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2624c2830
< AL_INLINE net32_t AL_API
---
static inline uint32_t
2628c2834
< return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw.val) >> 8) & 0x000FFFFF ) );
---
return( ((cl_ntoh32(p_rec->hop_flow_raw) >> 8) & 0x000FFFFF) );
2653c2859
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2657c2863
< return( p_rec->hop_flow_raw.bytes[3] );
---
return( (uint8_t)(p_rec->hop_flow_raw & 0x000000FF ) );
2673,2714d2878
< /****f* IBA Base: Types/ib_path_rec_set_hop_flow_raw
< * NAME
< * ib_path_rec_set_hop_flow_raw
< *
< * DESCRIPTION
< * Sets the hop limit, flow label, and raw traffic bits of a path record.
< *
< * SYNOPSIS
< */
< AL_INLINE void AL_API
< ib_path_rec_set_hop_flow_raw(
< OUT ib_path_rec_t* const p_rec,
< IN const uint8_t hop_limit,
< IN const net32_t flow_lbl,
< IN const boolean_t raw )
< {
< p_rec->hop_flow_raw.val = (cl_ntoh32( flow_lbl ) & 0x000FFFFF) << 8;
< if( raw )
< p_rec->hop_flow_raw.val |= 0x80000000;
< p_rec->hop_flow_raw.val = cl_hton32( p_rec->hop_flow_raw.val );
< p_rec->hop_flow_raw.bytes[3] = hop_limit;
< }
< /*
< * PARAMETERS
< * p_rec
< * Pointer to the path record whose hop limit, flow label, and rab
< * traffic fields to set.
< *
< * hop_limit
< * Hop limit to set in the path record.
< *
< * flow_lbl
< * Flow label, in network byte order, to set in the path record.
< *
< * raw
< * Boolean flag to indicate whether the path record is for raw traffic.
< *
< * SEE ALSO
< * ib_path_rec_t
< *********/
<
<
2776c2940,2941
< ib_net32_t resp_time_val;
---
uint8_t reserved[3];
uint8_t resp_time_val;
2894c3059
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2922c3087
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
2963d3127
<
3041c3205
< AL_INLINE void AL_API
---
static inline void
3104c3268
< AL_INLINE void AL_API
---
static inline void
3149c3313
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3206c3370
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3231c3395
< AL_INLINE void AL_API
---
static inline void
3241c3405
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3259c3423,3424
< #define IB_SMP_DIRECTION (CL_HTON16(0x8000))
---
#define IB_SMP_DIRECTION_HO 0x8000
#define IB_SMP_DIRECTION (CL_HTON16(IB_SMP_DIRECTION_HO))
3271c3436,3437
< #define IB_SMP_STATUS_MASK (CL_HTON16(0x7FFF))
---
#define IB_SMP_STATUS_MASK_HO 0x7FFF
#define IB_SMP_STATUS_MASK (CL_HTON16(IB_SMP_STATUS_MASK_HO))
3376c3542
< AL_INLINE ib_net16_t AL_API
---
static inline ib_net16_t
3405c3571
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3433c3599
< AL_INLINE boolean_t AL_API
---
static inline boolean_t
3466c3632
< AL_INLINE void AL_API
---
static inline void
3496c3662
< cl_memclr( p_smp->resv1,
---
memset( p_smp->resv1, 0,
3503c3669
< cl_memcpy( &p_smp->initial_path, path_out,
---
memcpy( &p_smp->initial_path, path_out,
3552c3718
< AL_INLINE void* AL_API
---
static inline void*
3645,3647c3811
<
<
< AL_INLINE uint32_t AL_API
---
static inline uint32_t
3654c3818
< AL_INLINE ib_net16_t AL_API
---
static inline ib_net16_t
3658,3660d3821
< if( attr_size & 0x07 )
< return( cl_hton16( (uint16_t)(attr_size >> 3) + 1 ) );
< else
3664d3824
<
3674c3834
< AL_INLINE void* AL_API
---
static inline void*
3711c3871
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3741c3901
< AL_INLINE ib_net32_t AL_API
---
static inline ib_net32_t
3810,3811c3970,3971
< uint8_t state_info1; // LinkSpeedSupported and PortState
< uint8_t state_info2; // PortPhysState and LinkDownDefaultState
---
uint8_t state_info1; /* LinkSpeedSupported and PortState */
uint8_t state_info2; /* PortPhysState and LinkDownDefaultState */
3813c3973
< uint8_t link_speed; // LinkSpeedEnabled and LinkSpeedActive
---
uint8_t link_speed; /* LinkSpeedEnabled and LinkSpeedActive */
3815c3975
< uint8_t vl_cap; // VlCap and InitType
---
uint8_t vl_cap; /* VLCap and InitType */
3826c3986,3987
< uint8_t subnet_timeout;
---
uint8_t subnet_timeout; /* cli_rereg(1b), resrv(
2b), timeout(5b) */
3835a3997
#define IB_PORT_LMC_MAX 0x07
3841a4004,4006
#define IB_PORT_PHYS_STATE_MASK 0xF0
#define IB_PORT_PHYS_STATE_SHIFT 4
#define IB_PORT_LNKDWNDFTSTATE_MASK 0x0F
3854c4019
< #define IB_PORT_CAP_HAS_SYS_GUID (CL_NTOH32(0x00000800))
---
#define IB_PORT_CAP_HAS_SYS_IMG_GUID (CL_NTOH32(0x00000800))
3861c4026
< #define IB_PORT_CAP_HAS_REINIT (CL_NTOH32(0x00040000))
---
#define IB_PORT_CAP_REINIT (CL_NTOH32(0x00040000))
3867,3868c4032,4033
< #define IB_PORT_CAP_HAS_LINK_TRIP (CL_NTOH32(0x01000000))
< #define IB_PORT_CAP_HAS_CLI_REREG (CL_NTOH32(0x02000000))
---
#define IB_PORT_CAP_HAS_LINK_RT_LATENCY (CL_NTOH32(0x01000000))
#define IB_PORT_CAP_HAS_CLIENT_REREG (CL_NTOH32(0x02000000))
3885c4050
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3912c4077
< AL_INLINE void AL_API
---
static inline void
3943c4108
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3960a4126,4152
/****f* IBA Base: Types/ib_port_info_get_init_type
* NAME
* ib_port_info_get_init_type
*
* DESCRIPTION
* Gets the init type of a port.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_init_type(
IN const ib_port_info_t* const p_pi)
{
return (uint8_t) (p_pi->vl_cap & 0x0F);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* InitType field
*
* NOTES
*
* SEE ALSO
*********/
3970c4162
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
3997c4189
< AL_INLINE void AL_API
---
static inline void
4028c4220
< AL_INLINE void AL_API
---
static inline void
4057c4249
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4088c4280
< AL_INLINE void AL_API
---
static inline void
4114c4306
< /****f* IBA Base: Types/ib_port_info_get_link_speed_active
---
/****f* IBA Base: Types/ib_port_info_get_port_phys_state
4116c4308
< * ib_port_info_get_link_speed_active
---
* ib_port_info_get_port_phys_state
4119c4311
< * Returns the Link Speed Active value assigned to this port.
---
* Returns the encoded value for the port physical state.
4123,4124c4315,4316
< AL_INLINE uint8_t AL_API
< ib_port_info_get_link_speed_active(
---
static inline uint8_t
ib_port_info_get_port_phys_state(
4127,4128c4319,4321
< return( (uint8_t)((p_pi->link_speed & IB_PORT_LINK_SPEED_ACTIVE_MASK) >>
< IB_PORT_LINK_SPEED_SHIFT) );
---
return( (uint8_t)((p_pi->state_info2 &
IB_PORT_PHYS_STATE_MASK) >>
IB_PORT_PHYS_STATE_SHIFT) );
4136c4329
< * Returns the link speed active value assigned to this port.
---
* Returns the encoded value for the port physical state.
4142a4336,4467
/****f* IBA Base: Types/ib_port_info_set_port_phys_state.
* NAME
* ib_port_info_set_port_phys_state
*
* DESCRIPTION
* Given an integer of the port physical state,
* Set the appropriate bits in state_info2
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_port_phys_state(
IN uint8_t const phys_state,
IN ib_port_info_t* p_pi )
{
p_pi->state_info2 =
( ~IB_PORT_PHYS_STATE_MASK & p_pi->state_info2 ) |
( IB_PORT_PHYS_STATE_MASK &
(phys_state << IB_PORT_PHYS_STATE_SHIFT) );
}
/*
* PARAMETERS
* phys_state
* [in] port physical state.
*
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* This function does not return a value.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_link_down_def_state
* NAME
* ib_port_info_get_link_down_def_state
*
* DESCRIPTION
* Returns the link down default state.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_link_down_def_state(
IN const ib_port_info_t* const p_pi )
{
return( (uint8_t)(p_pi->state_info2 & IB_PORT_LNKDWNDFTSTATE_MASK) );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* link down default state of the port.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_set_link_down_def_state
* NAME
* ib_port_info_set_link_down_def_state
*
* DESCRIPTION
* Sets the link down default state of the port.
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_link_down_def_state(
IN ib_port_info_t* const p_pi,
IN const uint8_t link_dwn_state )
{
p_pi->state_info2 = (uint8_t)((p_pi->state_info2 & 0xF0) | link_dwn_state );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* link_dwn_state
* [in] Link down default state of the port.
*
* RETURN VALUES
* None.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_link_speed_active
* NAME
* ib_port_info_get_link_speed_active
*
* DESCRIPTION
* Returns the Link Speed Active value assigned to this port.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_link_speed_active(
IN const ib_port_info_t* const p_pi )
{
return( (uint8_t)((p_pi->link_speed &
IB_PORT_LINK_SPEED_ACTIVE_MASK) >>
IB_PORT_LINK_SPEED_SHIFT) );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Returns the link speed active value assigned to this port.
*
* NOTES
*
* SEE ALSO
*********/
#define IB_LINK_WIDTH_ACTIVE_1X 1
#define IB_LINK_WIDTH_ACTIVE_4X 2
#define IB_LINK_WIDTH_ACTIVE_12X 8
#define IB_LINK_SPEED_ACTIVE_2_5 1
#define IB_LINK_SPEED_ACTIVE_5 2
#define IB_LINK_SPEED_ACTIVE_10 4
4144,4151c4469
< #define IB_LINK_WIDTH_ACTIVE_1X 1
< #define IB_LINK_WIDTH_ACTIVE_4X 2
< #define IB_LINK_WIDTH_ACTIVE_12X 8
<
< #define IB_LINK_SPEED_ACTIVE_2_5 1
< #define IB_LINK_SPEED_ACTIVE_5 2
< #define IB_LINK_SPEED_ACTIVE_10 4
<
---
/* following v1 ver1.2 p901 */
4161a4480,4481
#define IB_MIN_RATE IB_PATH_RECORD_RATE_2_5_GBS
#define IB_MAX_RATE IB_PATH_RECORD_RATE_120_GBS
4172c4492,4493
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4176,4177c4497,4502
< switch( p_pi->link_width_active * p_pi->link_width_active *
< ib_port_info_get_link_speed_active( p_pi ) )
---
uint8_t rate = 0;
switch (ib_port_info_get_link_speed_active(p_pi))
{
switch (p_pi->link_width_active)
4179,4180c4504,4510
< return IB_PATH_RECORD_RATE_2_5_GBS;
---
rate = IB_PATH_RECORD_RATE_2_5_GBS;
break;
rate = IB_PATH_RECORD_RATE_10_GBS;
break;
4182,4183c4512,4514
< return IB_PATH_RECORD_RATE_5_GBS;
---
rate = IB_PATH_RECORD_RATE_30_GBS;
break;
4185,4186c4516,4526
< return IB_PATH_RECORD_RATE_10_GBS;
---
rate = IB_PATH_RECORD_RATE_2_5_GBS;
break;
}
break;
switch (p_pi->link_width_active)
{
rate = IB_PATH_RECORD_RATE_5_GBS;
break;
4188,4189c4528,4530
< return IB_PATH_RECORD_RATE_20_GBS;
---
rate = IB_PATH_RECORD_RATE_20_GBS;
break;
4191,4192c4532,4534
< return IB_PATH_RECORD_RATE_40_GBS;
---
rate = IB_PATH_RECORD_RATE_60_GBS;
break;
4194,4195c4536,4546
< return IB_PATH_RECORD_RATE_30_GBS;
---
rate = IB_PATH_RECORD_RATE_5_GBS;
break;
}
break;
switch (p_pi->link_width_active)
{
rate = IB_PATH_RECORD_RATE_10_GBS;
break;
4197,4198c4548,4550
< return IB_PATH_RECORD_RATE_60_GBS;
---
rate = IB_PATH_RECORD_RATE_40_GBS;
break;
4200,4201c4552,4554
< return IB_PATH_RECORD_RATE_120_GBS;
---
rate =IB_PATH_RECORD_RATE_120_GBS;
break;
4204c4557,4563
< return IB_PATH_RECORD_RATE_2_5_GBS;
---
rate = IB_PATH_RECORD_RATE_10_GBS;
break;
}
break;
rate = IB_PATH_RECORD_RATE_2_5_GBS;
break;
4205a4565,4566
return rate;
4229c4590
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4238c4599
< //link_width_supported = 1: 1x
---
/* link_width_supported = 1: 1x */
4242c4603
< //link_width_supported = 3: 1x or 4x
---
/* link_width_supported = 3: 1x or 4x */
4254c4615
< //link_width_supported = 11: 1x or 4x or 12x
---
/* link_width_supported = 11: 1x or 4x or 12x */
4291d4651
<
4301c4661
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4328c4688
< AL_INLINE uint8_t AL_API
---
static inline uint8_t
4355c4715
< AL_INLINE void AL_API
---
static inline void
4379a4740,4798
/****f* IBA Base: Types/ib_port_info_get_master_smsl
* NAME
* ib_port_info_get_master_smsl
*
* DESCRIPTION
* Returns the encoded value for the Master SMSL at this port.
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_master_smsl(
IN const ib_port_info_t* const p_pi )
{
return (uint8_t) (p_pi->mtu_smsl & 0x0F);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Returns the encoded value for the Master SMSL at this port.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_set_master_smsl
* NAME
* ib_port_info_set_master_smsl
*
* DESCRIPTION
* Sets the Master SMSL value in the PortInfo attribute.
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_master_smsl(
IN ib_port_info_t* const p_pi,
IN const uint8_t smsl )
{
p_pi->mtu_smsl = (uint8_t)((p_pi->mtu_smsl & 0xF0) | smsl );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* mtu
* [in] Encoded Master SMSL value to set
*
* RETURN VALUES
* None.
*
* NOTES
*
* SEE ALSO
*********/
4389c4808
< AL_INLINE void AL_API
---
static inline void
4395c4814,4816
< p_pi->subnet_timeout = (uint8_t)(timeout & 0x1F);
---
p_pi->subnet_timeout =
(uint8_t)(
(p_pi->subnet_timeout & 0x80) | (timeout & 0x1F));
4413c4834
< /****f* IBA Base: Types/ib_port_info_get_lmc
---
/****f* IBA Base: Types/ib_port_info_set_client_rereg
4415c4836
< * ib_port_info_get_lmc
---
* ib_port_info_set_client_rereg
4418c4839
< * Returns the LMC value assigned to this port.
---
* Sets the encoded client reregistration bit value in the PortInfo attribute.
4422,4424c4843,4846
< AL_INLINE uint8_t AL_API
< ib_port_info_get_lmc(
< IN const ib_port_info_t* const p_pi )
---
static inline void
ib_port_info_set_client_rereg(
IN ib_port_info_t* const p_pi,
IN const uint8_t client_rereg )
4426c4848,4851
< return( (uint8_t)(p_pi->mkey_lmc & IB_PORT_LMC_MASK) );
---
CL_ASSERT( client_rereg <= 0x1 );
p_pi->subnet_timeout =
(uint8_t)(
(p_pi->subnet_timeout & 0x1F) | ((client_rereg << 7) & 0x80));
4432a4858,4860
* client_rereg
* [in] Client reregistration value to set (either 1 or 0).
*
4434c4862
< * Returns the LMC value assigned to this port.
---
* None.
4440c4868,4869
< /****f* IBA Base: Types/ib_port_info_set_lmc
---
/****f* IBA Base: Types/ib_port_info_get_timeout
4442c4871
< * ib_port_info_set_lmc
---
* ib_port_info_get_timeout
4445c4874
< * Sets the LMC value in the PortInfo attribute.
---
* Gets the encoded subnet timeout value in the PortInfo attribute.
4449,4452c4878,4880
< AL_INLINE void AL_API
< ib_port_info_set_lmc(
< IN ib_port_info_t* const p_pi,
< IN const uint8_t lmc )
---
static inline uint8_t
ib_port_info_get_timeout(
IN ib_port_info_t const* p_pi )
4454,4455c4882
< CL_ASSERT( lmc <= 0x7 );
< p_pi->mkey_lmc = (uint8_t)((p_pi->mkey_lmc & 0xF8) | lmc);
---
return(p_pi->subnet_timeout & 0x1F );
4462,4464d4888
< * lmc
< * [in] LMC value to set, must be less than 7.
< *
4466c4890
< * None.
---
* The encoded timeout value
4472c4896,4897
< /****f* IBA Base: Types/ib_port_info_get_mpb
---
/****f* IBA Base: Types/ib_port_info_get_client_rereg
4474c4899
< * ib_port_info_get_mpb
---
* ib_port_info_get_client_rereg
4477c4902
< * Returns the M_Key protect bits assigned to this port.
---
* Gets the encoded client reregistration bit value in the PortInfo attribute.
4481,4483c4906,4908
< AL_INLINE uint8_t AL_API
< ib_port_info_get_mpb(
< IN const ib_port_info_t* const p_pi )
---
static inline uint8_t
ib_port_info_get_client_rereg(
IN ib_port_info_t const* p_pi )
4485,4486c4910
< return( (uint8_t)((p_pi->mkey_lmc & IB_PORT_MPB_MASK) >>
< IB_PORT_MPB_SHIFT) );
---
return ( (p_pi->subnet_timeout & 0x80 ) >> 7);
4490c4914
< * p_ni
---
* p_pi
4494c4918
< * Returns the M_Key protect bits assigned to this port.
---
* Client reregistration value (either 1 or 0).
4501c4925
< /****f* IBA Base: Types/ib_port_info_set_mpb
---
/****f* IBA Base: Types/ib_port_info_set_hoq_lifetime
4503c4927
< * ib_port_info_set_mpb
---
* ib_port_info_set_hoq_lifetime
4506c4930,4931
< * Set the M_Key protect bits of this port.
---
* Sets the Head of Queue Lifetime for which a packet can live in the head
* of VL queue
4510,4513c4935,4938
< AL_INLINE void AL_API
< ib_port_info_set_mpb(
< IN ib_port_info_t* p_pi,
< IN uint8_t mpb )
---
static inline void
ib_port_info_set_hoq_lifetime(
IN ib_port_info_t* const p_pi,
IN const uint8_t hoq_life )
4515,4517c4940,4941
< p_pi->mkey_lmc =
< ((p_pi->mkey_lmc & ~IB_PORT_MPB_MASK) |
< (mpb << IB_PORT_MPB_SHIFT));
---
p_pi->vl_stall_life = (uint8_t)((hoq_life & 0x1f) |
(p_pi->vl_stall_life & 0xe0));
4521,4523c4945
< * mpb
< * [in] M_Key protect bits
< * p_ni
---
* p_pi
4525a4948,4950
* hoq_life
* [in] Encoded lifetime value to set
*
4526a4952
* None.
4532a4959,4974
/****f* IBA Base: Types/ib_port_info_get_hoq_lifetime
* NAME
* ib_port_info_get_hoq_lifetime
*
* DESCRIPTION
* Gets the Head of Queue Lifetime for which a packet can live in the head
* of VL queue
*
* SYNOPSIS
*/
static inline uint8_t
ib_port_info_get_hoq_lifetime(
IN const ib_port_info_t* const p_pi )
{
return( (uint8_t)(p_pi->vl_stall_life & 0x1f) );
}
4534c4976,4987
< typedef uint8_t ib_svc_name_t[64];
---
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Encoded lifetime value
*
* NOTES
*
* SEE ALSO
*********/
4536,4537c4989,5002
< #include <complib/cl_packon.h>
< typedef struct _ib_service_record
---
/****f* IBA Base: Types/ib_port_info_set_vl_stall_count
* NAME
* ib_port_info_set_vl_stall_count
*
* DESCRIPTION
* Sets the VL Stall Count which define the number of contiguous
* HLL (hoq) drops that will put the VL into stalled mode.
*
* SYNOPSIS
*/
static inline void
ib_port_info_set_vl_stall_count(
IN ib_port_info_t* const p_pi,
IN const uint8_t vl_stall_count )
4539,4591c5004,5010
< ib_net64_t service_id;
< ib_gid_t service_gid;
< ib_net16_t service_pkey;
< ib_net16_t resv;
< ib_net32_t service_lease;
< uint8_t service_key[16];
< ib_svc_name_t service_name;
< uint8_t service_data8[16];
< ib_net16_t service_data16[8];
< ib_net32_t service_data32[4];
< ib_net64_t service_data64[2];
<
< } PACK_SUFFIX ib_service_record_t;
< #include <complib/cl_packoff.h>
<
< #include <complib/cl_packon.h>
< typedef struct _ib_portinfo_record
< {
< ib_net16_t lid;
< uint8_t port_num;
< uint8_t resv;
< ib_port_info_t port_info;
< uint8_t pad[6];
<
< } PACK_SUFFIX ib_portinfo_record_t;
< #include <complib/cl_packoff.h>
<
< #include <complib/cl_packon.h>
< typedef struct _ib_link_record
< {
< ib_net16_t from_lid;
< uint8_t from_port_num;
< uint8_t to_port_num;
< ib_net16_t to_lid;
< uint8_t pad[2];
<
< } PACK_SUFFIX ib_link_record_t;
< #include <complib/cl_packoff.h>
<
< #include <complib/cl_packon.h>
< typedef struct _ib_sminfo_record
< {
< ib_net16_t lid;
< uint16_t resv0;
< ib_sm_info_t sm_info;
< uint8_t pad[7];
<
< } PACK_SUFFIX ib_sminfo_record_t;
< #include <complib/cl_packoff.h>
<
< /****s* IBA Base: Types/ib_lft_record_t
< * NAME
< * ib_lft_record_t
---
p_pi->vl_stall_life = (uint8_t)((p_pi->vl_stall_life & 0x1f) |
((vl_stall_count << 5) & 0xe0));
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
4593,4594c5012,5013
< * DESCRIPTION
< * IBA defined LinearForwardingTable. (14.2.5.6)
---
* vl_stall_count
* [in] value to set
4596,4612c5015,5016
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef struct _ib_lft_record
< {
< ib_net16_t lid;
< ib_net16_t block_num;
< uint32_t resv0;
< uint8_t lft[64];
<
< } PACK_SUFFIX ib_lft_record_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****s* IBA Base: Types/ib_switch_info_t
< * NAME
< * ib_switch_info_t
---
* RETURN VALUES
* None.
4614,4615c5018
< * DESCRIPTION
< * IBA defined SwitchInfo. (14.2.5.4)
---
* NOTES
4617,4649c5020,5021
< * SYNOPSIS
< */
< #include <complib/cl_packon.h>
< typedef struct _ib_switch_info
< {
< ib_net16_t lin_cap;
< ib_net16_t rand_cap;
< ib_net16_t mcast_cap;
< ib_net16_t lin_top;
< uint8_t def_port;
< uint8_t def_mcast_pri_port;
< uint8_t def_mcast_not_port;
< uint8_t life_state;
< ib_net16_t lids_per_port;
< ib_net16_t enforce_cap;
< uint8_t flags;
<
< } PACK_SUFFIX ib_switch_info_t;
< #include <complib/cl_packoff.h>
< /************/
<
< #include <complib/cl_packon.h>
< typedef struct _ib_switch_info_record
< {
< ib_net16_t lid;
< uint16_t resv0;
< ib_switch_info_t switch_info;
< uint8_t pad[3];
<
< } PACK_SUFFIX ib_switch_info_record_t;
< #include <complib/cl_packoff.h>
<
< #define IB_SWITCH_PSC 0x04
---
* SEE ALSO
*********/
4651c5023
< /****f* IBA Base: Types/ib_switch_info_get_state_change
---
/****f* IBA Base: Types/ib_port_info_get_vl_stall_count
4653c5025
< * ib_switch_info_get_state_change
---
* ib_port_info_get_vl_stall_count
4656c5028,5029
< * Returns the value of the state change flag.
---
* Gets the VL Stall Count which define the number of contiguous
* HLL (hoq) drops that will put the VL into stalled mode
4660,4662c5033,5035
< AL_INLINE boolean_t AL_API
< ib_switch_info_get_state_change(
< IN const ib_switch_info_t* const p_si )
---
static inline uint8_t
ib_port_info_get_vl_stall_count(
IN const ib_port_info_t* const p_pi )
4664c5037
< return( (p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC );
---
return( (uint8_t)(p_pi->vl_stall_life & 0xe0) >> 5);
4665a5039
4668,4669c5042,5043
< * p_si
< * [in] Pointer to a SwitchInfo attribute.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4672c5046
< * Returns the value of the state change flag.
---
* vl stall count
4679c5053
< /****f* IBA Base: Types/ib_switch_info_clear_state_change
---
/****f* IBA Base: Types/ib_port_info_get_lmc
4681c5055
< * ib_switch_info_clear_state_change
---
* ib_port_info_get_lmc
4684c5058
< * Clears the switch's state change bit.
---
* Returns the LMC value assigned to this port.
4688,4690c5062,5064
< AL_INLINE void AL_API
< ib_switch_info_clear_state_change(
< IN ib_switch_info_t* const p_si )
---
static inline uint8_t
ib_port_info_get_lmc(
IN const ib_port_info_t* const p_pi )
4692c5066
< p_si->life_state = (uint8_t)(p_si->life_state & 0xFB);
---
return( (uint8_t)(p_pi->mkey_lmc & IB_PORT_LMC_MASK) );
4696c5070
< * p_ni
---
* p_pi
4707c5081
< /****s* IBA Base: Types/ib_guid_info_t
---
/****f* IBA Base: Types/ib_port_info_set_lmc
4709c5083
< * ib_guid_info_t
---
* ib_port_info_set_lmc
4712c5086
< * IBA defined GuidInfo. (14.2.5.5)
---
* Sets the LMC value in the PortInfo attribute.
4716,4719c5090,5093
< #define GUID_TABLE_MAX_ENTRIES 8
<
< #include <complib/cl_packon.h>
< typedef struct _ib_guid_info
---
static inline void
ib_port_info_set_lmc(
IN ib_port_info_t* const p_pi,
IN const uint8_t lmc )
4721,4729c5095,5101
< ib_net64_t guid[GUID_TABLE_MAX_ENTRIES];
<
< } PACK_SUFFIX ib_guid_info_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****s* IBA Base: Types/ib_pkey_table_info_t
< * NAME
< * ib_pkey_table_info_t
---
CL_ASSERT( lmc <= IB_PORT_LMC_MAX );
p_pi->mkey_lmc = (uint8_t)((p_pi->mkey_lmc & 0xF8) | lmc);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
4731,4732c5103,5104
< * DESCRIPTION
< * IBA defined PKey table. (14.2.5.7)
---
* lmc
* [in] LMC value to set, must be less than 7.
4734,4745c5106,5112
< * SYNOPSIS
< */
< #define PKEY_TABLE_MAX_ENTRIES 32
<
< #include <complib/cl_packon.h>
< typedef struct _ib_pkey_table_info
< {
< ib_net16_t pkey[PKEY_TABLE_MAX_ENTRIES];
<
< } PACK_SUFFIX ib_pkey_table_info_t;
< #include <complib/cl_packoff.h>
< /************/
---
* RETURN VALUES
* None.
*
* NOTES
*
* SEE ALSO
*********/
4747,4748c5114
< #define IB_MAX_NUM_VLS 16
< /****s* IBA Base: Types/ib_slvl_table_t
---
/****f* IBA Base: Types/ib_port_info_get_link_speed_enabled
4750c5116
< * ib_slvl_table_t
---
* ib_port_info_get_link_speed_enabled
4753c5119
< * IBA defined SL2VL Mapping Table Attribute. (14.2.5.8)
---
* Returns the link speed enabled value assigned to this port.
4757,4758c5123,5125
< #include <complib/cl_packon.h>
< typedef struct _ib_slvl_table
---
static inline uint8_t
ib_port_info_get_link_speed_enabled(
IN const ib_port_info_t* const p_pi )
4760,4766c5127,5141
< uint8_t vl_table[IB_MAX_NUM_VLS/2];
<
< } PACK_SUFFIX ib_slvl_table_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****f* IBA Base: Types/ib_slvl_table_get_vl
---
return( (uint8_t)(p_pi->link_speed & IB_PORT_LINK_SPEED_ENABLED_MASK) );
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Port state.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_set_link_speed_enabled
4768c5143
< * ib_slvl_table_get_vl
---
* ib_port_info_set_link_speed_enabled
4771c5146
< * Retrieves the VL for a given SL from an SL to VL mapping table.
---
* Sets the link speed enabled value in the PortInfo attribute.
4775,4778c5150,5153
< AL_INLINE uint8_t AL_API
< ib_slvl_table_get_vl(
< IN const ib_slvl_table_t* const p_slvl_tbl,
< IN const uint8_t sl )
---
static inline void
ib_port_info_set_link_speed_enabled(
IN ib_port_info_t* const p_pi,
IN const uint8_t link_speed_enabled )
4780,4789c5155
< uint8_t vl;
<
< /* There are two VL's per byte. */
< vl = p_slvl_tbl->vl_table[sl/2];
< /* If odd, shift down 4 bits. */
< if( sl % 2 )
< vl >>= 4;
<
< /* Mask off upper bits and return. */
< return vl & 0x0F;
---
p_pi->link_speed = (uint8_t)((p_pi->link_speed & 0xF0) | link_speed_enabled );
4793,4794c5159,5160
< * p_slvl_tbl
< * [in] Pointer to the SL to VL mapping table from which to return the VL.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4796,4797c5162,5163
< * sl
< * [in] SL in the table for which to return the VL.
---
* link_speed_enabled
* [in] link speed enabled value to set.
4800c5166,5168
< * Returns the VL value for the specified SL in the provided table.
---
* None.
*
* NOTES
4803d5170
< * ib_slvl_table_t, ib_slvl_table_set_vl
4806c5173
< /****f* IBA Base: Types/ib_slvl_table_set_vl
---
/****f* IBA Base: Types/ib_port_info_get_mpb
4808c5175
< * ib_slvl_table_set_vl
---
* ib_port_info_get_mpb
4811c5178
< * Sets the VL for a given SL in an SL to VL mapping table.
---
* Returns the M_Key protect bits assigned to this port.
4815,4832c5182,5184
< AL_INLINE void AL_API
< ib_slvl_table_set_vl(
< IN OUT ib_slvl_table_t* const p_slvl_tbl,
< IN const uint8_t sl,
< IN const uint8_t vl )
< {
< uint8_t entry;
<
< /* Get the current value for the byte in which the VL is stored. */
< entry = p_slvl_tbl->vl_table[sl/2];
<
< /* Clear the appropriate bits and set the new VL value. */
< if( sl % 2 )
< {
< entry &= 0x0F;
< entry |= ((vl & 0x0F) << 4);
< }
< else
---
static inline uint8_t
ib_port_info_get_mpb(
IN const ib_port_info_t* const p_pi )
4834,4838c5186,5187
< entry &= 0xF0;
< entry |= (vl & 0x0F);
< }
< /* Store the updated entry back into the table. */
< p_slvl_tbl->vl_table[sl/2] = entry;
---
return( (uint8_t)((p_pi->mkey_lmc & IB_PORT_MPB_MASK) >>
IB_PORT_MPB_SHIFT) );
4842,4849c5191,5192
< * slvl_tbl
< * [in/out] Pointer to the SL to VL mapping table in which to store the VL.
< *
< * sl
< * [in] SL in the table for which to store the VL.
< *
< * vl
< * [in] VL to store at the specifed SL.
---
* p_ni
* [in] Pointer to a PortInfo attribute.
4852c5195,5197
< * This function does not return a value.
---
* Returns the M_Key protect bits assigned to this port.
*
* NOTES
4855d5199
< * ib_slvl_table_t, ib_slvl_table_get_vl
4858c5202
< /****s* IBA Base: Types/ib_slvl_table_record_t
---
/****f* IBA Base: Types/ib_port_info_set_mpb
4860c5204
< * ib_slvl_table_record_t
---
* ib_port_info_set_mpb
4863c5207
< * IBA defined Sl to VL Mapping Table Record for SA Query. (15.2.5.4)
---
* Set the M_Key protect bits of this port.
4867,4868c5211,5214
< #include <complib/cl_packon.h>
< typedef struct _ib_slvl_table_record
---
static inline void
ib_port_info_set_mpb(
IN ib_port_info_t* p_pi,
IN uint8_t mpb )
4870,4880c5216,5233
< ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
< uint8_t in_port_num; // reserved for CA's
< uint8_t out_port_num; // reserved for CA's
< uint32_t resv;
< ib_slvl_table_t slvl_tbl;
<
< } PACK_SUFFIX ib_slvl_table_record_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****s* IBA Base: Types/ib_vl_arb_element_t
---
p_pi->mkey_lmc =
(~IB_PORT_MPB_MASK & p_pi->mkey_lmc) |
( IB_PORT_MPB_MASK & (mpb << IB_PORT_MPB_SHIFT) );
}
/*
* PARAMETERS
* mpb
* [in] M_Key protect bits
* p_ni
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_local_phy_err_thd
4882c5235
< * ib_vl_arb_element_t
---
* ib_port_info_get_local_phy_err_thd
4885c5238
< * IBA defined VL Arbitration Table Element. (14.2.5.9)
---
* Returns the Phy Link Threshold
4889,4890c5242,5244
< #include <complib/cl_packon.h>
< typedef struct _ib_vl_arb_element
---
static inline uint8_t
ib_port_info_get_local_phy_err_thd(
IN const ib_port_info_t* const p_pi )
4892,4899c5246,5260
< uint8_t res_vl;
< uint8_t weight;
<
< } PACK_SUFFIX ib_vl_arb_element_t;
< #include <complib/cl_packoff.h>
< /************/
<
< /****f* IBA Base: Types/ib_vl_arb_element_get_vl
---
return (uint8_t)( (p_pi->error_threshold & 0xF0) >> 4);
}
/*
* PARAMETERS
* p_pi
* [in] Pointer to a PortInfo attribute.
*
* RETURN VALUES
* Returns the Phy Link error threshold assigned to this port.
*
* NOTES
*
* SEE ALSO
*********/
/****f* IBA Base: Types/ib_port_info_get_overrun_err_thd
4901c5262
< * ib_vl_arb_element_get_vl
---
* ib_port_info_get_local_overrun_err_thd
4904c5265
< * Retrieves the VL from a VL arbitration table element.
---
* Returns the Credits Overrun Errors Threshold
4908,4910c5269,5271
< AL_INLINE uint8_t AL_API
< ib_vl_arb_element_get_vl(
< IN const ib_vl_arb_element_t vl_arb_element )
---
static inline uint8_t
ib_port_info_get_overrun_err_thd(
IN const ib_port_info_t* const p_pi )
4912c5273
< return (vl_arb_element.res_vl >> 4);
---
return (uint8_t)(p_pi->error_threshold & 0x0F);
4916,4917c5277,5278
< * vl_arb_element
< * [in] VL arbitration table element from which to return the VL.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4920c5281,5283
< * Returns the VL value for the specified VL arbitration table element.
---
* Returns the Credits Overrun errors threshold assigned to this port.
*
* NOTES
4923d5285
< * vl_arb_element, ib_vl_arb_element_set_vl
4926c5288
< /****f* IBA Base: Types/ib_vl_arb_element_set_vl
---
/****f* IBA Base: Types/ib_port_info_set_phy_and_overrun_err_thd
4928c5290
< * ib_vl_arb_element_set_vl
---
* ib_port_info_set_phy_and_overrun_err_thd
4931c5293
< * Retrieves the VL from a VL arbitration table element.
---
* Sets the Phy Link and Credits Overrun Errors Threshold
4935,4938c5297,5301
< AL_INLINE void AL_API
< ib_vl_arb_element_set_vl(
< IN OUT ib_vl_arb_element_t* const p_vl_arb_element,
< IN const uint8_t vl )
---
static inline void
ib_port_info_set_phy_and_overrun_err_thd(
IN ib_port_info_t* const p_pi,
IN uint8_t phy_threshold,
IN uint8_t overrun_threshold )
4940c5303,5304
< p_vl_arb_element->res_vl = vl << 4;
---
p_pi->error_threshold =
(uint8_t)( ((phy_threshold & 0x0F) << 4) | (overrun_threshold & 0x0F) );
4944,4945c5308,5309
< * vl_arb_element
< * [in/out] VL arbitration table element in which to store the VL.
---
* p_pi
* [in] Pointer to a PortInfo attribute.
4947,4948c5311,5315
< * vl
< * [in] VL to store in the specified element.
---
* phy_threshold
* [in] Physical Link Errors Threshold above which Trap 129 is generated
*
* overrun_threshold
* [in] Credits overrun Errors Threshold above which Trap 129 is generated
4951c5318,5320
< * This function does not return a value.
---
* None.
*
* NOTES
4954d5322
< * vl_arb_element, ib_vl_arb_element_get_vl
4957,4958c5325,5380
< #define IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK 32
< /****s* IBA Base: Types/ib_vl_arb_table_t
---
typedef uint8_t ib_svc_name_t[64];
#include <complib/cl_packon.h>
typedef struct _ib_service_record
{
ib_net64_t service_id;
ib_gid_t service_gid;
ib_net16_t service_pkey;
ib_net16_t resv;
ib_net32_t service_lease;
uint8_t service_key[16];
ib_svc_name_t service_name;
uint8_t service_data8[16];
ib_net16_t service_data16[8];
ib_net32_t service_data32[4];
ib_net64_t service_data64[2];
} PACK_SUFFIX ib_service_record_t;
#include <complib/cl_packoff.h>
#include <complib/cl_packon.h>
typedef struct _ib_portinfo_record
{
ib_net16_t lid;
uint8_t port_num;
uint8_t resv;
ib_port_info_t port_info;
uint8_t pad[6];
} PACK_SUFFIX ib_portinfo_record_t;
#include <complib/cl_packoff.h>
#include <complib/cl_packon.h>
typedef struct _ib_link_record
{
ib_net16_t from_lid;
uint8_t from_port_num;
uint8_t to_port_num;
ib_net16_t to_lid;
uint8_t pad[2];
} PACK_SUFFIX ib_link_record_t;
#include <complib/cl_packoff.h>
#include <complib/cl_packon.h>
typedef struct _ib_sminfo_record
{
ib_net16_t lid;
uint16_t resv0;
ib_sm_info_t sm_info;
uint8_t pad[7];
} PACK_SUFFIX ib_sminfo_record_t;
#include <complib/cl_packoff.h>
/****s* IBA Base: Types/ib_lft_record_t
4960c5382
< * ib_vl_arb_table_t
---
* ib_lft_record_t
4963c5385
< * IBA defined VL Arbitration Table. (14.2.5.9)
---
* IBA defined LinearForwardingTable. (14.2.5.6)
4968c5390
< typedef struct _ib_vl_arb_table
---
typedef struct _ib_lft_record
4970,4972c5392,5396
< ib_vl_arb_element_t vl_entry[IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK];
<
< } PACK_SUFFIX ib_vl_arb_table_t;
---
ib_net16_t lid;
ib_net16_t block_num;
uint32_t resv0;
uint8_t lft[64];
} PACK_SUFFIX ib_lft_record_t;
4976c5400
< /****s* IBA Base: Types/ib_vl_arb_table_record_t
---
/****s* IBA Base: Types/ib_switch_info_t
4978c5402
< * ib_vl_arb_table_record_t
---
* ib_switch_info_t
4981c5405
< * IBA defined VL Arbitration Table Record for SA Query. (15.2.5.9)
---
* IBA defined SwitchInfo. (14.2.5.4)
4986c5410
< typedef struct _ib_vl_arb_table_record
---
typedef struct _ib_switch_info
4988,4992c5412,5422
< ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
< uint8_t port_num;
< uint8_t block_num;
< uint32_t reserved;
< ib_vl_arb_table_t vl_arb_tbl;
---
ib_net16_t lin_cap;
ib_net16_t rand_cap;
ib_net16_t mcast_cap;
ib_net16_t lin_top;
uint8_t def_port;
uint8_t def_mcast_pri_port;
uint8_t def_mcast_not_port;
uint8_t life_state;
ib_net16_t lids_per_port;
ib_net16_t enforce_cap;
uint8_t flags;
4994c5424
< } PACK_SUFFIX ib_vl_arb_table_record_t;
---
} PACK_SUFFIX ib_switch_info_t;
4998c5428,5441
< /****s* IBA Base: Types/ib_grh_t
---
#include <complib/cl_packon.h>
typedef struct _ib_switch_info_record
{
ib_net16_t lid;
uint16_t resv0;
ib_switch_info_t switch_info;
uint8_t pad[3];
} PACK_SUFFIX ib_switch_info_record_t;
#include <complib/cl_packoff.h>
#define IB_SWITCH_PSC 0x04
/****f* IBA Base: Types/ib_switch_info_get_state_change
5000c5443
< * ib_grh_t
---
* ib_switch_info_get_state_change
5003c5446
< * Global route header information received with unreliable datagram messages
---
* Returns the value of the state change flag.
5007,5008c5450,5452
< #include <complib/cl_packon.h>
< typedef struct _ib_grh
---
static inline boolean_t
ib_switch_info_get_state_change(
IN const ib_switch_info_t* const p_si )
5010,5019c5454,5467
< ib_net32_t ver_class_flow;
< ib_net16_t resv1;
< uint8_t resv2;
< uint8_t hop_limit;
< ib_gid_t src_gid;
< ib_gid_t dest_gid;
<
< } PACK_SUFFIX ib_grh_t;
< #include <complib/cl_packoff.h>
< /************/
---
return( (p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC );
}
/*
* PARAMETERS
* p_si
* [in] Pointer to a SwitchInfo attribute.
*
* RETURN VALUES
* Returns the value of the state change flag.
*
* NOTES
*
* SEE ALSO
*********/
5021c5469
< /****f* IBA Base: Types/ib_grh_get_ver_class_flow
---
/****f* IBA Base: Types/ib_switch_info_clear_state_change
5023c5471
< * ib_grh_get_ver_class_flow
---
* ib_switch_info_clear_state_change
5026c5474
< * Get encoded version, traffic class and flow label in grh
---
* Clears the switch's state change bit.
5030,5035c5478,5480
< AL_INLINE void AL_API
< ib_grh_get_ver_class_flow(
< IN const ib_net32_t ver_class_flow,
< OUT uint8_t* const p_ver OPTIONAL,
< OUT uint8_t* const p_tclass OPTIONAL,
< OUT net32_t* const p_flow_lbl OPTIONAL )
---
static inline void
ib_switch_info_clear_state_change(
IN ib_switch_info_t* const p_si )
5037,5048c5482
< ib_net32_t tmp_ver_class_flow;
<
< tmp_ver_class_flow = cl_ntoh32( ver_class_flow );
<
< if (p_ver)
< *p_ver = (uint8_t)(tmp_ver_class_flow >> 28);
<
< if (p_tclass)
< *p_tclass = (uint8_t)(tmp_ver_class_flow >> 20);
<
< if (p_flow_lbl)
< *p_flow_lbl = (ver_class_flow & CL_HTON32( 0x000FFFFF ));
---
p_si->life_state = (uint8_t)(p_si->life_state & 0xFB);
5052,5053c5486,5487
< * ver_class_flow
< * [in] the version, traffic class and flow label info.
---
* p_ni
* [in] Pointer to a PortInfo attribute.
5056,5063c5490
< * p_ver
< * [out] pointer to the version info.
< *
< * p_tclass
< * [out] pointer to the traffic class info.
< *
< * p_flow_lbl
< * [out] pointer to the flow label info
---
* Returns the LMC value assigned to this port.
5068d5494
< * ib_grh_t
5071c5497,5498
< /****f* IBA Base: Types/ib_grh_set_ver_class_flow
---
/****f* IBA Base: Types/ib_switch_info_is_enhanced_port0
5073c5500
< * ib_grh_set_ver_class_flow
---
* ib_switch_info_is_enhanced_port0
5076c5503,5505
< * Set encoded version, traffic class and flow label in grh
---
* Returns TRUE if the enhancedPort0 bit is on (meaning the switch
* port zero supports enhanced functions).
* Returns FALSE otherwise.
5080,5084c5509,5511
< AL_INLINE ib_net32_t AL_API
< ib_grh_set_ver_class_flow(
< IN const uint8_t ver,
< IN const uint8_t tclass,
< IN const net32_t flow_lbl )
---
static inline boolean_t
ib_switch_info_is_enhanced_port0(
IN const ib_switch_info_t* const p_si )
5086,5090c5513
< ib_net32_t ver_class_flow;
<
< ver_class_flow = cl_hton32( (ver << 28) | (tclass << 20) );
< ver_class_flow |= (flow_lbl & CL_HTON32( 0x000FFFFF ));
< return (ver_class_flow);
---
return( (p_si->flags & 0x08) == 0x08 );
5094,5101c5517,5518
< * ver
< * [in] the version info.
< *
< * tclass
< * [in] the traffic class info.
< *
< * flow_lbl
< * [in] the flow label info
---
* p_si
* [in] Pointer to a SwitchInfo attribute.
5104,5105c5521
< * ver_class_flow
< * [out] the version, traffic class and flow label info.
---
* Returns TRUE if the switch supports enhanced port 0. FALSE otherwise.
5110d5525
< * ib_grh_t
5113c5528
< /****s* IBA Base: Types/ib_member_rec_t
---
/****s* IBA Base: Types/ib_guid_info_t
5115c5530
< * ib_member_rec_t
---
* ib_guid_info_t
5118,5119c5533
< * Multicast member record, used to create, join, and leave multicast
< * groups.
---
* IBA defined GuidInfo. (14.2.5.5)
5122a5537,5538
#define GUID_TABLE_MAX_ENTRIES 8
5124c5540
< typedef struct _ib_member_rec
---
typedef struct _ib_guid_info
5126,5130c5542,5564
< ib_gid_t mgid;
< ib_gid_t port_gid;
< ib_net32_t qkey;
< ib_net16_t mlid;
< uint8_t mtu;
---
ib_net64_t guid[GUID_TABLE_MAX_ENTRIES];
} PACK_SUFFIX ib_guid_info_t;
#include <complib/cl_packoff.h>
/************/
#include <complib/cl_packon.h>
typedef struct _ib_guidinfo_record
{
ib_net16_t lid;
uint8_t block_num;
uint8_t resv;
uint32_t reserved;
ib_guid_info_t guid_info;
} PACK_SUFFIX ib_guidinfo_record_t;
#include <complib/cl_packoff.h>
#define IB_MULTIPATH_MAX_GIDS 11 /* Support max that can fit into first MAD (for now) */
#include <complib/cl_packon.h>
typedef struct _ib_multipath_rec_t
{
ib_net32_t hop_flow_raw;
5131a5566
uint8_t num_path;
5132a5568,5570
uint8_t resv0;
uint8_t sl;
uint8_t mtu;
5135,5141c5573,5579
< ib_net32_t sl_flow_hop;
< uint8_t scope_state;
< uint8_t proxy_join;
< uint8_t reserved[2];
< uint8_t pad[4];
<
< } PACK_SUFFIX ib_member_rec_t;
---
uint8_t resv1;
uint8_t independence; /* formerly resv2 */
uint8_t sgid_count;
uint8_t dgid_count;
uint8_t resv3[7];
ib_gid_t gids[IB_MULTIPATH_MAX_GIDS];
} PACK_SUFFIX ib_multipath_rec_t;
5145,5146c5583,5584
< * mgid
< * Multicast GID address for this multicast group.
---
* hop_flow_raw
* Global routing parameters: hop count, flow label and raw bit.
5148,5149c5586,5587
< * port_gid
< * Valid GID of the endpoint joining this multicast group.
---
* tclass
* Another global routing parameter.
5151,5152c5589,5592
< * requestor_gid
< * GID of the endpoint making this request on hehave of port_gid.
---
* num_path
* Reversible path - 1 bit to say if path is reversible.
* num_path [6:0] In queries, maximum number of paths to return.
* In responses, undefined.
5154,5155c5594,5595
< * qkey
< * Q_Key to be used by this multicast group.
---
* pkey
* Partition key (P_Key) to use on this path.
5157,5158c5597,5598
< * mlid
< * Multicast LID for this multicast group.
---
* sl
* Service level to use on this path.
5162,5168d5601
< *
< * tclass
< * Another global routing parameter.
< *
< * pkey
< * Partition key (P_Key) to use for this member.
< *
5175,5233c5608,5610
< * sl_flow_hop
< * Global routing parameters: service level, hop count, and flow label.
< *
< * scope_state
< * MGID scope and JoinState of multicast request.
< *
< * proxy_join
< * Enables others in the Partition to proxy add/remove from the group
< *
< * SEE ALSO
< *********/
<
< /****f* IBA Base: Types/ib_member_get_sl_flow_hop
< * NAME
< * ib_member_get_sl_flow_hop
< *
< * DESCRIPTION
< * Get encoded sl flow label and hop limit
< *
< * SYNOPSIS
< */
< AL_INLINE void AL_API
< ib_member_get_sl_flow_hop(
< IN const ib_net32_t sl_flow_hop,
< OUT uint8_t* const p_sl OPTIONAL,
< OUT net32_t* const p_flow_lbl OPTIONAL,
< OUT uint8_t* const p_hop OPTIONAL )
< {
< ib_net32_t tmp_sl_flow_hop;
<
< if (p_sl)
< *p_sl = (uint8_t)(sl_flow_hop & 0x0f);
<
< tmp_sl_flow_hop = sl_flow_hop >> 4;
<
< if (p_flow_lbl)
< *p_flow_lbl = (uint32_t)(tmp_sl_flow_hop & 0xffffff);
<
< tmp_sl_flow_hop = tmp_sl_flow_hop >> 20;
<
< if (p_hop)
< *p_hop = (uint8_t)(tmp_sl_flow_hop & 0xff);
< }
< /*
< * PARAMETERS
< * sl_flow_hop
< * [in] the sl flow label and hop limit of MC Group
< *
< * RETURN VALUES
< * p_sl
< * [out] pointer to the service level
< *
< * p_flow_lbl
< * [out] pointer to the flow label info
< *
< * p_hop
< * [out] pointer to the hop count limit.
< *
< * NOTES
---
* preference
* Indicates the relative merit of this path versus other path
* records returned from the SA. Lower numbers are better.
5236d5612
< * ib_member_rec_t
5239c5615
< /****f* IBA Base: Types/ib_member_set_sl_flow_hop
---
/****f* IBA Base: Types/ib_multipath_rec_num_path
5241c5617
< * ib_member_set_sl_flow_hop
---
* ib_multipath_rec_num_path
5244c5620
< * Set encoded version, sl flow and hop
---
* Get max number of paths to return.
5248,5261c5624,5628
< AL_INLINE ib_net32_t AL_API
< ib_member_set_sl_flow_hop(
< IN const uint8_t sl,
< IN const net32_t flow_lbl,
< IN const uint8_t hop_limit )
< {
< ib_net32_t sl_flow_hop;
<
< sl_flow_hop = sl;
< sl_flow_hop <<= 20;
< sl_flow_hop |= (cl_ntoh32( flow_lbl ) & 0x000FFFFF);
< sl_flow_hop <<= 8;
< sl_flow_hop |= hop_limit;
< return cl_hton32(sl_flow_hop);
---
static inline uint8_t
ib_multipath_rec_num_path(
IN const ib_multipath_rec_t* const p_rec )
{
return( p_rec->num_path &0x7F );
5265,5272c5632,5633
< * sl
< * [in] the service level.
< *
< * flow_lbl
< * [in] the flow label info
< *
< * hop_limit
< * [in] the hop limit.
---
* p_rec
* [in] Pointer to the multipath record object.
5275,5276c5636
< * sl_flow_hop
< * [out] the sl flow label and hop limit
---
* Maximum number of paths to return for each unique SGID_DGID combination.
5281c5641
< * ib_member_rec_t
---
* ib_multipath_rec_t
5284c5644
< /****f* IBA Base: Types/ib_member_get_scope
---
/****f* IBA Base: Types/ib_multipath_rec_sl
5286c5646
< * ib_member_get_scope
---
* ib_multipath_rec_sl
5289c5649
< * Get encoded MGID scope
---
* Get multipath service level.
5293,5295c5653,5655
< AL_INLINE uint8_t AL_API
< ib_member_get_scope(
< IN const uint8_t scope_state )
---
static inline uint8_t
ib_multipath_rec_sl(
IN const ib_multipath_rec_t* const p_rec )
5297c5657
< return (scope_state >> 4);
---
return( (uint8_t)((cl_ntoh16( p_rec->sl )) & 0xF) );
5301,5302c5661,5662
< * scope_state
< * [in] the scope and state
---
* p_rec
* [in] Pointer to the multipath record object.
5305c5665,5667
< * Encoded scope.
---
* SL.
*
* NOTES
5308c5670
< * ib_member_rec_t
---
* ib_multipath_rec_t
5311c5673
< /****f* IBA Base: Types/ib_member_get_state
---
/****f* IBA Base: Types/ib_multipath_rec_mtu
5313c5675
< * ib_member_get_state
---
* ib_multipath_rec_mtu
5316c5678
< * Get encoded MGID JoinState
---
* Get encoded path MTU.
5320,5322c5682,5684
< AL_INLINE uint8_t AL_API
< ib_member_get_state(
< IN const uint8_t scope_state )
---
static inline uint8_t
ib_multipath_rec_mtu(
IN const ib_multipath_rec_t* const p_rec )
5324c5686
< return (scope_state & 0x0f);
---
return( (uint8_t)(p_rec->mtu & IB_MULTIPATH_REC_BASE_MASK) );
5328,5329c5690,5691
< * scope_state
< * [in] the scope and state
---
* p_rec
* [in] Pointer to the multipath record object.
5332c5694,5702
< * Encoded JoinState
---
* Encoded path MTU.
* 1: 256
* 2: 512
* 3: 1024
* 4: 2048
* 5: 4096
* others: reserved
*
* NOTES
5335c5705
< * ib_member_rec_t
---
* ib_multipath_rec_t
5338c5708
< /****f* IBA Base: Types/ib_member_get_scope_state
---
/****f* IBA Base: Types/ib_multipath_rec_mtu_sel
5340c5710
< * ib_member_get_scope_state
---
* ib_multipath_rec_mtu_sel
5343c5713
< * Get encoded MGID scope and JoinState
---
* Get encoded multipath MTU selector.
5347,5351c5717,5719
< AL_INLINE void AL_API
< ib_member_get_scope_state(
< IN const uint8_t scope_state,
< OUT uint8_t* const p_scope,
< OUT uint8_t* const p_state )
---
static inline uint8_t
ib_multipath_rec_mtu_sel(
IN const ib_multipath_rec_t* const p_rec )
5353,5357c5721
< if (p_scope)
< *p_scope = ib_member_get_scope( scope_state );
<
< if (p_state)
< *p_state = ib_member_get_state( scope_state );
---
return( (uint8_t)((p_rec->mtu & IB_MULTIPATH_REC_SELECTOR_MASK) >> 6) );
5361,5362c5725,5726
< * scope_state
< * [in] the scope and state
---
* p_rec
* [in] Pointer to the multipath record object.
5365,5369c5729,5733
< * p_scope
< * [out] pointer to the MGID scope
< *
< * p_state
< * [out] pointer to the join state
---
* Encoded path MTU selector value (for queries).
* 0: greater than MTU specified
* 1: less than MTU specified
* 2: exactly the MTU specified
* 3: largest MTU available
5374c5738
< * ib_member_rec_t
---
* ib_multipath_rec_t
5377c5741
< /****f* IBA Base: Types/ib_member_set_scope
---
/****f* IBA Base: Types/ib_multipath_rec_rate
5379c5743
< * ib_member_set_scope
---
* ib_multipath_rec_rate
5382c5746
< * Set encoded scope of a MCR.
---
* Get encoded multipath rate.
5386,5389c5750,5752
< AL_INLINE void AL_API
< ib_member_set_scope(
< IN OUT uint8_t* const p_scope_state,
< IN const uint8_t scope )
---
static inline uint8_t
ib_multipath_rec_rate(
IN const ib_multipath_rec_t* const p_rec )
5391,5394c5754
< CL_ASSERT( scope <= 0x0F );
< /* Scope is MS 4-bits. */
< *p_scope_state &= 0xF0;
< *p_scope_state |= (scope << 4);
---
return( (uint8_t)(p_rec->rate & IB_MULTIPATH_REC_BASE_MASK) );
5398,5402c5758,5759
< * scope_state
< * [in/out] Pointer to the MCR scope_state field.
< *
< * scope
< * [in] The desired scope.
---
* p_rec
* [in] Pointer to the multipath record object.
5405c5762,5768
< * This function does not return a value.
---
* Encoded multipath rate.
* 2: 2.5 Gb/sec.
* 3: 10 Gb/sec.
* 4: 30 Gb/sec.
* others: reserved
*
* NOTES
5408c5771
< * ib_member_rec_t
---
* ib_multipath_rec_t
5411c5774
< /****f* IBA Base: Types/ib_member_set_state
---
/****f* IBA Base: Types/ib_multipath_rec_rate_sel
5413c5776
< * ib_member_set_state
---
* ib_multipath_rec_rate_sel
5416c5779
< * Set encoded JoinState of a MCR.
---
* Get encoded multipath rate selector.
5420,5423c5783,5785
< AL_INLINE void AL_API
< ib_member_set_state(
< IN OUT uint8_t* const p_scope_state,
< IN const uint8_t state )
---
static inline uint8_t
ib_multipath_rec_rate_sel(
IN const ib_multipath_rec_t* const p_rec )
5425,5428c5787
< CL_ASSERT( state <= 0x0F );
< /* State is LS 4-bits. */
< *p_scope_state &= 0x0F;
< *p_scope_state |= (state & 0x0F);
---
return( (uint8_t)((p_rec->rate & IB_MULTIPATH_REC_SELECTOR_MASK) >> 6) );
5432,5436c5791,5792
< * scope_state
< * [in/out] Pointer to the MCR scope_state field to modify.
< *
< * state
< * [in] the JoinState
---
* p_rec
* [in] Pointer to the multipath record object.
5439c5795,5801
< * This function does not return a value.
---
* Encoded path rate selector value (for queries).
* 0: greater than rate specified
* 1: less than rate specified
* 2: exactly the rate specified
* 3: largest rate available
*
* NOTES
5442c5804
< * ib_member_rec_t
---
* ib_multipath_rec_t
5445c5807
< /****f* IBA Base: Types/ib_member_set_scope_state
---
/****f* IBA Base: Types/ib_multipath_rec_pkt_life
5447c5809
< * ib_member_set_scope_state
---
* ib_multipath_rec_pkt_life
5450c5812
< * Set encoded version, MGID scope and JoinState
---
* Get encoded multipath pkt_life.
5454,5457c5816,5818
< AL_INLINE uint8_t AL_API
< ib_member_set_scope_state(
< IN const uint8_t scope,
< IN const uint8_t state )
---
static inline uint8_t
ib_multipath_rec_pkt_life(
IN const ib_multipath_rec_t* const p_rec )
5459,5460c5820
< /* Scope is MS 4-bits, state is LS 4-bits */
< return ((scope << 4) | (state & 0xF));
---
return( (uint8_t)(p_rec->pkt_life & IB_MULTIPATH_REC_BASE_MASK) );
5464,5468c5824,5825
< * scope
< * [in] the MGID scope
< *
< * state
< * [in] the JoinState
---
* p_rec
* [in] Pointer to the multipath record object.
5471,5472c5828
< * scope_state
< * [out] the encoded one
---
* Encoded multipath pkt_life = 4.096 �sec * 2 ** PacketLifeTime.
5477c5833
< * ib_member_rec_t
---
* ib_multipath_rec_t
5480c5836
< /****f* IBA Base: Types/ib_member_set_join_state
---
/****f* IBA Base: Types/ib_multipath_rec_pkt_life_sel
5482c5838
< * ib_member_set_join_state
---
* ib_multipath_rec_pkt_life_sel
5485c5841
< * Set JoinState
---
* Get encoded multipath pkt_lifetime selector.
5489,5492c5845,5847
< AL_INLINE void AL_API
< ib_member_set_join_state(
< IN OUT ib_member_rec_t *p_mc_rec,
< IN const uint8_t state )
---
static inline uint8_t
ib_multipath_rec_pkt_life_sel(
IN const ib_multipath_rec_t* const p_rec )
5494,5495c5849
< p_mc_rec->scope_state &= 0xF0;
< p_mc_rec->scope_state |= (state & 0x0F);
---
return( (uint8_t)((p_rec->pkt_life & IB_MULTIPATH_REC_SELECTOR_MASK) >> 6 ));
5499,5503c5853,5854
< * p_mc_rec
< * [in] pointer to the member record
< *
< * state
< * [in] the JoinState
---
* p_rec
* [in] Pointer to the multipath record object.
5506c5857,5861
< * NONE
---
* Encoded path pkt_lifetime selector value (for queries).
* 0: greater than rate specified
* 1: less than rate specified
* 2: exactly the rate specified
* 3: smallest packet lifetime available
5511c5866
< * ib_member_rec_t
---
* ib_multipath_rec_t
5514,5515c5869,5877
< /*
---
#define IB_NUM_PKEY_ELEMENTS_IN_BLOCK 32
/****s* IBA Base: Types/ib_pkey_table_t
* NAME
* ib_pkey_table_t
*
* DESCRIPTION
* IBA defined PKey table. (14.2.5.7)
*
* SYNOPSIS
5517,5519d5878
< #define IB_MC_REC_STATE_FULL_MEMBER 0x01
< #define IB_MC_REC_STATE_NON_MEMBER 0x02
< #define IB_MC_REC_STATE_SEND_ONLY_MEMBER 0x04
5521,5529c5880,5883
< /*
< * Generic MAD notice types
< */
< #define IB_NOTICE_TYPE_FATAL 0x00
< #define IB_NOTICE_TYPE_URGENT 0x01
< #define IB_NOTICE_TYPE_SECURITY 0x02
< #define IB_NOTICE_TYPE_SUBN_MGMT 0x03
< #define IB_NOTICE_TYPE_INFO 0x04
< #define IB_NOTICE_TYPE_EMPTY 0x7F
---
#include <complib/cl_packon.h>
typedef struct _ib_pkey_table
{
ib_net16_t pkey_entry[IB_NUM_PKEY_ELEMENTS_IN_BLOCK];
5530a5885,5887
} PACK_SUFFIX ib_pkey_table_t;
#include <complib/cl_packoff.h>
/************/
5531a5889,5897
/****s* IBA Base: Types/ib_pkey_table_record_t
* NAME
* ib_pkey_table_record_t
*
* DESCRIPTION
* IBA defined P_Key Table Record for SA Query. (15.2.5.11)
*
* SYNOPSIS
*/
5533c5899
< typedef struct _ib_mad_notice_attr
---
typedef struct _ib_pkey_table_record
5535,5545c5901,5906
< /* is_generic:1, type:7, producer type or vendor id:24 */
< net32_t combo1;
< /* trap number or device id, depending on is_generic. */
< net16_t combo2;
<
< net16_t issuer_lid;
< /* notice toggle:1, notice_count:15 */
< net16_t combo3;
<
< uint8_t data_details[54];
< ib_gid_t issuer_gid;
---
ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
uint16_t block_num;
uint8_t port_num; // for switch: port number, for CA: reserved
uint8_t reserved1;
uint16_t reserved2;
ib_pkey_table_t pkey_tbl;
5547c5908
< } PACK_SUFFIX ib_mad_notice_attr_t;
---
} PACK_SUFFIX ib_pkey_table_record_t;
5548a5910
/************/
5550c5912,5914
< /****f* IBA Base: Types/ib_notice_get_generic
---
#define IB_DROP_VL 15
#define IB_MAX_NUM_VLS 16
/****s* IBA Base: Types/ib_slvl_table_t
5552c5916
< * ib_notice_get_generic
---
* ib_slvl_table_t
5555c5919
< * Retrieves whether a notice trap is generic.
---
* IBA defined SL2VL Mapping Table Attribute. (14.2.5.8)
5559,5561c5923,5924
< AL_INLINE boolean_t AL_API
< ib_notice_get_generic(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
#include <complib/cl_packon.h>
typedef struct _ib_slvl_table
5563,5574c5926,5933
< if( cl_ntoh32( p_notice_attr->combo1 ) & 0x00000001 )
< return TRUE;
< return FALSE;
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in] Pointer to the notice attribute structure for which to return
< * whether it is generic or not.
< *
< * RETURN VALUES
< * Returns TRUE if the notice is generic.
---
uint8_t raw_vl_by_sl[IB_MAX_NUM_VLS/2];
} PACK_SUFFIX ib_slvl_table_t;
#include <complib/cl_packoff.h>
/************/
/****s* IBA Base: Types/ib_slvl_table_record_t
* NAME
* ib_slvl_table_record_t
5576c5935,5936
< * Returns FALSE if the notice is vendor specific.
---
* DESCRIPTION
* IBA defined SL to VL Mapping Table Record for SA Query. (15.2.5.4)
5578,5580c5938,5947
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_set_generic
< *********/
---
* SYNOPSIS
*/
#include <complib/cl_packon.h>
typedef struct _ib_slvl_table_record
{
ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
uint8_t in_port_num; // reserved for CAs
uint8_t out_port_num; // reserved for CAs
uint32_t resv;
ib_slvl_table_t slvl_tbl;
5582c5949,5953
< /****f* IBA Base: Types/ib_notice_set_generic
---
} PACK_SUFFIX ib_slvl_table_record_t;
#include <complib/cl_packoff.h>
/************/
/****f* IBA Base: Types/ib_slvl_table_set
5584c5955
< * ib_notice_set_generic
---
* ib_slvl_table_set
5587c5958
< * Sets whether a notice trap is generic.
---
* Set slvl table entry.
5591,5594c5962,5966
< AL_INLINE void AL_API
< ib_notice_set_generic(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const boolean_t is_generic )
---
static inline void
ib_slvl_table_set(
IN ib_slvl_table_t* p_slvl_tbl,
IN uint8_t sl_index,
IN uint8_t vl )
5596c5968,5970
< uint32_t val;
---
uint8_t idx = sl_index/2;
CL_ASSERT(vl <= 15);
CL_ASSERT(sl_index <= 15);
5598,5600c5972,5976
< val = cl_ntoh32( p_notice_attr->combo1 );
< if( is_generic )
< val |= 0x00000001;
---
if (sl_index%2)
{
/* this is an odd sl. Need to update the ls bits */
p_slvl_tbl->raw_vl_by_sl[idx] = ( p_slvl_tbl->raw_vl_by_sl[idx] & 0xF0 ) | vl ;
}
5602,5603c5978,5981
< val &= 0xFFFFFFFE;
< p_notice_attr->combo1 = cl_hton32( val );
---
{
/* this is an even sl. Need to update the ms bits */
p_slvl_tbl->raw_vl_by_sl[idx] = ( vl << 4 ) | ( p_slvl_tbl->raw_vl_by_sl[idx] & 0x0F );
}
5607,5609c5985,5989
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure for which to set
< * the generic bit.
---
* p_slvl_tbl
* [in] pointer to ib_slvl_table_t object.
*
* sl_index
* [in] the sl index in the table to be updated.
5611,5612c5991,5992
< * is_generic
< * [in] TRUE if the notice is generic, FALSE if vendor specific.
---
* vl
* [in] the vl value to update for that sl.
5615c5995,5997
< * This function does not return a value.
---
* None
*
* NOTES
5618c6000
< * ib_mad_notice_attr_t, ib_notice_get_generic
---
* ib_slvl_table_t
5621c6003
< /****f* IBA Base: Types/ib_notice_get_type
---
/****f* IBA Base: Types/ib_slvl_table_get
5623c6005
< * ib_notice_get_type
---
* ib_slvl_table_get
5626c6008
< * Retrieves the type of a notice trap.
---
* Get slvl table entry.
5630,5632c6012,6020
< AL_INLINE uint8_t AL_API
< ib_notice_get_type(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
static inline uint8_t
ib_slvl_table_get(
IN const ib_slvl_table_t* p_slvl_tbl,
IN uint8_t sl_index )
{
uint8_t idx = sl_index/2;
CL_ASSERT(sl_index <= 15);
if (sl_index%2)
5634c6022,6029
< return (uint8_t)((cl_ntoh32( p_notice_attr->combo1 ) >> 1) & 0x0000007F);
---
/* this is an odd sl. Need to return the ls bits. */
return ( p_slvl_tbl->raw_vl_by_sl[idx] & 0x0F );
}
else
{
/* this is an even sl. Need to return the ms bits. */
return ( (p_slvl_tbl->raw_vl_by_sl[idx] & 0xF0) >> 4 );
}
5638,5639c6033,6037
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose type to return.
---
* p_slvl_tbl
* [in] pointer to ib_slvl_table_t object.
*
* sl_index
* [in] the sl index in the table whose value should be returned.
5642c6040,6042
< * Returns the type of the notice.
---
* vl for the requested sl_index.
*
* NOTES
5645c6045
< * ib_mad_notice_attr_t, ib_notice_set_type
---
* ib_slvl_table_t
5648c6048
< /****f* IBA Base: Types/ib_notice_set_type
---
/****s* IBA Base: Types/ib_vl_arb_element_t
5650c6050
< * ib_notice_set_type
---
* ib_vl_arb_element_t
5653c6053
< * Sets the type of a notice trap.
---
* IBA defined VL Arbitration Table Element. (14.2.5.9)
5657,5660c6057,6058
< AL_INLINE void AL_API
< ib_notice_set_type(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint8_t type )
---
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_element
5662c6060,6061
< uint32_t val;
---
uint8_t vl;
uint8_t weight;
5664,5684c6063,6065
< val = cl_ntoh32( p_notice_attr->combo1 );
< /* Clear the type. */
< val &= 0xFFFFFF01;
< /* Set new value. */
< val |= (((uint32_t)(type & 0x7F)) << 1);
< p_notice_attr->combo1 = cl_hton32( val );
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure whose type to set.
< *
< * type
< * [in] Type of notice trap.
< *
< * RETURN VALUES
< * This function does not return a value.
< *
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_get_type
< *********/
---
} PACK_SUFFIX ib_vl_arb_element_t;
#include <complib/cl_packoff.h>
/************/
5686c6067,6068
< /****f* IBA Base: Types/ib_notice_get_prod_type
---
#define IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK 32
/****s* IBA Base: Types/ib_vl_arb_table_t
5688c6070
< * ib_notice_get_prod_type
---
* ib_vl_arb_table_t
5691c6073
< * Retrieves the producer type from a generic notice trap.
---
* IBA defined VL Arbitration Table. (14.2.5.9)
5695,5697c6077,6078
< AL_INLINE uint32_t AL_API
< ib_notice_get_prod_type(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_table
5699,5712c6080,6084
< return (cl_ntoh32( p_notice_attr->combo1 ) >> 8);
< }
< /*
< * PARAMETERS
< * p_notice_attr
< * [in] Pointer to the notice attribute structure whose
< * prducer type to return.
< *
< * RETURN VALUES
< * Returns the producer type of the notice, in host byte order.
< *
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_set_prod_type
< *********/
---
ib_vl_arb_element_t vl_entry[IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK];
} PACK_SUFFIX ib_vl_arb_table_t;
#include <complib/cl_packoff.h>
/************/
5714c6086
< /****f* IBA Base: Types/ib_notice_set_prod_type
---
/****s* IBA Base: Types/ib_vl_arb_table_record_t
5716c6088
< * ib_notice_set_prod_type
---
* ib_vl_arb_table_record_t
5719c6091
< * Sets the producer type of a generic notice trap.
---
* IBA defined VL Arbitration Table Record for SA Query. (15.2.5.9)
5723,5726c6095,6096
< AL_INLINE void AL_API
< ib_notice_set_prod_type(
< IN OUT ib_mad_notice_attr_t* const p_notice_attr,
< IN const uint32_t prod_type )
---
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_table_record
5728c6098,6106
< uint32_t val;
---
ib_net16_t lid; // for CA: lid of port, for switch lid of port 0
uint8_t port_num;
uint8_t block_num;
uint32_t reserved;
ib_vl_arb_table_t vl_arb_tbl;
} PACK_SUFFIX ib_vl_arb_table_record_t;
#include <complib/cl_packoff.h>
/************/
5730,5736d6107
< val = cl_ntoh32( p_notice_attr->combo1 );
< /* Clear the type. */
< val &= 0x000000FF;
< /* Set new value. */
< val |= (prod_type << 8);
< p_notice_attr->combo1 = cl_hton32( val );
< }
5738,5751c6109,6119
< * PARAMETERS
< * p_notice_attr
< * [in/out] Pointer to the notice attribute structure
< * whose producer type to set.
< *
< * prod_type
< * [in] Producer type of notice trap.
< *
< * RETURN VALUES
< * This function does not return a value.
< *
< * SEE ALSO
< * ib_mad_notice_attr_t, ib_notice_get_prod_type
< *********/
---
* Global route header information received with unreliable datagram messages
*/
#include <complib/cl_packon.h>
typedef struct _ib_grh
{
ib_net32_t ver_class_flow;
ib_net16_t resv1;
uint8_t resv2;
uint8_t hop_limit;
ib_gid_t src_gid;
ib_gid_t dest_gid;
5753c6121,6124
< /****f* IBA Base: Types/ib_notice_get_vend_id
---
} PACK_SUFFIX ib_grh_t;
#include <complib/cl_packoff.h>
/****f* IBA Base: Types/ib_grh_get_ver_class_flow
5755c6126
< * ib_notice_get_vend_id
---
* ib_grh_get_ver_class_flow
5758c6129
< * Retrieves the vendor ID from a vendor specific notice trap.
---
* Get encoded version, traffic class and flow label in grh
5762,5764c6133,6138
< AL_INLINE uint32_t AL_API
< ib_notice_get_vend_id(
< IN const ib_mad_notice_attr_t* const p_notice_attr )
---
static inline void
ib_grh_get_ver_class_flow(
IN const ib_net32_t ver_class_flow,
OUT uint8_t* const p_ver,
OUT uint8_t* const p_tclass,
OUT uint32_t* const p_flow_lbl )
5766c6140,6153
< return ib_notice_get_prod_type( p_notice_attr );
---
ib_net32_t tmp_ver_class_flow;
if (p_ver)
*p_ver = (uint8_t)(ver_class_flow & 0x0f);
tmp_ver_class_flow = ver_class_flow >> 4;
if (p_tclass)
*p_tclass = (uint8_t)(tmp_ver_class_flow & 0xff);
tmp_ver_class_flow = tmp_ver_class_flow >> 8;
if (p_flow_lbl)
*p_flow_lbl = tmp_ver_class_flow & 0xfffff;
5770,5772c6157,6158
< * p_notice_attr
< *
Fabian Tillier
2006-07-10 13:23:28 UTC
Permalink
On 7/10/06, Fabian Tillier <***@silverstorm.com> improperly
quoted a huge message.

I want to appologize to everyone for not clipping the original mail -
I hit send too soon.

- Fab
Sean Hefty
2006-07-10 16:44:22 UTC
Permalink
Post by Fabian Tillier
Could you filter these out and send out what the actual changes
thatmatter are? I quickly lost interest here.
Can you also use the -up diff format?

- Sean
Eitan Zahavi
2006-07-11 06:59:37 UTC
Permalink
Guys,

The files are in SVN:
https://openib.org/svn/gen2/trunk/src/userspace/management/osm/include/iba/ib_types.h
svn://openib.tc.cornell.edu/gen1/trunk/inc/iba/ib_types.h

You can use whatever diff you like ...

Eitan Zahavi
Senior Engineering Director, Software Architect
Mellanox Technologies LTD
Tel:+972-4-9097208
Fax:+972-4-9593245
P.O. Box 586 Yokneam 20692 ISRAEL
-----Original Message-----
Sent: Monday, July 10, 2006 7:44 PM
To: Fabian Tillier
Subject: Re: [Openib-windows] [openib-general] ib_types.h and Win/Linux
consolidation
Post by Fabian Tillier
Could you filter these out and send out what the actual changes
thatmatter are? I quickly lost interest here.
Can you also use the -up diff format?
Fabian Tillier
2006-07-11 14:47:49 UTC
Permalink
Hi Eitan,
Post by Eitan Zahavi
Guys,
https://openib.org/svn/gen2/trunk/src/userspace/management/osm/include/iba/ib_types.h
svn://openib.tc.cornell.edu/gen1/trunk/inc/iba/ib_types.h
You can use whatever diff you like ...
No diff tool that I know of will filter out the trivial changes that
make up most of the patch from what I have seen. I don't have time to
spend on this now, so if you'd like me to look at this, I'll need you
to do some of the work to make it easier for me to digest.

Cheers,

- Fab

Loading...