2 * Copyright © 2017 AT&T and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.transportpce.common.mapping;
12 import java.util.List;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mc.capabilities.McCapabilities;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.Nodes;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.OduSwitchingPools;
18 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;
19 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
20 import org.opendaylight.yangtools.yang.common.Uint16;
23 public interface PortMapping {
25 PortMappingVersion221 getPortMappingVersion221();
27 PortMappingVersion710 getPortMappingVersion710();
30 * This method creates logical to physical port mapping for a given device.
31 * Instead of parsing all the circuit packs/ports in the device, this methods
32 * does a selective read operation on degree/srg subtree to get circuit
33 * packs/ports that map to :
36 * 1. DEGn-TTP-TX, DEGn-TTP-RX, DEGn-TTP-TXRX
39 * 2. SRGn-PPp-TX, SRGn-PPp-RX, SRGn-PPp-TXRX
48 * If the port is Mw it also store the OMS, OTS interface provisioned on the
49 * port. It skips the logical ports that are internal. If operation is
50 * successful the mapping gets stored in datastore corresponding to
51 * portmapping.yang data model.
58 * @return true/false based on status of operation
60 boolean createMappingData(String nodeId, String nodeVersion);
63 * This method removes all mapping data of a given node from the datastore
64 * after disconnecting ODL from a Netconf device.
69 void deletePortMappingNode(String nodeId);
72 * This method for a given node's termination point returns the Mapping object
73 * based on portmapping.yang model stored in the MD-SAL data store which is
74 * created when the node is connected for the first time. The mapping object
75 * basically contains the following attributes of interest:
78 * 1. Supporting circuit pack
84 * 3. Supporting OTS/OMS interface (if port on ROADM)
87 * Unique Identifier for the node of interest.
88 * @param logicalConnPoint
89 * Name of the logical point
91 * @return Result Mapping object if success otherwise null.
93 Mapping getMapping(String nodeId, String logicalConnPoint);
96 * This method allows retrieving a Mapping object from the mapping list stored in
97 * the MD-SAL data store. The main interest is to retrieve the
98 * logical-connection-point associated with a given port on a supporting
102 * Unique Identifier for the node of interest.
103 * @param circuitPackName
104 * Name of the supporting circuit-pack
106 * Name of the supporting port
108 * @return Result Mapping object if success otherwise null.
110 Mapping getMapping(String nodeId, String circuitPackName, String portName);
113 * This method for a given node's termination point returns the Mapping object
114 * based on portmapping.yang model stored in the MD-SAL data store which is
115 * created when the node is connected for the first time. The mapping object
116 * basically contains the following attributes of interest:
119 * 1. Supporting circuit pack
125 * 3. Supporting OTS/OMS interface (if port on ROADM)
128 * Unique Identifier for the node of interest.
130 * Name of the OTS interface
132 * @return Result Mapping object if success otherwise null.
134 Mapping getMappingFromOtsInterface(String nodeId, String interfName);
137 * This method removes a given mapping data from the mapping list
138 * stored in the datastore while the Netconf device is already
139 * connected to the controller.
143 * @param logicalConnectionPoint
144 * key of the mapping inside the mapping list
146 void deleteMapping(String nodeId, String logicalConnectionPoint);
149 * This method, for a given node media channel-capabilities, returns the object
150 * based on portmapping.yang model stored in the MD-SAL data store which is
151 * created when the node is connected for the first time. The mapping object
152 * basically contains the following attributes of interest:
155 * 1. slot width granularity
158 * 2. center frequency granularity
161 * 3. Supporting OMS interface (if port on ROADM)
164 * 4. Supporting OTS interface (if port on ROADM)
167 * Unique Identifier for the node of interest.
169 * Name of the MC-capability
171 * @return Result McCapabilities.
173 McCapabilities getMcCapbilities(String nodeId, String mcLcp);
176 * This method for a given node, allows to update a specific mapping based on
177 * portmapping.yang model already stored in the MD-SAL data store, following
178 * some changes on the device port (creation of interface supported on this
179 * port, change of port admin state, etc).
182 * Unique Identifier for the node of interest.
184 * Old mapping to be updated.
186 * @return Result true/false based on status of operation.
188 boolean updateMapping(String nodeId, Mapping mapping);
191 * Returns all Mapping informations for a given ordm device. This method returns
192 * all Mapping informations already stored in the MD-SAL data store for a given
193 * openroadm device. Beyound the list of mappings, it gives access to general
194 * node information as its version or its node type, etc.
197 * Unique Identifier for the node of interest.
199 * @return node data if success otherwise null.
201 Nodes getNode(String nodeId);
204 * This method allows to update a port-mapping node with odu-connection-map data.
205 * This method is used for an otn xponder in version 7.1, when a device sends a
206 * change-notification advertising controller that odu-switching-pools containers
207 * have been populated inside its configuration
208 * (appears after creation of an OTSI-Group interface).
211 * Unique Identifier for the node of interest.
213 * Instance Identifier of the odu-switching-pools.
215 * Map containing the non-blocking-list number as key,
216 * and the list of Instance Identifier corresponding to each port-list
219 * @return Result true/false based on status of operation.
221 boolean updatePortMappingWithOduSwitchingPools(String nodeId, InstanceIdentifier<OduSwitchingPools> ospIID,
222 Map<Uint16, List<InstanceIdentifier<PortList>>> nbliidMap);
225 * This method check the presence or not of a given node inside the PortMapping
229 * Unique Identifier for the node of interest.
231 * @return Result true/false based on existance or not of a given node.
233 boolean isNodeExist(String nodeId);