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-provider pcep-topology 192.168.122.55 4189 ... - **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.43 update-tunel true true 43.43.43.43 39.39.39.39 false 201.20.160.40/32 false 195.20.160.39/32 false 39.39.39.39/32 /topo:network-topology/topo:topology[topo:topology-id="pcep-topology"] **PCE Segment Routing:** .. code:: xml pcc://43.43.43.43 update-tunnel true true 43.43.43.43 39.39.39.39 1 false ipv4-node-id true 12 39.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.43 update-tunel true true false 200.20.160.41/32 false 196.20.160.39/32 false 39.39.39.39/32 /topo:network-topology/topo:topology[topo:topology-id="pcep-topology"] **PCE Segment Routing:** .. code:: xml pcc://43.43.43.43 update-tunnel true true 1 false ipv4-node-id true 11 200.20.160.41 false ipv4-node-id true 12 39.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.43 update-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.43 re-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.