Each block is described by its DVAs, time of birth, checksum, etc.
The word-by-word, bit-by-bit layout of the blkptr is as follows:
64 56 48 40 32 24 16 8 0
+-------+-------+-------+-------+-------+-------+-------+-------+
0 | vdev1 | GRID | ASIZE |
+-------+-------+-------+-------+-------+-------+-------+-------+
1 |G| offset1 |
+-------+-------+-------+-------+-------+-------+-------+-------+
2 | vdev2 | GRID | ASIZE |
+-------+-------+-------+-------+-------+-------+-------+-------+
3 |G| offset2 |
+-------+-------+-------+-------+-------+-------+-------+-------+
4 | vdev3 | GRID | ASIZE |
+-------+-------+-------+-------+-------+-------+-------+-------+
5 |G| offset3 |
+-------+-------+-------+-------+-------+-------+-------+-------+
6 |BDX|lvl| type | cksum | comp | PSIZE | LSIZE |
+-------+-------+-------+-------+-------+-------+-------+-------+
7 | padding |
+-------+-------+-------+-------+-------+-------+-------+-------+
8 | padding |
+-------+-------+-------+-------+-------+-------+-------+-------+
9 | physical birth txg |
+-------+-------+-------+-------+-------+-------+-------+-------+
a | logical birth txg |
+-------+-------+-------+-------+-------+-------+-------+-------+
b | fill count |
+-------+-------+-------+-------+-------+-------+-------+-------+
c | checksum[0] |
+-------+-------+-------+-------+-------+-------+-------+-------+
d | checksum[1] |
+-------+-------+-------+-------+-------+-------+-------+-------+
e | checksum[2] |
+-------+-------+-------+-------+-------+-------+-------+-------+
f | checksum[3] |
+-------+-------+-------+-------+-------+-------+-------+-------+
Legend:
- vdev virtual device ID
- offset offset into virtual device
- LSIZE logical size
- PSIZE physical size (after compression)
- ASIZE allocated size (including RAID-Z parity and gang block headers)
- GRID RAID-Z layout information (reserved for future use)
- cksum checksum function
- comp compression function
- G gang block indicator
- B byteorder (endianness)
- D dedup
- X unused
- lvl level of indirection
- type DMU object type
- phys birth txg of block allocation; zero if same as logical birth txg
- log. birth transaction group in which the block was logically born
- fill count number of non-zero blocks under this bp
- checksum[4] 256-bit checksum of the data this bp describes
Definition at line 190 of file spa.h.