[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 <CABjMoXYUZWSOUdzdBECyUhvQ_1REw760ebeOd=8-ghwUzdC0tQ@mail.gmail.com>
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, 69.1 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>&nbsp;draft-ietf-pim-sr-p2mp-policy-20.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-pim-sr-p2mp-policy-21.txt&nbsp;</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"> &para;</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"> &para;</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"> &para;</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"> &para;</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><td class="lineno"></td><td class="left">     5.3.  P2MP Tree Compute . . . . . . . . . . . . . . . . . . . .  10</td><td> </td><td class="right">     5.3.  P2MP Tree Compute . . . . . . . . . . . . . . . . . . . .  10</td><td class="lineno"></td></tr>
      <tr id="diff0008"><td></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><td class="lineno"></td><td class="left">   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13</td><td> </td><td class="right">   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13</td><td class="lineno"></td></tr>
      <tr><td class="lineno"></td><td class="left">   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  13</td><td> </td><td class="right">   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  13</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><td class="lineno"></td><td class="left">   9.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  14</td><td> </td><td class="right">   9.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  14</td><td class="lineno"></td></tr>
      <tr><td class="lineno"></td><td class="left">   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  15</td><td> </td><td class="right">   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  15</td><td class="lineno"></td></tr>
      <tr><td class="lineno"></td><td class="left">     10.1.  Normative References . . . . . . . . . . . . . . . . . .  15</td><td> </td><td class="right">     10.1.  Normative References . . . . . . . . . . . . . . . . . .  15</td><td class="lineno"></td></tr>
      <tr id="diff0009"><td></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="left">     A.1.  P2MP Tree with non-adjacent Replication Segments  . . . .  19</td><td> </td><td class="right">     A.1.  P2MP Tree with non-adjacent Replication Segments  . . . .  19</td><td class="lineno"></td></tr>
      <tr id="diff0010"><td></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="left">   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  26</td><td> </td><td class="right">   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  26</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"></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"> &para;</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"> &para;</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"> &para;</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"> &para;</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: &lt;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: &lt;Root, Tree-ID,</td><td class="lineno"></td></tr>
      <tr><td class="lineno"></td><td class="left">   Instance-ID, Node-ID&gt;, where &lt;Root, Tree-ID&gt; identifies the SR P2MP</td><td> </td><td class="right">   Instance-ID, Node-ID&gt;, where &lt;Root, Tree-ID&gt; 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: &lt;Root, Tree-ID, Instance-ID, Node-ID&gt;.</td><td> </td><td class="right">   being identified by the tuple: &lt;Root, Tree-ID, Instance-ID, Node-ID&gt;.</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 &lt;[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&gt;.</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 8, line 10<span class="hide"> &para;</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-6"><em> page 8, line 25<span class="hide"> &para;</span></em></a></th><td></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="diff0015"><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"> &para;</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-7"><em> page 9, line 11<span class="hide"> &para;</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="diff0016"><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 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"> &para;</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-8"><em> page 12, line 46<span class="hide"> &para;</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="diff0017"><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="diff0018"><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">&nbsp;End of changes. 18 change blocks.&nbsp;</th></tr>
     <tr class="stats"><td></td><th><i>39 lines changed or deleted</i></th><th><i> </i></th><th><i>66 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:'979b44c9692811f1',t:'MTc1Njk2NTY1MS4wMDAwMDA='};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, 132.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.