• Sagi Grimberg's avatar
    IB/mlx5: Support IB_WR_REG_SIG_MR · e6631814
    Sagi Grimberg authored
    This patch implements IB_WR_REG_SIG_MR posted by the user.
    
    Baisically this WR involves 3 WQEs in order to prepare and properly
    register the signature layout:
    
    1. post UMR WR to register the sig_mr in one of two possible ways:
        * In case the user registered a single MR for data so the UMR data segment
          consists of:
          - single klm (data MR) passed by the user
          - BSF with signature attributes requested by the user.
        * In case the user registered 2 MRs, one for data and one for protection,
          the UMR consists of:
          - strided block format which includes data and protection MRs and
            their repetitive block format.
          - BSF with signature attributes requested by the user.
    
    2. post SET_PSV in order to set the memory domain initial
       signature parameters passed by the user.
       SET_PSV is not signaled and solicited CQE.
    
    3. post SET_PSV in order to set the wire domain initial
       signature parameters passed by the user.
       SET_PSV is not signaled and solicited CQE.
    
    * After this compound WR we place a small fence for next WR to come.
    
    This patch also introduces some helper functions to set the BSF correctly
    and determining the signature format selectors.
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    e6631814
qp.c 77.7 KB