Re: [nvo3-dt-encap] Discussion summary - 1/10/2017

Tal Mizrahi <talmi@marvell.com> Mon, 23 January 2017 12:34 UTC

Return-Path: <talmi@marvell.com>
X-Original-To: nvo3-dt-encap@ietfa.amsl.com
Delivered-To: nvo3-dt-encap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D20D3129B2D for <nvo3-dt-encap@ietfa.amsl.com>; Mon, 23 Jan 2017 04:34:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4DL3ZX7taAB7 for <nvo3-dt-encap@ietfa.amsl.com>; Mon, 23 Jan 2017 04:34:27 -0800 (PST)
Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B048C129B2C for <nvo3-dt-encap@ietf.org>; Mon, 23 Jan 2017 04:34:27 -0800 (PST)
Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v0NCU47b026983; Mon, 23 Jan 2017 04:34:25 -0800
Received: from il-exch01.marvell.com ([199.203.130.101]) by mx0b-0016f401.pphosted.com with ESMTP id 28481j88uy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 23 Jan 2017 04:34:25 -0800
Received: from IL-EXCH01.marvell.com (10.4.102.220) by IL-EXCH01.marvell.com (10.4.102.220) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 23 Jan 2017 14:34:22 +0200
Received: from IL-EXCH01.marvell.com ([fe80::5d63:81cd:31e2:fc36]) by IL-EXCH01.marvell.com ([fe80::5d63:81cd:31e2:fc36%20]) with mapi id 15.00.1210.000; Mon, 23 Jan 2017 14:34:22 +0200
From: Tal Mizrahi <talmi@marvell.com>
To: Sami Boutros <sboutros@vmware.com>, Pankaj Garg <ipankajg@gmail.com>, Rajeev Manur <rajeev.manur@broadcom.com>
Thread-Topic: [nvo3-dt-encap] Discussion summary - 1/10/2017
Thread-Index: AQHSb73BVfhzxTJVm06NGyka71piBaFGCUHw
Date: Mon, 23 Jan 2017 12:34:22 +0000
Message-ID: <ec798997b354446ba03053d4e7b64d06@IL-EXCH01.marvell.com>
References: <20170111152553.GA27420@pg-wrk> <13CD2F9A-BDC4-4FA8-914E-93E15B984049@broadcom.com> <CAM-NV-pAH4fte9N37_PcFTvDzxasYo1_5nDfv9y0HWtKo3CyvA@mail.gmail.com> <0CAEED38-58B4-4F8B-8B16-656CF20CE970@vmware.com>
In-Reply-To: <0CAEED38-58B4-4F8B-8B16-656CF20CE970@vmware.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.4.102.210]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-01-23_09:, , signatures=0
X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1612050000 definitions=main-1701230174
Archived-At: <https://mailarchive.ietf.org/arch/msg/nvo3-dt-encap/K-UkgxfhWIYbV2Un39n0JIXzHC8>
Cc: "nvo3-dt-encap@ietf.org" <nvo3-dt-encap@ietf.org>
Subject: Re: [nvo3-dt-encap] Discussion summary - 1/10/2017
X-BeenThere: nvo3-dt-encap@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Private mailing list for internal NVO3 Encapsulation Design Team discussions <nvo3-dt-encap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nvo3-dt-encap>, <mailto:nvo3-dt-encap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nvo3-dt-encap/>
List-Post: <mailto:nvo3-dt-encap@ietf.org>
List-Help: <mailto:nvo3-dt-encap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nvo3-dt-encap>, <mailto:nvo3-dt-encap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Jan 2017 12:34:31 -0000

Hi Sami,

Thanks for putting together this draft.


I would like to propose one of two options:

(1) Replace subsections 6.1-6.6 with the encapsulation comparison section we reviewed a couple of weeks ago.
Or
(2) Replace subsections 6.1-6.6 with the following text, and append the comparison section as an appendix. This would be the text at the beginning of Section 6:
------------------------------------------------------------------


