All Downloads are FREE. Search and download functionalities are using the official Maven repository.

[email protected] Maven / Gradle / Ivy

There is a newer version: 0.16.4
Show newest version
/*
 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */
module neutron-lbaasv2 {

    yang-version 1;

    namespace "urn:opendaylight:neutron-lbaasv2";

    prefix neutron-lbaasv2;

    import ietf-yang-types { prefix "yang"; }
    import ietf-inet-types { prefix "inet"; revision-date 2013-07-15; }
    import neutron-attrs { prefix "attrs"; }
    import neutron-constants { prefix "constants"; }

    organization "OpenDaylight Neutron Group";

    contact "Kiran Sreenivasa ";

    description "This YANG module defines OpenStack Neutron LBaaSV2.0 modules";

    revision "2015-07-12" {
        description
                "OpenDaylight Beryllium release";
    }

    grouping loadbalancer-attributes {
        description "LBaaSV2.0 load balancer attributes.";
        leaf vip-address {
            type inet:ip-address;
            description "The IP address of the VIP.";
        }
        leaf vip-subnet-id {
            type yang:uuid;
            description "The ID of the subnet on which to allocate the VIP address.";
        }
    }
    grouping listener-attributes {
        description "LBaaSV2.0 listener attributes.";
        leaf default-pool-id {
            type yang:uuid;
            description "ID of default pool. Must have compatible protocol with listener.";
        }
        leaf admin-state-up {
            type boolean;
            description "The administrative state of the listener, which is up (true) or
                        down (false).";
            default "true";
        }
        leaf protocol {
            description "The protocol the front end listens for.";
            type identityref {
                base "constants:protocol-base";
            }
        }
        leaf protocol-port {
            description "The port on which the front end listens.";
            type uint16 {
                range 0..65535;
            }
        }
        leaf-list loadbalancers {
            type yang:uuid;
            description "List of loadbalancers on which this listener is provisioned.";
        }
        leaf connection-limit {
            description "Maximum connections this load balancer can have. Default is infinite.";
            type int32 {
                range -1..65535;
            }
            default "-1";
        }
    }
    grouping pool-attributes {
        leaf admin-state-up {
            type boolean;
            description "The administrative state of the pool, which is up (true) or
                        down (false).";
        }
        leaf protocol {
            description "The protocol the front end listens for.";
            type identityref {
                base "constants:protocol-base";
            }
        }
        leaf lb-algorithm {
            type string;
            description "The load-balancer algorithm, which is round-robin,
                least-connections, and so on. This value, which must be supported,
                is dependent on the load-balancer provider. Round-robin
                must be supported.";
        }
        leaf healthmonitor-id {
            type yang:uuid;
            description "The healthmonitor associated with this pool.";
        }
        leaf-list listeners {
            type yang:uuid;
            description "List of listeners that belong to the pool.";
        }
        container session-persistence {
            description "The session persistence algorithm. This algorithm is a
                dictionary with type and cookie_name keys.";
            leaf cookie-name {
                type string;
                description "Cookie Name.";
            }
            leaf type {
                type string;
                description "Cookie type.";
            }
        }
    }
    grouping member-attributes {
        leaf subnet-id {
            type yang:uuid;
            description "Subnet in which to access this member.";
        }
        leaf address {
            type inet:ip-address;
            description "The IP address of the member.";
        }
        leaf protocol-port {
            description "The port on which the application is hosted.";
            type uint16 {
                range 0..65535;
            }
        }
        leaf weight {
            description "Weight of member.";
            type uint16 {
                range 0..256;
            }
            default "1";
        }
        leaf admin-state-up {
            type boolean;
            description "The administrative state of the member, which is up (true) or
                        down (false).";
            default "true";
        }
    }
    grouping healthmonitor-attributes {
        leaf type {
            description "The type of probe, which is PING, TCP, HTTP, or HTTPS, that
                is sent by the load balancer to verify the member state.";
            type identityref {
                base "constants:probe-base";
            }
        }
        leaf admin-state-up {
            type boolean;
            description "The administrative state of the VPI, which is up (true) or
                        down (false).";
            default "true";
        }
        leaf delay {
            description "The time, in seconds, between sending probes to members.";
            type uint32;
        }
        leaf timeout {
            description "The maximum number of seconds for a monitor to wait for a
                connection to be established before it times out. This value must be
                less than the delay value.";
            type uint32;
        }
        leaf max-retries {
            description "Number of allowed connection failures before changing the
                status of the member to INACTIVE.";
            type uint16 {
                range 1..10;
            }
        }
        leaf http-method {
            type string;
            description "The HTTP method that the monitor uses for requests.";
            default "";
        }
        leaf url-path {
            type string;
            description "The HTTP path of the request sent by the monitor to test
                the health of a member. Must be a string beginning with a forward
                slash (/).";
        }
        leaf expected-codes {
            type string;
            description "Expected HTTP codes for a passing HTTP(S) monitor.";
            default "";
        }
        leaf-list pools {
            type yang:uuid;
            description "List of pools associated with this healthmonitor.";
        }
    }
    grouping lbaas-attributes {
        container loadbalancers {
            description "Container for Loadbalancers.";
            list loadbalancer {
                key "uuid";
                uses attrs:base-attributes;
                uses attrs:admin-attributes;
                uses loadbalancer-attributes;
                description "List of Loadbalancers.";
            }
        }
        container listeners {
            description "Container for Listeners.";
            list listener {
                key "uuid";
                uses attrs:base-attributes;
                uses listener-attributes;
                description "List of Listeners";
            }
        }
        container pools {
            description "Container for LBaaSV2.0 pools.";
            list pool {
                key "uuid";
                uses attrs:base-attributes;
                uses pool-attributes;
                description "List of Pools";
                container members {
                    description "Container for pool members.";
                    list member {
                        key "uuid";
                        uses attrs:id-attributes;
                        uses member-attributes;
                        description "List of members.";
                    }
                }
            }
        }
        container healthmonitors {
            description "Container for LBaaSV2.0 healthmonitors.";
            list healthmonitor {
                key "uuid";
                uses attrs:id-attributes;
                uses healthmonitor-attributes;
                description "List of healthmonitors.";
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy