Discovery controllers often return discovery records that belong
to a different traddr than the discovery controller itself, like here:
nvme discover -t fc \
--host-traddr=nn-0x20000090fae06325:pn-0x10000090fae06325 \
--traddr=nn-0x200900a09890f5bf:pn-0x200a00a09890f5bf
Discovery Log Number of Records 2, Generation counter 25
=====Discovery Log Entry 0======
trtype: fc
adrfam: fibre-channel
subtype: nvme subsystem
treq: not specified
portid: 0
trsvcid: none
subnqn: nqn...
traddr: nn-0x200900a09890f5bf:pn-0x200b00a09890f5bf
=====Discovery Log Entry 1======
trtype: fc
adrfam: fibre-channel
subtype: nvme subsystem
treq: not specified
portid: 1
trsvcid: none
subnqn: nqn...
traddr: nn-0x200900a09890f5bf:pn-0x200a00a09890f5bf
Note that the traddr of record 0 matches the traddr used for the
discovery, while that of record 1 does not.
For NVMeoF-autoconnect, this means that connection attempts will
be made multiple times (the two records above will also be returned
for a discovery on nn-0x200900a09890f5bf:pn-0x200b00a09890f5bf),
which is unnecessary and leads to lots of confusing error messages
in the system log.
Add an option "-m / --matching" to the "nvme connect-all" command
that causes nvme to connect only those discovery entries that match
the traddr given on the command line.