btrfs-progs/Documentation
rhn 07b8c74bc8 btrfs-progs: docs: clarify btrfs-send checksum
The way the CRC32C checksum used for btrfs-send differs from the way
it's used elsewhere in btrfs. Without making the distinction, it's easy
to make the flawed assumption that CRC32C always refers to the same, and
end up with code that produces the wrong checksums.

This small note should guide the reader to the right function.

The best notes on the protocol I found are here:
https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/Design_notes_on_Send/Receive.html

The crc32c might be used in two meanings and this could be confusing
when implementing the send stream protocol.

Rust code describing the algorithm for the crc crate that worked for me:

pub const CRC_32_BTRFS_SEND: crc::Algorithm<u32> = crc::Algorithm {
	width: 32, poly: 0x1edc6f41, init: 0, refin: true, refout: true,
	xorout: 0, check: 0xe3069283, residue: 0xb798b438
};

(it's a slight variation on the one used in ISCSI)

Note: Documentation/dev/dev-send-stream.rst briefly mentions that

Pull-request: #794
Author: rhn <gihu.rhn@porcupinefactory.org>
[ rephrase changelog and copy text from pull request and add link to
  developer documentation of the send stream ]
Signed-off-by: David Sterba <dsterba@suse.com>
2024-08-14 23:59:47 +02:00
..
_static btrfs-progs: docs: restyle the landing page 2023-12-01 00:54:27 +01:00
_templates btrfs-progs: docs: update template, more about subvolumes 2022-01-11 15:46:33 +01:00
dev btrfs-progs: docs: update source repositories, workflows 2024-07-30 20:05:11 +02:00
Administration.rst btrfs-progs: docs: include sysfs to Administration 2024-07-30 20:05:11 +02:00
Auto-repair.rst btrfs-progs: docs: updates, clarifications 2022-12-14 02:56:16 +01:00
Balance.rst btrfs-progs: docs: add balance filter examples 2023-06-09 12:44:03 +02:00
btrfs-balance.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
btrfs-check.rst btrfs-progs: check: remove --clear-ino-cache option 2024-05-02 14:02:50 +02:00
btrfs-convert.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
btrfs-device.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
btrfs-filesystem.rst btrfs-progs: docs: how to get the length of the portion used by btrfs on a device 2024-04-30 21:34:46 +02:00
btrfs-find-root.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
btrfs-image.rst btrfs-progs: docs: add warning for -s option of btrfs-image 2024-07-30 19:56:41 +02:00
btrfs-inspect-internal.rst btrfs-progs: list-chunks: update help and documentation 2024-07-30 19:53:33 +02:00
btrfs-ioctl.rst btrfs-progs: docs: add new encoded rw ioctls to the list 2024-07-30 20:05:11 +02:00
btrfs-man5.rst btrfs-progs: docs: update feature status 2024-04-30 21:49:15 +02:00
btrfs-map-logical.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
btrfs-property.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
btrfs-qgroup.rst btrfs-progs: clarify unlinked and deleted terminology for subvolumes 2024-05-17 18:13:18 +02:00
btrfs-quota.rst btrfs-progs: docs: document squota 2023-10-03 01:11:54 +02:00
btrfs-receive.rst btrfs-progs: docs: clarify receive --dump encoding 2024-06-24 19:19:04 +02:00
btrfs-replace.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
btrfs-rescue.rst btrfs-progs: check: remove inode cache clearing functionality 2023-12-05 17:57:04 +01:00
btrfs-restore.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
btrfs-scrub.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
btrfs-select-super.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
btrfs-send.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
btrfs-subvolume.rst Revert "btrfs-progs: subvol delete: add options to delete the qgroup" 2024-04-30 21:49:15 +02:00
btrfs.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
btrfsck.8 btrfs-progs: docs: use manual page link instead of symlink 2018-10-23 14:48:39 +02:00
btrfstune.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
ch-balance-examples.rst btrfs-progs: docs: add balance filter examples 2023-06-09 12:44:03 +02:00
ch-balance-filters.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
ch-balance-intro.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
ch-bootloaders.rst btrfs-progs: docs: fixups, references 2023-06-01 20:50:04 +02:00
ch-checksumming.rst btrfs-progs: docs: recalculate checksumming performance 2024-02-13 07:15:31 +01:00
ch-compression.rst btrfs-progs: docs: fix incorrect description about compression with O_DIRECT 2024-03-25 22:57:50 +01:00
ch-convert-intro.rst btrfs-progs: docs: clarify potential problems with convert 2024-02-20 10:52:08 +01:00
ch-file-attributes.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
ch-flexibility.rst btrfs-progs: docs: fixups, references 2023-06-01 20:50:04 +02:00
ch-fs-limits.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
ch-hardware-considerations.rst btrfs-progs: docs: update memory related problems 2024-03-25 23:33:25 +01:00
ch-mount-options.rst btrfs-progs: docs: update the rescue mount options 2024-06-24 19:20:18 +02:00
ch-quota-intro.rst btrfs-progs: docs: document squota 2023-10-03 01:11:54 +02:00
ch-scrub-intro.rst btrfs-progs: docs: correct systemd-run argument for limiting bandwith 2024-03-06 20:57:09 +01:00
ch-seeding-device.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
ch-subvolume-intro.rst btrfs-progs: docs: fix new typos 2024-08-14 23:58:14 +02:00
ch-swapfile.rst btrfs-progs: docs: clarify swapfile an multi-device filesystem 2024-07-30 20:05:11 +02:00
ch-sysfs.rst btrfs-progs: docs: fix new typos 2024-08-14 23:58:14 +02:00
ch-volume-management-intro.rst btrfs-progs: docs: fix warnings and links to duplicated labels 2024-02-13 18:24:19 +01:00
ch-zoned-intro.rst btrfs-progs: docs: add zone reclaim 2024-07-30 20:05:11 +02:00
CHANGES.rst btrfs-progs: docs: distinguish Changes title 2022-08-16 15:18:10 +02:00
Checksumming.rst btrfs-progs: docs: add more chapters 2021-12-17 11:53:44 +01:00
CmdLineConventions btrfs-progs: docs: fix typos 2022-12-07 21:00:25 +01:00
CodingConventions btrfs-progs: docs: document conventions 2017-07-03 13:35:10 +02:00
Common-features.rst btrfs-progs: docs: cross references, ioctl updates 2023-12-06 17:44:28 +01:00
Compression.rst btrfs-progs: docs: add more chapters 2021-12-17 11:53:44 +01:00
conf.py btrfs-progs: docs/conf.py: enable navigation_with_keys on RTD 2024-02-29 12:46:55 +01:00
Contributors.rst btrfs-progs: docs: add 6.10 kernel development statistics 2024-07-30 19:53:32 +02:00
Convert.rst btrfs-progs: docs: add more chapters (part 2) 2021-12-17 11:53:44 +01:00
Custom-ioctls.rst btrfs-progs: run codespell throughout fixing typos automagically 2024-07-30 19:56:08 +02:00
Deduplication.rst btrfs-progs: docs: typo fixups and formatting updates 2022-12-22 18:44:47 +01:00
Defragmentation.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
DocConventions.rst btrfs-progs: run codespell throughout fixing typos automagically 2024-07-30 19:56:08 +02:00
Feature-by-version.rst btrfs-progs: run codespell throughout fixing typos automagically 2024-07-30 19:56:08 +02:00
fsck.btrfs.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
Glossary.rst btrfs-progs: docs: use manref role for all manual page references 2024-02-16 09:38:16 +01:00
Hardware.rst btrfs-progs: docs: separate chapter for hardware considerations 2022-05-17 21:12:19 +02:00
html-preview.sh btrfs-progs: ci: build html manual page previews if source changed 2024-07-30 19:53:32 +02:00
index.rst btrfs-progs: docs: move Interoperability to the first section 2024-07-30 20:05:11 +02:00
Inline-files.rst btrfs-progs: docs: use command role for programs or command lines 2023-04-27 01:48:47 +02:00
INSTALL.rst btrfs-progs: docs: link INSTALL to docs 2022-05-12 13:56:03 +02:00
Interoperability.rst btrfs-progs: docs: list supported fs-verity ioctls 2024-07-30 20:05:11 +02:00
Introduction.rst btrfs-progs: docs: cross references, ioctl updates 2023-12-06 17:44:28 +01:00
Kernel-by-version.rst btrfs-progs: run codespell throughout fixing typos automagically 2024-07-30 19:56:08 +02:00
Makefile.in btrfs-progs: docs: fix build due to phony contents.rst 2024-04-30 21:49:15 +02:00
man-index.rst btrfs-progs: docs: drop indices from pages 2021-11-26 00:48:24 +01:00
man-preview.sh btrfs-progs: run codespell throughout fixing typos automagically 2024-07-30 19:56:08 +02:00
mkfs.btrfs.rst btrfs-progs: docs: update feature status 2024-04-30 21:49:15 +02:00
plot-contribs.svg btrfs-progs: docs: update 6.10 contribution graphs 2024-07-30 19:53:33 +02:00
plot-patches.svg btrfs-progs: docs: update 6.10 contribution graphs 2024-07-30 19:53:33 +02:00
plot-sloc-lines.svg btrfs-progs: docs: update 6.10 contribution graphs 2024-07-30 19:53:33 +02:00
Qgroups.rst btrfs-progs: docs: add more chapters (part 2) 2021-12-17 11:53:44 +01:00
Quick-start.rst btrfs-progs: docs: updates 2023-08-28 17:24:25 +02:00
Reflink.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
requirements.txt btrfs-progs: docs: add config file for readthedocs.io 2023-12-05 16:36:24 +01:00
Resize.rst btrfs-progs: docs: formatting updates 2023-07-26 14:59:10 +02:00
Scrub.rst btrfs-progs: docs: add more chapters (part 2) 2021-12-17 11:53:44 +01:00
Seeding-device.rst btrfs-progs: docs: add more chapters 2021-12-17 11:53:44 +01:00
Send-receive.rst btrfs-progs: docs: clarify btrfs-send checksum 2024-08-14 23:59:47 +02:00
Source-repositories.rst btrfs-progs: docs: update source repositories, workflows 2024-07-30 20:05:11 +02:00
Status.rst btrfs-progs: docs: update feature status 2024-05-13 18:29:04 +02:00
Subpage.rst btrfs-progs: docs: mkfs and sectorsize updates 2024-01-18 02:44:58 +01:00
Subvolumes.rst btrfs-progs: docs: add more chapters (part 3) 2021-12-17 15:35:10 +01:00
Swapfile.rst btrfs-progs: docs: swapfile and hibernation 2022-12-06 23:19:12 +01:00
Tree-checker.rst btrfs-progs: docs: fix sphinx code-block warnings 2024-01-10 22:49:06 +01:00
Trim.rst btrfs-progs: docs: updates 2023-08-28 17:24:25 +02:00
trouble-index.rst btrfs-progs: docs: fix sphinx code-block warnings 2024-01-10 22:49:06 +01:00
Volume-management.rst btrfs-progs: docs: add more chapters (part 3) 2021-12-17 15:35:10 +01:00
Zoned-mode.rst btrfs-progs: docs: add more chapters (part 3) 2021-12-17 15:35:10 +01:00