Re: [Idr] Bug in draft-ietf-idr-rfc5575bis, worth fixing?

John Scudder <jgs@juniper.net> Tue, 29 September 2020 15:27 UTC

Return-Path: <jgs@juniper.net>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2EE873A0EAD; Tue, 29 Sep 2020 08:27:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.196
X-Spam-Level:
X-Spam-Status: No, score=-3.196 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.2, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net header.b=RqxZBz73; dkim=pass (1024-bit key) header.d=juniper.net header.b=Y1Cz752w
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 SpcHa1Y9Fz-Q; Tue, 29 Sep 2020 08:26:59 -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 67CA33A0D33; Tue, 29 Sep 2020 08:26:59 -0700 (PDT)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 08TFJBfD004900; Tue, 29 Sep 2020 08:26:57 -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 : mime-version; s=PPS1017; bh=82SuCRV7On5ufaBdQ8vjK1f1Y7GdlPgGIJIpyvPHr88=; b=RqxZBz73lhG3Rg3f7RU7W5OlCX65AbsA3UqWR7/kGhKJrQtwzoLYBBkY0f0TMX26ZYYw 9QYSsAwJK4DkRQ1XjqfKjNboa42WElCevlZhr8OLJ16FQj8i94yzdUJnjEL9BXHbeRcI fBk2wVvI6Vn/JPOl/0oCwVFl+vDajIgpFEAn9deTJEc1o5YsZoQ21ONPlofbNchPsm9/ WGRWVTHJdNKFLTdzYPF8xasGBpKzo0wkHDiL0/+gPXwLpy9QMae8QfhC1bMLN+5xldlk LnnSkpniQoTk0NRPe+/lmHwx7iqF84ZBql9Z0uWjBPdMZUIcto7z+4cvUgrNsqdyhppZ Ig==
Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2053.outbound.protection.outlook.com [104.47.37.53]) by mx0a-00273201.pphosted.com with ESMTP id 33t4wn4xds-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Sep 2020 08:26:56 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZNr6rcmcSOeHPqcUwyS41MTm0GHydQmroq0Hu9mehVp+SwvtN/qtKp2rVRiKYXebTTHo0qudBqaE4u0GHrq2+C9ZZ6zy2HNh0g/Q+7gfGV0s69m0MAzp/QuiHya48x5pBZulV50VKknnEkjyTGLXYOMe1eWBrXM+qqV2sRy/CLUugfQ6fcrlV1oTJxEWpuzj5ZR3DW2eXvtfe1YcEDkY7ciZw0AeEJCZTF8ygtUsdUW0FzvsE+xUNUJXvOj8IcfF+u2oGmRoK1ujV20GTniczOBS6zBhkAnHG5tFdpF7SEkuQblW7D0Y9HWHbA/edUfAkOI8AvBD1GVlIJQxynSCiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=82SuCRV7On5ufaBdQ8vjK1f1Y7GdlPgGIJIpyvPHr88=; b=I9LLomLYjUvwR7/FI9ffDeNxJO1LK58gNLJCMF48c5dThqu/ILHG8ZUZBAB9jg0PViuPdl8upg89oHHeg8guEYPS7STSHsDJWDHIMjaM2n8WY3OCgLLyX5/K4FFsJv3f8ib45aze+2qePcX1GRlQNQNlcFbfbYSOOIYLYJrWOvtajbxCw48EkuWS5PlEqye0Cbla07Xk/WzRy4vlgXgxo+JKCPJ9dibDwuMhW+XkP+K7PF00GiqN8txsYhVCscbcMBn/LxyrsOxXnQtyeHec+MA+VIzzToDujh8+CidU3svKpQUpBfs96CCmD+iAli63zCGAbn/6qzAWt9l//cXyEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=82SuCRV7On5ufaBdQ8vjK1f1Y7GdlPgGIJIpyvPHr88=; b=Y1Cz752wHscLhAm5Q+BGVNWUO5doXi8sMWtiSDVsNsj9Muqhs660wPFVYq2ThiXHJlCSulCmngKebMhWdWY8RBx+1BWNz27GD6yCSHEFW0D9DgPbmg43FnGidYbfQyUjEbHYa5k3Y2HB97iGfjwfLkXoyo28RE7EJFuBS0QPNCU=
Received: from BL0PR05MB5076.namprd05.prod.outlook.com (2603:10b6:208:83::12) by BL0PR05MB4740.namprd05.prod.outlook.com (2603:10b6:208:58::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.20; Tue, 29 Sep 2020 15:26:54 +0000
Received: from BL0PR05MB5076.namprd05.prod.outlook.com ([fe80::e542:8237:ac48:ef5c]) by BL0PR05MB5076.namprd05.prod.outlook.com ([fe80::e542:8237:ac48:ef5c%7]) with mapi id 15.20.3433.031; Tue, 29 Sep 2020 15:26:54 +0000
From: John Scudder <jgs@juniper.net>
To: "bruno.decraene@orange.com" <bruno.decraene@orange.com>
CC: Alvaro Retana <aretana.ietf@gmail.com>, Jeffrey Haas <jhaas@pfrc.org>, Hares Susan <shares@ndzh.com>, "idr@ietf. org" <idr@ietf.org>, "draft-ietf-idr-rfc5575bis@ietf.org" <draft-ietf-idr-rfc5575bis@ietf.org>
Thread-Topic: [Idr] Bug in draft-ietf-idr-rfc5575bis, worth fixing?
Thread-Index: AQHWke6RJ/7GqRzh40q9dKt5uqwGhKl5lcCAgAAjvQCABE7wEIAAWpGAgAAQxQCAAPsGgIAAV0SA
Date: Tue, 29 Sep 2020 15:26:54 +0000
Message-ID: <328E548A-6169-4401-8E2D-319E2D556F0A@juniper.net>
References: <303E54F6-833A-4458-B3E6-DE90E7CA121B@juniper.net> <22341_1601052988_5F6E213C_22341_268_1_53C29892C857584299CBF5D05346208A48F82C17@OPEXCAUBM43.corporate.adroot.infra.ftgroup> <DEE76A95-339B-433C-BD46-AD0243F72FBE@juniper.net> <3366_1601300732_5F71E8FC_3366_6_3_53C29892C857584299CBF5D05346208A48F86028@OPEXCAUBM43.corporate.adroot.infra.ftgroup> <21B4E52C-38F4-4C94-985C-8C1DF88F4A92@juniper.net> <CAMMESsxG+ASdax1USizop-1bzYELcSdvND-f3RNEJ78zDUPrng@mail.gmail.com> <30731_1601374474_5F73090A_30731_129_3_53C29892C857584299CBF5D05346208A48F8799E@OPEXCAUBM43.corporate.adroot.infra.ftgroup>
In-Reply-To: <30731_1601374474_5F73090A_30731_129_3_53C29892C857584299CBF5D05346208A48F8799E@OPEXCAUBM43.corporate.adroot.infra.ftgroup>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3608.120.23.2.4)
authentication-results: orange.com; dkim=none (message not signed) header.d=none;orange.com; dmarc=none action=none header.from=juniper.net;
x-originating-ip: [162.225.191.192]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: ca857e99-3b49-45af-0b0c-08d8648c18a1
x-ms-traffictypediagnostic: BL0PR05MB4740:
x-microsoft-antispam-prvs: <BL0PR05MB47400012198C8445E4D33582AA320@BL0PR05MB4740.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: wXMyoNc3N6H7SxiYQYKLxe62HKt2QchvZdozZOAtRw6oIAW9Re8FmbVOro/LIghHIq4RTn5TwdxpbJJBosSMIXNCzJWQ7BqZ+ne4WxIBVRYuQIKHibnK8qyQ/L9oRyFibeVRLQZJKHIdy9QOc3QAsM5V04UdgobWJc9xjMpj0GASmAbUYxhhknpn26UzD21Fn2H48nA/YuMl1vA5C95lp27Qag+tWO5eIgCnUWaD2Apyf7m9m3sXSIpqY9ZH3RwjAvsNcLRpiOo7pczR6WW5VZiGXQryj4NQlrN/iLvnubypYR1pOvJeRCnARoXSmmoFPkozHH1UmnUQ9oJ6voZ5v8K0DCDj8ltzIkNy0ss8EFqyFGyhT04fhp/zOp510HobJ/KJHrXLZ9K6C0BsrUtX2g==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR05MB5076.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(376002)(366004)(346002)(39840400004)(396003)(478600001)(4326008)(33656002)(8936002)(2906002)(86362001)(2616005)(5660300002)(186003)(36756003)(30864003)(966005)(71200400001)(6486002)(26005)(54906003)(316002)(53546011)(6506007)(91956017)(76116006)(66446008)(64756008)(66556008)(66476007)(66946007)(6512007)(166002)(8676002)(83080400001)(83380400001)(6916009)(579004)(559001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: oz03TL1ubYsg/noiC+rJDWy0k/d6Q7ZP8SfMRkysKa9tBgHWisfTIpYVdPAGgr9SxJv1GdQgP2tFDgMAkCM1tTzwpuFxwd4rkJhz2P32FXnDJem6+gd8XD35MZI4tuBeLHbNZUTMAQrDFFbYy2FvswFsyyZ0oW3D9x+7Bse0JlJEoqTMc27Gxc5nSWbHfzvoUxvsMsAKSD2mnc7NT/aiaJ2/UzIu9y63HzTMly0S3+vDvxARMiEtdvhRqDOFmYSiiKLNVCKaKGlT3sMEL7ct3SY9CbdCfW1uhddE+KSo98MnWPSYrZdH3H8zqfrBbIAjhWzX+K3zxf+wprBKdo1qLLfjWXuAJqm6USGKolPvPbPszipS8p2bnIzgioAPmMWz0qHJ7zON8Bypfmd6ucPCprPhG2p86chHmWoWQuaiFVpO2f0BM9PpdJKCWeeNvh4+8ELALVoRVC2XYVfYh0TQfKkdzBhT6GtjqoQV+Rtg3IsjpO7YRSR8OiY/PmFAwcH1Q2CdVZtC/Rrmpv2kD/ewpxJ4fH5XOXQd70e0CNb137l0To0YxnG2YV9ZOabupq9VF665IphpB0JUTOLrh5FfNU2GiVthn9GG18mA3TLBqsV8XJZPsXwl0vfaQY969JYtWUhM964bgwHguEGVJFAgZw==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_328E548A616944018E2D319E2D556F0Ajunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL0PR05MB5076.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ca857e99-3b49-45af-0b0c-08d8648c18a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2020 15:26:54.3282 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Fm2ySWPeo5k5KAQnD3kJ+s63K2Vk2JhQfyxCQ08lXjfC4Of2IObgZcBLGqAuCMM/
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR05MB4740
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-09-29_07:2020-09-29, 2020-09-29 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 suspectscore=0 adultscore=0 spamscore=0 bulkscore=0 impostorscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009290134
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/8FOB9IqkV6cdjogiFmTBPsBByMc>
Subject: Re: [Idr] Bug in draft-ietf-idr-rfc5575bis, worth fixing?
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Sep 2020 15:27:02 -0000

Speaking as an individual contributor, I find Bruno’s argument convincing.

Speaking as co-chair, the main thing I want is for the final document to be as unambiguous as it can be about important points like this. I think the conversation so far provides good evidence that knowledgeable and reasonable people can and will disagree about what the document says to do, which is not ideal in a spec.

I suppose one can argue that if one implementation chooses the treat-as-withdraw behavior, and another chooses the session reset behavior, the two are still interoperable and the market can apply corrective pressure as needed. But that’s not a preferred way to do it.

—John

On Sep 29, 2020, at 6:14 AM, bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> wrote:



Hi Jeff, Alvaro, all

>  From: Alvaro Retana [mailto:aretana.ietf@gmail.com]
[….]
>Jeff presented some examples and, I think, made a very convincing case of why we really can’t: even if we can look at the length, we would still be guessing.

I don’t share the above opinion.
Copy/pasting  below the referenced email on commenting inline

On Wed, Dec 18, 2019 at 08:11:37AM +0100, Christoph Loibl wrote:
> Hi Jeffrey, Alvaro!
>
> I only pick out this single issue from the complete list, because I do not 100% agree with this statement:
>
>
> > On 17.12.2019, at 23:09, Jeffrey Haas <jhaas@pfrc.org><mailto:&lt;jhaas@pfrc.org&gt;> wrote:
> >
> >> If an unknown Flow Specification component exists, then the entire
> >> NLRI cannot be "successfully parsed"...which results in not being able
> >> to use treat-as-withdraw.  The text above leaves us with AFI/SAFI
> >> disable, which is not extension-friendly.
> >
> > This is exactly my largest concern about flowspec right now.  There is no
> > safe way to extend the spec at this point.
> >
> > There are two options available to us, IMO:
> > 1. Flowspec v2, which we stalled out until 5575bis was done.
> > 2. We decide that for 5575-bis that all future extensions MUST be encoded
> > with a TLV format (length being mandatory).  And perhaps even protect a
> > compliant extension with a capability.  This is a major change, but perhaps
> > provides an upgrade path without waiting on v2.
> >>
> >> NEW (suggestion)>
> >>    An advertisement containing an unknown Flow Specification component
> >> should be discarded as specified in Section 5.4 of [RFC7606].
> >
> > You can't parse it, therefore it's malformed.
>
> In case of an unknown flowspec component the parser can run until decoding the component type (always the first byte of the component). When it reads a unknown type-value it can easily jump over the remaining bytes of the entire NLRI (the length of the the complete NLRI is encoded in the first bytes of the NLRI) without needing to understand what is in there, because it should treat it as withdraw. I do not see the problem. It is supposed to “ignore” the entire NLRI not only a single component of it.

Sigh.  Into example-land we go:

You receive the following byte-stream as NLRI in a single BGP PDU:
NLRI-1, length X components 1,2,3
NLRI-2, length Y components 1,2,3,?,?,?
NLRI-3, length Z components 1,2,3

In the case of NLRI-1,3 if you had received these individually, you'd know
they were correct because the implementation understands them.

In NLRI-2, you don't know what some of the components are starting at first ?.

The _best_ you can do in these circumstances is walk the list of NLRI by
length and see if you can arrive at NLRI boundaries and have a valid BGP
Update PDU.

However, you also don't know if you actually have an NLRI-3 or not.  It
might actually be a random byte stream that just happens to parse as an NLRI
and accidentally lands on a packet boundary.  NLRI-2 may be corrupt and the
length mis-calculated.

[Bruno]
OK for the example.
But I don’t think that this specific example support the general claim (that, to be fair, Jeff has not written)

1)      The general claim, that I’m seeing/extrapolating, is that TLV is not a reliable mechanism: it’s not enough to use the length field to skip the unknown type and the unparsable value.
If so, then we should urgently close the LSR WG as we can’t define new reliable (sub)TLVs. We may also consider closing other WGs.
If not, I don’t think that we can make that argument for rfc5575bis.

