/* 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-interface {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/interface\";\n"
	"  prefix frr-interface;\n"
	"\n"
	"  import frr-vrf {\n"
	"    prefix frr-vrf;\n"
	"  }\n"
	"\n"
	"  import ietf-interfaces {\n"
	"    prefix ietf-if;\n"
	"  }\n"
	"\n"
	"  import ietf-yang-types {\n"
	"    prefix yang;\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 interfaces.\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 2020-02-05 {\n"
	"    description\n"
	"      \"Added operational data\";\n"
	"    reference \"FRRouting\";\n"
	"  }\n"
	"  revision 2019-09-09 {\n"
	"    description\n"
	"      \"Added interface-ref typedef\";\n"
	"    reference \"FRRouting\";\n"
	"  }\n"
	"  revision 2018-03-28 {\n"
	"    description\n"
	"      \"Initial revision.\";\n"
	"    reference \"FRRouting\";\n"
	"  }\n"
	"\n"
	"  identity other {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"Other type\";\n"
	"  }\n"
	"\n"
	"  identity unknown {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"Unknown type\";\n"
	"  }\n"
	"\n"
	"  identity ethernet {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"Ethernet type\";\n"
	"  }\n"
	"\n"
	"  identity exper-ethernet {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"Experimental Ethernet type\";\n"
	"  }\n"
	"\n"
	"  identity loopback {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"Loopback type\";\n"
	"  }\n"
	"\n"
	"  identity pimreg {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"PIMSM Registration.\";\n"
	"  }\n"
	"\n"
	"  identity ipip {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"IPIP Tunnel.\";\n"
	"  }\n"
	"\n"
	"  identity ipip6 {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"IPIP6 Tunnel.\";\n"
	"  }\n"
	"\n"
	"  identity ipgre {\n"
	"    base ietf-if:interface-type;\n"
	"    description\n"
	"      \"GRE over IP.\";\n"
	"  }\n"
	"\n"
	"  typedef interface-ref {\n"
	"    type leafref {\n"
	"      path \"/frr-interface:lib/frr-interface:interface/frr-interface:name\";\n"
	"      require-instance false;\n"
	"    }\n"
	"    description\n"
	"      \"Reference to an interface\";\n"
	"  }\n"
	"\n"
	"  typedef if-flags-type {\n"
	"    type enumeration {\n"
	"      enum \"up\" {\n"
	"        value 1;\n"
	"        description\n"
	"          \"Active and ready to transfer packets.\";\n"
	"      }\n"
	"      enum \"broadcast\" {\n"
	"        value 2;\n"
	"        description\n"
	"          \"Broadcast enabled.\";\n"
	"      }\n"
	"      enum \"debug\" {\n"
	"        value 3;\n"
	"        description\n"
	"          \"Debug mode.\";\n"
	"      }\n"
	"      enum \"loopback\" {\n"
	"        value 4;\n"
	"        description\n"
	"          \"Loopback interface.\";\n"
	"      }\n"
	"      enum \"point-to-point\" {\n"
	"        value 5;\n"
	"        description\n"
	"          \"Point-to-Point link.\";\n"
	"      }\n"
	"      enum \"notrailers\" {\n"
	"        value 6;\n"
	"        description\n"
	"          \"This flag is unused in Linux, but it exists for BSD compatibility.\n"
	"          Avoid use of trailers\";\n"
	"      }\n"
	"      enum \"running\" {\n"
	"        value 7;\n"
	"        description\n"
	"          \"Up and Running.\";\n"
	"      }\n"
	"      enum \"noarp\" {\n"
	"        value 8;\n"
	"        description\n"
	"          \"Can\'t perform address resolution protocol.\";\n"
	"      }\n"
	"      enum \"promisc\" {\n"
	"        value 9;\n"
	"        description\n"
	"          \"Promiscuous mode. Receive all packets.\";\n"
	"      }\n"
	"      enum \"allmulti\" {\n"
	"        value 10;\n"
	"        description\n"
	"          \"Receive all multicast packets.\";\n"
	"      }\n"
	"      enum \"simplex\" {\n"
	"        value 11;\n"
	"        description\n"
	"          \"Does not Rx or Tx at the sametime.\";\n"
	"      }\n"
	"      enum \"link0\" {\n"
	"        value 12;\n"
	"        description\n"
	"          \"Link0.\";\n"
	"      }\n"
	"      enum \"link1\" {\n"
	"        value 13;\n"
	"        description\n"
	"          \"Link1.\";\n"
	"      }\n"
	"      enum \"link2\" {\n"
	"        value 14;\n"
	"        description\n"
	"          \"Link2.\";\n"
	"      }\n"
	"      enum \"multicast\" {\n"
	"        value 15;\n"
	"        description\n"
	"          \"Supports multicast transmission.\";\n"
	"      }\n"
	"      enum \"notransmit\" {\n"
	"        value 16;\n"
	"        description\n"
	"          \"Interface is no transmit mode.\";\n"
	"      }\n"
	"      enum \"nortexch\" {\n"
	"        value 17;\n"
	"        description\n"
	"          \"No routing info exchange.\";\n"
	"      }\n"
	"      enum \"virtual\" {\n"
	"        value 18;\n"
	"        description\n"
	"          \"Virtual interface.\";\n"
	"      }\n"
	"      enum \"ipv4\" {\n"
	"        value 19;\n"
	"        description\n"
	"          \"IPv4 enabled.\";\n"
	"      }\n"
	"      enum \"ipv6\" {\n"
	"        value 20;\n"
	"        description\n"
	"          \"IPv6 enabled.\";\n"
	"      }\n"
	"    }\n"
	"    description\n"
	"      \"Type definition for interface flags.\";\n"
	"  }\n"
	"\n"
	"  grouping if-common-operational {\n"
	"    description\n"
	"      \"Common operational data for interfaces.\";\n"
	"\n"
	"    leaf if-index {\n"
	"      type int32 {\n"
	"        range \"0..2147483647\";\n"
	"      }\n"
	"      description\n"
	"        \"Interface index.\";\n"
	"    }\n"
	"\n"
	"    leaf mtu {\n"
	"      type uint32;\n"
	"      description\n"
	"        \"The size of the largest IPV4 packet that the interface will send.\n"
	"         Normally this will never be larger than 65535; however, some devices\n"
	"         (e.g., vrf) can have larger values\";\n"
	"    }\n"
	"\n"
	"    leaf mtu6 {\n"
	"      type uint32;\n"
	"      description\n"
	"        \"The size of the largest IPV6 packet that the interface\n"
	"         will send.\";\n"
	"    }\n"
	"\n"
	"    leaf speed {\n"
	"      type uint32;\n"
	"      description\n"
	"        \"Interface speed.\";\n"
	"    }\n"
	"\n"
	"    leaf metric {\n"
	"      type uint32;\n"
	"      description\n"
	"        \"Interface metric.\";\n"
	"    }\n"
	"\n"
	"    leaf flags {\n"
	"      type if-flags-type;\n"
	"      description\n"
	"        \"Interface flags.\";\n"
	"    }\n"
	"\n"
	"    leaf type {\n"
	"      type identityref {\n"
	"        base ietf-if:interface-type;\n"
	"      }\n"
	"      description\n"
	"        \"The link type of the interface.\";\n"
	"    }\n"
	"\n"
	"    leaf phy-address {\n"
	"      type yang:mac-address;\n"
	"      description\n"
	"        \"The interface\'s MAC address.\";\n"
	"    }\n"
	"  }\n"
	"\n"
	"  container lib {\n"
	"    description\n"
	"      \"Library container.\";\n"
	"\n"
	"    list interface {\n"
	"      key \"name\";\n"
	"      description\n"
	"        \"Interface.\";\n"
	"      leaf name {\n"
	"        type string;\n"
	"        description\n"
	"          \"Interface name.\";\n"
	"      }\n"
	"\n"
	"      leaf vrf {\n"
	"        type frr-vrf:vrf-ref;\n"
	"        config false;\n"
	"        description\n"
	"          \"VRF this interface is associated with.\";\n"
	"      }\n"
	"\n"
	"      leaf description {\n"
	"        type string;\n"
	"        description\n"
	"          \"Interface description.\";\n"
	"      }\n"
	"\n"
	"      container state {\n"
	"        config false;\n"
	"        description\n"
	"          \"State information for the interface.\";\n"
	"        uses if-common-operational;\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"}\n"
	"";

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