Re: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs

mohamed.boucadair@orange.com Fri, 10 April 2020 18:18 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: sfc@ietfa.amsl.com
Delivered-To: sfc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EE1873A0C2A for <sfc@ietfa.amsl.com>; Fri, 10 Apr 2020 11:18:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=orange.com
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 frs54luq1l-M for <sfc@ietfa.amsl.com>; Fri, 10 Apr 2020 11:18:43 -0700 (PDT)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.66.41]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F36293A0C0C for <sfc@ietf.org>; Fri, 10 Apr 2020 11:18:42 -0700 (PDT)
Received: from opfedar06.francetelecom.fr (unknown [xx.xx.xx.8]) by opfedar26.francetelecom.fr (ESMTP service) with ESMTP id 48zR8x2hqpzFq0c; Fri, 10 Apr 2020 20:18:41 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.com; s=ORANGE001; t=1586542721; bh=Bg2iNEzmCLs/CnGBEUSGDmGc+0I7jBdJPCWaSTlkPEs=; h=From:To:Subject:Date:Message-ID:Content-Type:MIME-Version; b=k2w4bAmMkuBH44T2AxfDtiyWzKT2dwRkBM3STcg8pvsw9LF55sJl7ZDGGcS3XDdzJ ShY8eZCn8jbnkuwFnLDfNN4FskJSH748Gfbd/ssQ+ZFXtF3edNh99AF9k+ebd456nN 3cW0Mgrsf6HqIjk38/geccAbL7Kfh5OUX8DpnkUuu80n25WLUnEke2Rp2gJ42AuOdH mFdO5ML/nz24lEcstGn3ApxzgS9HPKa+q5qj4oIBBKJ5hLYAF9XZweMqCRLVwfrqRZ uCCtUTqLw078Kcw3qE5zUyAYDK/jse6HUY/zf/SYwU3isYiNDIMXWRmOomQXsBuf9R GaZcJWadWg4LA==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.101]) by opfedar06.francetelecom.fr (ESMTP service) with ESMTP id 48zR8x1gwMz3wbJ; Fri, 10 Apr 2020 20:18:41 +0200 (CEST)
From: mohamed.boucadair@orange.com
To: "Carlos Pignataro (cpignata)" <cpignata=40cisco.com@dmarc.ietf.org>, "wei.yuehua@zte.com.cn" <wei.yuehua@zte.com.cn>
CC: "sfc@ietf.org" <sfc@ietf.org>
Thread-Topic: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs
Thread-Index: AQHWD0+RoXgAdJ3KdUKRBoMAgof5FqhyqKew
Date: Fri, 10 Apr 2020 18:18:40 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B9330314936A1@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <D26A88B6-BE99-4BEA-9739-9DEADAB4D196@cisco.com,> <639BDC8B-13B0-48CF-B4C1-ACB834DEC4A5@cisco.com> <202004101047428213142@zte.com.cn> <7750B74D-0539-4034-987B-5262E24BBE80@cisco.com>
In-Reply-To: <7750B74D-0539-4034-987B-5262E24BBE80@cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.245]
Content-Type: multipart/alternative; boundary="_000_787AE7BB302AE849A7480A190F8B9330314936A1OPEXCAUBMA2corp_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/sfc/zvAs-Nx4KkHasDpUFaqyDhS026s>
Subject: Re: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs
X-BeenThere: sfc@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Service Chaining <sfc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sfc>, <mailto:sfc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sfc/>
List-Post: <mailto:sfc@ietf.org>
List-Help: <mailto:sfc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sfc>, <mailto:sfc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Apr 2020 18:18:46 -0000

Hi all,

