On 2/13/2013 6:21 PM, Ira Weiny wrote: > On Wed, 13 Feb 2013 18:16:18 -0500 > Hal Rosenstock <[email protected]> wrote: > >> On 2/13/2013 5:21 PM, Ira Weiny wrote: >>> Due to the fact there is no corresponding patch to the diags I assume this >>> is something you want to support other uses of libibmad? >> >> It's in out of tree apps. >> >>> As this changes the API could you update libibmad.ver as well. >> >> I thought that this is done once right before the new release is cut. >> Otherwise, there is the possibility of too many version updates. > > I would rather do it on the first change then all builds with this lib are > versioned correctly. Also, if you do it just before release you have to > review all the patches to see if/how they affect the api.
I'll do this if that's what you want but: http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html states: Here are a set of rules to help you update your library version information: Update the version information only immediately before a public release of your software. More frequent updates are unnecessary, and only guarantee that the current interface number gets larger faster. -- Hal > Ira > >> >> -- Hal >> >>> Ira >>> >>> On Thu, 31 Jan 2013 01:43:42 -0500 >>> Hal Rosenstock <[email protected]> wrote: >>> >>>> Add ib_node_query_via routine similar to ib_path_query_via >>>> >>>> Signed-off-by: Hal Rosenstock <[email protected]> >>>> --- >>>> diff --git a/include/infiniband/mad.h b/include/infiniband/mad.h >>>> index 0694dc4..02b2353 100644 >>>> --- a/include/infiniband/mad.h >>>> +++ b/include/infiniband/mad.h >>>> @@ -65,6 +65,7 @@ BEGIN_C_DECLS >>>> #define IB_PC_DATA_SZ (IB_MAD_SIZE - IB_PC_DATA_OFFS) >>>> #define IB_SA_MCM_RECSZ 53 >>>> #define IB_SA_PR_RECSZ 64 >>>> +#define IB_SA_NR_RECSZ 108 >>>> #define IB_SA_GIR_RECSZ 72 >>>> #define IB_BM_DATA_OFFS 64 >>>> #define IB_BM_DATA_SZ (IB_MAD_SIZE - IB_BM_DATA_OFFS) >>>> @@ -1519,6 +1542,9 @@ MAD_EXPORT int ib_path_query_via(const struct >>>> ibmad_port *srcport, >>>> ibmad_gid_t srcgid, ibmad_gid_t destgid, >>>> ib_portid_t * sm_id, void *buf); >>>> /* returns lid */ >>>> +MAD_EXPORT int ib_node_query_via(const struct ibmad_port *srcport, >>>> + uint64_t guid, ib_portid_t * sm_id, >>>> + void *buf); >>>> >>>> /* resolve.c */ >>>> MAD_EXPORT int ib_resolve_smlid(ib_portid_t * sm_id, int timeout) >>>> DEPRECATED; >>>> diff --git a/src/libibmad.map b/src/libibmad.map >>>> index a4d4418..3f92885 100644 >>>> --- a/src/libibmad.map >>>> +++ b/src/libibmad.map >>>> @@ -148,5 +148,6 @@ IBMAD_1.3 { >>>> cc_config_status_via; >>>> smp_mkey_get; >>>> smp_mkey_set; >>>> + ib_node_query_via; >>>> local: *; >>>> }; >>>> diff --git a/src/sa.c b/src/sa.c >>>> index a9a93cc..352ed9f 100644 >>>> --- a/src/sa.c >>>> +++ b/src/sa.c >>>> @@ -145,3 +145,47 @@ int ib_path_query(ibmad_gid_t srcgid, ibmad_gid_t >>>> destgid, ib_portid_t * sm_id, >>>> { >>>> return ib_path_query_via(ibmp, srcgid, destgid, sm_id, buf); >>>> } >>>> + >>>> +/* NodeRecord */ >>>> +#define IB_NR_COMPMASK_LID (1ull<<0) >>>> +#define IB_NR_COMPMASK_RESERVED1 (1ull<<1) >>>> +#define IB_NR_COMPMASK_BASEVERSION (1ull<<2) >>>> +#define IB_NR_COMPMASK_CLASSVERSION (1ull<<3) >>>> +#define IB_NR_COMPMASK_NODETYPE (1ull<<4) >>>> +#define IB_NR_COMPMASK_NUMPORTS (1ull<<5) >>>> +#define IB_NR_COMPMASK_SYSIMAGEGUID (1ull<<6) >>>> +#define IB_NR_COMPMASK_NODEGUID (1ull<<7) >>>> +#define IB_NR_COMPMASK_PORTGUID (1ull<<8) >>>> +#define IB_NR_COMPMASK_PARTCAP (1ull<<9) >>>> +#define IB_NR_COMPMASK_DEVID (1ull<<10) >>>> +#define IB_NR_COMPMASK_REV (1ull<<11) >>>> +#define IB_NR_COMPMASK_PORTNUM (1ull<<12) >>>> +#define IB_NR_COMPMASK_VENDID (1ull<<13) >>>> +#define IB_NR_COMPMASK_NODEDESC (1ull<<14) >>>> + >>>> +#define IB_NR_DEF_MASK IB_NR_COMPMASK_PORTGUID >>>> + >>>> +int ib_node_query_via(const struct ibmad_port *srcport, uint64_t guid, >>>> + ib_portid_t * sm_id, void *buf) >>>> +{ >>>> + ib_sa_call_t sa = { 0 }; >>>> + uint8_t *p; >>>> + >>>> + memset(&sa, 0, sizeof sa); >>>> + sa.method = IB_MAD_METHOD_GET; >>>> + sa.attrid = IB_SA_ATTR_NODERECORD; >>>> + sa.mask = IB_NR_DEF_MASK; >>>> + sa.trid = mad_trid(); >>>> + >>>> + memset(buf, 0, IB_SA_NR_RECSZ); >>>> + >>>> + mad_encode_field(buf, IB_SA_NR_PORT_GUID_F, &guid); >>>> + >>>> + p = sa_rpc_call(srcport, buf, sm_id, &sa, 0); >>>> + if (!p) { >>>> + IBWARN("sa call node_query failed"); >>>> + return -1; >>>> + } >>>> + >>>> + return 0; >>>> +} >>>> -- >>>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >>>> the body of a message to [email protected] >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >>> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >> the body of a message to [email protected] >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
