Re: [mpls] RFC5036 and "exceeds" / "reaches" limits on send and receive

Loa Andersson <loa@pi.nu> Sat, 02 December 2017 04:13 UTC

Return-Path: <loa@pi.nu>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EEB161270FC for <mpls@ietfa.amsl.com>; Fri, 1 Dec 2017 20:13:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 KnIANfqFU9lE for <mpls@ietfa.amsl.com>; Fri, 1 Dec 2017 20:13:37 -0800 (PST)
Received: from pipi.pi.nu (pipi.pi.nu [83.168.239.141]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A247D126FDC for <mpls@ietf.org>; Fri, 1 Dec 2017 20:13:36 -0800 (PST)
Received: from [192.168.1.10] (unknown [119.94.172.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: loa@pi.nu) by pipi.pi.nu (Postfix) with ESMTPSA id 0E231180157E; Sat, 2 Dec 2017 05:13:32 +0100 (CET)
To: Eric Gray <eric.gray@ericsson.com>, Sandra Murphy <sandy@tislabs.com>
Cc: "mpls@ietf.org" <mpls@ietf.org>
References: <4E4D0B0B-4E7F-45F7-BD6E-F00245B16226@tislabs.com> <48E1A67CB9CA044EADFEAB87D814BFF64B89673D@eusaamb107.ericsson.se>
From: Loa Andersson <loa@pi.nu>
Message-ID: <55406153-9200-435a-1946-2dc9ee18b7e9@pi.nu>
Date: Sat, 02 Dec 2017 12:13:28 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0
MIME-Version: 1.0
In-Reply-To: <48E1A67CB9CA044EADFEAB87D814BFF64B89673D@eusaamb107.ericsson.se>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/MXQnJrXZCV659qf5fTv5q1PcZF0>
Subject: Re: [mpls] RFC5036 and "exceeds" / "reaches" limits on send and receive
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Dec 2017 04:13:40 -0000

Sandy,

I think Eric's response is correct. Are there any outstanding issues?

/Loa

On 2017-11-21 00:31, Eric Gray wrote:
> Sandy,
> 
> 	To answer the part of your question regarding whether the maximum (less than or equal to 255) could ever be exceeded, yes it could.  The procedure was written to support any non-zero maximum less than the maximum value possible.  However, it should say "that is greater than or equal to" the configured maximum, rather than "that exceeds" it.
> 
> 	I would be a bit surprised to discover that there are implementations where the implementer has not worked that out, but it is possible.  With loop-detection enabled, if you check to see if the received hop count is greater than or equal to the configured maximum, the test would detect the condition, even if the maximum was set to 255.
> 
> 	In a manner of speaking - since the text 3.4.5.1.1 uses "reached" with respect to "maximum Hop Count limit" - one could argue that "greater than or equal to" is implicit.  Since Loop detection is only enabled if using Path Vectors, this check would be performed if attempting to detect a loop during setup.
> 
> 	Note that an implementation can easily avoid this situation by treating any attempt to set a maximum value greater than MAX-Field-Value-minus-one as an error.
> 
> --
> Eric Gray
> 
> -----Original Message-----
> From: mpls [mailto:mpls-bounces@ietf.org] On Behalf Of Sandra Murphy
> Sent: Tuesday, November 14, 2017 10:40 PM
> To: mpls@ietf.org
> Cc: Sandra Murphy <sandy@tislabs.com>
> Subject: [mpls] RFC5036 and "exceeds" / "reaches" limits on send and receive
> 
> I am reading RFC5036, the LDP spec.
> 
> I’m finding the language about the loop detection to be a bit ambiguous.
> 
> The text varies as to whether a loop is detected when something “exceeds” the limit or when something “reaches” the limit.
> 
> Some examples below.
> 
> I read the algorithms in the Appendix as requiring a check for “exceeds” on receipt, but no check for either “exceeds” or “reaches” on send. I don’t see a requirement when sending any message to check the hop count or the path vector length to see if it has reached/exceeded the limit.  [The Appendix A procedure descriptions are said to take precedence over any description in the text.]
> 
> Does that mean that an LSR might send a message that was doomed to be rejected upon receipt?  Is that the intent?
> 
> For the hop count in particular - the hop count field, if I read the spec correctly, is one octet, so a maximum value of 255.  I have not found a requirement that the “configured maximum value” for the hop count MUST be strictly less than the Hop Count TLV’s largest possible hop count value.
> 
> So if an LSR is propagating a Label Request message that had a hop count of 255, it should increment the hop count when sending to its neighbor.  What happens then - what value is sent?  I don’t see this covered in the Appendix’s algorithms, and the text is ambiguous.
> 
> If an LSR is checking to see if a received message’s Hop Count TLV has a HC Value that exceeds the “configured maximum value”, and the configured maximum value is configured to be 255, would the test ever succeed?
> 
> I figure I’ve missed something fundamental, as implementors would have to have figured this out.  And the usual configured maximum values are not going to push either limit.  But still, it would be good to understand.
> 
> Thanks.
> 
> —Sandy
> 
> Some examples of “exceeds” and “reaches”
> 
> 
> Section 2.8.2, p 26
> 
>        If R receives a Label Mapping message from its next hop with a Hop
>        Count TLV that exceeds the configured maximum value, or with a
>        Path Vector TLV containing its own LSR Id or that exceeds the
>        maximum allowable length, then R detects that the corresponding
>        LSP contains a loop.
> 
> Section 3.4.4.1, p 40
> 
>     If an LSR receives a message containing a Hop Count TLV, it MUST
>     check the hop count value to determine whether the hop count has
>     exceeded its configured maximum allowable value.  If so, it MUST
>     behave as if the containing message has traversed a loop by sending a
>     Notification message signaling Loop Detected in reply to the sender
>     of the message.
> 
> 
> Section 2.8, p 23
> 
>                                                 an LSR that detects a
>           Path Vector has reached the maximum length behaves as if the
>           containing message has traversed a loop.
> 
>           An LSR that detects a Hop Count has reached a configured
>           maximum value behaves as if the containing message has
>           traversed a loop.
> 
> <In this case, there’s no indication if the LSR is checking the maximum on receipt of a message or on sending after having incremented the value.>
> 
> Section 3.4.5.1.1, p 42
> 
>     Note that a Label Request message with a Path Vector TLV is forwarded
>     until:
> 
>        1. A loop is found,
> 
>        2. The LSP egress is reached, or
> 
>        3. The maximum Path Vector limit or maximum Hop Count limit is
>           reached.  This is treated as if a loop had been detected.
> _______________________________________________
> mpls mailing list
> mpls@ietf.org
> https://www.ietf.org/mailman/listinfo/mpls
> _______________________________________________
> mpls mailing list
> mpls@ietf.org
> https://www.ietf.org/mailman/listinfo/mpls
> 

-- 


Loa Andersson                        email: loa@pi.nu
Senior MPLS Expert
Huawei Technologies (consultant)     phone: +46 739 81 21 64