[openib-general] [PATCH] osm: reviewing osmtest - osmt_multicast.c

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Wed Oct 11 03:23:34 PDT 2006


Hi Hal

Fixing a few problems in the multicast test flow,
plus some cosmetics.

Yevgeny

Signed-off-by:  Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>

Index: osmt_multicast.c
===================================================================
--- osmt_multicast.c	(revision 9776)
+++ osmt_multicast.c	(working copy)
@@ -318,6 +318,9 @@ osmt_send_mcast_request( IN osmtest_t * 
 
   if( status != IB_SUCCESS )
   {
+     osm_log( &p_osmt->log, OSM_LOG_ERROR,
+              "osmt_send_mcast_request: ERR 0226: "
+              "ib_query failed (%s)\n", ib_get_err_str( status ) );
     if( status == IB_REMOTE_ERROR )
     {
       osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -409,7 +412,7 @@ osmt_init_mc_query_rec(IN  osmtest_t * c
  * - Try full delete (JoinState and should be 0)
  * - Wait for trap 67.
  * - Try joining (not full mem) again to see the group was deleted.
- *   (should fail)
+ *   (should fail - o15.0.1.13)
  * o15.0.1.15:
  * - Try deletion of the IPoIB MCG and get: ERR_REQ_INVALID
  * o15.0.1.16:
@@ -548,6 +551,10 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     p_mgrp = (osmtest_mgrp_t*)cl_qmap_next( &p_mgrp->map_item );
   }
 
+  osm_log( &p_osmt->log, OSM_LOG_INFO,
+           "osmt_run_mcast_flow: "
+           "Found %d non-IPoIB MC Groups.\n", mcg_outside_test_cnt);
+
   if (IPoIBIsFound)
   {
     /* o15-0.2.4 - Check a join request to already created MCG */
@@ -638,11 +645,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
 
       goto Exit;
     }
-    else
-    {
-        mtu_phys = 0;
-        rate_phys = 0;
-    }
     /* We do not want to leave the MCG since its IPoIB */
   }
 
@@ -658,10 +660,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
   mc_req_rec.mlid = invalid_mlid;
   comp_mask = IB_MCR_COMPMASK_MLID;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 0xee, /*  User Defined query Get */
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status == IB_SUCCESS)
   {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -688,10 +695,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
   memset(&mc_req_rec.port_gid.unicast.interface_id, 0, sizeof(ib_net64_t));
   comp_mask = IB_MCR_COMPMASK_GID;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 0xee, /* User Defined query Get */
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status == IB_SUCCESS)
   {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -713,9 +725,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "Checking Join with insufficiant comp mask qkey & pkey (o15.0.1.3)...\n"
            );
 
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
-  
   /* no MGID */
   memset(&mc_req_rec.mgid, 0, sizeof(ib_gid_t));
   /* Request Join */
@@ -733,6 +742,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -758,9 +769,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "Checking Join with insufficient comp mask - sl (15.0.1.3)...\n"
            );
 
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
-  
   /* no MGID */
   memset(&mc_req_rec.mgid, 0, sizeof(ib_gid_t));
   /* Request Join */
@@ -778,12 +786,14 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
   osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
            
   if (status != IB_REMOTE_ERROR ||
       (( ib_net16_t ) (res_sa_mad.status & IB_SMP_STATUS_MASK )) !=
@@ -811,9 +821,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "Checking Join with insufficient comp mask - flow label (o15.0.1.3)...\n"
            );
 
-  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
-
   /* Request Join */
   ib_member_set_join_state(&mc_req_rec, IB_MC_REC_STATE_FULL_MEMBER);
 
@@ -829,6 +836,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -857,9 +866,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "Checking Join with insufficiant comp mask - tclass  (o15.0.1.3)...\n"
            );
 
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
-
   /* Request Join */
   ib_member_set_join_state(&mc_req_rec, IB_MC_REC_STATE_FULL_MEMBER) ;
 
@@ -875,6 +881,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -904,9 +912,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "Checking Join with insufficient comp mask - tclass qkey (o15.0.1.3)...\n"
            );
 
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
-  
   /* no MGID */
   /* memset(&mc_req_rec.mgid, 0, sizeof(ib_gid_t)); */
   /* Request Join */
@@ -924,6 +929,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -968,10 +975,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1007,10 +1019,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1046,10 +1063,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1065,7 +1087,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
   /* Checking above max value of MTU which is impossible */
   osm_log( &p_osmt->log, OSM_LOG_INFO,
            "osmt_run_mcast_flow: "
-           "Checking Join with unrealistic mtu (o15.0.1.8)...\n"
+           "Checking Join with unrealistic mtu : \n\t\tmore than 4096 -"
+           " max (o15.0.1.8)...\n"
            );
 
   /* impossible requested mtu */
@@ -1082,10 +1105,16 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_TCLASS |  /*  all above are required */
     IB_MCR_COMPMASK_MTU_SEL |
     IB_MCR_COMPMASK_MTU;
