/* autogenerated by embedmodel.py.  DO NOT EDIT */

#include <zebra.h>
#include "yang.h"

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

static struct yang_module_embed embed = {
	.mod_name = "frr-routing",
	.mod_rev = "2019-08-15",
	.sub_mod_name = "",
	.sub_mod_rev = "",
	.data = model,
	.format = LYS_IN_YANG,
};

static void embed_register(void) __attribute__((_CONSTRUCTOR(2000)));
static void embed_register(void)
{
	yang_module_embed(&embed);
}
