Subject: [Pce] Path-key and Path Computation API (was RE: [mpls] http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00)

From: Dhruv Dhody <[email-masked]>
Date: Fri, 4 Nov 2016 10:44:33 +0000

Hi Francesco,

Interesting case. Starting a new thread and limiting to PCE and TEAS WG.

IMHO I would shy away from storing path-key and its confidential path segment (cps) as tunnels with "compute-only".

In PCEP Yang, we do store path-keys in the operational data store of PCEP.  [https://datatracker.ietf.org/doc/draft-ietf-pce-pcep-yang/?include_text=1]
+--ro path-keys {path-key}?
         |  +--ro path-keys* [path-key]
         |     +--ro path-key         uint16
         |     +--ro cps
         |     |  +--ro explicit-route-objects* [index]
         |     |     +--ro index                   uint8
         |     |     +--ro explicit-route-usage?   identityref
         |     |     +--ro (type)?
         |     |        +--:(ipv4-address)
         |     |        |  +--ro v4-address?             inet:ipv4-address
         |     |        |  +--ro v4-prefix-length?       uint8
         |     |        |  +--ro v4-loose?               boolean
         |     |        +--:(ipv6-address)
         |     |        |  +--ro v6-address?             inet:ipv6-address
         |     |        |  +--ro v6-prefix-length?       uint8
         |     |        |  +--ro v6-loose?               boolean
         |     |        +--:(as-number)
         |     |        |  +--ro as-number?              uint16
         |     |        +--:(unnumbered-link)
         |     |        |  +--ro router-id?              inet:ip-address
         |     |        |  +--ro interface-id?           uint32
         |     |        +--:(label)
         |     |           +--ro value?                  uint32
         |     +--ro pcc-original?    -> /pcep-state/entity/peers/peer/addr
         |     +--ro req-id?          uint32
         |     +--ro retrieved?       boolean
         |     +--ro pcc-retrieved?   -> /pcep-state/entity/peers/peer/addr
         |     +--ro creation-time?   yang:timestamp
         |     +--ro discard-time?    uint32
         |     +--ro reuse-time?      uint32

Perhaps we need to decide if there is a need to make this generic?

Regards,
Dhruv

From: Francesco Lazzeri [mailto:[email-masked]]
Sent: 04 November 2016 15:37
To: Dhruv Dhody <[email-masked]>; Leeyoung <[email-masked]>; Beller, Dieter (Nokia - DE) <[email-masked]>
Cc: [email-masked]; CCAMP ([email-masked]) <[email-masked]>; Scharf, Michael (Nokia - DE) <[email-masked]>; TEAS WG ([email-masked]) <[email-masked]>; [email-masked]
Subject: RE: [mpls] http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

What happens in case the requested controller or PCE cannot or doesn't want to send an explicit ERO ?
In that case the path key mechanism is foreseen; the controller returns a path key identifier which can be used eventually to implement the requested path.
Here something must be stored inside the controller in order to understand the path key and translate it to the relevant route as needed. I would store the path and probably would keep also reserved the relevant resources, until eventual operation or expiration of the path key. This cannot be avoided.
I am wondering whether this is a completely diffent case or should be harmonized with the case under discussion.
Regards,
Francesco

From: CCAMP [mailto:[email-masked]] On Behalf Of Dhruv Dhody
Sent: 04 November, 2016 5:36 AM
To: Leeyoung <[email-masked]<mailto:[email-masked]>>; Beller, Dieter (Nokia - DE) <[email-masked]<mailto:[email-masked]>>
Cc: [email-masked]<mailto:[email-masked]>; CCAMP ([email-masked]<mailto:[email-masked]>) <[email-masked]<mailto:[email-masked]>>; Scharf, Michael (Nokia - DE) <[email-masked]<mailto:[email-masked]>>; TEAS WG ([email-masked]<mailto:[email-masked]>) <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>
Subject: Re: [CCAMP] [mpls] http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Hi All,

As an implementer who would like to implement a simple path computation request, the rpc is the way to go.
Doing this via tunnel creation would require 3 operations. (1) POST to create tunnel with "compute-only"; (2) GET to get the path; (3) DELETE tunnel.
Which is an overkill to say the least.

We can further debate the usefulness of Stateful compute-only mode separately.

Regards,
Dhruv

From: mpls [mailto:[email-masked]] On Behalf Of Leeyoung
Sent: 04 November 2016 04:21
To: Beller, Dieter (Nokia - DE) <[email-masked]<mailto:[email-masked]>>
Cc: Igor Bryskin <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>; CCAMP ([email-masked]<mailto:[email-masked]>) <[email-masked]<mailto:[email-masked]>>; Scharf, Michael (Nokia - DE) <[email-masked]<mailto:[email-masked]>>; TEAS WG ([email-masked]<mailto:[email-masked]>) <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>
Subject: Re: [mpls] http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Hi Dieter,

Thanks for your clear explanation on this issue. I have no problem with that. However, my real concern of the Tunnel mode with "compute only" is the assumption people are making. That is, The tunnel mode with "compute only" will make sense to me only when the requests turn into instantiation of tunnels (the paths are signaled and resource allocated in the network) immediately following the request. But what assures that this always happens? If the path computation request would not turn into instantiation right away then the "resource allocated but not in use" would turn out to be wasteful.

I still think the stateless RPC mechanism for path compute would make senses to the situations where the aforementioned assumption does not hold. What do you think?

Thanks.
Young

From: Beller, Dieter (Nokia - DE) [mailto:[email-masked]]
Sent: Thursday, November 03, 2016 5:27 PM
To: Leeyoung
Cc: Igor Bryskin; Scharf, Michael (Nokia - DE); Daniele Ceccarelli; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: Re: [mpls] http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Hi all,

when we talk about the stateful path computation use case, it means IMHO that when a path has been calculated successfully in response to a request, a new path object is created in the data store. This does only make sense if the resources have been allocated in the TED of the PCE irrespective of the fact whether the connection along this path will be established right away or at a later point in time. This will prevent further path computation requests from assuming that the resources are still available. As the TED of the PCE also has to reflect the network state, I would assume that the network resources can be in one of the following three states: available, allocatedButNotInUse,  allocatedAndInUse. The path objects also need state information reflecting for example the alarm state of the allocated resources. The path calculated earlier may become (temporarily) invalid due to a link failure affecting the path.

Does this make sense?

Thanks,

Dieter

Sent from my tablet

Leeyoung <[email-masked]<mailto:[email-masked]>> wrote:

Igor,

When you say "state", are you referring to the YANG datastore or some other "interim" state of those paths that are calculated but not instantiated as LSPs? If we were to update the YANG datastore for this, I would think that we may have some issue when the customer decided not to instantiate the TE tunnel (after the path compute request).

Thanks.
Young

From: Igor Bryskin
Sent: Thursday, November 03, 2016 3:02 PM
To: Leeyoung; Scharf, Michael (Nokia - DE); Daniele Ceccarelli; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Young,

>From the provider controller point of view COMPUTE_ONLY TE tunnels will have exactly the same state as "normal" (COMPUTE_ADN_PROVISION) TE tunnels.

Igor

From: Leeyoung
Sent: Thursday, November 03, 2016 3:42 PM
To: Igor Bryskin; Scharf, Michael (Nokia - DE); Daniele Ceccarelli; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Igor,

In such case, would the YANG datastore be updated? I guess not. If not, then the system/controller has to keep this interim state, would it?

Thanks.
Young

From: Igor Bryskin
Sent: Thursday, November 03, 2016 2:34 PM
To: Scharf, Michael (Nokia - DE); Leeyoung; Daniele Ceccarelli; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Michael,
You are exactly right. The purpose of the "compute-only" TE tunnel is to create/maintain the normal TE tunnel state and (re-)compute TE paths for the TE tunnel connections/LSPs but not signal/provision the LSPs.

Igor

From: Scharf, Michael (Nokia - DE) [mailto:[email-masked]]
Sent: Thursday, November 03, 2016 3:17 PM
To: Leeyoung; Daniele Ceccarelli; Igor Bryskin; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Isn't the intention of defining "compute-only tunnels" to create state in the controller, but not to signal them? If the tunnel should be signaled and resources shall be allocated, why not just configure a vanilla tunnel? Uses cases seem to exist for both variants, and both can be encoded in YANG. Is there anything I miss here?

Michael

From: Leeyoung [mailto:[email-masked]]
Sent: Thursday, November 03, 2016 7:49 PM
To: Scharf, Michael (Nokia - DE); Daniele Ceccarelli; Igor Bryskin; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Hi Michael,

I think I am with you on your point. If we use rpc, it is clear. On the other hand, if we were to use "stateful compute-only" it seems that the system/controller has to keep the state of the paths somewhere which is not YANG datastore. My understanding is that YANG datastore is updated only when the path is signaled and resource is allocated. Would this give the system/controller additional burden to keep the "interim" state?

Young

From: CCAMP [mailto:[email-masked]] On Behalf Of Scharf, Michael (Nokia - DE)
Sent: Thursday, November 03, 2016 8:58 AM
To: Daniele Ceccarelli; Igor Bryskin; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: Re: [CCAMP] http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Maybe I miss something, but to me, the domain controller either computes a path stateless, which can be modeled in YANG in an RPC. Or the domain controller computes a path, stores state, and provides access to the result in the YANG datastore. In the latter case, whether resources are allocated, or whether the NEs get actually provisioned, is an orthogonal question.

As a side note, I am not sure of I would call a domain controller or an NMS a PCE. Path computation is only a subset of the functions of a domain controller.

Michael

From: Daniele Ceccarelli [mailto:[email-masked]]
Sent: Thursday, November 03, 2016 2:49 PM
To: Scharf, Michael (Nokia - DE); Igor Bryskin; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Can you please explain what the "stateful compute-only" stands for I don't understand what is stateful in a path computation request only.
IMHO either I ask the PCE (SDN controller, NMS, whatever) to compute a path and then forget about it or I ask to compute and provision it. I don't understand the value of asking for it and remembering about it.

BR
Daniele

From: Scharf, Michael (Nokia - DE) [mailto:[email-masked]]
Sent: giovedì 3 novembre 2016 14:45
To: Igor Bryskin <[email-masked]<mailto:[email-masked]>>; Daniele Ceccarelli <[email-masked]<mailto:[email-masked]>>; CCAMP ([email-masked]<mailto:[email-masked]>) <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>) <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>
Subject: RE: http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

