+++ /dev/null
-module demo-topology {
- yang-version 1;
- namespace "urn:demo.simple-topology";
- prefix "tp";
- import simple-list-demo { prefix "simple"; revision-date 2008-01-01; }
- import controller-network {prefix "cn";}
- import mount {prefix "mnt";}
-
- organization "OPEN DAYLIGHT";
- contact "http://www.opendaylight.org/";
-
- description "
- This module contains the definitions of elements that creates network
- topology i.e. definition of network nodes and links. This module is
- not designed to be used solely for network representation. This module
- SHOULD be used as base module in defining the network topology.
- ";
-
- revision "2013-02-08"{
- reference " WILL BE DEFINED LATER";
- }
-
-
-
-
-
- deviation /base:system/base:user/base:type {
- deviate add {
- default "admin"; // new users are 'admin' by default
- }
- }
-
- deviation /base:system/base:name-server {
- deviate replace {
- max-elements 3;
- }
- }
-
- deviation "/base:system" {
- deviate delete {
- must "daytime or time";
- }
- }
-
-
-
-
-
-
- grouping target {
- status "current";
- leaf address {
- type inet:ip-address;
- description "Target IP address";
- }
- leaf port {
- type inet:port-number;
- description "Target port number";
- }
- }
-
- augment "/cn:network/cn:topologies/cn:topology" {
- container prefixes {
- container "prefix" {
- leaf id {
- type string;
-
- description "";
- }
-
- leaf-list advertising-node-id {
- type cn:node-ref;
-
- description "";
- }
- }
- }
- mnt:mountpoint point {
- mnt:target-ref target;
-
- }
- }
-
- container peer {
- container destination {
- uses target;
- }
- }
-
- container topology {
-
- leaf ifType {
- type enumeration {
- enum ethernet;
- enum atm;
- }
- }
- leaf ifMTU {
- type uint32;
- }
- must "ifType != 'ethernet' or " +
- "(ifType = 'ethernet' and ifMTU = 1500)" {
- error-message "An ethernet MTU must be 1500";
- }
-
- presence "test-presence";
-
- description "
- This is the model of abstract topology which contains only Network
- Nodes and Network Links. Each topology MUST be identified by
- unique topology-id for reason that the store could contain many
- topologies.
- ";
-
- leaf topology-id {
- type string;
- description "
- It is presumed that datastore will contain many topologies. To
- distinguish between topologies it is vital to have UNIQUE
- topology identifier.
- ";
- }
-
- container network-nodes {
- list network-node {
- ordered-by system;
- description "The list of network nodes defined for topology.";
-
- key "node-id";
-
- leaf node-id {
- type string;
- description "The Topology identifier of network-node.";
- }
-
- list network-interface {
- key "interface-id";
-
- leaf interface-id {
- type uint8;
- }
-
- leaf interface-address {
- type string;
- }
- }
-
- container node-attributes {
- description "
- Additional attributes that can Network Node contains.
- ";
-
- leaf geo-latitude {
- type decimal64 {
- fraction-digits 2;
- }
- config true;
- }
-
- leaf geo-longitude {
- type decimal64 {
- fraction-digits 2;
- }
- config true;
- }
- }
- }
- }
-
- container network-links {
- list network-link {
- description "
- The Network Link which is defined by Local (Source) and
- Remote (Destination) Network Nodes. Every link MUST be
- defined either by identifier and his local and remote
- Network Nodes (in real applications it is common that many
- links are originated from one node and end up in same
- remote node). To ensure that we would always know to
- distinguish between links, every link SHOULD have
- identifier.
- ";
- key "link-id";
-
- leaf link-id {
- type string;
- description "";
- }
-
- container source {
- leaf node-id {
- type string;
- description "Source node identifier.";
- }
- }
-
- container destination {
- leaf node-id {
- type string;
- description "Destination node identifier.";
- }
- }
-
- container link-attributes {
- description "Aditional attributes that can Network Link contains.";
- }
- }
- }
- }
-
- rpc activate-software-image {
- input {
- leaf image-name {
- type string;
- }
- }
- output {
- leaf status {
- type string;
- }
- }
- }
-
-}