Clean up of unused Yang files on behalf of TSC
[osm/IM.git] / models / yang / odl-network-topology.yang
diff --git a/models/yang/odl-network-topology.yang b/models/yang/odl-network-topology.yang
deleted file mode 100644 (file)
index 9c7101d..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-
-/*
- * 
- *   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 odl-network-topology  {
-    yang-version 1;
-    namespace "urn:TBD:params:xml:ns:yang:network-topology";
-    // replace with IANA namespace when assigned
-    prefix "nt";
-
-    import ietf-inet-types { prefix "inet";  }
-
-    organization "TBD";
-
-    contact "WILL-BE-DEFINED-LATER";
-
-    description
-        "This module defines a model for the topology of a network.
-        Key design decisions are as follows:
-        A topology consists of a set of nodes and links.
-        Links are point-to-point and unidirectional.
-        Bidirectional connections need to be represented through
-        two separate links.
-        Multipoint connections, broadcast domains etc can be represented
-        through a hierarchy of nodes, then connecting nodes at
-        upper layers of the hierarchy.";
-
-    revision 2013-10-21 {
-        description
-            "Initial revision.";
-    }
-
-    typedef topology-id {
-        type inet:uri;
-        description
-            "An identifier for a topology.";
-    }
-
-    typedef node-id {
-        type inet:uri;
-        description
-            "An identifier for a node in a topology.
-            The identifier may be opaque.
-            The identifier SHOULD be chosen such that the same node in a
-            real network topology will always be identified through the
-            same identifier, even if the model is instantiated in separate
-            datastores. An implementation MAY choose to capture semantics
-            in the identifier, for example to indicate the type of node
-            and/or the type of topology that the node is a part of.";
-    }
-
-
-    typedef link-id {
-        type inet:uri;
-        description
-            "An identifier for a link in a topology.
-            The identifier may be opaque.
-            The identifier SHOULD be chosen such that the same link in a
-            real network topology will always be identified through the
-            same identifier, even if the model is instantiated in separate
-            datastores. An implementation MAY choose to capture semantics
-            in the identifier, for example to indicate the type of link
-            and/or the type of topology that the link is a part of.";
-    }
-
-    typedef tp-id {
-        type inet:uri;
-        description
-            "An identifier for termination points on a node.
-            The identifier may be opaque.
-            The identifier SHOULD be chosen such that the same TP in a
-            real network topology will always be identified through the
-            same identifier, even if the model is instantiated in separate
-            datastores. An implementation MAY choose to capture semantics
-            in the identifier, for example to indicate the type of TP
-            and/or the type of node and topology that the TP is a part of.";
-    }
-
-    typedef tp-ref {
-        type leafref {
-            path "/network-topology/topology/node/termination-point/tp-id";
-        }
-        description
-            "A type for an absolute reference to a termination point.
-            (This type should not be used for relative references.
-            In such a case, a relative path should be used instead.)";
-    }
-    typedef topology-ref {
-        type leafref {
-            path "/network-topology/topology/topology-id";
-        }
-        description
-            "A type for an absolute reference a topology instance.";
-    }
-
-    typedef node-ref {
-        type leafref {
-            path "/network-topology/topology/node/node-id";
-        }
-        description
-
-            "A type for an absolute reference to a node instance.
-            (This type should not be used for relative references.
-            In such a case, a relative path should be used instead.)";
-    }
-
-    typedef link-ref {
-        type leafref {
-            path "/network-topology/topology/link/link-id";
-        }
-        description
-            "A type for an absolute reference a link instance.
-            (This type should not be used for relative references.
-            In such a case, a relative path should be used instead.)";
-    }
-
-    grouping tp-attributes {
-        description
-            "The data objects needed to define a termination point.
-            (This only includes a single leaf at this point, used
-            to identify the termination point.)
-            Provided in a grouping so that in addition to the datastore,
-            the data can also be included in notifications.";
-        leaf tp-id {
-            type tp-id;
-        }
-        leaf-list tp-ref {
-            type tp-ref;
-            config false;
-            description
-                "The leaf list identifies any termination points that the
-                termination point is dependent on, or maps onto.
-                Those termination points will themselves be contained
-                in a supporting node.
-                This dependency information can be inferred from
-                the dependencies between links.  For this reason,
-                this item is not separately configurable.  Hence no
-                corresponding constraint needs to be articulated.
-                The corresponding information is simply provided by the
-                implementing system.";
-        }
-    }
-
-    grouping node-attributes {
-        description
-            "The data objects needed to define a node.
-            The objects are provided in a grouping so that in addition to
-            the datastore, the data can also be included in notifications
-            as needed.";
-
-        leaf node-id {
-            type node-id;
-            description
-                "The identifier of a node in the topology.
-                A node is specific to a topology to which it belongs.";
-        }
-        list supporting-node {
-            description
-                "This list defines vertical layering information for nodes.
-                It allows to capture for any given node, which node (or nodes)
-                in the corresponding underlay topology it maps onto.
-                A node can map to zero, one, or more nodes below it;
-                accordingly there can be zero, one, or more elements in the list.
-                If there are specific layering requirements, for example
-                specific to a particular type of topology that only allows
-                for certain layering relationships, the choice
-                below can be augmented with additional cases.
-                A list has been chosen rather than a leaf-list in order
-                to provide room for augmentations, e.g. for
-                statistics or priorization information associated with
-                supporting nodes.";
-            // This is not what was published in the initial draft,
-            // added topology-ref leaf and added it to the key
-            key "topology-ref node-ref";
-            leaf topology-ref {
-                type topology-ref;
-            }
-            leaf node-ref {
-                type node-ref;
-            }
-        }
-    }
-
-    grouping link-attributes {
-        // This is a grouping, not defined inline with the link definition itself,
-        // so it can be included in a notification, if needed
-        leaf link-id {
-            type link-id;
-            description
-                "The identifier of a link in the topology.
-                A link is specific to a topology to which it belongs.";
-        }
-        container source {
-            leaf source-node {
-                mandatory true;
-                type node-ref;
-                description
-                    "Source node identifier, must be in same topology.";
-            }
-            leaf source-tp {
-                type tp-ref;
-                description
-                    "Termination point within source node that terminates the link.";
-
-            }
-        }
-        container destination {
-            leaf dest-node {
-                mandatory true;
-                type node-ref;
-                description
-                    "Destination node identifier, must be in same topology.";
-            }
-            leaf dest-tp {
-                type tp-ref;
-                description
-                    "Termination point within destination node that terminates the link.";
-            }
-        }
-        list supporting-link {
-            key "link-ref";
-            leaf link-ref {
-                type link-ref;
-            }
-        }
-    }
-
-
-    container network-topology {
-        list topology {
-            description "
-                This is the model of an abstract topology.
-                A topology contains nodes and links.
-                Each topology MUST be identified by
-                unique topology-id for reason that a network could contain many
-                topologies.
-            ";
-            key "topology-id";
-            leaf topology-id {
-                type topology-id;
-                description "
-                    It is presumed that a datastore will contain many topologies. To
-                    distinguish between topologies it is vital to have UNIQUE
-                    topology identifiers.
-                ";
-            }
-            leaf server-provided {
-                type boolean;
-                config false;
-                description "
-                    Indicates whether the topology is configurable by clients,
-                    or whether it is provided by the server.  This leaf is
-
-                    populated by the server implementing the model.
-                    It is set to false for topologies that are created by a client;
-                    it is set to true otherwise.  If it is set to true, any
-                    attempt to edit the topology MUST be rejected.
-                ";
-            }
-            container topology-types {
-                description
-                    "This container is used to identify the type, or types
-                    (as a topology can support several types simultaneously),
-                    of the topology.
-                    Topology types are the subject of several integrity constraints
-                    that an implementing server can validate in order to
-                    maintain integrity of the datastore.
-                    Topology types are indicated through separate data nodes;
-                    the set of topology types is expected to increase over time.
-                    To add support for a new topology, an augmenting module
-                    needs to augment this container with a new empty optional
-                    container to indicate the new topology type.
-                    The use of a container allows to indicate a subcategorization
-                    of topology types.
-                    The container SHALL NOT be augmented with any data nodes
-                    that serve a purpose other than identifying a particular
-                    topology type.
-                ";
-            }
-            list underlay-topology {
-                key "topology-ref";
-                leaf topology-ref {
-                    type topology-ref;
-                }
-                // a list, not a leaf-list, to allow for potential augmentation
-                // with properties specific to the underlay topology,
-                // such as statistics, preferences, or cost.
-                description
-                    "Identifies the topology, or topologies, that this topology
-                    is dependent on.";
-            }
-
-            list node {
-                description "The list of network nodes defined for the topology.";
-                key "node-id";
-                uses node-attributes;
-                must "boolean(../underlay-topology[*]/node[./supporting-nodes/node-ref])";
-                    // This constraint is meant to ensure that a referenced node is in fact
-                    // a node in an underlay topology.
-                list termination-point {
-                    description
-
-                        "A termination point can terminate a link.
-                        Depending on the type of topology, a termination point could,
-                        for example, refer to a port or an interface.";
-                    key "tp-id";
-                    uses tp-attributes;
-                }
-            }
-
-            list link {
-                description "
-                    A Network Link connects a by Local (Source) node and
-                    a Remote (Destination) Network Nodes via a set of the
-                    nodes' termination points.
-                    As it is possible to have several links between the same
-                    source and destination nodes, and as a link could potentially
-                    be re-homed between termination points, to ensure that we
-                    would always know to distinguish between links, every link
-                    is identified by a dedicated link identifier.
-                    Note that a link models a point-to-point link, not a multipoint
-                    link.
-                    Layering dependencies on links in underlay topologies are
-                    not represented as the layering information of nodes and of
-                    termination points is sufficient.
-                ";
-                key "link-id";
-                uses link-attributes;
-                must "boolean(../underlay-topology/link[./supporting-link])";
-                    // Constraint: any supporting link must be part of an underlay topology
-                must "boolean(../node[./source/source-node])";
-                    // Constraint: A link must have as source a node of the same topology
-                must "boolean(../node[./destination/dest-node])";
-                    // Constraint: A link must have as source a destination of the same topology
-                must "boolean(../node/termination-point[./source/source-tp])";
-                    // Constraint: The source termination point must be contained in the source node
-                must "boolean(../node/termination-point[./destination/dest-tp])";
-                    // Constraint: The destination termination point must be contained
-                    // in the destination node
-            }
-        }
-    }
-}