Re: [Idr] Request to adopt draft-heitz-idr-large-community - Working Group Adoption call (9/6 to 9/20)

Sander Steffann <sander@steffann.nl> Tue, 20 September 2016 12:08 UTC

Return-Path: <sander@steffann.nl>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C7F1C12B141 for <idr@ietfa.amsl.com>; Tue, 20 Sep 2016 05:08:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=steffann.nl
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 RjsrU1nv9Q_4 for <idr@ietfa.amsl.com>; Tue, 20 Sep 2016 05:08:36 -0700 (PDT)
Received: from mail.sintact.nl (mail.sintact.nl [IPv6:2001:9e0:803::6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D51512B0E2 for <idr@ietf.org>; Tue, 20 Sep 2016 05:08:35 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.sintact.nl (Postfix) with ESMTP id 1D6E83A; Tue, 20 Sep 2016 14:08:33 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=steffann.nl; h= x-mailer:references:message-id:date:date:in-reply-to:from:from :content-type:content-type:mime-version:subject:subject:received :received; s=mail; t=1474373310; bh=aziIUPfl/C0Ub4/Aa9qMxpCD/iJI +Z3ZRTHIwFOmyFQ=; b=KMETnW9CKzaRDxpnh2ZQQzAhg5KFrWuPKqjMic86tq0A F8j+Gm2OesherXBu8n8yW/yVsSiHKar2q6Z0pUBEO6K42v8i8uDNI0uUQ0Z3ocOH l6hxzTg3Yp4Lx+Id6WmTeo1QjrEynvXesD8qwKjsZE/Mgu/DIsonBLmxkF9e8zA=
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 10026) with ESMTP id bbamI65HpzCC; Tue, 20 Sep 2016 14:08:30 +0200 (CEST)
Received: from [IPv6:2a02:a213:a300:b500:6141:5c91:ca1:522c] (unknown [IPv6:2a02:a213:a300:b500:6141:5c91:ca1:522c]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.sintact.nl (Postfix) with ESMTPSA id CAFC838; Tue, 20 Sep 2016 14:08:29 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_39B6DFE0-679E-4D25-BAA6-32ADD28E4198"; protocol="application/pgp-signature"; micalg="pgp-sha256"
X-Pgp-Agent: GPGMail
X-Clacks-Overhead: GNU Terry Pratchett
From: Sander Steffann <sander@steffann.nl>
In-Reply-To: <CA+b+ERmf=uVU6Cq+pi7TPRZL9qU2QifSgyEd4Jf-YsFWsO_T7w@mail.gmail.com>
Date: Tue, 20 Sep 2016 14:08:29 +0200
Message-Id: <6D433CDB-08AE-4B11-BA8B-4EAAC1BD7B57@steffann.nl>
References: <e1rupvg8tulqhwj33eb9svcl.1474320105419@email.android.com> <CA+b+ERmf=uVU6Cq+pi7TPRZL9qU2QifSgyEd4Jf-YsFWsO_T7w@mail.gmail.com>
To: Robert Raszuk <robert@raszuk.net>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/nLqizEvArpbwua6yQvOKIYYW34k>
Cc: Interminable Discussion Room <idr@ietf.org>, Susan Hares <shares@ndzh.com>
Subject: Re: [Idr] Request to adopt draft-heitz-idr-large-community - Working Group Adoption call (9/6 to 9/20)
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Sep 2016 12:08:37 -0000

Hi Robert,

> Let me just point out to everyone that when we have been discussing proposal of 32:32:32 and while everyone is in complete agreement for the above as described in large-community draft the questioned common header is only one option to leave room for future extensible solution even if for now we would just stay with use case of simple 32:32:32.
> 
> That is simply standardize communities of the format 32:32:TLV where only mandatory TLV today would be say type 1 == 32.
> 
> IMHO overhead of 3 octets (1 octet for TLV type and 2 for TLV length) is negligible as compared with future potential of adding more structures to last part of the community as seems fit by IETF WG consensus.

It's not the extra octets that I'm worried about, it's the extra complexity in the code and user interface that the extra possible permutations of representation would require.

A simple example: how to encode communities 111111:222222:1234 and 111111:222222:2345? With large the only way would be:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               111111                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               222222                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                1234                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               111111                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               222222                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                2345                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

On a Cisco box you would probably be able to set this with something like:

route-map TEST permit 10
 set large-community 111111:222222:1234 111111:222222:2345

Simple.

Now introduce TLVs, how do we encode this?

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               111111                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               222222                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    type=1     |           length=4            | ⏎
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                1234                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               111111                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               222222                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    type=1     |           length=4            | ⏎
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                2345                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

or maybe

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               111111                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               222222                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    type=1     |           length=8            | ⏎
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                1234                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                2345                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


How would the user interface for this work? Maybe:

route-map TEST permit 10
 set tlv-community 111111:222222 type 1 value 1234 111111:222222 type 1 value 2345

vs

route-map TEST permit 10
 set tlv-community 111111:222222 type 1 values 1234, 2345

And I'm not even talking about how to filter them yet...

Adding a seemingly simple extension adds an exponential level of complexity in both code and user interface. I understand that from a flexibility point of view it seems no big deal, but I really really understand all the people objecting to this.  I personally agree with them: it is a big deal.

Lt's stick to the KISS principle and make it easy to implement and easy to use.

Cheers,
Sander