[openib-general] [PATCH] OpenSM/osm_sa_mcmember_record.c: In osm_mcmr_rcv_create_new_mgrp, fix exactly selectors in response

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Mon Sep 25 05:35:37 PDT 2006


Hi Hal.

The patch looks ok. A few remarks thought:

It appears that the multicast group mtu/rate selectors
are actually not referenced by anyone - the SM/SA code 
implicitly assumes that they should be 'exact', and acts 
accordingly. Same goes for the response - the selectors
that are filled in are hard-coded to 'exact'.

This is the reason why the bug that this patch fixes has
never appeared, and why fixing it will not change the SM
behavior.

But of course, it is better to have this fix anyway.

--
Yevgeny

> Subject:
> [openib-general] [PATCH] OpenSM/osm_sa_mcmember_record.c: In
> osm_mcmr_rcv_create_new_mgrp, fix exactly selectors in response
> From:
> "Hal Rosenstock" <halr at voltaire.com>
> Date:
> 18 Sep 2006 20:30:37 -0400
> To:
> openib-general at openib.org
> 
> To:
> openib-general at openib.org
> CC:
> "Roland Dreier" <rdreier at cisco.com>
> 
> 
> OpenSM/osm_sa_mcmember_record.c: In osm_mcmr_rcv_create_new_mgrp, set
> exactly selectors after rather than before mgrp is initialized
> 
> Pointed out by: Roland Dreier <rdreier at cisco.com>
> 
> Signed-off-by: Hal Rosenstock <halr at voltaire.com>
> 
> Index: opensm/osm_sa_mcmember_record.c
> ===================================================================
> --- opensm/osm_sa_mcmember_record.c	(revision 9347)
> +++ opensm/osm_sa_mcmember_record.c	(working copy)
> @@ -1337,15 +1337,18 @@ osm_mcmr_rcv_create_new_mgrp(
>      goto Exit;
>    }
>  
> -  /* the mcmember_record should have mtu_sel, rate_sel and pkt_lifetime_sel = 2 */
> -  (*pp_mgrp)->mcmember_rec.mtu |= 2<<6; /* exactly */
> -  (*pp_mgrp)->mcmember_rec.rate |= 2<<6; /* exactly */
> -  (*pp_mgrp)->mcmember_rec.pkt_life |= 2<<6; /* exactly */
> -
>    /* Initialize the mgrp */
>    (*pp_mgrp)->mcmember_rec = mcm_rec;
>    (*pp_mgrp)->mcmember_rec.mlid = mlid;
>  
> +  /* the mcmember_record should have mtu_sel, rate_sel, and pkt_lifetime_sel = 2 */
> +  (*pp_mgrp)->mcmember_rec.mtu &= 0x3f;
> +  (*pp_mgrp)->mcmember_rec.mtu |= 2<<6; /* exactly */
> +  (*pp_mgrp)->mcmember_rec.rate &= 0x3f;
> +  (*pp_mgrp)->mcmember_rec.rate |= 2<<6; /* exactly */
> +  (*pp_mgrp)->mcmember_rec.pkt_life &= 0x3f;
> +  (*pp_mgrp)->mcmember_rec.pkt_life |= 2<<6; /* exactly */
> +
>    /* Insert the new group in the data base */
>    
>    /* since we might have an old group by that mlid
> 
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general




More information about the general mailing list