OAM Capabilities for IPv6Juniper NetworksHerndon20171VirginiaUSArbonica@juniper.netAlibaba IncAlibaba ParkHangzhouP.R. Chinaxiaohu.xxh@alibaba-inc.comBaiduBaidu Technology Park Building No.2, No.10 Xibeiwang East
Road Haidian DistrictBeijing100193P.R. Chinaphdgang@gmail.comChina Telecom109 West Zhongshan Ave, Tianhe DistrictGuangzhouP.R. Chinazhuyq.gd@chinatelecom.cnChina Telecom109 West Zhongshan Ave, Tianhe DistrictGuangzhouP.R. Chinayanggm.gd@chinatelecom.cnInternet Area
6man Working GroupOptionsICMPOAMThis document defines new IPv6 Operations and Management (OAM)
capabilities. In order to support these new capabilities, this document
defines an IPv6 OAM Option and an ICMPv6 OAM message.This document defines new IPv6
Operations and Management (OAM) capabilities. In order to support these
new capabilities, this document defines an IPv6 OAM Option and an ICMPv6 OAM message.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.IPv6 source nodes use the OAM option to invoke one or more OAM
actions on downstream devices. The OAM option can be included in any of
the following:A Hop-by-hop header.A Destination Options header that precedes a Routing header.A Destination Options header that precedes an upper-layer
header.If a Hop-by-hop header includes an OAM option, OAM actions MAY
be invoked on every node along the path to the destination, including
the destination. If a Destination Options header that precedes a Routing
header includes an OAM option, OAM actions are invoked by the first node
that appears in the IPv6 Destination Address field plus subsequent nodes
listed in the Routing header. If a Destination Options header that
precedes an upper-layer header includes an OAM option, OAM actions are
invoked on the destination node only.The OAM option includes the following fields:Option Type (8 bits): OAM. Value TBD by IANA. See Note 1 and Note
2.Opt Data Len (8 bits): Length of Option Data, in bytes. Value
MUST be equal to 2.Option Data (16 bits): A bit mask indicating which OAM actions
are to be invoked.BitActionNotes0Log the packetThe processing node creates a log entry. The log entry reflects the
time at which it was created. It also reflects the time at which the
packet arrived.1Count the packetThe processing node increments a counter.2Send an ICMPv6 OAMThe processing node sends an ICMP OAM message to the packet's
source. The OAM message indicates the time at which the packet
arrived.3Send telemetryThe processing node sends telemetry to a monitoring station.
Telemetry includes the packet and the time at which the packet
arrived.4-15Reserved maps Option Data bits to OAM
actions.NOTE 1: As per , the highest-order two bits
of the Option Type (i.e., the "act" bits) specify the action taken by a
processing node that does not recognize Option Type. The required action
is skip over this option and continue processing the header. Therefore,
IANA is requested to assign this Option Type with "act" bits "00".NOTE 2: As per , the third-highest-order bit
(i.e., the "chg" bit) of the Option Type specifies whether Option Data
can change on route to the packet's destination. Because option data
MUST NOT be changed, IANA is requested to assign this Option Type with
"chg" bit "0".The processing of OAM actions is optional. If a node does not
support particular OAM action, it can ignore the corresponding bit in
Option Data.Having processed an OAM option, the processing node should continue
to process the packet. If possible, the OAM action should be executed
in parallel with the processing of the rest of the packet.The processing node SHOULD execute the OAM action, even if it can
not process the packet further. For example, assume the following:A node receives a packet.The packet contains a Hop-by-hop Options header and the
Hop-by-hop Options header includes the OAM option.The node does not maintain a route to the packet's Destination
AddressIn this case, the node SHOULD execute the requested OAM
action. Because the node does not maintain a route to the packet's
Destination Address, it should also send an ICMPv6 Destination
Unreachable message to the source node an discard the packet. depicts the ICMPv6 OAM message. The
ICMPv6 OAM message contains the following fields:Type - OAM. Value TBD by IANA.Code - MUST be set to (0) No Error.Checksum - See Reserved - MUST be set to 0 and MUST be ignored upon receipt.Length - Represents the length of the padded "original datagram"
field, measured in 32-bit words.Timestamp (seconds) - Represents the time at which the original
packet arrived in Network Time Protocol (NTP)
format.Timestamp (fraction) - Represents the time at which the original
packet arrived in NTP format.Original Datagram - As much of invoking packet as possible
without the ICMPv6 packet exceeding the minimum IPv6 MTU (1280
bytes). The original datagram MUST be zero padded to the nearest
32-bit boundary.ICMPv6 OAM messages SHOULD be rate limited by the sender.The Timestamp fields SHOULD be as accurate as possible. They SHOULD
reflect the time at which the original packet arrived, not the time at
which the ICMPv6 OAM message was sent.IANA is requested to perform the following actions: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 "OAM". The "act" bits are 00 and the "chg" bit
is 0.Create a subregistry in the Destination Options and Hop-by-hop
Options registry
(https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml#ipv6-parameters-2).
This subregistry is called OAM Option Data Bit Mask. Its contents
are defined in of this document.Allocate a codepoint from the "ICMPv6 'type' Numbers" registry
(https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xml).
This type is called "OAM". As it represents an informational
message, its value should be greater than 128.Create a "Type x - OAM" subregistry in the "ICMPv6 'type'
Numbers" registry
(https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xml)
registry. This subregistry contains the Code entry (0) No Error.The OAM option can also be used in denial of service attacks. Network
devices SHOULD protect themselves against such attacks by limiting the
number of OAM options that they process per unit time. If the rate limit
is exceeded, the network device MAY either discard the packet or
continue to process the packet, ignoring the OAM option.The authors acknowledge Fred Baker, Ross Callon, Brian Carpenter and
Tom Herbert for their helpful comments.