The patch add new additional field to qcow2 header: compression_type, which specifies compression type. If field is absent or zero, default compression type is set: ZLIB, which corresponds to current behavior.
New compression type (ZSTD) is to be added in further commit. Suggested-by: Denis Plotnikov <[email protected]> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> --- docs/interop/qcow2.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/interop/qcow2.txt b/docs/interop/qcow2.txt index d92c827763..77146b5169 100644 --- a/docs/interop/qcow2.txt +++ b/docs/interop/qcow2.txt @@ -109,6 +109,11 @@ the next fields through header_length. An External Data File Name header extension may be present if this bit is set. + Bit 3: Compression type bit. If this bit is set, + non-default compression is used for compressed + clusters. compression_type field must be + present and not zero. + Bits 3-63: Reserved (set to 0) 80 - 87: compatible_features @@ -188,7 +193,16 @@ present*, if not altered by specific incompatible bit. *. Field is not present when header_length is less or equal to field's offset. Also, all additional fields are not present for version 2. - < ... No additional fields in the header currently ... > + 104: compression_type + Defines the compression method used for compressed clusters. + A single compression type is applied to all compressed image + clusters. + If incompatible compression type bit is set: the field must + be present and non-zero (which means non-zlib compression type) + If incompatible compression type bit is unset: the field + may not exist or it must be zero (which means zlib). + Available compression type values: + 0: zlib <https://www.zlib.net/> Header padding -- 2.18.0