We have discussed this before. From an implementer's perspective, the two clean solutions to the problem seem to either stateful "compute-only" tunnels or a stateless RPC.

Michael

From: mpls [mailto:[email-masked]] On Behalf Of Igor Bryskin
Sent: Thursday, November 03, 2016 2:34 PM
To: Daniele Ceccarelli; CCAMP ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>; TEAS WG ([email-masked]<mailto:[email-masked]>); [email-masked]<mailto:[email-masked]>
Subject: [ALU] [mpls]http://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00

Hi,

>From the draft:

6.    YANG Model for requesting Path Computation

   Work on extending the TE Tunnel YANG model to support the need to
   request path computation has recently started also in the context of
   the [TE-TUNNEL<https://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00#ref-TE-TUNNEL>] draft.

   It is possible to request path computation by configuring a
   "compute-only" TE tunnel and retrieving the computed path(s) in the
   LSP(s) Record-Route Object (RRO) list as described in [TE-TUNNEL<https://tools.ietf.org/html/draft-busibel-teas-yang-path-computation-00#ref-TE-TUNNEL>].

   This is a stateful solution since the state of each created
   "compute-only" TE tunnel needs to be maintained and updated, when
   underlying network conditions change.

   The need also for a stateless solution, based on an RPC, has been
   recognized.

   The YANG model to support stateless RPC is for further study.

IB>> Please, note, that in the TE Tunnel model we consider the COMPUTE_AND_FORGET mode. We also consider the concept of path computation action to be defined under the TE tunnel node. All this is to facilitate stateless path computations.

Cheers,
Igor