> > Hello, > > I am looking into the OFED code for the component mask bits of the > PathRecord requests and I need some further explanation. > > The IB specification in section "15.2.5.16 PathRecord, table 207 PathRecord" > defines the first two components as "Reserved". Each one of them is 32 bits > long and the description of the first one is "Reserved" > while the description of the second reserved component is "Offset for > alignment".
The IBTA has published errata to the 1.2.1 specification which includes the use of many reserved fields. I believe these errata are public on their web site. Ira > > However, in the file "include/rdma/ib_sa.h" where the component mask bits for > the Path Records are defined, the 1st and 2nd component are combined > together under the name IB_SA_PATH_REC_SERVICE_ID. > > > #define IB_SA_PATH_REC_SERVICE_ID (IB_SA_COMP_MASK( 0) |\ > IB_SA_COMP_MASK( 1)) > > > The same definition exists in the OpenSM code in file "include/iba/ib_types.h" > > > /* Path Record Component Masks */ > #define IB_PR_COMPMASK_SERVICEID_MSB > (CL_HTON64(((uint64_t)1)<<0)) > #define IB_PR_COMPMASK_SERVICEID_LSB (CL_HTON64(((uint64_t)1)<<1)) > ..... > ..... > #define IB_PR_COMPMASK_SERVICEID (IB_PR_COMPMASK_SERVICEID_MSB | > \ > IB_PR_COMPMASK_SERVICEID_LSB) > > > Why are these fields named as "SERVICE_ID"? I would expect something like > IB_SA_PATH_REC_RESERVED_1 and IB_SA_PATH_REC_RESERVED_2 according > to the specs. Are they really reserved or used, and if they are used, when > does > this happen? > > Vangelis
