[ofa-general] [PATCH] OpenSM/osm_sa_mcmember_record.c: Validate some more MGID bits for IPv6 SNM
Hal Rosenstock
hrosenstock at xsigo.com
Mon Jun 2 07:00:39 PDT 2008
OpenSM/osm_sa_mcmember_record.c: Include high order 24 bits of low 64
MGID bits in validation as these bits are supposed to be 0
Signed-off-by: Hal Rosenstock <hal at xsigo.com>
diff --git a/opensm/opensm/osm_sa_mcmember_record.c b/opensm/opensm/osm_sa_mcmember_record.c
index c14632d..73b3fc4 100644
--- a/opensm/opensm/osm_sa_mcmember_record.c
+++ b/opensm/opensm/osm_sa_mcmember_record.c
@@ -1088,14 +1088,15 @@ __search_mgrp_by_mgid(IN cl_map_item_t * const p_map_item, IN void *context)
* YYYYYY is the last 24 bits of the port guid */
#define PREFIX_MASK (0xff10ffff0000ffffULL)
#define PREFIX_SIGNATURE (0xff10601b00000000ULL)
-#define INT_ID_MASK (0x00000001ff000000ULL)
+#define INT_ID_MASK (0xffffff1ff000000ULL)
+#define INT_ID_SIGNATURE (0x00000001ff000000ULL)
uint64_t g_prefix = cl_ntoh64(p_mgrp->mcmember_rec.mgid.unicast.prefix);
uint64_t g_interface_id = cl_ntoh64(p_mgrp->mcmember_rec.mgid.unicast.interface_id);
uint64_t rcv_prefix = cl_ntoh64(p_recvd_mgid->unicast.prefix);
uint64_t rcv_interface_id = cl_ntoh64(p_recvd_mgid->unicast.interface_id);
if ((rcv_prefix & PREFIX_MASK) == PREFIX_SIGNATURE &&
- (rcv_interface_id & INT_ID_MASK) == INT_ID_MASK &&
+ (rcv_interface_id & INT_ID_MASK) == INT_ID_SIGNATURE &&
(g_prefix & PREFIX_MASK) ==
(rcv_prefix && PREFIX_MASK) &&
(g_interface_id & INT_ID_MASK) ==
More information about the general
mailing list