Internet DRAFT - draft-herbert-ipv4-hbh-destopt
draft-herbert-ipv4-hbh-destopt
INTERNET-DRAFT T. Herbert
Intended Status: Proposed Standard Intel
Expires: March 2020
September 24, 2019
IPv4 Hop-by-Hop Options and Destination Options Extension Headers
draft-herbert-ipv4-hbh-destopt-00
Abstract
This specification enables the use of Hop-by-Hop Options and
Destination Options extension headers which are defined for IPv6 to
be used with IPv4. The goal is to provide a uniform and feasible
method of extensibility that is common between IPv4 and IPv6.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
T. Herbert Expires March 27, 2020 [Page 1]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Enabling IPv4 extension headers . . . . . . . . . . . . . . 4
2 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Option format . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Extension header formats . . . . . . . . . . . . . . . . . . 6
2.2.1 Hop-by-Hop Options . . . . . . . . . . . . . . . . . . . 6
2.2.2 Destination Options Header . . . . . . . . . . . . . . . 6
2.3 Extension Header Order . . . . . . . . . . . . . . . . . . . 6
2.4 Experimental options . . . . . . . . . . . . . . . . . . . . 7
3 ICMP errors . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 Parameter Problem codes . . . . . . . . . . . . . . . . . . 7
3.2 Destination Unreachable codes . . . . . . . . . . . . . . . 9
4 Requirements and operation . . . . . . . . . . . . . . . . . . 10
4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Interaction with standard IPv4 mechanisms . . . . . . . . . 11
4.2.1 IPv4 options . . . . . . . . . . . . . . . . . . . . . . 11
4.2.2 IPv4 fragmentation . . . . . . . . . . . . . . . . . . . 11
4.3 Processing limits . . . . . . . . . . . . . . . . . . . . . 11
5 Deployability . . . . . . . . . . . . . . . . . . . . . . . . . 12
6 Security Considerations . . . . . . . . . . . . . . . . . . . . 13
7 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 13
7.1 Protocol descriptions . . . . . . . . . . . . . . . . . . . 13
7.2 IPv4 Parameters registry . . . . . . . . . . . . . . . . . . 13
7.3 ICMP parameters . . . . . . . . . . . . . . . . . . . . . . 15
7.3.1 Parameter Problem codes . . . . . . . . . . . . . . . . 15
7.3.2 Destination Unreachable codes . . . . . . . . . . . . . 15
8 References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.1 Normative References . . . . . . . . . . . . . . . . . . . 16
8.2 Informative References . . . . . . . . . . . . . . . . . . 16
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 18
T. Herbert Expires March 27, 2020 [Page 2]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
1 Introduction
This specification enables the Hop-by-Hop Options and Destination
Options extension headers which are defined for IPv6 to be used with
IPv4. The goal is to provide an extensible mechanism in IPv4 that is
unified with IPv6 and facilitates leveraging common protocol and
implementation for extensibility between the two versions of the
Internet Protocol.
Hop-by-Hop Options and Destination Options extension headers are
defined in [RFC8200]. The respective IP protocol numbers, 0 and 60,
are defined for use with IPv6 as Next Header values, but are reserved
for IPv4 and are not valid values in the IPv4 Protocol field. This
document permits the use of protocol numbers 0 and 60 in the IPv4
protocol field and defines the semantics of processing Hop-by-Hop
Options and Destination Options extension headers in the context of
IPv4. Note that the use of the Hop-by-Hop Options and Destination
Options protocol numbers the IPv4 Protocol field effectively
designates the field to be the IPv4 Next Header field.
The use of extension headers in IPv4 is not without precedent. Both
the Authentication header (AH, protocol number 51) [RFC4302] and
Encapsulating Security Payload (ESP, protocol number 50) [RFC4303]
are defined for use with IPv4.
Note that this specification only enables the use of Hop-by-Hop
Options and Destination Options extension headers in IPv4. It does
not define the use of any other extension headers with IPv4 including
the Routing Header and Fragmentation Header.
1.1 Motivation
IPv6 is intended to become the standard protocol of the Internet,
however it is clear that there is a large segment of users that will
be using IPv4 for the foreseeable future. This is particularly true
in many enterprises where a business case for transitioning to IPv6
hasn't yet emerged [V6STATE].
In lieu of sun-setting IPv4 and expecting all users to move to IPv6
in some time frame that is unlikely to be met, this specification
suggests an alternative to enable the extensibility mechanisms of
IPv6 in IPv4. The rationale for this is two fold:
1) Users benefit from forward looking features being actively
defined and developed for IPv6 without requiring them to first
transition to IPv6.
T. Herbert Expires March 27, 2020 [Page 3]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
2) In making IPv4 look more like IPv6, the work required to
complete a future transition to IPv6 may be reduced or
simplified.
Various proposals that would use Hop-by-Hop Options or Destination
Options are currently being developed in IETF. These include Path MTU
Option [MTUOPT], In-situ OAM [IOAM], Service-aware IPv6 Network
[SAIN], and Firewall and Service Tickets [FAST]. These proposals
leverage the extensibility mechanisms of extension headers defined
for IPv6. These proposals, in some form, could be of value for use
with IPv4.
Unfortunately, IPv4 does not define a mechanism that meets reasonable
requirements for extensibility. IP options are quite limited and have
long been considered obsolete. There have been proposals for encoding
host to network signaling in UDP (e.g. [SPUD], IOAM over
encapsulation in Geneve [IOAMGEN]), however these are shown to
neither be generic nor robust especially in the case that
encapsulated data must be modified in flight [RFC7605].
The proposal in this document is to enable IPv4 packets to carry Hop-
by-Hop Options and Destination Options extension headers in the same
manner that IPv6 does. In doing so, the various options defined for
IPv6 can be used with IPv4 to the benefit of the user. It is expected
that in many cases, such as the IOAM and Path MTU options, options
are protocol agnostic and would be applicable to use in IPv4 with
little or no change. In other cases, particularly when an option
carries an IP address, the options might be defined to be IPv6
specific and require some adaptation to work with IPv4.
1.2 Enabling IPv4 extension headers
IPv4 options were defined in [RFC0791] as the means of extending the
IP protocol. IPv4 options have not been successful. Early router
implementations, and even those today, either don't process IPv4
options or relegate them to a slow path effectively making them
unusable for serious applications. IPv4 options are limited to forty
bytes length and, unlike TCP options, no IP options have been defined
that are critical to communications. The upshot is that IPv4 options
have long not been considered an option for deployment [IPNOOP].
IPv6 took a different approach. Extensibility of IPv6 is provided by
extension headers. Optional internet-layer information is encoded in
separate headers that may be placed between the IPv6 header and the
upper-layer header in a packet [RFC8200]. IPv6 extension headers have
had mixed success in deployment in that some intermediate devices
have trouble processing them [RFC7872], however there are several
active proposals in IETF that would make use of them (e.g. [FAST],
T. Herbert Expires March 27, 2020 [Page 4]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
[MTUOPT], [IOAM], [SRV6EH]).
Using extension headers with IPv4 is logically straightforward. The
IPv4 Protocol field is effectively re-designated to be a Next Header
field with the same meaning and semantics as the IPv6 Next Header
field. In this manner, an IPv4 packet can contain IPv6 extension
headers that are recast as IPv4 extension headers. This specification
describes the use of Hop-by-Hop Options and Destination Options
extension headers in IPv4.
A number of ICMP errors may be sent when an error condition is
encountered in processing extension headers. The relevant ICMPv6
errors are defined in [RFC4443] and [ICMPLIM]. This specification
adapts these ICMPv6 errors for use in IPv4.
2 Format
IPv4 extension headers are optional internet-layer information
encoded in separate headers that may be placed between the IPv4
header and the upper-layer header in a packet. IPv4 Hop-by-Hop
Options and Destination Options extension headers are based on the
corresponding IPv6 extension headers and share the same basic
properties and semantics [RFC8200].
As illustrated in these examples, an IPv4 packet MAY carry zero, one,
or more extension headers, each identified by Protocol field of the
IPv4 header or the Next Header field of a preceding extension header:
+---------------+------------------------
| IPv4 header | TCP header + data
| |
| Protocol = |
| TCP |
+---------------+------------------------
+---------------+----------------+------------------------
| IPv4 header | Hop-by-Hop | TCP header + data
| | |
| Protocol = | Next Header = |
| Hop-by-Hop | TCP |
+---------------+----------------+------------------------
+---------------+----------------+-----------------+-----------------
| IPv4 header | Hop-by-Hop | Destination Opt | TCP
| | | | header + data
| Protocol = | Next Header = | Next Header = |
| Hop-by-Hop | DestOpt | TCP |
+---------------+----------------+-----------------+-----------------
T. Herbert Expires March 27, 2020 [Page 5]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
2.1 Option format
The format and processing of options in IPv4 Hop-by-Hop Options and
Destination Options extension headers is the same as that defined for
IPv6 options in section 4.2 of [RFC8200] with the following
modifications:
* In the case that an option is unrecognized by a receiver and the
highest-order 2 bits specify that an ICMP error should be sent
(values of 10 and 11) then an ICMPv4 Parameter Problem, Code 5
is sent (see section 3).
Note that PAD1 and PADN are defined for IPv4 Hop-by-Hop Options and
Destination Options with the same format and semantics as defined for
IPv6.
2.2 Extension header formats
2.2.1 Hop-by-Hop Options
The format of the IPv4 Hop-by-Hop Options extension header is the
same as the corresponding format of IPv6 Hop-by-Hop Options defined
in section 4.3 of [RFC8200] with the following modifications:
* The Next Header field MUST contain a protocol number that is
defined to be usable with IPv4 or 60 (IPv4 Destination Options
extension header).
2.2.2 Destination Options Header
The format of the IPv4 Destination Options extension header is the
same as the corresponding format of IPv6 Destination Options defined
in section 4.6 of [RFC8200] with the following modifications:
* The Next Header field MUST contain a protocol number that is
defined to be usable with IPv4 or 60 (IPv4 Destination Options
extension header).
2.3 Extension Header Order
When more than one IPv4 extension header is used in the same packet,
it is RECOMMENDED that those headers appear in the following order:
IPv4 header
Hop-by-Hop Options header
Destination Options header (note 1)
Authentication header (note 2)
Encapsulating Security Payload header (note 2)
T. Herbert Expires March 27, 2020 [Page 6]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
Upper-Layer header
note 1: unlike IPv6, routing headers are not defined for IPv4
so there is no distinction between Destination Options
that appear before or after the routing header.
note 2: additional recommendations regarding the relative order
of the Authentication and Encapsulating Security
Payload headers are given in [RFC4303].
2.4 Experimental options
This document assigns a single option type for experimental purposes,
with all possible values of the "act" and "chg" fields, resulting in
eight distinct option type codes. These are the same values defined
for experimental Hop-by-Hop and Destination Options in IPv6
[RFC4727].
Experimental IPv4 Hop-by-Hop Options and Destination Options Types
are:
HEX act chg rest
---- --- --- -----
0x1e 00 0 11110
0x3e 00 1 11110
0x5e 01 0 11110
0x7e 01 1 11110
0x9e 10 0 11110
0xbe 10 1 11110
0xde 11 0 11110
0xfe 11 1 11110
3 ICMP errors
ICMP errors are defined to be sent in response to errors that occur
in processing extension headers. Six ICMPv4 Parameter Problem codes
are defined and one ICMPv4 Destination Unreachable code is defined.
These codes are adaptations of ICMPv6 codes defined in [RFC4443] and
[ICMPLIM].
3.1 Parameter Problem codes
The format for ICMP Parameter Problem errors related to extension
headers employs a multi-part ICMPv4 message format as defined in
[RFC4884]. The extended structure contains a pointer to the octet
beyond the limit.
T. Herbert Expires March 27, 2020 [Page 7]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
The format of the ICMPv4 Parameter Problem for extension headers is:
0 1 2 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused | Length | unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + leading octets of original datagram |
| |
| // |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4 Header Fields:
Destination Address
Copied from the Source Address field of the invoking packet.
ICMPv4 Fields:
Type
12 (Parameter Problem Message)
Code (pertinent to this specification)
3 - Erroneous header field encountered
4 - Unrecognized Next Header type encountered
5 - Unrecognized IPv4 option encountered
6 - Extension header too big
7 - Extension header chain too long
8 - Too many options in extension header
9 - Option too big
Length
Length of the padded "original datagram" field, measured in 32-
bit words.
Pointer
Identifies the octet offset within the invoking packet where
the error was detected.
Codes 3, 4, and 5 are analogues of Parameter Problem codes 0, 1, and
2 defined for IPv6 in [RFC4443]. Operation and semantics of these
T. Herbert Expires March 27, 2020 [Page 8]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
codes are the same as their counterparts in [RFC4443] with the
following modifications:
* The multi-part ICMP format of [RFC4884] is used and its fields
are set appropriately.
* The pointer to the offending byte in the invoking packet is
contained in the 32 bit Pointer field in the extended format.
Codes 6, 7, 8, and 9 are analogues of Parameter Problem codes 4, 5,
6, and 7 defined for IPv6 in [ICMPLIM]. Operation and semantics of
these codes are the same as their counterparts in [ICMPLIM] with the
following modifications:
* The multi-part ICMP format of [RFC4884] is used and its fields
are set appropriately.
* The pointer to the offending byte in the invoking packet is
contained in the 32 bit Pointer field in the extended format.
3.2 Destination Unreachable codes
This specification defines one IPv4 Destination Unreachable code for
aggregate header limits being exceeded as described in [ICMPLIM]. The
error for aggregate header limits employs a multi-part ICMPv4 message
format as defined in [RFC4884]. The extended structure contains a
pointer to the octet beyond the limit.
The format of the ICMPv4 message for an aggregate header limit
exceeded is:
0 1 2 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| unused | Length | unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + leading octets of original datagram |
| |
| // |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
T. Herbert Expires March 27, 2020 [Page 9]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
IPv4 Header Fields:
Destination Address
Copied from the Source Address field of the invoking packet.
ICMPv4 Fields:
Type
3 (Destination Unreachable Message)
Code (pertinent to this specification)
16 - Headers too long
Length
Length of the padded "original datagram" field, measured in 32-
bit words.
Pointer
Identifies the octet offset within the invoking packet where
the error was detected.
Code 16 is an analogue of Destination Unreachable code 8 defined in
[ICMPLIM]. Operation and semantics of the code should be the same as
the counterpart in [ICMPLIM].
4 Requirements and operation
4.1 Requirements
IPv4 Hop-by-Hop and Destination Options extension headers normatively
assume the requirements of IPv6 extension headers as defined in
[RFC8200] section 4, with the following modifications:
* References to the IPv6 header are replaced by references to the
IPv4 header.
* ICMP errors sent in the course of processing Hop-by-Hop Options
and Destination Options extension headers use ICMPv4 instead of
ICMPv6. Applicable ICMPv4 errors for extension header processing
are specified in section 3.
* The IPv4 header Protocol field assumes the same role and
semantics with respect to extension headers as the IPv6 Next
Header field.
* The Hop-by-Hop Options header is used to carry optional
information that MAY be examined and processed by any node along
T. Herbert Expires March 27, 2020 [Page 10]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
a packet's delivery path.
* If a legacy IPv4 destination node, one that does not support
IPv4 Hop-by-Hop Options or Destination Options extension
headers, receives a packet with those extension headers then the
packet will be processed as having an unknown protocol. It is
expected that the packet will be discarded and an ICMP error may
be generated.
* References to the Payload Length are reinterpreted as being the
computed IPv4 payload length (i.e. IPv4 Total Length minus the
length of the IPv4 header).
4.2 Interaction with standard IPv4 mechanisms
IPv4 Hop-by-Hop Options and Destination Options extension headers may
be used concurrently with IPv4 mechanisms such as IPv4 options and
IPv4 fragmentation. This section discusses the interactions.
4.2.1 IPv4 options
An IPv4 packet MAY contain both IPv4 options and Hop-by-Hop Options
or Destination Options extension headers. IPv4 options are completely
independent of IPv4 extension headers. IPv4 options MUST be processed
before processing any extension headers per normal requirements of
processing the IP header before the IP payload.
4.2.2 IPv4 fragmentation
A packet containing Hop-by-Hop Options and Destination Options
extension headers may be fragmented using standard IPv4
fragmentation.
At a destination, if a received packet was fragmented by standard
IPv4 fragmentation, it MUST be reassembled before processing any IPv4
extension headers.
If an IPv4 packet containing Hop-by-Hop Options is fragmented using
standard IPv4 fragmentation, the Hop-by-Hop Options are not set in
each of the packet fragments. An intermediate node MAY process the
Hop-by-Hop options in the first fragment if the complete Hop-by-Hop
extension header is contained within the fragment.
4.3 Processing limits
Section 5.3 of [RFC8504] describes the use of limits in processing
extension headers in order to protect a node from excessive extension
header options. These limits are adapted for use with IPv4 extension
T. Herbert Expires March 27, 2020 [Page 11]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
headers. The requirements in [ICMPLIM] for sending and processing
ICMP errors related to processing limits are applicable.
A node MAY impose limits on processing IPv4 Destination Options and
Hop-by-Hop Options extension headers. This includes limits on length
or number of consecutive padding options, disallowing unknown
options, and limits on the number of options or length of options. If
a limit is exceeded in processing a received packet, the packet is
discarded and an appropriate ICMP error SHOULD be sent (Section 3,
[ICMPLIM]).
A node MAY allow configuration of different limits for processing
IPv4 and IPv6 options. The default limits for IPv4 are assumed to be
the same as those defined for IPv6 in [RFC8504].
5 Deployability
If a legacy host device receives an IPv4 packet with IPv4 Hop-by-Hop
Options or Destination extension headers, the packet will be treated
as having an unknown protocol and should dropped. Intermediate nodes
might also observe to packets with a protocol number that is
unrecognized and will forward the packet inasmuch as they would
forward any packet with an unknown protocol.
In the public Internet, it is well known that there are some
intermediate nodes that will drop packets with protocols that are
unknown to them (firewalls would commonly to this for instance).
Therefore, it is unlikely that packets with IPv4 Hop-by-Hop Options
or Destination Options extension headers can be ubiquitously deployed
over the Internet.
In a limited domain [LIMDOM], an operator would have control over
intermediate nodes and could ensure that at a minimum they properly
forward packets with IPv4 extension headers. Routers in a limited
domain can be updated to process IPv4 Hop-by-Hop Options provide the
functionality of features like IOAM.
T. Herbert Expires March 27, 2020 [Page 12]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
6 Security Considerations
This specification enables use of Hop-by-Hop Options and Destination
Options extension headers in IPv4. Related security mechanisms of
IPv6 extension headers can be applied for use with IPv4 extension
headers.
7 IANA Considerations
7.1 Protocol descriptions
IANA is requested to change the descriptions of the Hop-by-Hop
Options and Destination Options extension headers to reflect that
they are not IPv6 specific.
In the "Assigned Internet Protocol Numbers Registry", the modified
protocols descriptions are:
+----------+---------+------------+-----------+--------------------+
| Decimal | Keyword | Protocol | IPv6 | Reference |
| | | | Extension | |
| | | | header | |
+----------+---------+------------+-----------+--------------------+
| 0 | HOPOPT | Hop-by-Hop | | [RFC8200][RFCXXXX] |
| | | Option | | [This document] |
+----------+---------+------------+-----------+--------------------+
| 60 | Opts | Destination| | [RFC8200][RFCXXXX] |
| | | Options | | [This document] |
+----------+---------+------------+-----------+--------------------+
7.2 IPv4 Parameters registry
IANA is requested to create a parameters registry in "Internet
Protocol Version 4 (IPv4) Parameters". This registry contains the
assigned IPv4 Hop-by-Hop Options and Destination Options numbers.
The description of the registry shall contain:
Name: Destination Options and Hop-by-Hop Options
Registration Procedure(s): IESG Approval, IETF Review or Standards
Action Reference: This specification
Note: From (This specification) IPv4 Option Types are 8-bit
values, structured as three subfields, are defined in
Section 4.2 of [RFC8200].
T. Herbert Expires March 27, 2020 [Page 13]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
Each distinct 8-bit Option Type identifies a different
option, i.e., the high-order 3 bits are considered part of
the option identification. However, it is recommended that
Option Types be assigned with distinct values in the "rest"
subfield, until and unless that 5-bit space becomes full.
Available Formats: <CSV link>
For each option number, the value, description, and document
reference are listed. The value is provided in both hexadecimal as
well as binary. The binary value is split into action, change, and
rest bits which refer to the semantics of the three high-order bits
of the Option Type.
The initial set of assigned IPv4 Option Types are:
+----------+---------------+-------------------+-----------------+
|Hex value | Binary value | Description | Reference |
| | act chg rest | | |
+----------+---------------+-------------------+-----------------+
| 0x00 | 00 0 00000 | Pad1 | [This document] |
| | | | [RFC8200] |
+----------+---------------+-------------------+-----------------+
| 0x01 | 00 0 00001 | PadN | [This document] |
| | | | [RFC8200] |
+----------+---------------+-------------------+-----------------+
| 0x1e | 00 0 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0x3e | 00 1 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0x5e | 01 0 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0x7e | 01 1 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0x9e | 10 0 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0xbe | 10 1 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0xde | 11 0 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
| 0xfe | 11 1 11110 | Experimental | [This document] |
+----------+---------------+-------------------+-----------------+
T. Herbert Expires March 27, 2020 [Page 14]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
7.3 ICMP parameters
7.3.1 Parameter Problem codes
IANA is requested to assign the following codes in "ICMP Type
Numbers" for type 12 "Parameter Problem":
3 - Erroneous header field encountered
4 - Unrecognized Next Header type encountered
5 - Unrecognized IPv4 option encountered
6 - Extension header too big
7 - Extension header chain too long
8 - Too many options in extension header
9 - Option too big
7.3.2 Destination Unreachable codes
IANA is requested to assign the following codes in "ICMP Type
Numbers" for type 3 "Destination Unreachable":
16 - Headers too long
T. Herbert Expires March 27, 2020 [Page 15]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
8 References
8.1 Normative References
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September
1981.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200, DOI
10.17487/RFC8200, July 2017, <https://www.rfc-
editor.org/info/rfc8200>.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet Protocol
Version 6 (IPv6) Specification", STD 89, RFC 4443, DOI
10.17487/RFC4443, March 2006, <https://www.rfc-
editor.org/info/rfc4443>.
8.2 Informative References
[RFC7872] Gont, F., Linkova, J., Chown, T., and W. Liu, "Observations
on the Dropping of Packets with IPv6 Extension Headers in
the Real World", RFC 7872, DOI 10.17487/RFC7872, June 2016,
<https://www.rfc-editor.org/info/rfc7872>.
[RFC4727] Fenner, B., "Experimental Values In IPv4, IPv6, ICMPv4,
ICMPv6, UDP, and TCP Headers", RFC 4727, DOI
10.17487/RFC4727, November 2006, <https://www.rfc-
editor.org/info/rfc4727>.
[RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro,
"Extended ICMP to Support Multi-Part Messages", RFC 4884,
DOI 10.17487/RFC4884, April 2007, <https://www.rfc-
editor.org/info/rfc4884>.
[RFC8504] Chown, T., Loughney, J., and T. Winters, "IPv6 Node
Requirements", BCP 220, RFC 8504, DOI 10.17487/RFC8504,
January 2019, <https://www.rfc-editor.org/info/rfc8504>.
[RFC7605] Touch, J., "Recommendations on Using Assigned Transport
Port Numbers", BCP 165, RFC 7605, DOI 10.17487/RFC7605,
August 2015, <https://www.rfc-editor.org/info/rfc7605>.
[V6STATE] B. Kuerbis and M. Mueller, Internet Governance Project,
"The Hidden Standards War: Economic Factors Affecting IPv6
Deployment", February, 2019.
[SRV6EH] C. Filsfils, Ed., S. Previdi, J. Leddy, S. Matsushima, D.
T. Herbert Expires March 27, 2020 [Page 16]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
Voyer, Ed., "IPv6 Segment Routing Header (SRH)", draft-
ietf-6man-segment-routing-header-22
[CRH] Bonica, R., So, N., Xu, F., Chen, G., Zhu, Y., Yang, G.,
Zhou, Y., "The IPv6 Compressed Routing Header (CRH)" draft-
bonica-6man-comp-rtg-hdr-03
[MTUOPT] Hinden, R. and Fairhurst, G., "IPv6 Minimum Path MTU Hop-
by-Hop Option", draft-hinden-6man-mtu-option-00
[IOAM] F. Brockners, S. Bhandari, V. Govindan, C. Pignataro, H.
Gredler, J. Leddy, S. Youell, T. Mizrahi, D. Mozes, P.
Lapukhov, R. Chang, "Encapsulations for In-situ OAM Data"
draft-brockners-inband-oam-transport-05
[SAIN] Li, Z. and Peng, S., "Service-aware IPv6 Network", draft-
li-6man-service-aware-ipv6-network-00
[FAST] Herbert, T., "Firewall and Service Tickets", draft-herbert-
fast-03
[SPUD] Hildebrbrand, J. and Trammell, B., Substrate Protocol for
User Datagrams (SPUD) Prototype, draft-hildebrand-spud-
prototype-03
[IOAMGEN] Brockners, F. et al., "Geneve encapsulation for In-situ OAM
Data", draft-brockners-ippm-ioam-geneve-01
[IPNOOP] Rodrigo Fonseca, George Manning Porter, Randy H. Katz,
Scott Shenker and Ion Stoica, "IP Options are not an
option",
<https://www2.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-
2005-24.html>
[ICMPLIM] Herbert, T., "ICMPv6 errors for discarding packets due to
processing limits", draft-ietf-6man-icmp-limits-01
[IANA-PN] IANA, "Protocol Numbers",
<https://www.iana.org/assignments/protocol-numbers>.
[IANA-EH] IANA, "IPv6 Extension Header Types",
<https://www.iana.org/assignments/ipv6-parameters>.
[LIMDOM] Carpenter, B., and Liu, B., "Limited Domains and Internet
Protocols", draft-carpenter-limited-domains-06
T. Herbert Expires March 27, 2020 [Page 17]
INTERNET DRAFT draft-herbert-ipv4-hbh-destopt-00 September 24, 2019
Author's Address
Tom Herbert
Intel
Santa Clara, CA, USA
USA
Email: tom@herbertland.com
T. Herbert Expires March 27, 2020 [Page 18]