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

wei.yuehua@zte.com.cn Wed, 08 April 2020 02:45 UTC

Return-Path: <wei.yuehua@zte.com.cn>
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 4C8F43A07F8 for <sfc@ietfa.amsl.com>; Tue, 7 Apr 2020 19:45:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 C90xhvEgnTad for <sfc@ietfa.amsl.com>; Tue, 7 Apr 2020 19:45:41 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 8BE853A07F5 for <sfc@ietf.org>; Tue, 7 Apr 2020 19:45:40 -0700 (PDT)
Received: from mxct.zte.com.cn (unknown [192.168.164.217]) by Forcepoint Email with ESMTPS id 3464B3F226557F4BEDE4 for <sfc@ietf.org>; Wed, 8 Apr 2020 10:45:38 +0800 (CST)
Received: from mse-fl1.zte.com.cn (unknown [10.30.14.238]) by Forcepoint Email with ESMTPS id EFC00152D481911FD4E9; Wed, 8 Apr 2020 10:45:37 +0800 (CST)
Received: from dgapp01.zte.com.cn ([10.35.13.16]) by mse-fl1.zte.com.cn with SMTP id 0382hBae059303; Wed, 8 Apr 2020 10:43:11 +0800 (GMT-8) (envelope-from wei.yuehua@zte.com.cn)
Received: from mapi (dgapp02[null]) by mapi (Zmail) with MAPI id mid1; Wed, 8 Apr 2020 10:43:10 +0800 (CST)
Date: Wed, 08 Apr 2020 10:43:10 +0800
X-Zmail-TransId: 2afa5e8d3a3eeb7af223
X-Mailer: Zmail v1.0
Message-ID: <202004081043108378402@zte.com.cn>
In-Reply-To: <D26A88B6-BE99-4BEA-9739-9DEADAB4D196@cisco.com>
References: D26A88B6-BE99-4BEA-9739-9DEADAB4D196@cisco.com
Mime-Version: 1.0
From: wei.yuehua@zte.com.cn
To: cpignata=40cisco.com@dmarc.ietf.org
Cc: sfc@ietf.org
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl1.zte.com.cn 0382hBae059303
Archived-At: <https://mailarchive.ietf.org/arch/msg/sfc/tPyUxP_3VC77F8V8Qor1qBMuRLk>
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: Wed, 08 Apr 2020 02:45:44 -0000

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  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









原始邮件



发件人:CarlosPignataro(cpignata) <cpignata=40cisco.com@dmarc.ietf.org>
收件人:魏月华00019655;sfc@ietf.org <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
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.