The IPv6 Unrecognized OptionJuniper Networks2251 Corporate Park DriveHerndon20171VirginiaUSArbonica@juniper.netComcast1717 John F Kennedy Blvd.PhiladelphiaPA19103USAjohn_leddy@comcast.com
INT Area
6manIPv6Destination OptionThis document describes a method by which a source node can determine
whether the underlying network can a) convey a packet that contains IPv6
destination options from itself to a destination node, and b) convey an
ICMPv6 Parameter Problem message in the reverse direction.In order to support this method, this document defines a new IPv6
option, called the Unrecognized option. Implementation of the
Unrecognized option is a trivial exercise, because the Unrecognized
option elicits the same behavior from all nodes, regardless of whether
they recognize the option.In IPv6, optional internet-layer
information is encoded in extension headers that are placed between the
IPv6 header and the upper-layer header. Two of the extension headers
specified in , the Hop-by-Hop Options header and
the Destination Options header, carry a variable number of "options".
Each option contains the following fields:Option Type - 8-bit identifier of the type of option.Opt Data Len - 8-bit unsigned integer. Length of the Option Data
field of this option, in octets.Option Data - Variable-length field. Option-Type-specific
data.The Option Type identifiers are encoded so that their
highest-order 2 bits specify the action that must be taken if the
processing IPv6 node does not recognize the option. Actions follow:00 - Skip over this option and continue processing the
header.01 - Discard the packet.10 - Discard the packet and, regardless of whether or not the
packet's Destination Address was a multicast address, send an ICMPv6 Parameter Problem, Code 2, message to
the packet's Source Address, pointing to the unrecognized Option
Type.11 - Discard the packet and, only if the packet's Destination
Address was not a multicast address, send an ICMPv6 Parameter
Problem, Code 2, message to the packet's Source Address, pointing to
the unrecognized Option Type.Several upper-layer protocols emit packets that contain IPv6
destination options. These protocols rely the underlying network to
forward packets that contain IPv6 destination options.A subset of those protocols emit IPv6 destination options with
high-order bits equal to "10" and "11". These IPv6 destination options
elicit ICMP Parameter Problem messages from destination nodes that do
not recognize them. The above-mentioned protocols perform better when
the network can convey ICMPv6 Parameter Problem messages from the
destination node to the source node.Operational experience reveals that a
significant number of networks drop packets that contain IPv6
destination options. Likewise, many networks drop ICMP Parameter Problem
messages.This document describes a method by which a source node can determine
whether the underlying network can:Convey packets that contains IPv6 destination options from itself
to a destination node.Convey ICMPv6 Parameter Problem messages in the reverse
direction.In order to support this method, this document defines a new
IPv6 option, called the Unrecognized option. Implementation of the
Unrecognized option is a trivial exercise, because the Unrecognized
option elicits the same behavior from all nodes, regardless of whether
they recognize the option.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14 when, and only
when, they appear in all capitals, as shown here. depicts the Unrecognized
Option.Option fields are as follows:Option Type - Unrecognized Option. Value TBD by IANA. See Notes
below.Opt Data Len - Length of Option Data, measured in bytes.Option Data - MUST be set to zero on transmission. MUST be
ignored on receipt.All nodes process the Unrecognized option as follows, regardless of
whether they recognize the option:Discard the packet.Send an ICMPv6 Parameter Problem, Code 2, message to the packet's
Source Address, pointing to the unrecognized Option Type.NOTE 1: The highest-order two bits of the Option Type (i.e., the
"act" bits) are 10. These bits specify the action taken by a destination
node that does not recognize Unrecognized option. The required action is
to discard the packet and, regardless of whether or not the packet's
Destination Address was a multicast address, send an ICMPv6 Parameter
Problem, Code 2, message to the packet's Source Address, pointing to the
unrecognized Option Type.NOTE 2: The third highest-order bit of the Option Type (i.e., the
"chg" bit) is 0. This indicates that Option Data cannot be modified
along the path between the packet's source and its destination.Upper-layer protocols execute the following procedure:Set a short timer (e.g., two or three seconds).Send a probe packet.Wait for either a) timer expiration or b) an ICMPv6 Parameter
Problem message that matches the probe packet.The probe packet contains an IPv6 Destination Options header and the
IPv6 Destination Options header contains an Unrecognized option. The
Unrecognized Option MAY contain option data of any length. In order to
influence how the packet is routed to its destination, the probe packet
MAY contain upper-layer headers. However, because the packet contains
the Unrecognized option, it is always discarded and is never delivered
to an upper-layer protocol.An ICMPv6 Parameter Problem message matches a probe packet if the
initial bytes of the probe packet appear in the ICMP Parameter Problem
message.If the timer expires, one or both of the following is true:The underlying network cannot convey a packet that contains IPv6
destination options from itself to a destination node.The underlying network cannot convey an ICMPv6 Parameter Problem
message in the reverse directionIf a matching ICMPv6 Parameter Problem arrives, both of the
following are true:The underlying network can convey a packet that contains IPv6
destination options from itself to a destination node.The underlying network can convey an ICMPv6 Parameter Problem
message in the reverse directionBecause this document introduces no new functionality, it introduces
no new security vulnerabilities.IANA is requested to allocate a codepoint from the Destination
Options and Hop-by-hop Options registry
(https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml#ipv6-parameters-2).
This option is called "Unrecognized". The "act" bits are 10 and the
"chg" bit is 0.Thanks to Ross Callon for his careful review of this document.