ab4df24f8f73d43708de342ac5d1bcc708afba1b
[bgpcep.git] / bgp / openconfig-api / src / main / yang / bgp-openconfig-extensions.yang
1 module bgp-openconfig-extensions {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions";
4     prefix "odl-oc-ext";
5
6     import openconfig-bgp-types { prefix bgp-types; }
7     import openconfig-network-instance { prefix netinst; }
8     import openconfig-bgp { prefix openconfig-bgp; }
9     import ietf-inet-types { prefix inet; }
10     import yang-ext { prefix ext; revision-date 2013-07-09; }
11     import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; }
12     import openconfig-bgp-operational { prefix bgp-op; }
13
14     organization "Cisco Systems, Inc.";
15     contact "Milos Fabian <milfabia@cisco.com>";
16
17     description
18         "This module contains the custom extensions to the
19         draft-ietf-idr-bgp-model-00 Yang data models.
20
21         Copyright (c)2015 Cisco Systems, Inc. All rights reserved.
22
23         This program and the accompanying materials are made available
24         under the terms of the Eclipse Public License v1.0 which
25         accompanies this distribution, and is available at
26         http://www.eclipse.org/legal/epl-v10.html";
27
28     revision "2018-03-29" {
29         description "Add support for add-path for all afi/safi.";
30     }
31
32     revision 2018-03-21 {
33         description "Augment Peer group with transport config.";
34     }
35
36     revision 2017-12-07 {
37         description "Add support for add-path in base BGP NLRI.";
38     }
39
40     revision 2016-06-14 {
41         description
42             "Update to follow naming conventions.";
43     }
44
45     revision 2015-09-30 {
46         description "Initial revision";
47     }
48
49     identity IPV4-FLOW {
50         base bgp-types:afi-safi-type;
51         description
52           "IPv4 Flow specification (AFI,SAFI = 1,133)";
53         reference "https://tools.ietf.org/html/rfc5575";
54     }
55
56     identity IPV6-FLOW {
57         base bgp-types:afi-safi-type;
58         description
59           "IPv6 Flow specification (AFI,SAFI = 2,133)";
60         reference "https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-06";
61     }
62
63     identity IPV6-L3VPN-FLOW {
64         base bgp-types:afi-safi-type;
65         description
66           "IPv6 Flow specification (AFI,SAFI = 2,133)";
67         reference "https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-06";
68     }
69
70     identity IPV4-L3VPN-FLOW {
71         base bgp-types:afi-safi-type;
72         description
73           "IPv6 Flow specification (AFI,SAFI = 2,133)";
74         reference "https://tools.ietf.org/html/rfc5575";
75     }
76
77     identity LINKSTATE {
78         base bgp-types:afi-safi-type;
79         description
80           "Link-State (AFI,SAFI = 16388,71)";
81         reference "https://tools.ietf.org/html/rfc7752";
82     }
83
84     grouping transport-config {
85         leaf remote-port {
86             type inet:port-number;
87             default 179;
88             description
89                 "Remote port being used by the peer for the TCP session
90                  supporting the BGP session";
91         }
92     }
93
94     grouping route-reflector-cluster-id-config {
95         leaf route-reflector-cluster-id {
96             type bgp-types:rr-cluster-id-type;
97             description
98               "Route-reflector cluster id to use when local router is
99               configured as a route reflector.";
100         }
101     }
102
103     augment /netinst:network-instances/netinst:network-instance/netinst:protocols/netinst:protocol {
104         ext:augment-identifier network-instance-protocol;
105         uses openconfig-bgp:bgp-top {
106             augment bgp/neighbors/neighbor/afi-safis/afi-safi {
107                 ext:augment-identifier neighbor-add-paths-config;
108                 uses openconfig-bgp:bgp-neighbor-add-paths_config;
109             }
110             augment bgp/global/afi-safis/afi-safi {
111                 ext:augment-identifier global-add-paths-config;
112                 uses openconfig-bgp:bgp-neighbor-add-paths_config;
113             }
114             augment bgp/global/afi-safis/afi-safi/state {
115                 ext:augment-identifier global-afi-safi_state-augmentation;
116                 uses bgp-op:bgp-global-afi-safi_state;
117             }
118             augment bgp/neighbors/neighbor/transport/config {
119                 ext:augment-identifier neighbor-transport-config;
120                 uses transport-config;
121             }
122             augment bgp/neighbors/neighbor/config {
123                 ext:augment-identifier neighbor-peer-group-config;
124                 description
125                     "Augmentation to allow association of a neighbor with a
126                      peer-group";
127                 uses openconfig-bgp:bgp-neighbor-peer-group_config;
128             }
129             augment bgp/neighbors/neighbor/config {
130                 ext:augment-identifier neighbor-cluster-id-config;
131                 uses route-reflector-cluster-id-config;
132             }
133             augment bgp/global/config {
134                 ext:augment-identifier global-config-augmentation;
135                 uses route-reflector-cluster-id-config;
136             }
137             augment bgp/neighbors/neighbor/state {
138                 ext:augment-identifier neighbor_state-augmentation;
139                 uses bgp-op:bgp-neighbor_state;
140             }
141             augment bgp/neighbors/neighbor/state {
142                 ext:augment-identifier bgp-neighbor_state-augmentation;
143                 container messages {
144                     container sent {
145                         uses bgp-op:bgp-neighbor-message-counters-sent_state;
146                     }
147
148                     container received {
149                         uses bgp-op:bgp-neighbor-message-counters-received_state;
150                     }
151                 }
152
153                 container queues {
154                     uses bgp-op:bgp-neighbor-queue-counters_state;
155                 }
156             }
157             augment bgp/neighbors/neighbor/timers/state {
158                 ext:augment-identifier neighbor-timers_state-augmentation;
159                 uses bgp-op:bgp-neighbor-timers_state;
160             }
161             augment bgp/neighbors/neighbor/transport/state {
162                 ext:augment-identifier neighbor-transport_state-augmentation;
163                 uses bgp-op:bgp-neighbor-transport_state;
164             }
165             augment bgp/neighbors/neighbor/error-handling/state {
166                 ext:augment-identifier neighbor-error-handling_state-augmentation;
167                 uses bgp-op:bgp-neighbor-error-handling_state;
168             }
169             augment bgp/neighbors/neighbor/afi-safis/afi-safi/state {
170                 ext:augment-identifier neighbor-afi-safi_state-augmentation;
171                 uses bgp-op:bgp-neighbor-afi-safi_state;
172             }
173             augment bgp/neighbors/neighbor/graceful-restart/state {
174                 ext:augment-identifier neighbor-graceful-restart_state-augmentation;
175                 uses bgp-op:bgp-afi-safi-graceful-restart_state;
176             }
177             augment bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart/state {
178                 ext:augment-identifier neighbor-afi-safi-graceful-restart_state-augmentation;
179                 uses bgp-op:bgp-neighbor-afi-safi-graceful-restart_state;
180             }
181             augment bgp/peer-groups/peer-group/state {
182                 ext:augment-identifier peer-group_state-augmentation;
183                 uses bgp-op:bgp-peer-group_state;
184             }
185             augment bgp/peer-groups/peer-group/transport/config {
186                 ext:augment-identifier peer-group-transport-config;
187                 uses transport-config;
188             }
189             augment bgp/peer-groups/peer-group/config {
190                 ext:augment-identifier peer-group-cluster-id-config;
191                 uses route-reflector-cluster-id-config;
192             }
193             augment bgp/peer-groups/peer-group/afi-safis/afi-safi {
194                 ext:augment-identifier group-add-paths-config;
195                 uses openconfig-bgp:bgp-neighbor-add-paths_config;
196             }
197         }
198     }
199
200 }