Re: [Bier] Explicit Tracking

Eric C Rosen <erosen@juniper.net> Wed, 07 January 2015 15:44 UTC

Return-Path: <erosen@juniper.net>
X-Original-To: bier@ietfa.amsl.com
Delivered-To: bier@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 137F61A9131 for <bier@ietfa.amsl.com>; Wed, 7 Jan 2015 07:44:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 M_99_Jvvtgp2 for <bier@ietfa.amsl.com>; Wed, 7 Jan 2015 07:44:51 -0800 (PST)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0129.outbound.protection.outlook.com [207.46.100.129]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F2C51A914B for <bier@ietf.org>; Wed, 7 Jan 2015 07:44:51 -0800 (PST)
Received: from [172.29.33.129] (66.129.241.13) by BY1PR0501MB1095.namprd05.prod.outlook.com (25.160.103.141) with Microsoft SMTP Server (TLS) id 15.1.49.12; Wed, 7 Jan 2015 15:44:49 +0000
Message-ID: <54AD546B.9040409@juniper.net>
Date: Wed, 07 Jan 2015 10:44:43 -0500
From: Eric C Rosen <erosen@juniper.net>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: "Dolganow, Andrew (Andrew)" <andrew.dolganow@alcatel-lucent.com>, "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, BIER <bier@ietf.org>
References: <54AC0915.4000804@juniper.net> <D0D19F9D.65458%andrew.dolganow@alcatel-lucent.com> <54AD487B.5050302@juniper.net> <D0D2B388.655F1%andrew.dolganow@alcatel-lucent.com> <BY2PR05MB079F0A6214471A92520A23DD4460@BY2PR05MB079.namprd05.prod.outlook.com> <D0D2B6F4.65606%andrew.dolganow@alcatel-lucent.com>
In-Reply-To: <D0D2B6F4.65606%andrew.dolganow@alcatel-lucent.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [66.129.241.13]
X-ClientProxiedBy: BY2PR04CA043.namprd04.prod.outlook.com (10.141.249.161) To BY1PR0501MB1095.namprd05.prod.outlook.com (25.160.103.141)
Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=erosen@juniper.net;
X-DmarcAction: None
X-Microsoft-Antispam: UriScan:;
X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(3005003);SRVR:BY1PR0501MB1095;
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA: BCL:0; PCL:0; RULEID:(601004); SRVR:BY1PR0501MB1095;
X-Forefront-PRVS: 044968D9E1
X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(6049001)(189002)(199003)(35774003)(105586002)(106356001)(101416001)(4396001)(46102003)(20776003)(47776003)(59896002)(50466002)(64706001)(87976001)(65806001)(66066001)(97736003)(83506001)(107046002)(33656002)(120916001)(99396003)(21056001)(80316001)(40100003)(23746002)(86362001)(122386002)(92566001)(93886004)(31966008)(76176999)(50986999)(87266999)(54356999)(64126003)(65816999)(42186005)(68736005)(77096005)(36756003)(77156002)(62966003)(2950100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR0501MB1095; H:[172.29.33.129]; FPR:; SPF:None; MLV:sfv; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
Received-SPF: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
X-Exchange-Antispam-Report-CFA: BCL:0;PCL:0;RULEID:;SRVR:BY1PR0501MB1095;
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jan 2015 15:44:49.5391 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0501MB1095
Archived-At: http://mailarchive.ietf.org/arch/msg/bier/cjuShtqGVeelDAlbwuR1YQkMB_A
Cc: erosen@juniper.net
Subject: Re: [Bier] Explicit Tracking
X-BeenThere: bier@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "\"Bit Indexed Explicit Replication discussion list\"" <bier.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bier>, <mailto:bier-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/bier/>
List-Post: <mailto:bier@ietf.org>
List-Help: <mailto:bier-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bier>, <mailto:bier-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Jan 2015 15:44:58 -0000

Let me write down how I think explicit tracking should work, and you can 
tell me whether (a) it's at odds with what's in your draft, or (b) it 
duplicates what's in your draft, or (c) it extends what's in your draft 
in a useful way, or (d) it extends what's in your draft in a useless way ;-)

(Perhaps this discussion really belongs on the BESS ML, but we might as 
well continue it here for a little while.)

RFC6625 (and other RFCs or RFCs-to-be that update RFC6625) specify a 
set of rules for finding the S-PMSI A-D route that is the "match for 
reception" for a given (C-S,C-G) or (C-*,C-G) state.  As 
draft-dolganow-l3vpn-mvpn-expl-track points out, the defintion of "match 
for reception" needs to be modified as follows:

    When finding the "match for reception" for a given (C-S,C-G) or
    (C-*,C-G), ignore any S-PMSI A-D route that has no PMSI Tunnel
    attribute (PTA), or that has a PTA specifying "no tunnel info".

I'd like to propose now to introduce a new notion: the "match for 
tracking".  This differs from the "match for reception" as follows:

    For a given C-flow ((C-S,C-G) or (C-*,C-G)) the "match for tracking"
    is chosen as follows.  Ignore any S-PMSI A-D route that has no PTA,
    or whose PTA does not have either LIR or LIR-pF set.  (In particular,
    DO NOT ignore an S-PMSI A-D route that has a PTA specifying "no
    tunnel info", but whose LIR or LIR-pF bits are set).  Then apply the
    rules (from RFC6625 and other RFCs or RFCs-to-be that update it) for
    finding the "match for reception".  The result (if any) is the
    match for tracking".

For example, suppose a given PE router, PE1, has chosen PE2 as the 
"upstream PE" for a given (C-S1,C-G1).  And suppose PE1 has installed 
the following two routes that were originated by PE2:

Route1: A (C-*,C-*) S-PMSI A-D route, whose PTA specifies a tunnel.

Route2: A (C-S1,C-G1) S-PMSI A-D route, whose PTA specifies "no tunnel 
info" and has LIR set.

Route1 is (C-S1,C-G1)'s match for reception, and Route2 is (C-S1,C-G1)'s 
match for tracking.

Note that if there is no installed S-PMSI A-D route for (C-S2,C-G2), 
then Route1 would be (C-S2,C-G2)'s match for reception and also its 
match for tracking.

As another example, suppose PE1 has installed the following two routes 
that were originated by PE2:

Route3: A (C-*,C-*) S-PMSI A-D route (irrespective of whether the PTA 
specifies a tunnel)

Route4: A (C-S1,C-G1) S-PMSI A-D route whose PTA specifies a tunnel.

Then Route 4 is both the "match for reception" and the "match for 
tracking" for (C-S1,C-G1).

Note that for a particular C-flow, the PE1's match for reception might 
be the same route as its match for tracking, or its match for reception 
might be a "less specific" route than its match for tracking.  But its 
match for reception can never be a "more specific" route than its match 
for tracking.

Now we have a number of cases to look at:

1. PE1's match for tracking the is same as its match for reception, but
neither LIR nor LIR-pF flags are on.  In this case, there is no explicit
tracking for the C-flow.  The match for reception is processed 
according to existing procedures.

2. PE1's match for tracking is the same as its match for reception, LIR 
is set, LIR-pF is not set.  In this case, existing procedures are followed.

3. PE1's match for tracking is the same as its match for reception, and
LIR-pF is set.  This case is discussed in a previous message.

4. PE1's match for tracking is not the same as its match for reception.
This can only happen if the match for tracking has a PTA specifying "no
tunnel info", with either LIR or LIR-pF set.  In this case, PE1 must 
respond both to the match for tracking and to the match for reception. 
To respond to the match for tracking, PE1 originates one or more Leaf 
A-D routes; the PTA of each such route will specify "no tunnel info". 
Construction of the NLRI of the Leaf A-D route is as specified in 
RFC6514 (if LIR is set) or as specified in the referenced message on the 
BIER mailing list (if LIR-pF) is set.  To respond to the match for 
reception, existing procedures are used.  Note that if LIR or LIR-pF are 
set in the PTA of the match for reception, PE1 may need to originate a 
Leaf A-D route corresponding to the match for tracking as well as 
originating a Leaf A-D route corresponding to the match for reception.

I think the above procedures work at an egress PE, but they are not 
quite right for an egress ABR/ASBR.  An egress ABR/ASBR does forward 
along any S-PMSI A-D routes it gets.  If the PTA of the received S-PMSI 
A-D route specifies a tunnel, the egress ABR/ASBR may change the PTA to 
specify a different tunnel type.  However, we should require that if the 
PTA specifies "no tunnel info", it is passed along unchanged.

Then we can establish the following rule for egress ABRs/ASBRs.  Suppose 
an egress ABR/ASBR receives an S-PMSI A-D route whose NLRI is X, and 
whose PTA (a) specifies "no tunnel info" and (b) has LIR set.  The 
egress ABR/ASBR should not immediately originate a Leaf A-D route in 
response.  Rather it should wait until it receives a Leaf A-D route 
whose NLRI contains X in the "route key" field.  If it receives such a 
Leaf A-D route, it redistributes that route, but first it changes that 
route's RT.  The "global administrator" field of the modified RT will be 
set to the IP address taken either from the S-PMSI A-D route's next hop 
field, or from its Segmented P2MP Next Hop Extended Community.

This will ensure that an egress ABR/ASBR only sends a Leaf A-D route in
response to a "match for tracking" if it is on the path to an egress PE 
for the flow(s) identified in the corresponding S-PMSI A-D route.

Comments?