[PATCH] IB CM: support CM redir
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>
This commit is contained in:
committed by
Roland Dreier
parent
63aaf64752
commit
354ba39cf9
@@ -173,7 +173,8 @@ static int cm_alloc_msg(struct cm_id_private *cm_id_priv,
|
|||||||
if (IS_ERR(ah))
|
if (IS_ERR(ah))
|
||||||
return PTR_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),
|
ah, 0, sizeof(struct ib_mad_hdr),
|
||||||
sizeof(struct ib_mad)-sizeof(struct ib_mad_hdr),
|
sizeof(struct ib_mad)-sizeof(struct ib_mad_hdr),
|
||||||
GFP_ATOMIC);
|
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.state = IB_CM_IDLE;
|
||||||
cm_id_priv->id.cm_handler = cm_handler;
|
cm_id_priv->id.cm_handler = cm_handler;
|
||||||
cm_id_priv->id.context = context;
|
cm_id_priv->id.context = context;
|
||||||
|
cm_id_priv->id.remote_cm_qpn = 1;
|
||||||
ret = cm_alloc_id(cm_id_priv);
|
ret = cm_alloc_id(cm_id_priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto error;
|
goto error;
|
||||||
|
@@ -290,6 +290,7 @@ struct ib_cm_id {
|
|||||||
enum ib_cm_lap_state lap_state; /* internal CM/debug use */
|
enum ib_cm_lap_state lap_state; /* internal CM/debug use */
|
||||||
__be32 local_id;
|
__be32 local_id;
|
||||||
__be32 remote_id;
|
__be32 remote_id;
|
||||||
|
u32 remote_cm_qpn; /* 1 unless redirected */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user