+
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1098,11 +1127,7 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     goto Exit;
   }
 
-  osm_log( &p_osmt->log, OSM_LOG_INFO,
-           "osmt_run_mcast_flow: "
-           "Checking Join with unrealistic mtu (o15.0.1.8)...\n"
-           );
-  /* Checking above max value of MTU which is impossible */
+  /* Checking below min value of MTU which is impossible */
   osm_log( &p_osmt->log, OSM_LOG_INFO,
            "osmt_run_mcast_flow: "
            "Checking Join with unrealistic mtu : \n\t\tless than 256 -"
@@ -1124,10 +1149,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_MTU_SEL |
     IB_MCR_COMPMASK_MTU;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1160,10 +1190,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_MTU_SEL |
     IB_MCR_COMPMASK_MTU;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1199,10 +1234,15 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_LIFE |
     IB_MCR_COMPMASK_LIFE_SEL;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
                                     &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR, 
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
   if (status != IB_REMOTE_ERROR ||
       res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID) {
     osm_log( &p_osmt->log, OSM_LOG_ERROR,
@@ -1224,8 +1264,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "osmt_run_mcast_flow: "
            "Checking Create given MGID=0 skip service level (o15.0.1.4)...\n"
            );
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
 
   osmt_init_mc_query_rec(p_osmt, &mc_req_rec);
 
@@ -1248,6 +1286,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -1303,8 +1343,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "Checking Create given MGID=0 skip Qkey and Pkey (o15.0.1.4)...\n"
            );
 
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
 
   osmt_init_mc_query_rec(p_osmt, &mc_req_rec);
 
@@ -1327,6 +1365,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -1356,8 +1396,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
            "osmt_run_mcast_flow: "
            "Checking Create given MGID=0 skip TClass (o15.0.1.4)...\n"
            );
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
 
   osmt_init_mc_query_rec(p_osmt, &mc_req_rec);
 
@@ -1381,6 +1419,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_RATE_SEL |
     IB_MCR_COMPMASK_RATE;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,
