[openib-general] Get Table Records for SA Attribute ID ?
Hal Rosenstock
halr at voltaire.com
Mon Feb 6 06:02:41 PST 2006
Hi,
There are a couple of issues with the below.
1. SA MAD structure is missing the RMPP header. Once I saw that I didn't check for further issues with the format.
2. I will assume your register call sets RMPP.
3. SA class version is 2.
What SM are you using ? If you are using OpenSM, you can turn on verbose and see if the packet is seen by the SM. You could also enable madeye (in utils) to see if the packet is sent (and if anything is received back).
-- Hal
________________________________
From: openib-general-bounces at openib.org on behalf of Takshak C.
Sent: Mon 2/6/2006 8:00 AM
To: openib-general at openib.org
Subject: [openib-general] Get Table Records for SA Attribute ID ?
Hi,
I m trying to get the table records for SA attribute ID in following way.
But, I m not getting a single record, could anyone comment on the problem.
1. I have created saMadFormat structure described in the specification as below:
struct saMadFormat
{
uint8_t base_version ;
uint8_t mgmt_class ;
uint8_t class_version ;
uint8_t sa_method ;
uint16_t status ;
uint16_t not_used ;
uint64_t tid ;
uint16_t attr_id ;
uint16_t resv ;
uint32_t attr_mod ;
uint64_t sa_key;
uint64_t sm_key ;
uint32_t seg_num ;
uint32_t payload_len ;
uint8_t frag_flag ;
uint8_t edit_mod ;
uint16_t window ;
uint32_t endRID ;
uint64_t comp_mask ;
uint8_t adminData[192] ;
};
2. Then I have done all the basic operations like umad_open, umad_register for the IB_SA_CLASS
and umad_open_port etc successfully.
3. struct saMadFormat *saQuery = (struct saMadFormat*)(umad_get_mad(umad));
memset(saQuery, 0, sizeof(*saQuery));
saQuery->base_version = 1;
saQuery->mgmt_class = IB_SA_CLASS ;
saQuery->class_version = 1 ;
saQuery->sa_method = IB_MAD_METHOD_GET_TABLE ;
saQuery->attr_id = IB_SA_ATTR_PATHRECORD ;
saQuery->attr_mod = 0 ;
saQuery->tid = htonll(drmad_tid++);
saQuery->endRID = 0 ;
umad_set_addr(umad, lid, 1, 0, IB_DEFAULT_QP1_QKEY);
umad_set_grh(umad, 0);
umad_set_pkey(umad, 0xFFFF);
4. length = IB_MAD_SIZE;
if (umad_send(portid, mad_agent, umad, length, timeout_ms, 0) < 0)
IBPANIC("send failed");
if (umad_recv(portid, umad, &length, -1) != mad_agent)
IBPANIC("recv error: %s", drmad_status_str(saQuery));
if (!dump_char) {
xdump(stdout, 0, saQuery->adminData, 192);
return 0;
}
I m expecting that, I will get the resultant data in saQuery->adminData.
Is this correct ? If not then, how should I retrieve the table records ?
Any Idea ?
Thanks
- Takshak
_______________________________________________
openib-general mailing list
openib-general at openib.org
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
More information about the general
mailing list