RFC Errata
RFC 2784, "Generic Routing Encapsulation (GRE)", March 2000
Note: This RFC has been updated by RFC 2890, RFC 9601
Source of RFC: LegacyArea Assignment: rtg
See Also: RFC 2784 w/ inline errata
Errata ID: 3719
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: C, . M. Heard
Date Reported: 2013-09-04
Verifier Name: Stewart Bryant
Date Verified: 2013-09-17
Section 2.3 and 5.2 says:
2.3. Reserved0 (bits 1-12) A receiver MUST discard a packet where any of bits 1-5 are non-zero, unless that receiver implements RFC 1701. Bits 6-12 are reserved for future use. These bits MUST be sent as zero and MUST be ignored on receipt. ... 5.2. RFC 1701 Compliant Transmitter An RFC 1701 transmitter may set any of the Routing Present, Key Present, Sequence Number Present, and Strict Source Route bits set to one, and thus may transmit the RFC 1701 Key, Sequence Number or Routing fields in the GRE header. As stated in Section 5.3, a packet with non-zero bits in any of bits 1-5 MUST be discarded unless the receiver implements RFC 1701.
It should say:
2.3. Reserved0 (bits 1-12) A receiver MUST discard a packet where any of bits 1-4 are non-zero, unless that receiver implements RFC 1701. Bits 5-12 are reserved for future use. These bits MUST be sent as zero and MUST be ignored on receipt. ... 5.2. RFC 1701 Compliant Transmitter An RFC 1701 transmitter may set any of the Routing Present, Key Present, Sequence Number Present, and Strict Source Route bits set to one, and thus may transmit the RFC 1701 Key, Sequence Number or Routing fields in the GRE header. As stated in Section 2.3, a packet with non-zero bits in any of bits 1-4 MUST be discarded unless the receiver implements RFC 1701.
Notes:
In the section entitled "Packet header," RFC 1701 defined the one-bit Routing Present, Key Present, Sequence Number Present, and Strict Source Route fields in bits 1-4 , the Recursion Control field in bits 5-7, and a Flags field in bits 8-12. It further stated that "[b]its 5 through 12 are reserved for future use and MUST be transmitted as zero." The language in RFC 2784 Section 5.2 makes it clear that incompatibilities between an RFC 1701 transmitter and an RFC 2784 receiver arise only when one or more of the the Routing Present, Key Present, Sequence Number Present, and Strict Source Route bits are set, i.e., when any of bits 1-4 are set.
Verifier's note: This looks like it was the intent of the authors, but the reader should note also RFC2890 which restores the K and S bits.