rds: rdma: add consumer reject

For legacy protocol version incompatibility with non linux RDS,
consumer reject reason being used to convey it to peer. But the
choice of reject reason value as '1' was really poor.

Anyway for interoperability reasons with shipping products,
it needs to be supported. For any future versions, properly
encoded reject reason should to be used.

Reviewed-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
[yanjun.zhu@oracle.com: Adapted original patch with ipv6 changes]
Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
此提交包含在:
Santosh Shilimkar
2018-10-23 23:09:00 -04:00
父節點 cdc306a5c9
當前提交 d021fabf52
共有 3 個檔案被更改,包括 22 行新增2 行删除

查看文件

@@ -734,8 +734,10 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
/* Check whether the remote protocol version matches ours. */
version = rds_ib_protocol_compatible(event, isv6);
if (!version)
if (!version) {
err = RDS_RDMA_REJ_INCOMPAT;
goto out;
}
dp = event->param.conn.private_data;
if (isv6) {
@@ -851,7 +853,7 @@ out:
if (conn)
mutex_unlock(&conn->c_cm_lock);
if (err)
rdma_reject(cm_id, NULL, 0);
rdma_reject(cm_id, &err, sizeof(int));
return destroy;
}