/* 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-ripngd {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/ripngd\";\n"
	"  prefix frr-ripngd;\n"
	"\n"
	"  import ietf-inet-types {\n"
	"    prefix inet;\n"
	"  }\n"
	"  import ietf-yang-types {\n"
	"    prefix yang;\n"
	"  }\n"
	"  import frr-if-rmap {\n"
	"    prefix frr-if-rmap;\n"
	"  }\n"
	"  import frr-filter {\n"
	"    prefix frr-filter;\n"
	"  }\n"
	"  import frr-interface {\n"
	"    prefix frr-interface;\n"
	"  }\n"
	"  import frr-vrf {\n"
	"    prefix frr-vrf;\n"
	"  }\n"
	"  import frr-route-map {\n"
	"    prefix frr-route-map;\n"
	"  }\n"
	"  import frr-route-types {\n"
	"    prefix frr-route-types;\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 a model for managing FRR ripngd daemon.\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-09-09 {\n"
	"    description\n"
	"      \"Changed interface references to use\n"
	"      frr-interface:interface-ref typedef\";\n"
	"    reference \"FRRouting\";\n"
	"  }\n"
	"  revision 2018-11-27 {\n"
	"    description\n"
	"      \"Initial revision.\";\n"
	"    reference\n"
	"      \"RFC 2080: RIPng for IPv6.\";\n"
	"  }\n"
	"\n"
	"  container ripngd {\n"
	"    description \"ripng routing instance data\";\n"
	"    /*\n"
	"     * Routing instance configuration.\n"
	"     */\n"
	"    list instance {\n"
	"      key \"vrf\";\n"
	"      description\n"
	"        \"RIPng routing instance.\";\n"
	"\n"
	"      leaf vrf {\n"
	"        type frr-vrf:vrf-ref;\n"
	"        description\n"
	"          \"VRF name.\";\n"
	"      }\n"
	"      leaf allow-ecmp {\n"
	"        type uint8;\n"
	"        default 0;\n"
	"        description\n"
	"          \"Allow equal-cost multi-path.\";\n"
	"      }\n"
	"      leaf default-information-originate {\n"
	"        type boolean;\n"
	"        default \"false\";\n"
	"        description\n"
	"          \"Control distribution of default route.\";\n"
	"      }\n"
	"      leaf default-metric {\n"
	"        type uint8 {\n"
	"          range \"1..16\";\n"
	"        }\n"
	"        default \"1\";\n"
	"        description\n"
	"          \"Default metric of redistributed routes.\";\n"
	"      }\n"
	"      leaf-list network {\n"
	"        type inet:ipv6-prefix;\n"
	"        description\n"
	"          \"Enable RIPng on the specified IPv6 network.\";\n"
	"      }\n"
	"      leaf-list interface {\n"
	"        type frr-interface:interface-ref;\n"
	"        description\n"
	"          \"Enable RIPng on the specified interface.\";\n"
	"      }\n"
	"      list offset-list {\n"
	"        key \"interface direction\";\n"
	"        description\n"
	"          \"Offset-list to modify route metric.\";\n"
	"        leaf interface {\n"
	"          type union {\n"
	"            type frr-interface:interface-ref;\n"
	"            type enumeration {\n"
	"              enum \'*\' {\n"
	"                description\n"
	"                  \"Match all interfaces.\";\n"
	"              }\n"
	"            }\n"
	"          }\n"
	"          description\n"
	"            \"Interface to match. Use \'*\' to match all interfaces.\";\n"
	"        }\n"
	"        leaf direction {\n"
	"          type enumeration {\n"
	"            enum in {\n"
	"              value 0;\n"
	"              description\n"
	"                \"Incoming updates.\";\n"
	"            }\n"
	"            enum out {\n"
	"              value 1;\n"
	"              description\n"
	"                \"Outgoing updates.\";\n"
	"            }\n"
	"          }\n"
	"          description\n"
	"            \"Incoming or outgoing updates.\";\n"
	"        }\n"
	"        leaf access-list {\n"
	"          type string;\n"
	"          mandatory true;\n"
	"          description\n"
	"            \"Access-list name.\";\n"
	"        }\n"
	"        leaf metric {\n"
	"          type uint8 {\n"
	"            range \"0..16\";\n"
	"          }\n"
	"          mandatory true;\n"
	"          description\n"
	"            \"Route metric.\";\n"
	"        }\n"
	"      }\n"
	"      leaf-list passive-interface {\n"
	"        type frr-interface:interface-ref;\n"
	"        description\n"
	"          \"A list of interfaces where the sending of RIPng packets\n"
	"           is disabled.\";\n"
	"      }\n"
	"\n"
	"      uses frr-filter:distribute-list-group;\n"
	"\n"
	"      list redistribute {\n"
	"        key \"protocol\";\n"
	"        description\n"
	"          \"Redistributes routes learned from other routing protocols.\";\n"
	"        leaf protocol {\n"
	"          type frr-route-types:frr-route-types-v6;\n"
	"          must \'. != \"ripng\"\';\n"
	"          description\n"
	"            \"Routing protocol.\";\n"
	"        }\n"
	"        leaf route-map {\n"
	"          type frr-route-map:route-map-ref;\n"
	"          description\n"
	"            \"Applies the conditions of the specified route-map to\n"
	"             routes that are redistributed into the RIPng routing\n"
	"             instance.\";\n"
	"        }\n"
	"        leaf metric {\n"
	"          type uint8 {\n"
	"            range \"0..16\";\n"
	"          }\n"
	"          description\n"
	"            \"Metric used for the redistributed route. If a metric is\n"
	"             not specified, the metric configured with the\n"
	"             default-metric attribute in RIPng router configuration is\n"
	"             used. If the default-metric attribute has not been\n"
	"             configured, the default metric for redistributed routes\n"
	"             is 0.\";\n"
	"        }\n"
	"      }\n"
	"\n"
	"      uses frr-if-rmap:if-route-maps-group;\n"
	"\n"
	"      leaf-list static-route {\n"
	"        type inet:ipv6-prefix;\n"
	"        description\n"
	"          \"RIPng static routes.\";\n"
	"      }\n"
	"      leaf-list aggregate-address {\n"
	"        type inet:ipv6-prefix;\n"
	"        description\n"
	"          \"RIPng aggregate route announcement.\";\n"
	"      }\n"
	"      container timers {\n"
	"        description\n"
	"          \"Settings of basic timers\";\n"
	"        leaf flush-interval {\n"
	"          type uint16 {\n"
	"            range \"1..65535\";\n"
	"          }\n"
	"          units \"seconds\";\n"
	"          default \"120\";\n"
	"          description\n"
	"            \"Interval before a route is flushed from the routing\n"
	"             table.\";\n"
	"        }\n"
	"        leaf holddown-interval {\n"
	"          type uint16 {\n"
	"            range \"1..65535\";\n"
	"          }\n"
	"          units \"seconds\";\n"
	"          default \"180\";\n"
	"          description\n"
	"            \"Interval before better routes are released.\";\n"
	"        }\n"
	"        leaf update-interval {\n"
	"          type uint16 {\n"
	"            range \"1..65535\";\n"
	"          }\n"
	"          units \"seconds\";\n"
	"          default \"30\";\n"
	"          description\n"
	"            \"Interval at which RIPng updates are sent.\";\n"
	"        }\n"
	"      }\n"
	"\n"
	"      /*\n"
	"       * Operational data.\n"
	"       */\n"
	"      container state {\n"
	"        config false;\n"
	"        description\n"
	"          \"Operational data.\";\n"
	"\n"
	"        container neighbors {\n"
	"          description\n"
	"            \"Neighbor information.\";\n"
	"          list neighbor {\n"
	"            key \"address\";\n"
	"            description\n"
	"              \"A RIPng neighbor.\";\n"
	"            leaf address {\n"
	"              type inet:ipv6-address;\n"
	"              description\n"
	"                \"IPv6 address that a RIPng neighbor is using as its\n"
	"                 source address.\";\n"
	"            }\n"
	"            leaf last-update {\n"
	"              type yang:date-and-time;\n"
	"              description\n"
	"                \"The time when the most recent RIPng update was\n"
	"                 received from this neighbor.\";\n"
	"            }\n"
	"            leaf bad-packets-rcvd {\n"
	"              type yang:counter32;\n"
	"              description\n"
	"                \"The number of RIPng invalid packets received from\n"
	"                 this neighbor which were subsequently discarded\n"
	"                 for any reason (e.g. a version 0 packet, or an\n"
	"                 unknown command type).\";\n"
	"            }\n"
	"            leaf bad-routes-rcvd {\n"
	"              type yang:counter32;\n"
	"              description\n"
	"                \"The number of routes received from this neighbor,\n"
	"                 in valid RIPng packets, which were ignored for any\n"
	"                 reason (e.g. unknown address family, or invalid\n"
	"                 metric).\";\n"
	"            }\n"
	"          }\n"
	"        }\n"
	"        container routes {\n"
	"          description\n"
	"            \"Route information.\";\n"
	"          list route {\n"
	"            key \"prefix\";\n"
	"            description\n"
	"              \"A RIPng IPv6 route.\";\n"
	"            leaf prefix {\n"
	"              type inet:ipv6-prefix;\n"
	"              description\n"
	"                \"IPv6 address and prefix length, in the format\n"
	"                 specified in RFC6991.\";\n"
	"            }\n"
	"            leaf next-hop {\n"
	"              type inet:ipv6-address;\n"
	"              description\n"
	"                \"Next hop IPv6 address.\";\n"
	"            }\n"
	"            leaf interface {\n"
	"              type frr-interface:interface-ref;\n"
	"              description\n"
	"                \"The interface that the route uses.\";\n"
	"            }\n"
	"            leaf metric {\n"
	"              type uint8 {\n"
	"                range \"0..16\";\n"
	"              }\n"
	"              description\n"
	"                \"Route metric.\";\n"
	"            }\n"
	"          }\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * Per-interface configuration data\n"
	"   */\n"
	"  augment \"/frr-interface:lib/frr-interface:interface\" {\n"
	"    description \"RIPng interface augmentation.\";\n"
	"    container ripng {\n"
	"      description\n"
	"        \"RIPng interface parameters.\";\n"
	"      leaf split-horizon {\n"
	"        type enumeration {\n"
	"          enum \"disabled\" {\n"
	"            value 0;\n"
	"            description\n"
	"              \"Disables split-horizon processing.\";\n"
	"          }\n"
	"          enum \"simple\" {\n"
	"            value 1;\n"
	"            description\n"
	"              \"Enables simple split-horizon processing.\";\n"
	"          }\n"
	"          enum \"poison-reverse\" {\n"
	"            value 2;\n"
	"            description\n"
	"              \"Enables split-horizon processing with poison\n"
	"               reverse.\";\n"
	"          }\n"
	"        }\n"
	"        default \"simple\";\n"
	"        description\n"
	"          \"Controls RIPng split-horizon processing on the specified\n"
	"           interface.\";\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * RPCs\n"
	"   */\n"
	"  rpc clear-ripng-route {\n"
	"    description\n"
	"      \"Clears RIPng routes from the IPv6 routing table and routes\n"
	"       redistributed into the RIPng protocol.\";\n"
	"\n"
	"    input {\n"
	"      leaf vrf {\n"
	"        type frr-vrf:vrf-ref;\n"
	"        description\n"
	"          \"VRF name identifying a specific RIPng instance.\n"
	"           This leaf is optional for the rpc.\n"
	"           If it is specified, the rpc will clear all routes in the\n"
	"           specified RIPng instance;\n"
	"           if it is not specified, the rpc will clear all routes in\n"
	"           all RIPng instances.\";\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"}\n"
	"";

static struct yang_module_embed embed = {
	.mod_name = "frr-ripngd",
	.mod_rev = "2019-09-09",
	.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);
}
