Commit 92334cfc authored by Karsten Graul's avatar Karsten Graul Committed by David S. Miller
Browse files

net/smc: add logic to evaluate CONFIRM_LINK messages to LLC layer



Introduce smc_llc_eval_conf_link() to evaluate the CONFIRM_LINK message
contents. This implements this logic at the LLC layer. The function will
be used by af_smc.c to process the received LLC layer messages.

Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
Reviewed-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 81e6e5e7
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -946,6 +946,17 @@ out:
	return rc;
}

/* evaluate confirm link request or response */
int smc_llc_eval_conf_link(struct smc_llc_qentry *qentry,
			   enum smc_llc_reqresp type)
{
	if (type == SMC_LLC_REQ)	/* SMC server assigns link_id */
		qentry->link->link_id = qentry->msg.confirm_link.link_num;
	if (!(qentry->msg.raw.hdr.flags & SMC_LLC_FLAG_NO_RMBE_EYEC))
		return -ENOTSUPP;
	return 0;
}

/***************************** init, exit, misc ******************************/

static struct smc_wr_rx_handler smc_llc_rx_handlers[] = {
+2 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ int smc_llc_do_delete_rkey(struct smc_link *link,
int smc_llc_flow_initiate(struct smc_link_group *lgr,
			  enum smc_llc_flowtype type);
void smc_llc_flow_stop(struct smc_link_group *lgr, struct smc_llc_flow *flow);
int smc_llc_eval_conf_link(struct smc_llc_qentry *qentry,
			   enum smc_llc_reqresp type);
struct smc_llc_qentry *smc_llc_wait(struct smc_link_group *lgr,
				    struct smc_link *lnk,
				    int time_out, u8 exp_msg);