[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