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

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

static const char model[] =
	"module frr-bgp-filter {\n"
	"  yang-version 1.1;\n"
	"  namespace \"http://frrouting.org/yang/bgp-filter\";\n"
	"  prefix frr-bgp-filter;\n"
	"\n"
	"  import frr-filter {\n"
	"    prefix frr-filter;\n"
	"  }\n"
	"\n"
	"  import ietf-routing-types {\n"
	"    prefix rt-types;\n"
	"  }\n"
	"\n"
	"  organization\n"
	"    \"Free Range Routing\";\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 filter settings\";\n"
	"\n"
	"  revision 2020-01-15 {\n"
	"    description\n"
	"      \"Initial revision\";\n"
	"\n"
	"    reference\n"
	"      \"FRRouting\";\n"
	"  }\n"
	"\n"
	"  typedef list-sequence {\n"
	"    type uint32 {\n"
	"      range \"1..4294967295\";\n"
	"    }\n"
	"    description\n"
	"      \"List instance priority (low number means higher priority)\";\n"
	"  }\n"
	"\n"
	"  typedef list-action {\n"
	"    type enumeration {\n"
	"      enum \"deny\" {\n"
	"        value 0;\n"
	"        description\n"
	"          \"Deny an entry\";\n"
	"      }\n"
	"      enum \"permit\" {\n"
	"        value 1;\n"
	"        description\n"
	"          \"Accept an entry\";\n"
	"      }\n"
	"    }\n"
	"    description\n"
	"      \"Return action on match\";\n"
	"  }\n"
	"\n"
	"  typedef bgp-list-name {\n"
	"    type string;\n"
	"    description\n"
	"      \"List name\";\n"
	"  }\n"
	"\n"
	"  typedef community-string {\n"
	"    type string {\n"
	"      pattern \"(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)|((6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|(local-AS)|(no-advertise)|(no-export)|(internet)\";\n"
	"    }\n"
	"    description\n"
	"      \"The BGP community string\";\n"
	"  }\n"
	"\n"
	"  typedef large-community-string {\n"
	"    type string {\n"
	"      pattern \"(429496729[0-5]|42949672[0-8][0-9]|4294967[01][0-9]{2}|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|[1-3][0-9]{9}|[1-9][0-9]{0,8}|0)|(429496729[0-5]|42949672[0-8][0-9]|4294967[01][0-9]{2}|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):(429496729[0-5]|42949672[0-8][0-9]|4294967[01][0-9]{2}|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|[1-3][0-9]{9}|[1-9][0-9]{0,8}|0)|(429496729[0-5]|42949672[0-8][0-9]|4294967[01][0-9]{2}|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):(429496729[0-5]|42949672[0-8][0-9]|4294967[01][0-9]{2}|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):(429496729[0-5]|42949672[0-8][0-9]|4294967[01][0-9]{2}|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|[1-3][0-9]{9}|[1-9][0-9]{0,8}|0)\";\n"
	"    }\n"
	"    description\n"
	"      \"The BGP large-community string\";\n"
	"  }\n"
	"\n"
	"  augment \"/frr-filter:lib\" {\n"
	"    description\n"
	"      \"Augments the FRR filter library with community-list support\";\n"
	"\n"
	"    list community-list {\n"
	"      key \"name\";\n"
	"      description\n"
	"        \"Community-list instance\";\n"
	"      leaf name {\n"
	"        type string;\n"
	"        description\n"
	"          \"Name of the community-list instance\";\n"
	"      }\n"
	"\n"
	"      list entry {\n"
	"        key \"sequence\";\n"
	"        description\n"
	"          \"Community-list entry\";\n"
	"        leaf sequence {\n"
	"          type list-sequence;\n"
	"          description\n"
	"            \"Sequence number for the community-list entry\";\n"
	"        }\n"
	"\n"
	"        leaf action {\n"
	"          type list-action;\n"
	"          description\n"
	"            \"Action to be taken when the community matches the entry\";\n"
	"        }\n"
	"\n"
	"        leaf type {\n"
	"          type enumeration {\n"
	"            enum \"community-list-standard\" {\n"
	"              value 0;\n"
	"              description\n"
	"                \"Standard community-list name/identifier\";\n"
	"            }\n"
	"            enum \"community-list-extended\" {\n"
	"              value 1;\n"
	"              description\n"
	"                \"Expanded community-list name/identifier\";\n"
	"            }\n"
	"          }\n"
	"          mandatory true;\n"
	"          description\n"
	"            \"Community-list instance name/identifier\";\n"
	"        }\n"
	"\n"
	"        choice community-string {\n"
	"          description\n"
	"            \"Community string\";\n"
	"          case standard {\n"
	"            when \"./type = \'community-list-standard\'\";\n"
	"            leaf-list standard-community-string {\n"
	"              type community-string;\n"
	"              description\n"
	"                \"Community string\";\n"
	"            }\n"
	"          }\n"
	"\n"
	"          case expanded {\n"
	"            when \"./type = \'community-list-extended\'\";\n"
	"            leaf expanded-community-string {\n"
	"              type string;\n"
	"              description\n"
	"                \"Community string reg-ex\";\n"
	"            }\n"
	"          }\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"\n"
	"    list large-community-list {\n"
	"      key \"name\";\n"
	"      description\n"
	"        \"Large community-list instance\";\n"
	"      leaf name {\n"
	"        type string;\n"
	"        description\n"
	"          \"Large community-list instance name\";\n"
	"      }\n"
	"\n"
	"      list entry {\n"
	"        key \"sequence\";\n"
	"        description\n"
	"          \"Large community-list entry\";\n"
	"        leaf sequence {\n"
	"          type list-sequence;\n"
	"          description\n"
	"            \"Sequence number for the large community-list entry\";\n"
	"        }\n"
	"\n"
	"        leaf action {\n"
	"          type list-action;\n"
	"          description\n"
	"            \"Action to be taken when the large community matches the entry\";\n"
	"        }\n"
	"\n"
	"        leaf type {\n"
	"          type enumeration {\n"
	"            enum \"large-community-list-standard-id\" {\n"
	"              value 0;\n"
	"              description\n"
	"                \"Standard large-community-list identifier\";\n"
	"            }\n"
	"            enum \"large-community-list-extended-id\" {\n"
	"              value 1;\n"
	"              description\n"
	"                \"Expanded large-community-list identifier\";\n"
	"            }\n"
	"            enum \"large-community-list-standard-name\" {\n"
	"              value 2;\n"
	"              description\n"
	"                \"Standard large-community-list name\";\n"
	"            }\n"
	"            enum \"large-community-list-extended-name\" {\n"
	"              value 3;\n"
	"              description\n"
	"                \"Expanded large-community-list name\";\n"
	"            }\n"
	"          }\n"
	"          mandatory true;\n"
	"          description\n"
	"            \"Large community-list instance name/identifier\";\n"
	"        }\n"
	"\n"
	"        choice large-community-string {\n"
	"          description\n"
	"            \"Large community string\";\n"
	"          case standard {\n"
	"            when \"./type = \'large-community-list-standard-id\' or \"\n"
	"               + \"./type = \'large-community-list-standard-name\'\";\n"
	"            leaf-list standard-large-community-string {\n"
	"              type large-community-string;\n"
	"              description\n"
	"                \"Large community string\";\n"
	"            }\n"
	"          }\n"
	"\n"
	"          case expanded {\n"
	"            when \"./type = \'large-community-list-extended-id\' or \"\n"
	"               + \"./type = \'large-community-list-extended-name\'\";\n"
	"            leaf expanded-large-community-string {\n"
	"              type string;\n"
	"              description\n"
	"                \"Large community string reg-ex\";\n"
	"            }\n"
	"          }\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"\n"
	"    list extcommunity-list {\n"
	"      key \"name\";\n"
	"      description\n"
	"        \"Extcommunity-list instance\";\n"
	"      leaf name {\n"
	"        type string;\n"
	"        description\n"
	"          \"Extcommunity-list instance name\";\n"
	"      }\n"
	"\n"
	"      list entry {\n"
	"        key \"sequence\";\n"
	"        description\n"
	"          \"Extcommunity-list entry\";\n"
	"        leaf sequence {\n"
	"          type list-sequence;\n"
	"          description\n"
	"            \"Sequence number for the extcommunity-list entry\";\n"
	"        }\n"
	"\n"
	"        leaf action {\n"
	"          type list-action;\n"
	"          description\n"
	"            \"Action to be taken when the extcommunity matches the entry\";\n"
	"        }\n"
	"\n"
	"        leaf type {\n"
	"          type enumeration {\n"
	"            enum \"extcommunity-list-standard-id\" {\n"
	"              value 0;\n"
	"              description\n"
	"                \"Standard extcommunity-list identifier\";\n"
	"            }\n"
	"            enum \"extcommunity-list-extended-id\" {\n"
	"              value 1;\n"
	"              description\n"
	"                \"Expanded extcommunity-list identifier\";\n"
	"            }\n"
	"            enum \"extcommunity-list-standard-name\" {\n"
	"              value 2;\n"
	"              description\n"
	"                \"Standard extcommunity-list name\";\n"
	"            }\n"
	"            enum \"extcommunity-list-extended-name\" {\n"
	"              value 3;\n"
	"              description\n"
	"                \"Expanded extcommunity-list name\";\n"
	"            }\n"
	"          }\n"
	"          mandatory true;\n"
	"          description\n"
	"            \"Extcommunity-list instance name/identifier\";\n"
	"        }\n"
	"\n"
	"        choice extcommunity-string {\n"
	"          description\n"
	"            \"Extcommunity string\";\n"
	"          case standard {\n"
	"            when \"./type = \'extcommunity-list-standard-id\' or \"\n"
	"               + \"./type = \'extcommunity-list-standard-name\'\";\n"
	"            choice standard-extcommunity-string {\n"
	"              description\n"
	"                \"Value of the ext-community\";\n"
	"              case extcommunity-rt {\n"
	"                description\n"
	"                  \"Set BGP ext-community route-target attribute\";\n"
	"                leaf-list extcommunity-rt {\n"
	"                  type rt-types:route-target;\n"
	"                  description\n"
	"                    \"List of route-target values for the ext-community RT attribute\";\n"
	"                }\n"
	"              }\n"
	"\n"
	"              case extcommunity-soo {\n"
	"                description\n"
	"                  \"Set BGP ext-community site-of-origin attribute\";\n"
	"                leaf-list extcommunity-soo {\n"
	"                  type rt-types:route-target;\n"
	"                  description\n"
	"                    \"List of route-target values for the ext-community SOO attribute\";\n"
	"                }\n"
	"              }\n"
	"            }\n"
	"          }\n"
	"\n"
	"          case expanded {\n"
	"            when \"./type = \'extcommunity-list-extended-id\' or \"\n"
	"               + \"./type = \'extcommunity-list-extended-name\'\";\n"
	"            leaf expanded-extcommunity-string {\n"
	"              type string;\n"
	"              description\n"
	"                \"Extcommunity string reg-ex\";\n"
	"            }\n"
	"          }\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"\n"
	"    list as-path-list {\n"
	"      key \"name\";\n"
	"      description\n"
	"        \"AS-path access-list instance\";\n"
	"      leaf name {\n"
	"        type string;\n"
	"        description\n"
	"          \"AS-path access-list instance name/identifier\";\n"
	"      }\n"
	"\n"
	"      list entry {\n"
	"        key \"sequence\";\n"
	"        description\n"
	"          \"AS-path access-list entry\";\n"
	"        leaf sequence {\n"
	"          type list-sequence;\n"
	"          description\n"
	"            \"Sequence number for the AS-path access-list entry\";\n"
	"        }\n"
	"\n"
	"        leaf action {\n"
	"          type list-action;\n"
	"          description\n"
	"            \"Action to be taken when the AS-path matches the entry\";\n"
	"        }\n"
	"\n"
	"        leaf as-path {\n"
	"          type string;\n"
	"          description\n"
	"            \"AS-path access-list string reg-ex\";\n"
	"        }\n"
	"      }\n"
	"    }\n"
	"  }\n"
	"}\n"
	"";

static struct yang_module_embed embed = {
	.mod_name = "frr-bgp-filter",
	.mod_rev = "2020-01-15",
	.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);
}
