/* 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-pim-candidate {\n"
	"  yang-version \"1.1\";\n"
	"  namespace \"http://frrouting.org/yang/pim-candidate\";\n"
	"\n"
	"  prefix frr-pim-candidate;\n"
	"\n"
	"  import frr-interface {\n"
	"    prefix frr-interface;\n"
	"  }\n"
	"\n"
	"  import ietf-inet-types {\n"
	"    prefix \"inet\";\n"
	"  }\n"
	"\n"
	"  import frr-routing {\n"
	"    prefix \"frr-rt\";\n"
	"  }\n"
	"\n"
	"  import frr-pim {\n"
	"    prefix \"frr-pim\";\n"
	"  }\n"
	"\n"
	"  import frr-pim-rp {\n"
	"    prefix \"frr-pim-rp\";\n"
	"  }\n"
	"  import frr-route-types {\n"
	"    prefix frr-route-types;\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"
	"    \"The module defines a collection of YANG definitions common for\n"
	"     all PIM (Protocol Independent Multicast) Candidate RP & BSR\n"
	"     (Rendezvous Point & Bootstrap Router) operation.\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 2021-05-04 {\n"
	"    description\n"
	"      \"Initial revision.\";\n"
	"    reference\n"
	"      \"TBD\";\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * Groupings\n"
	"   */\n"
	"  grouping candidate-bsr-container {\n"
	"    description\n"
	"      \"Grouping of Candidate BSR settings.\";\n"
	"\n"
	"    container candidate-bsr {\n"
	"      presence\n"
	"        \"Enable router to be a Candidate BSR.\";\n"
	"\n"
	"      description\n"
	"        \"Candidate BSR settings\";\n"
	"\n"
	"      leaf bsr-priority {\n"
	"        type uint8;\n"
	"        default \"64\";\n"
	"        description\n"
	"          \"BSR priority for this router, higher values win.\";\n"
	"      }\n"
	"\n"
	"      choice source-address-or-interface {\n"
	"        default if-loopback;\n"
	"        description \"IP address to use for BSR operation\";\n"
	"        leaf address {\n"
	"          type inet:ip-address;\n"
	"          description\n"
	"            \"Use this specific IP address as the source address for BSR operation.\";\n"
	"        }\n"
	"        leaf interface {\n"
	"          type frr-interface:interface-ref;\n"
	"          description\n"
	"            \"Use the IP address of the specified interface for BSR operation.\";\n"
	"        }\n"
	"        leaf if-loopback {\n"
	"          type empty;\n"
	"          description\n"
	"            \"Use the loopback interface IP address for BSR operation.\";\n"
	"        }\n"
	"        leaf if-any {\n"
	"          type empty;\n"
	"          description\n"
	"            \"Use any available interface IP address for BSR operation.\";\n"
	"        }\n"
	"      }\n"
	"    } // candidate-bsr\n"
	"  } // candidate-bsr-container\n"
	"\n"
	"  grouping candidate-rp-container {\n"
	"    description\n"
	"      \"Grouping of Candidate RP settings.\";\n"
	"\n"
	"    container candidate-rp {\n"
	"      presence\n"
	"        \"Enable router to be a Candidate RP.\";\n"
	"\n"
	"      description\n"
	"        \"Candidate RP settings\";\n"
	"\n"
	"      leaf rp-priority {\n"
	"        type uint8;\n"
	"        default \"192\";\n"
	"        description\n"
	"          \"RP priority for this router, lower values win.\";\n"
	"      }\n"
	"\n"
	"      leaf advertisement-interval {\n"
	"        type uint32 {\n"
	"          range 1..4294967295;\n"
	"        }\n"
	"        default \"60\";\n"
	"        description\n"
	"          \"RP advertisement interval (seconds).  Holdtime is 2.5 times this.\";\n"
	"      }\n"
	"\n"
	"      leaf-list group-list {\n"
	"        type frr-route-types:ip-multicast-group-prefix;\n"
	"        description\n"
	"          \"List of multicast group address.\";\n"
	"      }\n"
	"\n"
	"      choice source-address-or-interface {\n"
	"        default if-loopback;\n"
	"        description \"IP address to use for RP operation\";\n"
	"        leaf address {\n"
	"          type inet:ip-address;\n"
	"          description\n"
	"            \"Use this specific IP address as the source address for RP operation.\";\n"
	"        }\n"
	"        leaf interface {\n"
	"          type frr-interface:interface-ref;\n"
	"          description\n"
	"            \"Use the IP address of the specified interface for RP operation.\";\n"
	"        }\n"
	"        leaf if-loopback {\n"
	"          type empty;\n"
	"          description\n"
	"            \"Use the loopback interface IP address for RP operation.\";\n"
	"        }\n"
	"        leaf if-any {\n"
	"          type empty;\n"
	"          description\n"
	"            \"Use any available interface IP address for RP operation.\";\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * Configuration data nodes\n"
	"   */\n"
	"  augment \"/frr-rt:routing/frr-rt:control-plane-protocols/\"\n"
	"    + \"frr-rt:control-plane-protocol/frr-pim:pim/\"\n"
	"    + \"frr-pim:address-family/frr-pim-rp:rp\" {\n"
	"    description \"PIM Candidate RP augmentation.\";\n"
	"\n"
	"    uses candidate-bsr-container;\n"
	"    uses candidate-rp-container;\n"
	"  }\n"
	"}\n"
	"";

static struct yang_module_embed embed = {
	.mod_name = "frr-pim-candidate",
	.mod_rev = "2021-05-04",
	.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);
}
