X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FPortMapping.java;h=799af027251dd5c911d31e2c998b6bcdb5e1b83a;hb=63ac411af040169c3f9908c57aff8d9e8aed2abf;hp=5ddbe0109378d5d5954c5b56cb6e2d9bc44fcc14;hpb=f8f1b05b6eefd0f5c18e22c22b4d4e023f61faf6;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMapping.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMapping.java index 5ddbe0109..799af0272 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMapping.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMapping.java @@ -8,13 +8,23 @@ package org.opendaylight.transportpce.common.mapping; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.network.nodes.Mapping; + +import java.util.List; +import java.util.Map; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mc.capabilities.McCapabilities; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.OduSwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.odu.switching.pools.non.blocking.list.PortList; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.Uint16; + public interface PortMapping { /** * This method creates logical to physical port mapping for a given device. - * Instead of parsing all the circuit packs/ports in the device this methods + * Instead of parsing all the circuit packs/ports in the device, this methods * does a selective read operation on degree/srg subtree to get circuit * packs/ports that map to : * @@ -36,15 +46,29 @@ public interface PortMapping { * successful the mapping gets stored in datastore corresponding to * portmapping.yang data model. * + * @param nodeId + * node ID + * @param nodeVersion + * node version + * * @return true/false based on status of operation */ - boolean createMappingData(String nodeId); + boolean createMappingData(String nodeId, String nodeVersion); + + /** + * This method removes all mapping data of a given node from the datastore + * after disconnecting ODL from a Netconf device. + * + * @param nodeId + * node ID + */ + void deletePortMappingNode(String nodeId); /** - * This method for a given node's termination point returns the Mapping object based on - * portmapping.yang model stored in the MD-SAL data store which is created when the node is - * connected for the first time. The mapping object basically contains the following attributes of - * interest: + * This method for a given node's termination point returns the Mapping object + * based on portmapping.yang model stored in the MD-SAL data store which is + * created when the node is connected for the first time. The mapping object + * basically contains the following attributes of interest: * *

* 1. Supporting circuit pack @@ -53,13 +77,131 @@ public interface PortMapping { * 2. Supporting port * *

- * 3. Supporting OMS interface (if port on ROADM) 4. Supporting OTS interface (if port on ROADM) + * 3. Supporting OTS/OMS interface (if port on ROADM) * - * @param nodeId Unique Identifier for the node of interest. - * @param logicalConnPoint Name of the logical point + * @param nodeId + * Unique Identifier for the node of interest. + * @param logicalConnPoint + * Name of the logical point * * @return Result Mapping object if success otherwise null. */ - Mapping getMapping(String nodeId, String logicalConnPoint); + + /** + * This method allows retrieving a Mapping object from the mapping list stored in + * the MD-SAL data store. The main interest is to retrieve the + * logical-connection-point associated with a given port on a supporting + * circuit-pack + * + * @param nodeId + * Unique Identifier for the node of interest. + * @param circuitPackName + * Name of the supporting circuit-pack + * @param portName + * Name of the supporting port + * + * @return Result Mapping object if success otherwise null. + */ + Mapping getMapping(String nodeId, String circuitPackName, String portName); + + /** + * This method removes a given mapping data from the mapping list + * stored in the datastore while the Netconf device is already + * connected to the controller. + * + * @param nodeId + * node ID + * @param logicalConnectionPoint + * key of the mapping inside the mapping list + */ + void deleteMapping(String nodeId, String logicalConnectionPoint); + + /** + * This method, for a given node media channel-capabilities, returns the object + * based on portmapping.yang model stored in the MD-SAL data store which is + * created when the node is connected for the first time. The mapping object + * basically contains the following attributes of interest: + * + *

+ * 1. slot width granularity + * + *

+ * 2. center frequency granularity + * + *

+ * 3. Supporting OMS interface (if port on ROADM) + * + *

+ * 4. Supporting OTS interface (if port on ROADM) + * + * @param nodeId + * Unique Identifier for the node of interest. + * @param mcLcp + * Name of the MC-capability + * + * @return Result McCapabilities. + */ + McCapabilities getMcCapbilities(String nodeId, String mcLcp); + + /** + * This method for a given node, allows to update a specific mapping based on + * portmapping.yang model already stored in the MD-SAL data store, following + * some changes on the device port (creation of interface supported on this + * port, change of port admin state, etc). + * + * @param nodeId + * Unique Identifier for the node of interest. + * @param mapping + * Old mapping to be updated. + * + * @return Result true/false based on status of operation. + */ + boolean updateMapping(String nodeId, Mapping mapping); + + /** + * Returns all Mapping informations for a given ordm device. This method returns + * all Mapping informations already stored in the MD-SAL data store for a given + * openroadm device. Beyound the list of mappings, it gives access to general + * node information as its version or its node type, etc. + * + * @param nodeId + * Unique Identifier for the node of interest. + * + * @return node data if success otherwise null. + */ + Nodes getNode(String nodeId); + + /** + * This method allows to update a port-mapping node with odu-connection-map data. + * This method is used for an otn xponder in version 7.1, when a device sends a + * change-notification advertising controller that odu-switching-pools containers + * have been populated inside its configuration + * (appears after creation of an OTSI-Group interface). + * + * @param nodeId + * Unique Identifier for the node of interest. + * @param ospIID + * Instance Identifier of the odu-switching-pools. + * @param nbliidMap + * Map containing the non-blocking-list number as key, + * and the list of Instance Identifier corresponding to each port-list + * as value. + * + * @return Result true/false based on status of operation. + */ + boolean updatePortMappingWithOduSwitchingPools(String nodeId, InstanceIdentifier ospIID, + Map>> nbliidMap); + + /** + * This method check the presence or not of a given node inside the PortMapping + * datastore. + * + * @param nodeId + * Unique Identifier for the node of interest. + * + * @return Result true/false based on existance or not of a given node. + */ + boolean isNodeExist(String nodeId); + }