PCEP User Guide
===============
Overview
--------
The OpenDaylight Karaf distribution comes preconfigured with baseline
PCEP configuration.
- **32-pcep.xml** (basic PCEP configuration, including session
parameters)
- **39-pcep-provider.xml** (configuring for PCEP provider)
Configuring PCEP
----------------
The default shipped configuration will start a PCE server on
0.0.0.0:4189. You can change this behavior in **39-pcep-provider.xml**:
.. code:: xml
prefix:pcep-topology-providerpcep-topology192.168.122.554189
...
- **listen-address** - adress on which PCE will be started and listen
- **listen-port** - port on which the address will be started and
listen
PCEP default configuration is set to conform stateful PCEP extensions:
- `draft-ietf-pce-stateful-pce-07 `__
- PCEP Extensions for Stateful PCE
- `draft-ietf-pce-pce-initiated-lsp-00 `__
- PCEP Extensions for PCE-initiated LSP Setup in a Stateful PCE Model
- `draft-ietf-pce-stateful-sync-optimizations-03 `__
- Optimizations of Label Switched Path State Synchronization
Procedures for a Stateful PCE
PCEP Segment Routing
~~~~~~~~~~~~~~~~~~~~
Conforms
`draft-ietf-pce-segment-routing `__
- PCEP extension for Segment Routing
The default configuration file is located in etc/opendaylight/karaf.
- **33-pcep-segment-routing.xml** - You don’t need to edit this file.
Tunnel Management
-----------------
Programming tunnels through PCEP is one of the key features of PCEP
implementation in OpenDaylight. User can create, update and delete
tunnel via RESTCONF calls. Tunnel (LSP - Label Switched Path) arguments
are passed through RESTCONF and generate a PCEP message that is sent to
PCC (which is also specified via RESTCONF call). PCC sends a response
back to OpenDaylight. The response is then interpreted and sent to
RESTCONF, where, in case of success, the new LSP is displayed.
The PCE Segment Routing Extends draft-ietf-pce-stateful-pce-07 and
draft-ietf-pce-pce-initiated-lsp-00, brings new Segment Routing Explicit
Route Object (SR-ERO) subobject composed of SID (Segment Identifier)
and/or NAI (Node or Adjacency Identifier). Segment Routing path is
carried in the ERO object, as a list of SR-ERO subobjects ordered by
user. The draft redefines format of messages (PCUpd, PCRpt, PCInitiate)
- along with common header, they can hold SPR, LSP and SR-ERO
(containing only SR-ERO subobjects) objects.
Creating LSP
~~~~~~~~~~~~
An LSP in PCEP can be created in one or two steps. Making an add-lsp
operation will trigger a PcInitiate message to PCC.
**URL:**
http://localhost:8181/restconf/operations/network-topology-pcep:add-lsp
**Method:** POST
**Content-Type:** application/xml
**Body:**
**PCE Active Stateful:**
.. code:: xml
pcc://43.43.43.43update-tuneltruetrue43.43.43.4339.39.39.39false201.20.160.40/32false195.20.160.39/32false39.39.39.39/32/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
**PCE Segment Routing:**
.. code:: xml
pcc://43.43.43.43update-tunneltruetrue43.43.43.4339.39.39.391falseipv4-node-idtrue1239.39.39.39/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
Updating LSP
~~~~~~~~~~~~
Making an update-lsp operation will trigger a PCUpd message to PCC.
Updating can be used to change or add additional information to the LSP.
You can only successfully update an LSP if you own the delegation. You
automatically own the delegation, if you’ve created the LSP. You don’t
own it, if another PCE created this LSP. In this case PCC is only
reporting this LSP for you, as read-only (you’ll see
``false``). However OpenDaylight won’t restrict you
from trying to modify the LSP, but you will be stopped by receiving a
PCErr message from PCC.
To revoke delegation, don’t forget to set ```` to true.
**URL:**
http://localhost:8181/restconf/operations/network-topology-pcep:update-lsp
**Method:** POST
**Content-Type:** application/xml
**Body:**
**PCE Active Stateful:**
.. code:: xml
pcc://43.43.43.43update-tuneltruetruefalse200.20.160.41/32false196.20.160.39/32false39.39.39.39/32/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
**PCE Segment Routing:**
.. code:: xml
pcc://43.43.43.43update-tunneltruetrue1falseipv4-node-idtrue11200.20.160.41falseipv4-node-idtrue1239.39.39.39/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
Removing LSP
~~~~~~~~~~~~
Removing LSP from PCC is done via following RESTCONF URL. Making a
remove-lsp operation will trigger a PCInitiate message to PCC, with
remove-flag in SRP set to true.
You can only successfully remove an LSP if you own the delegation. You
automatically own the delegation, if you’ve created the LSP. You don’t
own it, if another PCE created this LSP. In this case PCC is only
reporting this LSP for you, as read-only (you’ll see
``false``). However OpenDaylight won’t restrict you
from trying to remove the LSP, but you will be stopped by receiving a
PCErr message from PCC.
To revoke delegation, don’t forget to set ```` to true.
**URL:**
http://localhost:8181/restconf/operations/network-topology-pcep:remove-lsp
**Method:** POST
**Content-Type:** application/xml
**Body:**
.. code:: xml
pcc://43.43.43.43update-tunel/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
PCE-triggered Initial Synchronization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Making an trigger-sync operation will trigger a PCUpd message to PCC
with PLSP-ID = 0 and SYNC = 1 in order to trigger the LSP-DB
synchronization process.
**URL:**
http://localhost:8181/restconf/operations/network-topology-pcep:trigger-sync
**Method:** POST
**Content-Type:** application/xml
**Body:**
.. code:: xml
pcc://43.43.43.43/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
PCE-triggered Re-synchronization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Making an trigger-resync operation will trigger a PCUpd message to PCC.
The PCE can choose to re-synchronize its entire LSP database or a single
LSP.
**URL:**
http://localhost:8181/restconf/operations/network-topology-pcep:trigger-sync
**Method:** POST
**Content-Type:** application/xml
**Body:**
.. code:: xml
pcc://43.43.43.43re-sync-lsp/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]
PCE-triggered LSP database Re-synchronization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PCE-triggered LSP database Re-synchronization works same as in
PCE-triggered Initial Synchronization.