On 9/21/07, Akshay Mathur <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> > > Date: Thu, 20 Sep 2007 17:48:55 +0200 > > Subject: [PATCH] libibmad: add support for IB_DEVICE_MGMT_CLASS > > > > From: Jeff Becker <[EMAIL PROTECTED]> > > > > This adds IB_DEVICE_MGMT_CLASS to list of classes for which version is > > returned. > > > > Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]> > > --- > > 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 > [email protected] > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general > > To unsubscribe, please visit > http://openib.org/mailman/listinfo/openib-general > _______________________________________________ > general mailing list > [email protected] > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general > > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general > _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
