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/rwsdn";
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";
104 grouping sdn-provider-auth {
106 type sdn-account-type;
109 choice provider-specific-info {
139 default "rwsdn_mock";
147 leaf topology-source {
158 augment "/rw-project:project" {
159 container sdn-accounts {
160 list sdn-account-list {
161 rwpb:msg-new SDNAccount;
168 uses sdn-provider-auth;
169 uses connection-status;
174 augment "/rw-project:project" {
178 rwpb:msg-new VNFFGChain;
184 list vnf-chain-path {
188 description " Order of the VNF in VNFFG chain";
190 leaf service-function-type {
196 leaf transport-type {
208 type inet:ip-address;
211 type inet:port-number;
216 rwpb:field-inline "true";
217 rwpb:field-string-max 64;
221 rwpb:field-inline "true";
222 rwpb:field-string-max 64;
229 type inet:ip-address;
232 type inet:port-number;
236 description "SFF name useful for non OVS based SFF";
242 rwpb:msg-new VNFFGSff;
251 type inet:ip-address;
254 type inet:port-number;
262 type inet:ip-address;
265 type inet:port-number;
275 leaf classifier-name {
282 augment "/rw-project:project" {
283 container vnffg-rendered-paths {
284 rwpb:msg-new VNFFGRenderedPaths;
285 list vnffg-rendered-path {
287 rwpb:msg-new VNFFGRenderedPath;
294 "Unique Identifier for the service path";
297 list rendered-path-hop {
304 "Location within the service path";
310 container service-function-forwarder {
313 "Service Function Forwarder name";
318 "Service Function Forwarder Data Plane IP address";
319 type inet:ip-address;
323 "Service Function Forwarder Data Plane port";
324 type inet:port-number;
332 augment "/rw-project:project" {
333 container vnffg-classifiers {
334 list vnffg-classifier {
336 rwpb:msg-new VNFFGClassifier;
345 rwpb:field-inline "true";
346 rwpb:field-string-max 64;
350 rwpb:field-inline "true";
351 rwpb:field-string-max 64;
357 container vnffg-metadata {
371 list match-attributes {
373 "List of match attributes.";
377 "Name for the Access list";
387 leaf source-ip-address {
389 "Source IP address.";
393 leaf destination-ip-address {
395 "Destination IP address.";
401 "Source port number.";
402 type inet:port-number;
405 leaf destination-port {
407 "Destination port number.";
408 type inet:port-number;
417 /* vim: set ts=2:sw=2: */