Re: [lisp] Some basic questions ...

Dino Farinacci <farinacci@gmail.com> Tue, 18 February 2014 15:54 UTC

Return-Path: <farinacci@gmail.com>
X-Original-To: lisp@ietfa.amsl.com
Delivered-To: lisp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 52DD61A0249 for <lisp@ietfa.amsl.com>; Tue, 18 Feb 2014 07:54:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=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 vZDrxEFgVpsk for <lisp@ietfa.amsl.com>; Tue, 18 Feb 2014 07:54:05 -0800 (PST)
Received: from mail-pd0-x233.google.com (mail-pd0-x233.google.com [IPv6:2607:f8b0:400e:c02::233]) by ietfa.amsl.com (Postfix) with ESMTP id 3C2501A0238 for <lisp@ietf.org>; Tue, 18 Feb 2014 07:54:05 -0800 (PST)
Received: by mail-pd0-f179.google.com with SMTP id fp1so16019971pdb.38 for <lisp@ietf.org>; Tue, 18 Feb 2014 07:54:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=xY+i8PYzfHmGjiww2kE15v24GCvxZ/GalVDfhhbseV0=; b=ncK2dmJ5KbDS/he5fgfmRx3rq4SP7WgCs6vkkwzOyZZT/JPxF719VCaf8gzBhd7bkp 09koQ5pjV3ml8FoSqPmH8jj/P1cV2dSFFQLpmFonrnpLjBjllbAOGxeQU/7VaR5dGHmd 2Z0MnDz1Jcjfs26gHgoPIoIbTFTEhBpErPFqdd+8KRU6Xs1HXHaCg88zC4jYPvmdn78g sfqPtoI3XfzffMxMI4pJBFDr49DNjAGxTpIpjJ5P/F3LLqnvjjeY6vgdCtPBu6PJfMiF psHlH0Qq7usT3fQuU0sFiUiED+QSFWcTcK1TML9yX7+VQg5z7A58zVJKJUHvlF/gN42x ZSKw==
X-Received: by 10.69.0.39 with SMTP id av7mr33818860pbd.4.1392738842456; Tue, 18 Feb 2014 07:54:02 -0800 (PST)
Received: from [10.169.113.83] (71-6-80-11.static-ip.telepacific.net. [71.6.80.11]) by mx.google.com with ESMTPSA id jk16sm57129594pbb.34.2014.02.18.07.54.01 for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 18 Feb 2014 07:54:02 -0800 (PST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 7.1 \(1827\))
From: Dino Farinacci <farinacci@gmail.com>
In-Reply-To: <20140217173153361416.35eb5008@sniff.de>
Date: Tue, 18 Feb 2014 07:53:59 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <031942EA-44E1-4D1A-9E98-9FBFAFD9CA91@gmail.com>
References: <20140217013051556658.9cfb700c@sniff.de> <85246DF3-B45A-474A-BB5F-B0C9D3EE88DA@gmail.com> <20140217173153361416.35eb5008@sniff.de>
To: Marc Binderberger <marc@sniff.de>
X-Mailer: Apple Mail (2.1827)
Archived-At: http://mailarchive.ietf.org/arch/msg/lisp/MLcwUE5IPSmc1lstgxjCTsXuLu4
Cc: LISP mailing list list <lisp@ietf.org>
Subject: Re: [lisp] Some basic questions ...
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: List for the discussion of the Locator/ID Separation Protocol <lisp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lisp>, <mailto:lisp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/lisp/>
List-Post: <mailto:lisp@ietf.org>
List-Help: <mailto:lisp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lisp>, <mailto:lisp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Feb 2014 15:54:08 -0000