@@ -1592,6 +1632,12 @@ osmt_run_mcast_flow( IN osmtest_t * cons
    /* Good Flow - mgid is 0 while giving all required fields for join : P_Key, Q_Key, SL, FlowLabel, Tclass */
    /* Using Exact feasible MTU & RATE */
 
+  osm_log( &p_osmt->log, OSM_LOG_VERBOSE,
+           "osmt_run_mcast_flow: "
+           "Using Exact feasible MTU & RATE: "
+           "MTU = 0x%02X, RATE = 0x%02X\n",
+           mtu_phys, rate_phys);
+
   mc_req_rec.mtu =  mtu_phys;
   mc_req_rec.rate = rate_phys;
 
@@ -1640,6 +1686,11 @@ osmt_run_mcast_flow( IN osmtest_t * cons
      /* Good Flow - mgid is 0 while giving all required fields for join : P_Key, Q_Key, SL, FlowLabel, Tclass */
    /* Using Exact feasible RATE */
 
+  osm_log( &p_osmt->log, OSM_LOG_VERBOSE,
+           "osmt_run_mcast_flow: "
+           "Using Exact feasible RATE: 0x%02X\n",
+           rate_phys);
+
   mc_req_rec.rate = rate_phys;
 
   comp_mask =
@@ -1684,6 +1735,11 @@ osmt_run_mcast_flow( IN osmtest_t * cons
    /* Good Flow - mgid is 0 while giving all required fields for join : P_Key, Q_Key, SL, FlowLabel, Tclass */
    /* Using Exact feasible MTU */
 
+  osm_log( &p_osmt->log, OSM_LOG_VERBOSE,
+           "osmt_run_mcast_flow: "
+           "Using Exact feasible MTU: 0x%02X\n",
+           mtu_phys);
+
   mc_req_rec.mtu = mtu_phys;
 
   comp_mask =
@@ -1748,7 +1804,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     goto Exit;
   }
 
-  /* Lets try another multicast request */
+  /* Good Flow - mgid is 0 while giving all required fields for join : P_Key, Q_Key, SL, FlowLabel, Tclass */
+  /* Using feasible GREATER_THAN 0 packet lifitime */
   osm_log( &p_osmt->log, OSM_LOG_INFO,
            "osmt_run_mcast_flow: "
            "Checking Create given MGID=0 (o15.0.1.4)...\n"
@@ -1808,14 +1865,54 @@ osmt_run_mcast_flow( IN osmtest_t * cons
 
   /*  o15.0.1.6: */
   /*  - Create a new MCG with valid requested MGID. */
+  osmt_init_mc_query_rec(p_osmt, &mc_req_rec);
+  mc_req_rec.mgid = good_mgid;
 
   osm_log( &p_osmt->log, OSM_LOG_INFO,
            "osmt_run_mcast_flow: "
-           "Checking Create given MGID=0x%016" PRIx64 " : "
+           "Checking Create given valid MGID=0x%016" PRIx64 " : "
+           "0x%016" PRIx64 " (o15.0.1.6)...\n",
+           cl_ntoh64(mc_req_rec.mgid.unicast.prefix),
+           cl_ntoh64(mc_req_rec.mgid.unicast.interface_id));
+
+  /* Before creation, need to check that this group doesn't exist */
+  osm_log( &p_osmt->log, OSM_LOG_INFO,
+           "osmt_run_mcast_flow: "
+           "Verifying that MCGroup with this MGID doesn't exist by trying to Join it (o15.0.1.13)...\n");
+
+  ib_member_set_join_state(&mc_req_rec, IB_MC_REC_STATE_NON_MEMBER);
+
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
+  status = osmt_send_mcast_request( p_osmt, 1, /*  join */
+                                    &mc_req_rec,
+                                    comp_mask,
+                                    &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_END "\n" );
+
+  if ((status != IB_REMOTE_ERROR) ||
+      (res_sa_mad.status != IB_SA_MAD_STATUS_REQ_INVALID))
+  {
+    osm_log( &p_osmt->log, OSM_LOG_ERROR,
+             "osmt_run_mcast_flow: ERR 0301: "
+             "Tried joining group that shouldn't have existed - got %s/%s\n",
+             ib_get_err_str( status ),
+             ib_get_mad_status_str( (ib_mad_t*)(&res_sa_mad) )
+             );
+    status = IB_ERROR;
+    goto Exit;
+  }
+
+  /* Set State to full member to allow group creation */
+  ib_member_set_join_state(&mc_req_rec, IB_MC_REC_STATE_FULL_MEMBER);
+
+  osm_log( &p_osmt->log, OSM_LOG_INFO,
+           "osmt_run_mcast_flow: "
+           "Now creating group with given valid MGID=0x%016" PRIx64 " : "
            "0x%016" PRIx64 " (o15.0.1.6)...\n",
            cl_ntoh64(mc_req_rec.mgid.unicast.prefix),
            cl_ntoh64(mc_req_rec.mgid.unicast.interface_id));
-  mc_req_rec.mgid = good_mgid;
 
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
@@ -2133,6 +2230,18 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     goto Exit;
   }
 
+  /* Save the mlid created in test_created_mlids map */
+  p_recvd_rec = (ib_member_rec_t*)ib_sa_mad_get_payload_ptr( &res_sa_mad );
+  osm_log( &p_osmt->log, OSM_LOG_VERBOSE,
+           "osmt_run_mcast_flow: "
+           "Created MGID:0x%016" PRIx64 " : "
+           "0x%016" PRIx64 " MLID:0x%04X\n",
+           cl_ntoh64( p_recvd_rec->mgid.unicast.prefix ),
+           cl_ntoh64( p_recvd_rec->mgid.unicast.interface_id ),
+           cl_ntoh16( p_recvd_rec->mlid ));
+  cl_map_insert(&test_created_mlids,
+                cl_ntoh16(p_recvd_rec->mlid), p_recvd_rec );
+
   /* Lets try another invalid join scope state */
   osm_log( &p_osmt->log, OSM_LOG_INFO,
            "osmt_run_mcast_flow: "
@@ -2651,7 +2760,7 @@ osmt_run_mcast_flow( IN osmtest_t * cons
   /*  - Try joining (not full mem) again to see the group was deleted. (should fail) */
   osm_log( &p_osmt->log, OSM_LOG_INFO,
            "osmt_run_mcast_flow: "
-           "Checking Delete by trying to Join deleted group (o15.0.1.14)...\n"
+           "Checking Delete by trying to Join deleted group (o15.0.1.13)...\n"
            );
   osm_log( &p_osmt->log, OSM_LOG_ERROR,
            "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
@@ -2844,9 +2953,6 @@ osmt_run_mcast_flow( IN osmtest_t * cons
 
 
   /* impossible requested mtu always greater than exist in MCG */
-  osm_log( &p_osmt->log, OSM_LOG_ERROR,
-           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
-  
   mc_req_rec.mtu = IB_MTU_LEN_4096 | IB_PATH_SELECTOR_GREATER_THAN << 6;
   memcpy(&mc_req_rec.mgid,&tmp_mgid,sizeof(ib_gid_t));
   ib_member_set_join_state(&mc_req_rec, IB_MC_REC_STATE_FULL_MEMBER);
@@ -2857,6 +2963,8 @@ osmt_run_mcast_flow( IN osmtest_t * cons
     IB_MCR_COMPMASK_MTU_SEL |
     IB_MCR_COMPMASK_MTU;
 
+  osm_log( &p_osmt->log, OSM_LOG_ERROR,
+           "osmt_run_mcast_flow: " EXPECTING_ERRORS_START "\n" );
   status = osmt_send_mcast_request( p_osmt, 1,
                                     &mc_req_rec,
                                     comp_mask,





More information about the general mailing list