6.1 Encapsulation Comparison

Appendix A includes a detailed comparison between the three proposed encapsulations. The comparison indicates several common properties, but also three major differences among the encapsulations:

-	Extensibility: Geneve and GUE were defined with built-in extensibility, while VXLAN-GPE is not inherently extensible. Note that any of the three encapsulations can be extended using the Network Service Header (NSH).
-	Extension method: Geneve is extensible using Type/Length/Value (TLV) fields, while GUE uses a small set of possible extensions, and a set of flags that indicate which extension is present.
-	Length field: Geneve and GUE include a Length field, indicating the length of the encapsulation header, while VXLAN-GPE does not include such a field.

Further details can be found in Appendix A.




------------------------------------------------------------------
And then we add Appendix A:
------------------------------------------------------------------


3.  Appendix A: NVO3 Encapsulation Comparison

3.1.  Overview

   This section presents a comparison of the three NVO3 encapsulation
   proposals, Geneve, GUE, and VXLAN-GPE.  The three encapsulations use
   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, optional extensions may be included in the encapsulation, as
   discussed in Section 3.2 below.

3.2.  Extensibility

3.2.1.  Native Extensibility Support

   The Geneve and GUE encapsulations both enable optional headers to be
   incorporated at the end of the base encapsulation header.

   VXLAN-GPE does not provide native support for header extensions.
   However, as discussed in [I-D.ietf-nvo3-vxlan-gpe], extensibility can
   be attained to some extent if the Network Service Header (NSH)
   [I-D.ietf-sfc-nsh] is used immediately following the VXLAN-GPE
   header.  NSH supports either a fixed-size extension (MD Type 1), or a
   variable-size TLV-based extension (MD Type 2).  It should be noted
   that NSH-over-VXLAN-GPE implies an additional overhead of the
   8-octets NSH header, in addition to the VXLAN-GPE header.

3.2.2.  Extension Parsing

   The Geneve Variable Length Options are defined as Type/Length/Value
   (TLV) extensions.  Similarly, VXLAN-GPE, when using NSH, can include
   NSH TLV-based extensions.  In contrast, GUE defines a small set of
   possible extension fields (proposed in [I-D.herbert-gue-extensions]),
   and a set of flags in the GUE header that indicate for each extension
   type whether it is present or not.

   TLV-based extensions, as defined in Geneve, provide the flexibility
   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-
   based approach taken in GUE strives to simplify implementations by
   defining a small number of possible extensions, used in a fixed
   order.

   The Geneve and GUE headers both include a length field, defining the
   total length of the encapsulation, including the optional extensions.
   The length field simplifies the parsing of transit devices that skip
   the encapsulation header without parsing its extensions.

3.2.3.  Critical Extensions

   The Geneve encapsulation header includes the 'C' field, which
   indicates whether the current Geneve header includes critical
   options, which must be parsed by the tunnel endpoint.  If the
   endpoint is not able to process the critical option, the packet is
   discarded.

3.2.4.  Maximal Header Length

   The maximal header length in Geneve, including options, is 260
   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
   used, yielding an encapsulation header of up to 264 octets.

3.3.  Encapsulation Header

3.3.1.  Virtual Network Identifier (VNI)

   The Geneve and VXLAN-GPE headers both include a 24-bit VNI field.
   GUE, on the other hand, enables the use of a 32-bit field called
   VNID; this field is not included in the GUE header, but was defined
   as an optional extension in [I-D.herbert-gue-extensions].

   The VXLAN-GPE header includes the 'I' bit, indicating that the VNI
   field is valid in the current header.  A similar indicator is defined
   as a flag in the GUE header [I-D.herbert-gue-extensions].

