[ofa-general] ***SPAM*** [PATCH] ipoib: send creation parameters when doing send-only join

Yossi Etigin yossi.openib at gmail.com
Tue Sep 9 09:52:17 PDT 2008


  If creation parameters are not sent a sender will not trigger
mcast group creation. Fixes bug #1153 in bugzilla.

Signed-off-by: Yossi Etigin <yosefe at voltaire.com>

--

Index: b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
===================================================================
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	2008-09-08 23:04:46.000000000 +0300
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	2008-09-09 19:40:26.000000000 +0300
@@ -327,6 +327,7 @@ static int ipoib_mcast_sendonly_join(str
 		.join_state = 1
 #endif
 	};
+	ib_sa_comp_mask comp_mask;
 	int ret = 0;
 
 	if (!test_bit(IPOIB_FLAG_OPER_UP, &priv->flags)) {
@@ -339,16 +340,37 @@ static int ipoib_mcast_sendonly_join(str
 		return -EBUSY;
 	}
 
-	rec.mgid     = mcast->mcmember.mgid;
-	rec.port_gid = priv->local_gid;
-	rec.pkey     = cpu_to_be16(priv->pkey);
+	comp_mask =
+		IB_SA_MCMEMBER_REC_MGID |
+		IB_SA_MCMEMBER_REC_PORT_GID |
+		IB_SA_MCMEMBER_REC_PKEY |
+		IB_SA_MCMEMBER_REC_JOIN_STATE |
+		IB_SA_MCMEMBER_REC_QKEY |
+		IB_SA_MCMEMBER_REC_MTU_SELECTOR |
+		IB_SA_MCMEMBER_REC_MTU |
+		IB_SA_MCMEMBER_REC_TRAFFIC_CLASS |
+		IB_SA_MCMEMBER_REC_RATE_SELECTOR |
+		IB_SA_MCMEMBER_REC_RATE |
+		IB_SA_MCMEMBER_REC_SL |
+		IB_SA_MCMEMBER_REC_FLOW_LABEL |
+		IB_SA_MCMEMBER_REC_HOP_LIMIT;
+
+	rec.mgid          = mcast->mcmember.mgid;
+	rec.port_gid      = priv->local_gid;
+	rec.pkey          = cpu_to_be16(priv->pkey);
+	rec.qkey          = priv->broadcast->mcmember.qkey;
+	rec.mtu_selector  = IB_SA_EQ;
+	rec.mtu           = priv->broadcast->mcmember.mtu;
+	rec.traffic_class = priv->broadcast->mcmember.traffic_class;
+	rec.rate_selector = IB_SA_EQ;
+	rec.rate          = priv->broadcast->mcmember.rate;
+	rec.sl            = priv->broadcast->mcmember.sl;
+	rec.flow_label    = priv->broadcast->mcmember.flow_label;
+	rec.hop_limit     = priv->broadcast->mcmember.hop_limit;
 
 	mcast->mc = ib_sa_join_multicast(&ipoib_sa_client, priv->ca,
 					 priv->port, &rec,
-					 IB_SA_MCMEMBER_REC_MGID	|
-					 IB_SA_MCMEMBER_REC_PORT_GID	|
-					 IB_SA_MCMEMBER_REC_PKEY	|
-					 IB_SA_MCMEMBER_REC_JOIN_STATE,
+					 comp_mask,
 					 GFP_ATOMIC,
 					 ipoib_mcast_sendonly_join_complete,
 					 mcast);

--



More information about the general mailing list