Re: [lisp] draft-ietf-lisp-lcaf-03 available for discussion (but not posted)

Sander Steffann <sander@steffann.nl> Tue, 10 September 2013 19:44 UTC

Return-Path: <sander@steffann.nl>
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 68A4621E8184 for <lisp@ietfa.amsl.com>; Tue, 10 Sep 2013 12:44:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 xKYa3D7sFL+Q for <lisp@ietfa.amsl.com>; Tue, 10 Sep 2013 12:44:05 -0700 (PDT)
Received: from mail.sintact.nl (mail.sintact.nl [IPv6:2001:9e0:803::6]) by ietfa.amsl.com (Postfix) with ESMTP id 8EC3721E817E for <lisp@ietf.org>; Tue, 10 Sep 2013 12:44:04 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.sintact.nl (Postfix) with ESMTP id 540006F; Tue, 10 Sep 2013 21:44:02 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mail.sintact.nl
Received: from mail.sintact.nl ([127.0.0.1]) by localhost (mail.sintact.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rk8tOlhXXNYS; Tue, 10 Sep 2013 21:44:00 +0200 (CEST)
Received: from [127.0.0.1] (cypher.steffann.nl [IPv6:2a02:898:148::216]) by mail.sintact.nl (Postfix) with ESMTPSA id C04D26D; Tue, 10 Sep 2013 21:43:57 +0200 (CEST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Sander Steffann <sander@steffann.nl>
In-Reply-To: <522ED89E.3050901@joelhalpern.com>
Date: Tue, 10 Sep 2013 21:43:55 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <6F760019-251B-4B09-8403-C7356408CB73@steffann.nl>
References: <2D469D0C-2E41-42C7-8907-7FADD8C39B53@gmail.com> <522ED89E.3050901@joelhalpern.com>
To: "Joel M. Halpern" <jmh@joelhalpern.com>
X-Mailer: Apple Mail (2.1508)
Cc: David Meyer <dmm@1-4-5.net>, "lisp@ietf.org list" <lisp@ietf.org>
Subject: Re: [lisp] draft-ietf-lisp-lcaf-03 available for discussion (but not posted)
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.12
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, 10 Sep 2013 19:44:06 -0000

Hi,

> Speaking personally, I have some concerns about this.
> 
> I think my concerns can be lumped into two related categories.  Bother are about interoperability.
> 
> Firstly, I find the registration of LCAFs without any explanation of how or why they would be used to be awkward.

I have implemented some Python code that tries to use LCAFs, and I can only say that it is very difficult as an implementer to deal with LCAFs. Often I have no idea where I can expect which LCAF type. The RFCs don't give enough guidance here in my opinion.

The specs allow way too much. As an implementer I don't want to be surprised because some other implementation suddenly decides to use LCAF type 3 to add the ASN to the address. Not to mention that an LCAF address can contain another LCAF address. So should all implementations now support type-2 LCAF address within type-3 LCAF addresses in case some implementation decides to add both an instance-id and an ASN? And will that be encoded as type-2 in type-3 or as type-3 in type-2? What about when someone decides to add type-5 Geo information to the mix? Should all implementations support all possible combinations? 

This will make it much too hard to write a good implementation.

Looking at the actual text there is something else that concerns me. LCAF type-1 (AFI List Type) is defined in a very confusing way. It is described in multiple use cases with different semantics, but I see no way for the receiver to know what is actually meant. Section 4.13.5. "Compatibility Mode Use Case" also confuses me:

"A LISP system should use the AFI List Type format when sending to LISP systems that do not support a particular LCAF Type used to encode locators."

How does the sender know what the receiver will support?

And then there seems to be a contradiction:

"The list of AFIs in an AFI List LCAF Type has no semantic ordering [...]"
"[...] where the AFI in the Geo Coordinate LCAF is set to 0 and the AFI encoded next in the list is encoded with a valid AFI value to identify the locator address."

So the ordering does seem to be important after all...

Is it the intention to make this the default behaviour? That all such extra information should be encoded in a list with an AFI 0 address in the i.e. Geo LCAF address and the IP address that should be used in a AFI 1 or 2 address that follows next? Is this also meant to be supported in multiple layers, for example by sending a list with first a Geo LCAF, then an ASN LCAF and then a plain address? In that case it might be better to remove the addresses from all the 'annotation' types completely and define them to always be used in a list. Then the sender could always send it like that, and the receiver could skip over all annotations that it doesn't understand until it finds a non-LCAF AFI address.

I understand that the authors want to define a very flexible address format, but without any rules or guidelines on how to encode address and in which circumstances it will be too hard for implementors to implement correctly in an interoperable way. There are now too many different ways to encode the same information, and that must be fixed. Either by changing the format (which I would strongly prefer) or by giving strict guidelines on how the current flexibility is to be used.

Cheers,
Sander