[PATCH] IB CM: support CM redir
authorJohn Kingman <kingman@storagegear.com>
Sat, 10 Sep 2005 01:23:32 +0000 (18:23 -0700)
committerRoland Dreier <rolandd@cisco.com>
Sat, 10 Sep 2005 01:23:32 +0000 (18:23 -0700)
Changes to CM to support CM and port redirection (REJ reason 24).

Signed-off-by: John Kingman <kingman <at> storagegear.com>
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/cm.c
include/rdma/ib_cm.h

index 4de93ba274a61202e7e9d29d494826a148c79ac2..96136543aa4ed274f5a90dc37f9540352fc849bc 100644 (file)
@@ -173,7 +173,8 @@ static int cm_alloc_msg(struct cm_id_private *cm_id_priv,
        if (IS_ERR(ah))
                return PTR_ERR(ah);
 
-       m = ib_create_send_mad(mad_agent, 1, cm_id_priv->av.pkey_index,
+       m = ib_create_send_mad(mad_agent, cm_id_priv->id.remote_cm_qpn, 
+                              cm_id_priv->av.pkey_index,
                               ah, 0, sizeof(struct ib_mad_hdr),
                               sizeof(struct ib_mad)-sizeof(struct ib_mad_hdr),
                               GFP_ATOMIC);
@@ -536,6 +537,7 @@ struct ib_cm_id *ib_create_cm_id(ib_cm_handler cm_handler,
        cm_id_priv->id.state = IB_CM_IDLE;
        cm_id_priv->id.cm_handler = cm_handler;
        cm_id_priv->id.context = context;
+       cm_id_priv->id.remote_cm_qpn = 1;
        ret = cm_alloc_id(cm_id_priv);
        if (ret)
                goto error;
index 77fe9039209b1612590fcf7923fc1faaf8b1c8a7..5308683c8c41a792f4e02c353056f2b69fab974d 100644 (file)
@@ -290,6 +290,7 @@ struct ib_cm_id {
        enum ib_cm_lap_state    lap_state;      /* internal CM/debug use */
        __be32                  local_id;
        __be32                  remote_id;
+       u32                     remote_cm_qpn;  /* 1 unless redirected */
 };
 
 /**