2)      You are saying that if one don’t see any error but can’t additionally check the validity of the NLRI then we should not trust the NLRI.
If so, we should probably never accept any IPv6 unicast NRLI as we don’t have additional check available to verify that the NLRI is not erroneous: we only rely on the length.

We have seen these bugs before, even in simple RFC 4271 PDUs.

Exactly my point: same thing with  4271 PDU so same conclusion: we couldn’t accept PDU even when the receiver see no error?

3)  Taking one example, and drawing a general conclusion is not a valid analysis of the situation.
If one want to make the analysis, we need to compare at least two scenarios (e.g. go/no go) and analyze all cases taking into account their probability of occurrence and their cost.
Another example: I can probably find a scenario leading to someone committing a fraud in an election. Should we conclude that it’s preferable to avoid election? Or should we accept the result when no fraud is detected?

However, you also don't know if you actually have an NLRI-3 or not.  It
might actually be a random byte stream that just happens to parse as an NLRI
and accidentally lands on a packet boundary.  NLRI-2 may be corrupt and the
length mis-calculated.
[Bruno] Yes, the NLRI may be corrupted. But one could state any hypothesis. E.g. the NLRI may be corrupted by Jeff. And I don’t think that we could use any remotely possible hypothesis to conclude that it’s better if Jeff does not approach an NLRI / BGP implementation. (sorry to pick a name. I’m assuming that my example and conclusion is seem as obviously stupid.)

