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

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

static const char model[] =
	"// SPDX-License-Identifier: BSD-3-Clause\n"
	"module ietf-srv6-types {\n"
	"  yang-version 1.1;\n"
	"\n"
	"  namespace \"urn:ietf:params:xml:ns:yang:ietf-srv6-types\";\n"
	"  prefix srv6-types;\n"
	"\n"
	"  import ietf-inet-types {\n"
	"    prefix inet;\n"
	"    reference \"RFC 6991: Common YANG Data Types\";\n"
	"  }\n"
	"\n"
	"  organization\n"
	"    \"IETF SPRING Working Group\";\n"
	"  contact\n"
	"    \"WG Web:   <http://tools.ietf.org/wg/spring/>\n"
	"     WG List:  <mailto:spring@ietf.org>\n"
	"\n"
	"     Editor:   Kamran Raza\n"
	"               <mailto:skraza@cisco.com>\n"
	"\n"
	"     Editor:   Jaganbabu Rajamanickam\n"
	"               <maito:jrajaman@cisco.com>\n"
	"\n"
	"     Editor:   Xufeng Liu\n"
	"               <mailto:xufeng.liu.ietf@gmail.com>\n"
	"\n"
	"     Editor:   Zhibo Hu\n"
	"               <mailto:huzhibo@huawei.com>\n"
	"\n"
	"     Editor:   Iftekhar Hussain\n"
	"               <mailto:IHussain@infinera.com>\n"
	"\n"
	"     Editor:   Himanshu Shah\n"
	"               <mailto:hshah@ciena.com>\n"
	"\n"
	"     Editor:   Daniel Voyer\n"
	"               <mailto:daniel.voyer@bell.ca>\n"
	"\n"
	"     Editor:   Hani Elmalky\n"
	"               <mailto:helmalky@google.com>\n"
	"\n"
	"     Editor:   Satoru Matsushima\n"
	"               <mailto:satoru.matsushima@gmail.com>\n"
	"\n"
	"     Editor:   Katsuhiro Horiba\n"
	"               <mailto:katsuhiro.horiba@g.softbank.co.jp>\n"
	"\n"
	"     Editor:   Ahmed AbdelSalam\n"
	"               <mailto:ahabdels@cisco.com>\n"
	"\n"
	"     \";\n"
	"\n"
	"  description\n"
	"    \"This YANG module defines the essential types for the\n"
	"     management of Segment-Routing with IPv6 dataplane (SRv6).\n"
	"\n"
	"     Copyright (c) 2018 IETF Trust and the persons identified as\n"
	"     authors of the code.  All rights reserved.\n"
	"\n"
	"     Redistribution and use in source and binary forms, with or\n"
	"     without modification, is permitted pursuant to, and subject\n"
	"     to the license terms contained in, the Simplified BSD License\n"
	"     set forth in Section 4.c of the IETF Trust\'s Legal Provisions\n"
	"     Relating to IETF Documents\n"
	"     (http://trustee.ietf.org/license-info).\n"
	"\n"
	"     This version of this YANG module is part of RFC XXXX; see the\n"
	"     RFC itself for full legal notices.\";\n"
	"\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"\n"
	"  revision 2024-11-21 {\n"
	"    description\n"
	"      \"Added SID structure definition and \";\n"
	"    reference\n"
	"      \"RFC XXXX: YANG Data Model for SRv6\";\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"  }\n"
	"\n"
	"  revision 2024-03-04 {\n"
	"    description\n"
	"      \"Renamed some of End identities\";\n"
	"    reference\n"
	"      \"RFC XXXX: YANG Data Model for SRv6\";\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"  }\n"
	"\n"
	"  revision 2022-01-14 {\n"
	"    description\n"
	"      \"Alignment with SRv6 net-pgm rev16\";\n"
	"    reference\n"
	"      \"RFC XXXX: YANG Data Model for SRv6\";\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"  }\n"
	"\n"
	"  revision 2019-10-30 {\n"
	"    description\n"
	"      \"Renaming of some types\";\n"
	"    reference\n"
	"      \"RFC XXXX: YANG Data Model for SRv6\";\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"  }\n"
	"\n"
	"  revision 2019-07-08 {\n"
	"    description\n"
	"      \"Alignment with latest SRv6 network programming\";\n"
	"    reference\n"
	"      \"RFC XXXX: YANG Data Model for SRv6\";\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"  }\n"
	"\n"
	"  revision 2018-10-22 {\n"
	"    description\n"
	"      \"Initial revision.\";\n"
	"    reference\n"
	"      \"RFC XXXX: YANG Data Model for SRv6\";\n"
	"     // RFC Editor: replace XXXX with actual RFC number and remove\n"
	"     // this note\n"
	"  }\n"
	"\n"
	"  identity srv6-endpoint-type {\n"
	"    description\n"
	"      \"Base identity from which specific SRv6 Endpoint types are\n"
	"      derived.\";\n"
	"  }\n"
	"\n"
	"  /* Endpoints defined under draft-ietf-spring-\n"
	"   * srv6-network-programming */\n"
	"\n"
	"  identity End {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: no PSP, no USP).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End_PSP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: PSP only).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"  identity End_USP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: USP only).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End_PSP_USP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: PSP and USP).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: no PSP, no USP).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_PSP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: PSP only).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_USP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: USP only).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_PSP_USP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: PSP and USP).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: no PSP, no USP).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T_PSP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: PSP only).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T_USP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: USP only).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T_PSP_USP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: PSP and USP).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.B6.Encaps {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint bound to an SRv6 Policy\n"
	"      where the SRv6 Policy also includes an\n"
	"      IPv6 Source Address A.\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.BM {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint bound to an SR-MPLS Policy\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DX6 {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and cross-connect\n"
	"      to an array of IPv6 adjacencies\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"  identity End.DX4 {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and cross-connect\n"
	"      to an array of IPv4 adjacencies\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DT6 {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and specific\n"
	"      IPv6 table lookup\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DT4 {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and specific\n"
	"      IPv4 table lookup\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DT46 {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and specific IP\n"
	"      (IPv4 or IPv6) table lookup\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DX2 {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and Layer-2\n"
	"      cross-connect to an L2 interface\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DX2V {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and specific\n"
	"      VLAN L2 table lookup\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DT2U {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and specific\n"
	"      unicast MAC L2 table lookup\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.DT2M {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and specific L2 table\n"
	"      flooding\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.B6.Encaps.Red {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"This is a reduced encap variation of the End.B6.Encap\n"
	"      behavior.\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End_PSP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: PSP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"  identity End_USP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: USP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End_PSP_USP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"End function (variant: PSP and USP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_PSP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: PSP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_USP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: USP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.X_PSP_USP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with cross-connect to an array\n"
	"      of layer-3 adjacencies (variant: PSP and USP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with decapsulation and Layer-2\n"
	"      cross-connect to an L2 interface\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T_PSP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: PSP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  identity End.T_USP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: USP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"  identity End.T_PSP_USP_USD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Endpoint with specific IPv6 table lookup\n"
	"      (variant: PSP and USP and USD).\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"  }\n"
	"\n"
	"  /* Endpoints defined under\n"
	"   * draft-ietf-spring-sr-service-programming */\n"
	"\n"
	"  identity End.AN {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining SR Aware function (native)\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.AS {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining Static proxy\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.AD {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining Dynamic proxy\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.AM {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining Masquerading SR proxy\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.AM_NAT {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining Masquerading SR proxy with NAT\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.AM_CACHE {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining Masquerading SR proxy with Caching\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.AM_NAT_CACHE {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"Service-Chaining Masquerading SR proxy with NAT and\n"
	"      Caching\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-sr-service-programming-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  /* Endpoints defined under draft-ietf-dmm-srv6-mobile-uplane */\n"
	"\n"
	"  identity End.MAP {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"DMM End.MAP\";\n"
	"    reference\n"
	"      \"draft-ietf-dmm-srv6-mobile-uplane-17\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.Limit {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"DMM End.Limit\";\n"
	"    reference\n"
	"      \"draft-ietf-dmm-srv6-mobile-uplane-17\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.M.GTP6.D {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"DMM End.M.GTP6.D\";\n"
	"    reference\n"
	"      \"draft-ietf-dmm-srv6-mobile-uplane-17\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.M.GTP6.Di {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"DMM End.M.GTP6.Di\";\n"
	"    reference\n"
	"      \"draft-ietf-dmm-srv6-mobile-uplane-17\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.M.GTP6.E {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"DMM End.M.GTP6.E\";\n"
	"    reference\n"
	"      \"draft-ietf-dmm-srv6-mobile-uplane-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity End.M.GTP4.E {\n"
	"    base srv6-endpoint-type;\n"
	"    description\n"
	"      \"DMM End.M.GTP4.E\";\n"
	"    reference\n"
	"      \"draft-ietf-dmm-srv6-mobile-uplane-05\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"  /* DMM end */\n"
	"\n"
	"  identity srv6-headend-type {\n"
	"    description\n"
	"      \"Base identity from which SRv6 headend rule types are\n"
	"      derived.\";\n"
	"  }\n"
	"\n"
	"  identity H.Encaps {\n"
	"    base srv6-headend-type;\n"
	"    description\n"
	"      \"Headend rule H.Encaps with encapsulated of an SRv6 policy\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-srv6-network-programming-16\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity H.Encaps.Red {\n"
	"    base srv6-headend-type;\n"
	"    description\n"
	"      \"Headend rule H.Encaps.Red with reduced encap of an\n"
	"      SRv6 policy\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-srv6-network-programming-16\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity H.Encaps.L2 {\n"
	"    base srv6-headend-type;\n"
	"    description\n"
	"      \"Headend rule H.Encaps.l2 on the received L2 frame\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-srv6-network-programming-16\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  identity H.Encaps.L2.Red {\n"
	"    base srv6-headend-type;\n"
	"    description\n"
	"      \"Headend rule H.Encaps.L2.Red on the received L2 frame\";\n"
	"    reference\n"
	"      \"draft-ietf-spring-srv6-network-programming-16\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"  identity srv6-security-type {\n"
	"    description\n"
	"      \"Base identity from which SRv6 Security rule types are\n"
	"      derived.\";\n"
	"  }\n"
	"\n"
	"  identity SEC-1 {\n"
	"    base srv6-security-type;\n"
	"    description\n"
	"      \"Support an ACL on the external interface that\n"
	"      drops any traffic with SA or DA in the internal SID space.\n"
	"      (aka Security rule SEC-1)\";\n"
	"  }\n"
	"\n"
	"  identity SEC-2 {\n"
	"    base srv6-security-type;\n"
	"    description\n"
	"      \"Support an ACL that drops any traffic on local SID as DA\n"
	"      from a source SA that does not belong to internal address\n"
	"      or SID space. (aka Security rule SEC-2)\";\n"
	"  }\n"
	"\n"
	"  identity srv6-counter-type {\n"
	"    description\n"
	"      \"Base identity from which SRv6 counter types are derived.\";\n"
	"  }\n"
	"\n"
	"  identity LocalSID {\n"
	"    base srv6-counter-type;\n"
	"    description\n"
	"      \"Count packets and bytes traffic that matched that SID and\n"
	"      was processed successfully (aka Counter CNT-1)\";\n"
	"    reference\n"
	"      \"RFC 8986\";\n"
	"    // RFC Editor: replace with actual RFC number and remove this\n"
	"    // note\n"
	"  }\n"
	"\n"
	"  typedef srv6-sid {\n"
	"    type inet:ipv6-prefix;\n"
	"    description\n"
	"      \"This type defines a SID value in SRv6\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-sid-func-value {\n"
	"    type uint32;\n"
	"    description\n"
	"      \"This is a typedef for SID\'s FUNC value\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-sid-func-value-reserved-type {\n"
	"    type enumeration {\n"
	"      enum invalid {\n"
	"        value 0;\n"
	"        description \"Invalid function value\";\n"
	"      }\n"
	"    }\n"
	"\n"
	"    description \"SRv6 SID\'s FUNC Reserved values\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-locator-name-type {\n"
	"    type string {\n"
	"      length \"1..59\";\n"
	"    }\n"
	"    description \"SRv6 locator name\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-locator-len {\n"
	"    type uint8 {\n"
	"      range \"32 .. 96\";\n"
	"    }\n"
	"    description\n"
	"      \"This type defines an SRv6 locator len with range\n"
	"      constraints\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-locator-block-len {\n"
	"    type uint8;\n"
	"    description\n"
	"      \"This type defines an SRv6 locator block length in bits\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-locator-node-len {\n"
	"    type uint8;\n"
	"    description\n"
	"      \"This type defines an SRv6 locator node length in bits\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-sid-func-len {\n"
	"    type uint8;\n"
	"    description\n"
	"      \"This type defines an SRv6 SID function length in bits\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-sid-arg-len {\n"
	"    type uint8;\n"
	"    description\n"
	"      \"This type defines an SRv6 SID argument length in bits\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-sid-pfxlen {\n"
	"    type uint8 {\n"
	"      range \"32 .. 128\";\n"
	"    }\n"
	"    default 128;\n"
	"    description\n"
	"      \"This type defines a SID prefixlen with range constraints\";\n"
	"  }\n"
	"\n"
	"  typedef sid-alloc-type {\n"
	"    type enumeration {\n"
	"      enum Dynamic {\n"
	"        description\n"
	"          \"SID allocated dynamically.\";\n"
	"      }\n"
	"      enum Explicit {\n"
	"        description\n"
	"          \"SID allocated with explicit (static) value\";\n"
	"      }\n"
	"    }\n"
	"    description\n"
	"      \"Types of sid allocation used.\";\n"
	"  }\n"
	"\n"
	"  identity srv6-sid-owner-type {\n"
	"    description\n"
	"      \"Base identity from which SID owner types are derived.\";\n"
	"  }\n"
	"\n"
	"  identity isis {\n"
	"    base srv6-sid-owner-type;\n"
	"    description \"ISIS\";\n"
	"  }\n"
	"\n"
	"  identity ospfv3 {\n"
	"    base srv6-sid-owner-type;\n"
	"    description \"OSPFv3\";\n"
	"  }\n"
	"\n"
	"  identity bgp {\n"
	"    base srv6-sid-owner-type;\n"
	"    description \"BGP\";\n"
	"  }\n"
	"  identity evpn {\n"
	"    base srv6-sid-owner-type;\n"
	"    description \"EVPN\";\n"
	"  }\n"
	"\n"
	"  identity sr-policy {\n"
	"    base srv6-sid-owner-type;\n"
	"    description \"SR Policy\";\n"
	"  }\n"
	"\n"
	"  identity service-function {\n"
	"    base srv6-sid-owner-type;\n"
	"    description \"SF\";\n"
	"  }\n"
	"\n"
	"  typedef table-id {\n"
	"    type uint32;\n"
	"    description\n"
	"      \"Routing/switching/bridging/VLAN Table Id\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-status-type {\n"
	"    type enumeration {\n"
	"      enum up { value 1; description \"State is Up\"; }\n"
	"      enum down { description \"State is Down\"; }\n"
	"    }\n"
	"    description\n"
	"      \"Status type\";\n"
	"  }\n"
	"\n"
	"  typedef srv6-nexthop-type {\n"
	"    type enumeration {\n"
	"      enum ipv4 { value 1; description \"IPv4 next-hop\"; }\n"
	"      enum ipv6 { description \"IPv6 next-hop\"; }\n"
	"      enum mpls { description \"MPLS next-hop\"; }\n"
	"      enum l2 { description \"L2 next-hop\"; }\n"
	"    }\n"
	"    description\n"
	"      \"Forwarding Next-hop type\";\n"
	"  }\n"
	"\n"
	"  grouping srv6-sid-structure {\n"
	"    description \"SRv6 SID structure grouping\";\n"
	"\n"
	"    leaf locator-block-length {\n"
	"      type srv6-types:srv6-locator-block-len;\n"
	"      description \"SRv6 SID locator block length in bits\";\n"
	"    }\n"
	"    leaf locator-node-length {\n"
	"      type srv6-types:srv6-locator-node-len;\n"
	"      description \"SRv6 SID locator node length in bits\";\n"
	"    }\n"
	"    leaf function-length {\n"
	"      type srv6-types:srv6-sid-func-len;\n"
	"      description \"SRv6 SID function length in bits\";\n"
	"    }\n"
	"    leaf argument-length {\n"
	"      type srv6-types:srv6-sid-arg-len;\n"
	"      description \"SRv6 SID argument length in bits\";\n"
	"    }\n"
	"  }\n"
	"\n"
	"  grouping srv6-sid-type-b-config {\n"
	"    description \"SRv6 SID Type-B config grouping\";\n"
	"\n"
	"    leaf sid-behavior {\n"
	"      type identityref {\n"
	"        base srv6-types:srv6-endpoint-type;\n"
	"      }\n"
	"      description \"SRv6 SID behavior\";\n"
	"    }\n"
	"\n"
	"    container sid-structure {\n"
	"      description \"SRv6 SID structure\";\n"
	"      uses srv6-types:srv6-sid-structure;\n"
	"    }\n"
	"  }\n"
	"} // module";

static struct yang_module_embed embed = {
	.mod_name = "ietf-srv6-types",
	.mod_rev = "2024-11-21",
	.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);
}
