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

Reply via email to