[PATCH 3/7] nvmet-tcp: implement queue_peer_traddr()

Sagi Grimberg sagi at grimberg.me
Wed Mar 20 16:11:07 PDT 2024



On 20/03/2024 16:40, Hannes Reinecke wrote:
> Implement callback to display the peer transport address.

s/peer/host

> Signed-off-by: Hannes Reinecke <hare at kernel.org>
> ---
>   drivers/nvme/target/tcp.c | 13 +++++++++++++
>   1 file changed, 13 insertions(+)
>
> diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
> index 4718d4d87a85..4b2cef897a66 100644
> --- a/drivers/nvme/target/tcp.c
> +++ b/drivers/nvme/target/tcp.c
> @@ -2201,6 +2201,18 @@ static void nvmet_tcp_disc_port_addr(struct nvmet_req *req,
>   	}
>   }
>   
> +static ssize_t nvmet_tcp_disc_peer_addr(struct nvmet_ctrl *ctrl,
> +			struct nvmet_sq *sq, char *traddr, size_t traddr_len)
> +{
> +	struct nvmet_tcp_queue *queue =
> +		container_of(sq, struct nvmet_tcp_queue, nvme_sq);
> +
> +	if (queue->sockaddr_peer.ss_family == AF_UNSPEC)
> +		return -EINVAL;
> +	return snprintf(traddr, traddr_len, "%pISc",
> +			(struct sockaddr *)&queue->sockaddr_peer);
> +}
> +
>   static const struct nvmet_fabrics_ops nvmet_tcp_ops = {
>   	.owner			= THIS_MODULE,
>   	.type			= NVMF_TRTYPE_TCP,
> @@ -2211,6 +2223,7 @@ static const struct nvmet_fabrics_ops nvmet_tcp_ops = {
>   	.delete_ctrl		= nvmet_tcp_delete_ctrl,
>   	.install_queue		= nvmet_tcp_install_queue,
>   	.disc_traddr		= nvmet_tcp_disc_port_addr,
> +	.queue_peertraddr	= nvmet_tcp_disc_peer_addr,

host_traddr, and it should really be per controller, and be taken from 
the admin
queue. Not sure how this would ever be different across queues in the 
same ctrl



More information about the Linux-nvme mailing list