/* SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) */ /* * Copyright (c) 2017-2018 Mellanox Technologies. All rights reserved. */ #ifndef _RDMA_SIGNATURE_H_ #define _RDMA_SIGNATURE_H_ #include <linux/types.h> enum ib_signature_prot_cap { … }; enum ib_signature_guard_cap { … }; /** * enum ib_signature_type - Signature types * @IB_SIG_TYPE_NONE: Unprotected. * @IB_SIG_TYPE_T10_DIF: Type T10-DIF */ enum ib_signature_type { … }; /** * enum ib_t10_dif_bg_type - Signature T10-DIF block-guard types * @IB_T10DIF_CRC: Corresponds to T10-PI mandated CRC checksum rules. * @IB_T10DIF_CSUM: Corresponds to IP checksum rules. */ enum ib_t10_dif_bg_type { … }; /** * struct ib_t10_dif_domain - Parameters specific for T10-DIF * domain. * @bg_type: T10-DIF block guard type (CRC|CSUM) * @pi_interval: protection information interval. * @bg: seed of guard computation. * @app_tag: application tag of guard block * @ref_tag: initial guard block reference tag. * @ref_remap: Indicate wethear the reftag increments each block * @app_escape: Indicate to skip block check if apptag=0xffff * @ref_escape: Indicate to skip block check if reftag=0xffffffff * @apptag_check_mask: check bitmask of application tag. */ struct ib_t10_dif_domain { … }; /** * struct ib_sig_domain - Parameters for signature domain * @sig_type: specific signauture type * @sig: union of all signature domain attributes that may * be used to set domain layout. */ struct ib_sig_domain { … }; /** * struct ib_sig_attrs - Parameters for signature handover operation * @check_mask: bitmask for signature byte check (8 bytes) * @mem: memory domain layout descriptor. * @wire: wire domain layout descriptor. * @meta_length: metadata length */ struct ib_sig_attrs { … }; enum ib_sig_err_type { … }; /* * Signature check masks (8 bytes in total) according to the T10-PI standard: * -------- -------- ------------ * | GUARD | APPTAG | REFTAG | * | 2B | 2B | 4B | * -------- -------- ------------ */ enum { … }; /* * struct ib_sig_err - signature error descriptor */ struct ib_sig_err { … }; #endif /* _RDMA_SIGNATURE_H_ */