• Honggang Li's avatar
    RDMA/srp: Add parse function for maximum initiator to target IU size · 547ed331
    Honggang Li authored
    According to SRP specifications 'srp-r16a' and 'srp2r06',
    IOControllerProfile attributes for SRP target port include the maximum
    initiator to target IU size.
    
    SRP connection daemons, such as srp_daemon, can get the value from the
    subnet manager. The SRP connection daemon can pass this value to kernel.
    
    This patch adds a parse function for it.
    
    Upstream commit [1] enables the kernel parameter, 'use_imm_data', by
    default. [1] also use (8 * 1024) as the default value for kernel parameter
    'max_imm_data'. With those default values, the maximum initiator to target
    IU size will be 8260.
    
    In case the SRPT modules, which include the in-tree 'ib_srpt.ko' module,
    do not support SRP-2 'immediate data' feature, the default maximum
    initiator to target IU size is significantly smaller than 8260. For
    'ib_srpt.ko' module, which built from source before [2], the default
    maximum initiator to target IU is 2116.
    
    [1] introduces a regression issue for old srp targets with default kernel
    parameters, as the connection will be rejected because of a too large
    maximum initiator to target IU size.
    
    [1] commit 882981f4 ("RDMA/srp: Add support for immediate data")
    [2] commit 5dabcd04 ("RDMA/srpt: Add support for immediate data")
    
    Link: https://lore.kernel.org/r/20190927174352.7800-1-honli@redhat.comReviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
    Signed-off-by: default avatarHonggang Li <honli@redhat.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    547ed331
ib_srp.h 8.63 KB