Re: [lisp] Comments to draft-boucadair-lisp-multiple-records-00

<mohamed.boucadair@orange.com> Fri, 27 October 2017 13:55 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: lisp@ietfa.amsl.com
Delivered-To: lisp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8659013F4CE for <lisp@ietfa.amsl.com>; Fri, 27 Oct 2017 06:55:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.619
X-Spam-Level:
X-Spam-Status: No, score=-1.619 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=no 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 HzYG7mqXZGXX for <lisp@ietfa.amsl.com>; Fri, 27 Oct 2017 06:55:02 -0700 (PDT)
Received: from orange.com (mta240.mail.business.static.orange.com [80.12.66.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EC85D13F516 for <lisp@ietf.org>; Fri, 27 Oct 2017 06:55:01 -0700 (PDT)
Received: from opfedar04.francetelecom.fr (unknown [xx.xx.xx.6]) by opfedar20.francetelecom.fr (ESMTP service) with ESMTP id 58658120A10; Fri, 27 Oct 2017 15:55:00 +0200 (CEST)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.43]) by opfedar04.francetelecom.fr (ESMTP service) with ESMTP id 3C81A40075; Fri, 27 Oct 2017 15:55:00 +0200 (CEST)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM5F.corporate.adroot.infra.ftgroup ([fe80::e172:f13e:8be6:71cc%18]) with mapi id 14.03.0361.001; Fri, 27 Oct 2017 15:55:00 +0200
From: mohamed.boucadair@orange.com
To: Dino Farinacci <farinacci@gmail.com>
CC: "lisp@ietf.org list" <lisp@ietf.org>
Thread-Topic: [lisp] Comments to draft-boucadair-lisp-multiple-records-00
Thread-Index: AQHTSN0TiTCEU1SRfEO5uJKfsaZohaL3wjPg
Date: Fri, 27 Oct 2017 13:54:59 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B93300A05F572@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <37C27B2F-AD76-4B5F-AFE6-E56D02180DD4@gmail.com> <787AE7BB302AE849A7480A190F8B93300A051871@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <B225F6B3-B7FD-492C-9BD0-F5EB5FC1FEBD@gmail.com> <787AE7BB302AE849A7480A190F8B93300A0541A6@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <1BADE12F-F090-4255-B835-D9467E1135D5@gmail.com> <787AE7BB302AE849A7480A190F8B93300A056537@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <558E587E-1A98-4CF3-8E53-A9CCD422716E@gmail.com>
In-Reply-To: <558E587E-1A98-4CF3-8E53-A9CCD422716E@gmail.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.168.234.6]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/lisp/Hgt7UcLHB2dTQ5S1Xq6_7FhR7g0>
Subject: Re: [lisp] Comments to draft-boucadair-lisp-multiple-records-00
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.22
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: <https://mailarchive.ietf.org/arch/browse/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: Fri, 27 Oct 2017 13:55:03 -0000

Hi Dino, 

Please see inline. 

Cheers,
Med

> -----Message d'origine-----
> De : Dino Farinacci [mailto:farinacci@gmail.com]
> Envoyé : jeudi 19 octobre 2017 15:21
> À : BOUCADAIR Mohamed IMT/OLN
> Cc : lisp@ietf.org list
> Objet : Re: [lisp] Comments to draft-boucadair-lisp-multiple-records-00
> 
> What if we provided you with a more efficient feature. That is:
> 
> (1) The ITR sends a Map-Request for 0.0.0.0/0.
> (2) But rather than the mapping system return a RLOC-set for 0.0.0.0/0
> (which may or may not be registered), it returns all more specifics?
> (3) The ITR would request a lookup-type of “return *all* more specifics”
> versus an longest or exact match lookup.
> 

[Med] I like this one, but I'd like also to let the ITR encloses specific EIDs in the same request. 

> Here is my justification. And I made this comment to you a couple of years
> ago. If an ITR is going to provide a list of EIDs to lookup when it
> restarts, one has to ask how does it know which EIDs to request. If it has
> a list, that means there was some implementation capability to write a
> checkpoint or stateful file of entries. So when an ITR restarts, it has
> that list.

[Med] What we have investigated is to configure the ITR upon reboot with popular prefixes (without even requiring persistent storage of the EIDs list). We had designed a YANG module which is meant to populate a policy table on the ITR so that popular EIDs can be retrieved immediately after state loss/reboot. The purpose was to avoid the first packet loss issue. An excerpt of the tree model is provided below.  

====================
module: ietf-ms-policy-table
   +--rw ms-pt-config
   |  +--rw description?      string
   |  +--rw rfc6724-enable?   boolean
   |  +--rw ms-pt-list
   |     +--rw ms-pt-entry* [id]
   |        +--rw id              uint32
   |        +--rw Name?           string
   |        +--rw Description?    string
   |        +--rw eid             eid-id
   |        +--rw map-resolver    inet:ip-address
   |        +--rw priority?       uint32
   |        +--rw status?         enumeration
   |        +--rw validity-date?   yang:date-and-time
