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

Jeffrey Haas <jhaas@pfrc.org> Wed, 14 September 2016 19:09 UTC

Return-Path: <jhaas@slice.pfrc.org>
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 BAC9F12B488 for <idr@ietfa.amsl.com>; Wed, 14 Sep 2016 12:09:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.41
X-Spam-Level:
X-Spam-Status: No, score=-3.41 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.508, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham 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 06UC_6e-sgS9 for <idr@ietfa.amsl.com>; Wed, 14 Sep 2016 12:09:22 -0700 (PDT)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id D11E312B48E for <idr@ietf.org>; Wed, 14 Sep 2016 12:09:12 -0700 (PDT)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 86BFB1E334; Wed, 14 Sep 2016 15:10:26 -0400 (EDT)
Date: Wed, 14 Sep 2016 15:10:26 -0400
From: Jeffrey Haas <jhaas@pfrc.org>
To: Jared Mauch <jared@puck.nether.net>
Message-ID: <20160914191026.GA15934@pfrc.org>
References: <CA+b+ERm82jJPzHJGgmwKWY-T+q97D8tRUWW3rh6hYr3iV4BKag@mail.gmail.com> <D0E1DDA5-2C26-46A2-95BC-C7A7B19F2F8B@steffann.nl> <20160914161526.GA19429@puck.nether.net> <20160914162702.GC80448@shrubbery.net> <20160914162919.GD19429@puck.nether.net> <20160914163247.GD80448@shrubbery.net> <A529D36C-99EE-4958-9DF5-BDB056608606@steffann.nl> <20160914172058.GA28887@puck.nether.net> <CA+b+ERk3Kk_qus2hts=0p05SoZBKTQFLukK1inB3WrzxQO2iAg@mail.gmail.com> <FE8EAE87-3451-4009-B35C-E685A11F93F7@puck.nether.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <FE8EAE87-3451-4009-B35C-E685A11F93F7@puck.nether.net>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/4icF18WlBNSsfKdCFcOMYEb1VzQ>
Cc: John Heasley <heas@shrubbery.net>, "idr@ietf.org" <idr@ietf.org>, Susan Hares <shares@ndzh.com>, Robert Raszuk <robert@raszuk.net>
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: Wed, 14 Sep 2016 19:09:24 -0000

On Wed, Sep 14, 2016 at 02:27:16PM -0400, Jared Mauch wrote:
> > On Sep 14, 2016, at 1:53 PM, Robert Raszuk <robert@raszuk.net> wrote:
> > But this is not what the T flags (Transitive or Filter) are to be all about. You can have one attribute in BGP UPDATE message ... but since we are converging on common header there is nothing that prevents you to have more then one common header of the same type. 
> > 
> > One can differ with T flags, the other can differ with Context-AS. 
> 
> I understand the intention, but the use cases don’t seem to justify this complexity in the header.  I would expect an implementation to provide knobs to filter out unknown types if necessary, but this certainly isn’t a requirement.

I must admit to being boggled by this conversation.  Let's pick on the large (4:4) case:

T = transitivity bits
C = context AS (4 octets)

Currently we have:
Header: type = 2, length, T, C
<list of 4:4 8 octets>

If you decide you're not doing C as part of header:
Header: type = 2, length, T
<list of C:4:4 12 octets>

If C is common across many items in the list, which is very likely given
existing community practices, you've expanded the amount of space needed to
send them.

Similarly, if T moves out of header and becomes part of the community
exactly like we have for extended communities:

Header: type = 2, length, T
<list of T:C:4:4 13 octets (min)>

Obviously extended communities made the choice to squat on top of its type
field.  

There's no "complexity" here.  Just space savings.  And part of the initial
hand-wringing earlier in this conversation was saving bits.

-----

The secondary consideration is once you decide C and T are good ideas, do
you really want to force every container type to individually have to
specify them?  That's almost as bad as having said that BGP Path Attributes
shouldn't have a common flags field and that the specification for its use
should have been repeated in every code point's documentation.

-- Jeff