Re: [sfc] WG review for draft-ietf-sfc-nsh-07.txt

<mohamed.boucadair@orange.com> Tue, 27 September 2016 12:50 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 CAF9212B04F for <sfc@ietfa.amsl.com>; Tue, 27 Sep 2016 05:50:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.935
X-Spam-Level:
X-Spam-Status: No, score=-4.935 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.316, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 ukkdT1yPsnTe for <sfc@ietfa.amsl.com>; Tue, 27 Sep 2016 05:50:50 -0700 (PDT)
Received: from relais-inet.orange.com (relais-nor34.orange.com [80.12.70.34]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ED9E812B137 for <sfc@ietf.org>; Tue, 27 Sep 2016 05:50:49 -0700 (PDT)
Received: from opfednr03.francetelecom.fr (unknown [xx.xx.xx.67]) by opfednr27.francetelecom.fr (ESMTP service) with ESMTP id AB593A0621; Tue, 27 Sep 2016 14:50:47 +0200 (CEST)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.24]) by opfednr03.francetelecom.fr (ESMTP service) with ESMTP id 7B6291A0067; Tue, 27 Sep 2016 14:50:47 +0200 (CEST)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM7D.corporate.adroot.infra.ftgroup ([fe80::9044:c5ee:4dd2:4f16%19]) with mapi id 14.03.0301.000; Tue, 27 Sep 2016 14:50:45 +0200
From: mohamed.boucadair@orange.com
To: "Paul Quinn (paulq)" <paulq@cisco.com>
Thread-Topic: [sfc] WG review for draft-ietf-sfc-nsh-07.txt
Thread-Index: AQHR/V4l7FibCE2gCkSX9qAjBx/2X6Ba4oYggBiIaACAGhF1YA==
Date: Tue, 27 Sep 2016 12:50:44 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B933008E20A8E@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <98638C8E-3C9D-4C87-AA1F-90E95A3F001C@cisco.com> <787AE7BB302AE849A7480A190F8B933008E099F0@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <6D3898EC-1CC4-4771-8F04-D6D1BAFE35AF@cisco.com>
In-Reply-To: <6D3898EC-1CC4-4771-8F04-D6D1BAFE35AF@cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.168.234.3]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/sfc/lfDT7E79poRfmOJurEKO-YAo8ag>
Cc: "Jim Guichard (jguichar)" <jguichar@cisco.com>, "sfc@ietf.org" <sfc@ietf.org>
Subject: Re: [sfc] WG review for draft-ietf-sfc-nsh-07.txt
X-BeenThere: sfc@ietf.org
X-Mailman-Version: 2.1.17
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: Tue, 27 Sep 2016 12:50:56 -0000

Hi Paul, 

Please see inline.

Cheers,
Med

> -----Message d'origine-----
> De : Paul Quinn (paulq) [mailto:paulq@cisco.com]
> Envoyé : samedi 10 septembre 2016 19:30
> À : BOUCADAIR Mohamed IMT/OLN
> Cc : Jim Guichard (jguichar); sfc@ietf.org
> Objet : Re: [sfc] WG review for draft-ietf-sfc-nsh-07.txt
> 
> Med,
> 
> Med, as always, thank you for your review.
> 
> 
> > On Aug 26, 2016, at 5:31 AM, mohamed.boucadair@orange.com wrote:
> >
> > Hi Jim, all,
> >
> > Likewise, I would like to see this document progress as well.
> >
> > In addition to the comment raised in a separate message about the C-bit
> of TLVs, I have the following comments:
> >
> > (1) Section 2: I suggest to delete the following sentence:
> >
> >   NSH is designed to be easy to implement across a range of devices,
> >   both physical and virtual, including hardware platforms.
> >
> > Reason: the use of "easy to implement" should be justified if that text
> is maintained. Otherwise, this is subjective.
> >
> > or to reword it as follows:
> >
> >   "NSH can be implemented in both physical and virtual platforms."
> 
> PQ>  The "easy to implement" is a reference to the nature of type-1 and
> how, as noted by hardware implementors, this vastly simplifies
> implementation.  Further, the language is widely used in RFCs (e.g. 7321,
> 3160, etc.).

[Med] Unless that statement is backed with citations or arguments, I still consider it as subjective.

> 
> >
> > (2) Section 2.3: I suggest to change this OLD text:
> >
> > The semantics of
> >       the shared metadata is communicated via a control plane, which is
> >       outside the scope of this document, to participating nodes.
> >
> > NEW:
> >
> > The semantics of
> > the shared metadata is communicated via a control plane (Section 3.3 of
> [I-D.ietf-sfc-control-plane]).
> >
> 
> PQ>  Proposed text: "The semantics of the shared metadata is communicated
> via a control plane, which is outside the scope of this document, to
> participating nodes.  [ietf-sfc-control-plane] provides an example of such
> in section 3.3.
> 

