Re: [sfc] NSH context headers: fixed/tlv

Dave Dolson <ddolson@sandvine.com> Thu, 03 December 2015 21:25 UTC

Return-Path: <ddolson@sandvine.com>
X-Original-To: sfc@ietfa.amsl.com
Delivered-To: sfc@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EC1501ACDB8 for <sfc@ietfa.amsl.com>; Thu, 3 Dec 2015 13:25:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.61
X-Spam-Level:
X-Spam-Status: No, score=-2.61 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 aHHyBIFtHQdM for <sfc@ietfa.amsl.com>; Thu, 3 Dec 2015 13:25:18 -0800 (PST)
Received: from mail1.sandvine.com (Mail1.sandvine.com [64.7.137.134]) by ietfa.amsl.com (Postfix) with ESMTP id 4733B1ACDA9 for <sfc@ietf.org>; Thu, 3 Dec 2015 13:25:18 -0800 (PST)
Received: from BLR-EXCHP-2.sandvine.com (192.168.196.172) by wtl-exchp-1.sandvine.com (192.168.194.178) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 3 Dec 2015 16:25:17 -0500
Received: from WTL-EXCHP-2.sandvine.com ([fe80::68ac:f071:19ff:3455]) by blr-exchp-2.sandvine.com ([fe80::6c6d:7108:c63c:9055%14]) with mapi id 14.03.0181.006; Thu, 3 Dec 2015 16:25:17 -0500
From: Dave Dolson <ddolson@sandvine.com>
To: "Jim Guichard (jguichar)" <jguichar@cisco.com>, "Haeffner, Walter, Vodafone DE" <walter.haeffner@vodafone.com>, David Melman <davidme@marvell.com>, "sfc@ietf.org" <sfc@ietf.org>
Thread-Topic: [sfc] NSH context headers: fixed/tlv
Thread-Index: AQHRIy5emPvL6Hp77kOGF+aJe36w6Z6kIicggAEqMwCAADCEgIAEnguAgAzcEYCAABmSAIAAAf4AgAAFlQCAAAWLgIAABzkAgAFynwD//6y6UIAA8doAgAAxv4CAAFqCAP//zaPAgAB87ID//7O+ZwALCOcAAAhlCtA=
Date: Thu, 03 Dec 2015 21:25:20 +0000
Message-ID: <E8355113905631478EFF04F5AA706E9830DD8FB5@wtl-exchp-2.sandvine.com>
References: <D273AF56.849AA%andrew.dolganow@alcatel-lucent.com> <B8F9A780D330094D99AF023C5877DABA848C056D@nkgeml501-mbs.china.huawei.com> <36EF1E54-A0D8-46CE-AF4F-EEDE873123E3@cisco.com> <94DA9C7F532AD946852C9C5527195239254ABE3A@G1W3656.americas.hpqcorp.net> <CAA=duU0UvERU3-YE2EFT-kOExHWgLesSERRAkox0Ji1V28nNdQ@mail.gmail.com> <EDE43D1E-8068-4466-98E2-EC5BF517EBE8@cisco.com> <94DA9C7F532AD946852C9C5527195239254B4A00@G2W2527.americas.hpqcorp.net> <6748BE0E-A42A-4779-9BB4-F1A50846F5C2@cisco.com> <94DA9C7F532AD946852C9C5527195239254B4A51@G2W2527.americas.hpqcorp.net> <D9384715-0E0B-4EAA-AB4A-296B57974630@cisco.com> <94DA9C7F532AD946852C9C5527195239254B4A78@G2W2527.americas.hpqcorp.net> <3AC71CA8-73C3-432F-B887-5E9F1B3EAFEA@cisco.com> <E8355113905631478EFF04F5AA706E9830DD593E@wtl-exchp-2.sandvine.com> <787AE7BB302AE849A7480A190F8B933008CACC48@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <C8C844F84E550E43865561FAE104718579E0902B@VOEXM20W.internal.vodafone.com> <f71094637a5f4d7b92452b99d4403998@IL-EXCH01.marvell.com> <E8355113905631478EFF04F5AA706E9830DD82E0@wtl-exchp-2.sandvine.com> <C8C844F84E550E43865561FAE104718579E09852@VOEXM20W.internal.vodafone.com> <20151203194750.5697621.67982.53389@sandvine.com> <D28609C0.329D2%jguichar@cisco.com>
In-Reply-To: <D28609C0.329D2%jguichar@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [192.168.200.63]
Content-Type: text/plain; charset="windows-1258"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/sfc/4DINyEJHVIHM66EfLJnRTJ4WHkk>
Subject: Re: [sfc] NSH context headers: fixed/tlv
X-BeenThere: sfc@ietf.org
X-Mailman-Version: 2.1.15
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: Thu, 03 Dec 2015 21:25:26 -0000

