--- /dev/null
+
+/*
+ *
+ * Copyright 2016 RIFT.IO Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *
+ */
+
+module rw-topology {
+ namespace "http://riftio.com/ns/riftware-1.0/rw-topology";
+ prefix rw-topology;
+
+ import ietf-inet-types {prefix inet;}
+ import ietf-network {prefix nw;}
+ import ietf-network-topology {prefix nt;}
+ import ietf-l2-topology {prefix l2t;}
+
+ revision "2015-10-20" {
+ description "Initial revision of IP level addressing for L2 host topology";
+ }
+
+ grouping ip-address-group {
+ description "IP addresses if present for L2 termination points";
+ container ip-attributes {
+ description "L2 termination points containing IP addresses";
+ list ip-addresses {
+ key ip;
+ leaf ip {
+ type inet:ip-address;
+ description "IPv4 or IPv6 address";
+ }
+ }
+ }
+ } // grouping ip-address-group
+
+
+ grouping rw-network-attributes {
+ description "RW Topology scope attributes";
+ container rw-network-attributes {
+ description "Containing RW network attributes";
+ leaf name {
+ type string;
+ description "Name of the RW Topology network";
+ }
+ leaf sdn-account-name {
+ type string;
+ description "Name of the SDN account from which topology is got";
+ }
+ }
+ }
+
+ grouping rw-node-attributes {
+ description "RW node attributes";
+ container rw-node-attributes {
+ description "Containing RW node attributes";
+ leaf name {
+ type string;
+ description "Node name";
+ }
+ leaf ovs-bridge-name {
+ type string;
+ description "Name of OVS bridge";
+ }
+ }
+ }
+
+ grouping rw-link-attributes {
+ description "RW link attributes";
+ container rw-link-attributes {
+ description "Containing RW link attributes";
+ leaf name {
+ type string;
+ description "Link name";
+ }
+ }
+ }
+
+ grouping rw-termination-point-attributes {
+ description "RW termination point attributes";
+ container rw-termination-point-attributes {
+ description "Containing RW TP attributes";
+ leaf description {
+ type string;
+ description "Port description";
+ }
+ uses ip-address-group;
+ }
+ }
+
+ augment "/nw:network" {
+ description
+ "Configuration parameters for the RW network
+ as a whole";
+ uses rw-network-attributes;
+ }
+
+ augment "/nw:network/nw:node" {
+ description
+ "Configuration parameters for RW at the node
+ level";
+ uses rw-node-attributes;
+ }
+
+ augment "/nw:network/nt:link" {
+ description "Augment RW topology link information";
+ uses rw-link-attributes;
+ }
+
+ augment "/nw:network/nw:node/nt:termination-point" {
+ description
+ "Augment RW topology termination point configuration";
+ uses rw-termination-point-attributes;
+ }
+}