1 .. _pcep-user-guide-path-computation:
3 Path Computation Server
4 =======================
6 This section describes how to use Path Computation Server bundle in
7 conjunction with the Path Computation Algorithm and Graph plugins. This Server
8 provides a full PCE component that fully supports RFC5440 including PcRequest
9 PcResponse messages exchanges from a PCC requesting a valid path to the PCE.
11 .. contents:: Contents
18 Check that the feature ``features-algo`` is installed. Normally it will be
19 installed with the pcep feature ``features-pcep``. Otherwise, install it
20 with the following command:
22 .. code-block:: console
24 feature:install features-algo
29 The Path Computation Server uses the Path Computation Algorithm plugin which
30 needs a graph to be able to compute constrained paths. Thus, a valid graph must
31 be provided manually or automatically.
36 Create a new graph with the Rest API ``Create Graph``:
38 .. code-block:: console
40 PUT: restconf/config/graph:graph-topology
42 Refer to Graph documentation for details.
44 There is a restriction on the name of the graph due to the Path Computation
45 Algorithm integration. It must be started by **"ted://"** string in order to
46 be learn automatically by the Path Computation Server bundle.
48 Note that this kind of graph remains static. Thus, resources, mostly bandwidth,
49 are not updated after deploying some RSVP-TE tunnels which consume bandwidth.
54 To achieve better experience, notably in conjunction with RSVP-TE and in order
55 to work on an up-to-date graph, an integration is provided with the BGP Link
56 State protocol. This allows to automatically fulfil a graph with network
57 traffic engineering information conveyed by the BGP-LS protocol. The resources,
58 mostly bandwidth, are automatically updated in the graph after deploying
59 an RSVP-TE tunnel. Note that this is not the case with Segment Routing.
61 For that purpose, just setup a BGP peering with a router that is BGP-LS
62 speaker and report traffic engineering network topology from IS-IS-TE or
63 OSPF-TE routing protocol. Refer to BGP documentation for the detail about
64 how to setup a BGP peering with Link-State family.
66 Once done, verify that the graph is correctly fulfil with the Rest API:
68 .. code-block:: console
70 GET: restconf/operational/graph:graph-topology
75 There is two ways to use the Path Computation Server: through PcRequest and
78 With PcRequest, just create a new tunnel on the router with an external PCE
79 for path computation. Once PcRequest received, the Path Computation Server
80 launches the path computation algorithm with requested parameters and in turn
81 sends back to the PCC a PcResponse message with the computed path in the ERO.
82 A NO-PATH object is returned in case of failure with the reason (e.g. source
83 or destination unknown, constraints not met ...). Check on the router that
84 the tunnel is up and running. Wireshark capture will help to determine
85 if the exchanges between the PCC and the PCE went well. Setting log debug for
86 algo and pcep plugins and looking to the log will also ease debugging.
88 With PcInitiate message, just use the PCEP Rest API to setup an LSP
90 .. code-block:: console
92 POST: /restconf/operations/network-topology-pcep:add-lsp
94 by omitting the ERO Object. Indeed, an automatic call to the Path Computation
95 Algorithm will be triggered when the ERO is absent or empty with the given
96 end-points and metrics objects as input paramters. Address family is
97 automatically deduced from the IP address family of the end-points object.
98 The same behaviour applies for Segment Routing: just add the *PST=1* indication
99 in the json or xml payload will force the address family of path computation
102 To verify the result, just check the LSP-Database. The new LSP must have an
103 ERO automatically computed as well as an RRO. Again, setting log debug for algo
104 and pcep plugins and looking to the log will also help to verify that all is
110 As the Path Computation Server is in its initial release, there are some
111 limitations mentioned hereinafter:
113 * Following PCEP Objects that may be present in the PcRequest message are not
114 yet supported, and right now, ignored:
116 * Include Route Object (IRO)
117 * Exclude Route Object (XRO)
118 * Objective Function (OF)
120 * LSP-Update Rest API with an empty ERO will not trigger Path Computation
121 Algorithm. Use Path Computation Algorithm Rest API to get a new path, and
122 then use the LSP-Update Rest API as usual with the computed ERO.
124 * For Segment Routing, ERO is provided with Node SID for NAI and SID index.
126 * Due to the integration with BGP-LS, the graph name must start with *ted://*
127 tag in order to be automatically used by the pcep plugin.
129 * For Segment Routing, as network resources are not updated due to the lack
130 of signaling, the resources consumed by the new segment path are not updated
133 All these limitations will be solved in future releases.