| Copyright | (c) Viktor Dukhovni 2026 |
|---|---|
| License | BSD-3-Clause |
| Maintainer | ietf-dane@dukhovni.org |
| Stability | unstable |
| Safe Haskell | None |
| Language | GHC2024 |
Net.DNSBase.RData.CSYNC
Contents
Description
Two unrelated child-to-parent signalling RR types live here.
T_csync (RFC 7477) tells the parent zone which delegation
records the child wishes to have synchronized; T_dsync
(generalised DNS notifications, draft-ietf-dnsop-generalized-notify)
advertises the per-RR-type endpoints a child operator wishes
the parent to send notifications to. They share neither wire
format nor purpose beyond the broad child-to-parent direction.
CSYNC RData
The CSYNC resource record
(RFC 7477 section 2.1.1)
— the child zone's request to its parent to synchronise NS A
AAAA records from the child to the parent. Three fields: the
child's current SOA serial, processing flags, and an NsecTypes
bitmap naming the RR types to be synchronised.
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SOA Serial | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Type Bit Map / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / Type Bit Map (continued) / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
See T_dsync for the other child-to-parent signalling RR type
defined in this module.
Constructors
| T_CSYNC | |
Fields
| |
Instances
| Presentable T_csync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC Methods present :: T_csync -> Builder -> Builder Source # presentLazy :: T_csync -> ByteString -> ByteString Source # | |||||
| KnownRData T_csync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC Associated Types
Methods rdataExtensionVal :: forall b -> b ~ T_csync => RDataExtensionVal T_csync Source # rdType :: forall b -> b ~ T_csync => RRTYPE Source # rdTypePres :: forall b -> b ~ T_csync => Builder -> Builder Source # rdDecode :: forall b -> b ~ T_csync => RDataExtensionVal T_csync -> Int -> SGet RData Source # | |||||
| Show T_csync Source # | |||||
| Eq T_csync Source # | |||||
| Ord T_csync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC | |||||
| type RDataExtensionVal T_csync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC | |||||
Abstract representation of a set of RRTYPE codepoints,
stored as the window-based wire-format bitmap from RFC 4034
section 4.1.2. Used by T_nsec,
T_nsec3, and
T_csync to carry the set of types
present at the owner name.
An NsecTypes may legitimately be empty -- this is the
expected encoding for an NSEC3 empty-non-terminal. With NSEC,
the type bitmap is expected to include at least the NSEC type
itself; that invariant is not enforced by the type.
Construction and enumeration go through IsList:
builds the bitmap from a list offromListtys ::NsecTypesRRTYPEvalues; duplicates are merged and the wire-form ordering is canonical regardless of input order. UnderOverloadedListsthe same input shape is just[A, AAAA, MX].enumerates the contained types in ascending wire-form order.toListbm :: [RRTYPE](unions two bitmaps;<>)memptyis the empty bitmap.
For membership without enumerating the whole set, use
hasRRtype, which goes directly to the relevant window, block
and bit offset.
Instances
| Presentable NsecTypes Source # | Presentation form: contained types in canonical wire-form
order, space-separated, with no leading separator. The empty
bitmap renders as the empty string. When the bitmap follows
another field in an RR's presentation form, compose with
|
Defined in Net.DNSBase.NsecTypes Methods present :: NsecTypes -> Builder -> Builder Source # presentLazy :: NsecTypes -> ByteString -> ByteString Source # | |
| Semigroup NsecTypes Source # | The |
| IsList NsecTypes Source # | Construction is via |
| Show NsecTypes Source # | |
| Eq NsecTypes Source # | |
| Ord NsecTypes Source # | The |
| type Item NsecTypes Source # | |
Defined in Net.DNSBase.NsecTypes | |
nsecTypesFromList :: [RRTYPE] -> NsecTypes Source #
Construct the per-window bitmaps from a list of types.
hasRRtype :: RRTYPE -> NsecTypes -> Bool Source #
Efficient NSEC/NSEC3 type bitmap membership predicate.
DSYNC RData
The DSYNC resource record
(RFC 9859)
— a child zone's published endpoint for generalised DNS
notifications: for a given child-side RRTYPE, it names the
Dscheme (contact method, e.g. NOTIFY), the contact Word16
port number, and the Domain to address the notification to.
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RRtype | Scheme | Port
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Target ... /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/See T_csync for the other child-to-parent signalling RR type
defined in this module.
Target comparison and equality are case-sensitive.
The Ord instance is canonical.
Constructors
| T_DSYNC | |
Fields
| |
Instances
| Presentable T_dsync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC Methods present :: T_dsync -> Builder -> Builder Source # presentLazy :: T_dsync -> ByteString -> ByteString Source # | |||||
| KnownRData T_dsync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC Associated Types
Methods rdataExtensionVal :: forall b -> b ~ T_dsync => RDataExtensionVal T_dsync Source # rdType :: forall b -> b ~ T_dsync => RRTYPE Source # rdTypePres :: forall b -> b ~ T_dsync => Builder -> Builder Source # rdDecode :: forall b -> b ~ T_dsync => RDataExtensionVal T_dsync -> Int -> SGet RData Source # | |||||
| Show T_dsync Source # | |||||
| Eq T_dsync Source # | |||||
| Ord T_dsync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC | |||||
| type RDataExtensionVal T_dsync Source # | |||||
Defined in Net.DNSBase.RData.CSYNC | |||||
DSYNC scheme numbers. The Presentable instance displays the registered
mnemonic of the scheme name for known types, or else just the decimal value.
See the
IANA registry
for the known mnemonics.
Instances
| Presentable Dscheme Source # | |
Defined in Net.DNSBase.RData.CSYNC Methods present :: Dscheme -> Builder -> Builder Source # presentLazy :: Dscheme -> ByteString -> ByteString Source # | |
| Bounded Dscheme Source # | |
| Enum Dscheme Source # | |
| Num Dscheme Source # | |
| Read Dscheme Source # | |
| Integral Dscheme Source # | |
Defined in Net.DNSBase.RData.CSYNC | |
| Real Dscheme Source # | |
Defined in Net.DNSBase.RData.CSYNC Methods toRational :: Dscheme -> Rational # | |
| Show Dscheme Source # | |
| Eq Dscheme Source # | |
| Ord Dscheme Source # | |
Defined in Net.DNSBase.RData.CSYNC | |