Re: [lisp] [nvo3] New Version Notification for draft-quinn-vxlan-gpe-00.txt

jnc@mercury.lcs.mit.edu (Noel Chiappa) Wed, 25 September 2013 20:41 UTC

Return-Path: <jnc@mercury.lcs.mit.edu>
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 8C3B121F9AE6; Wed, 25 Sep 2013 13:41:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.493
X-Spam-Level:
X-Spam-Status: No, score=-6.493 tagged_above=-999 required=5 tests=[AWL=0.106, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 YRysBL34-Je5; Wed, 25 Sep 2013 13:41:15 -0700 (PDT)
Received: from mercury.lcs.mit.edu (mercury.lcs.mit.edu [18.26.0.122]) by ietfa.amsl.com (Postfix) with ESMTP id 253A521F8F61; Wed, 25 Sep 2013 13:41:12 -0700 (PDT)
Received: by mercury.lcs.mit.edu (Postfix, from userid 11178) id 051AB18C188; Wed, 25 Sep 2013 16:41:08 -0400 (EDT)
To: lisp@ietf.org
Message-Id: <20130925204108.051AB18C188@mercury.lcs.mit.edu>
Date: Wed, 25 Sep 2013 16:41:08 -0400
From: jnc@mercury.lcs.mit.edu
Cc: nvo3@ietf.org, jnc@mercury.lcs.mit.edu
Subject: Re: [lisp] [nvo3] New Version Notification for draft-quinn-vxlan-gpe-00.txt
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: Wed, 25 Sep 2013 20:41:20 -0000

    > From: Fabio Maino <fmaino@cisco.com>

    > We just started from .. the lack of multiprotocol support

I don't really have a 'dog in that hunt' (i.e. a preference, for those who
aren't familiar with that US idiom). I can see how it might be useful, but
it's not like I will die of apoplexy if we don't add it.


    > For lisp-gpe, unfortunately, it comes to the expenses of the nonce and
    > versioning fields, that is certainly a higher cost to pay

But I don't think that it _is_ an un-avoidable tradeoff.

As I alluded to in my prior post, I believe a slightly different change to the
encapsulation is feasible, one which retains almost all the existing
functionality, and adds multi-protocol support.

My suggestion (based on some discussions with people, to find out what the
real-world constraints on changes are), and thinking about the various
functions and fields of the header, is to multiplex the LSB along with the
nonce and version in the field on the right of the first header word, freeing
up the 8-bit LSB field in the second header word (this is assuming the
Instance field is present, which I think it will likely be) to use for a
protocol type - in every packet.

I won't go into the analysis of flag bits and settings, but having looked at
6830 carefully, I believe they can be made to work in an upwardly compatible
way.

My position is that we don't _have_ to have the LSB in _every_ packet, any
more than we _have_ to have the nonce or version in _every_ packet. Exactly
what the 'right' mix is of the various functions (e.g. 'check the mapping
version every 10th data packet', etc), is something we'd probably want to work
out from experience.

Yes, this solution is not optimal - e.g. we have to have a translation between
16-bit Ethertype and an 8-bit protocol type - but it's _much_ better, IMO,
than the existing proposal - where we have to chose _between_ multi-protocol
support, and those important control functions.


    > we should try to see if there's a way to achieve a larger set of goals
    > of what lisp-gpe does today.

To repeat something I said elsewhere, I think we're getting close to the limit
of how many pounds we can fit in the particular 5-pound sack of the
double-word header. (For those who aren't familiar with this expression,
Google '5 pound sack'.)

Given that there are hardware implications for a longer header (which I think
we're likely to need at some point), we might want to go ahead and specify a
longer header, _without using it for anything for the moment_. Once hardware
support has made it into the pipeline, we can start to use it.

But unless we specify it _before_ we need it, we will not be able to use it
when we _do_ need it!

Hence my suggestion that we specify it now, without using it for anything.

      Noel