Re: [Idr] I-D Action: draft-ietf-idr-error-handling-03.txt

Brian Dickson <brian.peter.dickson@gmail.com> Sun, 09 December 2012 20:19 UTC

Return-Path: <brian.peter.dickson@gmail.com>
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 96A0921F8CD8 for <idr@ietfa.amsl.com>; Sun, 9 Dec 2012 12:19:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.487
X-Spam-Level:
X-Spam-Status: No, score=-2.487 tagged_above=-999 required=5 tests=[AWL=-0.555, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1, SARE_HTML_USL_OBFU=1.666]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e09oGezKoozj for <idr@ietfa.amsl.com>; Sun, 9 Dec 2012 12:19:56 -0800 (PST)
Received: from mail-ee0-f44.google.com (mail-ee0-f44.google.com [74.125.83.44]) by ietfa.amsl.com (Postfix) with ESMTP id 53E6C21F8CD4 for <idr@ietf.org>; Sun, 9 Dec 2012 12:19:56 -0800 (PST)
Received: by mail-ee0-f44.google.com with SMTP id b47so1300508eek.31 for <idr@ietf.org>; Sun, 09 Dec 2012 12:19:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=wHWdjz47D/aMSM1pJ4LGvmc9H6srJE9VP+9UFWPlFFQ=; b=RZQ08XMhp9431rXEJkkjs0epOgTnvsxAJVwtQQg8AmqFzRLHNnTCj6srlUzAI32y4s bJi0S2iWOrY9gyNWjOyA5XAqmZsPizC7VriCI/VFMxEKtJ7KzbVHWMwYRq6xWzYjg1nB gxVzqx1ZvpKLRrZp5cHGK0LDQ711oQGnD3MwIhzRvmqcMOVD1J5I7f7M9zR1WplVC/kH 83/xcT7pLWMXUb6AlZ30rxASdqzZBN+g6YX2V8BpzANUwtSAzg/QmWOzEWrh8FVLj6YW B0erWbdiypmyPXL+87awgWSeciUBPQP9y1qQm338x+rMm4FSpzU8C4CW29QCh6TBgUQG 8cQw==
MIME-Version: 1.0
Received: by 10.14.173.65 with SMTP id u41mr41534231eel.13.1355084395525; Sun, 09 Dec 2012 12:19:55 -0800 (PST)
Received: by 10.223.173.199 with HTTP; Sun, 9 Dec 2012 12:19:55 -0800 (PST)
In-Reply-To: <50C4D7EC.4070309@cisco.com>
References: <20121121191321.6164.6887.idtracker@ietfa.amsl.com> <50AD2986.90705@cisco.com> <058b01cdd3b4$9f5193b0$ddf4bb10$@highwayman.com> <8ED5B0B0F5B4854A912480C1521F973A0F4940@xmb-rcd-x13.cisco.com> <94913EE5-2864-4EE2-B474-9631430B1E22@ericsson.com> <068701cdd478$2cf01cf0$86d056d0$@highwayman.com> <CAEGVVtBy-zdLz8hVajLnuAqgzfgQHrseK4r-N9=pOZGtqV7LbA@mail.gmail.com> <CAH1iCipfup-GEeJduBti_KHvX1pUZfmZLA3Zz5Y9Aw9xV3fQ9w@mail.gmail.com> <079901cdd601$9901b630$cb052290$@highwayman.com> <50C4D7EC.4070309@cisco.com>
Date: Sun, 09 Dec 2012 15:19:55 -0500
Message-ID: <CAH1iCiok=sp6=X0ZSAMqHHHCgM4z--tiTpLyKnze64c5M0ck3A@mail.gmail.com>
From: Brian Dickson <brian.peter.dickson@gmail.com>
To: Enke Chen <enkechen@cisco.com>
Content-Type: multipart/alternative; boundary="047d7b6226b009364804d0712c44"
Cc: idr@ietf.org
Subject: Re: [Idr] I-D Action: draft-ietf-idr-error-handling-03.txt
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Sun, 09 Dec 2012 20:19:57 -0000

On Sun, Dec 9, 2012 at 1:26 PM, Enke Chen <enkechen@cisco.com> wrote:

> Hi, Chris:
>
> As I replied before,  the receiver knows from parsing the path attributes
> whether the MP_REACH_NLRI and/or MP_UNREACH_NLRI is the first attribute in
> an UPDATE message.  It does not need a new capability to make that
> determination.
>