Thanks Jim. Obviously I wasn't thinking of the Routing Domain class of metadata.

It doesn't appear that the NSH draft takes a stance on whether or not functions 
should attempt to support all MD types if they do not utilize metadata.

My opinion is that it is acceptable for functions to ignore the MD if they don't use it.


-----Original Message-----
From: Jim Guichard (jguichar) [mailto:jguichar@cisco.com] 
Sent: Thursday, December 03, 2015 3:04 PM
To: Dave Dolson; Haeffner, Walter, Vodafone DE; David Melman; sfc@ietf.org
Subject: Re: [sfc] NSH context headers: fixed/tlv

Hi Dave,

Actually SFFs do need metadata if they are to support a number of use
cases - termination of chain is a classic example for preservation of VPN
forwarding context.

Jim

On 12/3/15, 2:47 PM, "sfc on behalf of Dave Dolson" <sfc-bounces@ietf.org
on behalf of ddolson@sandvine.com> wrote:

>My point about supporting all MD types was for SFF function only.
>I don't believe SFFs need to parse past the start of the NSH header to
>make a forwarding decision. SFFs don't need metadata or start of inner
>packet.
>
>
>
>
>From: Haeffner, Walter, Vodafone DE
>Sent: Thursday, December 3, 2015 2:21 PM
>To: Dave Dolson; David Melman; sfc@ietf.org
>Subject: AW: [sfc] NSH context headers: fixed/tlv
>
>
>We don¹t need 256 variants of MD Type. As mentioned, two types seem to be
>sufficient to support a mixed environment.
>
>Metadata can cause a SF to reclassify which finally  may result in a
>modified forwarding behaviour (do something dependent on a network state
>like load condition, location of the user in case of mobile networks etc.
>).
>
>I don¹t understand your third statement. Dave, may you please explain in
>some more detail?
>
>Regards,
>Walter
>
>Von: sfc [mailto:sfc-bounces@ietf.org] Im Auftrag von Dave Dolson
>Gesendet: Donnerstag, 3. Dezember 2015 17:58
>An: David Melman; sfc@ietf.org
>Betreff: Re: [sfc] NSH context headers: fixed/tlv
>
>Actually, it would be possible to mandate, ³An SFF MUST support any value
>(0-255) of MD type.²
>
>The reason is that (as far as I can tell), forwarding decisions are not
>using metadata anyhow.
>
>This doesn¹t help with classifiers and SFs that need to use the metadata,
>but it might help with longevity of forwarding-plane silicon.
>
>
>-Dave
>
>
>From: sfc [mailto:sfc-bounces@ietf.org] On Behalf Of David Melman
>Sent: Thursday, December 03, 2015 9:54 AM
>To: sfc@ietf.org<mailto:sfc@ietf.org>
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>There is no doubt that fixed-size header parsing eases the silicon
>design, thereby  lowering the barrier for silicon vendors to support it.
>
>If we see that the main use cases are indeed satisfied by the fixed
>header size approach (MD Type 1), then making this the ³MUST² will bring
>the greatest level of adoption and compliance.
>
>MD Type 2 is the fallback for more complex cases that cannot be satisfied
>by MD Type 1. We should define MD Type 2 as ³SHOULD²  to encourage
>silicon vendors to support this, without deterring the less motivated
>vendors from supported MD Type 1.    Also, for use cases where no
>metadata is required, it would be easy for vendors to support the MD type
>2 without including any TLVs, i.e. just the fixed header.
>
>David
>
>From: sfc [mailto:sfc-bounces@ietf.org] On Behalf Of Haeffner, Walter,
>Vodafone DE
>Sent: Thursday, December 03, 2015 11:30 AM
>To: mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>;
>Dave Dolson; Carlos Pignataro (cpignata); Bottorff, Paul
>Cc: Paul Quinn (paulq); Andrew G. Malis; sfc@ietf.org<mailto:sfc@ietf.org>
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>
>Dear all,
>
>
>
>Yes. Type Two should be a MUST and Type One should be optimized for the
>silicon use case. To encourage silicon vendors a MUST for MD#2 may help
>for penetration but I could live also with a SHOULD. Some feedback from
>silicon folks (Broadcom, Cisco, Intel) may support this discussion.
>Having all the performance optimization shortcuts between a VM and a
>physNIC in mind we should not leave out silicon based approaches.
>
>
>
>Regards, Walter
>
>
>Von: sfc [mailto:sfc-bounces@ietf.org] Im Auftrag von
>mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>
>Gesendet: Donnerstag, 3. Dezember 2015 07:32
>An: Dave Dolson; Carlos Pignataro (cpignata); Bottorff, Paul
>Cc: Andrew G. Malis; Paul Quinn (paulq); sfc@ietf.org<mailto:sfc@ietf.org>
>Betreff: Re: [sfc] NSH context headers: fixed/tlv
>
>Hi Dave, all,
>
>Fully agree that MD#2 is simple and covers the generic use cases while
>MD#1 is an optimization (modulo some further explanation about the size
>of the fixed fields, their number, interaction with the control plane,
>etc.).
>
>I¹m still in favor of having MD#2 be MUST.
>
>Cheers,
>Med
>
>De : sfc [mailto:sfc-bounces@ietf.org] De la part de Dave Dolson
>Envoyé : mercredi 2 décembre 2015 22:24
>À : Carlos Pignataro (cpignata); Bottorff, Paul
>Cc : Paul Quinn (paulq); Andrew G. Malis;
>sfc@ietf.org<mailto:sfc@ietf.org>
>Objet : Re: [sfc] NSH context headers: fixed/tlv
>
>> we need to specify a MUST implement ‹ and that should be the simplest
>>to implement which allows for all common use cases ‹ in other words,
>>Type 1.
>
>It is indeed simple to implement the packet parser, but I think Type 1
>makes the control plane more complicated.
>How does an SF know what item is placed in slot 1 of MD Type 1?
>Type 2 allows the metadata to be self-describing.
>
>Also, for many users who don¹t use metadata, Type 2 is more efficient.
>
>So as I see it, Type 2 is the generic one and Type 1 is an optimization
>for special cases.
>
>
>-Dave
>
>
>
>
>From: sfc [mailto:sfc-bounces@ietf.org] On Behalf Of Carlos Pignataro
>(cpignata)
>Sent: Wednesday, December 02, 2015 4:04 PM
>To: Bottorff, Paul
>Cc: Andrew G. Malis; Paul Quinn (paulq); sfc@ietf.org<mailto:sfc@ietf.org>
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>Hi, Paul B.,
>
>Thanks for the conversation, please find one follow-up inline.
>
>On Dec 1, 2015, at 5:57 PM, Bottorff, Paul
><paul.bottorff@hpe.com<mailto:paul.bottorff@hpe.com>> wrote:
>
>Hi Carlos:
>
>More on this below,
>
>Cheers,
>
>Paul
>
>From: Carlos Pignataro (cpignata) [mailto:cpignata@cisco.com]
>Sent: Tuesday, December 01, 2015 2:32 PM
>To: Bottorff, Paul
>Cc: Paul Quinn (paulq); Andrew G. Malis; sfc@ietf.org<mailto:sfc@ietf.org>
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>Paul B.,
>
>Please see inline.
>
>On Dec 1, 2015, at 5:12 PM, Bottorff, Paul
><paul.bottorff@hpe.com<mailto:paul.bottorff@hpe.com>> wrote:
>
>Hi Paul Q.:
>
>See inline,
>
>Cheers,
>
>Paul
>
>From: Carlos Pignataro (cpignata) [mailto:cpignata@cisco.com]
>Sent: Tuesday, December 01, 2015 1:52 PM
>To: Bottorff, Paul
>Cc: Paul Quinn (paulq); Andrew G. Malis; sfc@ietf.org<mailto:sfc@ietf.org>
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>Hi, Paul B.,
>
>On Dec 1, 2015, at 4:45 PM, Bottorff, Paul
><paul.bottorff@hpe.com<mailto:paul.bottorff@hpe.com>> wrote:
>
>Hi Paul and Andew:
>
>
>Paul, I agree that fixed length is easiest to implement and will allow
>the most rapid adoption. Never the less, a standard is of no value if it
>does not improve interoperability.
>
>Of course. I do not see how interoperability is hampered in this case,
>however.
>PB>If an application needs TLVs then it can¹t interoperate with a system
>that needs fixed sized formats. In effect you have two divergent
>standards.
>
>
>If an SFP needs TLVs, it would be set with TLVs. That is part of the
>shared SFP context. MD Type 1 and MD Type 2 are protocol options, not
>divergent standards.
>PB>And if you have an SFP with one SF that needs TLVs and one that needs
>fixed headers you¹re going to translate the formats at the SFF? The
>result is the worst possible world where the switches need to know both
>formats and translate between them for various SFs.
>
>
>I am not sure what it means to have ³an SF that needs TLVs and one that
>needs fixed headers². Clearly, I am not proposing any translation!
>
>Don¹t forget there is a control-plane programming the SFs/SFFs, and that
>CP would set up the MD Type for a given SFP, so SFs do not Œneed¹
>specific encodings.
>
>Now, to mitigate the risk of having no intersection in capability (one SF
>supporting *only* Type 1 and one SF supporting *only* Type 2) is that we
>need to specify a MUST implement ‹ and that should be the simplest to
>implement which allows for all common use cases ‹ in other words, Type 1.
>
>See below.
>
>What I would suggest is either:
>1) make TLVs the mandatory format with fixed size optional;
>2) eliminate the TLV option entirely;
>3) change the NSH header format options so the fixed size header is
>always present with optional TLVs following the fixed sized header.
>
>To me, option 3 would not achieve a useful outcome. Basically, we could
>not count with a deterministically fixed header, and the flexible
>TLV-based option would always have ³stuff² before. Basically, this would
>negate the benefits of both MD Type 1 and MD Type 2.
>
>PB>For option 3 the fixed headers are at a constant offset which is what
>is important to parse them easily. It is possible for a switch or for
>software to use the fixed information at a fixed offset ever though TLV
>data may follow.
>
>
>I see the problem space quite differently: If an SFP needs shared context
>that fits in an MD Type 1, it is set with MD Type 1. If it needs more,
>then it needs to parse the TLVs anyway (and thus a fixed part followed by
>TLVs does not help).
>PB>TLVs always cost more than fixed size areas because they must encode
>individual TLs. An application that needs more than the fixed area can
>encode can use the fixed area for a portion of the meta-data and then add
>as many extension TLVs as are needed. The resulting encode will be at
>least as efficient as TLVs alone.
>
>Now, bring the conversation a level down from theoretical to practical,
>draft-guichard-sfc-nsh-dc-allocation-02,
>draft-meng-sfc-nsh-broadband-allocation, and
>draft-napper-sfc-nsh-mobility-allocation show what¹s needed for the WG
>use cases. MD Type 2 adds extra flexibility (at a price).
>PB>An talking very practically we are not omniscient. When we find we
>need a new piece of meta-data for these base use cases an extension TLV
>provides the options of retaining the existing formatted data while
>adding an additional piece of meta-data. If done carefully, this can
>allow backward compatibility with equipment that does not understand the
>new extensions.
>
>In other words, the minimum common denominator and the simpler to
>implement is MD Type 1.
>PB>My option 2 is the simpler option. Fixed length only. What is
>currently proposed is the most complex since it leads to multiple formats
>with translations between them.
>
>
>Please no translations!
>
>‹ Carlos.
>
>Thanks!
>
>‹ Carlos.
>
>If option 3 is chosen then applications can always count on the fixed
>sized header as their default.
>
>They could count with a fixed size part, not with a fixed sized header,
>if I understand the proposal correctly.
>
>PB>This is one better than the current proposal which can¹t count on
>either a fixed sized header or on a fixed size part at a known offset.
>
>Thanks,
>
>‹ Carlos.
>
>
>Cheers,
>
>Paul
>
>From: sfc [mailto:sfc-bounces@ietf.org] On Behalf Of Paul Quinn (paulq)
>Sent: Tuesday, December 01, 2015 12:14 PM
>To: Andrew G. Malis
>Cc: sfc@ietf.org<mailto:sfc@ietf.org>
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>Hi Andy,
>
>
>Please see below.
>
>
>Thanks
>Paul
>
>
>On Nov 23, 2015, at 10:50 AM, Andrew G. Malis
><agmalis@gmail.com<mailto:agmalis@gmail.com>> wrote:
>
>I agree with Paul B. that interoperability is best served by using a
>header that accommodates the greatest number of possible applications and
>use cases as the common denominator. This argues for type 2 being the
>MUST to implement, with type 1 being an optional optimization for some
>particular use cases or applications that require at most a particular
>number context headers.
>
>
>PQ>  I don't follow that logic: the _easiest_ (in terms of complexity,
>cost, etc.) option makes the most sense to mandate since it allows for a
>broad implementation and helps ensure adoption of the protocol.
>Mandating a more complex option simply slows the adoption.  This is
>exactly the conversation we had when putting together the draft, and one
>that seems to resonate with developers and operators alike.
>
>PQ>  Also, let's not ignore history (you know the old adage ;)): TLV and
>other variable length data plane protocols have not been a success.  We
>can debate the reasons for that, but the fact remains: simple data planes
>get adoption.  As Paul B. points out below, we don't know all the
>metadata answers, but we do know that a bounded amount of metadata is
>very important for SFC use cases.  Let's use that fact, and a simple
>protocol to get implementation out the door.
>
>In a separate email, Med asked a very reasonable question - for type 1,
>why are there four mandatory context headers, rather than 2, 3, 5, 10,
>etc.? The draft contains no particular justification for this choice.
>
>PQ>  That's a very valid question.  The starting premise was simple: a
>bounded set of fixed metadata.   Based on some experience in the service
>space and some initial use case discussion with operators, 4 provided
>some balance: reasonable in that it provided some meaningful space, yet
>not so large as to become unwieldy, all the while forcing some
>discipline.  Overall that has proven to be true as implementations have
>been tested and mapped to use cases.  Of course you can come up with
>cases where 4 is too many, or too few, in which case the draft provides a
>means to accommodate that.
>
>PQ>  I also think we need to be realistic.  We were urged during WG
>formation by a large operator: the IETF cannot spend years trying to
>solve the service chaining issue.  The need for an interoperable protocol
>is acute and operators need to start working on deployment (see the
>vibrancy of the open source projects in this space).  The balance of type
>1 and type 2 allows for velocity and evolution.
>
>
>
>
>It¹s true that there are two particular use cases,
>draft-guichard-sfc-nsh-dc-allocation and
>draft-napper-sfc-nsh-mobility-allocation, that look to make good use of
>exactly 4 context headers. However, these are just two particular
>examples, and not yet accepted by the WG.  Further development of these
>drafts, or even implementation, may show that four are insufficient.
>
>Cheers,
>Andy
>
>
>On Fri, Nov 20, 2015 at 12:20 PM, Bottorff, Paul
><paul.bottorff@hpe.com<mailto:paul.bottorff@hpe.com>> wrote:
>I think we all could agree that fixed headers are easier to implement
>than TLVs, however that does not rationalize mandating a fixed header
>implementation. It would rationalize supporting only fixed length
>headers, however we have been unable to do this. Options always weaken
>standards agreement.
>
>If the application requires TLVs, then it does not provide any standards
>advantage to mandate support for fixed headers. It will not be possible
>for an application that requires TLVs to fall back to fixed length
>headers. If they could, then we should eliminate the TLV option from NSH.
>
>IMHO we should be looking at the abstract semantics for meta-data before
>we consider how to encode it. Once we decide what needs to be encoded
>then we can consider the best encodings and what should be mandatory or
>optional.
>
>Cheers,
>
>Paul
>From: sfc [mailto:sfc-bounces@ietf.org<mailto:sfc-bounces@ietf.org>] On
>Behalf Of Paul Quinn (paulq)
>Sent: Friday, November 20, 2015 6:27 AM
>To: Qin Wu
>Cc: uri.elzur@intel.com<mailto:uri.elzur@intel.com>; Dolganow, Andrew
>(Andrew); sfc@ietf.org<mailto:sfc@ietf.org>; Linda Dunbar
>Subject: Re: [sfc] NSH context headers: fixed/tlv
>
>
>On Nov 19, 2015, at 9:28 PM, Qin Wu
><bill.wu@huawei.com<mailto:bill.wu@huawei.com>> wrote:
>
>Hi, Andrew and Paul:
>It looks I missed a lot of discussion regarding NSH context header in the
>past, thanks Paul to point me the archive.
>Generally speaking, there is tradeoff between performance and flexibility.
>
>
>Absolutely, and that's the reason for offering the two options: balance
>speed/simplicity and flexibility.
>
>The philosophy is to mandate the simplest form of metadata, enabling a
>broad implementation base.  If/when more flexibility is needed a more
>flexible NSH type is available, along with the associated tradeoffs.
>That's the balance that we decided to strike and it seems to be
>reasonable and well accepted.
>
>Thanks,
>Paul
>
>
>_______________________________________________
>sfc mailing list
>sfc@ietf.org<mailto:sfc@ietf.org>
>https://www.ietf.org/mailman/listinfo/sfc
>
>
>_______________________________________________
>sfc mailing list
>sfc@ietf.org<mailto:sfc@ietf.org>
>https://www.ietf.org/mailman/listinfo/sfc
>
>_______________________________________________
>sfc mailing list
>sfc@ietf.org
>https://www.ietf.org/mailman/listinfo/sfc