[ofa-general] libibmad question forward

Hal Rosenstock hal.rosenstock at gmail.com
Sat Sep 22 06:18:35 PDT 2007


On 9/21/07, Akshay Mathur <akshay.mathur at qlogic.com> wrote:
> I was wondering if the patch to Device Mgmt class in mgmt_class_vers()
> was applied.

Sasha did this the other day and sent email on the list.

> Hal, Roland, Sean,
>
> The value return by mgmt_class_vers() is used for agent registration
> with umad and is not used for creating mad requests by mad_encode().
> So, What is the implication of registering with mgmt_class_version of 2?

It affects what class version for a given class is received by the MAD
layer in the kernel.

> Does the driver implements backwards compatibility?

Driver isn't responsible for handling class specific class versions.

> In my experiments, I
> was able to register when mgmt_class_vers() returned a version value of
> 2 and send / receive DM queries with class_version set to 1.

You can send anything. I'm surprised that you were able to receive a
DM version 1 when registering with version 2 though.

-- Hal

> Thanks
> Akshay Mathur
> QLogic Corporation
> 780 Fifth Avenue, Suite 140
> King of Prussia, PA 19406
> Office: 610.233.4836
> Fax: 610.233.4777
>
>
> -----Original Message-----
> From: general-bounces at lists.openfabrics.org
> [mailto:general-bounces at lists.openfabrics.org] On Behalf Of Hal
> Rosenstock
> Sent: Thursday, September 20, 2007 2:02 PM
> To: Sasha Khapyorsky
> Cc: Jeff Becker; general
> Subject: Re: [ofa-general] libibmad question forward
>
> On Thu, 2007-09-20 at 18:16 +0200, Sasha Khapyorsky wrote:
> > On 16:27 Wed 19 Sep     , Hal Rosenstock wrote:
> > > On Wed, 2007-09-19 at 16:10 -0700, Jeff Becker wrote:
> > > > I am trying to use libibmad library for initiating queries of
> Device
> > > > Management and other class types. While initializing, the
> > > > madrpc_init() call fails when I have IB_DEVICE_MGMT_CLASS included
> as
> > > > a part of mgmt_classes parameter. This is because
> mgmt_class_vers()
> > > > (which is called by mad_register_port_client()/
> mad_register_client())
> > > > fails to return class version for Device Management Class.
> > > >
> > > > I am able to make DM queries if mgmt_class_vers() is fixed i.e.
> just
> > > > add a case to return the version for IB_DEVICE_MGMT_CLASS. e.g.
> > > >
> > > > static int
> > > > mgmt_class_vers(int mgmt_class)
> > > >
> > > > {
> > > >
> > > >        if ((mgmt_class >= IB_VENDOR_RANGE1_START_CLASS &&
> > > >             mgmt_class <= IB_VENDOR_RANGE1_END_CLASS) ||
> > > >            (mgmt_class >= IB_VENDOR_RANGE2_START_CLASS &&
> > > >             mgmt_class <= IB_VENDOR_RANGE2_END_CLASS))
> > > >               return 1;
> > > >
> > > >         switch(mgmt_class) {
> > > >               case IB_SMI_CLASS:
> > > >               case IB_SMI_DIRECT_CLASS:
> > > >                      return 1;
> > > >               case IB_SA_CLASS:
> > > >                      return 2;
> > > >               case IB_PERFORMANCE_CLASS:
> > > >                      return 1;
> > > >               // Change START
> > > >               case IB_DEVICE_MGMT_CLASS:
> > > >                      return 1;
>
> Actually, there is an annex which makes this class version 2 which is
> supposed to support backward compatibility for version 1. I'm not sure
> whether both are in use (as to how important the backward compatibility
> is with this). Maybe someone else can comment on this aspect.
>
> -- Hal
>
> > > >               // Change END
> > > >        }
> > > >
> > > >        return 0;
> > > >
> > > > I am wondering if this minor anomaly can be submitted as a bug to
> > > > broaden the usage of libibmad its usage for DM queries.
> > >
> > > Yes, DM class (and perhaps some other missing GS classes) should be
> > > added there.
> >
> > So, I'm going to apply this.
> >
> > Sasha
> >
> > From 46ad958b33c456672e2af711f36b494d398316bb Mon Sep 17 00:00:00 2001
> > From: Jeff Becker <jeff.c.becker at gmail.com>
> > Date: Thu, 20 Sep 2007 17:48:55 +0200
> > Subject: [PATCH] libibmad: add support for IB_DEVICE_MGMT_CLASS
> >
> > From: Jeff Becker <jeff.c.becker at gmail.com>
> >
> > This adds IB_DEVICE_MGMT_CLASS to list of classes for which version is
> > returned.
> >
> > Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
> > ---
> >  libibmad/src/register.c |    2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/libibmad/src/register.c b/libibmad/src/register.c
> > index 3d1285a..d80fa14 100644
> > --- a/libibmad/src/register.c
> > +++ b/libibmad/src/register.c
> > @@ -95,6 +95,8 @@ mgmt_class_vers(int mgmt_class)
> >                       return 2;
> >               case IB_PERFORMANCE_CLASS:
> >                       return 1;
> > +             case IB_DEVICE_MGMT_CLASS:
> > +                     return 1;
> >       }
> >
> >       return 0;
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit
> http://openib.org/mailman/listinfo/openib-general
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>



More information about the general mailing list