diff options
author | Tushar Gohad <tusharsg@gmail.com> | 2016-03-03 03:53:13 +0000 |
---|---|---|
committer | Tushar Gohad <tusharsg@gmail.com> | 2016-03-10 07:33:16 +0000 |
commit | a6a8d2018d50068f1177ba9f826518b003dc5917 (patch) | |
tree | 884b3e9b6363e4e7d9da6fc9c963b35318b983a3 /include | |
parent | fd88e703372eed2ecda8f10fe539ee28b2794e0f (diff) | |
download | liberasurecode-a6a8d2018d50068f1177ba9f826518b003dc5917.tar.gz |
Fragment metadata checksumming supportfrag_metadata_checksum
Diffstat (limited to 'include')
-rw-r--r-- | include/erasurecode/erasurecode.h | 25 | ||||
-rw-r--r-- | include/erasurecode/erasurecode_helpers_ext.h | 5 | ||||
-rw-r--r-- | include/erasurecode/erasurecode_version.h | 4 |
3 files changed, 19 insertions, 15 deletions
diff --git a/include/erasurecode/erasurecode.h b/include/erasurecode/erasurecode.h index f8621a4..5f5e054 100644 --- a/include/erasurecode/erasurecode.h +++ b/include/erasurecode/erasurecode.h @@ -256,15 +256,15 @@ int liberasurecode_fragments_needed(int desc, typedef struct __attribute__((__packed__)) fragment_metadata { - uint32_t idx; /* 4 */ - uint32_t size; /* 4 */ - uint32_t frag_backend_metadata_size; /* 4 */ - uint64_t orig_data_size; /* 8 */ - uint8_t chksum_type; /* 1 */ + uint32_t idx; /* 4 */ + uint32_t size; /* 4 */ + uint32_t frag_backend_metadata_size; /* 4 */ + uint64_t orig_data_size; /* 8 */ + uint8_t chksum_type; /* 1 */ uint32_t chksum[LIBERASURECODE_MAX_CHECKSUM_LEN]; /* 32 */ - uint8_t chksum_mismatch; /* 1 */ - uint8_t backend_id; /* 1 */ - uint32_t backend_version; /* 4 */ + uint8_t chksum_mismatch; /* 1 */ + uint8_t backend_id; /* 1 */ + uint32_t backend_version; /* 4 */ } fragment_metadata_t; /** @@ -321,12 +321,13 @@ int liberasurecode_verify_stripe_metadata(int desc, typedef struct __attribute__((__packed__)) fragment_header_s { - fragment_metadata_t meta; /* 59 bytes */ - uint32_t magic; /* 4 bytes */ - uint32_t libec_version; /* 4 bytes */ + fragment_metadata_t meta; /* 59 bytes */ + uint32_t magic; /* 4 bytes */ + uint32_t libec_version; /* 4 bytes */ + uint32_t metadata_chksum; /* 4 bytes */ // We must be aligned to 16-byte boundaries // So, size this array accordingly - uint8_t aligned_padding[13]; + uint8_t aligned_padding[9]; } fragment_header_t; #define FRAGSIZE_2_BLOCKSIZE(fragment_size) \ diff --git a/include/erasurecode/erasurecode_helpers_ext.h b/include/erasurecode/erasurecode_helpers_ext.h index 278996b..740d7db 100644 --- a/include/erasurecode/erasurecode_helpers_ext.h +++ b/include/erasurecode/erasurecode_helpers_ext.h @@ -65,13 +65,16 @@ int get_fragment_buffer_size(char *buf); int set_orig_data_size(char *buf, int orig_data_size); int get_orig_data_size(char *buf); int set_checksum(ec_checksum_type_t ct, char *buf, int blocksize); -int get_checksum(char *buf); //TODO implement this +int get_checksum(char *buf); int set_libec_version(char *fragment); int get_libec_version(char *fragment, uint32_t *ver); int set_backend_id(char *buf, ec_backend_id_t id); int get_backend_id(char *buf, ec_backend_id_t *id); int set_backend_version(char *buf, uint32_t version); int get_backend_version(char *buf, uint32_t *version); +int set_metadata_chksum(char *buf); +uint32_t *get_metadata_chksum(char *buf); +int is_invalid_fragment_header(fragment_header_t *header); /* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */ diff --git a/include/erasurecode/erasurecode_version.h b/include/erasurecode/erasurecode_version.h index e02c8bc..bc19d01 100644 --- a/include/erasurecode/erasurecode_version.h +++ b/include/erasurecode/erasurecode_version.h @@ -26,8 +26,8 @@ #define _ERASURECODE_VERSION_H_ #define _MAJOR 1 -#define _MINOR 1 -#define _REV 2 +#define _MINOR 2 +#define _REV 0 #define _VERSION(x, y, z) ((x << 16) | (y << 8) | (z)) #define LIBERASURECODE_VERSION _VERSION(_MAJOR, _MINOR, _REV) |