Interface OdlPcepIetfStatefulData

  • All Superinterfaces:
    org.opendaylight.yangtools.yang.binding.DataRoot

    @Generated("mdsal-binding-generator")
    public interface OdlPcepIetfStatefulData
    extends org.opendaylight.yangtools.yang.binding.DataRoot
    This module contains the data model of PCEP extensions defined in RFC 8231: 'Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE'. Copyright (c)2013 Cisco Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html

    This class represents the following YANG schema fragment defined in module odl-pcep-ietf-stateful

     module odl-pcep-ietf-stateful {
       yang-version 1;
       namespace urn:opendaylight:params:xml:ns:yang:pcep:ietf:stateful;
       prefix stateful;
       import ietf-inet-types {
         prefix inet;
         revision-date 2013-07-15;
       }
       import network-topology {
         prefix nt;
         revision-date 2013-10-21;
       }
       import network-topology-pcep {
         prefix topo;
         revision-date 2020-01-20;
       }
       import pcep-types {
         prefix pcep;
         revision-date 2018-11-09;
       }
       import pcep-message {
         prefix msg;
         revision-date 2018-11-09;
       }
       import rsvp {
         prefix rsvp;
         revision-date 2015-08-20;
       }
       import topology-tunnel {
         prefix tt;
         revision-date 2013-08-19;
       }
       import topology-tunnel-pcep {
         prefix tun;
         revision-date 2018-11-09;
       }
       import topology-tunnel-pcep-programming {
         prefix ttpp;
         revision-date 2018-11-09;
       }
       import yang-ext {
         prefix ext;
         revision-date 2013-07-09;
       }
       import network-concepts {
         prefix netc;
         revision-date 2013-11-25;
       }
       revision 2020-07-20 {
       }
       revision 2018-11-09 {
       }
       revision 2017-10-25 {
       }
       revision 2013-12-22 {
       }
       typedef operational-status {
         type enumeration {
           enum down {
             value 0;
           }
           enum up {
             value 1;
           }
           enum active {
             value 2;
           }
           enum going-down {
             value 3;
           }
           enum going-up {
             value 4;
           }
         }
       }
       typedef plsp-id {
         type uint32 {
           range 0..1048576;
         }
       }
       typedef srp-id-number {
         type uint32 {
           range 0..4294967294;
         }
       }
       typedef symbolic-path-name {
         type binary {
           length 1..65535;
         }
       }
       grouping path-binding-tlv {
         container path-binding {
           uses pcep:tlv;
           choice binding-type-value {
             case mpls-label {
               leaf mpls-label {
                 type netc:mpls-label;
               }
             }
             case mpls-label-entry {
               leaf label {
                 type netc:mpls-label;
               }
               leaf traffic-class {
                 type uint8 {
                   range 0..7;
                 }
               }
               leaf bottom-of-stack {
                 type boolean;
               }
               leaf time-to-live {
                 type uint8;
               }
             }
             case srv6 {
               leaf srv6-address {
                 type inet:ipv6-address-no-zone;
               }
             }
           }
         }
       }
       grouping lsp-identifiers-tlv {
         container lsp-identifiers {
           uses pcep:tlv;
           leaf lsp-id {
             type rsvp:lsp-id;
           }
           leaf tunnel-id {
             type rsvp:tunnel-id;
           }
           choice address-family {
             case ipv4-case {
               container ipv4 {
                 leaf ipv4-tunnel-sender-address {
                   type inet:ipv4-address-no-zone;
                 }
                 leaf ipv4-extended-tunnel-id {
                   type rsvp:ipv4-extended-tunnel-id;
                 }
                 leaf ipv4-tunnel-endpoint-address {
                   type inet:ipv4-address-no-zone;
                 }
               }
             }
             case ipv6-case {
               container ipv6 {
                 leaf ipv6-tunnel-sender-address {
                   type inet:ipv6-address-no-zone;
                 }
                 leaf ipv6-extended-tunnel-id {
                   type rsvp:ipv6-extended-tunnel-id;
                 }
                 leaf ipv6-tunnel-endpoint-address {
                   type inet:ipv6-address-no-zone;
                 }
               }
             }
           }
         }
       }
       grouping lsp-error-code-tlv {
         container lsp-error-code {
           uses pcep:tlv;
           leaf error-code {
             type uint32;
           }
         }
       }
       grouping rsvp-error-spec-tlv {
         container rsvp-error-spec {
           uses pcep:tlv;
           choice error-type {
             case rsvp-case {
               container rsvp-error {
                 uses rsvp:error-spec;
               }
             }
             case user-case {
               container user-error {
                 uses rsvp:user-error-spec;
               }
             }
           }
         }
       }
       grouping stateful-capability-tlv {
         container stateful {
           uses pcep:tlv;
           leaf lsp-update-capability {
             type boolean;
             default false;
           }
         }
       }
       grouping symbolic-path-name-tlv {
         container symbolic-path-name {
           uses pcep:tlv;
           leaf path-name {
             type symbolic-path-name;
           }
         }
       }
       grouping lsp-object {
         container lsp {
           uses pcep:object;
           container tlvs {
             uses lsp-error-code-tlv;
             uses lsp-identifiers-tlv;
             uses rsvp-error-spec-tlv;
             uses symbolic-path-name-tlv;
             uses pcep:vs-tlv;
             uses pcep:vendor-information-tlvs;
             uses path-binding-tlv;
           }
           leaf plsp-id {
             type plsp-id;
           }
           leaf delegate {
             type boolean;
             default false;
           }
           leaf sync {
             type boolean;
             default false;
           }
           leaf remove {
             type boolean;
             default false;
           }
           leaf administrative {
             type boolean;
             default false;
           }
           leaf operational {
             type operational-status;
           }
         }
       }
       grouping srp-object {
         container srp {
           uses pcep:object;
           container tlvs {
             uses symbolic-path-name-tlv;
             uses pcep:vendor-information-tlvs;
             uses pcep:path-setup-type-tlv;
           }
           leaf operation-id {
             type srp-id-number;
           }
         }
       }
       grouping pcupd-message {
         uses pcep:message;
         container pcupd-message {
           uses pcep:message-header;
           list updates {
             uses srp-object;
             uses lsp-object;
             container path {
               uses pcep:path-definition;
             }
           }
         }
       }
       grouping pcrpt-message {
         uses pcep:message;
         container pcrpt-message {
           uses pcep:message-header;
           list reports {
             uses srp-object;
             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;
         ext:augment-identifier tlvs-1;
       }
       augment /msg:pcrep/msg:pcrep-message/msg:replies {
         uses lsp-object;
         ext:augment-identifier tlvs-4;
       }
       augment /msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2p {
         uses lsp-object;
       }
       augment /msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2mp {
         uses lsp-object;
       }
       augment /msg:pcerr/msg:pcerr-message/msg:error-type {
         case stateful-case {
           container stateful {
             list srps {
               uses srp-object;
             }
           }
         }
       }
       augment /msg:pcerr/msg:pcerr-message/msg:error-type/msg:session-case/msg:session/msg:open/msg:tlvs {
         uses stateful-capability-tlv;
         ext:augment-identifier tlvs-3;
       }
       augment /nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:reported-lsp/topo:path {
         uses lsp-object;
         uses pcep:path-setup-type-tlv;
       }
       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 {
         ext:augment-identifier arguments-1;
         leaf operational {
           type operational-status;
         }
       }
       augment /topo:add-lsp/topo:input/topo:arguments {
         ext:augment-identifier arguments-2;
         uses lsp-object;
         uses pcep:path-setup-type-tlv;
       }
       augment /topo:update-lsp/topo:input/topo:arguments {
         ext:augment-identifier arguments-3;
         uses lsp-object;
         uses pcep:path-setup-type-tlv;
       }
       typedef administrative-status {
         type enumeration {
           enum active;
           enum inactive;
         }
       }
       grouping cfg-attributes {
         leaf administrative-status {
           type administrative-status;
         }
       }
       grouping oper-attributes {
         leaf operational-status {
           type operational-status;
           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;
       }
     }