diff mbox

[for-next,07/10] iser-target: Declare correct flags when accepting a connection

Message ID 1447691861-3796-8-git-send-email-sagig@mellanox.com (mailing list archive)
State Superseded
Headers show

Commit Message

Sagi Grimberg Nov. 16, 2015, 4:37 p.m. UTC
From: Jenny Derzhavetz <jennyf@mellanox.com>

iser target does not support zero based virtual addresses and
send with invalidate, so it should declare that it doesn't.

Signed-off-by: Jenny Derzhavetz <jennyf@mellanox.com>
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
---
 drivers/infiniband/ulp/isert/ib_isert.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Or Gerlitz Nov. 17, 2015, 7:59 a.m. UTC | #1
On 11/16/2015 6:37 PM, Sagi Grimberg wrote:
> From: Jenny Derzhavetz<jennyf@mellanox.com>
>
> iser target does not support zero based virtual addresses and
> send with invalidate, so it should declare that it doesn't.
>
>

This better go to stable kernels too, however there's little ugliness 
involved since
struct iser_cm_hdr doesn't exist for LIO in those kernels, thoughts? did 
you get
any complaints from probably not Linux initiators interop-ing with LIO 
on that matter?

Or.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Christoph Hellwig Nov. 17, 2015, 9:03 a.m. UTC | #2
> +	struct iser_cm_hdr rsp_hdr;
>  
>  	memset(&cp, 0, sizeof(struct rdma_conn_param));
>  	cp.initiator_depth = isert_conn->initiator_depth;
>  	cp.retry_count = 7;
>  	cp.rnr_retry_count = 7;
>  
> +	memset(&rsp_hdr, 0, sizeof(rsp_hdr));
> +	rsp_hdr.flags = (ISERT_ZBVA_NOT_USED | ISERT_SEND_W_INV_NOT_USED);
> +	cp.private_data = (void *)&rsp_hdr;
> +	cp.private_data_len = sizeof(rsp_hdr);

Btw, where does iser_cm_hdr and these flags come from?  I can't find
anything like this in RFC7145.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sagi Grimberg Nov. 17, 2015, 9:38 a.m. UTC | #3
>> +	struct iser_cm_hdr rsp_hdr;
>>
>>   	memset(&cp, 0, sizeof(struct rdma_conn_param));
>>   	cp.initiator_depth = isert_conn->initiator_depth;
>>   	cp.retry_count = 7;
>>   	cp.rnr_retry_count = 7;
>>
>> +	memset(&rsp_hdr, 0, sizeof(rsp_hdr));
>> +	rsp_hdr.flags = (ISERT_ZBVA_NOT_USED | ISERT_SEND_W_INV_NOT_USED);
>> +	cp.private_data = (void *)&rsp_hdr;
>> +	cp.private_data_len = sizeof(rsp_hdr);
>
> Btw, where does iser_cm_hdr and these flags come from?  I can't find
> anything like this in RFC7145.

It's mentioned in the cover-letter:
"The support negotiation for this feature is based on IBTA
annex 12 "Support for iSCSI Extensions for RDMA" carried in rdma_cm
private data."

You can find it at:
https://cw.infinibandta.org/document/dl/7145
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sagi Grimberg Nov. 17, 2015, 9:48 a.m. UTC | #4
> On 11/16/2015 6:37 PM, Sagi Grimberg wrote:
>> From: Jenny Derzhavetz<jennyf@mellanox.com>
>>
>> iser target does not support zero based virtual addresses and
>> send with invalidate, so it should declare that it doesn't.
>>
>>
>
> This better go to stable kernels too, however there's little ugliness
> involved since
> struct iser_cm_hdr doesn't exist for LIO in those kernels, thoughts?

Umm, I think older kernels will interop just fine as the initiator
considers rdma_cm accepts with no private data as not supporting any
features (remote invalidate, zbva).

> did you get any complaints from probably not Linux initiators interop-ing with LIO
> on that matter?

Nope... Have you?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Or Gerlitz Nov. 17, 2015, 10:13 a.m. UTC | #5
On 11/17/2015 11:48 AM, Sagi Grimberg wrote:
>>> iser target does not support zero based virtual addresses and
>>> send with invalidate, so it should declare that it doesn't.
>>>
>>>
>>
>> This better go to stable kernels too, however there's little ugliness
>> involved since struct iser_cm_hdr doesn't exist for LIO in those 
>> kernels, thoughts?
>
> Umm, I think older kernels will interop just fine as the initiator
> considers rdma_cm accepts with no private data as not supporting any
> features (remote invalidate, zbva).

mmm, maybe we can let it go as you want... so no stabling here.

>
>> did you get any complaints from probably not Linux initiators 
>> interop-ing with LIO
>> on that matter?
>
> Nope... Have you? 

no
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index bdda42638629..667238f6253f 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -3099,12 +3099,18 @@  isert_rdma_accept(struct isert_conn *isert_conn)
 	struct rdma_cm_id *cm_id = isert_conn->cm_id;
 	struct rdma_conn_param cp;
 	int ret;
+	struct iser_cm_hdr rsp_hdr;
 
 	memset(&cp, 0, sizeof(struct rdma_conn_param));
 	cp.initiator_depth = isert_conn->initiator_depth;
 	cp.retry_count = 7;
 	cp.rnr_retry_count = 7;
 
+	memset(&rsp_hdr, 0, sizeof(rsp_hdr));
+	rsp_hdr.flags = (ISERT_ZBVA_NOT_USED | ISERT_SEND_W_INV_NOT_USED);
+	cp.private_data = (void *)&rsp_hdr;
+	cp.private_data_len = sizeof(rsp_hdr);
+
 	ret = rdma_accept(cm_id, &cp);
 	if (ret) {
 		isert_err("rdma_accept() failed with: %d\n", ret);