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

"Dongjie (Jimmy)" <> Thu, 03 November 2016 09:38 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 7C81D129793 for <>; Thu, 3 Nov 2016 02:38:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -5.718
X-Spam-Status: No, score=-5.718 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.497, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id opgyjOS2VQsD for <>; Thu, 3 Nov 2016 02:38:35 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 9E1B1127ABE for <>; Thu, 3 Nov 2016 02:38:34 -0700 (PDT)
Received: from (EHLO ([]) by (MOS 4.3.7-GA FastPath queued) with ESMTP id CZP41490; Thu, 03 Nov 2016 09:38:31 +0000 (GMT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id; Thu, 3 Nov 2016 09:38:30 +0000
Received: from ([fe80::a54a:89d2:c471:ff]) by ([]) with mapi id 14.03.0235.001; Thu, 3 Nov 2016 17:38:22 +0800
From: "Dongjie (Jimmy)" <>
To: Jeffrey Haas <>
Thread-Topic: [Idr] [ I-D Action: draft-haas-idr-extended-experimental-00.txt]
Thread-Index: AQHSM7jIewH/rzAmpkOieaXMd4f3MqDE923ggAA8GwCAAcFjgA==
Date: Thu, 3 Nov 2016 09:38:21 +0000
Message-ID: <>
References: <> <> <>
In-Reply-To: <>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090204.581B0598.0238, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 76d5b2ea2ba801e083fdc5670f46e6ce
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: Thu, 03 Nov 2016 09:38:37 -0000

Hi Jeff, 

> -----Original Message-----
> From: Jeffrey Haas []
> Sent: Wednesday, November 02, 2016 9:54 PM
> To: Dongjie (Jimmy) <>
> Cc:
> Subject: Re: [Idr] [ I-D Action:
> draft-haas-idr-extended-experimental-00.txt]
> Jie,
> 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.

Understood. As you said, a little more text would be enough.

> > 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
> similarity:
> - the LDP vendor-type corresponds to the Implementor Feature Code Point
>   Number.  LDP restricts this to one 255 values, which is perhaps a bit
>   small.

Yes, the type 0x3E00 - 0x3EFF is a reserved range of LDP TLVs for vendor specific extensions, and the type and Vendor ID field together specify how the Data field should be interpreted. At first I thought the type of LDP TLV is analogous to the type of BGP path attribute, while in implementations it is used to identify a particular vendor-private feature. 

> - 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.

This is fine to me as long as it can identify different vendors.

> - 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
>   feature.

Agree version information can help the troubleshooting of interoperability issues.

> - 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.

To my understanding, the optional transitive attribute in BGP is analogous to an LDP TLV with both U and L bit set, so IMO no further bits are required for BGP. 

> > 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.

Understood and totally agree to make this part simple at current stage. While for some experiments in which devices from multiple vendors are involved, it may be possible that different TLVs are carried in this attribute. With LDP this is simpler, as different features are carried in different LDP TLVs and can be processed independently. Of course this can be left for further discussion.

Best regards,

> -- Jeff