/* 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-eigrpd {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/eigrpd\";\n"
	"  prefix frr-eigrpd;\n"
	"\n"
	"  import ietf-inet-types {\n"
	"    prefix inet;\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"
	"  import frr-filter {\n"
	"    prefix frr-filter;\n"
	"  }\n"
	"\n"
	"  organization \"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 eigrpd 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\n"
	"      \"RFC 7868: Cisco\'s Enhanced Interior Gateway Routing Protocol (EIGRP).\";\n"
	"  }\n"
	"  revision 2019-06-19 {\n"
	"    description \"Initial revision.\";\n"
	"    reference\n"
	"      \"RFC 7868: Cisco\'s Enhanced Interior Gateway Routing Protocol (EIGRP).\";\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * Types specification.\n"
	"   */\n"
	"  typedef autonomous-system {\n"
	"    type uint16 {\n"
	"      range \"1..65535\";\n"
	"    }\n"
	"    description \"Administrative domain identification for a network\";\n"
	"  }\n"
	"\n"
	"  typedef authentication-type {\n"
	"    type enumeration {\n"
	"      enum none {\n"
	"        value 0;\n"
	"        description \"Don\'t authenticate\";\n"
	"      }\n"
	"\n"
	"      enum text {\n"
	"        value 1;\n"
	"        description \"User defined text\";\n"
	"      }\n"
	"\n"
	"      enum md5 {\n"
	"        value 2;\n"
	"        description \"MD5 algorithm\";\n"
	"      }\n"
	"\n"
	"      enum hmac-sha-256 {\n"
	"        value 3;\n"
	"        description \"HMAC SHA256 algorithm\";\n"
	"      }\n"
	"    }\n"
	"    description \"Authentication types\";\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * EIGRP operational data.\n"
	"   */\n"
	"  container eigrpd {\n"
	"    description \"EIGRP daemon configuration\";\n"
	"\n"
	"    list instance {\n"
	"      must \"count(../instance[vrf =current()/vrf]) = 1\";\n"
	"      key \"asn vrf\";\n"
	"      description \"EIGRP autonomous system instance\";\n"
	"      leaf asn {\n"
	"        type autonomous-system;\n"
	"        description \"Autonomous System Number\";\n"
	"      }\n"
	"\n"
	"      leaf vrf {\n"
	"        type frr-vrf:vrf-ref;\n"
	"        description \"Virtual Routing Domain name\";\n"
	"      }\n"
	"\n"
	"      /*\n"
	"       * Configurations.\n"
	"       */\n"
	"      leaf router-id {\n"
	"        type inet:ipv4-address;\n"
	"        description \"Router identification\";\n"
	"      }\n"
	"\n"
	"      leaf-list passive-interface {\n"
	"        type frr-interface:interface-ref;\n"
	"        description \"List of suppressed interfaces\";\n"
	"      }\n"
	"\n"
	"      leaf active-time {\n"
	"        type uint16 {\n"
	"          range \"0..65535\";\n"
	"        }\n"
	"        units seconds;\n"
	"        default 180;\n"
	"        description \"ACTIVE time limit in seconds (0 disables limit)\";\n"
	"      }\n"
	"\n"
	"      leaf variance {\n"
	"        type uint8 {\n"
	"          range \"1..128\";\n"
	"        }\n"
	"        description \"Control load balance variance\";\n"
	"      }\n"
	"\n"
	"      leaf maximum-paths {\n"
	"        type uint8 {\n"
	"          range \"1..32\";\n"
	"        }\n"
	"        description \"Most number of paths to forward packets to\";\n"
	"      }\n"
	"\n"
	"      container metric-weights {\n"
	"        description\n"
	"          \"Metrics and parameters for advertisement.\n"
	"\n"
	"           EIGRP calculates the composite metric with the following formula:\n"
	"\n"
	"               metric = 256 * ({(K1*BW) + [(K2*BW)/(256-LOAD)] + (K3*DELAY)} *\n"
	"                        (K5/(REL+K4)))\n"
	"\n"
	"           Composite calculation:\n"
	"                                                                         K5\n"
	"               metric =[(K1*Net-Throughput) + Latency)+(K6*ExtAttr)] * ------\n"
	"                                                                       K4+Rel\n"
	"\n"
	"           RFC 7868 Sections 5.5 and 5.6.2.5.\";\n"
	"\n"
	"        leaf K1 {\n"
	"          type uint8 {\n"
	"            range \"0..255\";\n"
	"          }\n"
	"          description \"Bandwidth coefficient.\";\n"
	"        }\n"
	"\n"
	"        leaf K2 {\n"
	"          type uint8 {\n"
	"            range \"0..255\";\n"
	"          }\n"
	"          description \"Bandwidth on load coefficient.\";\n"
	"        }\n"
	"\n"
	"        leaf K3 {\n"
	"          type uint8 {\n"
	"            range \"0..255\";\n"
	"          }\n"
	"          description \"Delay or latency-based coefficient.\";\n"
	"        }\n"
	"\n"
	"        leaf K4 {\n"
	"          type uint8 {\n"
	"            range \"0..255\";\n"
	"          }\n"
	"          description \"Link quality coefficient.\";\n"
	"        }\n"
	"\n"
	"        leaf K5 {\n"
	"          type uint8 {\n"
	"            range \"0..255\";\n"
	"          }\n"
	"          description \"Packet loss coefficient.\";\n"
	"        }\n"
	"\n"
	"        leaf K6 {\n"
	"          type uint8 {\n"
	"            range \"0..255\";\n"
	"          }\n"
	"          description \"Jitter coefficient.\";\n"
	"        }\n"
	"      }\n"
	"\n"
	"      leaf-list network {\n"
	"        type inet:ipv4-prefix;\n"
	"        description \"Enable EIGRP on the specific network\";\n"
	"      }\n"
	"\n"
	"      leaf-list neighbor {\n"
	"        type inet:ipv4-address;\n"
	"        description \"Specific EIGRP neighbor\";\n"
	"      }\n"
	"\n"
	"      uses frr-filter:distribute-list-group;\n"
	"\n"
	"      list redistribute {\n"
	"        key \"protocol\";\n"
	"\n"
	"        description \"Redistribute routes learned from other routing protocols\";\n"
	"\n"
	"        leaf protocol {\n"
	"          type frr-route-types:frr-route-types-v4;\n"
	"          must \'. != \"eigrp\"\';\n"
	"          description \"Routing protocol\";\n"
	"        }\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 EIGRP routing\n"
	"             instance\";\n"
	"        }\n"
	"\n"
	"        container metrics {\n"
	"          description \"Metric for the redistributed routes\";\n"
	"\n"
	"          leaf bandwidth {\n"
	"            type uint32 {\n"
	"              range \"1..4294967295\";\n"
	"            }\n"
	"            description \"Bandwidth metric in Kbits per second\";\n"
	"          }\n"
	"\n"
	"          leaf delay {\n"
	"            type uint32 {\n"
	"              range \"0..4294967295\";\n"
	"            }\n"
	"            units microseconds;\n"
	"            description \"Delay metric\";\n"
	"          }\n"
	"\n"
	"          leaf reliability {\n"
	"            type uint32 {\n"
	"              range \"0..255\";\n"
	"            }\n"
	"            description \"Reliability metric\";\n"
	"          }\n"
	"\n"
	"          leaf load {\n"
	"            type uint32 {\n"
	"              range \"1..255\";\n"
	"            }\n"
	"            description \"Effective bandwidth usage\";\n"
	"          }\n"
	"\n"
	"          leaf mtu {\n"
	"            type uint32 {\n"
	"              range \"1..65535\";\n"
	"            }\n"
	"            description \"Path Maximum Transmission Unit\";\n"
	"          }\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"\n"
	"  /*\n"
	"   * EIGRP interface configurations.\n"
	"   */\n"
	"   augment \"/frr-interface:lib/frr-interface:interface\" {\n"
	"     description \"Augments interface configuration with EIGRP parameters\";\n"
	"\n"
	"     container eigrp {\n"
	"       description \"EIGRP interface parameters\";\n"
	"\n"
	"       leaf delay {\n"
	"         type uint32 {\n"
	"           range \"1..16777215\";\n"
	"         }\n"
	"         default 10;\n"
	"         description \"Throughput delay\";\n"
	"       }\n"
	"\n"
	"       leaf bandwidth {\n"
	"         type uint32 {\n"
	"           range \"1..10000000\";\n"
	"         }\n"
	"         default 100000;\n"
	"         description \"Interface bandwidth value\";\n"
	"       }\n"
	"\n"
	"       leaf hello-interval {\n"
	"         type uint16 {\n"
	"           range \"1..65535\";\n"
	"         }\n"
	"         units seconds;\n"
	"         default 5;\n"
	"         description \"Hello packet interval\";\n"
	"       }\n"
	"\n"
	"       leaf hold-time {\n"
	"         type uint16 {\n"
	"           range \"1..65535\";\n"
	"         }\n"
	"         units seconds;\n"
	"         default 15;\n"
	"         description \"Timeout amount to consider neighbor down\";\n"
	"       }\n"
	"\n"
	"       leaf split-horizon {\n"
	"         type boolean;\n"
	"         default true;\n"
	"         description \"Perform split horizon loop preventing technique\";\n"
	"       }\n"
	"\n"
	"       /*\n"
	"        * Per AS configuration.\n"
	"        */\n"
	"       list instance {\n"
	"         key \"asn\";\n"
	"\n"
	"         description \"Autonomous System specific configuration\";\n"
	"\n"
	"         leaf asn {\n"
	"           type autonomous-system;\n"
	"           description \"Autonomous System Number\";\n"
	"         }\n"
	"\n"
	"         leaf-list summarize-addresses {\n"
	"           type inet:ipv4-prefix;\n"
	"           description \"Peform address summarization\";\n"
	"         }\n"
	"\n"
	"         leaf authentication {\n"
	"           type authentication-type;\n"
	"           default \"none\";\n"
	"           description \"Authentication digest algorithm\";\n"
	"         }\n"
	"\n"
	"         leaf keychain {\n"
	"           type string;\n"
	"           description \"FRR key chain name to use with authentication\";\n"
	"         }\n"
	"       }\n"
	"     }\n"
	"   }\n"
	"}\n"
	"";

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