DNS.Class (DNS v0.4.1)

View Source

DNS Class

Note

As noted in [RFC6762], Multicast DNS can only carry DNS records with classes in the range 0-32767. Classes in the range 32768 to 65535 are incompatible with Multicast DNS. But Multicast DNS uses the 32768(0x8000) as a special value to indicate a cache-flush request.

Note

When this registry is modified, the YANG module [iana-dns-class-rr-type] must be updated as defined in [RFC9108].

Decimal     Hex     Registration Procedures     Note
0   0x0000  Standards Action
1-127   0x0000-0x007F   IETF Review data CLASSes only
128-253 0x0080-0x00FD   IETF Review QCLASSes and meta-CLASSes only
256-32767   0x0100-0x7FFF   IETF Review
32768-57343 0x8000-0xDFFF   Specification Required  data CLASSes only
57344-65279 0xE000-0xFEFF   Specification Required  QCLASSes and meta-CLASSes only
65280-65534 0xFF00-0xFFFE   Private Use
65535   0xFFFF  Standards Action

Decimal     Hexadecimal     Name    Reference
0   0x0000  Reserved    [RFC6895]
1   0x0001  Internet (IN)   [RFC1035]
2   0x0002  Unassigned
3   0x0003  Chaos (CH)  [D. Moon, "Chaosnet", A.I. Memo 628, Massachusetts Institute of Technology Artificial Intelligence Laboratory, June 1981.]
4   0x0004  Hesiod (HS) [Dyer, S., and F. Hsu, "Hesiod", Project Athena Technical Plan - Name Service, April 1987.]
5-253   0x0005-0x00FD   Unassigned
254 0x00FE  QCLASS NONE [RFC2136]
255 0x00FF  QCLASS * (ANY)  [RFC1035]
256-65279   0x0100-0xFEFF   Unassigned
65280-65534 0xFF00-0xFFFE   Reserved for Private Use    [RFC6895]
65535   0xFFFF  Reserved    [RFC6895]

Multicasd DNS RFC6762

The value 0x8001 in the rrclass field of a resource record in a Multicast DNS response message indicates a resource record with class 1, with the cache-flush bit set. When receiving a resource record with the cache-flush bit set, implementations should take care to mask off that bit before storing the resource record in memory, or otherwise ensure that it is given the correct semantic interpretation.

Reference

Summary

Functions

Create a new Class struct

Types

t()

@type t() :: %DNS.Class{value: <<_::16>>}

Functions

internet()

new(value)

@spec new(<<_::16>> | integer() | atom()) :: t()

Create a new Class struct