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

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

static const char model[] =
	"module frr-zebra-route-map {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/zebra-route-map\";\n"
	"  prefix frr-zebra-route-map;\n"
	"\n"
	"  import ietf-inet-types {\n"
	"    prefix inet;\n"
	"  }\n"
	"\n"
	"  import frr-route-map {\n"
	"    prefix frr-route-map;\n"
	"  }\n"
	"\n"
	"  import frr-route-types {\n"
	"    prefix frr-route-types;\n"
	"  }\n"
	"\n"
	"  organization\n"
	"    \"Free Range Routing\";\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 zebra route map settings\";\n"
	"\n"
	"  revision 2020-01-02 {\n"
	"    description\n"
	"      \"Initial revision\";\n"
	"  }\n"
	"\n"
	"  identity ipv4-prefix-length {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match IPv4 address prefix length\";\n"
	"  }\n"
	"\n"
	"  identity ipv4-next-hop-prefix-length {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match IPv4 next-hop address prefix length\";\n"
	"  }\n"
	"\n"
	"  identity ipv6-prefix-length {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match IPv6 address prefix length\";\n"
	"  }\n"
	"\n"
	"  identity source-instance {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match the protocol\'s instance number\";\n"
	"  }\n"
	"\n"
	"  identity source-protocol {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match protocol via which the route was learnt\";\n"
	"  }\n"
	"\n"
	"  identity src-address {\n"
	"    base frr-route-map:rmap-set-type;\n"
	"    description\n"
	"      \"Set IPv4/IPv6 source address for route\";\n"
	"  }\n"
	"\n"
	"  augment \"/frr-route-map:lib\"\n"
	"    + \"/frr-route-map:route-map\"\n"
	"    + \"/frr-route-map:entry\"\n"
	"    + \"/frr-route-map:match-condition\"\n"
	"    + \"/frr-route-map:rmap-match-condition\"\n"
	"    + \"/frr-route-map:match-condition\" {\n"
	"    case ipv4-prefix-length {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-zebra-route-map:ipv4-prefix-length\') or \"\n"
	"         + \"derived-from-or-self(../frr-route-map:condition, \'frr-zebra-route-map:ipv4-next-hop-prefix-length\')\";\n"
	"      leaf ipv4-prefix-length {\n"
	"        type uint8 {\n"
	"          range \"0..32\";\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case ipv6-prefix-length {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-zebra-route-map:ipv6-prefix-length\')\";\n"
	"      leaf ipv6-prefix-length {\n"
	"        type uint8 {\n"
	"          range \"0..128\";\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case source-instance {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-zebra-route-map:source-instance\')\";\n"
	"      leaf source-instance {\n"
	"        type uint8 {\n"
	"          range \"0..255\";\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case source-protocol {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-zebra-route-map:source-protocol\')\";\n"
	"      leaf source-protocol {\n"
	"        type frr-route-types:frr-route-types;\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"\n"
	"  augment \"/frr-route-map:lib\"\n"
	"    + \"/frr-route-map:route-map\"\n"
	"    + \"/frr-route-map:entry\"\n"
	"    + \"/frr-route-map:set-action\"\n"
	"    + \"/frr-route-map:rmap-set-action\"\n"
	"    + \"/frr-route-map:set-action\" {\n"
	"    case src-address {\n"
	"      when \"derived-from-or-self(../frr-route-map:action, \'frr-zebra-route-map:src-address\')\";\n"
	"      choice src-address {\n"
	"        description\n"
	"          \"Value of the source address\";\n"
	"        case ipv4-src-address {\n"
	"          leaf ipv4-src-address {\n"
	"            type inet:ipv4-address;\n"
	"            mandatory true;\n"
	"          }\n"
	"        }\n"
	"\n"
	"        case ipv6-src-address {\n"
	"          leaf ipv6-src-address {\n"
	"            type inet:ipv6-address;\n"
	"            mandatory true;\n"
	"          }\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"}\n"
	"";

static struct yang_module_embed embed = {
	.mod_name = "frr-zebra-route-map",
	.mod_rev = "2020-01-02",
	.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);
}
