[PATCH 3/7] nvmet-tcp: implement queue_peer_traddr()
Hannes Reinecke
hare at suse.de
Wed Mar 20 23:56:14 PDT 2024
On 3/21/24 00:11, Sagi Grimberg wrote:
>
>
> On 20/03/2024 16:40, Hannes Reinecke wrote:
>> Implement callback to display the peer transport address.
>
> s/peer/host
>
Ok.
>> 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
Okay, not a problem. Felt a bit odd in doing so, but okay.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare at suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich
More information about the Linux-nvme
mailing list