Are the PathRecord reserved components really reserved?
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".
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
PiANCj4gSGVsbG8sDQo+IA0KPiBJIGFtIGxvb2tpbmcgaW50byB0aGUgT0ZFRCBjb2RlIGZvciB0 aGUgY29tcG9uZW50IG1hc2sgYml0cyBvZiB0aGUNCj4gUGF0aFJlY29yZCByZXF1ZXN0cyBhbmQg SSBuZWVkIHNvbWUgZnVydGhlciBleHBsYW5hdGlvbi4NCj4gDQo+IFRoZSBJQiBzcGVjaWZpY2F0 aW9uIGluIHNlY3Rpb24gIjE1LjIuNS4xNiBQYXRoUmVjb3JkLCB0YWJsZSAyMDcgUGF0aFJlY29y ZCINCj4gZGVmaW5lcyB0aGUgZmlyc3QgdHdvIGNvbXBvbmVudHMgYXMgIlJlc2VydmVkIi4gRWFj aCBvbmUgb2YgdGhlbSBpcyAzMiBiaXRzDQo+IGxvbmcgYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiB0 aGUgZmlyc3Qgb25lIGlzICJSZXNlcnZlZCINCj4gd2hpbGUgdGhlIGRlc2NyaXB0aW9uIG9mIHRo ZSBzZWNvbmQgcmVzZXJ2ZWQgY29tcG9uZW50IGlzICJPZmZzZXQgZm9yDQo+IGFsaWdubWVudCIu DQoNCg0KVGhlIElCVEEgaGFzIHB1Ymxpc2hlZCBlcnJhdGEgdG8gdGhlIDEuMi4xIHNwZWNpZmlj YXRpb24gd2hpY2ggaW5jbHVkZXMgdGhlIHVzZSBvZiBtYW55IHJlc2VydmVkIGZpZWxkcy4NCg0K SSBiZWxpZXZlIHRoZXNlIGVycmF0YSBhcmUgcHVibGljIG9uIHRoZWlyIHdlYiBzaXRlLg0KDQpJ cmENCg0KPiANCj4gSG93ZXZlciwgaW4gdGhlIGZpbGUgImluY2x1ZGUvcmRtYS9pYl9zYS5oIiB3 aGVyZSB0aGUgY29tcG9uZW50IG1hc2sgYml0cyBmb3INCj4gdGhlIFBhdGggUmVjb3JkcyBhcmUg ZGVmaW5lZCwgdGhlIDFzdCBhbmQgMm5kIGNvbXBvbmVudCBhcmUgY29tYmluZWQNCj4gdG9nZXRo ZXIgdW5kZXIgdGhlIG5hbWUgSUJfU0FfUEFUSF9SRUNfU0VSVklDRV9JRC4NCj4gDQo+IA0KPiAj ZGVmaW5lIElCX1NBX1BBVEhfUkVDX1NFUlZJQ0VfSUQgICAoSUJfU0FfQ09NUF9NQVNLKCAwKSB8 XA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJfU0FfQ09NUF9NQVNL KCAxKSkNCj4gDQo+IA0KPiBUaGUgc2FtZSBkZWZpbml0aW9uIGV4aXN0cyBpbiB0aGUgT3BlblNN IGNvZGUgaW4gZmlsZSAiaW5jbHVkZS9pYmEvaWJfdHlwZXMuaCINCj4gDQo+IA0KPiAvKiBQYXRo IFJlY29yZCBDb21wb25lbnQgTWFza3MgKi8NCj4gI2RlZmluZSAgSUJfUFJfQ09NUE1BU0tfU0VS VklDRUlEX01TQg0KPiAoQ0xfSFRPTjY0KCgodWludDY0X3QpMSk8PDApKQ0KPiAjZGVmaW5lICBJ Ql9QUl9DT01QTUFTS19TRVJWSUNFSURfTFNCICAgICAoQ0xfSFRPTjY0KCgodWludDY0X3QpMSk8 PDEpKQ0KPiAuLi4uLg0KPiAuLi4uLg0KPiAjZGVmaW5lICBJQl9QUl9DT01QTUFTS19TRVJWSUNF SUQgKElCX1BSX0NPTVBNQVNLX1NFUlZJQ0VJRF9NU0IgfA0KPiBcDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSUJfUFJfQ09NUE1BU0tfU0VSVklDRUlEX0xTQikNCj4gDQo+ IA0KPiBXaHkgYXJlIHRoZXNlIGZpZWxkcyBuYW1lZCBhcyAiU0VSVklDRV9JRCI/IEkgd291bGQg ZXhwZWN0IHNvbWV0aGluZyBsaWtlDQo+IElCX1NBX1BBVEhfUkVDX1JFU0VSVkVEXzEgYW5kIElC X1NBX1BBVEhfUkVDX1JFU0VSVkVEXzIgYWNjb3JkaW5nDQo+IHRvIHRoZSBzcGVjcy4gQXJlIHRo ZXkgcmVhbGx5IHJlc2VydmVkIG9yIHVzZWQsIGFuZCBpZiB0aGV5IGFyZSB1c2VkLCB3aGVuIGRv ZXMNCj4gdGhpcyBoYXBwZW4/DQo+IA0KPiBWYW5nZWxpcw0KDQo=
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Thanks Ira,
I found the corresponding document.
Vangelis
Quoted 50 lines · Ira
Quoted 11 lines
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
Quoted 30 lines
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 nameIB_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 */
#defineIB_PR_COMPMASK_SERVICEID_MSB(CL_HTON64(((uint64_t)1)<<0))
#defineIB_PR_COMPMASK_SERVICEID_LSB(CL_HTON64(((uint64_t)1)<<1))
.....
.....
#defineIB_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 likeIB_SA_PATH_REC_RESERVED_1andIB_SA_PATH_REC_RESERVED_2according to the specs. Are they really reserved or used, and if they are used, when does this happen?Vangelis