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

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

static const char model[] =
	"module frr-pim-route-map {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/pim-route-map\";\n"
	"  prefix frr-pim-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-interface {\n"
	"    prefix frr-interface;\n"
	"  }\n"
	"\n"
	"  import frr-filter {\n"
	"    prefix frr-filter;\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"
	"\n"
	"  description\n"
	"    \"This module defines YANG augmentations for PIM route-map functionality.\n"
	"     It extends the FRR route-map module to support multicast-specific\n"
	"     match conditions for both IPv4 and IPv6 addresses, including source\n"
	"     and group address matching, prefix list matching, and interface-based filtering.\";\n"
	"\n"
	"  revision 2021-08-25 {\n"
	"    description\n"
	"      \"Initial revision\";\n"
	"\n"
	"    reference\n"
	"      \"FRRouting\";\n"
	"  }\n"
	"\n"
	"  identity ipv4-multicast-source {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv4 source address\";\n"
	"  }\n"
	"\n"
	"  identity ipv6-multicast-source {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv6 source address\";\n"
	"  }\n"
	"\n"
	"  identity ipv4-multicast-source-prefix-list {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv4 source prefix list\";\n"
	"  }\n"
	"\n"
	"  identity ipv6-multicast-source-prefix-list {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv6 source prefix list\";\n"
	"  }\n"
	"\n"
	"  identity ipv4-multicast-group {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv4 group address\";\n"
	"  }\n"
	"\n"
	"  identity ipv6-multicast-group {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv6 group address\";\n"
	"  }\n"
	"\n"
	"  identity ipv4-multicast-group-prefix-list {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv4 group prefix list\";\n"
	"  }\n"
	"\n"
	"  identity ipv6-multicast-group-prefix-list {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast IPv6 group prefix list\";\n"
	"  }\n"
	"\n"
	"  identity multicast-interface {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match multicast interface\";\n"
	"  }\n"
	"\n"
	"  identity multicast-source-interface {\n"
	"    base frr-route-map:rmap-match-type;\n"
	"    description\n"
	"      \"Match the multicast source interface for the route-map evaluation context.\";\n"
	"  }\n"
	"\n"
	"  augment \"/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition\" {\n"
	"    description\n"
	"      \"Augments the route-map match-condition to support PIM-specific match types\n"
	"       for multicast routing. This includes matching IPv4/IPv6 multicast source\n"
	"       addresses, group addresses, prefix lists, and interfaces.\";\n"
	"\n"
	"    case multicast-source {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv4-multicast-source\')\";\n"
	"\n"
	"      leaf ipv4-multicast-source-address {\n"
	"        type inet:ipv4-address;\n"
	"        description\n"
	"          \"IPv4 multicast source address to match\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case multicast-source-v6 {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv6-multicast-source\')\";\n"
	"\n"
	"      leaf ipv6-multicast-source-address {\n"
	"        type inet:ipv6-address;\n"
	"        description\n"
	"          \"IPv6 multicast source address to match\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case multicast-group {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv4-multicast-group\')\";\n"
	"\n"
	"      leaf ipv4-multicast-group-address {\n"
	"        type inet:ipv4-address;\n"
	"        description\n"
	"          \"IPv4 multicast group address to match\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case multicast-group-v6 {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv6-multicast-group\')\";\n"
	"\n"
	"      leaf ipv6-multicast-group-address {\n"
	"        type inet:ipv6-address;\n"
	"        description\n"
	"          \"IPv6 multicast group address to match\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case multicast-interface {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:multicast-interface\')\";\n"
	"\n"
	"      leaf multicast-interface {\n"
	"        type frr-interface:interface-ref;\n"
	"        description\n"
	"          \"Multicast interface to match\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case multicast-source-interface {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:multicast-source-interface\')\";\n"
	"\n"
	"      leaf multicast-source-interface {\n"
	"        type frr-interface:interface-ref;\n"
	"        description\n"
	"          \"Multicast source interface to match for the route-map evaluation context.\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    case prefix-list-name {\n"
	"      when \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv4-multicast-source-prefix-list\') or \"\n"
	"      + \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv6-multicast-source-prefix-list\') or \"\n"
	"      + \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv4-multicast-group-prefix-list\') or \"\n"
	"      + \"derived-from-or-self(../frr-route-map:condition, \'frr-pim-route-map:ipv6-multicast-group-prefix-list\')\";\n"
	"\n"
	"      leaf list-name {\n"
	"        type frr-filter:prefix-list-ref;\n"
	"        description\n"
	"          \"Prefix list name to match\";\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"}\n"
	"";

static struct yang_module_embed embed = {
	.mod_name = "frr-pim-route-map",
	.mod_rev = "2021-08-25",
	.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);
}
