RFC Errata
Found 4 records.
Status: Verified (3)
RFC 8777, "DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery", April 2020
Source of RFC: mboned (ops)
Errata ID: 6218
Status: Verified
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Brian Wellington
Date Reported: 2020-07-01
Verifier Name: Warren Kumari (Ops AD)
Date Verified: 2020-07-17
Section 4.3.2 says:
10 IN TYPE260 \# (
18 ; length
0a ; precedence=10
02 ; D=0, relay type=2, an IPv6 address
20010db800000000000000000000000f ) ; 2001:db8::15
10 IN TYPE260 \# (
24 ; length
80 ; precedence=128
83 ; D=1, relay type=3, a wire-encoded domain name
09616d7472656c617973076578616d706c6503636f6d ) ; domain name
It should say:
10 IN TYPE260 \# (
18 ; length
0a ; precedence=10
02 ; D=0, relay type=2, an IPv6 address
20010db8000000000000000000000015 ) ; 2001:db8::15
10 IN TYPE260 \# (
25 ; length
80 ; precedence=128
83 ; D=1, relay type=3, a wire-encoded domain name
09616d7472656c617973076578616d706c6503636f6d00 ) ; domain name
Notes:
In the first example, the IPv6 address is incorrectly encoded.
In the second example, the trailing root label of the domain name was not included, and should be. This also increases the length by 1 byte.
Errata ID: 6688
Status: Verified
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Dick Franks
Date Reported: 2021-09-19
Verifier Name: Warren Kumari (Ops AD)
Date Verified: 2021-10-05
Section 5 says:
+-------+---------------------------------------+
| 3 | A wire-encoded domain name is present |
+-------+---------------------------------------+
| 4-255 | Unassigned |
+-------+---------------------------------------+
Table 2: Initial Contents of the "Relay Type
Field" Registry
Values 0, 1, 2, and 3 are further explained in Sections 4.2.3 and
4.2.4. Relay type numbers 4 through 255 can be assigned with a
policy of Specification Required (as described in [RFC8126]).
It should say:
+-------+---------------------------------------+
| 3 | A wire-encoded domain name is present |
+-------+---------------------------------------+
| 4-127 | Unassigned |
+-------+---------------------------------------+
Table 2: Initial Contents of the "Relay Type
Field" Registry
Values 0, 1, 2, and 3 are further explained in Sections 4.2.3 and
4.2.4. Relay type numbers 4 through 127 can be assigned with a
policy of Specification Required (as described in [RFC8126]).
Notes:
Relay Type is a 7 bit field, the MS bit of the wire-format octet contains the D-bit.
[Update: 2021-10-05 - AD: Confirmed that you can't fit 8 bits into a 7 bit field - see: https://mailarchive.ietf.org/arch/msg/mboned/cdzHm6Uxwuua5zsOONHtK-RmdU8/ ]
Errata ID: 6155
Status: Verified
Type: Editorial
Publication Format(s) : TEXT, PDF, HTML
Reported By: Jake Holland
Date Reported: 2020-05-01
Verifier Name: Warren Kumari (Ops AD)
Date Verified: 2021-04-27
Section Appendix A says:
<CODE BEGINS>
$ cat translate.py
#!/usr/bin/env python3
import sys
name=sys.argv[1]
wire=''
for dn in name.split('.'):
if len(dn) > 0:
wire += ('%02x' % len(dn))
wire += (''.join('%02x'%ord(x) for x in dn))
print(len(wire)//2) + 2
print(wire)
$ ./translate.py amtrelays.example.com
24
09616d7472656c617973076578616d706c6503636f6d
<CODE ENDS>
It should say:
<CODE BEGINS>
$ cat translate.py
#!/usr/bin/env python3
import sys
name=sys.argv[1]
wire=''
for dn in name.split('.'):
if len(dn) > 0:
wire += ('%02x' % len(dn))
wire += (''.join('%02x'%ord(x) for x in dn))
print(len(wire)//2 + 2)
print(wire)
$ ./translate.py amtrelays.example.com
24
09616d7472656c617973076578616d706c6503636f6d
<CODE ENDS>
Notes:
The original sample code gives a runtime error when executed. The +2 should have been inside the parenthesis for the print function.
Status: Reported (1)
RFC 8777, "DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery", April 2020
Source of RFC: mboned (ops)
Errata ID: 8609
Status: Reported
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Viktor Dukhovni
Date Reported: 2025-10-18
Section Appendix A says:
#!/usr/bin/env python3
import sys
name=sys.argv[1]
wire=''
for dn in name.split('.'):
if len(dn) > 0:
wire += ('%02x' % len(dn))
wire += (''.join('%02x'%ord(x) for x in dn))
print(len(wire)//2) + 2
print(wire)
It should say:
#!/usr/bin/env python3
import sys
name=sys.argv[1]
wire=''
for dn in name.split('.'):
if len(dn) > 0:
wire += ('%02x' % len(dn))
wire += (''.join('%02x'%ord(x) for x in dn))
wire += '00'
print(len(wire)//2 + 2)
print(wire)
Notes:
Given erratum 6218 (<https://www.rfc-editor.org/errata/eid6218>: missing final empty root label), already verified, the Python code should also produce the correct output.
