4 * Copyright 2016-2017 RIFT.IO Inc
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 namespace "http://riftio.com/ns/riftware-1.0/rwsdnal";
34 import rw-yang-types {
46 import ietf-inet-types {
50 import ietf-yang-types {
60 "Update model to support projects.";
67 "RIFT RWSDN cloud data";
70 typedef sdn-connection-status-enum {
71 description "Connection status for the sdn account";
80 grouping connection-status {
81 container connection-status {
83 rwpb:msg-new SdnConnectionStatus;
85 type sdn-connection-status-enum;
93 // uses connection-status;
95 typedef sdn-account-type {
96 description "SDN account type";
105 grouping sdn-provider-auth {
107 type sdn-account-type;
110 choice provider-specific-info {
140 default "rwsdn_mock";
148 leaf topology-source {
157 container openstack {
186 description "Domain of the OpenStack user";
189 leaf project-domain {
192 description "Domain of the OpenStack project";
202 default "rwsdn_openstack";
208 description "Certificate validatation policy in case of SSL/TLS connection";
215 augment "/rw-project:project" {
216 container sdn-accounts {
217 list sdn-account-list {
218 rwpb:msg-new SDNAccount;
225 uses sdn-provider-auth;
226 uses connection-status;
231 augment "/rw-project:project" {
235 rwpb:msg-new VNFFGChain;
241 list vnf-chain-path {
245 description " Order of the VNF in VNFFG chain";
247 leaf service-function-type {
253 leaf transport-type {
265 type inet:ip-address;
268 type inet:port-number;
273 rwpb:field-inline "true";
274 rwpb:field-string-max 64;
278 rwpb:field-inline "true";
279 rwpb:field-string-max 64;
286 type inet:ip-address;
289 type inet:port-number;
293 description "SFF name useful for non OVS based SFF";
299 rwpb:msg-new VNFFGSff;
308 type inet:ip-address;
311 type inet:port-number;
319 type inet:ip-address;
322 type inet:port-number;
332 leaf classifier-name {
339 augment "/rw-project:project" {
340 container vnffg-rendered-paths {
341 rwpb:msg-new VNFFGRenderedPaths;
342 list vnffg-rendered-path {
344 rwpb:msg-new VNFFGRenderedPath;
351 "Unique Identifier for the service path";
354 list rendered-path-hop {
361 "Location within the service path";
367 container service-function-forwarder {
370 "Service Function Forwarder name";
375 "Service Function Forwarder Data Plane IP address";
376 type inet:ip-address;
380 "Service Function Forwarder Data Plane port";
381 type inet:port-number;
389 augment "/rw-project:project" {
390 container vnffg-classifiers {
391 list vnffg-classifier {
393 rwpb:msg-new VNFFGClassifier;
405 rwpb:field-inline "true";
406 rwpb:field-string-max 64;
410 rwpb:field-inline "true";
411 rwpb:field-string-max 64;
417 container vnffg-metadata {
431 list match-attributes {
433 "List of match attributes.";
437 "Name for the Access list";
447 leaf source-ip-address {
449 "Source IP address.";
453 leaf destination-ip-address {
455 "Destination IP address.";
461 "Source port number.";
462 type inet:port-number;
465 leaf destination-port {
467 "Destination port number.";
468 type inet:port-number;
477 /* vim: set ts=2:sw=2: */