[Med] Works for me. 

> 
> > (3) Section 2.3- Not sure I would maintain this text:
> >
> >   5.  NSH offers a common and standards-based header for service
> >       chaining to all network and service nodes.
> >
> > "to all" is not accurate as "legacy" nodes are still there.
> >
> 
> PQ>  Given that "legacy" nodes are supported via proxy, this is indeed
> true.
> 

[Med] Please update the text to mention the proxy case. Thank you.

> 
> > (4) Section 2.3:
> >
> > OLD:
> > Transport Agnostic: NSH is transport independent and is often
> >       carried via a network transport protocol,
> >
> > NEW:
> > Transport Agnostic: NSH is transport independent. Any network transport
> protocol can be used to transport NSH-encapsulated traffic.
> 
> 
> PQ>  Proposed text: NSH is transport independent. An appropriate (for a
> given deployment) network transport protocol can be used to transport NSH-
> encapsulated traffic.
> 

[Med] OK. Thanks. 

> 
> >
> > (5) Section 3.2:
> >
> >   NSH implementations MUST support MD-Type = 0x1, and SHOULD support
> >   MD- Type = 0x2.
> >
> > Because:
> > * of potential interoperability issues.
> > * MD#2 is more compact when no metadata is to be supplied
> > * MD#2 allows to convey more information compared to MD#1
> >
> > I suggest we revisit that sentence to have MD#2 be mandatory to be
> supported (my favorite option), or at least require that both MDs defined
> in this spec MUST be supported.
> >
> PQ>  As per the previous discussion, this MUST/SHOULD reflect the
> practical reality of implementation and helps ensure deployability.
> 

[Med] the SHOULD for MD#2 does not help interoperability. I reiterate my comment to update the language to use MUST for MD#2.

> 
> 
> > (6) Section 3.2:
> >
> >   C bit: Indicates that a critical metadata TLV is present.  This bit
> >   acts as an indication for hardware implementers to decide how to
> >   handle the presence of a critical TLV without necessarily needing to
> >   parse all TLVs present.  For an MD Type of 0x1 (i.e. no variable
> >   length metadata is present), the C bit MUST be set to 0x0.
> >
> > 6.1. What is the behavior of the implementation if C-bit is set but not
> critical metadata is found in the payload?
> > 6.2. What is the behavior of the implementation if C-bit is unset but a
> critical metadata is found in the payload?
> > 6.3. What is the behavior of the implementation with regards to this bit
> if a critical metadata is added in-path?
> > 6.4. What is the behavior of the implementation with regards to this bit
> if a critical metadata is stripped in-path?
> > 6.5. Should the specification recommend an order of metadata so that
> critical metadata are always positioned first?
> 
> PQ>
> 
> 6.1: essentially continue "as is" with an optional warning message
> 6.2: generate an warning error, possibly set C
> 6.3: the adder sets C
> 6.4: the remover clears C
> 6.5: no, this creates too many limitations/complexity.  An implementation
> might opt to optimize.
> 

[Med] This should be reflected in the specification.

> 
> >
> > (7) Section 3.3: The following text
> >
> > " ... however the
> >   control plane MAY configure the initial value of SI as appropriate
> >   (i.e. taking into account the length of the service function path). "
> >
> > is not aligned with the outcome of the discussion we had during the WG
> LC of draft-ietf-sfc-control-plane (https://www.ietf.org/mail-
> archive/web/sfc/current/msg04594.html):
> >
> >   The control plane must instruct the classifier about the initial
> >   values of the Service Index (SI).
> >
> 
> PQ>  The control plane can assign but NSH provides a default value
> recommendation, I'm not sure there's a conflict.

[Med] The default value in the text is a SHOULD not a MUST.   

> 
> 
> > 7.1. I suggest to modify NSH draft accordingly.
> 
> PQ>  I'm not clear what you are suggesting?

[Med] The proposal is to use the same wording proposed by Jim for the CP draft. 

> 
> > 7.2. Please consider adding a reference to draft-ietf-sfc-control-plane
> 
> PQ>  I'll update.
> 
> >
> > (8) Section 3.4: I still do think this section is underspecified. E.g.,
> >
> > 8.1. The use of "Mandatory Context Header" conflicts with this text in
> Section 3:
> >
> >   A Network Service Header (NSH) contains service path information and
> >   optionally metadata that are added to a packet or frame and used to
> >   ^^^^^^^^^^^^^^^^^^^
> >   create a service plane.
> >
> > 8.2. The specification does not forbid that all context headers are set
> to zero. Otherwise, MD#2 should be used instead.
> 
> 
> PQ>  In either care, 1 or 2, no metadata is valid: all zeroes in type 1 or
> no data in type 2.
> 
> 
> > 8.3. The specification does not specify how these context headers are to
> be validated.
> 
> PQ>  By validated, so you mean cryptographically asserted, or simply
> compared to known value?  In either case, that is outside of the scope of
> this draft.

[Med] No. My concern is how an implementation will consider that a given mandatory header is conveying what is supposed to include. Some validation checks are required.

> 
> 
> > 8.4. I still don't understand why four headers are chosen.
> 
> PQ>  As per previous discussions, based experience, use case and
> implementation, four strikes a balance. The widespread implementations of
> type 1 support this.

[Med] I'm not aware of any public use case that requires 4 mandatory context headers. Can you please provide a public link to a document where this is discussed?

> 
> 
> >
> > (9) Section 3.5.1:
> >
> > The length of "Metadata Class" is over-dimensioned. I suggest to reduce
> the length of this field and increase the length of "Type".
> >
> > For example, let's consider the proposal in
> https://tools.ietf.org/html/draft-napper-sfc-nsh-broadband-allocation-
> 00#section-4.2:
> >
> >    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
> >   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >   |     TLV Class = 3GPP          |C|    Type     |R|R|R|   Len   |
> >   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >   |    Data ...
> >   +-+-+-+-+-+-+-+-+
> >
> >                         Figure 5: TLV Allocation
> >
> >   The intended use of the header is for TLVs associated with 3GPP Radio
> >   Access Networks as described in [TS.29.230].  This TLV can be used by
> >   3GPP to extend the metadata as per use cases.  Having this TLV helps
> >   to carry more information that does not fit within the MD Type 0x01.
> >
> > The list of codes in Table 7.1 of TS.29.230 cannot be conveyed with a
> "Type" field of 7 bits.
> 
> PQ>  At this point, the allocation seems reasonable, provides for a large
> range of "owners", and the TLV schemes proposed work within this scope.

[Med] "reasonable" compared to what? The example I provided above for the 3GPP case shows clearly that 7-bits are not sufficient for TS.29.230. Further, 2^^16 is over dimensioned for owners.

> 
> >
> > (10) Section 4:
> >
> > OLD:
> >
> > +---------------+------------------+-------+----------------+---------+
> > |                |  Insert         |Select |   Update       |Service  |
> > |                |  or remove NSH  |Service|    NSH         |policy   |
> > |                |                 |Function|               |selection|
> > | Component      +--------+--------+Path   +----------------+         |
> > |                |        |        |       | Dec.   |Update |         |
> > |                | Insert | Remove |       |Service |Context|         |
> > |                |        |        |       | Index  |Header |         |
> > +----------------+--------+--------+-------+--------+-------+---------+
> > |                |   +    |   +    |       |        |   +   |         |
> > |Classifier      |        |        |       |        |       |         |
> > +--------------- +--------+--------+-------+--------+-------+---------+
> > |Service Function|        |   +    |  +    |        |       |         |
> > |Forwarder(SFF)  |        |        |       |        |       |         |
> > +--------------- +--------+--------+-------+--------+-------+---------+
> > |Service         |        |        |       |   +    |   +   |   +     |
> > |Function  (SF)  |        |        |       |        |       |         |
> > +--------------- +--------+--------+-------+--------+-------+---------+
> > |SFC Proxy       |   +    |   +    |       |   +    |       |         |
> > +----------------+--------+--------+-------+--------+-------+---------+
> >
> > NEW:
> >
> > +---------------+------------------+-------+----------------+---------+
> > |                |  Insert         |Select |   Update       |Service  |
> > |                |  or remove NSH  |Service|    NSH         |policy   |
> > |                |                 |Function|               |selection|
> > | Component      +--------+--------+Path   +----------------+         |
> > |                |        |        |       | Dec.   |Update |         |
> > |                | Insert | Remove |       |Service |Context|         |
> > |                |        |        |       | Index  |Header |         |
> > +----------------+--------+--------+-------+--------+-------+---------+
> > |                |   +    |   +    |       |        |   +   |         |
> > |Classifier      |        |        |       |        |       |         |
> > +--------------- +--------+--------+-------+--------+-------+---------+
> > |Service Function|        |   +    |  +    |        |       |         |
> > |Forwarder(SFF)  |        |        |       |        |       |         |
> > +--------------- +--------+--------+-------+--------+-------+---------+
> > |Service         |        |        |       |   +    |   +   |   +     |
> > |Function  (SF)  |        |        |       |        |       |         |
> > +--------------- +--------+--------+-------+--------+-------+---------+
> > |SFC Proxy       |   +    |   +    |       |   +    |   +   |         |
> > +----------------+--------+--------+-------+--------+-------+---------+
> 
> PQ>  Just to be clear (formatting was a bit off in the email):
> 
> In the last line, SFC Proxy, add "Update Context Header"?

[Med] Yes.

> 
> >
> > (11) Section 7.2: Please consider adding an IPv6 example.
> 
> PQ>  Happily.

[Med] Thank you.