Re: [sfc] TTL field within the NSH base header

<mohamed.boucadair@orange.com> Tue, 02 May 2017 06:05 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 427CF128A32 for <sfc@ietfa.amsl.com>; Mon, 1 May 2017 23:05:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.4
X-Spam-Level:
X-Spam-Status: No, score=-5.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-2.8, RP_MATCHES_RCVD=-0.001, 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 N_dwhoEHXJFl for <sfc@ietfa.amsl.com>; Mon, 1 May 2017 23:05:48 -0700 (PDT)
Received: from relais-inet.orange.com (mta241.mail.business.static.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 1FC6D129B4D for <sfc@ietf.org>; Mon, 1 May 2017 23:02:55 -0700 (PDT)
Received: from opfedar00.francetelecom.fr (unknown [xx.xx.xx.11]) by opfedar24.francetelecom.fr (ESMTP service) with ESMTP id 86DCBC0115; Tue, 2 May 2017 08:02:53 +0200 (CEST)
Received: from Exchangemail-eme3.itn.ftgroup (unknown [xx.xx.50.50]) by opfedar00.francetelecom.fr (ESMTP service) with ESMTP id 674B8180050; Tue, 2 May 2017 08:02:53 +0200 (CEST)
Received: from OPEXCNORMAD.corporate.adroot.infra.ftgroup ([fe80::f1a0:3c6b:bc7b:3aaf]) by OPEXCNORM52.corporate.adroot.infra.ftgroup ([fe80::c482:2589:c116:5790%21]) with mapi id 14.03.0339.000; Tue, 2 May 2017 08:02:53 +0200
From: mohamed.boucadair@orange.com
To: "Joel M. Halpern" <jmh@joelhalpern.com>, Dave Dolson <ddolson@sandvine.com>, Ron Parker <Ron_Parker@affirmednetworks.com>, Joe Clarke <jclarke@cisco.com>, James N Guichard <james.n.guichard@huawei.com>, "sfc@ietf.org" <sfc@ietf.org>
Thread-Topic: [sfc] TTL field within the NSH base header
Thread-Index: AQHSwDKFyt/qHl918UedZrEVKM5ksaHgkZIA
Date: Tue, 02 May 2017 06:02:52 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B933009E5F315@OPEXCNORMAD.corporate.adroot.infra.ftgroup>
References: <yf9nr0yeep0h2j6f08320633.1493382662802@email.android.com> <20170428123908.5161041.12187.10550@sandvine.com> <CDF2F015F4429F458815ED2A6C2B6B0B839926F2@MBX021-W3-CA-2.exch021.domain.local> <787AE7BB302AE849A7480A190F8B933009E5E422@OPEXCNORMAD.corporate.adroot.infra.ftgroup> <E8355113905631478EFF04F5AA706E98705BD046@wtl-exchp-1.sandvine.com> <787AE7BB302AE849A7480A190F8B933009E5E48D@OPEXCNORMAD.corporate.adroot.infra.ftgroup> <0d222943-0036-31a4-0bf0-998010088310@joelhalpern.com>
In-Reply-To: <0d222943-0036-31a4-0bf0-998010088310@joelhalpern.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.5]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/sfc/oSq_bOKJfDREFWiCfLQqnRiQSFk>
Subject: Re: [sfc] TTL field within the NSH base header
X-BeenThere: sfc@ietf.org
X-Mailman-Version: 2.1.22
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, 02 May 2017 06:05:51 -0000

Hi Joel, 

Works for me. Thanks.

Cheers,
Med

