• Nicholas Bellinger's avatar
    target/sbc: Add DIF TYPE1+TYPE3 read/write verify emulation · 41861fa8
    Nicholas Bellinger authored
    This patch adds support for DIF read/write verify emulation
    for TARGET_DIF_TYPE1_PROT + TARGET_DIF_TYPE3_PROT operation.
    
    This includes sbc_dif_verify_write() + sbc_dif_verify_read()
    calls accessable by backend drivers to perform DIF verify
    for SGL based data and protection information.
    
    Also included is sbc_dif_copy_prot() logic to copy protection
    information to/from backend provided protection SGLs.
    
    Based on scsi_debug.c DIF TYPE1+TYPE3 emulation.
    
    v2 changes:
      - Select CRC_T10DIF for TARGET_CORE in Kconfig (Fengguang)
      - Drop IP checksum logic from sbc_dif_v1_verify (MKP)
      - Fix offset on app_tag = 0xffff in sbc_dif_verify_read()
    
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Sagi Grimberg <sagig@mellanox.com>
    Cc: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    41861fa8
target_core_sbc.c 31.6 KB