Reversion yang model
[neutron.git] / model / src / main / yang / neutron-subnets.yang
1 /*
2  * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 module neutron-subnets {
9
10     yang-version 1;
11
12     namespace "urn:opendaylight:neutron-subnets";
13
14     prefix neutron-subnets;
15
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"; }
20     import neutron-constants { prefix "constants"; }
21
22     organization "OpenDaylight Neutron Group";
23
24     contact "J. Gregory Hall <ghall@brocade.com>, Kiran Sreenivasa <kkoushik@brocade.com>";
25
26     description "This YANG module defines Openstack Neutron Subnets model";
27
28     revision "2015-07-12" {
29         description
30                 "OpenDaylight Beryllium release";
31     }
32
33     grouping subnet-attributes {
34         leaf network-id {
35             type yang:uuid;
36             description "network this subnet is associated with.";
37         }
38         leaf ip-version {
39             description "IP version";
40             type identityref {
41                 base "constants:ip-version-base";
42             }
43         }
44         leaf cidr {
45             type string;
46             description "cidr representing IP range for this subnet, based on IP version";
47         }
48         leaf gateway-ip {
49             type inet:ip-address;
50             description "default gateway used by devices in this subnet";
51         }
52         leaf-list dns-nameservers {
53             type inet:ip-address;
54             description "DNS name servers used by hosts in this subnet.";
55             // neutron subnet-create test-net1 40.0.0.0/24 --dns-nameservers list=true 8.8.8.7 8.8.8.8        }        }
56         }
57         leaf ipv6-address-mode {
58
59             description "neutron subnet-create --ip-version 6 --ipv6_ra_mode off --ipv6_address_mode
60                         off NETWORK CIDR neutron subnet-create --ip-version 6 --ipv6_ra_mode
61                         off --ipv6_address_mode dhcpv6-stateful NETWORK CIDR neutron subnet-create
62                         --ip-version 6 --ipv6_ra_mode slaac --ipv6_address_mode slaac
63                         NETWORK CIDR neutron subnet-create --ip-version 6 --ipv6_ra_mode
64                         dhcpv6-stateful --ipv6_address_mode off NETWORK CIDR neutron subnet-create
65                         --ip-version 6 --ipv6_ra_mode dhcpv6-stateless --ipv6_address_mode
66                         dhcpv6-stateless NETWORK CIDR Note: can't find this in the spec
67                         but OS is sending it with a null value.";
68             type identityref {
69                 base "constants:dhcpv6-base";
70             }
71         }
72         leaf ipv6-ra-mode {
73             description "TODO can't find this in the spec but OS sends it with a null
74                         value.";
75             type identityref {
76                 base "constants:dhcpv6-base";
77             }
78         }
79         list allocation-pools {
80             description "Sub-ranges of cidr available for dynamic allocation to ports";
81             key start;
82             leaf start {
83                 type string;
84             }
85             leaf end {
86                 type string;
87             }
88         }
89         list host-routes {
90             description "Routes that should be used by devices with IPs from this subnet
91                         (not including local subnet route).";
92             key destination;
93             leaf destination {
94                 type inet:ip-address;
95             }
96             leaf nexthop {
97                 type inet:ip-address;
98             }
99         }
100         leaf enable-dhcp {
101             type boolean;
102             description "Specifies whether DHCP is enabled for this subnet or not.";
103             default "true";
104         }
105     }
106     grouping subnets-attributes {
107         container subnets {
108             list subnet {
109                 key "uuid";
110                 uses attrs:base-attributes;
111                 uses subnet-attributes;
112             }
113         }
114     }
115 }