> -----Message d'origine-----
> De : Joel M. Halpern [mailto:jmh@joelhalpern.com]
> Envoyé : vendredi 28 avril 2017 17:17
> À : BOUCADAIR Mohamed IMT/OLN; Dave Dolson; Ron Parker; Joe Clarke; James
> N Guichard; sfc@ietf.org
> Objet : Re: [sfc] TTL field within the NSH base header
> 
> One of the minor clarifications for the document, not related directly
> to TTL, that I gathered from the list discussion was that some people
> were understanding the 0 on transmission requirement the way you say.
> 
> That was never the intent.  That would have made the behavior
> counter-productive for forward compatibility.
> So we will direct the authors to clarify that the MBZ is on origination,
> and that other devices must preserve the reserved bits unmodified.
> (When the bits have meaning, and the meaning is understood, then the
> intermediate behavior will depend upon the specific bit obviously.)
> 
> Yours,
> Joel
> 
> On 4/28/17 10:33 AM, mohamed.boucadair@orange.com wrote:
> > Re-,
> >
> >
> >
> > The current spec says :
> >
> >
> >
> >    All other flag fields are reserved for future use.  Reserved bits
> >
> >    MUST be set to zero when sent and MUST be ignored upon receipt.
> >
> >
> >
> > Which means that these bits are zeroed, not forwarded as received.
> >
> >
> >
> > Changing that behavior would avoid that the SFF hop limit bits are
> > zeroed by an non-compatible SFF, but still doing so would lead to
> > processing a hop limit field that is not reflecting the exact SFF hops
> > (SFF loops will be still possible, then). Is it worth to enable the
> > feature in such SFC domain given the unreliability of the mechanism?
> > Wouldn’t be simple to require to enable it only if all SFFs/Classifier
> > if a domain comply with it?
> >
> >
> >
> > Cheers,
> >
> > Med
> >
> >
> >
> > *De :*Dave Dolson [mailto:ddolson@sandvine.com]
> > *Envoyé :* vendredi 28 avril 2017 16:23
> > *À :* BOUCADAIR Mohamed IMT/OLN; Ron Parker; jmh.direct; Joel M.
> > Halpern; Joe Clarke; James N Guichard; sfc@ietf.org
> > *Objet :* RE: [sfc] TTL field within the NSH base header
> >
> >
> >
> > This is the debate about whether the flags must be set to zero when the
> > packet is created or each time it is sent from a device.
> >
> > I think most of us hoped that SFFs and SFs only “forward” packets, not
> > “write” packets.
> >
> >
> >
> > Should we change the language to indicate the difference between a
> > classifier creating a packet and zeroing the reserved flags vs. SFFs and
> > SFs forwarding whatever is received?
> >
> >
> >
> >
> >
> > *From:*mohamed.boucadair@orange.com
> > <mailto:mohamed.boucadair@orange.com>
> [mailto:mohamed.boucadair@orange.com]
> > *Sent:* Friday, April 28, 2017 10:17 AM
> > *To:* Ron Parker; Dave Dolson; jmh.direct; Joel M. Halpern; Joe Clarke;
> > James N Guichard; sfc@ietf.org <mailto:sfc@ietf.org>
> > *Subject:* RE: [sfc] TTL field within the NSH base header
> >
> >
> >
> > Ron, all,
> >
> >
> >
> > About the decrement of 0 to 63, isn’t that behavior broken anyway given
> > that a non-compliant SFF in the path will set these bits to zero because
> > reserved bits “MUST be set to zero when sent”?
> >
> >
> >
> > Cheers,
> >
> > Med
> >
> >
> >
> > *De :*sfc [mailto:sfc-bounces@ietf.org] *De la part de* Ron Parker
> > *Envoyé :* vendredi 28 avril 2017 16:07
> > *À :* Dave Dolson; jmh.direct; Joel M. Halpern; Joe Clarke; James N
> > Guichard; sfc@ietf.org <mailto:sfc@ietf.org>
> > *Objet :* Re: [sfc] TTL field within the NSH base header
> >
> >
> >
> > Thanks all for the discussion, and I now appreciate the backward
> > compatibility aspect.   But, if we take a more direct approach to
> > describing the behavior, we simply need to state what happens when SFF
> > receives NSH with TTL=0, TTL=1, TTL >1.   I might offer the following…
> >
> >
> >
> > TTL: Service plane time-to-live. Treatment of certain received TTL
> > values by an SFF is dependent on the SFF’s position within the sequence
> > of SFF’s for the given Service Function Path.   A received TTL value of
> > 0 received by the first SFF in an SFP shall be treated as if it had a
> > value of 64, for backward compatibility with classifiers that don’t set
> > TTL.    A received TTL value of 0 at a non-first SFF shall result in
> > discard of the packet.   A received TTL value of 1 received by the last
> > SFF in an SFP is valid and shall result in appropriate forwarding to
> > attached service functions.   A received TTL value of 1 received by a
> > non-last SFF in an SFP shall result in discard of the packet.   For all
> > scenarios where propagation to a subsequent SFF are valid, the
> > transmitted TTL shall be a decrement of 1 from the received TTL, except
> > in the special case of first-SFF receiving TTL 0 which shall result in a
> > transmitted TTL of 63.   Classifiers that support TTL shall adopt 63 as
> > the default initial TTL.
> >
> >
> >
> >
> >
> >
> >
> > *From:*Dave Dolson [mailto:ddolson@sandvine.com]
> > *Sent:* Friday, April 28, 2017 8:39 AM
> > *To:* jmh.direct <jmh.direct@joelhalpern.com
> > <mailto:jmh.direct@joelhalpern.com>>; Joel M. Halpern
> > <jmh@joelhalpern.com <mailto:jmh@joelhalpern.com>>; Joe Clarke
> > <jclarke@cisco.com <mailto:jclarke@cisco.com>>; Ron Parker
> > <Ron_Parker@affirmednetworks.com
> > <mailto:Ron_Parker@affirmednetworks.com>>; James N Guichard
> > <james.n.guichard@huawei.com <mailto:james.n.guichard@huawei.com>>;
> > sfc@ietf.org <mailto:sfc@ietf.org>
> > *Subject:* Re: [sfc] TTL field within the NSH base header
> >
> >
> >
> > Sorry, yes, I think the proposed text is OK.
> >
> > If it would help others, we could be more explicit about the reason.
> >
> >
> >
> > David Dolson
> > ‎
> >
> > *From: *jmh.direct
> >
> > *Sent: *Friday, April 28, 2017 8:31 AM
> >
> > *To: *Dave Dolson; Joel M. Halpern; Joe Clarke; Ron Parker; James N
> > Guichard; sfc@ietf.org <mailto:sfc@ietf.org>
> >
> > *Subject: *Re: [sfc] TTL field within the NSH base header
> >
> >
> >
> > It seems you are saying you agree with the described behavior.
> >
> >
> >
> > Can you live with the text as it is?
> >
> >
> >
> > Yours,
> >
> > Joel
> >
> >
> >
> >
> >
> >
> >
> > Sent via the Samsung Galaxy S® 6, an AT&T 4G LTE smartphone
> >
> >
> >
> > -------- Original message --------
> >
> > From: Dave Dolson <ddolson@sandvine.com <mailto:ddolson@sandvine.com>>
> >
> > Date: 4/28/17 13:49 (GMT+01:00)
> >
> > To: "Joel M. Halpern" <jmh@joelhalpern.com
> > <mailto:jmh@joelhalpern.com>>, Joe Clarke <jclarke@cisco.com
> > <mailto:jclarke@cisco.com>>, Ron Parker <Ron_Parker@affirmednetworks.com
> > <mailto:Ron_Parker@affirmednetworks.com>>, James N Guichard
> > <james.n.guichard@huawei.com <mailto:james.n.guichard@huawei.com>>,
> > sfc@ietf.org <mailto:sfc@ietf.org>
> >
> > Subject: Re: [sfc] TTL field within the NSH base header
> >
> >
> >
> > For the record, I want backwards compatibility.
> > And also, I think it is wasteful to have a code-point that is prohibited
> > on the wire. I've always felt IP.TTL was bad for this reason.
> >
> > As for the wording, we could be explicit that TTL=0 is valid on the
> > wire, meaning 64.
> >
> > David Dolson
> > ‎
> >   Original Message
> > From: Joel M. Halpern
> > Sent: Friday, April 28, 2017 4:28 AM
> > To: Joe Clarke; Ron Parker; Dave Dolson; James N Guichard; sfc@ietf.org
> > <mailto:sfc@ietf.org>
> > Subject: Re: [sfc] TTL field within the NSH base header
> >
> >
> > There are really two separate issues.
> > First, and most important, what behavior does the working group want?
> >      The discussion started with a proposal along the lines Ron
> > suggests, and moved to what is in the summary Jim provided.  We are
> > trying as chairs to reflect the WG agreement, and to bring this to a
> > close.  Yes, we are incurring technical debt (of different forms and
> > degrees) in any solution that allows backwards compatibility.  So, yes,
> > we can still change this if the WG wants, but this was the rough
> > consensus Jim and I saw.
> >
> > Second, there is the question of whether the text is clear.  It is
> > always a balancing act between explaining the motivation for everything
> > at great length 9and losing the reader), vs just giving the behavior
> > with no explanation (and tending to get incorrect implementations.)  We
> > need to be somewhere in between.  We may not be in the right place.
> >
> > Yours,
> > Joel
> >
> > On 4/27/17 5:55 PM, Joe Clarke wrote:
> >> On 4/27/17 16:37, Joel M. Halpern wrote:
> >>> That alternative was discussed.  It also works.
> >>> However, with that alternative, if the Initial classifier is an old
> >>> system (not RFC compliant), we will not get any protection from the
> TTL.
> >>> If we take this (admittedly slightly odd) approach to decrementing the
> >>> TTL, then even though we do not recommend it, things still work with
> an
> >>> initial classifier that generates a TTL of 0.
> >>>
> >>> It is thus more robust, so the WG selected it in discussion atht
> >>> einterim adn on the list.
> >>
> >> Thanks, Joel.  I know it was discussed, but reading the final text, I
> >> wonder if this is just building technical debt into the protocol from
> >> the beginning.
> >>
> >> While this makes sense today, will it be as obvious (or as needed) in a
> >> year?  In two?
> >>
> >> Ron's text does seem clearer at the expense of the backward compat
> >> explicitness.
> >>
> >> Joe
> >>
> >>>
> >>> Yours,
> >>> Joel
> >>>
> >>> On 4/27/17 4:05 PM, Ron Parker wrote:
> >>>> Thanks, Dave.    Do you think it is possible to combine that backward
> >>>> compatibility with the simpler (to me) concept of testing for a
> packet
> >>>> that arrives with TTL=1 and conditioning behavior on whether the SFF
> is
> >>>> the terminating SFF of the path?
> >>>>
> >>>>
> >>>>
> >>>>    Ron
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> *From:* Dave Dolson [mailto:ddolson@sandvine.com]
> >>>> *Sent:* Thursday, April 27, 2017 4:03 PM
> >>>> *To:* Ron Parker <Ron_Parker@affirmednetworks.com
> > <mailto:Ron_Parker@affirmednetworks.com>>; James N Guichard
> >>>> <james.n.guichard@huawei.com <mailto:james.n.guichard@huawei.com>>;
> > sfc@ietf.org <mailto:sfc@ietf.org>
> >>>> *Subject:* RE: TTL field within the NSH base header
> >>>>
> >>>>
> >>>>
> >>>> Ron,
> >>>>
> >>>> Decrementing from zero to reach 63, and checking for zero after
> >>>> decrementing provides a degree of backwards compatibility with the
> prior
> >>>> header format.
> >>>>
> >>>> This permits packets on the wire to have 0 in the bits that were
> >>>> previously “reserved”.
> >>>>
> >>>>
> >>>>
> >>>> -Dave
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> *From:*sfc [mailto:sfc-bounces@ietf.org] *On Behalf Of *Ron Parker
> >>>> *Sent:* Thursday, April 27, 2017 3:21 PM
> >>>> *To:* James N Guichard; sfc@ietf.org <mailto:sfc@ietf.org>
> <mailto:sfc@ietf.org>
> >>>> *Subject:* Re: [sfc] TTL field within the NSH base header
> >>>>
> >>>>
> >>>>
> >>>> I had to really think about the language around decrementing by 1
> from 0
> >>>> and reaching 63.   This would only occur in an error scenario where a
> >>>> preceding SFF misbehaved, wouldn’t it?   Why are we insistent that
> the
> >>>> test for 0 happen after decrement, thereby creating this problem.
> I
> >>>> suspect that this has been already discussed and I apologize if I
> missed
> >>>> it, but if the language were simplified to say an SFF that receives
> an
> >>>> NSH with TTL=1 shall not forward it to another SFF (e.g., allowing it
> to
> >>>> engage its local SF instances, still).   Otherwise, it must decrement
> by
> >>>> 1 before forwarding to another SFF.
> >>>>
> >>>>
> >>>>
> >>>> An exact wording along these lines might be something like:
> >>>>
> >>>>
> >>>>
> >>>> TTL: Service plane time-to-live. An SFF MUST test the TTL before
> >>>> forwarding to another SFF for a given Service Function Chain.  If the
> >>>> received TTL value is 1, the SFF MUST drop packets that would
> otherwise
> >>>> have been forwarded to another SFF, but SHALL send such packets to
> >>>> attached service functions if the SFF terminates the Service Function
> >>>> Chain.   If the TTL value is greater than 1, the SFF must decrement
> the
> >>>> TTL by 1 before forwarding to another SFF.   The default for
> originating
> >>>> an NSH packet is a TTL value of 63.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> *From:* sfc [mailto:sfc-bounces@ietf.org] *On Behalf Of *James N
> Guichard
> >>>> *Sent:* Thursday, April 27, 2017 2:54 PM
> >>>> *To:* sfc@ietf.org <mailto:sfc@ietf.org> <mailto:sfc@ietf.org>
> >>>> *Subject:* [sfc] TTL field within the NSH base header
> >>>>
> >>>>
> >>>>
> >>>> Dear WG:
> >>>>
> >>>>
> >>>>
> >>>> Having reviewed all of the email discussion on the mailing list it
> >>>> appears to the chairs that we have consensus to add a TTL field to
> the
> >>>> NSH base header. We would like to propose the following changes:
> >>>>
> >>>>
> >>>>
> >>>> Section 3.2:
> >>>>
> >>>> Update figure 2 as follows:
> >>>>
> >>>>
> >>>>
> >>>>      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|R|    TTL    |   Length  |R|R|R|R|MD Type| Next Protocol |
> >>>>
> >>>>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >>>>
> >>>>
> >>>>
> >>>> Add the following text after figure 2:
> >>>>
> >>>>
> >>>>
> >>>> TTL: Service plane time-to-live. An SFF MUST decrement the TTL by a
> >>>> value of 1 for all NSH packets it receives. Decrementing by a value
> of 1
> >>>> from 0 shall result in a TTL value of 63. The default for originating
> an
> >>>> NSH packet is a TTL value of 63. The decrement SHALL occur before
> >>>> testing for 0. After decrement, if the TTL is 0, the NSH packet MUST
> NOT
> >>>> be forwarded.
> >>>>
> >>>>
> >>>>
> >>>> Section 3.4:
> >>>>
> >>>> Update figure 4 to reflect the new base header format as per section
> 3.2
> >>>> base header.
> >>>>
> >>>>
> >>>>
> >>>> Section 3.5:
> >>>>
> >>>> Update figure 5 to reflect the new base header format as per section
> 3.2
> >>>> base header.
> >>>>
> >>>>
> >>>>
> >>>> Section 12.2.1:
> >>>>
> >>>> Current text is as follows:
> >>>>
> >>>>
> >>>>
> >>>>    There are ten bits at the beginning of the NSH Base Header.  New
> bits
> >>>>
> >>>>    are assigned via Standards Action [RFC5226].
> >>>>
> >>>>
> >>>>
> >>>>    Bits 0-1 - Version
> >>>>
> >>>>    Bit 2 - OAM (O bit)
> >>>>
> >>>>    Bit 3 - Critical TLV (C bit)
> >>>>
> >>>>    Bits 4-9 - Reserved
> >>>>
> >>>>
> >>>>
> >>>> Replace entire text as follows:
> >>>>
> >>>>
> >>>>
> >>>>    There are eight reserved bits in the NSH Base Header. New bits
> >>>>
> >>>>    are assigned via Standards Action [RFC5226].
> >>>>
> >>>>
> >>>>
> >>>>    Bits 0-1 - Version
> >>>>
> >>>>    Bit 2 - OAM (O bit)
> >>>>
> >>>>    Bit 3 - Reserved
> >>>>
> >>>>    Bits 16-19 - Reserved
> >>>>
> >>>>
> >>>>
> >>>> Section 12.2.3:
> >>>>
> >>>> Current text has the MD-type as 8-bit values.
> >>>>
> >>>>
> >>>>
> >>>> Update text for this section and table 1 to reflect 4-bit values
> *not*
> >>>> 8-bit values.
> >>>>
> >>>>
> >>>>
> >>>> *Please review carefully and indicate support for these changes (or
> any
> >>>> changes to the suggested text).*
> >>>>
> >>>> * *
> >>>>
> >>>> Thanks,
> >>>>
> >>>>
> >>>>
> >>>> Jim & Joel
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> 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
> >>
> >