We know that the syntax is correct. The content may be correct or incorrect: we don’t know. Why should we conclude that the content is wrong? (especially against the probabilities)

Thanks for the discussion.
Regards,
Bruno




-- Jeff



From: Alvaro Retana [mailto:aretana.ietf@gmail.com]
Sent: Monday, September 28, 2020 9:16 PM
To: DECRAENE Bruno TGI/OLN <bruno.decraene@orange.com<mailto:bruno.decraene@orange.com>>; John Scudder <jgs=40juniper.net@dmarc.ietf.org<mailto:jgs=40juniper.net@dmarc.ietf.org>>; Jeffrey Haas <jhaas@pfrc.org<mailto:jhaas@pfrc.org>>
Cc: Hares Susan <shares@ndzh.com<mailto:shares@ndzh.com>>; idr@ietf. org <idr@ietf.org<mailto:idr@ietf.org>>; draft-ietf-idr-rfc5575bis@ietf.org<mailto:draft-ietf-idr-rfc5575bis@ietf.org>
Subject: Re: [Idr] Bug in draft-ietf-idr-rfc5575bis, worth fixing?

[Explicitly adding Jeff to the To list.]

Hi!

During my AD review there was a discussion on the list about this point, and whether we could avoid resetting the session.  Jeff presented some examples and, I think, made a very convincing case of why we really can’t: even if we can look at the length, we would still be guessing.