3.3.2.  Next Protocol

   The three encapsulation headers include a field that specifies the
   type of the next protocol header, which resides after the NVO3
   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 IANA Internet protocol numbering.  The VXLAN-GPE header
   incorporates an 8-bit Next Protocol field, using a VXLAN-GPE-specific
   registry, defined in [I-D.ietf-nvo3-vxlan-gpe].

   The VXLAN-GPE header also includes the 'P' bit, which explicitly
   indicates whether the Next Protocol field is present in the current
   header.

3.3.3.  Other Header Fields

   The OAM bit, which is defined in Geneve and in VXLAN-GPE, indicates
   whether the current packet is an OAM packet.  The GUE header includes
   a similar field, but uses different terminology; the GUE 'C-bit'
   specifies whether the current packet is a control packet.  Note that
   the GUE control bit can potentially be used in a large set of
   protocols that are not OAM protocols.  However, the control packet
   examples discussed in [I-D.ietf-nvo3-gue] are OAM-related.

   Each of the three NVO3 encapsulation headers includes a 2-bit Version
   field, which is currently defined to be zero.

   The Geneve and VXLAN-GPE headers include reserved fields; 14 bits in
   the Genever header, and 27 bits in the VXLAN-GPE header are reserved.

3.4.  Comparison Summary

   The following table summarizes the comparison between the three NVO3
   encapsulations.


   +----------------+----------------+----------------+----------------+
   |                |     Geneve     |      GUE       |   VXLAN-GPE    |
   +----------------+----------------+----------------+----------------+
   | Outer transport|     UDP/IP     |     UDP/IP     |     UDP/IP     |
   +----------------+----------------+----------------+----------------+
   | Base header    |    8 octets    |    4 octets    |    8 octets    |
   | length         |                |                |  (16 octets    |
   |                |                |                |   using NSH)   |
   +----------------+----------------+----------------+----------------+
   | Extensibility  |Variable length |Extension fields| No native ext- |
   |                |    options     |                | ensibility.    |
   |                |                |                | Extensible     |
   |                |                |                | using NSH.     |
   +----------------+----------------+----------------+----------------+
   | Extension      |   TLV-based    |   Flag-based   |   TLV-based    |
   | parsing method |                |                |(using NSH with |
   |                |                |                |   MD Type 2)   |
   +----------------+----------------+----------------+----------------+
   | Extension      |    Variable    |     Fixed      |    Variable    |
   | order          |                |                |  (using NSH)   |
   +----------------+----------------+----------------+----------------+
   | Length field   |       +        |       +        |       -        |
   +----------------+----------------+----------------+----------------+
   | Max Header     |   260 octets   |   128 octets   |    8 octets    |
   | Length         |                |                |(264 using NSH) |
   +----------------+----------------+----------------+----------------+
   | Critical exte- |       +        |       -        |       -        |
   | nsion bit      |                |                |                |
   +----------------+----------------+----------------+----------------+
   | VNI field size |    24 bits     |    32 bits     |    24 bits     |
   |                |                |  (extension)   |                |
   +----------------+----------------+----------------+----------------+
   | Next protocol  |    16 bits     |     8 bits     |     8 bits     |
   | field          |   Ethertype    | Internet prot- |  New registry  |
   |                |   registry     | ocol registry  |                |
   +----------------+----------------+----------------+----------------+
   | Next protocol  |       -        |       -        |       +        |
   | indicator      |                |                |                |
   +----------------+----------------+----------------+----------------+
   | OAM / control  |    OAM bit     |  Control bit   |    OAM bit     |
   | field          |                |                |                |
   +----------------+----------------+----------------+----------------+
   | Version field  |    2 bits      |    2 bits      |    2 bits      |
   +----------------+----------------+----------------+----------------+
   | Reserved bits  |    14 bits     |       -        |    27 bits     |
   +----------------+----------------+----------------+----------------+

                  Figure 1: NVO3 Encapsulation Comparison






