• Johannes Thumshirn's avatar
    nvme: don't send keep-alives to the discovery controller · 74c6c715
    Johannes Thumshirn authored
    NVMe over Fabrics 1.0 Section 5.2 "Discovery Controller Properties and
    Command Support" Figure 31 "Discovery Controller – Admin Commands"
    explicitly listst all commands but "Get Log Page" and "Identify" as
    reserved, but NetApp report the Linux host is sending Keep Alive
    commands to the discovery controller, which is a violation of the
    Spec.
    
    We're already checking for discovery controllers when configuring the
    keep alive timeout but when creating a discovery controller we're not
    hard wiring the keep alive timeout to 0 and thus remain on
    NVME_DEFAULT_KATO for the discovery controller.
    
    This can be easily remproduced when issuing a direct connect to the
    discovery susbsystem using:
    'nvme connect [...] --nqn=nqn.2014-08.org.nvmexpress.discovery'
    Signed-off-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
    Fixes: 07bfcd09 ("nvme-fabrics: add a generic NVMe over Fabrics library")
    Reported-by: default avatarMartin George <marting@netapp.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    74c6c715
fabrics.c 26.5 KB