]> git.proxmox.com Git - mirror_frr.git/blob - yang/frr-routing.yang
Merge pull request #6745 from ton31337/fix/handle_bgp_vrf_all_statistics_crash
[mirror_frr.git] / yang / frr-routing.yang
1 module frr-routing {
2 yang-version "1.1";
3 namespace "http://frrouting.org/yang/routing";
4 prefix "rt";
5
6 import ietf-yang-types {
7 prefix "yang";
8 }
9
10 import frr-vrf {
11 prefix frr-vrf;
12 }
13
14 organization
15 "FRRouting";
16
17 contact
18 "FRR Users List: <mailto:frog@lists.frrouting.org>
19 FRR Development List: <mailto:dev@lists.frrouting.org>";
20
21 description
22 "This YANG module defines essential components for the management
23 of a routing subsystem.
24
25 Copyright 2020 FRRouting
26
27 Redistribution and use in source and binary forms, with or without
28 modification, are permitted provided that the following conditions
29 are met:
30
31 1. Redistributions of source code must retain the above copyright notice,
32 this list of conditions and the following disclaimer.
33
34 2. Redistributions in binary form must reproduce the above copyright
35 notice, this list of conditions and the following disclaimer in the
36 documentation and/or other materials provided with the distribution.
37
38 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
39 \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
40 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
41 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
42 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
45 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
46 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
47 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
48 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
49
50 revision 2019-08-15 {
51 description
52 "Initial revision.";
53 }
54
55 /* Identities */
56
57 identity address-family {
58 description
59 "Base identity from which identities describing address
60 families are derived.";
61 }
62
63 identity ipv4 {
64 base address-family;
65 description
66 "This identity represents an IPv4 address family.";
67 }
68
69 identity ipv6 {
70 base address-family;
71 description
72 "This identity represents an IPv6 address family.";
73 }
74
75 identity afi-safi-type {
76 description
77 "Base identity type (AFI,SAFI) tuples for RIB";
78 }
79
80 identity ipv4-unicast {
81 base afi-safi-type;
82 description
83 "This identity represents the IPv4 unicast address family.";
84 }
85
86 identity ipv6-unicast {
87 base afi-safi-type;
88 description
89 "This identity represents the IPv6 unicast address family.";
90 }
91
92 identity ipv4-multicast {
93 base afi-safi-type;
94 description
95 "This identity represents the IPv4 multicast address family.";
96 }
97
98 identity ipv6-multicast {
99 base afi-safi-type;
100 description
101 "This identity represents the IPv6 multicast address family.";
102 }
103
104 identity control-plane-protocol {
105 description
106 "Base identity from which control-plane protocol identities are
107 derived.";
108 }
109
110 identity routing-protocol {
111 base control-plane-protocol;
112 description
113 "Identity from which Layer 3 routing protocol identities are
114 derived.";
115 }
116
117 /* Type Definitions */
118
119 typedef administrative-distance {
120 type uint8 {
121 range "1..255";
122 }
123 description
124 "Admin distance associated with the route.";
125 }
126
127 /* Groupings */
128
129 grouping address-family {
130 description
131 "This grouping provides a leaf identifying an address
132 family.";
133 leaf address-family {
134 type identityref {
135 base address-family;
136 }
137 mandatory true;
138 description
139 "Address family.";
140 }
141 }
142
143 grouping router-id {
144 description
145 "This grouping provides a router ID.";
146 leaf router-id {
147 type yang:dotted-quad;
148 description
149 "A 32-bit number in the form of a dotted quad that is used by
150 some routing protocols identifying a router.";
151 reference
152 "RFC 2328: OSPF Version 2";
153 }
154 }
155
156 /* Data nodes */
157
158 container routing {
159 description
160 "Configuration parameters for the routing subsystem.";
161 container control-plane-protocols {
162 description
163 "Support for control-plane protocol instances.";
164 list control-plane-protocol {
165 key "type name vrf";
166 description
167 "Each entry contains a control-plane protocol instance.";
168 leaf type {
169 type identityref {
170 base control-plane-protocol;
171 }
172 description
173 "Type of the control-plane protocol";
174 }
175 leaf name {
176 type string;
177 description
178 "An arbitrary name of the control-plane protocol
179 instance.";
180 }
181 leaf vrf {
182 type string;
183 description
184 "vrf for control-plane protocol";
185 }
186 }
187 }
188 }
189 }