Update otn-topology with otn-links
[transportpce.git] / networkmodel / src / main / java / org / opendaylight / transportpce / networkmodel / service / NetworkModelService.java
index f5f2f2ca26cdf6780be1d6524451ca09adddf1d9..3a02d7b715c11feaeaad2cce27d5a2820e395c61 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.transportpce.networkmodel.service;
 
+import java.util.List;
+import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
 
 /**
@@ -19,16 +21,19 @@ public interface NetworkModelService {
      *
      * @param nodeId
      *   unique node ID of new OpenROADM node
+     * @param nodeVersion
+     *   OpenROADM node version
      */
-    void createOpenROADMnode(String nodeId);
+    void createOpenRoadmNode(String nodeId, String nodeVersion);
 
     /**
      * Delete OpenROADM node mapping and topologies.
      *
-     * @param nodeId unique node ID of OpenROADM node
+     * @param nodeId
+     *   unique node ID of OpenROADM node.
      *
      */
-    void deleteOpenROADMnode(String nodeId);
+    void deleteOpenRoadmnode(String nodeId);
 
     /**
      * Set/update connection status of OpenROADM node.
@@ -38,6 +43,56 @@ public interface NetworkModelService {
      * @param connectionStatus
      *   connection status of the node
      */
-    void setOpenROADMnodeStatus(String nodeId, NetconfNodeConnectionStatus.ConnectionStatus connectionStatus);
+    void setOpenRoadmNodeStatus(String nodeId, NetconfNodeConnectionStatus.ConnectionStatus connectionStatus);
+
+    /**
+     * create new otn link in otn-topology.
+     *
+     * @param nodeA
+     *   OpenROADM node ID for link termination point A
+     * @param tpA
+     *   OpenROADM tp id on nodeA for link termination point A
+     * @param nodeZ
+     *   OpenROADM node ID for link termination point Z
+     * @param tpZ
+     *   OpenROADM tp id on nodeZ for link termination point Z
+     * @param linkType
+     *   OtnLinkType, as OTU4, ODTU, etc
+     */
+    void createOtnLinks(String nodeA, String tpA, String nodeZ, String tpZ, OtnLinkType linkType);
+
+    /**
+     * delete otn links from otn-topology.
+     *
+     * @param nodeA
+     *   OpenROADM node ID for link termination point A
+     * @param tpA
+     *   OpenROADM tp id on nodeA for link termination point A
+     * @param nodeZ
+     *   OpenROADM node ID for link termination point Z
+     * @param tpZ
+     *   OpenROADM tp id on nodeZ for link termination point Z
+     * @param linkType
+     *   OtnLinkType, as OTU4, ODTU, etc
+     */
+    void deleteOtnLinks(String nodeA, String tpA, String nodeZ, String tpZ, OtnLinkType linkType);
+
+    /**
+     * update otn links from otn-topology.
+     *
+     * @param nodeTps
+     *   List containing a string composed of the netconf nodeId , and the
+     *       termination point supporting the service
+     * @param serviceRate
+     *   Service rate may be 1G, 10G or 100G
+     * @param tribPortNb
+     *   Trib port number allocated by the service
+     * @param tribSoltNb
+     *   First trib slot number allocated by the service
+     * @param isDeletion
+     *   True indicates if the low-order otn service must be deleted
+     */
+    void updateOtnLinks(List<String> nodeTps, String serviceRate, Short tribPortNb, Short tribSoltNb,
+        boolean isDeletion);
 
 }