The MPLS WG Archive

Cell Relay Retreat>MPLS WG Archive>month:2006-May> msg00065



[Date Prev][Date Next][Thread Prev][Thread Next]  
  [Date Index][Thread Index][Author Index][Subject Index]

[mpls] Re: working group last call ondraft-ietf-mpls-rsvp-te-p2mp-05.txt

  • From: "Adrian Farrel" <adrian@olddog.co.uk>
  • Date: Fri, 19 May 2006 14:11:27 +0100
  • Organization: Old Dog Consulting
  • X-OriginalArrivalTime: 19 May 2006 13:46:01.0799 (UTC)FILETIME=[910D1D70:01C67B4A]

Hi,

Thanks to the editors. Good job.

Here are some comments...

Adrian

==
Title
Here you say "Point to Multipoint", but in the rest of the document it is
hyphenated.
==
Abstract
s/setup/set up/
(setup is a noun not a verb)
==
Abstract
Looks like you want a paragraph break before...
"There can be various applications..."
==
Section 3.
Acronyms must be spelt out the first time they are encountered.
The Abstract (regrettably) is stand-alone and doesn't count, so the
Introduction has to do it all again :-(
Anyway, P2P and S2L are new.
==
Section 3 para 3
   One Path message may signal one
   or multiple S2L sub-LSPs. Hence the S2L sub-LSPs belonging to a P2MP
   LSP can be signaled using one Path message or split across multiple
   Path messages.
The conjunction of these two sentences implies that a single Path message
may also contain the S2L sub-LSPs from different P2MP LSPs. I don't believe
this is the case, and we should correct this text accordingly. For example:
   One Path message may signal one or multiple S2L sub-LSPs
   for a single P2MP LSP. Hence the S2L sub-LSPs belonging to a P2MP
   LSP can be signaled using one Path message or split across multiple
   Path messages.
==
Section 3 para 4
s/application specific/application-specific/
==
Section 4 para 1
   A branch node is an LSR that is capable of replicating the
   incoming data on two or more outgoing interfaces.
Technically, it only replicates it on one or more outgoing interfaces,
because the first interface is not a replication.
==
Section 4.1 para 1
   The specific aspect related to a P2MP TE LSP is the action required
   at a branch node, where data replication occurs. Incoming MPLS
   labeled data is appropriately replicated to several outgoing
   interfaces which may have different labels.
Not sure if this is trying to say something more, or is just poorly worded.
How about...
   The defining feature of a P2MP TE LSP is the action required
   at branch nodes where data replication occurs. Incoming MPLS
   labeled data is appropriately replicated to several outgoing
   interfaces which may use different labels for the data.
==
Section 4.1 para 2
   A P2MP TE Tunnel comprises one or more P2MP LSPs. A P2MP TE Tunnel is
   identified by a P2MP SESSION object. This object contains the
   identifier of the P2MP Session which includes the P2MP ID, a tunnel
   ID and an extended tunnel ID.
Need to turn this paragraph around a bit.
   A P2MP TE Tunnel comprises one or more P2MP LSPs. A P2MP TE Tunnel is
   identified the P2MP ID, a tunnel ID, and an extended tunnel ID. These
objects
   are carried in RSVP-TE in a P2MP SESSION object.
==
Section 4.1 para 3
   The fields of a P2MP SESSION object are identical to those of the
   SESSION object defined in [RFC3209] except that the Tunnel Endpoint
   Address field is replaced by the P2MP Identifier (P2MP ID) field.
The comparison is not quite so simple in the IPv6 case because the 16 byte
IPv6 tunnel endpoint address is replaced by a 4 byte P2MP ID. We should
bring this out in this paragraph as follows.
   The fields of a P2MP SESSION object are identical to those of the
   SESSION object defined in [RFC3209] except that the Tunnel Endpoint
   Address field (IPv4 or IPv6) is replaced by the 4-byte P2MP Identifier
   (P2MP ID) field.
==
Section 4.1
Add a forwards reference at the end of the section as follows.
   The new P2MP SESSION object is defined in section 19.1.
==
Section 4.2
s/20.2/19.2/
==
Section 4.3 para 3
s/subgroup/sub-group/
Please do global search and replace in the document
==
Section 4.3 para 3
s/an egress and semantic/an egress, and semantic/
==
Section 4.4.1 para 1
s/20.3/19.3/
==
Section 4.4.1 para 2
s/20.5/19.5/
s/20.6/19.6
==
Section 4.4.1 and onwards
The S2L_SUB_LSP object is consistently referred to in angle brackets, but no
other object is given this treatment. Please remove the brackets everywhere
except in BNF.
==
Section 4.4.1
It seems to me that the S2L_SUB_LSP object contains a leaf identifier and an
SERO.
The SERO provides the path from the last branch to the leaf.
This means that it is not an S2L_SUB_LSP object at all, but really a
S2L_SUB_LSP object. But that sounds clumsy.
Can we call this a LEAF object?
We would also rename the descriptor lists in section 5.1, 6.1, 7.1, and
11.1.
We could change the names of the IPv4/IPv6 S2L Sub-LSP destination address,
but that isn't necessary.
==
Section 4.4.2 para 1
s/setup/set up/
==
Section 4.5 para 1
   When a Path message signals a single S2L sub-LSP (that is, the Path
   message is only targeting a single leaf in the P2MP tree), the
   EXPLICIT_ROUTE object encodes the path from the ingress LSR to the
   egress LSR.
Strike the words "from the ingress LSR" as this situation may also occur
within the network (for example, downstream of a branch node, or just
anywhere if the original Path message only included one S2L sub-LSP).
==
Section 4.5 para 2
   When a Path message signals multiple S2L sub-LSPs the path of the
   first S2L sub-LSP, from the ingress LSR to the egress LSR, is encoded
   in the ERO.
As above, strike "from the ingress LSR"
==
Section 4.5 para 3
s/(as defined in [RFC3209])/(as defined in [RFC3209] and [RFC3473])/
==
Section 4.5 para 3
   Each subsequent S2L sub-LSP
   is represented by tuples of the form < [<P2MP
   SECONDARY_EXPLICIT_ROUTE>] <S2L_SUB_LSP> >.
Should read...
   Each subsequent S2L sub-LSP
   is represented by tuples of the form <  <S2L_SUB_LSP>,
   [<P2MP SECONDARY_EXPLICIT_ROUTE>] >.
...since this is the order used in the encoding.
==
Section 4.5 para 3
   An SERO for a particular
   S2L sub-LSP includes only the path from a certain branch LSR to the
   egress LSR if the path to that branch LSR can be derived from the ERO
   or other SEROs.
Strike "certain" as this applies to any branch LSR in any network.
==
Section 4.5 para 3
s/20/19/
==
Section 4.5 para 6
s/Following/The following/
Also near the top of page 10.
==
Section 4.5
s/exercise to the reader./exercise for the reader./
==
Section 4.5 page 10
s/A LSR/An LSR/
s/a S2L/an S2L/
s/a SERO/an SERO/
Probably worth checking the whole document.
==
Section 5.1
layout of <S2L sub-LSP descriptor> is messed up
==
Section 5.1
   A SERO corresponds to the following <S2L_SUB_LSP>
   object.
s/A/An/
Oh no it doesn't! Say...
   An SERO corresponds to the preceding <S2L_SUB_LSP>
   object.
==
Section 5.1
   The RRO in the sender descriptor contains the hops traversed by the
   Path message and applies to all the S2L sub-LSPs signaled in the Path
   message.
That is rather an MPLS-centric view of the world. Better to say...
   The RRO in the sender descriptor contains the upstream hops traversed
   by the LSP up to this point and applies to all the S2L sub-LSPs signaled
   in the Path message.
==
Section 5.2 para 1
s/ingress-LSR/ingress LSR/
s/egress-LSR/egress LSR/
s/that is the destination/that is a destination/
==
Section 5.2 para 1
   Another S2L sub-LSP belonging to the same instance of this
   S2L sub-LSP (i.e.  the same P2MP LSP) shares resources with this S2L
   sub-LSP.
In previous versions of the draft we had "can share" in place of "shares",
and this was with good reason. It is perfectly acceptable for replication to
take place at an upstream node and for two copies of the data to flow on the
same link before being fanned out down stream. This might happen in an
optical network where the split node is not capable of the appropriate
lambda conversions, but might also happen in a packet network where the
downstream node cannot perform sufficient replication in a timely manner (or
at all) and so some of the replication must be done upstream regardless of
the 'waste' of resources in the network.
Since we are in 2119-land (these are protocol procedures) please replace
"shares" with "MAY share".
However (!) note that in 5.2.1 para 4 we have "SHOULD".
I can accept "SHOULD" in this paragraph, too.
==
Section 5.2 para 1
s/identified using the <S2L_SUB_LSP> object/identified using the
<S2L_SUB_LSP> objects/
==
Section 5.2 para 2
s/20/19/
==
Section 5.2.1 para 1
You have changed your notation for tuples
==
Section 5.2.1 para 3
   An ingress LSR may use multiple Path messages for signaling a P2MP
   LSP.
s/may/MAY/
==
Section 5.2.1 para 3
   This implies that each Path message that is used
   to signal a P2MP LSP is signaled using the same signaling attributes
   with the exception of the S2L sub-LSP information and Sub-Group
   identifiers.
s/information/descriptor/
s/identifiers/identifier/
==
Section 5.2.1 para 5
   In this case the message can be decomposed
   into multiple Path messages such that each of the messages carry a
   subset of the X2L sub-tree carried by the incoming message.
s/carry/carries/
==
Section 5.2.1 para 6
   In order
   to disambiguate these Path messages a <Sub-Group Originator ID, sub-
   Group ID> tuple is introduced (also referred to as the Sub-Group
   field) and encoded in the SENDER_TEMPLATE object.
s/field/fields/
==
Section 5.2.1 para 6
   This is either the ingress
   LSR or a LSR which re-originates the Path message with its own Sub-
   Group Originator ID.
This sentence doesn't add anything. Strike it.
==
Section 5.2.1 para 6
   The <Sub-Group Originator ID, sub-Group ID> tuple is globally unique.
I'm not sure what this means.
The same LSR can use the same sub-Group ID on different LSPs since the LSPs
are distinguished by session/sender template.
Further, there is some conflict with the sentences immediately afterwards...
   The sub-Group ID space is specific to the Sub-Group Originator ID.
   Therefore the combination <Sub-Group Originator ID, sub-Group ID> is
   network-wide unique.
Since no conclusion appears to be drawn from this uniqueness, I would say
that the sub-Group ID is unique within the context of a P2MP LSP and that
the sub-Group Originator ID is network-wide unique.
==
Section 5.2.1 para 6
   Also, a router that changes the Sub-Group
   originator ID of an incoming Path message MUST use the same value of
   the Sub-Group Originator ID for all outgoing Path messages, for a
   particular P2MP LSP, and SHOULD not vary it during the life of the
   P2MP LSP.
This may be confusing in the light of the fact (a few lines earlier) that...
   The Sub-Group Originator ID MUST be set to the TE Router ID of
   the LSR that originates the Path message.
Certainly the "MUST"s are complementary, but what is with the "SHOULD"?
==
Section 5.2.2 para 1
   The S2L sub-LSP descriptor list allows the signaling of one or more
   S2L sub-LSPs in one Path message. It is possible to signal multiple
   <S2L_SUB_LSP> object and ERO/SERO combinations in a single Path
   message. Note that these two objects differentiate a S2L sub-LSP.
The first two sentence are largely duplicates.
The third sentence says two objects, three have been mentioned.
How about...
   The S2L sub-LSP descriptor list allows the signaling of one or more
   S2L sub-LSPs in one Path message. Each S2L sub-LSP descriptor
   describes a single S2L sub-LSP.
==
Section 5.2.2 3rd bullet
       - If the first hop of the SERO is not a local address of the LSR
         the S2L sub-LSP descriptor MUST be included in the Path message
         sent to LSR that is the next hop to reach the first hop in the
         SERO. This next hop is determined by using the ERO or other
         SEROs that encode the path to the SERO's first hop.
s/sent to LSR/sent to the LSR/
==
Section 5.2.2
   Hence a branch LSR MUST only propagate the relevant S2L sub-LSP
   descriptors on each downstream link. A S2L sub-LSP descriptor list
   that is propagated on a downstream link MUST only contain those S2L
   sub-LSPs that are routed using that link. This processing MAY result
   in a subsequent S2L sub-LSP in an incoming Path message to become the
   first S2L sub-LSP in an outgoing Path message.
I'm not sure if this is what I wrote, but anyway, it is wrong!
Path messages are not propagated on downstream links, but are sent to the 
next hop towards the egress. This finesse of words is important when 
out-of-channel signaling is considered. So reword as follows...
   Hence a branch LSR MUST only propagate the relevant S2L sub-LSP
   descriptors to each next downstream hop. An S2L sub-LSP descriptor list
   that is propagated to a downstream hop MUST only contain those S2L
   sub-LSPs that are routed using that hop. This processing MAY result
   in a subsequent S2L sub-LSP in an incoming Path message to become the
   first S2L sub-LSP in an outgoing Path message.
==
Section 5.2.2
   Note that if one or more SEROs contain loose hops, expansion of such
   loose hops MAY result in overflowing the Path message size. Section
   5.2.3 describes how signaling of the set of S2L sub-LSPs can be split
   in more than one Path message.
s/split in more/split across more/
==
Section 5.2.2
   The RECORD_ROUTE Object (RRO) contains the hops traversed by the Path
   message and applies to all the S2L sub-LSPs signaled in the Path
   message. A transit LSR MUST append its address in an incoming RRO and
   propagate it downstream. A branch LSR MUST form a new RRO for each of
   the outgoing Path messages by copying the RRO from the incoming Path
   message and appending its address. Each such updated RRO MUST be
   formed using the rules in [RFC3209].
s/in [RFC3209]./in [RFC3209] updated by [RFC3473] as appropriate./
==
Section 5.2.2
   If a LSR is unable to support a S2L sub-LSP in a Path message, a
   PathErr message MUST be sent for the impacted S2L sub-LSP, and normal
   processing of the rest of the P2MP LSP SHOULD continue.
Suggest the addition of an example...
   If a LSR is unable to support a S2L sub-LSP in a Path message (for
   example, it is unable to route towards the destination using the SERO), a
   PathErr message MUST be sent for the impacted S2L sub-LSP, and normal
   processing of the rest of the P2MP LSP SHOULD continue.
==
Section 5.2.2
s/section 12./sections 5.2.4 and 11./
==
Section 5.2.3 Title
The title of this section is ambiguous. Does the transit get fragmented?
Suggest
5.2.3. Transit Fragmentation of Path State Information
==
Section 5.2.3
   It is desirable not to rely on IP
   fragmentation in this case.
This bald statement needs qualification and should not be left as an 
exercise for the reader.
Presumably the reason is that IP fragmentation of RSVP messages is 
explicitly disallowed in section 3.3 of RFC2205. In which case "desirable" 
does not come into it, and this is a stronger requirement.
However, in practice, IP fragment loss and the consequent message loss, is 
no different from IP packet loss and the consequent message loss. Or is it?
==
Section 5.2.3 para 2
   When multiple Path messages are used by an ingress or transit node,
   each Path message SHOULD be identical with the exception of the S2L
   sub-LSP related information (e.g., SERO),
s/related information/descriptor/
==
Section 5.2.3 para 3
   As described above one case in which the Sub-Group Originator ID of a
   received Path message is changed is that of transit fragmentation.
s/transit fragmentation/fragmentation of the Path message at a transit node/
==
Section 6.1
The format of the <flow descriptor> definition has been messed up
==
Section 6.1
I don't think we should use the same name for the <S2L sub-LSP descriptor 
list> as is used for the Path message as it leads to exactly the same 
confusion and error as we have here. Viz.
   <S2L sub-LSP descriptor> ::= <S2L_SUB_LSP> [ <P2MP
   SECONDARY_EXPLICIT_ROUTE> ]
Should read...
   <S2L sub-LSP descriptor> ::= <S2L_SUB_LSP> [ <P2MP
   SECONDARY_RECORD_ROUTE> ]
(and obviously the format needs to be sorted out)
So I suggest changing the name to be different from that used in a Path 
message as the descriptor is a different entity.
==
Section 6.1 final para
   However different upstream labels are allocated if the <Sender
   Address, LSP-ID> of the FILTER_SPEC object is different as that
   implies different P2MP LSP.
s/are/MUST be/
==
Section 6.2 para 1
   The egress LSR MUST follow normal RSVP procedures while originating a
   Resv message. The Resv message carries the label allocated by the
   egress LSR.
Is this the case, or does the Resv message from the egress contain an 
S2L_SUB_LSP object?
If it is the case that the S2L_SUB_LSP MUST be included then please say so 
in this paragraph.
If this paragraph is correct as it stands, please add a note to say that the 
S2L_SUB_LSP object MUST NOT be included.
==
Section 6.2
   Each branch node can potentially send one Resv message upstream for
   each of the downstream receivers. This MAY result in overflowing the
   Resv message, particularly when considering that the number of
   messages increases the closer the branch node is to the ingress of
   the P2MP LSP.
As currently written, this says that one Resv message is sent for each 
downstream receiver (i.e. n messages when there are n receivers). I don't 
think you means this because the next sentence talks about overflowing which 
would not arise in this case.

At the same time, the increase in the number of messages closer to the 
ingress is not relevant, it is the increase in the number of receivers.

If you are *also* trying to talk about the potential of a single message per 
receiver and the impact of the consequent number of messages as you get 
closer to the ingress, with the implied desirability of combining messages 
into a single Resv, then this needs to be said separately.

So...
   Each branch node MAY forward a single Resv message upstream for
   each received Resv from a downstream receiver. Note that there may be
   a large number of Resv messages at and close to the ingress LSR for an
   LSP with many receivers. To avoid issues of congestion, a branch LSR
   SHOULD combine Resv state from multiple receivers into a single Resv
   message to be sent upstream (see section 6.2.1), but note that this may
   result in overflowing the Resv message particularly as the number of
   receivers downstream of any branch LSR increases as the LSR is closer
   to the ingress LSR. Thus, a branch LSR MAY choose to send more than
   one Resv message upstream and partition the Resv state between the
   messages.
==
Section 6.2 final paragraph
   Transit nodes MUST replace the Sub-Group ID fields received in the
   FILTER_SPEC objects with the value that was received in the Sub-Group
   ID field of the Path message from the upstream neighbor, when the
   node set the Sub-Group Originator field in the associated Path
   message.  ResvErr messages generation is unmodified.  Nodes
   propagating a received ResvErr message MUST use the Sub-Group field
   values carried in the corresponding Resv message.
Split the ResvErr text into a second paragraph
==
Section 6.2.1 para 1
   A branch node may have to send the Resv message being sent upstream
   whenever there is a change in a Resv message for a S2L sub-LSP
   received from one of the downstream neighbors.
Some problems with tense. Try...
   A branch node may have to send a revised Resv message upstream
   whenever there is a change in a Resv message received from one of
   its downstream neighbors for a S2L sub-LSP.
==
Section 6.2.1 para 1
s/upstream,particularly/upstream, particularly/
==
Section 6.2.1 para 1
s/established for the first time./first established/
==
Section 6.2.1 recommends the use of a timer. IETF protocol specification 
rules require that we suggest a value for all protocol timers. Please 
suggest a value here - it could be a function of some other timer, a 
function of the number of downstream destinations, or just a raw number.
==
Section 6.3 Title
"Record Routing" doesn't do it for me! What "Route Recording"?
==
Section 6.3.1 para 1
   A Resv message contains a record route per S2L sub-LSP that is being
   signaled by the Resv message if the sender node requests route
   recording by including a RRO in the Path message. The same rule is
   used during signaling of P2MP LSP i.e. insertion of the RRO in the
   Path message used to signal one or more S2L sub-LSP triggers the
   inclusion of an RRO for each sub-LSP.
Say either "recorded route" or "route record".
I think this paragraph is trying to contract P2P (first sentence) with P2MP 
(subsequent sentence), but actually describes P2MP in both with the result 
that "The same rule is used..." is confusing. How about...
   A Resv message for a P2P LSP contains a recorded route if the
   ingress LSR requested route recording by including an RRO in
   the original Path message. The same rule is used during signaling
   of P2MP LSPs. That is, inclusion of an RRO in the Path message
   used to signal one or more S2L sub-LSPs triggers the inclusion
   of a recorded route for each sub-LSP in the Resv.
==
Section 6.3.1 para 2
   The record route of the first S2L sub-LSP is encoded in the RRO.
s/record route/recorded route/
==
Section 6.3.1 para 2
   Additional RROs for the subsequent S2L sub-LSPs are referred to as
   P2MP_SECONDARY_RECORD_ROUTE objects (SRROs).
s/RROs/recorded routes/
s/referred to as/encoded in/
==
Section 6.3.1 para 2
s/20.5/19.5/
==
Section 6.3.1 para 2
   The ingress node then receives the RRO and
   possibly the SRRO  corresponding to each subsequent S2L sub-LSP. Each
   <S2L_SUB_LSP> object is followed by the RRO/SRRO. The ingress node
   can then determine the record route corresponding to a particular S2L
   sub-LSP. The RRO and SRROs can be used to construct the end to end
   Path for each S2L sub-LSP.
First sentence is duplicated later and should be removed as confusing. But 
the text is wrong anyway. Rewrite as...
   Each S2L_SUB_LSP object in a Resv is associated with an RRO or
   SRRO. The first S2L_SUB_LSP object (for the first S2L sub-LSP) is
   associated with the RRO. Subsequent S2L_SUB_LSP objects (for
   subsequent S2L sub-LSPs) are each followed by an SRRO that
   contains the recorded route for that S2L sub-LSP from the leaf up to
   a branch. The ingress node can then determine use the RRO and
   SRROs to determine the end-to-end path for each S2L sub-LSP.
==
Section 6.4 para 1
s/can either be FF or SE./can be either FF or SE./
==
Section 6.4 para 1
   The S2L sub-LSPs that belong
   to different P2MP LSP MUST NOT share labels. If the reservation style
   is FF then S2L sub-LSPs that belong to different P2MP LSP MUST NOT
   share resources.  If the reservation style is SE than S2L sub-LSPs
   that belong to different P2MP LSP and the same P2MP Tunnel SHOULD
   share resources where they share hops, but MUST not share labels.
s/different P2MP LSP/different P2MP LSPs/   (thrice)
s/than/then/
This text gives GMPLS a problem because SE sharing of resources in 
non-packet networks requires sharing of labels (and this is how 
make-before-break is usually performed in resource-constrained non-packet 
environments). I would suggest that the first sentence is superfluous as it 
is covered by either FF or SE. Can we rewrite as...
   If the reservation style is FF then S2L sub-LSPs that belong to
   different P2MP LSPs MUST NOT share resources or labels. If the
   reservation style is SE then S2L sub-LSPs that belong to different
   P2MP LSPs and the same P2MP Tunnel SHOULD share resources
   where they share hops, but MUST not share labels in packet
   environments.
==
Section 7.2.2 para 2
   A transit LSR that propagates the PathTear message downstream MUST
   ensure that it sets the <Sub-Group Originator ID, Sub-Group ID> tuple
   in the PathTear message to the values used to generate the previous
   Path message that corresponds to the S2L sub-LSPs being deleted by it
   in the PathTear message.
This is a bit clumsy. How about...
   A transit LSR that propagates the PathTear message downstream MUST
   ensure that it sets the <Sub-Group Originator ID, Sub-Group ID> tuple
   in the PathTear message to the values used in the Path message used to
   set up the S2L sub-LSPs being torn down.
==
Section 8.1 para 1
s/and Notify messages/and Notify message/
s/Both object and messages/Both object and message/
==
Section 8.1 point 2. para 1
s/to the value, that was/to the value that was/
==
Section 8.1 point 2. para 1
   If the incoming Resv message carries a
   Notify Request object then the LSR MUST set the Notify node address
   in the Notify Request object to the value, that was received in the
   corresponding Path message, in the Resv message that it sends
   upstream.
Too many sub-clauses. Try...
   If the incoming Resv message carries a
   Notify Request object then the LSR MUST set the Notify node address
   in the Notify Request object in the Resv message that it sends
   upstream to the value that was received in the corresponding Path
   message,
==
Section 8.1
Missing final period.
==
Section 8.2 para 2
s/to the value, that was/to the value that was/
==
Section 8.2 para 2
s/carry/carries/
==
Section 8.2 final para
   All downstream branches that do
   requested ResvConf messages MUST be sent such a message.
s/that do/that/
==
Section 9
s/LSP/LSPs/  (twice)
==
Section 10 para 1
Not sure what this is trying to say by "managed". Perhaps "indexed" or 
"identified" or "located"?
==
section 10 para 2
s/object/objects/
==
Section 10.1 para 3
s/4.2/5.2/
==
Section 10
Suddenly the definition of TE Router ID is given a reference to [RFC3477] 
which wasn't present in earlier uses of the term (section 5.2.1, 5.2.3). 
Firstly, we need to be consistent, but more important (to me) is that 3477 
does NOT define TE Router ID: it defines Router ID.
You are faced, therefore with:
- drop the reference
- define the term yourself
- find another reference.
The best other reference I can find is 
draft-ietf-ccamp-gmpls-addressing-03.txt
==
Section 11
s/requests the maintenance of the 'LSP integrity'/requests the maintenance 
of  'LSP integrity'/
==
Section 11
   Therefore, reception of an
   error message for a particular S2L sub-LSP MAY change the state of
   any other S2L sub- LSP of the same P2MP TE LSP.
I think this is a lowercase "may". There is no element of choice for an 
implementation here.
==
Section 11.1
Need a reference to the definition of <S2L sub-LSP descriptor list> in 
section 5.1
==
Section 11.2
Would benefit from a reference to the revised <flow descriptor list> defined 
in section 6.1
==
Section 11.2
Note the receiver of a
   ResvErr message is able to identify the errored outgoing Path
   message, and outgoing interface, based on the Sub-Group fields
   received in the ResvErr message.
This should either say "*incoming* Path" or "outgoing *Resv*"
==
Section 11.3
   A branch LSR that receives a PathErr message with the
   Path_State_Removed flag clear MUST act according to the wishes of the
   ingress LSR. The default behavior is that the branch LSR forwards the
   PathErr upstream and takes no further action. However, if the LSP
   integrity flag is set on the Path message, the branch LSR MUST send
   PathTear on all downstream branches and send the PathErr upstream
   with the Path_State_Removed flag set (per [RFC3473]).
This only applied during LSP setup. That is, the LSP integrity flag does not 
impact on any LSP state once the LSP has been set up and if the PathErr does 
not have the Path_State_Removed flag set. (Compare with the first paragraph 
of this section.) So this paragraph should read...
   A branch LSR that receives a PathErr message during LSP setup with the
   Path_State_Removed flag clear MUST act according to the wishes of the
   ingress LSR. The default behavior is that the branch LSR forwards the
   PathErr upstream and takes no further action. However, if the LSP
   integrity flag is set on the Path message, the branch LSR MUST send
   PathTear on all downstream branches and send the PathErr upstream
   with the Path_State_Removed flag set (per [RFC3473]).
==
Section 14.2 para 1
s/the incremental/incremental/
==
Section 15
Please change
   [RFC4090] extensions can be used to perform fast reroute for the
   mechanism described in this document.
to
   [RFC4090] extensions can be used to perform fast reroute for the
   mechanism described in this document when applied within packet
   networks.
==
Section 15.1 .1
This text is particularly dense and would benefit from re-writing and 
paragraph breaks.
Some non-exhaustive comments follow.
==
Section 15.1.1
The two uses of "MUST" seem to be overkill.
RFC 4090 only uses "SHOULD" for P2P LSPs.
==
Section 15.1.1
   Note that all such S2L sub-LSPs belonging to a particular instance of
   a P2MP tunnel will share the same outgoing label on the link between
   the PLR and the next-hop.
This is only a "SHOULD share labels" in section 5.2.1.
Not a big deal. Just delete this and the subsequent sentence.
==
Section 15.1.1
Paragraph break before
   During failure Path messages for each S2L sub-LSP, that are
   effected, MUST be sent to the MP, by the PLR.
which should be rewritten as
   During failure, Path messages for each S2L sub-LSP that is
   affected MUST be sent to the MP by the PLR.
==
Section 15.1.1
s/It is recommended that/It is RECOMMENDED that/
==
Section 15.1.1
s/the PLR use/the PLR uses/
==
Section 15.1.1
s/sender template specific/sender template-specific/
==
Section 15.1.1
Paragraph break before
   The MP MUST use
==
Section 15.1.1
Change
   The MP MUST use the LSP-ID to
   identify the corresponding S2L sub-LSPs. The MP MUST not use the
   <sub-group originator ID, sub-group ID> while identifying the
   corresponding S2L sub-LSPs. In order to further process a S2L sub-LSP
   the MP MUST determine the protected S2L sub-LSP using the LSP-id and
   the <S2L_SUB_LSP> object.
to
   The MP MUST use the LSP-ID and the <S2L_SUB_LSP> object to
   identify the corresponding S2L sub-LSPs. The MP MUST not use the
   <sub-group originator ID, sub-group ID> to identify the
   corresponding S2L sub-LSPs because the sub-group
   originator ID might be changed by some LSR that is bypassed
   by the bypass tunnel.
==
Section 15.1.1
Please add the following.
   Note that these procedures may require that the PLR replicate
   data for a P2MP LSP into more than one bypass tunnel where
   the LSR was not previously responsible for replicating this
   data. This can arise if there are several MPs that are not one
   hop downstream of the PLR. Further, in this case, the
   replicated data may be required to be labeled with a
   two-label label stack where both labels are different in each
   copy of the data.
==
Section 15.1.2
Again, the use of "MUST" is stronger than RFC 4090
==
Section 15.1.2
   The MP MUST allocate the same label to all such S2L sub-LSPs
   belonging to a particular P2MP LSP.
I think you cannot make this constraint. The MP doesn't necessarily know 
that it is going to be an MP when it allocates the label for the S2L 
sub-LSP. Besides, 5.2.1 has already allowed separate labels.
But this isn't an issue is it? If there are two labels there are already two 
copies of the data.
==
Section 15.1.2 para 2
   After detecting failure of the protected node the PLR MUST send a
   Path message for each protected S2L sub-LSP to the MP of the
   protected S2L sub-LSP.
This implies one Path message for each S2L sub-LSP is that really the case? 
Since we have a mechanism for placing more than one S2L sub-LSP in a Path 
message, we could certainly use this here.
==
Section 15.1.2 para 2
s/recommended/RECOMMENDED/
==
Section 15.1.2 para 2
s/MUST not/MUST NOT/
==
Section 15.1.2 para 2
Similar changes as in 15.1.1 wrt "while identifying"
==
Section 15.2 para 2
Unlike the bypass stuff, the detour work seems a bit rocky. Perhaps no-one 
has implemented it yet?
   One to one backup as described in [RFC4090] can be used to protect a
   particular S2L sub-LSP against link and next-hop failure. Protection
   may be used for one or more S2L sub-LSPs between the PLR and the
   next-hop. All the S2L sub-LSPs corresponding to the same instance of
   the P2MP tunnel, between the PLR and the next-hop share the same P2MP
   LSP label.
This leaves me uneasy.
Firstly, the statement about using the same label is in contradiction with 
section 5.2.1.
But also, it seems to me odd that you are talking about protecting S2L 
sub-LSPs rather than about protecting the P2MP LSP. True, you may achieve 
the protection of the P2MP LSP by protecting each constituent S2L sub-LSP, 
but if you start with the discussion of S2L sub-LSPs it implies that you 
could protect sub S2L sub-LSPs within one P2MP LSP and not others. This 
would appear to be a contradiction of the statement that all leaves of the 
tree have the same LSP attributes.
So I think it would be helpful to spend some time reworking this text in 
terms of the P2MP LSP.
==
Section 15.2 para 2
   All or some of these S2L sub-LSPs may be protected.
This seems to confirm my worst fears, but it is also damnably strange.
Consider: you have said that all of the S2L sub-LSPs use the same label. 
Notwithstanding that I disagree with you, let us assume that they do. How 
then would you protect only a subset of them? There is only one copy of the 
data.
==
Section 15.2 para 2
   The detour S2L sub-LSPs may or may not share labels, depending on the
   detour path. Thus the set of outgoing labels and next-hops for a P2MP
   LSP that was using a single next-hop and label between the PLR and
   next-hop before protection, may change once protection is triggerred.
Why would the label sharing for the detour LSPs (please don't call them 
"detour S2L sub-LSPs" because they really don't go from the S or to the L) 
behave differently from the protected LSPs?
I *think* you are setting yourself up for different MPs depending on the 
leaves. But you didn't describe this process for bypass tunnels where it is 
surely equally applicable.
==
Section 15.2 para 4
s/recommended/RECOMMENDED/
==
Section 16 para 7
   The ingress can use IGP
   extensions to determine non P2MP capable LSRs [TE-NODE-CAP].
Well, strictly it uses the extensions to determine P2MP-capable LSRs and can 
then make assumptions that the other LSRs are either shy or not capable of 
P2MP function.
==
Section 16 para 7
   The P2MP
   capable LSR that initiates the non-adjacent signaling message to the
   next P2MP capable LSR may have to employ a fast detection mechanism
   such as [BFD] [BFD-MPLS] to the next P2MP capable LSR.
Please break this into the subsequent paragraph that contains the 
explanation.
==
Section 17 para 1
s/up P2MP LSP/up a P2MP LSP/
s/Infact/In fact/
==
Section 17 para 2
s/P2P LSPs be dynamically setup/P2P LSPs can be dynamically set up/
==
Section 17 para 2
Not sure that a reference to a figure in the Appendix is appropriate. I 
think Appendixes are normally non-normative.
==
Section 18 para 1
Strike it
==
Section 18 para 4
   Normally, a P2MP LSP has a single incoming interface on which all of
   the Path messages associated with that P2MP LSP are received.
Mustn't describe the interfaces in terms of how the Path messages are 
received (see the very next sentence!). Let's keep to the data plane to 
avoid the issue.
   Normally, a P2MP LSP has a single incoming interface on which all of
   the data for the P2MP LSP is received.
==
Section 18 para 5
   Similarly, in both the re-merge case and cross-over cases, a node
   will receive a Path message for a given P2MP LSP on a different
   incoming interface, and the node needs to be able to distinguish
   between dynamic LSP re-routing and the re-merge/cross-over cases.
Same issue...
   Similarly, in both the re-merge case and cross-over cases, a node
   will receive a Path message for a given P2MP LSP identifying a
   different incoming interface for the data, and the node needs to be
   able to distinguish between dynamic LSP re-routing and the
   re-merge/cross-over cases.
==
Section 18.1 para 2
s/SUB-LSP objects/S2L_SUB_LSP objects/   (three times)
s/ set of SUB-LSPs/ set of S2L sub-LSPs/
==
Section 18.1.1 para 2
s/objects included the/objects included in the/
==
Section 18.1.1 para 3
s/followed for both/followed for all/
==
Section 18.1.1 para 4
   When configured to allow a re-merge case to persist, the re-merge
   node receives data associated with the P2MP LSP on multiple incoming
   interfaces, but it may only send the data from one of these
   interfaces to its outgoing interfaces,
s/may/MUST/
==
Section 18.1.1 paras 5, 6 and 7
s/SUB-LSP objects/S2L_SUB_LSP objects/   (six times)
==
Section 19.1.1 Extended Tunnel ID
s/ingress-PID/ingress-P2MP ID/
==
Section 19.2 para 1
s/ingress-LSR/ingress LSR/
s/LSP ID can be can be/LSP ID can be/
==
Section 19.2 para 1
   The instances can share
   resources with each other, but use different labels.
Either strike ", but use different labels" or change to ", but may use 
different labels."
==
Section 19.2.1 and 19.2.2
This is a bit hairy, but...
The Sub-Group Originator and the source do not necessarily come from the 
same IPv4/6 spaces. So you might need to add an IPv6 Sub-Group Originator to 
a Sender_Template that has an IPv4 sender address.
I don't like the sound of this, because it creates four flavours instead of 
the two listed, and it doesn't seem very likely to occur in the field.
What do we do? Leave it as it is and wait until someone encounters the 
issue?
==
Section 19.2.2
I think you can use the same short-form text as used in 19.1.2 and save some 
trees.
==
Section 19.3.1 and 19.3.2
s/SUB_LSP Class = 50/S2L_SUB_LSP Class = 50/
==
Section 19.4.2 Title
s/4/6/
==
Section 20
The whole of this section needs to give IANA a better reference for where 
the new code points are to be allocated. This can be done by naming the 
registries (with the IANA pages).
==
Section 20.1
s/50  Class Name = SUB_LSP/50  Class Name = S2L_SUB_LSP
==
Section 20.2
s/P2MP LSP/P2MP_LSP/    (thrice)
==
Section 20.3
For reference I have tracked these values in the interim registry of Routing 
Problem error values at http://www.olddog.co.uk/ccamp.htm
==
Section 20.4
   Referenced Section of this Doc:   10
s/10/5.2.4/
For reference I have tracked these values in the interim registry of 
LSP_ATTRIBUTE flags at http://www.olddog.co.uk/ccamp.htm
==
Section 21
Absolutely no way we will get away with a 3 line security section! The 
security ADs are positively mauling all I-Ds at the moment.
There are a couple of things we can say:
- more destinations for an LSP increases the risk
- there is potential for a listener to get themselves added to a P2MP tree
- there is description in the I-D about using tunnels to form remote 
adjacencies
- DoS impact when one leaf is nobbled and the tree has LSP integrity applied
Probably lots more.
==
Section 23
Usual to put the appendix later in the document
==
Section 23.1 point a)
  We assume that PE1 learns of the
   egress-LSRs at different points.
"points in time" ?
==
Section 24.2
Suspect that some of the I-D versions listed have moved on
==
Section 25.2
Lou and Markus's coordinates have changed




_______________________________________________
mpls mailing list
mpls@lists.ietf.org
https://www1.ietf.org/mailman/listinfo/mpls