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
//! DNS OpCodes.
//------------ Opcode --------------------------------------------------------
int_enum! {
/// DNS OpCodes.
///
/// The opcode specifies the kind of query to be performed.
///
/// The opcode and its initial set of values are defined in [RFC 1035].
/// Additional values have been defined over time. All currently assigned
/// values can be found in the [IANA registry]. This type is complete as
/// of 2019-12-23.
///
/// [RFC 1035]: https://tools.ietf.org/html/rfc1035
/// [IANA registry]: http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-5
=>
Opcode, u8;
/// A standard query (0).
///
/// This query requests all records matching the name, class, and record
/// type given in the query’s question section.
///
/// This value is defined in [RFC 1035].
///
/// [RFC 1035]: https://tools.ietf.org/html/rfc1035
(QUERY => 0, "QUERY")
/// An inverse query (IQUERY) (1, obsolete).
///
/// The idea behind inverse queries was to provide a single answer and
/// ask the DNS for all the questions that would lead to this answer.
/// This kind of query has always been optional, was never widely
/// supported, and has therefore been declared obsolete.
///
/// This value was defined in [RFC 1035] and obsoleted by [RFC 3425].
///
/// [RFC 1035]: https://tools.ietf.org/html/rfc1035
/// [RFC 3425]: https://tools.ietf.org/html/rfc3425
(IQUERY => 1, "IQUERY")
/// A server status request (2).
///
/// This value is defined in [RFC 1035]. The status request itself was
/// defined as experimental and ‘to be defined’ in [RFC 1034] and seems
/// to never have been mentioned ever again.
///
/// [RFC 1034]: https://tools.ietf.org/html/rfc1034
/// [RFC 1035]: https://tools.ietf.org/html/rfc1035
(STATUS => 2, "STATUS")
/// A NOTIFY query (4).
///
/// NOTIFY queries allow primary servers to inform secondary servers when
/// a zone has changed.
///
/// This value and the NOTIFY query are defined in [RFC 1996].
///
/// [RFC 1996]: https://tools.ietf.org/html/rfc1996
(NOTIFY => 4, "NOTIFY")
/// An UPDATE query (5).
///
/// The UPDATE query can be used to alter zone content managed by an
/// authoritative server.
///
/// This value and the UPDATE query are defined in [RFC 2136].
///
/// [RFC 2136]: https://tools.ietf.org/html/rfc2136
(UPDATE => 5, "UPDATE")
/// DNS Stateful operations (DSO) (6).
///
/// The DSO query can be used to manage stateful sessions between two
/// DNS endpoints.
///
/// This value and the DOS query are defined in [RFC 8490].
///
/// [RFC 8490]: https://tools.ietf.org/html/rfc8490
(DSO => 6, "DSO")
}
int_enum_str_with_decimal!(Opcode, u8, "unknown opcode");
int_enum_zonefile_fmt_with_decimal!(Opcode);