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

From: <[email-masked]>
Date: Wed, 8 Apr 2020 10:43:10 +0800 (CST)

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: [email-masked]

原始邮件

发件人：CarlosPignataro(cpignata) <cpignata=[email-masked]>
收件人：魏月华00019655;[email-masked] <[email-masked]>;
日 期 ：2020年03月31日 12:04
主 题 ：[sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs

_______________________________________________
sfc mailing list
[email-masked]
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.

---

From: "Carlos Pignataro (cpignata)" <[email-masked]>
Date: Wed, 8 Apr 2020 16:43:40 +0000

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、[email-masked]<mailto:[email-masked]>のメール:

Hi Carlos, SFCers,

3, About

4.3.  Content Type

If it refers to an Application ID: <https://tools.ietf.org/html/draft-penno-sfc-appid-05> <https://tools.ietf.org/html/draft-penno-sfc-appid-05> 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

Thank you !

Best Regards,

魏月华 Corona Wei

M: +86 13851460269 E: [email-masked]<mailto:[email-masked]>

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

Hi, Wei, SFCers,

Here they go:

Abstract

1.  Introduction

   2.  Metadata

s/bytes/octets/

2.1.  Terminology

Add:

3.  NSH Type 2 Format

This is “NSH MD Type 2”

       0                   1                   2                   3

TTL missing, should be:

      0                   1                   2                   3

   where

      Type - Indicates the explicit type of metadata being carried.  The
      value is one from the Network Service Header (NSH) TLV Type

[...]

4.  NSH Type 2 TLVs

4.1.  Forwarding Context

       0                   1                   2                   3

         0x2 - VLAN

4.3.  Content Type

       0                   1                   2                   3

                          Figure 5: Content Type

       0                   1                   2                   3

7.  IANA Considerations

This should have “TBAs”.

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

Here’s some text:

7.1. Context Type

7.2. Tenant Identifier

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

Thanks!

Carlos.

---

From: <[email-masked]>
Date: Fri, 10 Apr 2020 10:47:42 +0800 (CST)

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

原始邮件

发件人：CarlosPignataro(cpignata) <cpignata=[email-masked]>
收件人：魏月华00019655;
抄送人：[email-masked] <[email-masked]>;
日 期 ：2020年04月09日 00:44
主 题 ：Re: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs

Thanks,

Carlos.
2020/04/07 午後10:43、[email-masked]:

Hi Carlos, SFCers,

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 

Thank you !

Best Regards,

魏月华 Corona Wei

M: +86
 13851460269 E: [email-masked]

日 期 ：2020年03月31日 12:04

_______________________________________________sfc mailing [email-masked]://www.ietf.org/mailman/listinfo/sfcHi, Wei, SFCers,
I hope this email finds you well!

Here they go:

Abstract

1. Introduction

   architecture.  

 2. Metadata

s/bytes/octets/

Add:

3. NSH Type 2 Format

This is “NSH MD Type 2”

 0 1 2 3

TTL missing, should be:

      0                   1                   2                   3

4. NSH Type 2 TLVs

4.1. Forwarding Context

 0 1 2 3

 0x2 - VLAN

 0 1 2 3

 Figure 5: Content Type

 0 1 2 3

7. IANA Considerations

This should have “TBAs”.

* Context Type (CT)

* Tenant Type (TT)

* Group Type (GT)

* URI Type

Here’s some text:

7.1. Context Type

         0x3-0xE - Unassigned

         0xF - Reserved

7.2. Tenant Identifier

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

      *  0x2-0xE - Unassigned

      *  0xF - Reserved

Thanks!

Carlos.

---

From: "Carlos Pignataro (cpignata)" <[email-masked]>
Date: Fri, 10 Apr 2020 15:49:07 +0000

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、[email-masked]<mailto:[email-masked]>のメール:

Hi Carlos, SFCers,

Best Regards,
魏月华 Corona Wei

原始邮件
抄送人：[email-masked]<mailto:[email-masked]> <[email-masked]<mailto:[email-masked]>>;

Thanks,

Carlos.

Hi Carlos, SFCers,

3, About

4.3.  Content Type

Thank you !

Best Regards,

魏月华 Corona Wei

Hi, Wei, SFCers,

Here they go:

Abstract

1.  Introduction

   2.  Metadata

s/bytes/octets/

2.1.  Terminology

Add:

3.  NSH Type 2 Format

This is “NSH MD Type 2”

       0                   1                   2                   3

TTL missing, should be:

      0                   1                   2                   3

   where

[...]

4.  NSH Type 2 TLVs

4.1.  Forwarding Context

       0                   1                   2                   3

         0x2 - VLAN

4.3.  Content Type

       0                   1                   2                   3

                          Figure 5: Content Type

       0                   1                   2                   3

7.  IANA Considerations

This should have “TBAs”.

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

Here’s some text:

7.1. Context Type

7.2. Tenant Identifier

7.3. Group Type

      *  0x0 - Reserved

Thanks!

Carlos.

---

From: <[email-masked]>
Date: Fri, 10 Apr 2020 18:18:40 +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:[email-masked]] De la part de Carlos Pignataro (cpignata)
Envoyé : vendredi 10 avril 2020 17:49
À : [email-masked]
Cc : [email-masked]
Objet : Re: [sfc] draft-ietf-sfc-nsh-tlv-02 - Network Service Header TLVs

Hi!

Thanks,

Carlos.

Hi Carlos, SFCers,

Best Regards,
魏月华 Corona Wei

原始邮件

Thanks,

Carlos.

Hi Carlos, SFCers,

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

Hi, Wei, SFCers,

Here they go:

Abstract

1.  Introduction

   Chains.

   2.  Metadata

s/bytes/octets/

2.1.  Terminology

Add:

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

       0                   1                   2                   3

TTL missing, should be:

      0                   1                   2                   3

   where

[...]

4.  NSH Type 2 TLVs

4.1.  Forwarding Context

       0                   1                   2                   3

      |   CT  |             Reserved                                  |

      |                      Tenant ID                                |

         0x2 - VLAN

4.3.  Content Type

       0                   1                   2                   3

      |                     Content Type                              |

                          Figure 5: Content Type

   ingress interface.

       0                   1                   2                   3

      |                        Node ID                                |

7.  IANA Considerations

This should have “TBAs”.

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

Here’s some text:

7.1. Context Type

7.2. Tenant Identifier

7.3. Group Type

      *  0x0 - Reserved

Thanks!

Carlos.