2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 module neutron-lbaasv2 {
12 namespace "urn:opendaylight:neutron-lbaasv2";
14 prefix neutron-lbaasv2;
16 import ietf-yang-types { prefix "yang"; }
17 // It requires rfc6991 (revision 2013-07-15), but odl don't have it, so this patch verify build will fail.
18 import ietf-inet-types { prefix "inet"; revision-date 2010-09-24; }
19 import neutron-attrs { prefix "attrs"; }
21 organization "OpenDaylight Neutron Group";
23 contact "Kiran Sreenivasa <kkoushik@brocade.com>";
25 description "This YANG module defines LBaaSV2.0 objects that are used by Openstack
26 Ice House Neutron YANG modules.";
28 revision "2014-10-02" {
30 "Initial version of LBaaSV2.0 objects used by OpenStack Ice House Neutron
34 grouping loadbalancer-attrs {
35 description "LBaaSV2.0 load balancer attributes.";
38 description "Load balancer description.";
43 description "The IP address of the VIP.";
47 description "The ID of the subnet on which to allocate the VIP address.";
50 grouping listener-attrs {
51 description "LBaaSV2.0 listener attributes.";
54 description "ID of default pool. Must have compatible protocol with listener.";
58 description "The administrative state of the listner, which is up (true) or
64 description "Detailed description of the listener.";
67 description "The protocol the front end listens for.";
70 description "HTTP protocol.";
73 description "HTTPS protocol.";
76 description "TCP protocol.";
81 description "The port on which the front end listens.";
86 leaf-list loadbalancers {
88 description "List of loadbalancers on which this listener is provisioned.";
90 leaf connection-limit {
91 description "Maximum connections this load balancer can have. Default is infinite.";
101 description "The administrative state of the pool, which is up (true) or
106 description "Detailed description of the listener.";
109 description "The protocol the front end listens for.";
112 description "HTTP protocol.";
115 description "HTTPS protocol.";
118 description "TCP protocol.";
124 description "The load-balancer algorithm, which is round-robin,
125 least-connections, and so on. This value, which must be supported,
126 is dependent on the load-balancer provider. Round-robin
129 leaf-list healthmonitor-ids {
131 description "List of healthmonitors associated with this pool.";
135 description "List of members that belong to the pool.";
137 leaf-list listeners {
139 description "List of listeners that belong to the pool.";
141 container session-persistence {
142 description "The session persistence algorithm. This algorithm is a
143 dictionary with type and cookie_name keys.";
146 description "Cookie Name.";
150 description "Cookie type.";
154 grouping member-attrs {
157 description "The unique ID for the member.";
161 description "Owner of the member. Only an administrative user can specify
162 a tenant ID other than its own.";
166 description "Subnet in which to access this member.";
169 type inet:ip-address;
170 description "The IP address of the member.";
173 description "The port on which the application is hosted.";
179 description "Weight of member.";
185 leaf admin-state-up {
187 description "The administrative state of the member, which is up (true) or
192 grouping healthmonitor-attrs {
195 description "The unique ID for the healthmonitor.";
199 description "Owner of the VIP. Only an administrative user can specify
200 a tenant ID other than its own.";
203 description "The type of probe, which is PING, TCP, HTTP, or HTTPS, that
204 is sent by the load balancer to verify the member state.";
207 description "HTTP protocol.";
210 description "HTTPS protocol.";
213 description "TCP protocol.";
216 description "ICMP protocol.";
220 leaf admin-state-up {
222 description "The administrative state of the VPI, which is up (true) or
227 description "The time, in seconds, between sending probes to members.";
231 description "The maximum number of seconds for a monitor to wait for a
232 connection to be established before it times out. This value must be
233 less than the delay value.";
237 description "Number of allowed connection failures before changing the
238 status of the member to INACTIVE.";
245 description "The HTTP method that the monitor uses for requests.";
250 description "The HTTP path of the request sent by the monitor to test
251 the health of a member. Must be a string beginning with a forward
254 leaf expected-codes {
256 description "Expected HTTP codes for a passing HTTP(S) monitor.";
261 description "List of pools associated with this healthmonitor.";
264 grouping lbaas-attributes {
265 container loadbalancer {
266 description "Container for Loadbalancers.";
269 uses attrs:base-attributes;
270 uses attrs:admin-attributes;
271 uses loadbalancer-attrs;
272 description "List of Loadbalancers.";
276 description "Container for Listeners.";
279 uses attrs:base-attributes;
281 description "List of Listeners";
285 description "Container for LBaaSV2.0 pools.";
288 uses attrs:base-attributes;
290 description "List of Pools";
292 description "Container for pool members.";
296 description "List of members.";
301 container healthmonitor {
302 description "Container for LBaaSV2.0 healthmonitors.";
303 list healthmonitors {
305 uses healthmonitor-attrs;
306 description "List of healthmonitors.";