>-----Original Message-----
>From: nvo3-dt-encap [mailto:nvo3-dt-encap-bounces@ietf.org] On Behalf Of
>Sami Boutros
>Sent: Monday, January 16, 2017 8:00 AM
>To: Pankaj Garg; Rajeev Manur
>Cc: nvo3-dt-encap@ietf.org
>Subject: [EXT] Re: [nvo3-dt-encap] Discussion summary - 1/10/2017
>
>External Email
>________________________________________
>Please find attached the initial draft.
>
>Thanks,
>
>Sami
>From: nvo3-dt-encap <nvo3-dt-encap-bounces@ietf.org> on behalf of Pankaj
>Garg <ipankajg@gmail.com>
>Date: Thursday, January 12, 2017 at 12:12 AM
>To: Rajeev Manur <rajeev.manur@broadcom.com>
>Cc: "nvo3-dt-encap@ietf.org" <nvo3-dt-encap@ietf.org>
>Subject: Re: [nvo3-dt-encap] Discussion summary - 1/10/2017
>
>Yes I did, my mistake, sorry about it.
>
>On Jan 11, 2017 11:00 AM, "Rajeev Manur" <rajeev.manur@broadcom.com>
>wrote:
>Hi Pankaj,
>
>Thanks for the notes. I participated in yesterday's discussion as well. Looks like
>you missed my name on the participants list.
>
>Thanks!
>--Rajeev
>
>Sent from my iPhone
>
>> On Jan 11, 2017, at 7:25 AM, Pankaj Garg <ipankajg@gmail.com> wrote:
>>
>> Hi All,
>>
>> Thanks for attending the call. My curated notes are below.
>>
>> Participants:
>>    Erik Nordmark (Arista)
>>    Michael Smith (Cisco)
>>    Ignas Bagdonas (Equinix)
>>    Ilango Ganga (Intel)
>>    Sami Boutros (VMware)
>>    Tal Mizrahi (Marvell)
>>    David Mozes (Mellanox)
>>    Pankaj Garg (Microsoft)
>>
>> 1. We discussed the text for requiring at minimum 64-bytes to be
>>   supported in Geneve. There is consensus that we should propose a text
>>   to Geneve authors on minimum option length requirement. This would
>>   ensure there is common minimum support from all compliant Geneve
>>   implementations.
>>
>> 2. We discussed the idea of TLV0 further and upon discussion it was
>>   realized that it adds more confusion without any significant gain.
>>   Hence design team agreed to drop this from the proposed changes.
>>
>> 3. We agreed that we should put some text either in Geneve draft or
>>   design team report around supporting option ordering in Geneve
>>   implemnentations. The idea is that if a hardware can process options
>>   in TCAM but it can only process the first TLV, then control plane in
>>   a deployment can use this capability by ensuring a specific TLV is
>>   always the first one in the packet. We need someone to write this
>>   text.
>>
>> 4. We discussed split-NVE case and agreed that we need to ask WG whether
>>   in split-NVE case, options needs to be carried in other packet
>>   formats such as 802.1q and if they do, then would carrying Geneve
>>   frame in 802.1q be needed? Based on WG recommendation, an ETYPE
>>   and/or IP protocol number can be allocated for Geneve as well. Erik
>>   has agreed to write text around this question. Thanks Erik.
>>
>> 5. Sami has volunteered to write the initial draft for design team
>>   report. This report would contain our rationale for proposing a
>>   specific encapsulation and few specific extension use cases and how
>>   propose encapsulation meet those requirements. Thanks Sami.
>>
>> 6. Pankaj would send one extension use case around diagnostics. We would
>>   check with Tom on extension around security. Those will probably be
>>   two use cases we would cover in our design report.
>>
>> Please let me know if I missed anything.
>>
>> Thanks,
>> Pankaj (on behalf of NVO3 Encap Design Team)
>>
>> _______________________________________________
>> nvo3-dt-encap mailing list
>> nvo3-dt-encap@ietf.org
>> https://www.ietf.org/mailman/listinfo/nvo3-dt-encap