[openib-general] Re: [PATCH] osm: add support for 1.2 errata - SA enhanced capability mask matching
Hal Rosenstock
halr at voltaire.com
Mon Apr 10 05:34:15 PDT 2006
Hi Eitan,
On Mon, 2006-04-03 at 03:11, Eitan Zahavi wrote:
> Hi Hal
>
> This patch adds support for the following 1.2 errata MGTWG8372.
> This should be useful for scalability of:
> * SRP target discovery and
> * Queries for all SM ports.
>
> Reference ID: 4291
>
> Add to table: 186 SA-Specific ClassPortInfo:CapabilityMask
> Name | Bit | Description
> ===========================================================================================
> IsPortInfoCapMaskMatchSupported | 13 | If this value is 1, SA shall support matching the
> | | PortInfo:CapabilityMask component as described in
> | | <ref to section 15.2.5.3>.
>
> Reference ID: 4292
> If SA's ClassPortInfo:CapabilityMask.IsPortInfoCapMaskMatchSupported is 1,
> then the AttributeModifier of the SubnAdmGet() and SubnAdmGetTable()
> methods affects the matching behavior on the PortInfo:CapabilityMask
> component. If the high-order bit (bit 31) of the AttributeModifier
> is set to 1, matching on the CapabilityMask component will not be an
> exact bitwise match as described in <ref to 15.4.4>. Instead,
> matching will only be performed on those bits which are set to 1 in
> the PortInfo:CapabilityMask embedded in the query.
>
> In <ref to o15-0.x.y>, bits in the PortInfo:CapabilityMask embedded
> in the query that are set to 0 are bitwise wildcards for purposes of
> matching.
>
> This gives a requester the ability to select desired capabilities
> and query for ports which support those capabilities.
>
> If SA's ClassPortInfo:CapabilityMask.IsPortInfoCapMaskMatchSupported
> is 0, or if bit 31 of the AttributeModifier is 0, then any matching
> performed on the PortInfo:CapabilityMask component is as described
> in <ref to 15.4.4>.
>
> Eitan
>
> Signed-off-by: Eitan Zahavi <eitan at mellanox.co.il>
...
> Index: opensm/osm_sa_class_port_info.c
> ===================================================================
> --- opensm/osm_sa_class_port_info.c (revision 6144)
> +++ opensm/osm_sa_class_port_info.c (working copy)
> @@ -212,15 +212,21 @@ __osm_cpi_rcv_respond(
> MultiPathRecord,
> TraceRecord
>
> - OSM_CAP_IS_SUBN_OPT_REINIT_SUP:
> + OSM_CAP_IS_REINIT_SUP:
> For reinitialization functionality.
>
> So not sending traps, but supporting Get(Notice) and Set(Notice):
> */
> - p_resp_cpi->cap_mask = 0x2; /* Note host notation replaced later */
> +
> + /* Note host notation replaced later */
> + p_resp_cpi->cap_mask = 0x2; /* Generic mask: support Get/Set attributes */
> +
> if (p_rcv->p_subn->opt.no_multicast_option != TRUE)
> p_resp_cpi->cap_mask |= OSM_CAP_IS_UD_MCAST_SUP;
>
> + p_resp_cpi->cap_mask |= OSM_CAP_IS_REINIT_SUP;
OpenSM doesn't support node reinit so this bit shouldn't be on, right ?
-- Hal
More information about the general
mailing list