/* * Copyright © 2020 Orange Labs, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.transportpce.networkmodel.util.test; import java.util.ArrayList; import java.util.List; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.Nodes; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.NodesBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.MappingBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.NodeInfoBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.NodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.PortQual; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.If100GE; import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.IfOCH; import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.SupportedIfCapability; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class NetworkmodelTestUtil { private static final Logger LOG = LoggerFactory.getLogger(NetworkmodelTestUtil.class); public static Nodes createMappingForRdm(String nodeId, String clli, int degNb, int srgNb) { List mappingList = new ArrayList<>(); createDegreeMappings(mappingList, 1, degNb); createSrgMappings(mappingList, 1, srgNb); Nodes mappingNode = new NodesBuilder() .setNodeId(nodeId) .setNodeInfo(new NodeInfoBuilder().setNodeType(NodeTypes.Rdm).setNodeClli(clli).build()) .setMapping(mappingList) .build(); return mappingNode; } public static Nodes createMappingForXpdr(String nodeId, String clli, int networkPortNb, int clientPortNb, XpdrNodeTypes xpdrNodeType) { List mappingList = new ArrayList<>(); createXpdrMappings(mappingList, networkPortNb, clientPortNb, xpdrNodeType); Nodes mappingNode = new NodesBuilder() .setNodeId(nodeId) .setNodeInfo(new NodeInfoBuilder().setNodeType(NodeTypes.Xpdr).setNodeClli(clli).build()) .setMapping(mappingList) .build(); LOG.info("mapping = {}", mappingNode.toString()); return mappingNode; } private static List createDegreeMappings(List mappingList, int degNbStart, int degNbStop) { for (int i = degNbStart; i <= degNbStop; i++) { Mapping mapping = new MappingBuilder() .setLogicalConnectionPoint("DEG" + i + "-TTP-TXRX") .setPortDirection("bidirectional") .setSupportingPort("L1") .setSupportingCircuitPackName(i + "/0") .setSupportingOts("OTS-DEG" + i + "-TTP-TXRX") .setSupportingOms("OMS-DEG" + i + "-TTP-TXRX") .build(); mappingList.add(mapping); } return mappingList; } private static List createSrgMappings(List mappingList, int srgNbStart, int srgNbStop) { for (int i = srgNbStart; i <= srgNbStop; i++) { for (int j = 1; j <= 4; j++) { Mapping mapping = new MappingBuilder() .setLogicalConnectionPoint("SRG" + i + "-PP" + j + "-TXRX") .setPortDirection("bidirectional") .setSupportingPort("C" + j) .setSupportingCircuitPackName(3 + i + "/0") .build(); mappingList.add(mapping); } } return mappingList; } private static List createXpdrMappings(List mappingList, int networkPortNb, int clientPortNb, XpdrNodeTypes xpdrNodeType) { for (int i = 1; i <= networkPortNb; i++) { List> supportedIntf = new ArrayList<>(); supportedIntf.add(IfOCH.class); MappingBuilder mappingBldr = new MappingBuilder() .setLogicalConnectionPoint("XPDR1-NETWORK" + i) .setPortDirection("bidirectional") .setSupportingPort("1") .setSupportedInterfaceCapability(supportedIntf) .setConnectionMapLcp("XPDR1-CLIENT" + i) .setPortQual(PortQual.XpdrNetwork.getName()) .setSupportingCircuitPackName("1/0/" + i + "-PLUG-NET"); if (xpdrNodeType != null) { mappingBldr.setXponderType(xpdrNodeType); } mappingList.add(mappingBldr.build()); } for (int i = 1; i <= clientPortNb; i++) { List> supportedIntf = new ArrayList<>(); supportedIntf.add(If100GE.class); Mapping mapping = new MappingBuilder() .setLogicalConnectionPoint("XPDR1-CLIENT" + i) .setPortDirection("bidirectional") .setSupportingPort("C1") .setSupportedInterfaceCapability(supportedIntf) .setConnectionMapLcp("XPDR1-NETWORK" + i) .setPortQual(PortQual.XpdrClient.getName()) .setSupportingCircuitPackName("1/0/" + i + "-PLUG-CLIENT") .build(); mappingList.add(mapping); } return mappingList; } private NetworkmodelTestUtil() { } }