domain/base/iana/
rtype.rs

1//! Resource Record (RR) TYPEs
2
3//------------ Rtype ---------------------------------------------------------
4
5int_enum! {
6    /// Resource Record Types.
7    ///
8    /// Each resource records has a 16 bit type value indicating what kind of
9    /// information is represented by the record. Normal query includes the
10    /// type of record information is requested for. A few aditional types,
11    /// called query types, are defined as well and can only be used in
12    /// questions. This type represents both these types.
13    ///
14    /// The currently assigned values are maintained in an [IANA registry].
15    /// This type is complete as of 2019-01-28.
16    ///
17    /// [IANA registry]: http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4
18    ///
19    /// In order to avoid confusion over capitalization, the mnemonics are
20    /// treated as single acronyms and therefore all variant names are spelled
21    /// with an initial capital letter in accordance with the Rust naming
22    /// guidelines.
23    =>
24    Rtype, u16;
25
26    /// A host address.
27    (A => 1, b"A")
28
29    /// An authoritative name server.
30    (Ns => 2, b"NS")
31
32    /// A mail destination.
33    ///
34    /// (Obsolete – use MX)
35    (Md => 3, b"MD")
36
37    /// A mail forwarder.
38    ///
39    /// (Obsolete – use MX)
40    (Mf => 4, b"MF")
41
42    /// The canonical name for an alias
43    (Cname => 5, b"CNAME")
44
45    /// Marks the start of a zone of authority.
46    (Soa => 6, b"SOA")
47
48    /// A mailbox domain name.
49    ///
50    /// (Experimental.)
51    (Mb =>  7, b"MB")
52
53    /// A mail group member
54    ///
55    /// (Experimental.)
56    (Mg => 8, b"MG")
57
58    /// A mail rename domain name.
59    ///
60    /// (Experimental.)
61    (Mr => 9, b"MR")
62
63    /// A null resource record.
64    ///
65    /// (Experimental.)
66    (Null =>  10, b"NULL")
67
68    /// A well known service description.
69    (Wks => 11, b"WKS")
70
71    /// A domain name pointer.
72    (Ptr => 12, b"PTR")
73
74    /// Host information.
75    (Hinfo => 13, b"HINFO")
76
77    /// Mailbox or mail list information.
78    (Minfo => 14, b"MINFO")
79
80    /// Mail exchange.
81    (Mx => 15, b"MX")
82
83    /// Text strings.
84    (Txt => 16, b"TXT")
85
86    /// For Responsible Person.
87    ///
88    /// See RFC 1183
89    (Rp => 17, b"RP")
90
91    /// For AFS Data Base location.
92    ///
93    /// See RFC 1183 and RFC 5864.
94    (Afsdb => 18, b"AFSDB")
95
96    /// For X.25 PSDN address.
97    ///
98    /// See RFC 1183.
99    (X25 => 19, b"X25")
100
101    /// For ISDN address.
102    ///
103    /// See RFC 1183.
104    (Isdn => 20, b"ISDN")
105
106    /// For Route Through.
107    ///
108    /// See RFC 1183
109    (Rt => 21, b"RT")
110
111    /// For SNAP address, NSAP style A record.
112    ///
113    /// See RFC 1706.
114    (Nsap => 22, b"NSAP")
115
116    /// For domain name pointer, NSAP style.
117    ///
118    /// See RFC 1348, RFC 1637, RFC 1706.
119    (Nsapptr => 23, b"NSAPPTR")
120
121    /// For security signature.
122    (Sig => 24, b"SIG")
123
124    /// For security key.
125    (Key => 25, b"KEY")
126
127    /// X.400 mail mapping information.
128    ///
129    /// See RFC 2163.
130    (Px => 26, b"PX")
131
132    /// Geographical position.
133    ///
134    /// See RFC 1712
135    (Gpos => 27, b"GPOS")
136
137    /// IPv6 address.
138    ///
139    /// See RFC 3596.
140    (Aaaa =>  28, b"AAAA")
141
142    /// Location information.
143    ///
144    /// See RFC 1876.
145    (Loc => 29, b"LOC")
146
147    /// Next domain.
148    ///
149    /// (Obsolete.)
150    ///
151    /// See RFC 3755 and RFC 2535.
152    (Nxt => 30, b"NXT")
153
154    /// Endpoint identifier.
155    (Eid => 31, b"EID")
156
157    /// Nimrod locator.
158    (Nimloc => 32, b"NIMLOC")
159
160    /// Server selection.
161    ///
162    /// See RFC 2782.
163    (Srv => 33, b"SRV")
164
165    /// ATM address.
166    (Atma => 34, b"ATMA")
167
168    /// Naming authority pointer.
169    ///
170    /// See RFC 2915, RFC 2168, and RFC 3403.
171    (Naptr => 35, b"NAPTR")
172
173    /// Key exchanger.
174    ///
175    /// See RFC 2230.
176    (Kx => 36, b"KX")
177
178    /// CERT
179    ///
180    /// See RFC 4398.
181    (Cert => 37, b"CERT")
182
183    /// A6.
184    ///
185    /// (Obsolete – use AAAA.)
186    ///
187    /// See RFC 3226, RFC 2874, and RFC 6563.
188    (A6 => 38, b"A6")
189
190    /// DNAME.
191    ///
192    /// See RFC 6672.
193    (Dname => 39, b"DNAME")
194
195    /// SINK.
196    (Sink => 40, b"SINK")
197
198    /// OPT.
199    ///
200    /// See RFC 6891 and RFC 3225.
201    (Opt => 41, b"OPT")
202
203    /// APL.
204    ///
205    /// See RFC 3123.
206    (Apl => 42, b"APL")
207
208    /// Delegation signer.
209    ///
210    /// See RFC 4034 and RFC 3658.
211    (Ds => 43, b"DS")
212
213    /// SSH key fingerprint.
214    ///
215    /// See RFC 4255.
216    (Sshfp => 44, b"SSHFP")
217
218    /// IPSECKEY
219    ///
220    /// See RFC 4255.
221    (Ipseckey => 45, b"IPSECKEY")
222
223    /// RRSIG.
224    ///
225    /// See RFC 4034 and RFC 3755.
226    (Rrsig => 46, b"RRSIG")
227
228    /// NSEC.
229    ///
230    /// See RFC 4034 and RFC 3755.
231    (Nsec => 47, b"NSEC")
232
233    /// DNSKEY.
234    ///
235    /// See RFC 4034 and RFC 3755.
236    (Dnskey => 48, b"DNSKEY")
237
238    /// DHCID.
239    ///
240    /// See RFC 4701.
241    (Dhcid => 49, b"DHCID")
242
243    /// NSEC3
244    ///
245    /// See RFC 5155.
246    (Nsec3 => 50, b"NSEC3")
247
248    /// NSEC3PARAM.
249    ///
250    /// See RFC 5155.
251    (Nsec3param => 51, b"NSEC3PARAM")
252
253    /// TLSA.
254    ///
255    /// See RFC 6698.
256    (Tlsa => 52, b"TLSA")
257
258    /// S/MIME cert association.
259    ///
260    /// See draft-ietf-dane-smime.
261    (Smimea => 53, b"SMIMEA")
262
263    /// Host Identity Protocol.
264    ///
265    /// See RFC 5205.
266    (Hip => 55, b"HIP")
267
268    /// NINFO.
269    (Ninfo => 56, b"NINFO")
270
271    /// RKEY.
272    (Rkey => 57, b"RKEY")
273
274    /// Trust Anchor Link
275    (Talink => 58, b"TALINK")
276
277    /// Child DS.
278    ///
279    /// See RFC 7344.
280    (Cds => 59, b"CDS")
281
282    /// DNSKEY(s) the child wants reflected in DS.
283    ///
284    /// See RFC 7344.
285    (Cdnskey => 60, b"CDNSKEY")
286
287    /// OpenPGP key.
288    ///
289    /// See draft-ietf-dane-openpgpkey.
290    (Openpgpkey => 61, b"OPENPGPKEY")
291
292    /// Child-to-parent synchronization.
293    ///
294    /// See RFC 7477.
295    (Csync => 62, b"CSYNC")
296
297    /// Message digest for DNS zone.
298    ///
299    /// See draft-wessels-dns-zone-digest.
300    (Zonemd => 63, b"ZONEMD")
301
302    /// General Purpose Service Endpoints.
303    ///
304    /// See draft-ietf-dnsop-svcb-httpssvc
305    (Svcb => 64, b"SVCB")
306
307    /// HTTPS Specific Service Endpoints.
308    ///
309    /// See draft-ietf-dnsop-svcb-httpssvc
310    (Https => 65, b"HTTPS")
311
312    /// SPF.
313    ///
314    /// RFC 7208.
315    (Spf => 99, b"SPF")
316
317    /// UINFO.
318    ///
319    /// IANA-Reserved.
320    (Uinfo => 100, b"UINFO")
321
322    /// UID.
323    ///
324    /// IANA-Reserved.
325    (Uid => 101, b"UID")
326
327    /// GID.
328    ///
329    /// IANA-Reserved.
330    (Gid => 102, b"GID")
331
332    /// UNSPEC.
333    ///
334    /// IANA-Reserved.
335    (Unspec => 103, b"UNSPEC")
336
337    /// NID.
338    ///
339    /// See RFC 6742.
340    (Nid => 104, b"NID")
341
342    /// L32.
343    ///
344    /// See RFC 6742.
345    (L32 => 105, b"L32")
346
347    /// L64.
348    ///
349    /// See RFC 6742.
350    (L64 => 106, b"L64")
351
352    /// LP.
353    ///
354    /// See RFC 6742.
355    (Lp => 107, b"LP")
356
357    /// An EUI-48 address.
358    ///
359    /// See RFC 7043.
360    (Eui48 => 108, b"EUI48")
361
362    /// An EUI-64 address.
363    ///
364    /// See RFC 7043.
365    (Eui64 => 109, b"EUI64")
366
367    /// Transaction key.
368    ///
369    /// See RFC 2930.
370    (Tkey => 249, b"TKEY")
371
372    /// Transaction signature.
373    ///
374    /// See RFC 2845.
375    (Tsig => 250, b"TSIG")
376
377    /// Incremental transfer.
378    ///
379    /// See RFC 1995.
380    (Ixfr => 251, b"IXFR")
381
382    /// Transfer of entire zone.
383    ///
384    /// See RFC 1035 and RFC 5936.
385    (Axfr => 252, b"AXFR")
386
387    /// Mailbox-related RRs (MB, MG, or MR).
388    (Mailb => 253, b"MAILB")
389
390    /// Mail agent RRS.
391    ///
392    /// (Obsolete – see MX.)
393    (Maila => 254, b"MAILA")
394
395    /// A request for all records the server/cache has available.
396    ///
397    /// See RFC 1035 and RFC 6895.
398    (Any => 255, b"ANY")
399
400    /// URI.
401    ///
402    /// See RFC 7553.
403    (Uri => 256, b"URI")
404
405    /// Certification Authority Restriction.
406    ///
407    /// See RFC 6844.
408    (Caa => 257, b"CAA")
409
410    /// Application visibility and control.
411    (Avc => 258, b"AVC")
412
413    /// Digital Object Architecture
414    ///
415    /// See draft-durand-doa-over-dns.
416    (Doa => 259, b"DOA")
417
418    /// DNSSEC trust authorities.
419    (Ta => 32768, b"TA")
420
421    /// DNSSEC lookaside validation.
422    ///
423    /// See RFC 4431
424    (Dlv => 32769, b"DLV")
425}
426
427int_enum_str_with_prefix!(Rtype, "TYPE", b"TYPE", u16, "unknown record type");