/src/frr/yang/frr-gmp.yang.c
Line | Count | Source |
1 | | /* autogenerated by embedmodel.py. DO NOT EDIT */ |
2 | | |
3 | | #include <zebra.h> |
4 | | #include "yang.h" |
5 | | |
6 | | static const char model[] = |
7 | | "// SPDX-License-Identifier: BSD-2-Clause\n" |
8 | | "module frr-gmp {\n" |
9 | | " yang-version \"1.1\";\n" |
10 | | " namespace \"http://frrouting.org/yang/gmp\";\n" |
11 | | "\n" |
12 | | " prefix frr-gmp;\n" |
13 | | "\n" |
14 | | " import frr-routing {\n" |
15 | | " prefix \"frr-rt\";\n" |
16 | | " }\n" |
17 | | "\n" |
18 | | " import ietf-routing-types {\n" |
19 | | " prefix \"rt-types\";\n" |
20 | | " }\n" |
21 | | "\n" |
22 | | " import ietf-inet-types {\n" |
23 | | " prefix \"inet\";\n" |
24 | | " }\n" |
25 | | "\n" |
26 | | " import frr-interface {\n" |
27 | | " prefix frr-interface;\n" |
28 | | " }\n" |
29 | | "\n" |
30 | | " organization\n" |
31 | | " \"FRRouting\";\n" |
32 | | "\n" |
33 | | " contact\n" |
34 | | " \"FRR Users List: <mailto:frog@lists.frrouting.org>\n" |
35 | | " FRR Development List: <mailto:dev@lists.frrouting.org>\";\n" |
36 | | "\n" |
37 | | " description\n" |
38 | | " \"This module defines a model for managing FRR pimd daemon.\n" |
39 | | "\n" |
40 | | " Copyright 2020 FRRouting\n" |
41 | | "\n" |
42 | | " Redistribution and use in source and binary forms, with or without\n" |
43 | | " modification, are permitted provided that the following conditions\n" |
44 | | " are met:\n" |
45 | | "\n" |
46 | | " 1. Redistributions of source code must retain the above copyright notice,\n" |
47 | | " this list of conditions and the following disclaimer.\n" |
48 | | "\n" |
49 | | " 2. Redistributions in binary form must reproduce the above copyright\n" |
50 | | " notice, this list of conditions and the following disclaimer in the\n" |
51 | | " documentation and/or other materials provided with the distribution.\n" |
52 | | "\n" |
53 | | " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" |
54 | | " \\\"AS IS\\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" |
55 | | " LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" |
56 | | " A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n" |
57 | | " HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n" |
58 | | " SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n" |
59 | | " LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n" |
60 | | " DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n" |
61 | | " THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n" |
62 | | " (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n" |
63 | | " OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\";\n" |
64 | | "\n" |
65 | | " revision 2021-11-22 {\n" |
66 | | " description\n" |
67 | | " \"Initial revision.\";\n" |
68 | | " reference\n" |
69 | | " \"RFC 2236: IGMP v2.\n" |
70 | | " RFC 3376: IGMP v3.\n" |
71 | | " RFC 2710: MLD.\n" |
72 | | " RFC 3810: MLD v2.\";\n" |
73 | | " }\n" |
74 | | "\n" |
75 | | " grouping interface-config-attributes {\n" |
76 | | " description\n" |
77 | | " \"Configuration IGMP/MLD attributes applied to the interface level.\";\n" |
78 | | "\n" |
79 | | " leaf enable {\n" |
80 | | " type boolean;\n" |
81 | | " default \"false\";\n" |
82 | | " description\n" |
83 | | " \"Enable IGMP/MLD flag on the interface.\";\n" |
84 | | " }\n" |
85 | | "\n" |
86 | | " leaf igmp-version {\n" |
87 | | " when \"../frr-gmp:address-family = \'frr-rt:ipv4\'\" {\n" |
88 | | " description\n" |
89 | | " \"Only applicable to IPv4 address family.\";\n" |
90 | | " }\n" |
91 | | " type uint8 {\n" |
92 | | " range \"2..3\";\n" |
93 | | " }\n" |
94 | | " description\n" |
95 | | " \"IGMP version.\";\n" |
96 | | " }\n" |
97 | | "\n" |
98 | | " leaf mld-version {\n" |
99 | | " when \"../frr-gmp:address-family = \'frr-rt:ipv6\'\" {\n" |
100 | | " description\n" |
101 | | " \"Only applicable to IPv6 address family.\";\n" |
102 | | " }\n" |
103 | | " type uint8 {\n" |
104 | | " range \"1..2\";\n" |
105 | | " }\n" |
106 | | " default \"2\";\n" |
107 | | " description\n" |
108 | | " \"MLD version.\";\n" |
109 | | " }\n" |
110 | | "\n" |
111 | | " leaf query-interval {\n" |
112 | | " type uint16 {\n" |
113 | | " range \"1..max\";\n" |
114 | | " }\n" |
115 | | " units seconds;\n" |
116 | | " must \". * 10 >= ../query-max-response-time\";\n" |
117 | | " default \"125\";\n" |
118 | | " description\n" |
119 | | " \"The Query Interval is the interval between General Queries\n" |
120 | | " sent by the Querier.\";\n" |
121 | | " }\n" |
122 | | "\n" |
123 | | " leaf query-max-response-time {\n" |
124 | | " type uint16 {\n" |
125 | | " range \"1..max\";\n" |
126 | | " }\n" |
127 | | " units deciseconds;\n" |
128 | | " must \". <= ../query-interval * 10\";\n" |
129 | | " default \"100\";\n" |
130 | | " description\n" |
131 | | " \"Query maximum response time specifies the maximum time\n" |
132 | | " allowed before sending a responding report.\";\n" |
133 | | " }\n" |
134 | | "\n" |
135 | | " leaf last-member-query-interval {\n" |
136 | | " type uint16 {\n" |
137 | | " range \"1..max\";\n" |
138 | | " }\n" |
139 | | " units deciseconds;\n" |
140 | | " default \"10\";\n" |
141 | | " description\n" |
142 | | " \"Last Member Query Interval, which may be tuned to modify\n" |
143 | | " the leave latency of the network.\";\n" |
144 | | " }\n" |
145 | | "\n" |
146 | | " leaf robustness-variable {\n" |
147 | | " type uint8 {\n" |
148 | | " range \"1..max\";\n" |
149 | | " }\n" |
150 | | " default \"2\";\n" |
151 | | " description\n" |
152 | | " \"Querier\'s Robustness Variable allows tuning for the\n" |
153 | | " expected packet loss on a network.\";\n" |
154 | | " }\n" |
155 | | "\n" |
156 | | " list static-group {\n" |
157 | | " key \"group-addr source-addr\";\n" |
158 | | " description\n" |
159 | | " \"A static multicast route, (*,G) or (S,G).\n" |
160 | | " The version of IGMP must be 3 to support (S,G).\";\n" |
161 | | "\n" |
162 | | " leaf group-addr {\n" |
163 | | " type rt-types:ip-multicast-group-address;\n" |
164 | | " description\n" |
165 | | " \"Multicast group address.\";\n" |
166 | | " }\n" |
167 | | " leaf source-addr {\n" |
168 | | " type inet:ip-address;\n" |
169 | | " description\n" |
170 | | " \"Multicast source address.\";\n" |
171 | | " }\n" |
172 | | " }\n" |
173 | | " } // interface-config-attributes\n" |
174 | | "\n" |
175 | | " /*\n" |
176 | | " * Per-interface configuration data\n" |
177 | | " */\n" |
178 | | " augment \"/frr-interface:lib/frr-interface:interface\" {\n" |
179 | | " container gmp {\n" |
180 | | " list address-family {\n" |
181 | | " key \"address-family\";\n" |
182 | | " description\n" |
183 | | " \"Each list entry for one address family.\";\n" |
184 | | " uses frr-rt:address-family;\n" |
185 | | " uses interface-config-attributes;\n" |
186 | | " } //address-family\n" |
187 | | " }\n" |
188 | | " }\n" |
189 | | "}\n" |
190 | | ""; |
191 | | |
192 | | static struct yang_module_embed embed = { |
193 | | .mod_name = "frr-gmp", |
194 | | .mod_rev = "2021-11-22", |
195 | | .sub_mod_name = "", |
196 | | .sub_mod_rev = "", |
197 | | .data = model, |
198 | | .format = LYS_IN_YANG, |
199 | | }; |
200 | | |
201 | | static void embed_register(void) __attribute__((_CONSTRUCTOR(2000))); |
202 | | static void embed_register(void) |
203 | 2 | { |
204 | 2 | yang_module_embed(&embed); |
205 | 2 | } |