I think this is one of the messages:  https://mailarchive.ietf.org/arch/msg/idr/FHC-Vz26LZfam-o5Y-9-WSrEm2g/<https://urldefense.com/v3/__https://mailarchive.ietf.org/arch/msg/idr/FHC-Vz26LZfam-o5Y-9-WSrEm2g/__;!!NEt6yMaO-gk!X6MVqxYzZKOBij2CXmOCozwSH0sadCC07WqDYxq2kR1EsveHDshZD6-8u-ugOQ$>

Jeff: if you get a chance, please chime in.

Thanks!

Alvaro.


On September 28, 2020 at 2:16:38 PM, John Scudder (jgs=40juniper.net@dmarc.ietf.org<mailto:jgs=40juniper.net@dmarc.ietf.org>) wrote:


I think that is the right thing, too: FS uses T,V and not T,L,V for its component types, the lengths are implicit. So, if my parser encounters an unknown type code it is impossible for me to know how to skip over that type code. At that point, parsing breaks down.
[Bruno] I had in mind the higher level of hierarchy:

   The NLRI field of the MP_REACH_NLRI and MP_UNREACH_NLRI is encoded as
   one or more 2-tuples of the form <length, NLRI value>.  It consists
   of a 1- or 2-octet length field followed by a variable-length NLRI
   value.  The length is expressed in octets.

                     +-------------------------------+
                     |    length (0xnn or 0xfnnn)    |
                     +-------------------------------+
                     |    NLRI value   (variable)    |
                     +-------------------------------+

                Figure 1: Flow Specification NLRI for IPv4

