Commit 07d28d02 authored by Slawomir Ptak's avatar Slawomir Ptak Committed by Tomasz Zawadzki
Browse files

lib/util/dif: Wrappers for DIF fields access



Introduced wrappers for the DIF structure
fields access, in order to prepare for
extending the DIF structure with
additional formats.

Change-Id: I5592f59d05a4bfecbfb88a5fad2815a38d965ea0
Signed-off-by: default avatarSlawomir Ptak <slawomir.ptak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18174


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
parent 90fbb94c
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ struct spdk_dif_ctx {
	uint32_t		dif_flags;

	/* Initial reference tag */
	uint32_t		init_ref_tag;
	uint64_t		init_ref_tag;

	/** Application tag */
	uint16_t		app_tag;
@@ -85,10 +85,10 @@ struct spdk_dif_ctx {
	 * Interim guard value is set if the last data block is partial, or
	 * seed value is set otherwise.
	 */
	uint16_t		last_guard;
	uint32_t		last_guard;

	/* Seed value for guard computation */
	uint16_t		guard_seed;
	uint32_t		guard_seed;

	/* Remapped initial reference tag. */
	uint32_t		remapped_init_ref_tag;
@@ -100,10 +100,10 @@ struct spdk_dif_error {
	uint8_t		err_type;

	/** Expected value */
	uint32_t	expected;
	uint64_t	expected;

	/** Actual value */
	uint32_t	actual;
	uint64_t	actual;

	/** Offset the error occurred at, block based */
	uint32_t	err_offset;
@@ -134,7 +134,7 @@ struct spdk_dif_error {
int spdk_dif_ctx_init(struct spdk_dif_ctx *ctx, uint32_t block_size, uint32_t md_size,
		      bool md_interleave, bool dif_loc, enum spdk_dif_type dif_type, uint32_t dif_flags,
		      uint32_t init_ref_tag, uint16_t apptag_mask, uint16_t app_tag,
		      uint32_t data_offset, uint16_t guard_seed, struct spdk_dif_ctx_init_ext_opts *opts);
		      uint32_t data_offset, uint32_t guard_seed, struct spdk_dif_ctx_init_ext_opts *opts);

/**
 * Update date offset of DIF context.
+207 −103

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ malloc_verify_pi(struct spdk_bdev_io *bdev_io)

	if (rc != 0) {
		SPDK_ERRLOG("DIF/DIX verify failed: lba %" PRIu64 ", num_blocks %" PRIu64 ", "
			    "err_type %u, expected %u, actual %u, err_offset %u\n",
			    "err_type %u, expected %lu, actual %lu, err_offset %u\n",
			    bdev_io->u.bdev.offset_blocks,
			    bdev_io->u.bdev.num_blocks,
			    err_blk.err_type,
+1 −1
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ bdev_null_submit_request(struct spdk_io_channel *_ch, struct spdk_bdev_io *bdev_
					     bdev_io->u.bdev.num_blocks, &dif_ctx, &err_blk);
			if (0 != rc) {
				SPDK_ERRLOG("IO DIF verification failed: lba %" PRIu64 ", num_blocks %" PRIu64 ", "
					    "err_type %u, expected %u, actual %u, err_offset %u\n",
					    "err_type %u, expected %lu, actual %lu, err_offset %u\n",
					    bdev_io->u.bdev.offset_blocks,
					    bdev_io->u.bdev.num_blocks,
					    err_blk.err_type,
+1 −1
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ int
spdk_dif_ctx_init(struct spdk_dif_ctx *ctx, uint32_t block_size, uint32_t md_size,
		  bool md_interleave, bool dif_loc, enum spdk_dif_type dif_type, uint32_t dif_flags,
		  uint32_t init_ref_tag, uint16_t apptag_mask, uint16_t app_tag,
		  uint32_t data_offset, uint16_t guard_seed, struct spdk_dif_ctx_init_ext_opts *opts)
		  uint32_t data_offset, uint32_t guard_seed, struct spdk_dif_ctx_init_ext_opts *opts)
{
	ctx->dif_pi_format = opts->dif_pi_format;
	ctx->block_size = block_size;
Loading