Remove unused imports
[bgpcep.git] / bgp / extensions / labeled-unicast / src / main / yang / bgp-labeled-unicast.yang
1 module bgp-labeled-unicast {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:bgp-labeled-unicast";
4     prefix "bgp-lu";
5
6     import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
7     import bgp-message { prefix bgp-msg; revision-date 2018-03-29; }
8     import bgp-multiprotocol { prefix bgp-mp; revision-date 2018-03-29; }
9     import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; }
10     import bgp-types { prefix bgp-t; revision-date 2018-03-29; }
11     import bmp-monitor { prefix bmp-mon; revision-date 2018-03-29; }
12     import network-concepts { prefix netc; revision-date 2013-11-25; }
13
14     organization "Cisco Systems, Inc.";
15     contact "GE QU <gequ@cisco.com>"
16     + " Mingming Chen <mingmche@cisco.com>";
17
18     description
19         "This module contains the base data model of a BGP message.
20         It rolls up the definitions contained in RFC3107.
21
22         Copyright (c)2015 Cisco Systems, Inc. All rights reserved.
23
24         This program and the accompanying materials are made available
25         under the terms of the Eclipse Public License v1.0 which
26         accompanies this distribution, and is available at
27         http://www.eclipse.org/legal/epl-v10.html";
28
29     revision "2018-03-29" {
30         description "Add support for add-path for all afi/safi.";
31     }
32
33     revision "2017-12-07" {
34         description "Add support for add-path in base BGP NLRI.";
35     }
36
37     revision "2015-05-25" {
38         description
39             "Initial Version.";
40     }
41
42     identity labeled-unicast-subsequent-address-family {
43         reference "https://tools.ietf.org/html/rfc3107#section-3";
44         base bgp-t:subsequent-address-family;
45     }
46
47     typedef srgb {
48         type uint32 {
49             range "0..16777215";
50         }
51     }
52
53     grouping label {
54         reference "https://tools.ietf.org/html/rfc3032#section-2.1";
55         description
56             "The lable stack entry.";
57         leaf label-value {
58             type netc:mpls-label;
59         }
60     }
61
62     grouping labeled-unicast {
63         reference "https://tools.ietf.org/html/rfc3107#section-3";
64         list label-stack {
65             description
66                 "The Label field carries one or more labels (that corresponds to
67                  the stack of labels). Each label is encoded as 3
68                  octets, where the high-order 20 bits contain the label value,
69                  and the low order bit contains 'Bottom of Stack'.";
70             uses label;
71             ordered-by user;
72         }
73         leaf prefix {
74             type inet:ip-prefix;
75         }
76     }
77
78     grouping labeled-unicast-destination {
79         list c-labeled-unicast-destination {
80             uses labeled-unicast;
81             uses bgp-msg:path-id-grouping;
82         }
83     }
84
85     grouping labeled-unicast-routes-list {
86         list labeled-unicast-route {
87             key "route-key path-id";
88             uses labeled-unicast;
89             uses bgp-rib:route {
90                 augment "attributes/bgp-prefix-sid/bgp-prefix-sid-tlvs/bgp-prefix-sid-tlv" {
91                     case lu-label-index-tlv {
92                         uses label-index-tlv;
93                     }
94                     case lu-originator-srgb-tlv {
95                         uses originator-srgb-tlv;
96                     }
97                 }
98             }
99         }
100     }
101
102     grouping labeled-unicast-routes {
103         container labeled-unicast-routes {
104             uses labeled-unicast-routes-list;
105         }
106     }
107
108     grouping labeled-unicast-ipv6-routes {
109         container labeled-unicast-ipv6-routes {
110             uses labeled-unicast-routes-list;
111         }
112     }
113
114     augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:destination-type" {
115         case destination-labeled-unicast-case {
116             container destination-labeled-unicast {
117                 uses labeled-unicast-destination;
118             }
119         }
120         case destination-ipv6-labeled-unicast-case {
121             container destination-ipv6-labeled-unicast {
122                 uses labeled-unicast-destination;
123             }
124         }
125     }
126
127     augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:destination-type" {
128         case destination-labeled-unicast-case {
129             container destination-labeled-unicast {
130                 uses labeled-unicast-destination;
131             }
132         }
133         case destination-ipv6-labeled-unicast-case {
134             container destination-ipv6-labeled-unicast {
135                 uses labeled-unicast-destination;
136             }
137         }
138     }
139
140     augment "/bgp-rib:application-rib/bgp-rib:tables/bgp-rib:routes" {
141         case labeled-unicast-routes-case {
142             uses labeled-unicast-routes;
143         }
144         case labeled-unicast-ipv6-routes-case {
145             uses labeled-unicast-ipv6-routes;
146         }
147     }
148
149     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" {
150         case labeled-unicast-routes-case {
151             uses labeled-unicast-routes;
152         }
153         case labeled-unicast-ipv6-routes-case {
154             uses labeled-unicast-ipv6-routes;
155         }
156     }
157
158     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-in/bgp-rib:tables/bgp-rib:routes" {
159         case labeled-unicast-routes-case {
160             uses labeled-unicast-routes;
161         }
162         case labeled-unicast-ipv6-routes-case {
163             uses labeled-unicast-ipv6-routes;
164         }
165     }
166
167     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:effective-rib-in/bgp-rib:tables/bgp-rib:routes" {
168         case labeled-unicast-routes-case {
169             uses labeled-unicast-routes;
170         }
171         case labeled-unicast-ipv6-routes-case {
172             uses labeled-unicast-ipv6-routes;
173         }
174     }
175
176     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-out/bgp-rib:tables/bgp-rib:routes" {
177         case labeled-unicast-routes-case {
178             uses labeled-unicast-routes;
179         }
180         case labeled-unicast-ipv6-routes-case {
181             uses labeled-unicast-ipv6-routes;
182         }
183     }
184
185     augment "/bmp-mon:bmp-monitor/bmp-mon:monitor/bmp-mon:router/bmp-mon:peer/bmp-mon:pre-policy-rib/bmp-mon:tables/bmp-mon:routes" {
186         case labeled-unicast-routes-case {
187             uses labeled-unicast-routes;
188         }
189         case labeled-unicast-ipv6-routes-case {
190             uses labeled-unicast-ipv6-routes;
191         }
192     }
193
194     augment "/bmp-mon:bmp-monitor/bmp-mon:monitor/bmp-mon:router/bmp-mon:peer/bmp-mon:post-policy-rib/bmp-mon:tables/bmp-mon:routes" {
195         case labeled-unicast-routes-case {
196             uses labeled-unicast-routes;
197         }
198         case labeled-unicast-ipv6-routes-case {
199             uses labeled-unicast-ipv6-routes;
200         }
201     }
202
203     grouping label-index-tlv {
204         reference "https://tools.ietf.org/html/draft-ietf-idr-bgp-prefix-sid-02#section-4.1";
205         leaf label-index-tlv {
206             description "Value representing the index value in the SRGB space.";
207             type uint32;
208             mandatory true;
209         }
210     }
211
212     grouping originator-srgb-tlv {
213         reference "https://tools.ietf.org/html/draft-ietf-idr-bgp-prefix-sid-02#section-4.3";
214         list srgb-value {
215             description "Originator SRGB: 3 octets of base followed by 3 octets of range.";
216             leaf base {
217                 type srgb;
218                 mandatory true;
219             }
220             leaf range {
221                 type srgb;
222                 mandatory true;
223             }
224         }
225     }
226
227     augment "/bgp-msg:update/bgp-msg:attributes/bgp-msg:bgp-prefix-sid/bgp-msg:bgp-prefix-sid-tlvs/bgp-msg:bgp-prefix-sid-tlv" {
228         reference "https://tools.ietf.org/html/draft-ietf-idr-bgp-prefix-sid-02";
229         case lu-label-index-tlv {
230             uses label-index-tlv;
231         }
232         case lu-originator-srgb-tlv {
233             uses originator-srgb-tlv;
234         }
235     }
236 }