> Hello Dino & LISP experts,
> 
> thanks for the quick reply.
> 
> I have some follow-up questions, simplest first.
> 
> Q3': I'm a bit slow with the lexiographic order and from a web search I 
> have seen both, "treat it as a text string" as well "treat it as a byte 
> sequence".
> 
>> 10.0.0.1
>> 10.0.0.2
>> 128.0.0.1
>> 128.128.0.1
>> 128.192.0.1
>> 2001:1000::1
>> 2002:1000::1
>> 2002:1111::1
> 
> so this is sorting according to the text representation (?!). Okay. 

Yes, it may appear that way but we stated explicitly that IPv4 addresses appear before IPv6 addresses. So within an address-family the byte value is the order.

Because a "byte string comparison would give a different result:
> 
> 0a.00.00.01
> 0a.00.00.02
> 20.01.10.00.00.00.00.00.00.00.00.00.00.00.00.01
> 20.02.10.00.00.00.00.00.00.00.00.00.00.00.00.01
> 20.02.11.11.00.00.00.00.00.00.00.00.00.00.00.01
> 80.00.00.01
> 80.80.00.01
> 80.c0.00.01
> 
> Would this be worth an addendum to RFC6830?  Or maybe it's just me :-)
> Anyway, got it now.

It really isn't important about the order. We just wanted multiple ETRs at a site to use the same order so the LSBs were consistenly mapped to the RLOC address in the locator-set.

> Q1': Thanks for the clarification on the map-notify. 
> 
> 
> 
> Q2': regarding the LSBs:
> 
>> This is not different than a cost to do a source lookup for a IP 
>> multicast packet. Yes, you would have to do a source-EID lookup on 
>> the received packet at the ETR and update the LSBs for the map-cache 
>> entry.
> 
> true but there had been times when "hardware" could not do 
> source-lookup or things like reverse-path forwarding lookups. For 

Yes, you are not the first person who has mentioned this.

> pipelined-ASICs this was another stage to be added. I other words: 
> receiving LSBs for all packets from an ITR, detecting a change in 

This is true. We do believe though that LSBs will be mostly used in CPE routers where the boxes are either micro-coded or forwarding is done in software.

> hardware, then punting to control plane seems to put the bar for the 
> hardware higher than just a simple check for the L bit and punting 
> whenever it is set (which would be only for a few packets after the ITR 
> knows about the source RLOC changes).

You could implement it this way. But that could be a lot of packets going to the punt path.

> My question is mainly about: what was the reason to go for "sending 
> LSBs all packets" (when LSBs are supported) ?  Is the answer to "it's a 

We wanted a data-plane/fast way to swtich from one RLOC to another. That is put some simple control-plane functionality in the fast path of forwarding.

> simple scheme and don't support it if your hardware isn't ready, there 
> are more methods available for RLOC change detection" ?

Set the L-bit to 0 in the LISP header if you don't want it.

> Just trying to understand, not arguing about right/wrong/better/[...] .

Understand. Thanks for asking and wondering.

Dino

> 
> 
> Thanks & Regards,
> Marc
> 
> 
> 
> On Mon, 17 Feb 2014 10:13:16 -0800, Dino Farinacci wrote:
>>> Hello LISP experts,
>>> 
>>> have two questions, mainly to understand the context a bit better.
>> 
>> No prob Marc. Thanks for the email. I'll attempt to answer them but 
>> others can chime in as well.
>> 
>>> Q1: map-notify message.
>>> 
>>> maybe it's the name but I always expected this message is for the Map 
>>> Server to inform ETRs. Kind of a "push" method. But reading RFCs 6830 
>> 
>> That is exactly what it is. It is used as a event notification from 
>> the Map-Server to the ETRs that register for a particular EID-prefix. 
>> So when a locator-set changes, the old locators can be notified. The 
>> main reason to call it a "Map-Notify" was for this purpose. And you 
>> can now understand why by looking at the data-center use-case 
>> documents that have been published by Yves and Victor.
>> 
>>> and 6833 again it seems that the Map-Notify is simply an ACK for a 
>>> received and processed Map-Register message. Take the Map-Register 
>>> message, set the type to Map-Notify and send back.
>> 
>> So when a registerer requests Map-Notifies, it will get them for 
>> various reasons. The first is the case I said above and the other 
>> case is to acknowledge a Map-Register.
>> 
>>> Now, the use as ACK is not a contradiction to the broader use as a push 
>>> message. So my question to the LISP experts and inventors is: is 
>>> Map-Notify restricted to be just an ACK? (having an extra type for it 
>>> seems generous)
>> 
>> It is not restricted to just an ack. There is also another use case. 
>> Here it is:
>> 
>> (1) You have two xTRs, each sitting behind different NAT devices.
>> (2) The xTRs get private addresses assigned to their interfaces. So 
>> they are using them as "local RLOCs". But no one will be able to 
>> encapsulate to them so they need to find out their global RLOC 
>> addresses.
>> (3) Each of the two xTRs are at the same LISP site and can receive 
>> encapsulated packets for the same EID-prefix.
>> (4) When they each discover their global RLOCs (by mechanisms 
>> descrbied in draft-ermagen-lisp-nat-traversal), they each register 
>> their own global RLOC. They register with the "merge-request" bit set 
>> so the Map-Server will add both xTR global RLOCs to the locator-set.
>> (5) So now, if an xTR gets a Map-Request, it will want to send a 
>> Map-Reply with the merged-locator set. Well how will it do that when 
>> it only knows its own?
>> (6) A Map-Notify is used here by the Map-Server to tell each xTR 
>> about the other's global RLOC.
>> 
>>> Q2: Locator-Status-Bits (LSBs).
>>> 
>>> RFC 6830 says in section 6.3:
>>> 
>>>  When an ETR decapsulates a packet, it will check for any change in
>>>  the 'Locator-Status-Bits' field.
>>> 
>>> I interpret this that if an ITR sets the Locator-Status-Bits then it 
>>> would do so permanently. In other words the LSBs are not set used in an 
>>> "alert style" (means: only set when an RLOC change happened) ?
>> 
>> If an ITR detects that other xTRs at its site have gone down, it will 
>> clear the LSBs for that xTR. The LSBs are used as a hint to tell 
>> remote xTRs that something went wrong from the perspective of a local 
>> xTR at the site.
>> 
>> If you have, say, 3 xTRs at a site and you want to take one out of 
>> service for maintenance or whatever, the other 2 could clear the LSB 
>> bit for that xTR to gracefully migrate remote encapsulation traffic 
>> to this site to only the 2 xTRs.
>> 
>>> Wondering what requirements this imposes on the data plane. It may not 
>>> be possible for the "hardware" (NP, ASIC, FPGA) to check the incoming 
>>> LSBs. So if LSBs are sent permanently this would likely require to punt 
>>> every Nth packet to the control plane?
>> 
>> This is not different than a cost to do a source lookup for a IP 
>> multicast packet. Yes, you would have to do a source-EID lookup on 
>> the received packet at the ETR and update the LSBs for the map-cache 
>> entry.
>> 
>>> Q3: the lexicographic order of RLOCs.
>>> 
>>> Maybe stupid question but the lexicographic order is computed over what 
>>> byte sequence exactly?  Loc-AFI + Locator? (both in network order, 
>>> Loc-AFI first)
>> 
>> The value of the locator address itself. So for instance an RLOC set 
>> below is sorted in lexiographic order:
>> 
>> 10.0.0.1
>> 10.0.0.2
>> 128.0.0.1
>> 128.128.0.1
>> 128.192.0.1
>> 2001:1000::1
>> 2002:1000::1
>> 2002:1111::1
>> 
>> Dino
>> 
>>> 
>>> 
>>> 
>>> Thanks & Regards,
>>> Marc
>>> 
>>> _______________________________________________
>>> lisp mailing list
>>> lisp@ietf.org
>>> https://www.ietf.org/mailman/listinfo/lisp
>>