File: nbdkit-pattern-plugin.pod

package info (click to toggle)
nbdkit 1.42.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,696 kB
  • sloc: ansic: 59,224; sh: 16,793; makefile: 6,463; python: 1,837; cpp: 1,116; ml: 504; perl: 502; tcl: 62
file content (104 lines) | stat: -rw-r--r-- 2,530 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
=head1 NAME

nbdkit-pattern-plugin - plugin to serve a fixed pattern of data for testing

=head1 SYNOPSIS

 nbdkit pattern [size=]SIZE

=head1 DESCRIPTION

C<nbdkit-pattern-plugin> is a plugin for L<nbdkit(1)> which serves a
fixed pattern of data, read only.  This is used for testing nbdkit
filters and NBD clients.  To create test disks filled with other
repeated patterns use L<nbdkit-data-plugin(1)> or
L<nbdkit-ones-plugin(1)> instead.

The fixed pattern is the offset, as a 64 bit big endian integer, every
8 bytes.  In hexadecimal this looks like:

 offset                         data
  0000:   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 08
  0010:   00 00 00 00 00 00 00 10   00 00 00 00 00 00 00 18
  0020:   00 00 00 00 00 00 00 20   00 00 00 00 00 00 00 28
                                  ↗ └──────────┬──────────┘
              byte at offset 0x28              │
                                     64 bit big endian int
                                     encoding offset 0x28

The size of the virtual disk must be specified using the C<size>
parameter.  If the size is not a multiple of 8 then the last 8 byte
offset in the pattern is truncated.

=head2 Largest possible size

nbdkit itself limits plugins to S<2⁶³-1> bytes
(S<decimal: 9223372036854775807>,
S<hexadecimal: 0x7fff_ffff_ffff_ffff>).

To test if NBD clients are free of bugs (not to mention nbdkit itself)
you can use:

 nbdkit pattern 9223372036854775807

Note this is too large for qemu to open.

=head2 Little endian pattern

To get a little endian pattern instead of big endian apply
L<nbdkit-swab-filter(1)> on top of this plugin:

 nbdkit pattern 1G --filter=swab swab-bits=64

=head1 PARAMETERS

=over 4

=item [B<size=>]SIZE

Specify the virtual size of the disk image.

This parameter is required.

C<size=> __IS_MAGIC__

=back

=head1 FILES

=over 4

=item F<$plugindir/nbdkit-pattern-plugin.so>

The plugin.

Use C<nbdkit --dump-config> to find the location of C<$plugindir>.

=back

=head1 VERSION

C<nbdkit-pattern-plugin> first appeared in nbdkit 1.6.

=head1 SEE ALSO

L<nbdkit(1)>,
L<nbdkit-plugin(3)>,
L<nbdkit-data-plugin(1)>,
L<nbdkit-full-plugin(1)>,
L<nbdkit-null-plugin(1)>,
L<nbdkit-ones-plugin(1)>,
L<nbdkit-offset-filter(1)>,
L<nbdkit-random-plugin(1)>,
L<nbdkit-sparse-random-plugin(1)>,
L<nbdkit-swab-filter(1)>,
L<nbdkit-zero-plugin(1)>.

=head1 AUTHORS

Richard W.M. Jones

=head1 COPYRIGHT

Copyright Red Hat