[pim] Re: Ketan Talaulikar's Discuss on draft-ietf-pim-sr- p2mp-policy-20: (with DISCUSS and COMMENT)
Rishabh Parekh <[email protected]>
| Newsgroups | gmane.ietf.pim |
|---|---|
| Message-ID | <CABjMoXajBpxM7w0Zrw3PtN__K+3yPsVWVZdQJ_7gq9+Q0R1mhQ@mail.gmail.com> |
Ketan, After discussion with Hooman, I have added some text about TTL and IPv6 Hop Limit. Please check the changes in Section 3 and 4.3 of the attached document and diff. Rishabh. On Wed, Sep 3, 2025 at 11:42 PM Rishabh Parekh <[email protected]> wrote: > Yes, I will check with Hooman. > > Rishabh. > > On Wed, Sep 3, 2025 at 11:26 PM Ketan Talaulikar <[email protected]> > wrote: > >> Hi Rishabh, >> >> The update looks good to me and it addresses the 2 remaining discussion >> points. >> >> However, before you post the update, can you please discuss with Hooman >> (and co-authors of the ping document) about covering aspects related to >> propagation of TTL for SR-MPLS and Hop Limit for SRv6 in the base SR P2MP >> Policy document instead of in the ping document? >> >> Please check >> https://mailarchive.ietf.org/arch/msg/pim/O6jzvF2v6RMt4VCPfubexgdeTxQ/ >> for details. >> >> Thanks, >> Ketan >> >> >> On Thu, Sep 4, 2025 at 11:37 AM Rishabh Parekh <[email protected]> >> wrote: >> >>> Ketan, >>> As discussed in today's meeting, I have addressed the two remaining >>> DISCUSS points with changes we agreed on. >>> >>> I am attaching the proposed update (ver 21) along with diff. Please >>> review these to confirm if it indeed addresses the DISCISS points. >>> >>> Thanks, >>> Rishabh >>> >>> On Thu, Aug 28, 2025 at 11:36 PM Ketan Talaulikar via Datatracker < >>> [email protected]> wrote: >>> >>>> Ketan Talaulikar has entered the following ballot position for >>>> draft-ietf-pim-sr-p2mp-policy-20: Discuss >>>> >>>> When responding, please keep the subject line intact and reply to all >>>> email addresses included in the To and CC lines. (Feel free to cut this >>>> introductory paragraph, however.) >>>> >>>> >>>> Please refer to >>>> https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ >>>> for more information about how to handle DISCUSS and COMMENT positions. >>>> >>>> >>>> The document, along with other ballot positions, can be found here: >>>> https://datatracker.ietf.org/doc/draft-ietf-pim-sr-p2mp-policy/ >>>> >>>> >>>> >>>> ---------------------------------------------------------------------- >>>> DISCUSS: >>>> ---------------------------------------------------------------------- >>>> >>>> Thanks to the authors and the WG for your work on this document. >>>> >>>> This is an updated ballot for the v20 posted by the authors. Note that >>>> the >>>> numbering of open points in the DISCUSS position is being retained as >>>> in the >>>> original ballot for ease of tracking. >>>> >>>> While the proposal is quite straightforward, it took me a few passes to >>>> grasp >>>> the the information model of the different constructs introduced in this >>>> document >>>> and their interrelationship. Perhaps it is because I am comparing it >>>> with >>>> RFC9256 that specified the constructs for SR Policy. >>>> >>>> I will attempt to describe the model based on my reading of the >>>> document, and >>>> would appreciate if the authors can correct/clarify any errors in my >>>> understanding. Please note some discussions points that I've brought up >>>> as part >>>> of this description so as to provide a better context. >>>> >>>> An SR P2MP Policy is a construct that represents a (set of?) P2MP trees >>>> in a >>>> SR domain that can be used for delivery of P2MP service (i.e., multicast >>>> traffic). Each SR P2MP Policy is identified by <Root, Tree-ID>. >>>> >>>> An SR P2MP Policy can have one or more CPs where each provides >>>> constraints and >>>> optimization objective for the computation of a specific tree topology >>>> from root >>>> to leaves. >>>> >>>> Each CP is identified by <Protocol Origin, Originator, Discriminator> >>>> which is >>>> same as in the case of a SR Policy CP. Please see my comment on making >>>> this >>>> explicit. >>>> >>>> Each CP that is valid (i.e., for which a tree can be computed) has at >>>> least >>>> one P2MP tree instance associated with it. There can be more than one >>>> instance >>>> in cases like make-before-break (MBB). Within a SR P2MP Policy, each >>>> P2MP tree >>>> instance is identified by an Instance-ID. >>>> >>>> At any point, only one CP is active and this is selected based on the >>>> same >>>> tie-breaking logic as for SR Policy CPs. >>>> >>>> All the constructs until this point are instantiated only on the root >>>> node >>>> (not considering the controller for now). >>>> >>>> Now, we switch to RFC9524 that specified Replication Segment which is >>>> identified as <replication node id, replication-id>. >>>> >>>> Note that per RFC9524 the replication-id is a variable length field and >>>> is not >>>> actually specified in that document. This document actually specifies >>>> the >>>> replication-id to be <Root, Tree-ID, Instance-ID>. >>>> >>>> -- >>>> discuss #2 : The text in 2.3 that conveys this is not very clear >>>> (please see >>>> the comments section for suggestions). It also makes me wonder if this >>>> document >>>> should "update" RFC9524? >>>> >>>> This remains open for discussion >>>> -- >>>> >>>> The replication segment thus represents a unique per P2MP tree >>>> context at each root, intermediate and leaf nodes of a specific P2MP >>>> tree >>>> within the context of an SR P2MP Policy CP in the network. >>>> >>>> -- >>>> discuss #3: This makes the section 3.2 of shared replication segments >>>> somewhat >>>> confusing. That section seems to say that replication segment MAY be >>>> shared >>>> across different P2MP tree instances and then says shared replication >>>> segment >>>> MUST NOT be associated with an SR P2MP tree in v17. In v18, this text is >>>> modified but the explanation is still not clear on how they are used >>>> for the >>>> P2MP tree. >>>> >>>> This remains open for discussion >>>> -- >>>> >>>> The instantiation of these per P2MP tree replication segment constructs >>>> on the >>>> root, intermediate and leaf nodes in the computed tree setup the >>>> forwarding >>>> context in the network. >>>> >>>> Now, the terminology section says that the terms 'P2MP tree instance' >>>> and >>>> 'P2MP tree' are used interchangeably. >>>> >>>> Then we come to section 3 which specifies the P2MP tree construct in a >>>> way >>>> that is disconnected with the SR P2MP Policy construct. Is it because >>>> the SR >>>> P2MP Policy construct is something that only exists on the controller >>>> (see >>>> discuss#1 above) ? >>>> >>>> Then the replication segment and its replication SID constructs from >>>> RFC9524 >>>> are introduced within the P2MP Tree context. >>>> >>>> >>>> ---------------------------------------------------------------------- >>>> COMMENT: >>>> ---------------------------------------------------------------------- >>>> >>>> Thanks to the authors for addressing all the comments raised. >>>> >>>> >>>> >>>> _______________________________________________ >>>> pim mailing list -- [email protected] >>>> To unsubscribe send an email to [email protected] >>>> >>> _______________________________________________ pim mailing list -- [email protected] To unsubscribe send an email to [email protected]
draft-ietf-pim-sr-p2mp-policy-21.diff.html
(text/html, 79.6 KB)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by rfcdiff 1.49: rfcdiff -->
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux author-tools-6b87ddb6f4-rcnkq 5.15.0-1090-azure #99-Ubuntu SMP Thu May 22 21:15:50 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux -->
<!-- Using awk: /usr/bin/gawk: GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.2.1, GNU MP 6.3.0) -->
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.10 -->
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.2.2 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>Diff: draft-ietf-pim-sr-p2mp-policy-20.txt - draft-ietf-pim-sr-p2mp-policy-21.txt</title>
<style type="text/css">
body { margin: 0.4ex; margin-right: auto; }
tr { }
td { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;}
th { font-size: 0.86em; }
.small { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; }
.left { background-color: #EEE; }
.right { background-color: #FFF; }
.diff { background-color: #CCF; }
.lblock { background-color: #BFB; }
.rblock { background-color: #FF8; }
.insert { background-color: #8FF; }
.delete { background-color: #ACF; }
.void { background-color: #FFB; }
.cont { background-color: #EEE; }
.linebr { background-color: #AAA; }
.lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; }
.elipsis{ background-color: #AAA; }
.left .cont { background-color: #DDD; }
.right .cont { background-color: #EEE; }
.lblock .cont { background-color: #9D9; }
.rblock .cont { background-color: #DD6; }
.insert .cont { background-color: #0DD; }
.delete .cont { background-color: #8AD; }
.stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; }
span.hide { display: none; color: #aaa;} a:hover span { display: inline; } tr.change { background-color: gray; }
tr.change a { text-decoration: none; color: black }
</style>
<script>
var chunk_index = 0;
var old_chunk = null;
function format_chunk(index) {
var prefix = "diff";
var str = index.toString();
for (x=0; x<(4-str.length); ++x) {
prefix+='0';
}
return prefix + str;
}
function find_chunk(n){
return document.querySelector('tr[id$="' + n + '"]');
}
function change_chunk(offset) {
var index = chunk_index + offset;
var new_str;
var new_chunk;
new_str = format_chunk(index);
new_chunk = find_chunk(new_str);
if (!new_chunk) {
return;
}
if (old_chunk) {
old_chunk.style.outline = "";
}
old_chunk = new_chunk;
old_chunk.style.outline = "1px solid red";
window.location.hash = "#" + new_str;
window.scrollBy(0,-100);
chunk_index = index;
}
document.onkeydown = function(e) {
switch (e.keyCode) {
case 78:
change_chunk(1);
break;
case 80:
change_chunk(-1);
break;
}
};
</script>
</head>
<body >
<table border="0" cellpadding="0" cellspacing="0">
<tr id="part-1" bgcolor="orange"><th></th><th> draft-ietf-pim-sr-p2mp-policy-20.txt </th><th> </th><th> draft-ietf-pim-sr-p2mp-policy-21.txt </th><th></th></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Network Working Group R. Parekh, Ed.</td><td> </td><td class="right">Network Working Group R. Parekh, Ed.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Internet-Draft Arrcus</td><td> </td><td class="right">Internet-Draft Arrcus</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Intended status: Standards Track D. Voyer, Ed.</td><td> </td><td class="right">Intended status: Standards Track D. Voyer, Ed.</td><td class="lineno"></td></tr>
<tr id="diff0001"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock">Expires: <span class="delete">26 February 2026</span> C. Filsfils</td><td> </td><td class="rblock">Expires: <span class="insert">7 March 2026 </span> C. Filsfils</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Cisco Systems, Inc.</td><td> </td><td class="right"> Cisco Systems, Inc.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> H. Bidgoli</td><td> </td><td class="right"> H. Bidgoli</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Nokia</td><td> </td><td class="right"> Nokia</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Z. Zhang</td><td> </td><td class="right"> Z. Zhang</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Juniper Networks</td><td> </td><td class="right"> Juniper Networks</td><td class="lineno"></td></tr>
<tr id="diff0002"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> <span class="delete"> 25 August</span> 2025</td><td> </td><td class="rblock"> <span class="insert">3 September</span> 2025</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Segment Routing Point-to-Multipoint Policy</td><td> </td><td class="right"> Segment Routing Point-to-Multipoint Policy</td><td class="lineno"></td></tr>
<tr id="diff0003"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> draft-ietf-pim-sr-p2mp-policy-2<span class="delete">0</span></td><td> </td><td class="rblock"> draft-ietf-pim-sr-p2mp-policy-2<span class="insert">1</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Point-to-Multipoint (P2MP) Policy enables creation of P2MP trees for</td><td> </td><td class="right"> Point-to-Multipoint (P2MP) Policy enables creation of P2MP trees for</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> efficient multi-point packet delivery in a Segment Routing (SR)</td><td> </td><td class="right"> efficient multi-point packet delivery in a Segment Routing (SR)</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> domain. This document specifies the architecture, signaling, and</td><td> </td><td class="right"> domain. This document specifies the architecture, signaling, and</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> procedures for SR P2MP Policies with Segment Routing over MPLS (SR-</td><td> </td><td class="right"> procedures for SR P2MP Policies with Segment Routing over MPLS (SR-</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> MPLS) and Segment Routing over IPv6 (SRv6). It defines the SR P2MP</td><td> </td><td class="right"> MPLS) and Segment Routing over IPv6 (SRv6). It defines the SR P2MP</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Policy construct, candidate paths (CP) of an SR P2MP Policy and the</td><td> </td><td class="right"> Policy construct, candidate paths (CP) of an SR P2MP Policy and the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> instantiation of the P2MP tree instances of a candidate path using</td><td> </td><td class="right"> instantiation of the P2MP tree instances of a candidate path using</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Replication segments. Additionally, it describes the required</td><td> </td><td class="right"> Replication segments. Additionally, it describes the required</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> extensions for a controller to support P2MP path computation and</td><td> </td><td class="right"> extensions for a controller to support P2MP path computation and</td><td class="lineno"></td></tr>
<tr id="diff0004"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> provisioning.</td><td> </td><td class="rblock"> provisioning.<span class="insert"> This document updates the RFC 9524.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Requirements Language</td><td> </td><td class="right">Requirements Language</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",</td><td> </td><td class="right"> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and</td><td> </td><td class="right"> "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> "OPTIONAL" in this document are to be interpreted as described in BCP</td><td> </td><td class="right"> "OPTIONAL" in this document are to be interpreted as described in BCP</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 14 [RFC2119] [RFC8174] when, and only when, they appear in all</td><td> </td><td class="right"> 14 [RFC2119] [RFC8174] when, and only when, they appear in all</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> capitals, as shown here.</td><td> </td><td class="right"> capitals, as shown here.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Status of This Memo</td><td> </td><td class="right">Status of This Memo</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-2" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-2"><em> page 2, line 10<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-2"><em> page 2, line 10<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right"> Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Task Force (IETF). Note that other groups may also distribute</td><td> </td><td class="right"> Task Force (IETF). Note that other groups may also distribute</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> working documents as Internet-Drafts. The list of current Internet-</td><td> </td><td class="right"> working documents as Internet-Drafts. The list of current Internet-</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Drafts is at https://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right"> Drafts is at https://datatracker.ietf.org/drafts/current/.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right"> Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right"> and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> time. It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right"> time. It is inappropriate to use Internet-Drafts as reference</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> material or to cite them other than as "work in progress."</td><td> </td><td class="right"> material or to cite them other than as "work in progress."</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0005"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> This Internet-Draft will expire on <span class="delete">26 February</span> 2026.</td><td> </td><td class="rblock"> This Internet-Draft will expire on <span class="insert">7 March</span> 2026.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Copyright (c) 2025 IETF Trust and the persons identified as the</td><td> </td><td class="right"> Copyright (c) 2025 IETF Trust and the persons identified as the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> document authors. All rights reserved.</td><td> </td><td class="right"> document authors. All rights reserved.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right"> This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Provisions Relating to IETF Documents (https://trustee.ietf.org/</td><td> </td><td class="right"> Provisions Relating to IETF Documents (https://trustee.ietf.org/</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> license-info) in effect on the date of publication of this document.</td><td> </td><td class="right"> license-info) in effect on the date of publication of this document.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Please review these documents carefully, as they describe your rights</td><td> </td><td class="right"> Please review these documents carefully, as they describe your rights</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-3" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-3"><em> page 2, line 34<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-3"><em> page 2, line 34<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> provided without warranty as described in the Revised BSD License.</td><td> </td><td class="right"> provided without warranty as described in the Revised BSD License.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">Table of Contents</td><td> </td><td class="right">Table of Contents</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3</td><td> </td><td class="right"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 2. SR P2MP Policy . . . . . . . . . . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 2. SR P2MP Policy . . . . . . . . . . . . . . . . . . . . . . . 4</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 2.1. SR P2MP Policy identification . . . . . . . . . . . . . . 4</td><td> </td><td class="right"> 2.1. SR P2MP Policy identification . . . . . . . . . . . . . . 4</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 2.2. Components of an SR P2MP Policy . . . . . . . . . . . . . 5</td><td> </td><td class="right"> 2.2. Components of an SR P2MP Policy . . . . . . . . . . . . . 5</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 2.3. Candidate Paths and P2MP Tree instances . . . . . . . . . 5</td><td> </td><td class="right"> 2.3. Candidate Paths and P2MP Tree instances . . . . . . . . . 5</td><td class="lineno"></td></tr>
<tr id="diff0006"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 3. Steering traffic into an SR P2MP Policy . . . . . . . . . . . <span class="delete">6</span></td><td> </td><td class="rblock"> 3. Steering traffic into an SR P2MP Policy . . . . . . . . . . . <span class="insert">7</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 4. P2MP tree instance . . . . . . . . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 4. P2MP tree instance . . . . . . . . . . . . . . . . . . . . . <span class="insert">8</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 4.1. <span class="delete">Shared</span> Replication segments <span class="delete">. . . .</span> . . . . . . . . . . . 8</td><td> </td><td class="rblock"> 4.1. Replication segments <span class="insert">at Leaf Nodes</span> . . . . . . . . . . . 8</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 4.2. Replication segments <span class="delete">at Leaf Nodes</span> . . . . . . . . . . . <span class="delete">8</span></td><td> </td><td class="rblock"> 4.2. <span class="insert">Shared</span> Replication segments . . . . . . . . . . . <span class="insert">. . . . 9</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 4.3. Packet forwarding in P2MP tree instance . . . . . . . . . 9</td><td> </td><td class="right"> 4.3. Packet forwarding in P2MP tree instance . . . . . . . . . 9</td><td class="lineno"></td></tr>
<tr id="diff0007"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5. Using a controller to build a P2MP Tree . . . . . . . . . . . <span class="delete">9</span></td><td> </td><td class="rblock"> 5. Using a controller to build a P2MP Tree . . . . . . . . . . . <span class="insert">10</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5.1. SR P2MP Policy on a controller . . . . . . . . . . . . . <span class="delete">9</span></td><td> </td><td class="rblock"> 5.1. SR P2MP Policy on a controller . . . . . . . . . . . . . <span class="insert">10</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 5.2. Controller Functions . . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="right"> 5.2. Controller Functions . . . . . . . . . . . . . . . . . . 10</td><td class="lineno"></td></tr>
<tr id="diff0008"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5.3. P2MP Tree Compute . . . . . . . . . . . . . . . . . . . . <span class="delete">10</span></td><td> </td><td class="rblock"> 5.3. P2MP Tree Compute . . . . . . . . . . . . . . . . . . . . <span class="insert">11</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5.4. SID Management . . . . . . . . . . . . . . . . . . . . . <span class="delete">10</span></td><td> </td><td class="rblock"> 5.4. SID Management . . . . . . . . . . . . . . . . . . . . . <span class="insert">11</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5.5. Instantiating P2MP tree instance on nodes . . . . . . . . <span class="delete">11</span></td><td> </td><td class="rblock"> 5.5. Instantiating P2MP tree instance on nodes . . . . . . . . <span class="insert">12</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5.6. Protection . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock"> 5.6. Protection . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 5.6.1. Local Protection . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock"> 5.6.1. Local Protection . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 5.6.2. Path Protection . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="right"> 5.6.2. Path Protection . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno"></td></tr>
<tr id="diff0009"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <span class="delete">13</span></td><td> </td><td class="rblock"> 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 7. Security Considerations . . . . . . . . . . . . . . . . . . . <span class="delete">13</span></td><td> </td><td class="rblock"> 7. Security Considerations . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14</td><td> </td><td class="right"> 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14</td><td class="lineno"></td></tr>
<tr id="diff0010"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock"> 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 10. References . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 10. References . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 10.1. Normative References . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 10.1. Normative References . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> 10.2. Informative References . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 10.2. Informative References . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> Appendix A. Illustration of SR P2MP Policy and P2MP Tree . . . . <span class="delete">17</span></td><td> </td><td class="rblock"> Appendix A. Illustration of SR P2MP Policy and P2MP Tree . . . . <span class="insert">18</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> A.1. P2MP Tree with non-adjacent Replication Segments . . . . <span class="delete">19</span></td><td> </td><td class="rblock"> A.1. P2MP Tree with non-adjacent Replication Segments . . . . <span class="insert">20</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> A.1.1. SR-MPLS . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock"> A.1.1. SR-MPLS . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A.1.2. SRv6 . . . . . . . . . . . . . . . . . . . . . . . . 21</td><td> </td><td class="right"> A.1.2. SRv6 . . . . . . . . . . . . . . . . . . . . . . . . 21</td><td class="lineno"></td></tr>
<tr id="diff0011"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> A.2. P2MP Tree with adjacent Replication Segments . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock"> A.2. P2MP Tree with adjacent Replication Segments . . . . . . <span class="insert">23</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> A.2.1. SR-MPLS . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock"> A.2.1. SR-MPLS . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> A.2.2. SRv6 . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock"> A.2.2. SRv6 . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">26</span></td><td> </td><td class="rblock"> Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">27</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">1. Introduction</td><td> </td><td class="right">1. Introduction</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> RFC 9524 defines a Replication segment which enables an SR node to</td><td> </td><td class="right"> RFC 9524 defines a Replication segment which enables an SR node to</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> replicate traffic to multiple downstream nodes in an SR domain</td><td> </td><td class="right"> replicate traffic to multiple downstream nodes in an SR domain</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> [RFC8402]. A P2MP service can be realized by a single Replication</td><td> </td><td class="right"> [RFC8402]. A P2MP service can be realized by a single Replication</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> segment spanning from the ingress node to the egress nodes of the</td><td> </td><td class="right"> segment spanning from the ingress node to the egress nodes of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> service. This effectively achieves ingress replication which is</td><td> </td><td class="right"> service. This effectively achieves ingress replication which is</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> inefficient since the traffic of the P2MP service may traverse the</td><td> </td><td class="right"> inefficient since the traffic of the P2MP service may traverse the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> same set of nodes and links in the SR domain on its path from the</td><td> </td><td class="right"> same set of nodes and links in the SR domain on its path from the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-4" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-4"><em> page 4, line 5<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-4"><em> page 4, line 5<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> domain by signaling Replication segments to the Root, Replication and</td><td> </td><td class="right"> domain by signaling Replication segments to the Root, Replication and</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Leaf nodes. A Path Computation Element (PCE) [RFC4655] is one</td><td> </td><td class="right"> Leaf nodes. A Path Computation Element (PCE) [RFC4655] is one</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> example of such a controller. In other cases, a P2MP tree instance</td><td> </td><td class="right"> example of such a controller. In other cases, a P2MP tree instance</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> can be installed using NETCONF/YANG or Command Line Interface(CLI) on</td><td> </td><td class="right"> can be installed using NETCONF/YANG or Command Line Interface(CLI) on</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> the Root, Replication and the Leaf nodes.</td><td> </td><td class="right"> the Root, Replication and the Leaf nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> The Replication segments of a P2MP tree instance can be instantiated</td><td> </td><td class="right"> The Replication segments of a P2MP tree instance can be instantiated</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> for SR-MPLS [RFC8660] and SRv6 [RFC8986] data planes, enabling</td><td> </td><td class="right"> for SR-MPLS [RFC8660] and SRv6 [RFC8986] data planes, enabling</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> efficient packet replication within an SR domain.</td><td> </td><td class="right"> efficient packet replication within an SR domain.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0012"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">This document updates Replication-ID portion of a Replication segment</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> identifier specified in Section 2 of [RFC9524].</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">1.1. Terminology</td><td> </td><td class="right">1.1. Terminology</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> This section defines terms used frequently in this document. Refer</td><td> </td><td class="right"> This section defines terms used frequently in this document. Refer</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> to Terminology section of [RFC9524] for definition of Replication</td><td> </td><td class="right"> to Terminology section of [RFC9524] for definition of Replication</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> segment and other terms associated with it and the definition of</td><td> </td><td class="right"> segment and other terms associated with it and the definition of</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Root, Leaf and Bud node.</td><td> </td><td class="right"> Root, Leaf and Bud node.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> SR P2MP Policy: An SR P2MP Policy is a framework to construct P2MP</td><td> </td><td class="right"> SR P2MP Policy: An SR P2MP Policy is a framework to construct P2MP</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> trees in an SR domain by specifying a Root and Leaf nodes.</td><td> </td><td class="right"> trees in an SR domain by specifying a Root and Leaf nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-5" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-5"><em> page 6, line 5<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-5"><em> page 6, line 5<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> for e.g during Make-Before-Break (see Section 5.3) procedure to</td><td> </td><td class="right"> for e.g during Make-Before-Break (see Section 5.3) procedure to</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> handle a network state change. However, one and only one PTI MUST be</td><td> </td><td class="right"> handle a network state change. However, one and only one PTI MUST be</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> the active instance of the CP. If more than one PTIs of a CP are</td><td> </td><td class="right"> the active instance of the CP. If more than one PTIs of a CP are</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> active at same time, and that CP is the active CP of SR P2MP Policy,</td><td> </td><td class="right"> active at same time, and that CP is the active CP of SR P2MP Policy,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> then duplicate traffic may be delivered to the Leaf nodes.</td><td> </td><td class="right"> then duplicate traffic may be delivered to the Leaf nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A PTI is identified by an Instance-ID. This is an unsigned 16-bit</td><td> </td><td class="right"> A PTI is identified by an Instance-ID. This is an unsigned 16-bit</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> number which is unique in context of the SR P2MP Policy of the</td><td> </td><td class="right"> number which is unique in context of the SR P2MP Policy of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> candidate path.</td><td> </td><td class="right"> candidate path.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0013"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> PTIs are instantiated using Replication segments. <span class="delete">The</span> Replication-ID</td><td> </td><td class="rblock"> PTIs are instantiated using Replication segments. <span class="insert">Section 2 of</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> <span class="delete">field</span> of the Replication segment identifier can be modified as <span class="delete">per</span></td><td> </td><td class="rblock"><span class="insert"> [RFC9524] specifies</span> Replication-ID of the Replication segment</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> Section 2</span> of <span class="delete">[RFC9524].</span> This document <span class="delete">modifies</span> the Replication-ID of</td><td> </td><td class="rblock"> identifier <span class="insert">tuple as a variable length field that</span> can be modified as</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> a Replication segment identifier to be the tuple: <Root, Tree-ID,</td><td> </td><td class="rblock"> <span class="insert">required based on the use of a Replication segment. However, length</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> is an imprecise indicator</span> of <span class="insert">the actual structure of the Replication-</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> ID.</span> This document <span class="insert">updates</span> the Replication-ID of a Replication</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> segment identifier <span class="insert">of RFC 9524</span> to be the tuple: <Root, Tree-ID,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Instance-ID, Node-ID>, where <Root, Tree-ID> identifies the SR P2MP</td><td> </td><td class="right"> Instance-ID, Node-ID>, where <Root, Tree-ID> identifies the SR P2MP</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Policy and Instance-ID identifies the PTI within that SR P2MP Policy.</td><td> </td><td class="right"> Policy and Instance-ID identifies the PTI within that SR P2MP Policy.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> This results in the Replication segments used to instantiate a PTI</td><td> </td><td class="right"> This results in the Replication segments used to instantiate a PTI</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> being identified by the tuple: <Root, Tree-ID, Instance-ID, Node-ID>.</td><td> </td><td class="right"> being identified by the tuple: <Root, Tree-ID, Instance-ID, Node-ID>.</td><td class="lineno"></td></tr>
<tr id="diff0014"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">In the simplest case, Replication-ID of a Replication segment is a</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> 32-bit number as per Section 2 of RFC 9524. For this use case, the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Root MUST be zero (0.0.0.0 for IPv4 and :: for IPv6) and the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Instance-ID MUST be zero and the 32-bit Tree-ID effectively make the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Replication segment identifier <[0.0.0.0 or ::], Tree-ID, 0, Node-</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> ID>.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> PTIs may have different tree topologies due to possibly differing</td><td> </td><td class="right"> PTIs may have different tree topologies due to possibly differing</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> constraints and optimization objectives of the CPs in an SR P2MP</td><td> </td><td class="right"> constraints and optimization objectives of the CPs in an SR P2MP</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> policy and across different Policies. Even within a given CP, two</td><td> </td><td class="right"> policy and across different Policies. Even within a given CP, two</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> PTIs of that CP, say during Make-Before-Break procedure, are likely</td><td> </td><td class="right"> PTIs of that CP, say during Make-Before-Break procedure, are likely</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> to have different tree topologies due to a change in the network</td><td> </td><td class="right"> to have different tree topologies due to a change in the network</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> state. Since the PTIs may have different tree topologies, their</td><td> </td><td class="right"> state. Since the PTIs may have different tree topologies, their</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> replication states also differ at various nodes in the SR domain.</td><td> </td><td class="right"> replication states also differ at various nodes in the SR domain.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Therefore each PTI has its own Replication segment and a unique</td><td> </td><td class="right"> Therefore each PTI has its own Replication segment and a unique</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Replication-SID at a given node in the SR domain.</td><td> </td><td class="right"> Replication-SID at a given node in the SR domain.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-6" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-6"><em> page 7, line 44<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-6"><em> page 8, line 12<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> information about the traffic mapped to an SR P2MP Policy and the</td><td> </td><td class="right"> information about the traffic mapped to an SR P2MP Policy and the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> active CP and active PTI of the Policy.</td><td> </td><td class="right"> active CP and active PTI of the Policy.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * Tree-SID based forwarding: The Binding SID, which may be the Tree-</td><td> </td><td class="right"> * Tree-SID based forwarding: The Binding SID, which may be the Tree-</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> SID of the active PTI, in an incoming packet is used to map the</td><td> </td><td class="right"> SID of the active PTI, in an incoming packet is used to map the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> packet to the active PTI. The Binding SID in the incoming packet</td><td> </td><td class="right"> packet to the active PTI. The Binding SID in the incoming packet</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> is replaced with the Tree-SID of the active PTI of active CPand</td><td> </td><td class="right"> is replaced with the Tree-SID of the active PTI of active CPand</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> the packet is replicated with the Replication-SIDs of the</td><td> </td><td class="right"> the packet is replicated with the Replication-SIDs of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> downstream nodes.</td><td> </td><td class="right"> downstream nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0015"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">For local policy-based forwarding with SR-MPLS, the TTL the Root node</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> SHOULD set the TTL in encapsulating MPLS header so that the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> replicated packet can reach the furthest Leaf node. The Root MAY set</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the TTL in encapsulating MPLS header from the payload. In this case,</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the TTL may not be sufficient for the replicated packet to reach the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> furthest node. For SRv6, Section 2.2 of [RFC9524] provides guidance</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> to set the IPv6 Hop Limit of the encapsulating IPv6 header.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">4. P2MP tree instance</td><td> </td><td class="right">4. P2MP tree instance</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A P2MP tree instance within an SR domain establishes a forwarding</td><td> </td><td class="right"> A P2MP tree instance within an SR domain establishes a forwarding</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> structure that connects a Root node to a set of Leaf nodes via a</td><td> </td><td class="right"> structure that connects a Root node to a set of Leaf nodes via a</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> series of intermediate Replication nodes. The tree consists of:</td><td> </td><td class="right"> series of intermediate Replication nodes. The tree consists of:</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * A Replication segment at the Root node.</td><td> </td><td class="right"> * A Replication segment at the Root node.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * Zero or more Replication segments at intermediate Replication</td><td> </td><td class="right"> * Zero or more Replication segments at intermediate Replication</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> nodes.</td><td> </td><td class="right"> nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * Replication segments at the Leaf nodes.</td><td> </td><td class="right"> * Replication segments at the Leaf nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0016"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock">4.1. <span class="delete">Shared Replication segments</span></td><td> </td><td class="rblock">4.1. Replication segments at Leaf Nodes</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> A Replication segment MAY be shared across different PTIs, for</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> example, in scenarios involving protection mechanisms. A shared</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> Replication segment MUST be identified using a Root set to zero</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> (0.0.0.0 for IPv4 and :: for IPv6) along with a Replication-ID that</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> is unique within the context of the node where the Replication</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> segment is instantiated. A shared Replication segment is not</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"> associated with a particular SR PTI.</span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"><span class="delete">4.2.</span> Replication segments at Leaf Nodes</td><td> </td><td class="rblock"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A specific service is identified by a service context in a packet. A</td><td> </td><td class="right"> A specific service is identified by a service context in a packet. A</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> PTI is usually associated with one and only one multi-point service.</td><td> </td><td class="right"> PTI is usually associated with one and only one multi-point service.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> On a Leaf node of such a multi-point service, the transport</td><td> </td><td class="right"> On a Leaf node of such a multi-point service, the transport</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> identifier which is the Tree-SID or Replication-SID of the</td><td> </td><td class="right"> identifier which is the Tree-SID or Replication-SID of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Replication segment at a Leaf node is also associated with the</td><td> </td><td class="right"> Replication segment at a Leaf node is also associated with the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> service context because it is not always feasible to separate the</td><td> </td><td class="right"> service context because it is not always feasible to separate the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> transport and service context with efficient replication in core</td><td> </td><td class="right"> transport and service context with efficient replication in core</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> since a) multi-point services may have differing sets of end-points,</td><td> </td><td class="right"> since a) multi-point services may have differing sets of end-points,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> and b) downstream allocation of service context cannot be encoded in</td><td> </td><td class="right"> and b) downstream allocation of service context cannot be encoded in</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-7" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-7"><em> page 9, line 16<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-7"><em> page 9, line 19<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> instantiated on Leaf nodes of the tree since PHP like behavior is not</td><td> </td><td class="right"> instantiated on Leaf nodes of the tree since PHP like behavior is not</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> feasible because the Tree-SID is carried in IPv6 Destination Address</td><td> </td><td class="right"> feasible because the Tree-SID is carried in IPv6 Destination Address</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> field of outer IPv6 header. If two or more multi-point services are</td><td> </td><td class="right"> field of outer IPv6 header. If two or more multi-point services are</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> mapped to one SRv6 PTI, an SRV6 SID representing the service context</td><td> </td><td class="right"> mapped to one SRv6 PTI, an SRV6 SID representing the service context</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> is assigned by the Root node or assigned from DCB. This SRv6 SID</td><td> </td><td class="right"> is assigned by the Root node or assigned from DCB. This SRv6 SID</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> MUST be encoded as the last segment in the Segment List of the</td><td> </td><td class="right"> MUST be encoded as the last segment in the Segment List of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Segment Routing Header [RFC8754] by the Root node to derive the</td><td> </td><td class="right"> Segment Routing Header [RFC8754] by the Root node to derive the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> packet processing context (PPC) for the service as described in</td><td> </td><td class="right"> packet processing context (PPC) for the service as described in</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Section 2.2 of [RFC9524] at a Leaf node.</td><td> </td><td class="right"> Section 2.2 of [RFC9524] at a Leaf node.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0017"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">4.2. Shared Replication segments</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> A Replication segment MAY be shared across different PTIs. One</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> simple use of a shared Replication segment is for local protection on</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> a Replication node. A shared Replication segment can protect</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Replication segments of different PTIs against an adjacency or path</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> failure to the common downstream node of these Replication segments.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> A shared Replication segment MUST be identified using a Root set to</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> zero (0.0.0.0 for IPv4 and :: for IPv6), Instance-ID set to zero and</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> a Tree-ID that is unique within the context of the node where the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Replication segment is instantiated. The Root is zero because a</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> shared Replication segment is not associated with a particular SR</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> P2MP Policy or a PTI. Note, the shared Replication segment</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> identifier conforms with the updated Replication-ID definition in</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Section 2.3.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> It is possible for different PTIs to share a P2MP tree at a</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Replication node. This allows a common sub-tree to be shared across</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> PTIs whose tree topologies are identical in some portion of a SR</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> domain. The procedures to share a P2MP tree across PTIs are outside</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> the scope of this document.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">4.3. Packet forwarding in P2MP tree instance</td><td> </td><td class="right">4.3. Packet forwarding in P2MP tree instance</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> When a packet is steered into a PTI, the Replication segment at the</td><td> </td><td class="right"> When a packet is steered into a PTI, the Replication segment at the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Root node performs packet replication and forwards copies to</td><td> </td><td class="right"> Root node performs packet replication and forwards copies to</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> downstream nodes.</td><td> </td><td class="right"> downstream nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * Each replicated packet carries the Replication-SID of the</td><td> </td><td class="right"> * Each replicated packet carries the Replication-SID of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Replication segment at the downstream node.</td><td> </td><td class="right"> Replication segment at the downstream node.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * A downstream node can be either:</td><td> </td><td class="right"> * A downstream node can be either:</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> - A Leaf node, in which case the replication process terminates.</td><td> </td><td class="right"> - A Leaf node, in which case the replication process terminates.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> - An intermediate Replication node, which further replicates the</td><td> </td><td class="right"> - An intermediate Replication node, which further replicates the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> packet through its associated Replication segments until it</td><td> </td><td class="right"> packet through its associated Replication segments until it</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> reaches all Leaf nodes.</td><td> </td><td class="right"> reaches all Leaf nodes.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="diff0018"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">A Replication node and a downstream node can be non-adjacent. In</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> this case the replicated packet has to traverse a path to reach the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> downstream node. For SR-MPLS, this is achieved by inserting one or</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> more SIDs before the downstream Replication SID. For SRv6, the LOC</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> [RFC8986] of downstream Replication-SID can guide the packet to the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> downstream node or an optional segment list may be used to steer the</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> replicated packet on a specific path to the downstream node. For</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> details of SRv6 replication to non-adjacent downstream node and IPv6</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Hop Limit considerations, refer to Section 2.2 of [RFC9524].</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">5. Using a controller to build a P2MP Tree</td><td> </td><td class="right">5. Using a controller to build a P2MP Tree</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A controller is instantiated or provisioned with SR P2MP Policy and</td><td> </td><td class="right"> A controller is instantiated or provisioned with SR P2MP Policy and</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> its candidate paths to compute and instantiate PTIs in an SR domain.</td><td> </td><td class="right"> its candidate paths to compute and instantiate PTIs in an SR domain.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> The procedures for provisioning or instantiation of these constructs</td><td> </td><td class="right"> The procedures for provisioning or instantiation of these constructs</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> on a controller are outside the scope of this document.</td><td> </td><td class="right"> on a controller are outside the scope of this document.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">5.1. SR P2MP Policy on a controller</td><td> </td><td class="right">5.1. SR P2MP Policy on a controller</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> An SR P2MP Policy is provisioned on a controller by an entity which</td><td> </td><td class="right"> An SR P2MP Policy is provisioned on a controller by an entity which</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-8" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-8"><em> page 12, line 27<span class="hide"> ¶</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-8"><em> page 13, line 12<span class="hide"> ¶</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> protect the logging facility in case Replication segment</td><td> </td><td class="right"> protect the logging facility in case Replication segment</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> instantiation fails on multiple nodes. The controller MAY decide to</td><td> </td><td class="right"> instantiation fails on multiple nodes. The controller MAY decide to</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> tear down the PTI if the instantiations of some of the Replication</td><td> </td><td class="right"> tear down the PTI if the instantiations of some of the Replication</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> segments of the instance fail. The controller is RECOMMENDED to tear</td><td> </td><td class="right"> segments of the instance fail. The controller is RECOMMENDED to tear</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> down the PTI if the instantiation of the Replication segment on the</td><td> </td><td class="right"> down the PTI if the instantiation of the Replication segment on the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Root node fails. The controller can employ different strategies to</td><td> </td><td class="right"> Root node fails. The controller can employ different strategies to</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> re-try instantiating a PTI after a failure. These are out of scope</td><td> </td><td class="right"> re-try instantiating a PTI after a failure. These are out of scope</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> of this document.</td><td> </td><td class="right"> of this document.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A PTI should be instantiated within a reasonable time especially if</td><td> </td><td class="right"> A PTI should be instantiated within a reasonable time especially if</td><td class="lineno"></td></tr>
<tr id="diff0019"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> it is the active PTI of <span class="delete">the</span> SR P2MP Policy. One <span class="delete">strategy</span> is the</td><td> </td><td class="rblock"> it is the active PTI of <span class="insert">a</span> SR P2MP Policy. One <span class="insert">approach</span> is the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"> controller <span class="delete">instantiate</span> the Replication segments in a batch. For</td><td> </td><td class="rblock"> controller <span class="insert">instantiates</span> the Replication segments in a batch. For</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> example, the controller instantiates the Replication segments of the</td><td> </td><td class="right"> example, the controller instantiates the Replication segments of the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> Leaf nodes and the intermediate Replication nodes first. If all of</td><td> </td><td class="right"> Leaf nodes and the intermediate Replication nodes first. If all of</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> these Replication segments are successfully instantiated, the</td><td> </td><td class="right"> these Replication segments are successfully instantiated, the</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> controller next proceeds to instantiate the Replication segment at</td><td> </td><td class="right"> controller next proceeds to instantiate the Replication segment at</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> the Root node. If the Replication segment instantiation at the Root</td><td> </td><td class="right"> the Root node. If the Replication segment instantiation at the Root</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> node succeeds, the controller can immediately activate the instance</td><td> </td><td class="right"> node succeeds, the controller can immediately activate the instance</td><td class="lineno"></td></tr>
<tr id="diff0020"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"> if it needs to carry traffic of the SR P2MP Policy.</td><td> </td><td class="rblock"> if it needs to carry traffic of the SR P2MP Policy. <span class="insert">A controller can</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> adopt a similar approach when instantiating the new PTI for Make-</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Before-Break procedure.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">5.6. Protection</td><td> </td><td class="right">5.6. Protection</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">5.6.1. Local Protection</td><td> </td><td class="right">5.6.1. Local Protection</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> A network link, node or replication branch on a PTI can be protected</td><td> </td><td class="right"> A network link, node or replication branch on a PTI can be protected</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> using SR Policies [RFC9256]. The backup SR Policies are associated</td><td> </td><td class="right"> using SR Policies [RFC9256]. The backup SR Policies are associated</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> with replication branches of a Replication segment, and are</td><td> </td><td class="right"> with replication branches of a Replication segment, and are</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> programmed in the data plane in order to minimize traffic loss when</td><td> </td><td class="right"> programmed in the data plane in order to minimize traffic loss when</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> the protected link/node fails. The segment list of the backup SR</td><td> </td><td class="right"> the protected link/node fails. The segment list of the backup SR</td><td class="lineno"></td></tr>
<tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
<tr id="end" bgcolor="gray"><th colspan="5" align="center"> End of changes. 20 change blocks. </th></tr>
<tr class="stats"><td></td><th><i>47 lines changed or deleted</i></th><th><i> </i></th><th><i>92 lines changed or added</i></th><td></td></tr>
<tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.49. The latest version is available from <a href="https://github.com/ietf-tools/rfcdiff" >https://github.com/ietf-tools/rfcdiff</a> </td></tr>
</table>
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'979f3867ee9df037',t:'MTc1NzAwNzA4Ny4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>
draft-ietf-pim-sr-p2mp-policy-21.html
(text/html, 134 KB) - not displayed