draft-ietf-nvo3-encap-06.txt   draft-ietf-nvo3-encap-07.txt 
NVO3 Workgroup S. Boutros, Ed. NVO3 Workgroup S. Boutros, Ed.
Internet-Draft Ciena Internet-Draft Ciena
Intended Status: Informational D. Eastlake, Ed. Intended Status: Informational D. Eastlake, Ed.
Futurewei Futurewei
Expires: December 8, 2021 June 9, 2021 Expires: January 28, 2022 July 29, 2021
NVO3 Encapsulation Considerations NVO3 Encapsulation Considerations
draft-ietf-nvo3-encap-06 draft-ietf-nvo3-encap-07
Abstract Abstract
As communicated by the WG Chairs, the IETF NVO3 chairs and Routing As communicated by the WG Chairs, the IETF NVO3 chairs and Routing
Area director have chartered a design team to take forward the Area director have chartered a design team to take forward the
encapsulation discussion and see if there is potential to design a encapsulation discussion and see if there is potential to design a
common encapsulation that addresses the various technical concerns. common encapsulation that addresses the various technical concerns.
There are implications of different encapsulations in real There are implications of different encapsulations in real
environments consisting of both software and hardware implementations environments consisting of both software and hardware implementations
and spanning multiple data centers. For example, OAM functions such and spanning multiple data centers. For example, OAM functions such
skipping to change at page 2, line 4 skipping to change at page 2, line 6
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
https://www.ietf.org/1id-abstracts.html. The list of Internet-Draft https://www.ietf.org/1id-abstracts.html. The list of Internet-Draft
Shadow Directories can be accessed at Shadow Directories can be accessed at
https://www.ietf.org/shadow.html. https://www.ietf.org/shadow.html.
Copyright Notice Copyright Notice
Internet-Draft NVO3 Encapsulation Considerations
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Internet-Draft NVO3 Encapsulation Considerations
Table of Contents Table of Contents
1. Introduction............................................4 1. Introduction............................................4
2. Design Team Goals.......................................4 2. Design Team Goals.......................................4
3. Terminology.............................................5 3. Terminology.............................................5
4. Abbreviations and Acronyms..............................5 4. Abbreviations and Acronyms..............................5
5. Issues with Current Encapsulations......................6 5. Issues with Current Encapsulations......................6
5.1. Geneve................................................6 5.1. Geneve................................................6
5.2. GUE...................................................6 5.2. GUE (Generic UDP Encapsulation).......................6
5.3. VXLAN-GPE.............................................6 5.3. VXLAN-GPE.............................................6
6. Common Encapsulation Considerations.....................7 6. Common Encapsulation Considerations.....................7
6.1. Current Encapsulations................................7 6.1. Current Encapsulations................................7
6.2. Useful Extensions Use Cases...........................7 6.2. Useful Extensions Use Cases...........................7
6.2.1. Telemetry Extensions................................7 6.2.1. Telemetry Extensions................................7
6.2.2. Security/Integrity Extensions.......................8 6.2.2. Security/Integrity Extensions.......................8
6.2.3 Group Base Policy....................................8 6.2.3 Group Based Policy...................................8
6.3. Hardware Considerations...............................9 6.3. Hardware Considerations...............................9
6.4. Extension Size........................................9 6.4. Extension Size........................................9
6.5. Extension Ordering...................................10 6.5. Ordering of Extension Headers........................10
6.6. TLV versus Bit Fields................................10 6.6. TLV versus Bit Fields................................10
6.7. Control Plane Considerations.........................11 6.7. Control Plane Considerations.........................11
6.8. Split NVE............................................12 6.8. Split NVE............................................12
6.9. Larger VNI Considerations............................12 6.9. Larger VNI Considerations............................12
7. Design Team Recommendations............................13 7. Design Team Recommendations............................14
8. Acknowledgements.......................................16
9. Security Considerations................................16
10. IANA Considerations...................................16
11. References............................................17 8. Acknowledgements.......................................17
11.1 Normative References.................................17 9. Security Considerations................................17
11.2 Informative References...............................17 10. IANA Considerations...................................17
Appendix A: Encapsulations Comparison.....................19 11. References............................................18
A.1. Overview.............................................19 11.1 Normative References.................................18
A.2. Extensibility........................................19 11.2 Informative References...............................18
A.2.1. Native Extensibility Support.......................19
A.2.2. Extension Parsing..................................19
A.2.3. Critical Extensions................................20
A.2.4. Maximal Header Length..............................20
A.3. Encapsulation Header.................................20
A.3.1. Virtual Network Identifier (VNI)...................20
A.3.2. Next Protocol......................................20
A.3.3. Other Header Fields................................21
A.4. Comparison Summary...................................21
Contributors..............................................23 Appendix A: Encapsulations Comparison.....................20
A.1. Overview.............................................20
A.2. Extensibility........................................20
A.2.1. Native Extensibility Support.......................20
A.2.2. Extension Parsing..................................20
A.2.3. Critical Extensions................................21
A.2.4. Maximal Header Length..............................21
A.3. Encapsulation Header.................................21
A.3.1. Virtual Network Identifier (VNI)...................21
A.3.2. Next Protocol......................................21
A.3.3. Other Header Fields................................22
A.4. Comparison Summary...................................23
Internet-Draft NVO3 Encapsulation Considerations Contributors..............................................25
1. Introduction 1. Introduction
As communicated by the WG Chairs, the NVO3 WG Charter states that it As communicated by the WG Chairs, the NVO3 WG Charter states that it
may produce requirements for network virtualization data planes based may produce requirements for network virtualization data planes based
on encapsulation of virtual network traffic over an IP-based underlay on encapsulation of virtual network traffic over an IP-based underlay
data plane. Such requirements should consider OAM and security. data plane. Such requirements should consider OAM and security.
Based on these requirements the WG will select, extend, and/or Based on these requirements the WG will select, extend, and/or
develop one or more data plane encapsulation format(s). develop one or more data plane encapsulation format(s).
skipping to change at page 4, line 39 skipping to change at page 4, line 37
Berlin that it is undesirable for the working group to progress more Berlin that it is undesirable for the working group to progress more
than one data plane encapsulation. Although consensus could not be than one data plane encapsulation. Although consensus could not be
reached on the list, the overall consensus was for a single reached on the list, the overall consensus was for a single
encapsulation [RFC2418], Section 3.3. encapsulation [RFC2418], Section 3.3.
Nonetheless there has been resistance to converging on a single Nonetheless there has been resistance to converging on a single
encapsulation format. encapsulation format.
2. Design Team Goals 2. Design Team Goals
As communicated by the WG Chairs, the design team should take one of As communicated by the WG Chairs, the design team (DT) should take
the proposed encapsulations and enhance it to address the technical one of the proposed encapsulations and enhance it to address the
concerns. The simple evolution of deployed networks as well as technical concerns. The simple evolution of deployed networks as
applicability to all locations in the NVO3 architecture are goals. well as applicability to all locations in the NVO3 architecture are
The DT should specifically avoid a design that is burdensome on goals. The DT should specifically avoid a design that is burdensome
hardware implementations but should allow future extensibility. The on hardware implementations but should allow future extensibility.
chosen design should also operate well with ICMP and in ECMP The chosen design should also operate well with ICMP and in ECMP
environments. If further extensibility is required, then it should environments. If further extensibility is required, then it should
be done in such a manner that it does not require the consent of an be done in such a manner that it does not require the consent of an
entity outside of the IETF. entity outside of the IETF.
Internet-Draft NVO3 Encapsulation Considerations
3. Terminology 3. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
4. Abbreviations and Acronyms 4. Abbreviations and Acronyms
DT NVO3 encapsulation Design Team DT NVO3 encapsulation Design Team
EVPN Ethernet VPN [RFC8365]
GUE Generic UDP Encapsulation [I-D.ietf-intarea-gue]
NVO3 Network Virtualization Overlays over Layer 3 NVO3 Network Virtualization Overlays over Layer 3
OAM Operations, Administration, and Maintenance OAM Operations, Administration, and Maintenance
TLV Type, Length, and Value TLV Type, Length, and Value
VNI Virtual Network Identifier VNI Virtual Network Identifier
NVE Network Virtualization Edge NVE Network Virtualization Edge
NVA Network Virtualization Authority NVA Network Virtualization Authority
NIC Network interface card NIC Network interface card
TCAM Ternary Content-Addressable Memory TCAM Ternary Content-Addressable Memory
Transit device - Underlay network devices between NVE(s). Transit device - Underlay network devices between NVE(s).
Internet-Draft NVO3 Encapsulation Considerations
5. Issues with Current Encapsulations 5. Issues with Current Encapsulations
The following subsections describe issues with current encapsulations The following subsections describe issues with current encapsulations
as summarized by the WG Chairs: as summarized by the WG Chairs:
5.1. Geneve 5.1. Geneve
- Can't be implemented cost-effectively in all use cases because - Can't be implemented cost-effectively in all use cases because
variable length header and order of the TLVs makes is costly (in variable length header and order of the TLVs makes is costly (in
terms of number of gates) to implement in hardware. terms of number of gates) to implement in hardware.
- Header doesn't fit into largest commonly available parse buffer - Header doesn't fit into largest commonly available parse buffer
(256 bytes in NIC). Cannot justify doubling buffer size unless it is (256 bytes in NIC). Cannot justify doubling buffer size unless it is
mandatory for hardware to process additional option fields. mandatory for hardware to process additional option fields.
5.2. GUE 5.2. GUE (Generic UDP Encapsulation)
- There were a significant number of objections related to the - There were a significant number of objections to GUE
complexity of implementation in hardware, similar to those noted for [I-D.ietf-intarea-gue] related to the complexity of implementation in
Geneve above. hardware, similar to those noted for Geneve above.
5.3. VXLAN-GPE 5.3. VXLAN-GPE
- GPE is not day-1 backwards compatible with VXLAN. Although the - GPE is not day-1 backwards compatible with VXLAN [RFC7348].
frame format is similar, it uses a different UDP port, so would Although the frame format is similar, it uses a different UDP port,
require changes to existing implementations even if the rest of the so would require changes to existing implementations even if the rest
GPE frame is the same. of the GPE frame is the same.
- GPE is insufficiently extensible. Numerous extensions and options - GPE is insufficiently extensible. Numerous extensions and options
have been designed for GUE and Geneve. Note that these have not yet have been designed for GUE and Geneve. Note that these have not yet
been validated by the WG. been validated by the WG.
- Security, e.g., of the VNI, has not been addressed by GPE. - Security, e.g., of the VNI, has not been addressed by GPE.
Although a shim header could be used for security and other Although a shim header could be used for security and other
extensions, this has not been defined yet and its implications on extensions, this has not been defined yet and its implications on
offloading in NICs are not understood. offloading in NICs are not understood.
Internet-Draft NVO3 Encapsulation Considerations
6. Common Encapsulation Considerations 6. Common Encapsulation Considerations
6.1. Current Encapsulations 6.1. Current Encapsulations
Appendix A includes a detailed comparison between the three proposed Appendix A includes a detailed comparison between the three proposed
encapsulations. The comparison indicates several common properties encapsulations. The comparison indicates several common properties
but also three major differences among the encapsulations: but also three major differences among the encapsulations:
- Extensibility: Geneve and GUE were defined with built-in - Extensibility: Geneve and GUE were defined with built-in
extensibility, while VXLAN-GPE is not inherently extensible. Note extensibility, while VXLAN-GPE is not inherently extensible. Note
skipping to change at page 7, line 47 skipping to change at page 7, line 45
In several scenarios it is beneficial to make information about the In several scenarios it is beneficial to make information about the
path a packet took through the network or through a network device as path a packet took through the network or through a network device as
well as associated telemetry information available to the operator. well as associated telemetry information available to the operator.
This includes not only tasks like debugging, troubleshooting, and This includes not only tasks like debugging, troubleshooting, and
network planning and optimization but also policy or service level network planning and optimization but also policy or service level
agreement compliance checks. agreement compliance checks.
Packet scheduling algorithms, especially for balancing traffic across Packet scheduling algorithms, especially for balancing traffic across
equal cost paths or links, often leverage information contained equal cost paths or links, often leverage information contained
within the packet, such as protocol number, IP-address, or MAC- within the packet, such as protocol number, IP address, or MAC
address. Probe packets would thus either need to be sent between the address. Probe packets would thus either need to be sent between the
exact same endpoints with the exact same parameters, or probe packets exact same endpoints with the exact same parameters, or probe packets
would need to be artificially constructed as "fake" packets and would need to be artificially constructed as "fake" packets and
Internet-Draft NVO3 Encapsulation Considerations
inserted along the path. Both approaches are often not feasible from inserted along the path. Both approaches are often not feasible from
an operational perspective, be it that access to the end-system is an operational perspective, be it that access to the end-system is
not feasible, or that the diversity of parameters and associated not feasible, or that the diversity of parameters and associated
probe packets to be created is simply too large. An extension probe packets to be created is simply too large. An extension
providing an in-band telemetry mechanism is an alternative in those providing an in-band telemetry mechanism [I-D.ietf-ippm-ioam-data] is
cases. an alternative in those cases.
6.2.2. Security/Integrity Extensions 6.2.2. Security/Integrity Extensions
Since the currently proposed NVO3 encapsulations do not protect their Since the currently proposed NVO3 encapsulations do not protect their
headers, a single bit corruption in the VNI field could deliver a headers, a single bit corruption in the VNI field could deliver a
packet to the wrong tenant. Extensions are needed to use any packet to the wrong tenant. Extension headers are needed to use any
sophisticated security. sophisticated security.
The possibility of VNI spoofing with an NVO3 protocol is exacerbated The possibility of VNI spoofing with an NVO3 protocol is exacerbated
by using UDP. Systems typically have no restrictions on applications by using UDP. Systems typically have no restrictions on applications
being able to send to any UDP port so an unprivileged application can being able to send to any UDP port so an unprivileged application can
trivially spoof VXLAN packets for instance, including using arbitrary trivially spoof VXLAN [RFC7348] packets for instance, including using
VNIs. arbitrary VNIs.
One can envision HMAC-like support in some NVO3 extension to One can envision HMAC-like support in an NVO3 extension to
authenticate the header and the outer IP addresses, thereby authenticate the header and the outer IP addresses, thereby
preventing attackers from injecting packets with spoofed VNIs. preventing attackers from injecting packets with spoofed VNIs.
Another aspect of security is payload security. Essentially this is Another aspect of security is payload security. Essentially this is
to make packets that look like IP|UDP|NVO3 Encap|DTLS/IPSEC-ESP to make packets that look like IP|UDP|NVO3 Encap|DTLS/IPSEC-ESP
Extension|payload. This is nice since we still have the UDP header Extension|payload. This is desireable since we still have the UDP
for ECMP, the NVO3 header is in plain text so it can be read by header for ECMP, the NVO3 header is in plain text so it can be read
network elements, and different security or other payload transforms by network elements, and different security or other payload
can be supported on a single UDP port (we don't need a separate UDP transforms can be supported on a single UDP port (we don't need a
for DTLS/IPSEC). separate UDP port for DTLS/IPSEC).
6.2.3 Group Base Policy 6.2.3 Group Based Policy
Another use case would be to carry the Group Based Policy (GBP) Another use case would be to carry the Group Based Policy (GBP)
source group information within a NVO3 header extension in a similar source group information within a NVO3 header extension in a similar
manner as has been implemented for VXLAN manner as has been implemented for VXLAN
[I-D.smith-vxlan-group-policy]. This allows various forms of policy [I-D.smith-vxlan-group-policy]. This allows various forms of policy
such as access control and QoS to be applied between abstract groups such as access control and QoS to be applied between abstract groups
rather than coupled to specific endpoint addresses. rather than coupled to specific endpoint addresses.
Internet-Draft NVO3 Encapsulation Considerations
6.3. Hardware Considerations 6.3. Hardware Considerations
Hardware restrictions should be taken into consideration along with Hardware restrictions should be taken into consideration along with
future hardware enhancements that may provide more flexible metadata future hardware enhancements that may provide more flexible metadata
processing. However, the set of options that need to and will be processing. However, the set of options that need to and will be
implemented in hardware will be a subset of what is implemented in implemented in hardware will be a subset of what is implemented in
software, since software NVEs are likely to grow features, and hence software, since software NVEs are likely to grow features, and hence
option support, at a more rapid rate. option support, at a more rapid rate.
We note that it is hard to predict which options will be implemented We note that it is hard to predict which options will be implemented
skipping to change at page 9, line 32 skipping to change at page 9, line 30
purposes. purposes.
A result of this is that it doesn't look useful to prescribe some A result of this is that it doesn't look useful to prescribe some
order of the option so that the ones that are likely to be order of the option so that the ones that are likely to be
implemented in hardware come first; we can't decide such an order implemented in hardware come first; we can't decide such an order
when we define the options, however a control plane can enforce such when we define the options, however a control plane can enforce such
an order for some hardware implementation. an order for some hardware implementation.
We do know that hardware needs to initially be able to efficiently We do know that hardware needs to initially be able to efficiently
skip over the NVO3 header to find the inner payload. That is needed skip over the NVO3 header to find the inner payload. That is needed
both for NICs doing TCP offload and for transit devices and NVEs both for NICs implementing various TCP offload mechanisms and for
applying policy/ACLs to the inner payload. transit devices and NVEs applying policy/ACLs to the inner payload.
6.4. Extension Size 6.4. Extension Size
Extension header length has a significant impact on hardware and Extension header length has a significant impact on hardware and
software implementations. A total header length that is too small software implementations. A total header length that is too small
will unnecessarily constrained software flexibility. A total header will unnecessarily constrain software flexibility. A total header
length that is too large will place a nontrivial cost on hardware length that is too large will place a nontrivial cost on hardware
implementations. Thus, the design team recommends that there be a implementations. Thus, the DT recommends that there be a minimum and
minimum and maximum total extension header length selected. The maximum total extension header length specified. The maximum total
maximum total header length is determined by the bits allocated for header length is determined by the size of the bit field allocated
the total extension header length field. The risk with this approach for the total extension header length field. The risk with this
is that it may be difficult to extend the total header size in the approach is that it may be difficult to extend the total header size
future. The minimum total header length is determined by a in the future. The minimum total header length is determined by a
requirement in the specifications that all implementations must meet. requirement in the specifications that all implementations must meet.
The risk with this approach is that all implementations will only The risk with this approach is that all implementations will only
implement the minimum total header length which would then become the implement the minimum total header length which would then become the
de facto maximum total header length. The recommended minimum total de facto maximum total header length. The recommended minimum total
header length is 64 bytes. header length is 64 bytes.
Single Extension size should always be 4 byte aligned. The size of an extension header should always be 4 byte aligned.
Internet-Draft NVO3 Encapsulation Considerations
The maximum length of a single option should be large enough to meet The maximum length of a single option should be large enough to meet
the different extension use case requirements, e.g., in-band the different extension use case requirements, e.g., in-band
telemetry and future use. telemetry and future use.
6.5. Extension Ordering 6.5. Ordering of Extension Headers
To support hardware nodes at the tunnel endpoint or at a transit To support hardware nodes at the target NVE or at a transit device
device that can process one or a few extensions TLVs in TCAM, a that can process one or a few extension headers in TCAM, a control
control plane in such a deployment can signal a capability to ensure plane in such a deployment can signal a capability to ensure a
a specific TLV will always appear in a specific order, for example specific extension header will always appear in a specific order, for
the first one in the packet. example the first one in the packet.
The order of the TLVs should be hardware friendly for both the sender The order of the extension headers should be hardware friendly for
and the receiver and possibly the transit device also. both the sender and the receiver and possibly the transit device
also.
Transit devices doesn't participate in control plane communication Transit devices don't participate in control plane communication
between the end points and are not required to process the options; between the end points and are not required to process the extension
however, if they do, they need to process only a small subset of headers; however, if they do, they may need to process only a small
options that will be consumed by tunnel endpoints. subset of extension headers that will be consumed by target NVEs.
6.6. TLV versus Bit Fields 6.6. TLV versus Bit Fields
If there is a well-known initial set of options that are likely to be If there is a well-known initial set of options that are likely to be
implemented in software and in hardware, it can be efficient to use implemented in software and in hardware, it can be efficient to use
the bit-field approach as in GUE. However, as described in section the bit fields approach as in GUE. However, as described in section
6.3, if options are added over time and different subsets of options 6.3, if options are added over time and different subsets of options
are likely to be implemented in different pieces of hardware, then it are likely to be implemented in different pieces of hardware, then it
would be hard for the IETF to specify which options should get the would be hard for the IETF to specify which options should get the
early bit fields. TLVs are a lot more flexible, which avoids the early bit fields. TLVs are a lot more flexible, which avoids the
need to determine the relative importance different options. need to determine the relative importance different options.
However, general TLV of arbitrary order, size, and repetition of the However, general TLV of arbitrary order, size, and repetition of the
same order is difficult to implement in hardware. A middle ground is same order is difficult to implement in hardware. A middle ground is
to use TLVs with restrictions on their size and alignment, observing to use TLVs with restrictions on their size and alignment, observing
that individual TLVs can have a fixed length, and support in the that individual TLVs can have a fixed length, and support via the
control plane such that an NVE will only receive options that it control plane a method such that an NVE will only receive options
needs and implements. The control plane approach can potentially be that it needs and implements. The control plane approach can
used to control the order of the TLVs sent to a particular NVE. Note potentially be used to control the order of the TLVs sent to a
that transit devices are not likely to participate in the control particular NVE. Note that transit devices are not likely to
plane; hence, to the extent that they need to participate in option participate in the control plane; hence, to the extent that they need
processing, they need more effort. Transit devices would have issues to participate in option processing, some other method must be used.
with future GUE bits being defined for future options as well. Transit devices would have issues with future GUE bit fields being
defined for future options as well.
A benefit of TLVs from a hardware perspective is that they are self A benefit of TLVs from a hardware perspective is that they are self
describing, i.e., all the information is in the TLV. In a Bit fields describing, i.e., all the information is in the TLV. In a bit field
approach the hardware needs to look up the bit to determine the approach, the hardware needs to look up the bit to determine the
length of the data associated with the bit through some separate length of the data associated with the bit through some separate
Internet-Draft NVO3 Encapsulation Considerations
table, which would add hardware complexity. table, which would add hardware complexity.
There are use cases where multiple modules of software are running on There are use cases where multiple modules of software are running on
an NVE. This can be modules such as a diagnostic module by one an NVE. This can be modules such as a diagnostic module by one
vendor that does packet sampling and another module from a different vendor that does packet sampling and another module from a different
vendor that does a firewall. Using a TLV format, it is easier to vendor that implements a firewall. Using a TLV format, it is easier
have different software modules process different TLVs, which could to have different software modules process different TLVs, which
be standard extensions or vendor specific extensions defined by the could be standard extensions or vendor specific extensions defined by
different vendors, without conflicting with each other. This can the different vendors, without conflicting with each other. This can
help with hardware modularity as well. There are some help with hardware modularity as well. There are some
implementations with options that allows different software, like MAC implementations with options that allows different software modules,
learning and security, to handle different options. like MAC learning and security, to process different options.
6.7. Control Plane Considerations 6.7. Control Plane Considerations
Given that we want to allow considerable flexibility and Given that we want to allow considerable flexibility and
extensibility for, e.g., software NVEs, yet be able to support extensibility for, e.g., software NVEs, yet be able to support
important extensions in less flexible contexts such as hardware NVEs, important extensions in less flexible contexts such as hardware NVEs,
it is useful to consider the control plane. By control plane in this it is useful to consider the control plane. By control plane in this
section we mean both protocols, such as EVPN and others, and section we mean both protocols, such as EVPN [RFC8365] and others,
deployment specific configuration. and deployment specific configuration.
If each NVE can express in the control plane that they only care If each NVE can express in the control plane that it only supports
about particular extensions (could be a single extension, or a few), certain extensions (could be a single extension, or a few), and the
and the source NVEs only include requested extensions in the NVO3 source NVEs only include supported extensions in the NVO3 packets,
packets, then the target NVE can both use a simpler parser (e.g., a then the target NVE can both use a simpler parser (e.g., a TCAM might
TCAM might be usable to look for a single NVO3 extension) and the be usable to look for a single NVO3 extension) and the depth of the
depth of the inner payload in the NVO3 packet will be minimized. inner payload in the NVO3 packet will be minimized. Furthermore, if
Furthermore, if the target NVE cares about a few extensions and can the target NVE cares about a few extensions and can express in the
express in the control plane the desired order of those extensions in control plane the desired order of those extensions in the NVO3
the NVO3 packets, then it can provide useful functionality with packets, then it can provide useful functionality with simplified
minimal hardware requirements. hardware requirements for the target NVE.
Note that transit devices that are not aware of the NVO3 extensions Note that transit devices that are not aware of the NVO3 extensions
somewhat benefit from such an approach, since the inner payload is somewhat benefit from such an approach, since the inner payload is
less deep in the packet if no extraneous extensions are included in less deep in the packet if no extraneous extension headers are
the packet. In general, a transit device is not likely to included in the packet. In general, a transit device is not likely
participate in the NVO3 control plane. (However, configuration to participate in the NVO3 control plane. (However, configuration
mechanisms can take into account limitations of the transit devices mechanisms can take into account limitations of the transit devices
used in particular deployments.) used in particular deployments.)
Note that in this approach different NVEs could desire different Note that with this approach different NVEs could desire different
extensions or sets of extensions, which means that the source NVE extensions or sets of extensions, which means that the source NVE
needs to be able to place different sets of extensions in different needs to be able to place different sets of extensions in different
NVO3 packets, and perhaps in different order. It also assumes that NVO3 packets, and perhaps in different order. It also assumes that
underlay multicast or replication servers are not used together with underlay multicast or replication servers are not used together with
NVO3 extensions. NVO3 extension headers.
Internet-Draft NVO3 Encapsulation Considerations
There is a need to consider mandatory extensions versus optional There is a need to consider mandatory extensions versus optional
extensions. Mandatory extensions require the receiver to drop the extensions. Mandatory extensions require the receiver to drop the
packet if the extension is unknown. A control plane mechanism can packet if the extension is unknown. A control plane mechanism can
prevent the need for dropping unknown extensions, since they would prevent the need for dropping unknown extensions, since they would
not be included to targets that do not support them. not be included to target NVEs that do not support them.
The control planes defined today need to add the ability to describe The control planes defined today need to add the ability to describe
the different encapsulations. Thus, perhaps EVPN and any other the different encapsulations. Thus, perhaps EVPN [RFC8365] and any
control plane protocol that the IETF defines should have a way to other control plane protocol that the IETF defines should have a way
enumerate the supported NVO3 extensions and their order. to indicate the supported NVO3 extensions and their order, for each
of the encapsulations supported.
The WG should consider developing a separate draft on guidance for The WG should consider developing a separate draft on guidance for
option processing and control plane participation. This should option processing and control plane participation. This should
provide examples/guidance on range of usage models and deployments provide examples/guidance on range of usage models and deployments
scenarios for specific options and ordering that are relevant for scenarios for specific options and ordering that are relevant for
that specific deployment. This includes end points and middle boxes that specific deployment. This includes end points and middle boxes
using the options. So, having the control plane negotiate the using the options. So, having the control plane negotiate the
constraints is the most appropriate and flexible way to address these constraints is the most appropriate and flexible way to address these
requirements. requirements.
6.8. Split NVE 6.8. Split NVE
If the working group sees a need for having the hosts send and If the working group sees a need for having the hosts send and
receive options in a split NVE case, this is possible using any of receive options in a split NVE case [RFC8394], this is possible using
the existing extensible encapsulations (Geneve, GUE, GPE+NSH) by any of the existing extensible encapsulations (Geneve, GUE, GPE+NSH)
defining a way to carry those over other transports. NSH can already by defining a way to carry those over other transports. NSH can
be used over different transports. already be used over different transports.
If we need to do this with other encapsulations it can be done by If we need to do this with other encapsulations it can be done by
defining an Ether type for other encapsulations so that it can be defining an Ethertype for other encapsulations so that it can be
carried over Ethernet and 802.1Q. carried over Ethernet and 802.1Q.
If we need to carry other encapsulations over MPLS, it would require If we need to carry other encapsulations over MPLS, it would require
an EVPN control plane to signal that other encapsulation header + an EVPN control plane to signal that other encapsulation header +
options will be present in front of the L2 packet. The VNI can be options will be present in front of the L2 packet. The VNI can be
ignored in the header, and the MPLS label will be the one used to ignored in the header, and the MPLS label will be the one used to
identify the EVPN L2 instance. identify the EVPN L2 instance.
6.9. Larger VNI Considerations 6.9. Larger VNI Considerations
We discussed whether we should make the VNI 32-bits or larger. The We discussed whether we should make the VNI 32-bits or larger. The
benefit of a 24-bit VNI would be to avoid unnecessary changes with benefit of a 24-bit VNI would be to avoid unnecessary changes with
existing proposals and implementations that are almost all, if not existing proposals and implementations that are almost all, if not
all, using 24-bit VNI. If we need a larger VNI, an extension can be all, using 24-bit VNI. If we need a larger VNI, an extension can be
used to support that. used to support that.
Internet-Draft NVO3 Encapsulation Considerations
7. Design Team Recommendations 7. Design Team Recommendations
We concluded that Geneve is most suitable as a starting point for a We concluded that Geneve is most suitable as a starting point for a
proposed standard for network virtualization, for the following proposed standard for network virtualization, for the following
reasons: reasons:
1. We studied whether VNI should be in the base header or in 1. We studied whether VNI should be in the base header or in an
extensions and whether it should be 24-bit or 32-bit. The design extension header and whether it should be a 24-bit or 32-bit field.
team agreed that VNI is critical information for network The design team agreed that VNI is critical information for network
virtualization and MUST be present in all packets. The design team virtualization and MUST be present in all packets. The design team
also agreed that a 24-bit VNI matches the existing widely used also agreed that a 24-bit VNI matches the existing widely used
encapsulation formats, i.e., VxLAN and NVGRE, and hence is more encapsulation formats, i.e., VXLAN [RFC7348] and NVGRE [RFC7637], and
suitable to use going forward. hence is more suitable to use going forward.
2. The Geneve header has the total options length which allows 2. The Geneve header has the total options length which allows
skipping over the options for NIC offload operations and will allow skipping over the options for NIC offload operations and will allow
transit devices to view flow information in the inner payload. transit devices to view flow information in the inner payload.
3. We considered the option of using NSH [RFC8300] with VxLAN-GPE 3. We considered the option of using NSH [RFC8300] with VXLAN-GPE
but given that NSH is targeted at service chaining and contains but given that NSH is targeted at service chaining and contains
service chaining information, it is less suitable for the network service chaining information, it is less suitable for the network
virtualization use case. The other downside for VxLAN-GPE was lack virtualization use case. The other downside for VXLAN-GPE was lack
of header length in VxLAN-GPE which makes skipping over the headers of a header length in VXLAN-GPE which makes skipping over the headers
to process inner payload more difficult. Total Option Length is to process inner payload more difficult. Total Option Length is
present in Geneve. It is not possible to skip any options in the present in Geneve. It is not possible to skip any options in the
middle with VxLAN-GPE. In principle a split between a base header middle with VXLAN-GPE. In principle a split between a base header
and a header with options is interesting (whether that options header and a header with options is interesting (whether that options header
is NSH or some new header without ties to a service path). We is NSH or some new header without ties to a service path). We
explored whether it would make sense to either use NSH for this, or explored whether it would make sense to either use NSH for this, or
define a new NVO3 options header. However, we observed that this define a new NVO3 options header. However, we observed that this
makes it slightly harder to find the inner payload since the length makes it slightly harder to find the inner payload since the length
field is not in the NVO3 header itself. Thus, one more field would field is not in the NVO3 header itself. Thus, one more field would
have to be extracted to compute the start of the inner payload. have to be extracted to compute the start of the inner payload.
Also, if the experience with IPv6 extension headers is a guide, there Also, if the experience with IPv6 extension headers is a guide, there
would be a risk that key pieces of hardware might not implement the would be a risk that key pieces of hardware might not implement the
options header, resulting in future calls to deprecate its use. options header, resulting in future calls to deprecate its use.
Making the options part of the base NVO3 header has less of those Making the options part of the base NVO3 header has less of those
issues. Even though the implementation of any particular option can issues. Even though the implementation of any particular option can
not be predicted ahead of time, the option mechanism and ability to not be predicted ahead of time, the option mechanism and ability to
skip the options is likely to be broadly implemented. skip the options is likely to be broadly implemented.
4. We compared the TLV vs Bit-fields style extension and it was 4. We compared the TLV vs bit fields style extension and it was
deemed that parsing both TLV and bit-fields is expensive and while deemed that parsing both TLV and bit fields is expensive and while
bit-fields may be simpler to parse, it is also more restrictive and bit fields may be simpler to parse, it is also more restrictive and
requires guessing which extensions will be widely implemented so they requires guessing which extensions will be widely implemented so they
can get early bit assignments, given that half the bits are already can get early bit assignments, given that half the bits are already
assigned in GUE, a widely deployed extension may appear in a flag assigned in GUE, a widely deployed extension may appear in a flag
extension, and this will require extra processing, to dig the flag extension, and this will require extra processing, to dig the flag
from the flag extension and then look for the extension itself. Also from the flag extension and then look for the extension itself. Also
Bit-fields are not flexible enough to address the requirements from bit fields are not flexible enough to address the requirements from
Internet-Draft NVO3 Encapsulation Considerations
OAM, Telemetry, and security extensions, for variable length option OAM, Telemetry, and security extensions, for variable length option
and different subtypes of the same option. While TLV are more and different subtypes of the same option. While TLV are more
flexible, a control plane can restrict the number of option TLVs as flexible, a control plane can restrict the number of option TLVs as
well the order and size of the TLVs to make it simpler for a well the order and size of the TLVs to make it simpler for a
dataplane implementation to handle. dataplane implementation to handle.
5. We briefly discussed the multi-vendor NVE case, and the need to 5. We briefly discussed the multi-vendor NVE case, and the need to
allow vendors to put their own extensions in the NVE header. This is allow vendors to put their own extensions in the NVE header. This is
possible with TLVs. possible with TLVs.
6. We also agreed that the C bit in Geneve is helpful to allow a 6. We also agreed that the C bit in Geneve is helpful to allow a
receiver NVE to easily decide whether to process options or not, for receiver NVE to easily decide whether to process options or not, for
example a UUID based packet trace, and how an optional extension such example a UUID based packet trace, and how an optional extension such
as that can be ignored by a receiver NVE and thus make it easy for as that can be ignored by a receiver NVE and thus make it easy for
NVE to skip over the options. Thus, the C-bit remains as defined in NVE to skip over the options. Thus, the C bit remains as defined in
Geneve. Geneve.
7. There are already some extensions that are being discussed (see 7. There are already some extensions that are being discussed (see
section 6.2) of varying sizes. By using Geneve option it is possible section 6.2) of varying sizes. By using Geneve options it is possible
to get in band parameters like switch id, ingress port, egress port, to get in band parameters like switch id, ingress port, egress port,
internal delay, and queue in telemetry defined extension TLV from internal delay, and queue in telemetry defined extension TLV from
switches. It is also possible to add Security extension TLVs like switches. It is also possible to add security extension TLVs like
HMAC and DTLS/IPSEC to authenticate the Geneve packet header and HMAC and DTLS/IPSEC to authenticate the Geneve packet header and
secure the Geneve packet payload by software or hardware tunnel secure the Geneve packet payload by software or hardware tunnel
endpoints. A Group Based Policy extension TLV can be carried as endpoints. A Group Based Policy extension TLV can be carried as
well. well.
8. There are implemented Geneve options today in production. There 8. There are already implementations of Geneve options deployed in
are as well new hardware supporting Geneve TLV parsing. In addition, production networks as of this writing. There are as well new
an In-band Telemetry (INT) specification is being developed by P4.org hardware supporting Geneve TLV parsing. In addition, an In-band
that illustrates the option of INT meta data carried over Geneve. Telemetry [INT] specification is being developed by P4.org that
OVN/OVS have also defined some option TLV(s) for Geneve. illustrates the option of INT meta data carried over Geneve. OVN/OVS
have also defined some option TLV(s) for Geneve.
9. The DT has addressed the usage models while considering the 9. The DT has addressed the usage models while considering the
requirements and implementations in general that includes software requirements and implementations in general that includes software
and hardware. and hardware.
There seems to be interest to standardize some well-known secure There seems to be interest to standardize some well-known secure
option TLVs to secure the header and payload to guarantee option TLVs to secure the header and payload to guarantee
encapsulation header integrity and tenant data privacy. The design encapsulation header integrity and tenant data privacy. The
team recommends that the working group consider standardizing such design team recommends that the working group consider
option(s). standardizing such option(s).
We recommend the following enhancements to Geneve to make it more
suitable to hardware and yet provide the flexibility for software:
We would propose a text such as, while TLV are more flexible, a
control plane can restrict the number of option TLVs as well the
order and size of the TLVs to make it simpler for a data plane
implementation in software or hardware to handle. For example, there
Internet-Draft NVO3 Encapsulation Considerations
may be some critical information such as a secure hash that must be We recommend the following enhancements to Geneve to make it more
processed in a certain order at lowest latency. suitable to hardware and yet provide the flexibility for software:
A control plane can negotiate a subset of option TLVs and certain TLV We would propose a text such as, while TLV are more flexible, a
ordering, as well as limiting the total number of option TLVs present control plane can restrict the number of option TLVs as well the
in the packet, for example, to allow for hardware capable of order and size of the TLVs to make it simpler for a data plane
processing fewer options. Hence, the control plane needs to have the implementation in software or hardware to handle. For example,
ability to describe the supported TLVs subset and their order. there may be some critical information such as a secure hash that
must be processed in a certain order at lowest latency.
The Geneve draft could specify that the subset and order of option A control plane can negotiate a subset of option TLVs and certain
TLVs should be configurable for each remote NVE in the absence of a TLV ordering, as well as limiting the total number of option TLVs
protocol control plane. present in the packet, for example, to allow for hardware capable
of processing fewer options. Hence, the control plane needs to
have the ability to describe the supported TLVs subset and their
order.
We recommend that Geneve follow fragmentation recommendations in The Geneve draft should specify that the subset and order of
overlay services like PWE3 and the L2/L3 VPN recommendations to option TLVs should be configurable for each remote NVE in the
guarantee larger MTU for the tunnel overhead ([RFC3985] Section 5.3). absence of a protocol control plane.
We request that Geneve provide a recommendation for critical bit We recommend that Geneve follow fragmentation recommendations in
processing - text could specify how critical bits can be used with overlay services like PWE3 and the L2/L3 VPN recommendations to
control plane specifying the critical options. guarantee larger MTU for the tunnel overhead ([RFC3985] Section
5.3).
Given that there is a telemetry option use case for a length of 256 We request that Geneve provide a recommendation for critical bit
bytes, we recommend that Geneve increase the Single TLV option length processing - text could specify how critical bits can be used with
to 256. control plane specifying the critical options.
We request that Geneve address Requirements for OAM considerations Given that there is a telemetry option use case for a length of
for alternate marking and for performance measurements that need 2 256 bytes, we recommend that Geneve increase the Single TLV option
bits in the header and clarify the need for the current OAM bit in length to 256.
the Geneve Header.
We recommend that the WG work on security options for Geneve. We request that Geneve address Requirements for OAM considerations
for alternate marking and for performance measurements that need a
2 bit field in the header and clarify the need for the current OAM
bit in the Geneve Header.
Internet-Draft NVO3 Encapsulation Considerations We recommend that the WG work on security options for Geneve.
8. Acknowledgements 8. Acknowledgements
The authors would like to thank Tom Herbert for providing the The authors would like to thank Tom Herbert for providing the
motivation for the Security/Integrity extension, and for his valuable motivation for the Security/Integrity extension, and for his valuable
comments, and would like to thank T. Sridhar for his valuable comments, T. Sridhar for his valuable comments and feedback, and
comments and feedback. Anoop Ghanwani for his extensive comments.
9. Security Considerations 9. Security Considerations
This document does not introduce any additional security constraints. This document does not introduce any additional security constraints.
10. IANA Considerations 10. IANA Considerations
This document has no actions for IANA. This document requires no IANA actions.
Internet-Draft NVO3 Encapsulation Considerations
11. References 11. References
11.1 Normative References 11.1 Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI Requirement Levels", BCP 14, RFC 2119, DOI
10.17487/RFC2119, March 1997, <https://www.rfc- 10.17487/RFC2119, March 1997, <https://www.rfc-
editor.org/info/rfc2119>. editor.org/info/rfc2119>.
skipping to change at page 17, line 31 skipping to change at page 18, line 29
[I-D.herbert-gue-extensions] Herbert, T., Yong, L., and F. Templin, [I-D.herbert-gue-extensions] Herbert, T., Yong, L., and F. Templin,
"Extensions for Generic UDP Encapsulation", "Extensions for Generic UDP Encapsulation",
draft-herbert-gue-extensions-01 (work in progress), October draft-herbert-gue-extensions-01 (work in progress), October
2016. 2016.
[I-D.ietf-intarea-gue] Herbert, T., Yong, L., and O. Zia, "Generic [I-D.ietf-intarea-gue] Herbert, T., Yong, L., and O. Zia, "Generic
UDP Encapsulation", draft-ietf-intarea-gue (work in UDP Encapsulation", draft-ietf-intarea-gue (work in
progress), October 2019. progress), October 2019.
[I-D.ietf-ippm-ioam-data] F. Brockers, S. Bhandari, T. Mizrahi, "Data
Fields for In-situ OAM", draft-ietf-ippm-ioam-data (work in
progress), June 2021.
[I-D.ietf-nvo3-vxlan-gpe] Maino, F., Kreeger, L., and U. Elzur, [I-D.ietf-nvo3-vxlan-gpe] Maino, F., Kreeger, L., and U. Elzur,
"Generic Protocol Extension for VXLAN", "Generic Protocol Extension for VXLAN",
draft-ietf-nvo3-vxlan-gpe (work in progress), March 2021. draft-ietf-nvo3-vxlan-gpe (work in progress), March 2021.
[I-D.smith-vxlan-group-policy] Smith, M. and L. Kreeger, "VXLAN Group [I-D.smith-vxlan-group-policy] Smith, M. and L. Kreeger, "VXLAN Group
Policy Option", draft-smith-vxlan-group-policy-05 (work in Policy Option", draft-smith-vxlan-group-policy-05 (work in
progress), October 2018. progress), October 2018.
[INT] P4.org, "In-band Network Telemetry (INT) Dataplane
Specification", November 2020,
https://p4.org/p4-spec/docs/INT_v2_1.pdf
[RFC2418] Bradner, S., "IETF Working Group Guidelines and [RFC2418] Bradner, S., "IETF Working Group Guidelines and
Procedures", BCP 25, RFC 2418, DOI 10.17487/RFC2418, Procedures", BCP 25, RFC 2418, DOI 10.17487/RFC2418,
September 1998, <https://www.rfc-editor.org/info/rfc2418>. September 1998, <https://www.rfc-editor.org/info/rfc2418>.
[RFC3985] Bryant, S., Ed. and P. Pate, Ed., "Pseudo Wire Emulation [RFC3985] Bryant, S., Ed. and P. Pate, Ed., "Pseudo Wire Emulation
Edge-to-Edge (PWE3) Architecture", RFC 3985, DOI Edge-to-Edge (PWE3) Architecture", RFC 3985, DOI
10.17487/RFC3985, March 2005, <https://www.rfc- 10.17487/RFC3985, March 2005,
editor.org/info/rfc3985>. <https://www.rfc-editor.org/info/rfc3985>.
[RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
eXtensible Local Area Network (VXLAN): A Framework for
Overlaying Virtualized Layer 2 Networks over Layer 3
Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
<https://www.rfc- editor.org/info/rfc7348>.
[RFC7637] Garg, P., Ed., and Y. Wang, Ed., "NVGRE: Network
Virtualization Using Generic Routing Encapsulation", RFC
7637, DOI 10.17487/RFC7637, September 2015,
<https://www.rfc-editor.org/info/rfc7637>.
[RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., [RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed.,
"Network Service Header (NSH)", RFC 8300, DOI "Network Service Header (NSH)", RFC 8300, DOI
10.17487/RFC8300, January 2018, <https://www.rfc- 10.17487/RFC8300, January 2018,
editor.org/info/rfc8300>. <https://www.rfc-editor.org/info/rfc8300>.
Internet-Draft NVO3 Encapsulation Considerations [RFC8365] Sajassi, A., Ed., Drake, J., Ed., Bitar, N., Shekhar, R.,
Uttaro, J., and W. Henderickx, "A Network Virtualization
Overlay Solution Using Ethernet VPN (EVPN)", RFC 8365, DOI
10.17487/RFC8365, March 2018,
<https://www.rfc-editor.org/info/rfc8365>.
[RFC8394] Li, Y., Eastlake 3rd, D., Kreeger, L., Narten, T., and D.
Black, "Split Network Virtualization Edge (Split-NVE)
Control-Plane Requirements", RFC 8394, DOI
10.17487/RFC8394, May 2018,
<https://www.rfc-editor.org/info/rfc8394>.
[RFC8926] Gross, J., Ed., Ganga, I., Ed., and T. Sridhar, Ed., [RFC8926] Gross, J., Ed., Ganga, I., Ed., and T. Sridhar, Ed.,
"Geneve: Generic Network Virtualization Encapsulation", RFC "Geneve: Generic Network Virtualization Encapsulation", RFC
8926, DOI 10.17487/RFC8926, November 2020, 8926, DOI 10.17487/RFC8926, November 2020,
<https://www.rfc-editor.org/info/rfc8926>. <https://www.rfc-editor.org/info/rfc8926>.
Internet-Draft NVO3 Encapsulation Considerations
Appendix A: Encapsulations Comparison Appendix A: Encapsulations Comparison
A.1. Overview A.1. Overview
This section presents a comparison of the three NVO3 encapsulation This section presents a comparison of the three NVO3 encapsulation
proposals, Geneve, GUE, and VXLAN-GPE. The three encapsulations use proposals, Geneve, GUE, and VXLAN-GPE. The three encapsulations use
an outer UDP/IP transport. Geneve and VXLAN-GPE use an 8-octet an outer UDP/IP transport. Geneve and VXLAN-GPE use an 8-octet
header, while GUE uses a 4-octet header. In addition to the base header, while GUE uses a 4-octet header. In addition to the base
header, optional extensions may be included in the encapsulation, as header, optional extensions may be included in the encapsulation, as
discussed in Section A.2 below. discussed in Section A.2 below.
skipping to change at page 20, line 5 skipping to change at page 21, line 5
possible extension fields (proposed in [I-D.herbert-gue-extensions]), possible extension fields (proposed in [I-D.herbert-gue-extensions]),
and a set of flags in the GUE header that indicate for each extension and a set of flags in the GUE header that indicate for each extension
type whether it is present or not. type whether it is present or not.
TLV-based extensions, as defined in Geneve, provide the flexibility TLV-based extensions, as defined in Geneve, provide the flexibility
for a large number of possible extension types. Similar behavior can for a large number of possible extension types. Similar behavior can
be supported in NSH-over-VXLAN-GPE when using MD Type 2. The flag- be supported in NSH-over-VXLAN-GPE when using MD Type 2. The flag-
based approach taken in GUE strives to simplify implementations by based approach taken in GUE strives to simplify implementations by
defining a small number of possible extensions used in a fixed order. defining a small number of possible extensions used in a fixed order.
Internet-Draft NVO3 Encapsulation Considerations
The Geneve and GUE headers both include a length field, defining the The Geneve and GUE headers both include a length field, defining the
total length of the encapsulation, including the optional extensions. total length of the encapsulation, including the optional extensions.
The length field simplifies the parsing of transit devices that skip The length field simplifies the parsing of transit devices that skip
the encapsulation header without parsing its extensions. the encapsulation header without parsing its extensions.
A.2.3. Critical Extensions A.2.3. Critical Extensions
The Geneve encapsulation header includes the 'C' field, which The Geneve encapsulation header includes the 'C' field, which
indicates whether the current Geneve header includes critical indicates whether the current Geneve header includes critical
options, that is to say, options which must be parsed by the tunnel options, that is to say, options which must be parsed by the target
endpoint. If the endpoint is not able to process a critical option, NVE. If the endpoint is not able to process a critical option, the
the packet is discarded. packet is discarded.
A.2.4. Maximal Header Length A.2.4. Maximal Header Length
The maximal header length in Geneve, including options, is 260 The maximal header length in Geneve, including options, is 260
octets. GUE defines the maximal header to be 128 octets. VXLAN-GPE octets. GUE defines the maximal header to be 128 octets. VXLAN-GPE
uses a fixed-length header of 8 octets, unless NSH-over-VXLAN-GPE is uses a fixed-length header of 8 octets, unless NSH-over-VXLAN-GPE is
used, yielding an encapsulation header of up to 264 octets. used, yielding an encapsulation header of up to 264 octets.
A.3. Encapsulation Header A.3. Encapsulation Header
skipping to change at page 21, line 4 skipping to change at page 22, line 4
The VXLAN-GPE header includes the 'I' bit, indicating that the VNI The VXLAN-GPE header includes the 'I' bit, indicating that the VNI
field is valid in the current header. A similar indicator is defined field is valid in the current header. A similar indicator is defined
as a flag in the GUE header [I-D.herbert-gue-extensions]. as a flag in the GUE header [I-D.herbert-gue-extensions].
A.3.2. Next Protocol A.3.2. Next Protocol
The three encapsulation headers include a field that specifies the The three encapsulation headers include a field that specifies the
type of the next protocol header, which resides after the NVO3 type of the next protocol header, which resides after the NVO3
encapsulation header. The Geneve header includes a 16-bit field that encapsulation header. The Geneve header includes a 16-bit field that
uses the IEEE Ethertype convention. GUE uses an 8-bit field, which uses the IEEE Ethertype convention. GUE uses an 8-bit field, which
Internet-Draft NVO3 Encapsulation Considerations
uses the IANA Internet protocol numbering. The VXLAN-GPE header uses the IANA Internet protocol numbering. The VXLAN-GPE header
incorporates an 8-bit Next Protocol field, using a VXLAN-GPE-specific incorporates an 8-bit Next Protocol field, using a VXLAN-GPE-specific
registry, defined in [I-D.ietf-nvo3-vxlan-gpe]. registry, defined in [I-D.ietf-nvo3-vxlan-gpe].
The VXLAN-GPE header also includes the 'P' bit, which explicitly The VXLAN-GPE header also includes the 'P' bit, which explicitly
indicates whether the Next Protocol field is present in the current indicates whether the Next Protocol field is present in the current
header. header.
A.3.3. Other Header Fields A.3.3. Other Header Fields
skipping to change at page 22, line 4 skipping to change at page 23, line 6
protocols that are not OAM protocols. However, the control packet protocols that are not OAM protocols. However, the control packet
examples discussed in [I-D.ietf-intarea-gue] are OAM-related. examples discussed in [I-D.ietf-intarea-gue] are OAM-related.
Each of the three NVO3 encapsulation headers includes a 2-bit Version Each of the three NVO3 encapsulation headers includes a 2-bit Version
field, which is currently defined to be zero. field, which is currently defined to be zero.
The Geneve and VXLAN-GPE headers include reserved fields; 14 bits in The Geneve and VXLAN-GPE headers include reserved fields; 14 bits in
the Geneve header, and 27 bits in the VXLAN-GPE header are reserved. the Geneve header, and 27 bits in the VXLAN-GPE header are reserved.
A.4. Comparison Summary A.4. Comparison Summary
Internet-Draft NVO3 Encapsulation Considerations
The following table summarizes the comparison between the three NVO3 The following table summarizes the comparison between the three NVO3
encapsulations: encapsulations:
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
| | Geneve | GUE | VXLAN-GPE | | | Geneve | GUE | VXLAN-GPE |
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
| Outer transport| UDP/IP | UDP/IP | UDP/IP | | Outer transport| UDP/IP | UDP/IP | UDP/IP |
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
| Base header | 8 octets | 4 octets | 8 octets | | Base header | 8 octets | 4 octets | 8 octets |
| length | | | (16 octets | | length | | | (16 octets |
skipping to change at page 22, line 54 skipping to change at page 24, line 4
| Next protocol | - | - | + | | Next protocol | - | - | + |
| indicator | | | | | indicator | | | |
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
| OAM / control | OAM bit | Control bit | OAM bit | | OAM / control | OAM bit | Control bit | OAM bit |
| field | | | | | field | | | |
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
| Version field | 2 bits | 2 bits | 2 bits | | Version field | 2 bits | 2 bits | 2 bits |
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
| Reserved bits | 14 bits | - | 27 bits | | Reserved bits | 14 bits | - | 27 bits |
+----------------+----------------+----------------+----------------+ +----------------+----------------+----------------+----------------+
Figure 1: NVO3 Encapsulations Comparison Figure 1: NVO3 Encapsulations Comparison
Internet-Draft NVO3 Encapsulation Considerations
Contributors Contributors
The following co-authors have contributed to this document: The following co-authors have contributed to this document:
Ilango Ganga Intel Email: ilango.s.ganga@intel.com Ilango Ganga Intel Email: ilango.s.ganga@intel.com
Pankaj Garg Microsoft Email: pankajg@microsoft.com Pankaj Garg Microsoft Email: pankajg@microsoft.com
Rajeev Manur Broadcom Email: rajeev.manur@broadcom.com Rajeev Manur Broadcom Email: rajeev.manur@broadcom.com
Tal Mizrahi Marvell Email: talmi@marvell.com Tal Mizrahi Marvell Email: talmi@marvell.com
David Mozes Email: mosesster@gmail.com David Mozes Email: mosesster@gmail.com
Erik Nordmark Email: nordmark@sonic.net Erik Nordmark ZEDEDA Email: nordmark@sonic.net
Michael Smith Cisco Email: michsmit@cisco.com Michael Smith Cisco Email: michsmit@cisco.com
Sam Aldrin Google Email: aldrin.ietf@gmail.com Sam Aldrin Google Email: aldrin.ietf@gmail.com
Ignas Bagdonas Equinix Email: ibagdona.ietf@gmail.com Ignas Bagdonas Equinix Email: ibagdona.ietf@gmail.com
Internet-Draft NVO3 Encapsulation Considerations
Authors' Addresses Authors' Addresses
Sami Boutros (editor) Sami Boutros (editor)
Ciena Ciena
USA USA
Email: sboutros@ciena.com Email: sboutros@ciena.com
Donald E. Eastlake, 3rd (editor) Donald E. Eastlake, 3rd (editor)
Futurewei Technologies Futurewei Technologies
 End of changes. 90 change blocks. 
234 lines changed or deleted 226 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/