mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-11-04 06:38:04 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			260 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			YANG
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			YANG
		
	
	
	
	
	
module frr-routing {
 | 
						|
  yang-version "1.1";
 | 
						|
  namespace "http://frrouting.org/yang/routing";
 | 
						|
  prefix "rt";
 | 
						|
 | 
						|
  import ietf-yang-types {
 | 
						|
    prefix "yang";
 | 
						|
  }
 | 
						|
 | 
						|
  import frr-vrf {
 | 
						|
    prefix frr-vrf;
 | 
						|
  }
 | 
						|
 | 
						|
  organization
 | 
						|
    "FRRouting";
 | 
						|
 | 
						|
  contact
 | 
						|
    "FRR Users List:       <mailto:frog@lists.frrouting.org>
 | 
						|
     FRR Development List: <mailto:dev@lists.frrouting.org>";
 | 
						|
 | 
						|
  description
 | 
						|
    "This YANG module defines essential components for the management
 | 
						|
     of a routing subsystem.
 | 
						|
 | 
						|
     Copyright 2020 FRRouting
 | 
						|
 | 
						|
     Redistribution and use in source and binary forms, with or without
 | 
						|
     modification, are permitted provided that the following conditions
 | 
						|
     are met:
 | 
						|
 | 
						|
     1. Redistributions of source code must retain the above copyright notice,
 | 
						|
     this list of conditions and the following disclaimer.
 | 
						|
 | 
						|
     2. Redistributions in binary form must reproduce the above copyright
 | 
						|
     notice, this list of conditions and the following disclaimer in the
 | 
						|
     documentation and/or other materials provided with the distribution.
 | 
						|
 | 
						|
     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
						|
     \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
						|
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
						|
     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
						|
     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
						|
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
						|
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
						|
     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
						|
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
						|
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
						|
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
 | 
						|
 | 
						|
  revision 2019-08-15 {
 | 
						|
    description
 | 
						|
      "Initial revision.";
 | 
						|
  }
 | 
						|
 | 
						|
  /* Identities */
 | 
						|
 | 
						|
  identity address-family {
 | 
						|
    description
 | 
						|
      "Base identity from which identities describing address
 | 
						|
       families are derived.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv4 {
 | 
						|
    base address-family;
 | 
						|
    description
 | 
						|
      "This identity represents an IPv4 address family.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv6 {
 | 
						|
    base address-family;
 | 
						|
    description
 | 
						|
      "This identity represents an IPv6 address family.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity afi-safi-type {
 | 
						|
    description
 | 
						|
      "Base identity type (AFI,SAFI) tuples for RIB";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv4-unicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv4 unicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv6-unicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv6 unicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv4-multicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv4 multicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv6-multicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv6 multicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity ipv4-labeled-unicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv4 labeled unicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity ipv6-labeled-unicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv6 labeled unicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity l3vpn-ipv4-unicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the L3vpn IPv4 unicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity l3vpn-ipv6-unicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the L3vpn IPv6 unicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity l3vpn-ipv4-multicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the L3vpn IPv4 multicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity l3vpn-ipv6-multicast {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the L3vpn IPv6 multicast address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity l2vpn-vpls {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the L2vpn VPLS  address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity l2vpn-evpn {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the L2vpn EVPN address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity ipv4-flowspec {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv4 flowspec address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity ipv6-flowspec {
 | 
						|
    base afi-safi-type;
 | 
						|
    description
 | 
						|
      "This identity represents the IPv6 flowspec address family.";
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  identity control-plane-protocol {
 | 
						|
    description
 | 
						|
      "Base identity from which control-plane protocol identities are
 | 
						|
       derived.";
 | 
						|
  }
 | 
						|
 | 
						|
  identity routing-protocol {
 | 
						|
    base control-plane-protocol;
 | 
						|
    description
 | 
						|
      "Identity from which Layer 3 routing protocol identities are
 | 
						|
       derived.";
 | 
						|
  }
 | 
						|
 | 
						|
  /* Type Definitions */
 | 
						|
 | 
						|
  typedef administrative-distance {
 | 
						|
    type uint8 {
 | 
						|
      range "1..255";
 | 
						|
    }
 | 
						|
    description
 | 
						|
      "Admin distance associated with the route.";
 | 
						|
  }
 | 
						|
 | 
						|
  /* Groupings */
 | 
						|
 | 
						|
  grouping address-family {
 | 
						|
    description
 | 
						|
      "This grouping provides a leaf identifying an address
 | 
						|
       family.";
 | 
						|
    leaf address-family {
 | 
						|
      type identityref {
 | 
						|
        base address-family;
 | 
						|
      }
 | 
						|
      mandatory true;
 | 
						|
      description
 | 
						|
        "Address family.";
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  grouping router-id {
 | 
						|
    description
 | 
						|
      "This grouping provides a router ID.";
 | 
						|
    leaf router-id {
 | 
						|
      type yang:dotted-quad;
 | 
						|
      description
 | 
						|
        "A 32-bit number in the form of a dotted quad that is used by
 | 
						|
         some routing protocols identifying a router.";
 | 
						|
      reference
 | 
						|
        "RFC 2328: OSPF Version 2";
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  /* Data nodes */
 | 
						|
 | 
						|
  container routing {
 | 
						|
    description
 | 
						|
      "Configuration parameters for the routing subsystem.";
 | 
						|
    container control-plane-protocols {
 | 
						|
      description
 | 
						|
        "Support for control-plane protocol instances.";
 | 
						|
      list control-plane-protocol {
 | 
						|
        key "type name vrf";
 | 
						|
        description
 | 
						|
          "Each entry contains a control-plane protocol instance.";
 | 
						|
        leaf type {
 | 
						|
          type identityref {
 | 
						|
            base control-plane-protocol;
 | 
						|
          }
 | 
						|
          description
 | 
						|
            "Type of the control-plane protocol";
 | 
						|
        }
 | 
						|
        leaf name {
 | 
						|
          type string;
 | 
						|
          description
 | 
						|
            "An arbitrary name of the control-plane protocol
 | 
						|
             instance.";
 | 
						|
        }
 | 
						|
        leaf vrf {
 | 
						|
          type frr-vrf:vrf-ref;
 | 
						|
          description
 | 
						|
            "vrf for control-plane protocol";
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |