xref: /netbsd-src/external/bsd/nsd/dist/doc/NSD-DIFFFILE (revision d83a80ee7fb31190352cf1f781441e06ca6a86db)
1*d83a80eeSchristosDIFF support file format.
2*d83a80eeSchristos
3*d83a80eeSchristosThis file contains changes to the main NSD-DATABASE file.
4*d83a80eeSchristosThe file contents is in network format.
5*d83a80eeSchristos
6*d83a80eeSchristosThe file is a transfer, with a header and a number of data segments.
7*d83a80eeSchristos
8*d83a80eeSchristos- File starts with 32bit value 'XFRF'
9*d83a80eeSchristos- header with:
10*d83a80eeSchristos  - 8bit: commit=1(IXFR is OK) or rollback=0(ignore that IXFR).
11*d83a80eeSchristos  - 32 bit number of packets that are to be applied. 0 if file not completed.
12*d83a80eeSchristos  - timestamp of endtime of download (64bitsec,32bitusec).
13*d83a80eeSchristos  - 32 bit old serial number. (to check that db-serial is unchanged).
14*d83a80eeSchristos    or 0 if no serial available yet.
15*d83a80eeSchristos  - 32 bit new serial number.
16*d83a80eeSchristos  - timestamp of starttime of download (64bitsec,32bitusec).
17*d83a80eeSchristos  - zone name (string).
18*d83a80eeSchristos  - pattern name: so that a newly created zone for which the zone transfer
19*d83a80eeSchristos	is processed before the config-add task can be created. same string
20*d83a80eeSchristos	format with 32bitcount with name of the pattern.
21*d83a80eeSchristos
22*d83a80eeSchristos- a number of parts that start with 'XXFR'
23*d83a80eeSchristos- 32 bits length field.
24*d83a80eeSchristos- length bytes of content.
25*d83a80eeSchristos	contents is the IXFR or AXFR packet contents, max 64K.
26*d83a80eeSchristos- 32 bits repeat of the length field.
27*d83a80eeSchristos
28*d83a80eeSchristosat end of file a log string space for a text string message
29*d83a80eeSchristos(preceded by 32bitcount), i.e.  'at time <stamp> came from <addr>, tsig
30*d83a80eeSchristoschecked with key <key>'.  or rejected <reason for rejection>.
31*d83a80eeSchristos
32*d83a80eeSchristosThe length fields and type fields check that the input is formatted,
33*d83a80eeSchristosand complete otherwise an error occurred (like, disk failure).
34*d83a80eeSchristosThe commit flag is only set after the write of the entire file has
35*d83a80eeSchristoscompleted (rewind, overwrite commit value with true).
36*d83a80eeSchristos
37