RE: 6man w.g. last call for <draft-ietf-6man-segment-routing-header-11.txt>

Ron Bonica <rbonica@juniper.net> Wed, 11 April 2018 20:08 UTC

Return-Path: <rbonica@juniper.net>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B2BA12D72F for <ipv6@ietfa.amsl.com>; Wed, 11 Apr 2018 13:08:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.702
X-Spam-Level:
X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 z3ZHNk-5_wLn for <ipv6@ietfa.amsl.com>; Wed, 11 Apr 2018 13:08:54 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 D373B1271FD for <ipv6@ietf.org>; Wed, 11 Apr 2018 13:08:54 -0700 (PDT)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w3BK6w7s010407; Wed, 11 Apr 2018 13:08:53 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=PPS1017; bh=QrpKkDJ6iPyu/Qew3cHF9rohQLqOug58YCYixiojoSc=; b=msiyX1fcQ6LlcFbO02RiXcB1SCh1KE4PWWZEehcPOOghMgmf7IVJpbQb0LpYVYmYg0F9 mLxX2UnPKUsrrmeLOE4R2+/MGC7HQfTQUs0kav6fg4KU8neLOwULo58GH07FoJzEpPfY bk0KJCvdxrTZ/ZC4aISgPiGYqGd3SL2qD7mBbF2v0p4ygMFPvhB+bQ330ZSb3vAQB1C7 ytrUoLWYaA2hbQsffJ6XYTdjoowBuV4l7Uj72TDMIl8z5TNnraoXDNSfxt1YSbe9U0sn eZm6LvldxcPSxHBKsh7OpimSWTnHrDo8DWsHuKsV5vkw0Hov49QCSCjj14pKRY4jtsLS Rg==
Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp0182.outbound.protection.outlook.com [216.32.180.182]) by mx0a-00273201.pphosted.com with ESMTP id 2h9rwd81ch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 11 Apr 2018 13:08:53 -0700
Received: from SN6PR05MB4240.namprd05.prod.outlook.com (52.135.67.146) by SN6PR05MB4176.namprd05.prod.outlook.com (52.135.67.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.3; Wed, 11 Apr 2018 20:08:50 +0000
Received: from SN6PR05MB4240.namprd05.prod.outlook.com ([fe80::59a2:13ab:6110:35af]) by SN6PR05MB4240.namprd05.prod.outlook.com ([fe80::59a2:13ab:6110:35af%13]) with mapi id 15.20.0675.009; Wed, 11 Apr 2018 20:08:50 +0000
From: Ron Bonica <rbonica@juniper.net>
To: stefano previdi <stefano@previdi.net>
CC: Bob Hinden <bob.hinden@gmail.com>, IPv6 List <ipv6@ietf.org>
Subject: RE: 6man w.g. last call for <draft-ietf-6man-segment-routing-header-11.txt>
Thread-Topic: 6man w.g. last call for <draft-ietf-6man-segment-routing-header-11.txt>
Thread-Index: AQHTx5zaEut14AfnNkml+3dwg8ha1aPwy/HQgAEmJACAAInx4IAFqM8AgAPncDA=
Date: Wed, 11 Apr 2018 20:08:50 +0000
Message-ID: <SN6PR05MB4240C8C987A30D3849E866B8AEBD0@SN6PR05MB4240.namprd05.prod.outlook.com>
References: <20160428004904.25189.43047.idtracker@ietfa.amsl.com> <FB1C6E49-81F7-49DD-8E8B-2C0C4735071B@gmail.com> <SN6PR05MB424035B6FECB0057676067B1AEA40@SN6PR05MB4240.namprd05.prod.outlook.com> <87EAF1D7-FC8A-4661-990E-ECCF4AA7C12E@previdi.net> <SN6PR05MB42406D76603C4D7E1B3BE321AEBB0@SN6PR05MB4240.namprd05.prod.outlook.com> <73072E00-E549-488E-8960-B62ACE2F8511@previdi.net>
In-Reply-To: <73072E00-E549-488E-8960-B62ACE2F8511@previdi.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [66.129.241.14]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; SN6PR05MB4176; 7:FHn/YpTWqHIHUE/CfVl6sGJnJ48TYeG10RK+378kqhwtWANhmQSiFXX4tOM6evklW/Sb2fiLctiPuu8iZ5Oh0FpHU4SsMuP9Uv2QCXyQwGeNvbVI56y+ZYtBwCWKq9snFpnTDKa07i0PdZ9TuQ24vjxZxZdIlZ8OXV6gfNIhkVbVoy0IYIEDXyzdkCS4lpb+U87CDT+AdfQthgFjnhqbQKJSsjpFEbo1sn0thpaVyVXCjyD5vaCFACwED0D0BCOQ
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN6PR05MB4176;
x-ms-traffictypediagnostic: SN6PR05MB4176:
x-microsoft-antispam-prvs: <SN6PR05MB41765CBF603EEF51E3F25DEDAEBD0@SN6PR05MB4176.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(138986009662008)(85827821059158);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231221)(944501327)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:SN6PR05MB4176; BCL:0; PCL:0; RULEID:; SRVR:SN6PR05MB4176;
x-forefront-prvs: 0639027A9E
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39380400002)(366004)(396003)(346002)(39860400002)(376002)(199004)(189003)(13464003)(93886005)(8936002)(7736002)(6916009)(6116002)(105586002)(305945005)(3846002)(25786009)(68736007)(6246003)(316002)(229853002)(446003)(486006)(476003)(26005)(102836004)(186003)(74316002)(3280700002)(11346002)(5890100001)(5250100002)(2906002)(478600001)(3660700001)(9686003)(5660300001)(106356001)(2900100001)(97736004)(6436002)(53936002)(6506007)(4326008)(55016002)(99286004)(66066001)(33656002)(54906003)(53546011)(39060400002)(76176011)(81156014)(59450400001)(81166006)(7696005)(8676002)(14454004)(86362001); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR05MB4176; H:SN6PR05MB4240.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-microsoft-antispam-message-info: pX7YWy9Dhzu7uAl4W/v08Yu3O3Bl9d4r4DYPCwnisoKhb5holzxImdGfj6E4UX/4mGy0aYYz54uA8jUnVoGk/XDMkTA51ApC1kgdiG6j2Tc8VZ0pR4Sbal4PVsfloTXpK0Qx6vgipJblscflxuDgTmniM8yYuqMslyrE9YTMS2rTgoOxQdu7fQLx/w9ERY+r35nmHz4NsRMaUHUpHeq9/1xUpg2JiCSDsLGaO6v+DxaZtBsHa7UJCDRVkq+VBfJ9ie4TfZyB6FGM/ExYjN7lowoEdyW9sKhlv4uG01o/AYtTfTzBvp1O9rScGrILMEXcNr9XaPgpTmFMBso/W6+ZermPU7gTWs7lCcz3N1Vs5CRfbUDTfPnWDq8NrB0Zh+cliq3ATmlhoZY4JUzzhWtaW/XCsZNGM50f+DsGxT+jcHI=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Office365-Filtering-Correlation-Id: cde19bd8-2ec4-446f-e491-08d59fe80af5
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: cde19bd8-2ec4-446f-e491-08d59fe80af5
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2018 20:08:50.7284 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB4176
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-04-11_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1804110186
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/EXC5NQyOuJykdTIrakgwJVO8iJQ>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Apr 2018 20:08:58 -0000

