/* 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-route-types {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/route-types\";\n"
	"  prefix frr-route-types;\n"
	"\n"
	"  import ietf-inet-types {\n"
	"    prefix inet;\n"
	"  }\n"
	"\n"
	"  organization\n"
	"    \"FRRouting\";\n"
	"  contact\n"
	"    \"FRR Users List:       <mailto:frog@lists.frrouting.org>\n"
	"     FRR Development List: <mailto:dev@lists.frrouting.org>\";\n"
	"  description\n"
	"    \"This module defines typedefs for route types.\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 2018-03-28 {\n"
	"    description\n"
	"      \"Initial revision.\";\n"
	"  }\n"
	"\n"
	"  typedef frr-route-types-v4 {\n"
	"    type enumeration {\n"
	"      enum kernel {\n"
	"        value 1;\n"
	"        description \"Kernel route\";\n"
	"      }\n"
	"      enum connected {\n"
	"        value 2;\n"
	"        description \"Connected route\";\n"
	"      }\n"
	"      enum local {\n"
	"        value 3;\n"
	"        description \"Local route\";\n"
	"      }\n"
	"      enum static {\n"
	"        value 4;\n"
	"        description \"Static route\";\n"
	"      }\n"
	"      enum rip {\n"
	"        value 5;\n"
	"        description \"RIP route\";\n"
	"      }\n"
	"      enum ospf {\n"
	"        value 7;\n"
	"        description \"OSPF route\";\n"
	"      }\n"
	"      enum isis {\n"
	"        value 9;\n"
	"        description \"ISIS route\";\n"
	"      }\n"
	"      enum bgp {\n"
	"        value 10;\n"
	"        description \"BGP route\";\n"
	"      }\n"
	"      enum eigrp {\n"
	"        value 12;\n"
	"        description \"EIGRP route\";\n"
	"      }\n"
	"      enum nhrp {\n"
	"        value 13;\n"
	"        description \"NHRP route\";\n"
	"      }\n"
	"      enum table {\n"
	"        value 16;\n"
	"        description \"Table route\";\n"
	"      }\n"
	"      enum vnc {\n"
	"        value 18;\n"
	"        description \"VNC route\";\n"
	"      }\n"
	"      enum vnc-direct {\n"
	"        value 19;\n"
	"        description \"VNC Direct route\";\n"
	"      }\n"
	"      enum babel {\n"
	"        value 23;\n"
	"        description \"Babel route\";\n"
	"      }\n"
	"      enum sharp {\n"
	"        value 24;\n"
	"        description \"SHARP route\";\n"
	"      }\n"
	"      enum openfabric {\n"
	"        value 27;\n"
	"        description \"Openfabric route\";\n"
	"      }\n"
	"    }\n"
	"    description \"Enumeration of supported IPv4 route types\";\n"
	"  }\n"
	"\n"
	"  typedef frr-route-types-v6 {\n"
	"    type enumeration {\n"
	"      enum kernel {\n"
	"        value 1;\n"
	"        description \"Kernel route\";\n"
	"      }\n"
	"      enum connected {\n"
	"        value 2;\n"
	"        description \"Connected route\";\n"
	"      }\n"
	"      enum local {\n"
	"        value 3;\n"
	"        description \"Local route\";\n"
	"      }\n"
	"      enum static {\n"
	"        value 4;\n"
	"        description \"Static route\";\n"
	"      }\n"
	"      enum ripng {\n"
	"        value 6;\n"
	"        description \"RIPng route\";\n"
	"      }\n"
	"      enum ospf6 {\n"
	"        value 8;\n"
	"        description \"OSPFv3 route\";\n"
	"      }\n"
	"      enum isis {\n"
	"        value 9;\n"
	"        description \"ISIS route\";\n"
	"      }\n"
	"      enum bgp {\n"
	"        value 10;\n"
	"        description \"BGP route\";\n"
	"      }\n"
	"      enum nhrp {\n"
	"        value 13;\n"
	"        description \"NHRP route\";\n"
	"      }\n"
	"      enum table {\n"
	"        value 16;\n"
	"        description \"Table route\";\n"
	"      }\n"
	"      enum vnc {\n"
	"        value 18;\n"
	"        description \"VNC route\";\n"
	"      }\n"
	"      enum vnc-direct {\n"
	"        value 19;\n"
	"        description \"VNC Direct route\";\n"
	"      }\n"
	"      enum babel {\n"
	"        value 23;\n"
	"        description \"Babel route\";\n"
	"      }\n"
	"      enum sharp {\n"
	"        value 24;\n"
	"        description \"SHARP route\";\n"
	"      }\n"
	"      enum openfabric {\n"
	"        value 27;\n"
	"        description \"OpenFabric route\";\n"
	"      }\n"
	"    }\n"
	"    description \"Enumeration of supported IPv6 route types\";\n"
	"  }\n"
	"\n"
	"  typedef frr-route-types {\n"
	"    type union {\n"
	"      type frr-route-types-v4;\n"
	"      type frr-route-types-v6;\n"
	"    }\n"
	"    description \"Route types as enumerated in `lib/route_types.txt`\";\n"
	"  }\n"
	"\n"
	"  typedef ipv4-multicast-group-prefix {\n"
	"    type inet:ipv4-prefix {\n"
	"      pattern \'(2((2[4-9])|(3[0-9]))\\.)(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(/(([4-9])|([1-2][0-9])|(3[0-2])))\';\n"
	"    }\n"
	"    description\n"
	"      \"This type represents an IPv4 multicast group prefix,\n"
	"       which is in the range from 224.0.0.0 to 239.255.255.255.\";\n"
	"  }\n"
	"\n"
	"  typedef ipv6-multicast-group-prefix {\n"
	"    type inet:ipv6-prefix {\n"
	"      pattern\n"
	"\t\'(([fF]{2}[0-9a-fA-F]{2}):).*\';\n"
	"    }\n"
	"    description\n"
	"      \"This type represents an IPv6 multicast group prefix,\n"
	"       which is in the range of FF00::/8.\";\n"
	"  }\n"
	"\n"
	"  typedef ip-multicast-group-prefix {\n"
	"    type union {\n"
	"      type ipv4-multicast-group-prefix;\n"
	"      type ipv6-multicast-group-prefix;\n"
	"    }\n"
	"    description \"The IP-Multicast-Group-Address-Prefix type represents an IP multicast address\n"
	"    prefix and is IP version neutral. The format of the textual representations implies the IP\n"
	"    version. It includes a prefix-length, separated by a \'/\' sign.\";\n"
	"  }\n"
	"}\n"
	"";

static struct yang_module_embed embed = {
	.mod_name = "frr-route-types",
	.mod_rev = "2018-03-28",
	.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);
}