====== 

> 
> Well, if it builds this checkpoint file, it could also store the RLOC-set,
> so it would have all the mappings, maybe out of date, but it could query
> the mapping system when the demand sees the need.

[Med] Actually, we wanted to avoid waiting for a packet to show up for creating mappings for popular EIDs in a LISP domain. 

> 
> I have an implementation of this and when I brought this up a couple of
> years ago, I offered you to try it out.
> 
> But if one doesn’t want to go the checkpoint file route or have a protocol
> mechanism, the “lookup-type” functionality would be useful. Albert, Vina,
> and I have talked about creating a new LCAF type that is essentially
> “Lookup-Type LCAF” which requests “all-more-specific”, “more-specific”,
> “exact-match” lookup types.
> 
> Comments?
> 
> Dino
> 
> > On Oct 18, 2017, at 1:09 AM, mohamed.boucadair@orange.com wrote:
> >
> > Hi Dino,
> >
> > Please see inline.
> >
> > Cheers,
> > Med
> >
> >> -----Message d'origine-----
> >> De : Dino Farinacci [mailto:farinacci@gmail.com]
> >> Envoyé : lundi 16 octobre 2017 15:08
> >> À : BOUCADAIR Mohamed IMT/OLN
> >> Cc : lisp@ietf.org list
> >> Objet : Re: [lisp] Comments to draft-boucadair-lisp-multiple-records-00
> >>
> >>> RFC6830 or your Internet Draft?
> >>> [Med] I’m referring to RFC6830 which says the following :
> >>>
> >>>   Record Count:  This is the number of records in this Map-Request
> >>>      message.  A record is comprised of the portion of the packet that
> >>>      is labeled 'Rec' above and occurs the number of times equal to
> >>>      Record Count.  For this version of the protocol, a receiver MUST
> >>>      accept and process Map-Requests that contain one or more records,
> >>>      but a sender MUST only send Map-Requests containing one record.
> >>>      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>      Support for requesting multiple EIDs in a single Map-Request^
> >>>      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>      message will be specified in a future version of the protocol.^
> >>>      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>>
> >>> Yes, I do think it is time to specify that behavior in the bis
> document.
> >>>
> >>> Section 3 of draft-boucadair-lisp-multiple-records is an example of
> what
> >> can be considered in the bis document.
> >>
> >> IMO the description is not sufficient to tell an implementation what to
> >> code. It is under specified. I’d love to consider removing the above
> but
> >> it needs specific/detailed text describing why and when multiple
> records
> >> are used in Map-Requests.
> >
> > [Med] As I said earlier, that text is only an example of a starting
> point. We can also start from what your implementation is already doing.
> >
> >>
> >>> I’ll have a look at it. But what part of section 3? All the packet
> >> format descriptions are already in RFC6830.
> >>> [Med] The format needs to be updated for replies.
> >>
> >> Not true. Map-Replies have multiple EID records. And I use them every
> day.
> >> ;-)
> >>
> >>> It is documented no where that a Map-Resolvers caching mappings. And
> if
> >> you are proposing that you need a lot more text to describe how
> mappings
> >> are kept up to date in the Map-Resolver. This is a major architectural
> >> change and really not sure you know the implications of it.
> >>> [Med] That single sentence is hiding the case where a single request
> >> from an xTR may be forked into multiple ones because target EIDs are
> not
> >> managed by the same servers. What is important in the text you quoted
> is
> >> that the xTR should be prepared to receive multiple replies for a
> single
> >> request. Two cases are to be considered:
> >>> -    Multiple records for the same EID that cannot be included in a
> >> single resply
> >>> -    Multiple replies; each for a given EID
> >>
> >> And how does the ITR know to wait for multiple replies?
> >
> > [Med] This the role of M-bit in the response. That bit is an indication
> to wait for more replies associated with a single request. draft-
> boucadair-lisp-multiple-records states the following:
> >
> >   In order to inform an ITR that subsequent Map-Reply messages will
> >   follow (or not) , a dedicated flag bit is defined for this purpose:
> >   it is called the M-bit (more-map-reply bit).
> >
> > How does it know
> >> when all of them come in? This is more protocol machinery that needs to
> be
> >> spec’ed out. And I have not seen any of it in your bulk spec.
> >
> > [Med] Putting aside the use of TCP, the bulk specification defines a
> dedicated bit for this:
> >
> >   o  Set the M-bit for all Map-Bulk-Reply messages, except for the last
> >      one.
> >
> >>
> >> Dino
> >