Re: [Idr] 2 Week WG last call for draft-ietf-idr-bgp-enhanced-route-refresh
"John G. Scudder" <jgs@juniper.net> Wed, 18 September 2013 15:41 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 4DCA911E82F1 for <idr@ietfa.amsl.com>; Wed, 18 Sep 2013 08:41:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.442
X-Spam-Level:
X-Spam-Status: No, score=-2.442 tagged_above=-999 required=5 tests=[AWL=0.556, BAYES_00=-2.599, J_CHICKENPOX_14=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SVE1OYwc36EQ for <idr@ietfa.amsl.com>; Wed, 18 Sep 2013 08:41:28 -0700 (PDT)
Received: from ch1outboundpool.messaging.microsoft.com (ch1ehsobe005.messaging.microsoft.com [216.32.181.185]) by ietfa.amsl.com (Postfix) with ESMTP id A680611E82FB for <idr@ietf.org>; Wed, 18 Sep 2013 08:40:04 -0700 (PDT)
Received: from mail2-ch1-R.bigfish.com (10.43.68.238) by CH1EHSOBE013.bigfish.com (10.43.70.63) with Microsoft SMTP Server id 14.1.225.22; Wed, 18 Sep 2013 15:40:01 +0000
Received: from mail2-ch1 (localhost [127.0.0.1]) by mail2-ch1-R.bigfish.com (Postfix) with ESMTP id BBEF62602CD; Wed, 18 Sep 2013 15:40:01 +0000 (UTC)
X-Forefront-Antispam-Report: CIP:157.56.240.101; KIP:(null); UIP:(null); IPV:NLI; H:BL2PRD0510HT005.namprd05.prod.outlook.com; RD:none; EFVD:NLI
X-SpamScore: -20
X-BigFish: VPS-20(zz98dI9371I146fI1432I1453I4015I168aJzz1f42h208ch1ee6h1de0h1fdah2073h1202h1e76h1d1ah1d2ah1fc6h1082kzz1de098h1033IL17326ah1de097h186068h8275bh8275dhz2fh2a8h839h944hd25he5bhf0ah1220h1288h12a5h12a9h12bdh137ah139eh13b6h1441h1504h1537h162dh1631h1662h1758h1898h18e1h1946h19b5h19ceh1ad9h1b0ah1d0ch1d2eh1d3fh1dfeh1dffh1e23h1fe8h1ff5h2052h20b3m1155h)
Received-SPF: pass (mail2-ch1: domain of juniper.net designates 157.56.240.101 as permitted sender) client-ip=157.56.240.101; envelope-from=jgs@juniper.net; helo=BL2PRD0510HT005.namprd05.prod.outlook.com ; .outlook.com ;
X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(57704003)(377454003)(199002)(189002)(24454002)(52034003)(164054003)(51704005)(52314003)(50226001)(49866001)(36756003)(15975445006)(47976001)(76796001)(50986001)(66066001)(82746002)(81816001)(81686001)(69226001)(77156001)(56816003)(81542001)(33656001)(23726002)(47736001)(77096001)(15202345003)(81342001)(51856001)(80022001)(74706001)(46102001)(57306001)(31966008)(74662001)(42186004)(77982001)(79102001)(65816001)(74876001)(53806001)(76786001)(74366001)(74502001)(4396001)(47446002)(46406003)(63696002)(80976001)(62966002)(76482001)(54316002)(50466002)(83072001)(59766001)(56776001)(19580405001)(19580395003)(47776003)(83322001)(83716001)(42262001); DIR:OUT; SFP:; SCL:1; SRVR:DM2PR05MB527; H:[172.28.131.154]; CLIP:66
Received: from mail2-ch1 (localhost.localdomain [127.0.0.1]) by mail2-ch1 (MessageSwitch) id 1379518799862763_22229; Wed, 18 Sep 2013 15:39:59 +0000 (UTC)
Received: from CH1EHSMHS004.bigfish.com (snatpool1.int.messaging.microsoft.com [10.43.68.240]) by mail2-ch1.bigfish.com (Postfix) with ESMTP id C4A2D2004A; Wed, 18 Sep 2013 15:39:59 +0000 (UTC)
Received: from BL2PRD0510HT005.namprd05.prod.outlook.com (157.56.240.101) by CH1EHSMHS004.bigfish.com (10.43.70.4) with Microsoft SMTP Server (TLS) id 14.16.227.3; Wed, 18 Sep 2013 15:39:59 +0000
Received: from DM2PR05MB527.namprd05.prod.outlook.com (10.141.99.151) by BL2PRD0510HT005.namprd05.prod.outlook.com (10.255.100.40) with Microsoft SMTP Server (TLS) id 14.16.359.1; Wed, 18 Sep 2013 15:39:59 +0000
Received: from [172.28.131.154] (66.129.232.2) by DM2PR05MB527.namprd05.prod.outlook.com (10.141.99.151) with Microsoft SMTP Server (TLS) id 15.0.775.9; Wed, 18 Sep 2013 15:39:55 +0000
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: "John G. Scudder" <jgs@juniper.net>
In-Reply-To: <02b901ceb0b7$e1d74b90$a585e2b0$@ndzh.com>
Date: Wed, 18 Sep 2013 11:39:40 -0400
Content-Transfer-Encoding: 7bit
Message-ID: <15455006-B087-43D4-9D4D-6F7E7B45D545@juniper.net>
References: <02b901ceb0b7$e1d74b90$a585e2b0$@ndzh.com>
To: Hares Susan <shares@ndzh.com>, "Keyur Patel (keyupate)" <keyupate@cisco.com>
X-Mailer: Apple Mail (2.1510)
X-Originating-IP: [66.129.232.2]
X-ClientProxiedBy: BLUPR02CA009.namprd02.prod.outlook.com (10.255.223.157) To DM2PR05MB527.namprd05.prod.outlook.com (10.141.99.151)
X-Forefront-PRVS: 09730BD177
X-OriginatorOrg: juniper.net
X-FOPE-CONNECTOR: Id%0$Dn%*$RO%0$TLS%0$FQDN%$TlsDn%
Cc: idr wg <idr@ietf.org>
Subject: Re: [Idr] 2 Week WG last call for draft-ietf-idr-bgp-enhanced-route-refresh
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: Wed, 18 Sep 2013 15:41:33 -0000
<co-chair hat = off>
Summary: based on the below review, I think the document is not yet done.
- The document needs an "Updates: RFC2918" header
- " A BGP speaker that support the message subtypes for the ROUTE-REFRESH"
s/support/supports/
This was previously noted by Randy Bush, IIRC. BTW, I don't claim to
be an expert grammarian but other than what I've noted in this review
I don't see any problems.
- " Before the speaker starts a route refresh that is either initiated
locally, or in response to a "normal route refresh request" from the
peer, the speaker MUST send a ROUTE-REFRESH message with the
specified message subtype to mark the beginning of the route refresh.
After the speaker completes the re-advertisement of the entire Adj-
RIB-Out to the peer, it MUST send a ROUTE-REFRESH message with the
specified message subtype to mark the ending of the route refresh."
Presumably in the first case, the "specified message subtype" is
the "Demarcation of the beginning of a route refresh" subtype 1, and
in the second case, the "specified message subtype" is the
"Demarcation of the ending of a route refresh" subtype 2. Say that
explicitly (either by the name, the type code, or both). See also
the second-last point in this review, about short symbolic names.
- " Conceptually the "entire ADJ-RIB-Out" for a peer in this section
refers to all the route entries in the "ADJ-RIB-Out" for the peer at
the start of the route refresh. When a route entry in the "ADJ-RIB-
Out" changes, the advertisement of the modified route entry (instead
of the snapshot entry) would suffice."
(By the way, s/ADJ/Adj/g)
As Qin Wu's message suggests, this text isn't clear enough. Part of
the problem is that you haven't defined "snapshot" but I think it
goes beyond that. One way I can think of to fix it would be to
simply remove the paragraph, on the assumption that "advertise the
entire Adj-RIB-Out" is sufficiently obvious to an implementor, and
that's all you're really trying to specify here. Otherwise, I think
you're going to have to specify more rigorously what you mean by
"advertise the entire Adj-RIB-Out". In particular, I suspect you're
trying to bound the time you have to spend before you send the
subcode 2 message to be O(size of Adj-RIB-Out when you started), so
that you're not tripped up by pathological cases?
I don't have text to offer for this case, but I do think the authors
and WG need to consider it.
- I don't think this text is right:
" In processing a ROUTE-REFRESH message from a peer, the BGP speaker
MUST examine the "message subtype" field of the message and take the
appropriate actions."
I mean, it's OK, except it basically says "do the right thing" ("take
the appropriate actions"). The spec either needs to say unambiguously
what the right thing is (if it's a MUST) or adopt some more relaxed
tone. Likewise,
"The BGP speaker SHALL use the demarcations of
the beginning and the ending of a route refresh to perform
consistency validations of the updates received from the peer."
At most, the speaker MAY do that. If we wanted to mandate it (and I
don't think we do) we would need to say what "perform consistency
validations" means. I would be OK with either striking the text, or
changing the SHALL to a MAY.
Here is a possible rewrite of the paragraph:
When a BGP speaker receives a Route Refresh message from a peer
with subtype 1 it MUST mark all routes with the given AFI/SAFI
from that peer as stale. As it receives routes from its peer's
subsequent Adj-RIB-Out readvertisement, these replace any
corresponding stale routes. When the BGP speaker receives a
Route Refresh message from the peer with subtype 2, it MUST
immediately remove any routes from the peer that are still marked
as stale for that address family. Such routes MAY be logged for
further analysis. (It can be observed that this procedure is
substantially the same as for the Restarting Speaker in Section
4.2 of [RFC4724].)
- RFC 4724 has a timer to deal with the case where the Restarting
Speaker forgets to send the EoR. Subcode 2 is basically an EoR, but
we have no timer. Is this a problem? Do we need some other kind of
safety mechanism? Or are we happy to just rely on the correctness
of the implementation (ahem).
- During the initial Adj-RIB-Out advertisement, can normal withdraws
be sent? I assume so. Not sure if anything need be said about this.
- The Error Handling section of the draft assumes traditional RFC 4271
style error handling, namely if you see something wrong, reset the
session. Is this the right thing to do in light of the other work the
WG has been doing with draft-ietf-idr-error-handling? For that
matter, is this the right thing to do in light of the fact that
regular route-refresh messages aren't specified to behave in this
way? I don't *necessarily* propose that malformed refresh messages
should be ignored, but it seems worth discussing. If this stricter
approach is adopted, should it be considered for regular Route
Refresh too, and if so, should that go in this document?
Also, assuming the current error approach is kept, why not go whole
hog and finish enumerating the possible error conditions? I think
there's only one other: Invalid Subtype. (See also my final point
below.)
- What is the expected behavior if the peer sends another Route Refresh
request when the first request is still in progress (subtype 2 has
not yet been sent)? One option is that you could cancel the old
refresh, send another subtype 1, then the new refresh, then close it
with a subtype 2. But this implies there would be two subtype 1's
followed by only one subtype 2. Another way of asking this question
is whether there are any restrictions on the interleaving of subtype
1 and 2, and what error handling (if any) is to be applied if the
restrictions (if any) are violated.
- In the Acks, you need to capitalize Jeff Hass's last name.
- In writing this review I've had to choose several times between
referring to "subcode 1" and "subcode 2" (not very descriptive) and
"Demarcation of the beginning of a route refresh" and "Demarcation
of the ending of a route refresh" (verbose). This leads me to think
it might be handy for the document to provide short symbolic names
for the subtypes, such as BoRR and EoRR.
- By the way, now that you've turned the "reserved" field into a
"subtype" field, you need to decide what to do with the rest of the
values. Right now we have 0 which means either route-refresh or
ORF (disambiguated by length) and 1 and 2 defined in this document.
The obvious thing to do would be to make this a registry, though
then you have to say what to do with unrecognized values. Come to
think of it, you have to say that anyway, right now the Error
Handling section doesn't cover it.
</hat>
Thanks,
--John
On Sep 13, 2013, at 3:31 PM, Susan Hares <shares@ndzh.com> wrote:
> This begins a 2 week working group last call for (ending 9/27)
> Enhanced Route Refresh Capability for BGP-4
> http://tools.ietf.org/html/draft-ietf-idr-bgp-enhanced-route-refresh-04
>
> This WG last call is in parallel with the 2 week
> implementation report adoption call.
>
> The implementation report is at:
> http://datatracker.ietf.org/doc/draft-keyupate-idr-enhanced-refresh-impl/
>
> We will read both threads in considering the last call. If the
> implementation report is accepted, we will do a last call on the
> implementation report.
>
> Sue Hares and John Scudder
> Idr co-chairs
>
>
>
>
>
- [Idr] 2 Week WG last call for draft-ietf-idr-bgp-… Susan Hares
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Edward Crabbe
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Dickson, Brian
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Randy Bush
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Susan Hares
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Bhavani Parise
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Qin Wu
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… John G. Scudder
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Thomas Mangin
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… John G. Scudder
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… John G. Scudder
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Thomas Mangin
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… bruno.decraene
- Re: [Idr] 2 Week WG last call for draft-ietf-idr-… Susan Hares
- [Idr] draft-ietf-idr-bgp-enhanced-route-refresh bruno.decraene
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Robert Raszuk
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… bruno.decraene
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Robert Raszuk
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… bruno.decraene
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Robert Raszuk
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Thomas Mangin
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… bruno.decraene
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… UTTARO, JAMES
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Robert Raszuk
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… UTTARO, JAMES
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Keyur Patel (keyupate)
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Keyur Patel (keyupate)
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Thomas Mangin
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… heasley
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Thomas Mangin
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Randy Bush
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Jakob Heitz
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Thomas Mangin
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Jakob Heitz
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Thomas Mangin
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Robert Raszuk
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Thomas Mangin
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Randy Bush
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… bruno.decraene
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Jakob Heitz
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Keyur Patel (keyupate)
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… heas@shrubbery.net
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Jakob Heitz
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… Jared Mauch
- Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refre… bruno.decraene