BUG-139: PCEP TLVs extensions implementation
[bgpcep.git] / pcep / ietf-stateful07 / src / main / yang / odl-pcep-sync-optimizations.yang
1 module odl-pcep-sync-optimizations {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:controller:pcep:sync:optimizations";
4     prefix "sync-optimizations";
5
6     import pcep-types { prefix pcep; revision-date 2013-10-05; }
7     import pcep-message { prefix msg; revision-date 2013-10-07; }
8     import network-topology { prefix nt; revision-date 2013-10-21; }
9     import network-topology-pcep { prefix topo; revision-date 2013-10-24; }
10     import odl-pcep-ietf-stateful07 { prefix stateful; revision-date 2013-12-22; }
11
12     organization "Pantheon Technologies";
13     contact "Iveta Halanova <iveta.halanova@pantheon.sk>";
14
15     description
16         "This module contains the data model of PCEP extensions defined
17         in draft-ietf-pce-stateful-sync-optimizations-02.
18
19         Copyright (c)2015 Cisco Systems, Inc. All rights reserved.
20
21         This program and the accompanying materials are made available
22         under the terms of the Eclipse Public License v1.0 which
23         accompanies this distribution, and is available at
24         http://www.eclipse.org/legal/epl-v10.html";
25
26     revision "2015-07-14" {
27         description
28             "Initial revision.";
29         reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-sync-optimizations-02";
30     }
31
32     grouping sync-optimizations-capability-tlv {
33         reference "http://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-00#section-4.1";
34         leaf triggered-initial-sync {
35             type boolean;
36             default false;
37         }
38         leaf delta-lsp-sync-capability {
39             type boolean;
40             default false;
41         }
42         leaf triggered-resync {
43             type boolean;
44             default false;
45         }
46         leaf include-db-version {
47             type boolean;
48             default false;
49         }
50     }
51
52     grouping lsp-db-version-tlv {
53         container lsp-db-version {
54             uses pcep:tlv;
55             leaf lsp-db-version-value {
56                 type uint64;
57             }
58         }
59     }
60
61     grouping speaker-entity-id-tlv {
62         container speaker-entity-id {
63             uses pcep:tlv;
64             leaf speaker-entity-id-value {
65                 type binary;
66             }
67         }
68     }
69
70     augment "/msg:open/msg:open-message/msg:open/msg:tlvs/stateful:stateful" {
71         uses sync-optimizations-capability-tlv;
72     }
73
74     augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:stateful-tlv/stateful:stateful" {
75         uses sync-optimizations-capability-tlv;
76     }
77
78     augment "/msg:open/msg:open-message/msg:open/msg:tlvs" {
79         uses lsp-db-version-tlv;
80         uses speaker-entity-id-tlv;
81     }
82
83     augment "/stateful:pcupd/stateful:pcupd-message/stateful:updates/stateful:lsp/stateful:tlvs" {
84         uses lsp-db-version-tlv;
85     }
86
87     augment "/stateful:pcrpt/stateful:pcrpt-message/stateful:reports/stateful:lsp/stateful:tlvs" {
88         uses lsp-db-version-tlv;
89     }
90
91     augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:reported-lsp/topo:path/stateful:lsp/stateful:tlvs" {
92         uses lsp-db-version-tlv;
93     }
94
95     augment "/topo:add-lsp/topo:input/topo:arguments/stateful:lsp/stateful:tlvs" {
96         uses lsp-db-version-tlv;
97     }
98
99     augment "/topo:update-lsp/topo:input/topo:arguments/stateful:lsp/stateful:tlvs" {
100         uses lsp-db-version-tlv;
101     }
102
103     augment "/msg:pcerr/msg:pcerr-message/msg:error-type/msg:session-case/msg:session/msg:open/msg:tlvs" {
104         uses lsp-db-version-tlv;
105         uses speaker-entity-id-tlv;
106     }
107 }