At this level, assuming that the NLRI value is found semantically incorrect, it seems to me that one could:
-          Skip this NLRI (thanks to the ‘length’ field) and continue with the next NLRI
-          Read the ‘NLRI value’ as an opaque data, and treat this NLRI as withdraw. (In the context of the discussion, this NLRI would never had been accepted, so ‘treat-as-withdraw’  could even be replaced with ‘ignore’. But I’m _not_ calling for this).
Hence it seems to me that treat-as-withdraw is technically possible.

Fair enough. It’s a little unfortunate that the draft contains this ambiguity; in retrospect it would have been better to be explicit about the error-handling strategy chosen rather than simply referencing RFC 7606. Whether or not we want to respin the draft in order to clarify it, is a question for the WG. If we were to make a change, it could potentially be the addition of this sentence, in Section 10:


   Error handling according to [RFC7606<https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7606__;!!NEt6yMaO-gk!X6MVqxYzZKOBij2CXmOCozwSH0sadCC07WqDYxq2kR1EsveHDshZD69d6BidTQ$>] and [RFC4760<https://urldefense.com/v3/__https://tools.ietf.org/html/rfc4760__;!!NEt6yMaO-gk!X6MVqxYzZKOBij2CXmOCozwSH0sadCC07WqDYxq2kR1EsveHDshZD68YbtIlbw$>] applies to this

   specification. Notably, an NLRI that is found to be semantically

   incorrect (for example due to an unknown component type) MUST be

   handled using the “treat-as-withdraw” strategy (which in this case,

   it must be noted, works out to be the same as skipping over the NLRI).

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.