X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2Ftest%2FNetworkmodelTestUtil.java;h=127200f7625124300695062666bdb75c43dd60ef;hb=67763b4d82e44c68fdbc765cdeec5496ff65b01e;hp=90e7d3831bb6b094e73b5f294d52c01e2bea7afb;hpb=29e64054b07584f432b8f23a8bfd2cab2cad0427;p=transportpce.git diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java index 90e7d3831..127200f76 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java @@ -7,20 +7,53 @@ */ package org.opendaylight.transportpce.networkmodel.util.test; - +import com.google.common.collect.ImmutableMap; import java.util.ArrayList; +import java.util.HashMap; 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 java.util.Map; +import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.nodes.NodeInfoBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; 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.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODTU4TsAllocated; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfaces; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.otn.tp.attributes.OdtuTpnPool; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.otn.tp.attributes.OdtuTpnPoolBuilder; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.termination.point.SupportingTerminationPoint; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.termination.point.SupportingTerminationPointBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.termination.point.SupportingTerminationPointKey; +import org.opendaylight.yangtools.yang.common.Uint16; +import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,7 +62,7 @@ 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<>(); + Map mappingList = new HashMap<>(); createDegreeMappings(mappingList, 1, degNb); createSrgMappings(mappingList, 1, srgNb); Nodes mappingNode = new NodesBuilder() @@ -42,18 +75,147 @@ public final class NetworkmodelTestUtil { public static Nodes createMappingForXpdr(String nodeId, String clli, int networkPortNb, int clientPortNb, XpdrNodeTypes xpdrNodeType) { - List mappingList = new ArrayList<>(); - createXpdrMappings(mappingList, networkPortNb, clientPortNb, xpdrNodeType); + Map mappingMap = new HashMap<>(); + createXpdrMappings(mappingMap, networkPortNb, clientPortNb, xpdrNodeType); Nodes mappingNode = new NodesBuilder() .setNodeId(nodeId) .setNodeInfo(new NodeInfoBuilder().setNodeType(NodeTypes.Xpdr).setNodeClli(clli).build()) - .setMapping(mappingList) + .setMapping(mappingMap) .build(); LOG.info("mapping = {}", mappingNode.toString()); return mappingNode; } - private static List createDegreeMappings(List mappingList, int degNbStart, int degNbStop) { + public static List createSuppOTNLinks(OtnLinkType type, int availBW) { + String prefix = null; + if (OtnLinkType.OTU4.equals(type)) { + prefix = "OTU4-"; + } else if (OtnLinkType.ODTU4.equals(type)) { + prefix = "ODU4-"; + } + Link linkAZ = new LinkBuilder() + .setLinkId(new LinkId(prefix + "SPDRA-XPDR1-XPDR1-NETWORK1toSPDRZ-XPDR1-XPDR1-NETWORK1")) + .setSource(new SourceBuilder() + .setSourceNode(new NodeId("SPDRA-XPDR1")) + .setSourceTp("XPDR1-NETWORK1").build()) + .setDestination(new DestinationBuilder() + .setDestNode(new NodeId("SPDRZ-XPDR1")) + .setDestTp("XPDR1-NETWORK1").build()) + .addAugmentation( + new Link1Builder() + .setLinkType(OpenroadmLinkType.OTNLINK) + .setOppositeLink(new LinkId(prefix + "SPDRZ-XPDR1-XPDR1-NETWORK1toSPDRA-XPDR1-XPDR1-NETWORK1")) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder() + .setAvailableBandwidth(Uint32.valueOf(availBW)) + .setUsedBandwidth(Uint32.valueOf(100000 - availBW)) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1Builder() + .setOtnLinkType(type) + .build()) + .build(); + Link linkZA = new LinkBuilder() + .setLinkId(new LinkId(prefix + "SPDRZ-XPDR1-XPDR1-NETWORK1toSPDRA-XPDR1-XPDR1-NETWORK1")) + .setSource(new SourceBuilder() + .setSourceNode(new NodeId("SPDRZ-XPDR1")) + .setSourceTp("XPDR1-NETWORK1").build()) + .setDestination(new DestinationBuilder() + .setDestNode(new NodeId("SPDRA-XPDR1")) + .setDestTp("XPDR1-NETWORK1").build()) + .addAugmentation( + new Link1Builder() + .setLinkType(OpenroadmLinkType.OTNLINK) + .setOppositeLink(new LinkId(prefix + "SPDRA-XPDR1-XPDR1-NETWORK1toSPDRZ-XPDR1-XPDR1-NETWORK1")) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder() + .setAvailableBandwidth(Uint32.valueOf(availBW)) + .setUsedBandwidth(Uint32.valueOf(100000 - availBW)) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1Builder() + .setOtnLinkType(type) + .build()) + .build(); + List links = new ArrayList<>(); + links.add(linkAZ); + links.add(linkZA); + return links; + } + + public static List createTpList(boolean withTpnTsPool) { + SupportedInterfaceCapability supCapa = new SupportedInterfaceCapabilityBuilder() + .setIfCapType(IfOCHOTU4ODU4.class) + .build(); + Map supInterCapaList = + new HashMap<>(); + supInterCapaList.put(supCapa.key(),supCapa); + TpSupportedInterfaces tpSuppInter = new TpSupportedInterfacesBuilder() + .setSupportedInterfaceCapability(supInterCapaList) + .build(); + XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder() + .setRate(ODU4.class); + if (withTpnTsPool) { + List tsPool = new ArrayList<>(); + for (int i = 0; i < 80; i++) { + tsPool.add(Uint16.valueOf(i + 1)); + } + xtpcaBldr.setTsPool(tsPool); + List tpnPool = new ArrayList<>(); + for (int i = 1; i <= 80; i++) { + tpnPool.add(Uint16.valueOf(i)); + } + OdtuTpnPool odtuTpn = new OdtuTpnPoolBuilder() + .setOdtuType(ODTU4TsAllocated.class) + .setTpnPool(tpnPool).build(); + xtpcaBldr.setOdtuTpnPool(ImmutableMap.of(odtuTpn.key(),odtuTpn)); + } + TerminationPoint1 otnTp1 = new TerminationPoint1Builder() + .setTpSupportedInterfaces(tpSuppInter) + .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()) + .build(); + SupportingTerminationPoint supTermPointA = new SupportingTerminationPointBuilder() + .setNetworkRef(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)) + .setNodeRef(new NodeId("SPDRA-XPDR1")) + .setTpRef("XPDR1-NETWORK1") + .build(); + Map supTermPointMapA = + Map.of(supTermPointA.key(), supTermPointA); + TerminationPoint tpA = new TerminationPointBuilder() + .setTpId(new TpId("XPDR1-NETWORK1")) + .setSupportingTerminationPoint(supTermPointMapA) + .addAugmentation(otnTp1) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.XPONDERNETWORK) + .build()) + .build(); + SupportingTerminationPoint supTermPointZ = new SupportingTerminationPointBuilder() + .setNetworkRef(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)) + .setNodeRef(new NodeId("SPDRZ-XPDR1")) + .setTpRef("XPDR1-NETWORK1") + .build(); + Map supTermPointMapZ = + Map.of(supTermPointZ.key(), supTermPointZ); + TerminationPoint tpZ = new TerminationPointBuilder() + .setTpId(new TpId("XPDR1-NETWORK1")) + .setSupportingTerminationPoint(supTermPointMapZ) + .addAugmentation(otnTp1) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.XPONDERNETWORK) + .build()) + .build(); + List tps = new ArrayList<>(); + tps.add(tpA); + tps.add(tpZ); + return tps; + } + + private static Map createDegreeMappings(Map mappingMap, + int degNbStart, int degNbStop) { for (int i = degNbStart; i <= degNbStop; i++) { Mapping mapping = new MappingBuilder() .setLogicalConnectionPoint("DEG" + i + "-TTP-TXRX") @@ -63,12 +225,13 @@ public final class NetworkmodelTestUtil { .setSupportingOts("OTS-DEG" + i + "-TTP-TXRX") .setSupportingOms("OMS-DEG" + i + "-TTP-TXRX") .build(); - mappingList.add(mapping); + mappingMap.put(mapping.key(),mapping); } - return mappingList; + return mappingMap; } - private static List createSrgMappings(List mappingList, int srgNbStart, int srgNbStop) { + private static Map createSrgMappings(Map mappingMap, + int srgNbStart, int srgNbStop) { for (int i = srgNbStart; i <= srgNbStop; i++) { for (int j = 1; j <= 4; j++) { Mapping mapping = new MappingBuilder() @@ -77,17 +240,19 @@ public final class NetworkmodelTestUtil { .setSupportingPort("C" + j) .setSupportingCircuitPackName(3 + i + "/0") .build(); - mappingList.add(mapping); + mappingMap.put(mapping.key(),mapping); } } - return mappingList; + return mappingMap; } - private static List createXpdrMappings(List mappingList, int networkPortNb, int clientPortNb, + private static Map createXpdrMappings(Map mappingMap, + int networkPortNb, int clientPortNb, XpdrNodeTypes xpdrNodeType) { for (int i = 1; i <= networkPortNb; i++) { - List> supportedIntf = new ArrayList<>(); - supportedIntf.add(IfOCH.class); + List> supportedIntf = new ArrayList<>(); + supportedIntf.add(org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCH.class); MappingBuilder mappingBldr = new MappingBuilder() .setLogicalConnectionPoint("XPDR1-NETWORK" + i) .setPortDirection("bidirectional") @@ -99,11 +264,13 @@ public final class NetworkmodelTestUtil { if (xpdrNodeType != null) { mappingBldr.setXponderType(xpdrNodeType); } - mappingList.add(mappingBldr.build()); + Mapping mapping = mappingBldr.build(); + mappingMap.put(mapping.key(),mapping); } for (int i = 1; i <= clientPortNb; i++) { - List> supportedIntf = new ArrayList<>(); - supportedIntf.add(If100GE.class); + List> supportedIntf = new ArrayList<>(); + supportedIntf.add(org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GE.class); Mapping mapping = new MappingBuilder() .setLogicalConnectionPoint("XPDR1-CLIENT" + i) .setPortDirection("bidirectional") @@ -113,9 +280,9 @@ public final class NetworkmodelTestUtil { .setPortQual(PortQual.XpdrClient.getName()) .setSupportingCircuitPackName("1/0/" + i + "-PLUG-CLIENT") .build(); - mappingList.add(mapping); + mappingMap.put(mapping.key(),mapping); } - return mappingList; + return mappingMap; } private NetworkmodelTestUtil() {