Re: [Idr] [ I-D Action: draft-haas-idr-extended-experimental-00.txt]

Jeffrey Haas <> Wed, 02 November 2016 13:51 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0277A129664 for <>; Wed, 2 Nov 2016 06:51:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.399
X-Spam-Status: No, score=-3.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.497, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id I4WEVMkBlymg for <>; Wed, 2 Nov 2016 06:51:20 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 887F7129639 for <>; Wed, 2 Nov 2016 06:51:20 -0700 (PDT)
Received: by (Postfix, from userid 1001) id F0DE91E337; Wed, 2 Nov 2016 09:53:52 -0400 (EDT)
Date: Wed, 2 Nov 2016 09:53:52 -0400
From: Jeffrey Haas <>
To: "Dongjie (Jimmy)" <>
Message-ID: <>
References: <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <>
Cc: "" <>
Subject: Re: [Idr] [ I-D Action: draft-haas-idr-extended-experimental-00.txt]
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Inter-Domain Routing <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 02 Nov 2016 13:51:22 -0000


On Wed, Nov 02, 2016 at 03:20:37AM +0000, Dongjie (Jimmy) wrote:
> Thanks for uploading this draft, recently I also had some relevant discussion with people offline. Other protocols such as LDP already provide the mechanism for vendor specific extension, and several features have been developed based on that. Maybe it is the time to discuss whether similar mechanism is also needed in BGP, so I think this draft is quite useful. 
> Some quick comments about the current draft:
> 1. In introduction, it describes the consequence of conflicting attribute parsing error according to RFC 4271, while the consequence according to RFC 7606 is less disruptive, it may also be described here, which is either discarding the attribute or treating the update as withdraw. 

Thanks for the comment.  Since I've had a similar comment from others on the
list, a little more text here may be appropriate.  However, I'm trying to
avoid inserting too much of RFC 7606's motivation in here.

> 2. In the TLV of Extended Experimental Attribute, several fields are further defined after the "Implementor IANA Private Enterprise Number" field, while many implementers may follow this design under their Private enterprise number, the mechanism chosen in LDP may also be considered, in which the format of data after the Length and vendor-ID field are vendor-dependent. 

Looking at RFC 5036 section, I think there's actually good
- the LDP vendor-type corresponds to the Implementor Feature Code Point
  Number.  LDP restricts this to one 255 values, which is perhaps a bit
- The LDP vendor-private Vendor ID uses an IEEE namespace.  I've chosen to
  use an IANA Private Enterprise Number for easy entry into this feature.
  IEEE charges (I believe) for their ID where IANA will give one out to any
  who ask for free.
- The LDP vendor-private field does *not* have a version field.  While it is
  arguable that a given vendor may choose to populate a portion of their
  internal PDU with versioning information, I believe it is strongly
  worthwhile to make this part of the PDU.  We've seen too many issues in
  BGP with regard to versioning issues of features in development to not
  cause the implementor to think about this as a fundamental piece of the
- The LDP vendor-private field *does* contain bits related to what to do if
  the field is not understood (U-bit).  Since that behavior causes
  notifications, I'm not sure it's in the spirit of RFC 7606 for BGP.
- The LDP vendor-private F-bit does have somewhat the semantics of a scoping
  bit as has been discussed somewhat earlier in the thread.

> 3. As the Extended Experimental Attribute can contain a series of TLVs, is it possible that TLVs belonging to different vendors, or TLVs of different features are carried in this attribute? If this is the case, further specification about the processing of unrecognized TLVs and the error handling would be needed. 

There are two intents within the draft:
- If you want to use this attribute, you MUST configure something permitting it.
- Filtering is strongly encouraged.

Currently this draft is tailored toward experiments and development, not
long term deployment of features.  While the conversation is starting to
move toward using this as a generic vendor-specific PA replacement, that's
not the intent of the draft currently.

-- Jeff