target/sbc: Add DIF TYPE1+TYPE3 read/write verify emulation
authorNicholas Bellinger <nab@linux-iscsi.org>
Tue, 7 Jan 2014 22:44:57 +0000 (22:44 +0000)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 18 Jan 2014 09:53:12 +0000 (09:53 +0000)
commit41861fa831afd4b5006f0042e1f701360330351e
tree57818e9a7b160cd6b0bb17e74deb9565d238bcc5
parent499bf77b0169605a23c38351e3849066fe696877
target/sbc: Add DIF TYPE1+TYPE3 read/write verify emulation

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: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/Kconfig
drivers/target/target_core_sbc.c
include/target/target_core_backend.h