docs: qcow2: introduce compression type feature

The patch adds a new additional field to the 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 <dplotnikov@virtuozzo.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200131142219.3264-3-vsementsov@virtuozzo.com>
[mreitz: s/Bits 3-63:  Reserved/Bits 4-63:  Reserved/]
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Vladimir Sementsov-Ogievskiy 2020-01-31 17:22:19 +03:00 committed by Max Reitz
parent 3ae3fcfae5
commit 66fcbca5a7
1 changed files with 19 additions and 2 deletions

View File

@ -109,7 +109,12 @@ the next fields through header_length.
An External Data File Name header extension may An External Data File Name header extension may
be present if this bit is set. be present if this bit is set.
Bits 3-63: Reserved (set to 0) Bit 3: Compression type bit. If this bit is set,
a non-default compression is used for compressed
clusters. The compression_type field must be
present and not zero.
Bits 4-63: Reserved (set to 0)
80 - 87: compatible_features 80 - 87: compatible_features
Bitmask of compatible features. An implementation can Bitmask of compatible features. An implementation can
@ -190,7 +195,19 @@ present*, if not altered by a specific incompatible bit.
to the field's offset. Also, all additional fields are not present for to the field's offset. Also, all additional fields are not present for
version 2. version 2.
< ... No additional fields in the header currently ... > 104: compression_type
Defines the compression method used for compressed clusters.
All compressed clusters in an image use the same compression
type.
If the incompatible bit "Compression type" is set: the field
must be present and non-zero (which means non-zlib
compression type). Otherwise, this field must not be present
or must be zero (which means zlib).
Available compression type values:
0: zlib <https://www.zlib.net/>
=== Header padding === === Header padding ===