Hi Takshak, On Fri, 2006-02-24 at 08:09, Takshak C. wrote: > Hi Hal: > > Thanks for the information. > > I would like to confirm that, umad_send() and umad_recv calls goes out of osm > libraries.
Not sure what you mean by this. The umad library of which those calls are a part of is underneath any OSM libraries that might be used. > I have written an application to get PATH_RECORDS using opensm libraries > similar to osmtest. > If I don't start openSM instance, then I don't get results rather I get an > error message as > below: > [ umad_receiver: ERR 5409: send completed with error (method=0x12 attr=0x35 > trans_id=0x1) -- dropping ] That's saying that a matching receive was not seen (the response to the GetTable PathRecord request). The transaction ID looks funny to me for matching. Is this being set correctly ? (Not having the code it is hard for me to tell how things are initialized and what mode this is working in). > I have tried to go inside. Just after umad_send() call in osm_vendor_ibumad.c > ( osm_vendor_send() function ), > I called umad_recv() function call and tried to check the receive length. And > I am getting 24. > > Why this could have been happened ? return length = 24 means call has not > received path records. Because if it is getting a response, due to the transaction ID, I do not think it is considered a match. I can't be sure with the info provided. > But if I start openSM instance then I get proper result length. Sounds like your application may have an initialization issue that this fixes. > I would like to remove dependency of starting this openSM instance and my > application program > should run independently. This should be possible. > Could you please throw me some light on this. When I have called umad_recv() > it should not depend > on openSM instance I believe to received the things. Correct. -- Hal > Thanks & Regards. > - Takshak > > > Hal Rosenstock wrote: > > On Wed, 2006-02-22 at 08:09, Takshak C. wrote: > > > Thanks a lot Hal, for clearing my doubts. > > > I would like to redefine my problem based on your inputs. > > > > > > I am into a scenario, where vendor specific primary SM is running in > > > the subnet. > > > This running SM is different than openSM. I have loaded an openIB > > > stack on the host. > > > > OK. I understand your configuration. > > > > > Some of the sample examples from management/diags/src/ directory like > > > smpquery > > > for nodeinfo etc works and gives result to me. > > > > > > Now, could it be possible for me to write a SA query and fetch the > > > path, service > > > or info records > > > > Info records ? > > > > > without starting openSM instance as I have already primary SM > > > running in the subnet. ? > > > > Yes; all you are (conceptually) talking about is a user SA client. > > > > > I believe, this question could be right and your answer would > > > help me. > > > > > > I do not want to start openSM because then synchronization between > > > primary SM > > > and openSM would bring other issues or difficulties. > > > > Understood. It was unclear whether you had an SM in your subnet. > > > > You should be able to link libopensm and the other management libraries > > to an SA application which would do this (and not require OpenSM > > itself). > > > > > Could you please tell me, how should I go about it ? Waiting. > > > > I think I've already answered this. > > > > -- Hal > > > > > Regards. > > > - Takshak > > > > > > > > > > > > Hal Rosenstock wrote: > > > > On Wed, 2006-02-22 at 06:56, Takshak C. wrote: > > > > > > > > > Hal Rosenstock wrote: > > > > > > > > > > > > Please throw some light on this. Do you have any userspace SA > > > > > > > support for retrieving path, service record > > > > > > > information ? > > > > > > > > > > > > > > > > > > > > > > > > > > There have been discussions about userspace SA support but nothing > > > > > > currently for OpenIB (gen2). Currently, you can get this by using > > > > > > > > > > > > > > > > > > > > > > Could you please tell me, when userspace SA support will be available > > > > > in openIB gen2. > > > > > > > > > > > > > I don't know but I'm not sure how much this helps you based on your > > > > questions below. > > > > > > > > > > > > > > osm_vendor_ibumad_sa.c which supports most SA requests. It is built > > > > > > as > > > > > > part of libosmvendor (part of the OpenSM build) but can be used > > > > > > outside > > > > > > of OpenSM. It is used by osmtest if you want to look at some use > > > > > > cases. > > > > > > It obtains PathRecords and ServiceRecords. That might be an easier > > > > > > direction to go than trying to use the management libraries to > > > > > > build the > > > > > > pieces of a userspace SA client you want. > > > > > > > > > > > > -- Hal > > > > > > > > > > > > > > > > > > > > > > See, to execute osmtest, I found that openSM instance must be there. > > > > > > > > > > > > > Must be where ? What is your IB configuration ? > > > > > > > > > > > > > So, even if I use part > > > > > of libosmvendor library ( osm_vendor_ibumad_sa.c) functions, I have to > > > > > start openSM > > > > > instance to execute the SA query successfully. > > > > > > > > > > > > > An SM is needed in the subnet and SA is part of that and answers such > > > > queries. > > > > > > > > > > > > > Without starting openSM client, I m able to retrieve node description, > > > > > node info, SM info, > > > > > port info by using management libraries libibumad and libibmad. > > > > > > > > > > > > > of the local node only (until the SM brings up the subnet). > > > > > > > > > > > > > What I want to achieve is, without talking with openSM instance, my SA > > > > > query client > > > > > should go and get the required information. > > > > > > > > > > > > > Why ? > > > > > > > > > > > > > Is this possible ?. > > > > > > > > > > > > > No. What would you query for paths to if the subnet were not up ? > > > > > > > > -- Hal > > > > > > > > > > > > > Would like to know your inputs on this. > > > > > > > > > > Regards, > > > > > - Takshak > > > > > > > > > > > > Regards. > > > > > > > - Takshak > > > > > > > > > > > > > > > > > > > > > Hal Rosenstock wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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: [EMAIL PROTECTED] on behalf of Takshak C. > > > > > > > > Sent: Mon 2/6/2006 8:00 AM > > > > > > > > To: [email protected] > > > > > > > > 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 > > > > > > > > [email protected] > > > > > > > > http://openib.org/mailman/listinfo/openib-general > > > > > > > > > > > > > > > > To unsubscribe, please visit > > > > > > > > http://openib.org/mailman/listinfo/openib-general > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
