module odl-pcep-ietf-stateful02 { yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:pcep:crabbe:stateful:02"; prefix "stateful02"; import ietf-inet-types { prefix inet; revision-date 2010-09-24; } import pcep-types { prefix pcep; revision-date 2013-10-05; } import pcep-message { prefix msg; revision-date 2013-10-07; } import rsvp { prefix rsvp; revision-date 2013-08-20; } import network-topology { prefix nt; revision-date 2013-10-21; } import network-topology-pcep { prefix topo; revision-date 2013-10-24; } import topology-tunnel { prefix tt; revision-date 2013-08-19; } import topology-tunnel-pcep { prefix tun; revision-date 2013-08-20; } import topology-tunnel-pcep-programming { prefix ttpp; revision-date 2013-10-30; } organization "Cisco Systems, Inc."; contact "Dana Kutenicsova "; description "This module contains the data model of PCEP extensions defined in draft-ietf-pce-stateful-pce. Copyright (c)2014 Cisco Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html"; revision "2014-01-10" { description "Initial revision."; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02"; } typedef plsp-id { type uint32 { range 0..1048576; } } typedef symbolic-path-name { type binary { length 1..65535; } } typedef node-identifier { type binary { length 1..65535; } } grouping lsp-db-version-tlv { description "LSP State Database Version TLV"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.2.3"; container lsp-db-version { uses pcep:tlv; leaf version { type uint64; mandatory true; } } } grouping node-identifier-tlv { description "Node Identifier TLV"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.1.3"; container node-identifier { uses pcep:tlv; leaf node-id { type node-identifier; mandatory true; } } } grouping rsvp-error-spec-tlv { description "RSVP Error Spec TLV"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.2.2"; container rsvp-error-spec { uses pcep:tlv; container rsvp-error { uses rsvp:error-spec; } } } grouping stateful-capability-tlv { description "Stateful PCE Capability TLV"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.1.1"; container stateful { uses pcep:tlv; leaf lsp-update-capability { type boolean; default false; } leaf include-db-version { type boolean; default false; } } } grouping symbolic-path-name-tlv { description "Symbolic Path Name TLV"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.2.1"; container symbolic-path-name { uses pcep:tlv; leaf path-name { type symbolic-path-name; mandatory true; } } } grouping lsp-object { description "LSP Object"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.2"; container lsp { uses pcep:object; container "tlvs" { uses lsp-db-version-tlv; uses rsvp-error-spec-tlv; uses symbolic-path-name-tlv; uses pcep:vendor-information-tlvs; } leaf plsp-id { type plsp-id; mandatory true; } leaf delegate { type boolean; default false; } leaf sync { type boolean; default false; } leaf remove { type boolean; default false; } leaf operational { type boolean; default false; } } } grouping pcupd-message { uses pcep:message; container pcupd-message { description "State Update Request Message"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-6.2"; uses pcep:message-header; list updates { uses lsp-object; container path { uses pcep:path-definition; } } } } grouping pcrpt-message { uses pcep:message; container pcrpt-message { description "State Report Message"; reference "http://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-6.1"; uses pcep:message-header; list reports { uses lsp-object; container path { uses pcep:path-definition; } } } } notification pcupd { uses pcupd-message; } notification pcrpt { uses pcrpt-message; } augment "/msg:open/msg:open-message/msg:open/msg:tlvs" { uses stateful-capability-tlv; uses node-identifier-tlv; } augment "/msg:pcerr/msg:pcerr-message/msg:error-type/msg:session-case/msg:session/msg:open/msg:tlvs" { uses stateful-capability-tlv; uses node-identifier-tlv; } augment "/msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2p" { uses lsp-object; } augment "/msg:pcrep/msg:pcrep-message/msg:replies" { uses lsp-object; } augment "/msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2p/msg:lspa/msg:tlvs" { uses symbolic-path-name-tlv; } augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:reported-lsp" { uses lsp-object; } augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:stateful-tlv" { uses stateful-capability-tlv; } augment "/topo:ensure-lsp-operational/topo:input/topo:arguments" { leaf operational { type boolean; } } augment "/topo:update-lsp/topo:input/topo:arguments" { leaf operational { type boolean; } } typedef administrative-status { type enumeration { enum active; enum inactive; } reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-02#section-7.2"; } grouping cfg-attributes { leaf administrative-status { type administrative-status; } } grouping oper-attributes { leaf operational-status { type boolean; config false; } } augment "/nt:network-topology/nt:topology/nt:link" { when "../../tunnel-types/pcep-tunnel"; uses cfg-attributes; uses oper-attributes; } augment "/nt:network-topology/nt:topology/tt:paths" { when "../../tunnel-types/pcep-tunnel"; uses cfg-attributes; uses oper-attributes; } augment "/ttpp:pcep-create-p2p-tunnel/ttpp:input" { uses cfg-attributes; } augment "/ttpp:pcep-update-tunnel/ttpp:input" { uses cfg-attributes; } }