FWIW, that was an outcome of the interim meeting (https://datatracker.ietf.org/meeting/interim-2017-sfc-01/materials/minutes-interim-2017-sfc-01-201701171100.txt):

“Room Consensus:
•       The TLVs with short explanations belong to common TLV doc.; other doc. may define the TLV needing more semantics for a use case. In particular, there is no point in an entry in the common document whose only text is “see WFC document X for structure and meaning of this TLV.”  In that case, document X should reserve the type code.”

That’s said, I echo Carlos’s comment. This applies for almost all the TLVs in this draft, unfortunately.

I won’t reiterate my comment about the need to provide more context and usage.

Cheers,
Med

De : sfc [mailto:sfc-bounces@ietf.org] De la part de Carlos Pignataro (cpignata)
Envoyé : vendredi 10 avril 2020 17:49
À : wei.yuehua@zte.com.cn
Cc : sfc@ietf.org
Objet : Re: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs

Hi!

Yes, it was deleted at https://tools.ietf.org/rfcdiff?url2=draft-quinn-sfc-nsh-tlv-03.txt

In fact, in that revision, Subscriber/user Information / Host ID also was removed and those move forward as draft-sarikaya-sfc-hostid-serviceheader-00.txt then into draft-ietf-sfc-serviceid-header.

The question I still have is: what is “ Content Type”? Without a proper definition, should it be removed/

Thanks,

Carlos.


2020/04/09 午後10:47、wei.yuehua@zte.com.cn<mailto:wei.yuehua@zte.com.cn>のメール:

Hi Carlos, SFCers,
After backtracking the past version of this draft, I found that Application ID was deleted since draft-quinn-sfc-nsh-tlv-03

Best Regards,
魏月华 Corona Wei
M: +86 13851460269 E: wei.yuehua@zte.com.cn<mailto:wei.yuehua@zte.com.cn>

原始邮件
发件人:CarlosPignataro(cpignata) <cpignata=40cisco.com@dmarc.ietf.org<mailto:cpignata=40cisco.com@dmarc.ietf.org>>
收件人:魏月华00019655;
抄送人:sfc@ietf.org<mailto:sfc@ietf.org> <sfc@ietf.org<mailto:sfc@ietf.org>>;
日 期 :2020年04月09日 00:44
主 题 :Re: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs
_______________________________________________
sfc mailing list
sfc@ietf.org<mailto:sfc@ietf.org>
https://www.ietf.org/mailman/listinfo/sfc

Thank you for the response to those 3 items.
In regards to your question #3, the challenge is that the current section is underspecified. Without syntax, semantics, and registry, interoperability sounds not possible.
https://tools.ietf.org/html/draft-ietf-sfc-nsh-tlv-02#section-4.3

I was suggesting that penno-sfc-appid is a potentially complete superset of this functionality.
Are there other proposals on how the “Cotent Type” should look like?

Thanks,

Carlos.


2020/04/07 午後10:43、wei.yuehua@zte.com.cn<mailto:wei.yuehua@zte.com.cn>のメール:

Hi Carlos, SFCers,
1, Thank you for the work to make alignment of this draft to RFC8300!
2,  I agree with you and Greg that it would make sense to split

4.4.  Ingress Network Information
into two elements, one for Node ID, one for Interface.

3, About

4.3.  Content Type
If it refers to an Application ID: https://tools.ietf.org/html/draft-penno-sfc-appid-05 . draft-penno-sfc-appid-05 <https://tools.ietf.org/html/draft-penno-sfc-appid-05>  is an indivisual draft and it Expires: February 16, 2017
Shall we keep 4.3 or delete it?

Thank you !
Best Regards,
魏月华 Corona Wei
M: +86 13851460269 E: wei.yuehua@zte.com.cn<mailto:wei.yuehua@zte.com.cn>



发件人:CarlosPignataro(cpignata) <cpignata=40cisco.com@dmarc.ietf.org<mailto:cpignata=40cisco.com@dmarc.ietf.org>>
收件人:魏月华00019655;sfc@ietf.org<mailto:sfc@ietf.org> <sfc@ietf.org<mailto:sfc@ietf.org>>;
日 期 :2020年03月31日 12:04
主 题 :[sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs
_______________________________________________
sfc mailing list
sfc@ietf.org<mailto:sfc@ietf.org>
https://www.ietf.org/mailman/listinfo/sfc

Hi, Wei, SFCers,
I hope this email finds you well!

I thought it would be useful to send not only specific comments but also text proposals on this draft
https://datatracker.ietf.org/doc/draft-ietf-sfc-nsh-tlv/?include_text=1

Here they go:


                      Network Service Header TLVs

                       draft-ietf-sfc-nsh-tlv-02

The title is a bit of a misnomer. It’s not NSH TLVs. This should be titled “Network Service Header Metadata Type 2 Variable-Length Context Headers”


Abstract



   This draft describes Network Service Header (NSH) MD-Type 2 metadata

   TLVs that can be used within a service function path.

—> "This draft describes Network Service Header (NSH) Metadata (MD) Type 2 variable-length context headers that can be used within a service function path (SFP).”


1.  Introduction



   Network Service Header (NSH) [RFC8300] is the Service Function

   Chaining (SFC) encapsulation protocol used to create Service Function

   Chains.
This reads redundant. Instead:

   Network Service Header (NSH) [RFC8300] is the Service Function
   Chaining (SFC) encapsulation protocol required to support the SFC
   architecture.


As such, NSH provides two key elements:



   1.  Service Function Path identification



   2.  Metadata
This is inconsistent with RC 8300, which says:

   The NSH is composed of the following elements:

   1.  Service Function Path identification.

   2.  Indication of location within a Service Function Path.

   3.  Optional, per-packet metadata (fixed-length or variable).


   [RFC8300] further defines two metadata formats (MD Types): 1 and 2.

   MD Type 1 defines fixed length, 16 bytes-long metadata, whereas MD

   Type 2 defines a variable-length TLV format for metadata.  This draft

   defines some common TLVs for use with NSH MD Type 2.

s/bytes/octets/

Also, strictly, MD Type 2 does not use “TLVs”. It uses “MD Class, MD Type, Length, Value”. As such I recommend removing all mentions of TLV.

“ variable-length TLV format” —> “ variable-length metadata format"




2.1.  Terminology

Add:

"This document uses the terminology defined in the SFC Architecture [RFC 7665] and the Network Service Header [RFC 8300]”.


3.  NSH Type 2 Format
This is “NSH MD Type 2”


       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

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |Ver|O|C|R|R|R|R|R|R|   Length  |    MD Type    | Next Protocol |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

TTL missing, should be:

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Ver|O|U|    TTL    |   Length  |U|U|U|U|MD Type| Next Protocol |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



   where



      Metadata Class (MD Class): Defines the scope of the Type field to

      provide a hierarchical namespace.



      Type - Indicates the explicit type of metadata being carried.  The

      value is one from the Network Service Header (NSH) TLV Type

[...]

Please remove this as it is from RFC 8300.


4.  NSH Type 2 TLVs

Should be “NSH MD Type 2 Context Headers”


4.1.  Forwarding Context



   This TLV carries a network-centric forwarding context, used for

   segregation and forwarding scope.  Forwarding context can take

   several forms depending on the network environment.  Commonly used

   data includes VXLAN/VXLAN- GPE VNID, VRF identification or VLAN.

Extraneous space in VXLAN- GPE


       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

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |    Metadata Class = 0x0000    |  Type = 0x01  |U|  Length = 8 |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |   CT  |             Reserved                                  |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                      Tenant ID                                |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

First, I recommend for now change all the Types to TBAs. For example 0x01 to TBA1. Note this would otherwise collide with other documents being advanced.

I was thinking about this format, and the proposal from Greg Mirsky to do away from CT and instead use the length. I thought that was a good idea. However, on second thoughts, and in looking at the values defined:


         0x0 - 24 bits-long VXLAN/LISP virtual network identifier (VNI)



         0x1 - 32 bits-long MPLS VPN label



         0x2 - VLAN

* An MPLS Label is actually 20 bits.
* A VLAN identifier (VID) is 12 bits.

Neither of those can be expressed as a Length in octets.

So, we need a CT Field. However, change to:

         0x0 - 24-bits VXLAN/LISP virtual network identifier (VNI)

         0x1 - 20-bits MPLS VPN label

         0x2 - 12-bit VLAN identifier



4.3.  Content Type



   Provides explicit information about the content being carried, for

   example, type of video or content value for billing purposes.



       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

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |    Metadata Class = 0x0000    |  Type = 0x03  |U|  Length = 4 |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                     Content Type                              |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



                          Figure 5: Content Type

This does not seem to be adequately defined. What is Content Type: 0xCAFECACA?

In fact I wonder if what wants to be defined here is an Application ID: https://tools.ietf.org/html/draft-penno-sfc-appid-05


4.4.  Ingress Network Information



   This data identifies the ingress network node, and, if required,

   ingress interface.



       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

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |    Metadata Class = 0x0000    |  Type = 0x04  |U|  Length = 8 |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                        Node ID                                |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                     Source Interface/Port                     |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



                   Figure 6: Ingress Network Information
As per previous comment from Greg Mirsky, I agree it would make sense to split this into two elements, one from Node ID, one for Interface.


7.  IANA Considerations



   IANA is requested to create a new "Network Service Header (NSH) TLV

   Type" registry according to Table 1.
These are not “TLV Types”. They are "Network Service Header (NSH) MD Type 2 context header metadata types” for example.


   This document defines the following new values (Table 2) in the

   Network Service Header (NSH) TLV Type registry:

This should have “TBAs”.

And these need subsections:

* Context Type (CT)
* Tenant Type (TT)
* Group Type (GT)
* URI Type

Here’s some text:

7.1. Context Type

IANA is requested to create and maintain the “ Forwarding Context Variable Length Context Header, Context Type” registry, with the following initial allocation:

         0x0 - 24-bits VXLAN/LISP virtual network identifier (VNI)
         0x1 - 20-bits MPLS VPN label
         0x2 - 12-bit VLAN identifier
         0x3-0xE - Unassigned
         0xF - Reserved


7.2. Tenant Identifier


IANA is requested to create and maintain the “ Tenant Identifier Variable Length Context Header, Tenant Type” registry, with the following initial allocation:

      *  0x0 - 32 bits-long Tenant ID
      *  0x1 - 64 bits-long Tenant ID

7.3. Group Type

IANA is requested to create and maintain the "Source and/or Destination Groups Context Header, Group Type” registry, with the following initial allocation:


      *  0x0 - Reserved
      *  0x1 - Group Based Policy (GBP) end point group (EPG)
      *  0x2-0xE - Unassigned
      *  0xF - Reserved



Thanks!

Carlos.