2 * Copyright © 2016 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
8 package org.opendaylight.transportpce.networkmodel.service;
10 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
11 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210618.renderer.rpc.result.sp.Link;
12 import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.OtnLinkType;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
14 import org.opendaylight.yangtools.yang.common.Uint32;
17 * Service for data manipulation on OpenROADM topology models.
19 public interface NetworkModelService {
22 * Create new OpenROADM node in all OpenROADM topologies.
25 * unique node ID of new OpenROADM node
27 * OpenROADM node version
29 void createOpenRoadmNode(String nodeId, String nodeVersion);
32 * Delete OpenROADM node from portmapping and topologies.
35 * unique node ID of OpenROADM node.
37 * @return result of node deletion from portmapping and topologies
39 boolean deleteOpenRoadmnode(String nodeId);
42 * Update termination point, and if need, be associated links, of
43 * openroadm-topology and otn-topology after a change on a given mapping.
46 * unique node ID of OpenROADM node at the origin of the NETCONF
47 * notification change.
49 * updated mapping following the device notification change.
51 void updateOpenRoadmTopologies(String nodeId, Mapping mapping);
54 * Set/update connection status of OpenROADM node.
57 * unique node ID of new OpenROADM node
58 * @param connectionStatus
59 * connection status of the node
61 void setOpenRoadmNodeStatus(String nodeId, NetconfNodeConnectionStatus.ConnectionStatus connectionStatus);
64 * create new otn link in otn-topology.
67 * OpenROADM node ID for link termination point A
69 * OpenROADM tp id on nodeA for link termination point A
71 * OpenROADM node ID for link termination point Z
73 * OpenROADM tp id on nodeZ for link termination point Z
75 * OtnLinkType, as OTU4, ODTU, etc
77 void createOtnLinks(String nodeA, String tpA, String nodeZ, String tpZ, OtnLinkType linkType);
80 * delete otn links from otn-topology.
83 * OpenROADM node ID for link termination point A
85 * OpenROADM tp id on nodeA for link termination point A
87 * OpenROADM node ID for link termination point Z
89 * OpenROADM tp id on nodeZ for link termination point Z
91 * OtnLinkType, as OTU4, ODTU, etc
93 void deleteOtnLinks(String nodeA, String tpA, String nodeZ, String tpZ, OtnLinkType linkType);
96 * Update otn links from otn-topology.
97 * For services using low-order odu, updates bandwidth parameters
98 * for both the direct parent high-order odu link, and also its server
102 * link containing termination points to be updated
104 * Service rate may be 1G, 10G, 100G or 400G
106 * Trib port number allocated by the service
107 * @param minTribSoltNb
108 * First contiguous trib slot number allocated by the service
109 * @param maxTribSoltNb
110 * Last contiguous trib slot number allocated by the service
112 * True indicates if the low-order otn service must be deleted
114 void updateOtnLinks(Link link, Uint32 serviceRate, Short tribPortNb, Short minTribSoltNb, Short maxTribSoltNb,
118 * Update otn links from otn-topology.
119 * For services using directly a high-order odu, updates bandwidth parameters
120 * of the direct parent otu link.
123 * link containing termination points to be updated
125 * True indicates if the low-order otn service must be deleted
127 void updateOtnLinks(Link link, boolean isDeletion);