Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  signature.h   Sprache: C

 
/* 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 {
 IB_PROT_T10DIF_TYPE_1 = 1,
 IB_PROT_T10DIF_TYPE_2 = 1 << 1,
 IB_PROT_T10DIF_TYPE_3 = 1 << 2,
};

enum ib_signature_guard_cap {
 IB_GUARD_T10DIF_CRC = 1,
 IB_GUARD_T10DIF_CSUM = 1 << 1,
};

/**
 * enum ib_signature_type - Signature types
 * @IB_SIG_TYPE_NONE: Unprotected.
 * @IB_SIG_TYPE_T10_DIF: Type T10-DIF
 */

enum ib_signature_type {
 IB_SIG_TYPE_NONE,
 IB_SIG_TYPE_T10_DIF,
};

/**
 * 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 {
 IB_T10DIF_CRC,
 IB_T10DIF_CSUM,
};

/**
 * 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 {
 enum ib_t10_dif_bg_type bg_type;
 u16   pi_interval;
 u16   bg;
 u16   app_tag;
 u32   ref_tag;
 bool   ref_remap;
 bool   app_escape;
 bool   ref_escape;
 u16   apptag_check_mask;
};

/**
 * 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 {
 enum ib_signature_type sig_type;
 union {
  struct ib_t10_dif_domain dif;
 } sig;
};

/**
 * 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 {
 u8   check_mask;
 struct ib_sig_domain mem;
 struct ib_sig_domain wire;
 int   meta_length;
};

enum ib_sig_err_type {
 IB_SIG_BAD_GUARD,
 IB_SIG_BAD_REFTAG,
 IB_SIG_BAD_APPTAG,
};

/*
 * Signature check masks (8 bytes in total) according to the T10-PI standard:
 *  -------- -------- ------------
 * | GUARD  | APPTAG |   REFTAG   |
 * |  2B    |  2B    |    4B      |
 *  -------- -------- ------------
 */

enum {
 IB_SIG_CHECK_GUARD = 0xc0,
 IB_SIG_CHECK_APPTAG = 0x30,
 IB_SIG_CHECK_REFTAG = 0x0f,
};

/*
 * struct ib_sig_err - signature error descriptor
 */

struct ib_sig_err {
 enum ib_sig_err_type err_type;
 u32   expected;
 u32   actual;
 u64   sig_err_offset;
 u32   key;
};

#endif /* _RDMA_SIGNATURE_H_ */

Messung V0.5
C=96 H=89 G=92

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge