2 namespace "urn:opendaylight:netvirt:natservice";
5 import ietf-yang-types { prefix "yang"; /*revision-date 2013-07-15; */}
6 import ietf-inet-types { prefix "inet"; }
8 revision "2016-01-11" {
9 description "NAT Manager module";
12 container external-networks {
18 leaf vpnid { type yang:uuid; }
19 leaf-list router-ids { type yang:uuid; }
20 leaf provider-network-type { type provider-types; }
24 container ext-routers {
27 leaf router-name { type string; }
28 leaf network-id { type yang:uuid; }
29 leaf enable-snat { type boolean; }
31 key "subnet-id ip-address";
33 description "This is external subnet id";
37 type string; //format - ipaddress\prefixlength
40 leaf-list subnet-ids { type yang:uuid; }
41 leaf ext_gw_mac_address { type string; }
45 container floating-ip-info {
49 leaf router-id { type string; }
50 leaf external-network-id { type yang:uuid; }
53 leaf port-name { type string; }
54 list internal-to-external-port-map {
56 leaf internal-ip { type string; }
57 leaf external-ip { type string; }
58 leaf external-id { type yang:uuid; }
59 leaf label { type uint32; config false; }
65 container floating-ip-port-info {
67 description "Stores the floating IP UUID (L3) and [UUID, subnet UUID, MAC address] for the corresponding
68 floating IP port (L2)";
69 list floating-ip-id-to-port-mapping {
71 leaf floating-ip-id { type yang:uuid; }
72 leaf floating-ip-port-id { type yang:uuid; }
73 leaf floating-ip-port-subnet-id { type yang:uuid; }
74 leaf floating-ip-port-mac-address { type string; }
75 leaf floating-ip-deleted {
79 "True if corresponding floating IP is deleted, indicating depopulation of this map to be
80 processed once consumed in the deletion path";
85 container napt-switches {
86 list router-to-napt-switch {
88 leaf router-name { type string; }
89 leaf primary-switch-id { type uint64; }
93 grouping ip-port-entity {
94 leaf ip-address { type string; }
95 leaf port-num { type uint16; }
98 typedef protocol-types {
105 typedef provider-types {
114 container intext-ip-port-map {
116 list ip-port-mapping {
118 leaf router-id { type uint32; }
119 list intext-ip-protocol-type {
121 leaf protocol { type protocol-types; }
123 key ip-port-internal;
124 description "internal to external ip-port mapping";
125 leaf ip-port-internal { type string; }
126 container ip-port-external {
134 container snatint-ip-port-map {
135 list intip-port-map {
137 leaf router-id { type uint32; }
140 leaf internal-ip { type string; }
141 list int-ip-proto-type {
143 leaf protocol { type protocol-types; }
144 leaf-list ports { type uint16; }
150 container intext-ip-map {
154 leaf segment-id { type uint32; }
157 leaf internal-ip { type string; }
158 leaf external-ip { type string; }
159 leaf label {type uint32;}
164 container router-to-vpn-mapping {
167 leaf router-name { type string; }
168 leaf vpn-id { type uint32; }
169 leaf vpn-name { type string; }
173 container router-id-name {
176 leaf router-id {type uint32;}
177 leaf router-name { type string; }
181 container external-ips-counter {
183 list external-counters{
185 leaf segment-id { type uint32; }
186 list external-ip-counter {
188 leaf external-ip { type string; }
189 leaf counter { type uint8; }
194 container external-subnets {
203 leaf external-network-id {
206 leaf-list router-ids {