From 683c70c216cd17862e69f57c7c6164a05f8352bf Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Mon, 10 Sep 2018 15:21:47 -0700 Subject: [PATCH] nvmf/rdma: Fix bug in get_peer_trid The port wasn't being converted from network to host byte order. Change-Id: I154349205ca09ceca932c44883ef3242acd87be3 Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/425183 Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System --- lib/nvmf/rdma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index ba2d45be0..24ae26080 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -2698,6 +2698,7 @@ spdk_nvmf_rdma_qpair_get_peer_trid(struct spdk_nvmf_qpair *qpair, { struct spdk_nvmf_rdma_qpair *rqpair; struct sockaddr *saddr; + uint16_t port; rqpair = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_rdma_qpair, qpair); @@ -2711,7 +2712,8 @@ spdk_nvmf_rdma_qpair_get_peer_trid(struct spdk_nvmf_qpair *qpair, trid->adrfam = SPDK_NVMF_ADRFAM_IPV4; inet_ntop(AF_INET, &saddr_in->sin_addr, trid->traddr, sizeof(trid->traddr)); - snprintf(trid->trsvcid, sizeof(trid->trsvcid), "%u", saddr_in->sin_port); + port = ntohs(rdma_get_dst_port(rqpair->cm_id)); + snprintf(trid->trsvcid, sizeof(trid->trsvcid), "%u", port); break; } case AF_INET6: { @@ -2719,7 +2721,8 @@ spdk_nvmf_rdma_qpair_get_peer_trid(struct spdk_nvmf_qpair *qpair, trid->adrfam = SPDK_NVMF_ADRFAM_IPV6; inet_ntop(AF_INET6, &saddr_in->sin6_addr, trid->traddr, sizeof(trid->traddr)); - snprintf(trid->trsvcid, sizeof(trid->trsvcid), "%u", saddr_in->sin6_port); + port = ntohs(rdma_get_dst_port(rqpair->cm_id)); + snprintf(trid->trsvcid, sizeof(trid->trsvcid), "%u", port); break; } default: