Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refresh-06.txt

Jeffrey Haas <jhaas@pfrc.org> Thu, 06 February 2014 16:10 UTC

Return-Path: <jhaas@slice.pfrc.org>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B8EA91A03DB for <idr@ietfa.amsl.com>; Thu, 6 Feb 2014 08:10:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, IP_NOT_FRIENDLY=0.334, RP_MATCHES_RCVD=-0.535, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 P4Fgj2nGbgxn for <idr@ietfa.amsl.com>; Thu, 6 Feb 2014 08:10:55 -0800 (PST)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 5387F1A0193 for <idr@ietf.org>; Thu, 6 Feb 2014 08:10:55 -0800 (PST)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 4A787C2C3; Thu, 6 Feb 2014 11:10:54 -0500 (EST)
Date: Thu, 06 Feb 2014 11:10:54 -0500
From: Jeffrey Haas <jhaas@pfrc.org>
To: Susan Hares <shares@ndzh.com>
Message-ID: <20140206161054.GE23551@pfrc>
References: <CF0FD8F8.6170B%keyupate@cisco.com> <007701cf1de8$53571d70$fa055850$@ndzh.com> <20140206152555.GC23551@pfrc> <001201cf2351$9f3dbbe0$ddb933a0$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <001201cf2351$9f3dbbe0$ddb933a0$@ndzh.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: "'Keyur Patel (keyupate)'" <keyupate@cisco.com>, idr@ietf.org
Subject: Re: [Idr] draft-ietf-idr-bgp-enhanced-route-refresh-06.txt
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.15
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: Thu, 06 Feb 2014 16:10:56 -0000

On Thu, Feb 06, 2014 at 10:39:27AM -0500, Susan Hares wrote:
> Jeff: 
> 
> Please provide more details on your opinion on this information to the list:

Sure. :-)

> "Personally, I think it'd be wise to not process the enhanced RR procedures
> until GR is complete but I think that can be an implementation decision."
> (The justification is that there's a *lot* of work going on while processing
> GR and it's more valuable to get RIBs in some initial state of
> synchronization rather than worry about trying to fill in holes that might
> be present in the midst of it.)

When a router that is assisting with a graceful restart, it has to do
several expensive things:
- Mark all routes received from that peer stale.
- Receive all routes again from that peer.
- Upon EoR (per family), sweep all stale routes not otherwise refreshed.

In a non-multisession peering environment, you have one TCP socket between
you and the restarting peer.  Presuming more than one AFI/SAFI negotiated
(lets say IPv4 unicast and L3VPN), even if you've finished refreshing IPv4
unicast and could service a enhanced route refresh for that family, you're
still doing a lot of work trying to shove routes down the socket for L3VPN.

Even if you presume you ignore CPU or route-queueing efficiencies for an
implementation (let's say that some IPv4 Unicast is queued ahead of other
stuff), to service the refresh for those important routes you'd still push
off initial convergence of L3VPN.  Whether this is wise is clearly an
implementation choice.

Implementations are free to interleave queued routes as they wish and there
are competing motivations as to why they'd want to servicing things in a
given way.  But in abstract, delaying initial convergence seems unwise.

An implementation would be free to queue the work requested for a enhanced
route refresh and not interrupt GR resync.  That requires no changes to the
spec.

The spec could offer the opinion that you probably should do this, rather
than allowing a refresh to interrupt GR procedures (which impact timers) by
reinserting routes that have been sent at least once into the queue.  But
that gets pretty deep into implementation.  Trying to be normative here (RFC
2119 language) seems unwise since it simply puts an implementor into a
pedantic vice useful only to make test tool vendors happy. 

-- Jeff