Stephano,

This entire conversation is muddied by that fact that a segment identifier is a 128-bit entity that represents either:

- An IPv6 interface (i.e., an attachment to a network link, as defined in [RFC 4291])
- A locator:instruction:parameter structure

When the Destination Address / Segment Identifier represents a locator:instruction:parameter structure:

- the locator (high-order bits) represent a node to which the packet should be delivered
- the instruction (low-order bits) represents how the packet should be processed once it arrives at that node
- the parameter (lowest-order bits)  constrains the instruction

As with any Routing Extension Header, we swap segment identifiers in and out of the Destination Address field of the basic IPv6 header.

So, when the packet arrives at a locator and SL==0, it is questionable as to whether the SRH has been completely processed. At very least, the node needs to execute the instruction that is encoded within the IP Destination Address and Segment List[0]. The node may even need to examine the SRH to execute that instruction.

I am pretty sure that the required procedures can be specified unambiguously. But since we are playing a little fast-and-loose with the semantics of an IP Destination Address, our specification needs to be extremely well crafted.

                                                       Ron

> -----Original Message-----
> From: stefano previdi <stefano@previdi.net>
> Sent: Monday, April 9, 2018 4:09 AM
> To: Ron Bonica <rbonica@juniper.net>
> Cc: Bob Hinden <bob.hinden@gmail.com>; IPv6 List <ipv6@ietf.org>
> Subject: Re: 6man w.g. last call for <draft-ietf-6man-segment-routing-
> header-11.txt>
> 
> Hi Ron,
> 
> 
> > On Apr 5, 2018, at 8:44 PM, Ron Bonica <rbonica@juniper.net> wrote:
> >
> > Hi Stephano,
> >
> > I'm glad you asked this question. RFC 8200 and draft-ietf-6man-segment-
> routing-header define Segments Left (SL) differently. The difference is a bit
> subtle and took me a few readings to catch.
> >
> > RFC 8200 defines SL as follows:
> >
> > "8-bit unsigned integer.  Number of route  segments remaining, i.e.,
> number of explicitly listed intermediate nodes still to be visited before
> reaching the final destination."
> >
> > Therefore, if a packet arrives at a node and the following conditions are
> true, the node skips over the Routing Extension Header and processes the
> next header:
> >
> > - The packets IPv6 Destination address is local to the node
> > - The packet contains a Routing Extension Header
> > - The SL value in the Routing Extension Header is equal to 0
> 
> 
> the same behavior happens into a SR node.
> 
> 
> > In RFC 2460, Routing Extension Type RH0 was compliant with this behavior.
> The description of RHO (RFC 2460, Section 4.4) explains how RH0 used to
> process SL, offering pseudocode and an example. Between the publication
> of RFC 2460 and RFC 8200, RHO was deprecated for other reasons. Therefore,
> the detailed example of SL handling was not brought forward into RFC 8200.
> 
> 
> ok. RFC2460 being obsoleted and RFC8200 not having any description, it looks
> to me the only reference where the processing of the routing header is
> explained is the SRH draft.
> 
> Obviously, the processing of the routing header and the processing of an
> unrecognized routing header type didn’t change.
> 
> 
> > But even though this example was not brought forward into RFC 8200, it
> explains why RFC 8200 says:
> >
> > "If, while processing a received packet, a node encounters a Routing
> header with an unrecognized Routing Type value, the required behavior of
> the node depends on the value of the Segments Left field, as  follows:
> >
> > If Segments Left is zero, the node must ignore the Routing header and
> proceed to process the next header in the packet, whose type is identified
> by the Next Header field in the Routing header.
> >
> > If Segments Left is non-zero, the node must discard the packet and  send
> an ICMP Parameter Problem, Code 0, message to the packet's Source
> Address, pointing to the unrecognized Routing Type."
> >
> > This is because an SL value of 0 means that the Routing Extension Header
> has already been completely processed by upstream nodes. Even if the node
> recognized the Routing Type, it still would skip over it.
> 
> 
> correct. And note that by
>     “processing of the routing header”
> we intend
>     “update the DA with the next segment on the list”.
> 
> So, when SL==0 there’s nothing that needs to be processed in the header.
> 
> 
> > By contrast, draft-ietf-6man-segment-routing header defines the
> Segments Left as follows:
> >
> > "Defined in [RFC8200], it contains the index, in the Segment List, of the
> next segment to inspect.  Segments Left  is decremented at each segment.
> >
> > Therefore, if a packet arrives at a node and the following conditions are
> true, the node processes Segment[0]:
> >
> > - The packets IPv6 Destination address is local to the node
> > - The packet contains a Routing Extension Header
> > - The SL value in the Routing Extension Header is equal to 0
> 
> 
> SL==0 doesn’t imply any processing of the SRH. Both END and END.x
> functions starts with “IF SegmentsLeft > 0”.
> 
> 
> > This is different from the behavior described in RFC 8200 and 2460. It also
> raises two questions:
> >
> > - If the node doesn't recognize SRH, is it safe to ignore the SRH, as
> > recommended by RFC 8200
> 
> 
> rfc8200 applies here.
> 
> 
> > - If the node does recognize SRH and the segment requires decapsulation
> and forwarding, are Extension Headers that follow SRH (e.g. Fragment,
> Destination Options) ignored?
> 
> 
> rfc8200 applies here.
> 
> Thanks.
> s.
> 
> 
> >
> >                                                             Ron
> >
> >
> >> -----Original Message-----
> >> From: stefano previdi <stefano@previdi.net>
> >> Sent: Thursday, April 5, 2018 5:30 AM
> >> To: Ron Bonica <rbonica@juniper.net>
> >> Cc: Bob Hinden <bob.hinden@gmail.com>; IPv6 List <ipv6@ietf.org>
> >> Subject: Re: 6man w.g. last call for
> >> <draft-ietf-6man-segment-routing- header-11.txt>
> >>
> >> Ron,
> >>
> >> on comment 5:
> >>
> >>
> >>> Section 2.2 SRv6 Segment (Comment 5)
> >>>
> >>> According to RFC 8200:
> >>>
> >>> "If, while processing a received packet, a node encounters a Routing
> >> header with an unrecognized Routing Type value, the required behavior
> >> of the node depends on the value of the Segments Left field, as follows:
> >>>
> >>> -  If Segments Left is zero, the node must ignore the Routing header
> >>> and
> >> proceed to process the next header in the packet, whose type is
> >> identified by the Next Header field in the Routing header.
> >>>
> >>> -  If Segments Left is non-zero, the node must discard the packet
> >>> and send
> >> an ICMP Parameter Problem, Code 0, message to the packet's Source
> >> Address, pointing to the unrecognized Routing Type."
> >>>
> >>> This is safe, so long as all Routing Extension Types use SL == 0  to
> >>> indicate
> >> that the Routing Extension Header has been completely processed. It
> >> is may not be safe when SL == 0 means that one more segment needs to
> >> be processed.
> >>>
> >>> In the SRH, SL == 0 indicates that one more segment needs to be
> >> processed.
> >>
> >>
> >> sorry, I don’t understand.
> >>
> >> Can you point me the text in draft-ietf-6man-segment-routing-header
> >> that states that ?
> >>
> >> If it’s the case it should be obviously corrected.
> >>
> >> SL==0 means the packet is traveling within the last segment.
> >>
> >> draft-ietf-6man-segment-routing-header does not modify the semantic
> >> of “Segments Left”.
> >>
> >> It does modify the way segment list is encoded (that’s one of the
> >> reason it’s a different routing header type) but not the "Segments Left”
> field semantic.
> >>
> >> s.
> >>
> >>
> >>
> >>
> >