X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmOtnTopology.java;fp=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmOtnTopology.java;h=cc5e9ea264a576c366abd6985ee7b6aff158c4b0;hb=21d35937b8a2d9f6930985485a1b54eb7bec9a91;hp=beebcf41e21e0ca758ef9b94e63f0e1ca3db1eb8;hpb=48f7364d64b0c3095f4b5823c74374ac7d45d0ae;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java index beebcf41e..cc5e9ea26 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java @@ -9,6 +9,7 @@ package org.opendaylight.transportpce.networkmodel.util; import com.google.common.collect.ImmutableMap; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -23,40 +24,52 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPoolsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListKey; -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.OpenroadmNodeType; -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.ODTUCnTs; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU0; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OdtuTypeIdentity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OduRateIdentity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1Builder; -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.SwitchingPoolsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.TpBandwidthSharingBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.XpdrAttributesBuilder; -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.SupportedIfCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev201211.xpdr.odu.switching.pools.OduSwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev201211.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev201211.xpdr.odu.switching.pools.OduSwitchingPoolsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev201211.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev201211.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev201211.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODTU4TsAllocated; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODTUCnTs; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODU2; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OdtuTypeIdentity; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OduRateIdentity; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.SwitchingPoolsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.TpBandwidthSharingBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.XpdrAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If100GE; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If10GE; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If10GEODU2; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If1GE; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If1GEODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If400GE; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOCH; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOTUCnODUCn; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOtsiOtsigroup; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.SupportedIfCapability; import org.opendaylight.yang.gen.v1.http.org.openroadm.switching.pool.types.rev191129.SwitchingPoolTypes; -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.org.openroadm.xponder.rev211210.xpdr.otn.tp.attributes.OdtuTpnPool; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev211210.xpdr.otn.tp.attributes.OdtuTpnPoolBuilder; import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.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; @@ -113,6 +126,20 @@ public final class OpenRoadmOtnTopology { Uint32.valueOf(10), ODTU4TsAllocated.class, Uint32.valueOf(100), ODTUCnTs.class); + private static Map> supIfCapaMap = Map.ofEntries( + new AbstractMap.SimpleEntry<>("IfOtsiOtsigroup", IfOtsiOtsigroup.class), + new AbstractMap.SimpleEntry<>("IfOTUCnODUCn", IfOTUCnODUCn.class), + new AbstractMap.SimpleEntry<>("IfOCHOTU4ODU4", IfOCHOTU4ODU4.class), + new AbstractMap.SimpleEntry<>("IfOCH", IfOCH.class), + new AbstractMap.SimpleEntry<>("If100GEODU4", If100GEODU4.class), + new AbstractMap.SimpleEntry<>("If10GEODU2e", If10GEODU2e.class), + new AbstractMap.SimpleEntry<>("If10GEODU2", If10GEODU2.class), + new AbstractMap.SimpleEntry<>("If1GEODU0", If1GEODU0.class), + new AbstractMap.SimpleEntry<>("If400GE", If400GE.class), + new AbstractMap.SimpleEntry<>("If100GE", If100GE.class), + new AbstractMap.SimpleEntry<>("If10GE", If10GE.class), + new AbstractMap.SimpleEntry<>("If1GE", If1GE.class)); + private OpenRoadmOtnTopology() { } @@ -343,9 +370,9 @@ public final class OpenRoadmOtnTopology { .addAugmentation(tpceLink1) .addAugmentation(otnLink1Bldr.build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1Builder( ietfLinkAZBldr.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1.class)) .setLinkType(OpenroadmLinkType.OTNLINK) .setOperationalState(State.InService) .setAdministrativeState(AdminStates.InService) @@ -357,9 +384,9 @@ public final class OpenRoadmOtnTopology { .addAugmentation(tpceLink1) .addAugmentation(otnLink1Bldr.build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1Builder( ietfLinkZABldr.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1.class)) .setLinkType(OpenroadmLinkType.OTNLINK) .setOperationalState(State.InService) .setAdministrativeState(AdminStates.InService) @@ -538,8 +565,6 @@ public final class OpenRoadmOtnTopology { } private static Node createTpdr(OtnTopoNode node) { - - // prepare ietf node augmentation to add TP list Map tpMap = new HashMap<>(); createTP(tpMap, node, OpenroadmTpType.XPONDERCLIENT, false); createTP(tpMap, node, OpenroadmTpType.XPONDERNETWORK, true); @@ -556,7 +581,7 @@ public final class OpenRoadmOtnTopology { .build()) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder() .setNodeType(OpenroadmNodeType.TPDR) .setOperationalState(State.InService) .setAdministrativeState(AdminStates.InService) @@ -591,7 +616,6 @@ public final class OpenRoadmOtnTopology { .setSwitchingPoolType(SwitchingPoolTypes.NonBlocking) .setNonBlockingList(nbMap) .build(); - // prepare ietf node augmentation to add TP list Map tpMap = new HashMap<>(); createTP(tpMap, node, OpenroadmTpType.XPONDERCLIENT, true); createTP(tpMap, node, OpenroadmTpType.XPONDERNETWORK, true); @@ -613,7 +637,7 @@ public final class OpenRoadmOtnTopology { .build()) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder() .setNodeType(OpenroadmNodeType.MUXPDR) .setAdministrativeState(AdminStates.InService) .setOperationalState(State.InService) @@ -648,7 +672,6 @@ public final class OpenRoadmOtnTopology { .build(); Map oduSwitchPoolList = new HashMap<>(); oduSwitchPoolList.put(oduSwitchPool.key(),oduSwitchPool); - // prepare ietf node augmentation to add TP list Map tpMap = new HashMap<>(); createTP(tpMap, node, OpenroadmTpType.XPONDERCLIENT, true); createTP(tpMap, node, OpenroadmTpType.XPONDERNETWORK, true); @@ -670,7 +693,7 @@ public final class OpenRoadmOtnTopology { .build()) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder() .setNodeType(OpenroadmNodeType.SWITCH) .setOperationalState(State.InService) .setAdministrativeState(AdminStates.InService) @@ -713,10 +736,11 @@ public final class OpenRoadmOtnTopology { mapping.getLogicalConnectionPoint(), node.getNodeId()); } else { XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder(); - for (Class supInterCapa : mapping.getSupportedInterfaceCapability()) { + for (Class supInterCapa : mapping.getSupportedInterfaceCapability()) { SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder() - .withKey(new SupportedInterfaceCapabilityKey(supInterCapa)) - .setIfCapType(supInterCapa) + .withKey(new SupportedInterfaceCapabilityKey(convertSupIfCapa(supInterCapa.getSimpleName()))) + .setIfCapType(convertSupIfCapa(supInterCapa.getSimpleName())) .build(); supIfMap.put(supIfCapa.key(), supIfCapa); } @@ -776,9 +800,11 @@ public final class OpenRoadmOtnTopology { } } - private static Class fixRate(List> list) { + private static Class fixRate(List> list) { - for (Class class1 : list) { + for (Class + class1 : list) { if (RATE_MAP.containsKey(class1.getSimpleName())) { return RATE_MAP.get(class1.getSimpleName()); } @@ -836,7 +862,7 @@ public final class OpenRoadmOtnTopology { .withKey(new TerminationPointKey(tpId)) .addAugmentation(otnTp1) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1Builder() .setTpType(tpType) .setAdministrativeState(TopologyUtils.setNetworkAdminState(mapping.getPortAdminState())) .setOperationalState(TopologyUtils.setNetworkOperState(mapping.getPortOperState())) @@ -850,4 +876,11 @@ public final class OpenRoadmOtnTopology { ? nodeName : new StringBuilder(nodeName).append("-").append(tpName.split("-")[0]).toString(); } + + private static Class convertSupIfCapa(String ifCapType) { + if (!supIfCapaMap.containsKey(ifCapType)) { + return null; + } + return supIfCapaMap.get(ifCapType); + } }