Hi, Enke,

Yes, BUT...

The specific attributes will be first, ONLY if the sender puts them in that
order. (This is restating the obvious for effect, sorry.)

What Chris is proposing is a negotiated option where the sender COMMITS to
observing the specified order in which to send the attributes.

Without that negotiated option, there is no method of influencing the
sender's behavior.

This is not to say that SOME senders won't use that order.

However, any implementation that supports this new option negotiation, and
either defaults to or exposes a "knob" for enabling it, will then need to
use the SPECIFIC order to be compliant.

Having this in an RFC, gives customers a specific thing to point the
implementors/vendors at, for requesting support for this.

The amount of logic needed to use this specific order, versus any other
deterministic, semi-deterministic, or random order, is pretty small.

The order is a good order, IMHO. And I think the cost of doing so as a
negotiated capability is well worth it, in order to better facilitate the
desired error handling, especially
inter-vendor/inter-implementation/inter-code-train. (And standardized is
much better than potential vendor-specific ways of signaling behavior or
defaults, of course.)

 Brian


> On 12/9/12 3:37 AM, Chris Hall wrote:
>
>> Brian Dickson wrote (on Fri 07-Dec-2012 at 23:13 +0000):
>>
>>> I see the high-level problem Chris describes, and think maybe
>>> it requires discussing possible ways of removing
>>> doubt/ambiguity over successful parsing of such MP_REACH
>>> and MP_UNREACH attributes.
>>>
>> My suggestion, for minimal change to the protocol, would be a new
>> capability which would carry the undertaking that:
>>
>>    * when sending MP_UNREACH_NLRI and/or MP_REACH_NLRI
>>      they will be the first attribute(s), and will
>>      appear in that order.
>>
>>    * the ORIGIN attribute will be the first attribute,
>>      or will follow any NLRI attributes.
>>
>>      Which deals with the absence of one or both NLRI
>>      attributes.
>>
>> A receiver in possession of this new capability knows that, once it
>> has seen completely valid versions of these leading attributes, it can
>> tolerate any malformation of the following attributes, or absence of
>> essential attributes, etc. and "treat-as-withdraw".
>>
>> The ORIGIN attribute has the value 0x0X 0x01 0x01 0x0Y -- where X is
>> supposed to be 0 and Y MUST be 0, 1 or 2.  This pattern is,
>> effectively, and "end-of-NLRI-attributes" mark.
>>
>> If the new capability also meant that this attribute would always be
>> output with extended length and guaranteed X = 0, then the receiver
>> would expect to see 0x10 0x01 0x00 0x01 0x0Y -- which is a little more
>> unique, and offer a little more assurance that the attributes so far
>> are completely valid.  (But this is not essential)
>>
>> (The new capability could also mean that IPv4 Unicast will not appear
>> both in the body of the message and in NLRI attributes -- but that is
>> not essential, either.)
>>
>> If the sender misbehaves, and sends any NLRI attribute after the
>> ORIGIN then:
>>
>>    a) if it is not a repeat attribute then...
>>
>>         ...accept, but turn off the capability ?
>>
>>         ...treat as a repeat ?
>>
>>    b) if it is a repeat attribute then...
>>
>>         ...session-reset, as per draft ?
>>
>>    c) if the extra attribute is hidden by a preceding
>>       broken attribute then...
>>
>>         ...the change to the relevant NLRI is lost.
>>
>> The last case is BAD: the receiver will "treat-as-withdraw" the NLRI
>> it can see, but not those it cannot.  The risk here may be deemed
>> ignorable -- but needs to be assessed.
>>
>> For all code which deals with BGP updates -- BGP speakers or analysers
>> of BGP streams etc -- the only change here is the new capability;
>> UPDATE messages will have attributes in a particular order (and
>> perhaps take a particular form) but are entirely RFC4271 compliant.
>>
>> That leaves the question of what the receiver does in the absence of
>> the new capability... but that's another story, for another day.
>>
>> Chris
>>
>> ______________________________**_________________
>> Idr mailing list
>> Idr@ietf.org
>> https://www.ietf.org/mailman/**listinfo/idr<https://www.ietf.org/mailman/listinfo/idr>
>>
>
> ______________________________**_________________
> Idr mailing list
> Idr@ietf.org
> https://www.ietf.org/mailman/**listinfo/idr<https://www.ietf.org/mailman/listinfo/idr>
>