This module defines configuration and operational state data relating to Path Computation Element Protocol (PCEP) for communicat...
Version: 2023-04-25
module openconfig-pcep { yang-version 1; namespace "http://openconfig.net/yang/pcep"; prefix oc-pcep; import openconfig-extensions { prefix oc-ext; } import openconfig-inet-types { prefix oc-inet; } import openconfig-types { prefix oc-types; } import openconfig-keychain { prefix oc-keychain; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines configuration and operational state data relating to Path Computation Element Protocol (PCEP) for communications between a network element (router) acting as PCC and a PCE server, according to RFC4655 definitions: -PCC: Path Computation Client; any client application requesting a path computation to be performed by a Path Computation Element. -PCE: Path Computation Element; an entity (component, application, or network node) that is capable of computing a network path or route based on a network graph and applying computational constraints. Also according to RFC4655, a PCE can be either stateful or stateless. In the former case, there is a strict synchronization between the PCE and not only the network states (in term of topology and resource information), but also the set of computed paths and reserved resources in use in the network. Conversely, stateless PCEs do not have to remember any computed path and each set of request(s) is processed independently of each other. For example, stateless PCEs may compute paths based on current TED information, which could be out of sync with actual network state given other recent PCE-computed paths changes. On the other hand, RFC8051 defines for Stateful PCE two modes of operation: -Passive Stateful PCE: a PCE that uses LSP state information learned from PCCs to optimize path computations. It does not actively update LSP state. A PCC maintains synchronization with the PCE. -Active Stateful PCE: a PCE that may issue recommendations to the network. For example, an Active Stateful PCE may use the Delegation mechanism to update. LSP parameters in those PCCs that delegate control over their LSPs to the PCE."; revision "2023-04-25" { description "Add clarifying comments on use of interface-ref."; reference "0.1.1"; } revision "2022-02-11" { description "Initial revision."; reference "0.1.0"; } oc-ext:openconfig-version "0.1.1"; oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; typedef pce-mode-type { type enumeration { enum "STATELESS" { value 0; description "PCEP peer announce Stateless capability"; } enum "STATEFUL_PASSIVE" { value 1; description "PCEP peer announce Stateful Passive capability"; } enum "STATEFUL_ACTIVE" { value 2; description "PCEP peer announce Stateless Active"; } } description "The type of PCEP capability supported which is advertised in the Open message when a PCEP session is established. It could be: - Stateless PCEs: A PCE that do not have to remember any computed path and each set of request(s) is processed independently of each other(RFC4655). - Passive Stateful PCE: a PCE that uses LSP state information learned from PCCs to optimize path computations, but it does not actively update LSP state(RFC8051). - Active Stateful PCE: a PCE that may issue recommendations to the network by using the Delegation mechanism to update LSP parameters in those PCCs that delegate control over their LSPs to the PCE (RFC8051)."; reference "RFC8051: Applicability of a Stateful Path Computation Element (PCE)"; } typedef lsp-control-type { type enumeration { enum "PCE_DELEGATED" { value 0; description "PCC (Router) delegates control over LSP path to PCE (stateful active)"; } enum "PCC_CONTROLLED" { value 1; description "PCC (Router) don't allow or revoke control over LSP path to PCE (stateless)"; } enum "PCC_REPORT_ONLY" { value 2; description "PCC (Router) only inform to a PCE whenever the state of an LSP changes, but without delegating control (stateful passive)"; } } description "The LSP path can be delegated to PCE, locally controled by PCC or only report information state to the PCE."; reference "RFC8231: Path Computation Element Communication Protocol (PCEP)"; } grouping pcep-servers-top { description "Configuration and state data for establishing a PCEP session with PCE servers."; container path-computation-servers { description "Defines PCE server parameters."; list path-computation-server { key "pce-server-address"; description "Configuration and state information for communication with a PCE server."; leaf pce-server-address { type leafref { path "../config/pce-server-address"; } description "IPv4 address of PCE server."; } container config { description "PCE server configuration."; uses pce-server-config; } // container config container state { config false; description "PCE server state."; uses pce-server-config; } // container state uses pcep-timers-top; uses pcep-authentication-top; } // list path-computation-server } // container path-computation-servers } // grouping pcep-servers-top grouping pce-server-config { description "Configuration data for establishing a PCEP session with pce servers."; leaf pce-server-address { type oc-inet:ip-address; description "The destination IP address of the PCE server for PCEP service. Specify multiple entries in the path-computation-server-list to provide redundancy. When multiple candidate servers are specified for a single client, they are prioritized according to preference."; } leaf id { type string; description "A unique name for the PCE server."; } leaf port { type oc-inet:port-number; default "4189"; description "The destination TCP port used for PCEP service in the PCE server."; } leaf source-address { type oc-inet:ip-address; description "The source IP address used by PCC(Router) to establish PCEP session."; } leaf pce-type { type pce-mode-type; description "The type of PCEP capability supported which is advertised in the Open message when a PCEP session is established."; } leaf preference { type uint8; description "When multiple PCE servers are specified, the candidate PCE server with the highest preference is selected to calculate paths. The greater or lower the value, the higher the preference could dependon vendor implementation. If no preference value is set, indicate the lowest preference or no preference at all."; } leaf report-local-lsp { type boolean; default "false"; description "Specifies whether the PCC (Router) will advertise LSP existence and state for LSPs that are not controlled by any PCE (for example, LSPs that are statically configured at the PCC) but without delegating them."; } leaf pce-initiated-capability { type boolean; default "false"; description "Indicates to PCE that PCC (Router) supports PCE-initiated LSP paths instantiation. A PCE can initiate LSPs only for PCCs that advertised this capability."; } leaf sr-support { type boolean; default "false"; description "Indicates to PCE that PCC (Router) supports Segment-Routing to set up LSP paths in addition to RSVP-TE."; } } // grouping pce-server-config grouping pcep-timers-top { description "Configuration and state data for timers applicable to a established PCEP session with PCE server."; container timers { description "This container defines PCEP timers."; container config { description "This container defines PCEP timers configuration."; uses pcep-timers-config; } // container config container state { config false; description "This container defines state information for PCEP timers."; uses pcep-timers-config; } // container state } // container timers } // grouping pcep-timers-top grouping pcep-timers-config { description "Defines timers that applies to a PCEP session."; leaf keepalive { type uint8; units "seconds"; default "30"; description "Interval for sending keepalive messages over PCE session."; } leaf dead-timer { type uint8; units "seconds"; default "120"; description "Interval after which PCE session is declared dead."; } leaf redelegation-timeout-interval { type uint16; units "seconds"; description "When a PCEP session is terminated, the period of time a PCC waits before revoking LSP delegation and attempting to redelegate LSPs associated with the terminated PCEP session to an alternate PCE."; } leaf state-timeout-interval { type uint16; units "seconds"; description "When a PCEP session is terminated, the period of time a PCC waits before before flushing LSP state associated with that PCEP session and reverting to operator-defined default parameters or behaviors."; } } // grouping pcep-timers-config grouping pcep-authentication-top { description "Grouping containing PCEP authentication attributes"; container authentication { description "Global PCEP authentication"; container config { description "Configuration of PCEP authentication attributes"; uses pcep-authentication-config; } // container config container state { config false; description "PCEP authentication state."; uses pcep-authentication-config; } // container state } // container authentication } // grouping pcep-authentication-top grouping pcep-authentication-config { description "PCEP authentication parameters container."; leaf enable { type boolean; default "false"; description "Enables PCEP authentication on the node."; } leaf authentication-key { type oc-types:routing-password; description "Password (key) used for securing a PCEP session using TCP-MD5 authentication"; reference "RFC1321: The MD5 Message-Digest Algorithm. RFC5440: PCEP Specification"; } leaf keychain { type oc-keychain:keychain-ref; description "Reference to a predefined keychain that should be used to secure PCEP session"; } } // grouping pcep-authentication-config grouping pcep-top { description "Top-level grouping for PCEP configuration."; container pcep { description "Top-level PCEP configuration and operational state."; uses pcep-servers-top; } // container pcep } // grouping pcep-top } // module openconfig-pcep
© 2023 YumaWorks, Inc. All rights reserved.