• Martin Belanger's avatar
    nvme-tcp: print actual source IP address through sysfs "address" attr · 02c57a82
    Martin Belanger authored
    TCP transport relies on the routing table to determine which source
    address and interface to use when making a connection. Currently, there
    is no way to tell from userspace where a connection was made. This
    patch exposes the actual source address using a new field named
    "src_addr=" in the "address" attribute.
    
    This is needed to diagnose and identify connectivity issues. With the
    source address we can infer the interface associated with each
    connection.
    
    This was tested with nvme-cli 2.0 to verify it does not have any
    adverse effect. The new "src_addr=" field will simply be displayed in
    the output of the "list-subsys" or "list -v" commands as shown here.
    
    $ nvme list-subsys
    nvme-subsys0 - NQN=nqn.2014-08.org.nvmexpress.discovery
    \
     +- nvme0 tcp traddr=192.168.56.1,trsvcid=8009,src_addr=192.168.56.101 live
    Signed-off-by: default avatarMartin Belanger <martin.belanger@dell.com>
    Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    02c57a82
tcp.c 69.7 KB