rdma
authorStefan Metzmacher <metze@samba.org>
Mon, 17 Sep 2012 03:05:46 +0000 (05:05 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 18 Sep 2012 03:10:25 +0000 (05:10 +0200)
libcli/smb/smb_transport_direct.c

index e6f5f2e1ac5884841a333915fdf751861cb042a5..e0c63fd3503ece0b1ad7e5773e450432454ba796 100644 (file)
@@ -253,8 +253,8 @@ static void smb_direct_rdma_connect_handler(struct tevent_context *ev,
                ZERO_STRUCT(init_attr);
                init_attr.cap.max_send_wr = 16;
                init_attr.cap.max_recv_wr = 2;
-               init_attr.cap.max_recv_sge = 1;
-               init_attr.cap.max_send_sge = 1;
+               init_attr.cap.max_recv_sge = 2;
+               init_attr.cap.max_send_sge = 2;
                init_attr.qp_type = IBV_QPT_RC;
 
                state->t->ibv.cq = ibv_create_cq(state->t->rdma.cm_id->verbs,
@@ -358,10 +358,7 @@ struct smb_direct_negotiate_state {
        struct {
                uint8_t buffer[0x14];
                struct ibv_mr *mr;
-/*             uint8_t buffer2[0x14];
-               struct ibv_mr *mr2;
-               struct ibv_sge sge[2];
-*/             struct ibv_sge sge[1];
+               struct ibv_sge sge[1];
                struct ibv_send_wr wr;
        } req;
        struct {
@@ -436,20 +433,17 @@ struct tevent_req *smb_direct_negotiate_send(TALLOC_CTX *mem_ctx,
                return tevent_req_post(req, ev);
        }
 
-/*     state->req.mr2 = ibv_reg_mr(transport->ibv.pd,
+       state->req.mr2 = ibv_reg_mr(transport->ibv.pd,
                                   state->req.buffer2,
                                   sizeof(state->req.buffer2),
                                   IBV_ACCESS_LOCAL_WRITE);
        if (tevent_req_nomem(state->req.mr2, req)) {
                return tevent_req_post(req, ev);
        }
-*/     state->req.sge[0].addr = (uint64_t) (uintptr_t) state->req.buffer;
+       state->req.sge[0].addr = (uint64_t) (uintptr_t) state->req.buffer;
        state->req.sge[0].length = sizeof(state->req.buffer);
        state->req.sge[0].lkey = state->req.mr->lkey;
-/*     state->req.sge[1].addr = (uint64_t) (uintptr_t) state->req.buffer2;
-       state->req.sge[1].length = sizeof(state->req.buffer2);
-       state->req.sge[1].lkey = state->req.mr2->lkey;
-*/     state->req.wr.opcode = IBV_WR_SEND;
+       state->req.wr.opcode = IBV_WR_SEND;
        state->req.wr.send_flags = IBV_SEND_SIGNALED;
        state->req.wr.sg_list = state->req.sge;
        state->req.wr.num_sge = ARRAY_SIZE(state->req.sge);