1 // SPDX-License-Identifier: BSD-2-Clause
4 namespace "http://frrouting.org/yang/routing";
7 import ietf-yang-types {
19 "FRR Users List: <mailto:frog@lists.frrouting.org>
20 FRR Development List: <mailto:dev@lists.frrouting.org>";
23 "This YANG module defines essential components for the management
24 of a routing subsystem.
26 Copyright 2020 FRRouting
28 Redistribution and use in source and binary forms, with or without
29 modification, are permitted provided that the following conditions
32 1. Redistributions of source code must retain the above copyright notice,
33 this list of conditions and the following disclaimer.
35 2. Redistributions in binary form must reproduce the above copyright
36 notice, this list of conditions and the following disclaimer in the
37 documentation and/or other materials provided with the distribution.
39 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
40 \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
41 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
42 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
43 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
45 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
46 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
47 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
48 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
49 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
58 identity address-family {
60 "Base identity from which identities describing address
61 families are derived.";
67 "This identity represents an IPv4 address family.";
73 "This identity represents an IPv6 address family.";
76 identity afi-safi-type {
78 "Base identity type (AFI,SAFI) tuples for RIB";
81 identity ipv4-unicast {
84 "This identity represents the IPv4 unicast address family.";
87 identity ipv6-unicast {
90 "This identity represents the IPv6 unicast address family.";
93 identity ipv4-multicast {
96 "This identity represents the IPv4 multicast address family.";
99 identity ipv6-multicast {
102 "This identity represents the IPv6 multicast address family.";
105 identity ipv4-labeled-unicast {
108 "This identity represents the IPv4 labeled unicast address family.";
112 identity ipv6-labeled-unicast {
115 "This identity represents the IPv6 labeled unicast address family.";
119 identity l3vpn-ipv4-unicast {
122 "This identity represents the L3vpn IPv4 unicast address family.";
126 identity l3vpn-ipv6-unicast {
129 "This identity represents the L3vpn IPv6 unicast address family.";
133 identity l3vpn-ipv4-multicast {
136 "This identity represents the L3vpn IPv4 multicast address family.";
140 identity l3vpn-ipv6-multicast {
143 "This identity represents the L3vpn IPv6 multicast address family.";
147 identity l2vpn-vpls {
150 "This identity represents the L2vpn VPLS address family.";
154 identity l2vpn-evpn {
157 "This identity represents the L2vpn EVPN address family.";
161 identity ipv4-flowspec {
164 "This identity represents the IPv4 flowspec address family.";
168 identity ipv6-flowspec {
171 "This identity represents the IPv6 flowspec address family.";
175 identity control-plane-protocol {
177 "Base identity from which control-plane protocol identities are
181 identity routing-protocol {
182 base control-plane-protocol;
184 "Identity from which Layer 3 routing protocol identities are
188 /* Type Definitions */
190 typedef administrative-distance {
195 "Admin distance associated with the route.";
200 grouping address-family {
202 "This grouping provides a leaf identifying an address
204 leaf address-family {
216 "This grouping provides a router ID.";
218 type yang:dotted-quad;
220 "A 32-bit number in the form of a dotted quad that is used by
221 some routing protocols identifying a router.";
223 "RFC 2328: OSPF Version 2";
231 "Configuration parameters for the routing subsystem.";
232 container control-plane-protocols {
234 "Support for control-plane protocol instances.";
235 list control-plane-protocol {
238 "Each entry contains a control-plane protocol instance.";
241 base control-plane-protocol;
244 "Type of the control-plane protocol";
249 "An arbitrary name of the control-plane protocol
253 type frr-vrf:vrf-ref;
255 "vrf for control-plane protocol";