[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Working Group Last Call draft-ietf-ccamp-loose-path-reopt-
Thanks JP (and thanks for the rigour of tracking
down all of the points raised).
[SNIPPED]
>> It
seems to me that this draft is applicable to a strict ERO where one
>>
of the hops is a non-specific abstract node such as an AS number. This
>> is made clear in section 2, but the Abstract and Introduction
(yeah,
>> and also the title and draft name) do not adequately expose
this fact.
>> But, further, the Introduction talks only about
reoptimization without
>> any mention of loose hops or abstract nodes.
Thus the draft is
>> schizoid to the third degree - is this loose path
reoptimization,
>> reoptimization of loose and non-specific abstract
nodes, or general
>> reoptimization? The draft needs to be consistent
and clear.
>
>Agree, the following definition has been adopted
throughout the
>document: "A loosely routed LSP is defined as an LSP that
follows a
>path that contains at least one loose hop or a strict
(abstract node)
>hop"
So, to be clear, you are only interested in the
reoptimization of such "loosely routed LSPs".
But note RFC 3209...
An abstract node
is
a group of nodes whose internal topology is opaque to the
ingress
node of the LSP. An abstract node is said to be
simple if it
contains only one physical node.
So your definition is not quite accurate since a
"strict (abstract node) hop" includes a strict simple abstract
node.
How about:
A loosely routed LSP is defined as
one that does not contain a full
explicit route identifying each LSR
along the path of the LSP at
the time it is signaled by the
ingress LSR. Such an LSP is signaled
with no ERO, with an ERO that
contains at least one loose hop, or
with an ERO that contains an
abstract node that is not a simple
abstract node (that is, an
abstract node that identifies more than
one LSR).
>I guess that the document title can remain
unchanged considering that a
>loose path also includes the case of a path
where at least one hop is
>an abstract node.
Following the above definition, that is true.
Just check that the defintion appears early in the Introduction (and maybe in
the Abstract).
>> Section 2 states that an ERO expansion is either up to the
next loose
>> hop or to the destination. But, in fact, the ERO
expansion may also be
>> any partial fragment towards either of these
targets (including next
>> hop resolution). I suggest re-wording this
paragraph to list (as
>> bullets) what an ERO might contain, and in a
separate list, what the
>> computation might
produce.
>
>We listed in this paragraph the most usual case of ERO
expansion. If
>you're ok with this, elaborating further on ERO expansion
is out of the
>scope of this document.
"Most usual" is subjective. Consider nested domains.
But I'm not too bothered about this particular issue, so leave the
text.
>> Section 4.1
>>
>> I'm not comfortable
with the Session Attributes toggling like this.
>> This type of
function is what the Admin Status object was invented
>> for.
?
>> In section 5.3.2
>> - The link (sub-code=7) or the
node (sub-code=8) MUST be
>> locally registered for further
reference (the TE database must
>> be
updated)
>>
>> What does "the TE database must be updated"
mean? Are you saying that
>> the TED is now built from information
flooded by the IGP *and* by
>> information fed back from signaling? If
so (and I don't approve!) then
>> you must define what happens when
you receive a new LSA for the
>> specific link that contradicts the
information signaled. There is a
>> strong argument that says that
*the* method we use for building the
>> TED is IGP flooding - if this
mechanism doesn't provide you with the
>> information you need, then
you should propose extensions to the IGP,
>> not hook the information
onto signaling.
>Let me sightly disagree here. I'm fine to not mention
this since this
>may be implementation specific. That said, I do think
that this is
>highly desirable (in combination with timer-based
mechanism) so as to
>speed convergence. Typically, upon receiving a
PathErr message it does
>make sense to first update your TED or the
head-end will keep trying
>the same path until an LSA/LSP get received.
In many networks, such
>optimization is definitely required to speed up
the TE LSP rerouting.
I really disagree (more than slightly :-)
It is absolutely OK to say that the failed/going-oos link/node can be
supplied to the path computation component as an exclusion. This applies to the
recomputation of the failed LSP.
It is very suspect to say that you will update the TED. This would apply to
the computation of new LSP *only* by the LSR that happens to be the ingress for
the failed LSP. How do you know that the next LSP computed will be computed at
that LSR?
For this procedure to have any realistic meaning, you would want the
information to reach all computation points, and the signaling protocol should
not do this.
Certainly, if you cite "rapid convergence", we will have to convince the
IGP WGs and the ADs that it is correct to distribute routing information using
the signaling protocol, and not to make changes to the IGP as necessary.
Again, I would like to refer you to the crankback draft which handles this
issue at ingress and transit computation points.
>> OTOH it may be that all you mean is that the Session state should
be
>> updated to indicate the link or node that is being shut down so
that
>> later recomputation can avoid this link. In this case, I
suggest you
>> refer to the CCAMP crankback draft.
>Still
such update may be beneficial to other TE LSP and is orthogonal
>to the
use of crankback?
The only way in which it is orthogonal is that it has been specified
differently.
We have three drafts we need to sort out here.
- Loose path reoptimization
- Crankback
- Graceful shutdown
It seems to me (humbly ;-) that crankback defines the mechanisms for
reporting failed resources during LSP setup or after the LSP is established. It
specifies the procedures by which various LSRs may attempt to reroute.
Graceful shutdown specifies procedures for withdrawing resources so that
LSPs are moved using make-before-break before a resource is set oos. This uses
existing routing and signaling procedures, but introduces new error codes so
that we can distinguish graceful shutdown from failure cases.
Loose path reoptimization essentially defines how an ingress may request
information about potential reoptimization, and how an LSR may report potential
reoptimization. The former is, of course, new procedures. The latter is new
error codes.
I think I recall that you agreed that the local maintenance stuff should
move out of the Loose Path Reoptimization draft [did I make that up?] in which
case, the discussion we are having applies only to the split between crankback
and graceful shutdown.
>> In section 5.3.2
>> - ... Note that in the case of TE
LSP
>> spanning multiple administrative domains, it may be
desirable
>> for the boundary LSR to modify the RSVP PathError
message and
>> insert its own address for confidentiality
reason.
>>
>> Yes. Good point, but doesn't the error code also
need to change?
>> Otherwise it will appear that the border node is
the node being taken
>> oos.
>
>If you agree with this
argument I would vote for keeping the same error
>code since this would
not change the action taken by the head-end.
Note that this debate needs to be split for reoptimization and
graceful shutdown. [Increasingly I hope I did hear you say you would remove all
graceful shutdown text from this draft!]
But absolutely it would...
AS1 :
AS2
:
A---.....---B---D-------Z
\ :\
/ /
\
: E /
\:
/
C---..../
:
Graceful shutdown...
Link BD wants to go out of service.
B needs to report this to A so that there is a make-before-break
resignaling.
B substitutes its address in the PathErr.
A assumes B is not healthy and routes through C (very sub-optimal).
A should have resignaled through B and allowed B to route via E.
Reoptimization...
LSP is via E. Link BD comes up.
B needs to signal simply "reoptimize".
Since B will do the recomputation, the PathErr can safely carry its
address.
>> Section 6
>>
>> Need to describe the processing
by an LSR that does not understand the
>> new flag (rather than
understand it but not support it). Note that you
>> cannot define the
behavior of legacy LSRs in this draft, so you must
>> reference
behavior defined in some other document.
>>
>> Ditto the new
error code.
>
>Unfortunately I do not think that RFC3209 specifies
the behavior of a
>node receiving a SESSION ATTRIBUTE flag that it does
not understand ...
>An implementation should then just ignore such flag
if it does not
>understand it.
You are correct. This is one of the joys in our life.
But since nothing is stated, there is a high risk that your new flag will
be zeroed out by a transit LSR. Oh dear; does that mean that your extensions
cannot be guaranteed to work unless the whole network is upgraded?
So you need to make some statement. (Or perhaps you'd like to write a BCP
for 3209?)
>> Question...
>>
>> How does
the process of unsolicited notification (of a potential
>> better path
rather than of a link going oos) avoid thrashing races? As
>> a very
simple example, consider the following n/w.
>>
>>
<-A1-> <--A0-> <-A2->
>>
A-----B
C-----D
>> |
|
>>
| |
>>
E-----F---G---H-----I
>>
>> Set up two LSPs AI and ED using
EROs {A,B(L),H(L),I} and
>> {E,F(L),C(L),D} producing paths ABFGHI and
EFGHCD.
>>
>> Now install a *low* bandwidth link BC capable of
carrying either but
>> not both LSPs. Both B and F will notice that
the LSPs entering A0
>> through them can be re-optimized and will
report the fact to A and E
>> respectively.
>note that if
the link is a "low" bw link, it is unlikely that B and F
>will report a
better path but yes that could happen depending on the
>IGP links costs
indeed.
Well, Let us assume that all links are 10G except BC which is 9.8G. Let us
assume that the LSPs are 5G each...
>> Both A and E will attempt mb4b, but (of course) only one will
succeed.
>> In a small network, this is not a big deal, but in a large
network
>> with a lot of LSPs this is clearly a waste of processing
and will
>> cause a degree of network thrash maybe only in the control
plane, but
>> maybe in the data plane if a lower priority LSP is
re-routed first. In
>> fact, this scenario can cause significant
disruption in the data plane
>> as the re-routed LSP will be preempted
and could have been
>> successfully left in its original place.
>
>Indeed, but this is no different that any other reoptimization scenario
>in a single area. If for example, a link is restored within an area
>that could offer a potentially more optimal path to a large number of
>TE LSPs, there could be race conditions indeed. This is usually sorted
>out by using jittered reoptimization at the head-end.
Sure. In a single domain you can apply sensible and rational reoptimization
centrally. This is relatively trivial and works well because:
- repotimization of one LSP at a time is bound to lead to
relatively poor results
- reoptimization is not time-critical
Note that it is very important that an operation like reoptimization should
not lead to LSPs being dropped.
[SNIP]
>> Thus I would suggest removing the unsolicited notification of
>> reoptimization opportunities (while retaining the unsolicited
>> notification of links going oos) or requiring that the policy be
>> timer-based not event triggered.
>
>We would definitely
prefer to keep this mode. Implementation could just
>activate the
function for *some* sensitive LSP + combined with with
>jittered
reoptimization but such notification is desirable to quickly
>take
advantage of a newly restored link.
OK, that's interesting.
So I didn't see any descripition of processing rules for when 25:6 is
received. I (flasely) assumed that the text for 25:7 and 25:8 applied, but
clearly it doesn't. Perhaps you'd like to add some processing thoughts for
25:6?
Cheers,
Adrian