X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Futils%2FNodeUtils.java;h=0e081eabee35a3a7c148a54ae5bbd0c7313bd325;hb=HEAD;hp=a1777e8612a4808641b28bb210158616432e8203;hpb=98de423782828b8b44b9cb341a581e1e90a16971;p=transportpce.git diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java index a1777e861..de5ecb618 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java @@ -8,53 +8,47 @@ package org.opendaylight.transportpce.pce.utils; -import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If1GEODU0; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; +import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.span.attributes.LinkConcatenation1.FiberType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.span.attributes.LinkConcatenation1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.link.concatenation.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.link.concatenation.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.link.concatenation.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev230526.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev230526.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.If1GEODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.IfOCHOTU4ODU4; 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.rev180226.networks.network.NodeBuilder; @@ -65,320 +59,329 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev 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.Node1Builder; 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.LinkKey; 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.yangtools.yang.binding.Augmentation; -import org.opendaylight.yangtools.yang.common.Uint16; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey; +import org.opendaylight.yangtools.yang.common.Decimal64; import org.opendaylight.yangtools.yang.common.Uint32; -public class NodeUtils { +public final class NodeUtils { private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s"; - public static LinkBuilder createLinkBuilder( + public static LinkBuilder createLinkBuilder(boolean omsPresent, String srcNode, String destNode, String srcTp, String destTp, Link1Builder link1Builder) { - SourceBuilder ietfSrcLinkBldr = - new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp); - //create destination link - DestinationBuilder ietfDestLinkBldr = - new DestinationBuilder().setDestNode(new NodeId(destNode)).setDestTp(destTp); LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp)); + var oppLink1 = link1Builder + .setOppositeLink(new LinkId(String.format(LINK_ID_FORMAT, destNode, destTp, srcNode, srcTp))) + .build(); + LinkBuilder linkBldr = + new LinkBuilder() + .setSource( + new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(new TpId(srcTp)).build()) + .setDestination( + new DestinationBuilder().setDestNode(new NodeId(destNode)).setDestTp(new TpId(destTp)).build()) + .setLinkId(linkId); + if (!omsPresent) { + return linkBldr + .withKey(new LinkKey(linkId)) + .addAugmentation(oppLink1); + } + LinkConcatenation linkConcatenation = new LinkConcatenationBuilder() + .withKey(new LinkConcatenationKey(Uint32.valueOf(1))) + .setSRLGLength(Decimal64.valueOf(50000, RoundingMode.FLOOR)) + .addAugmentation(new LinkConcatenation1Builder().setFiberType(FiberType.Smf).build()) + .build(); + return linkBldr + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.Link1Builder() + .setAmplified(false) + .setOMSAttributes( + new OMSAttributesBuilder() + .setSpan( + new SpanBuilder() + .setSpanlossCurrent(new RatioDB(Decimal64.valueOf("20"))) + .setLinkConcatenation(Map.of(linkConcatenation.key(), linkConcatenation)) + .build()) + .build()) + .build()) + .withKey(new LinkKey(linkId)) + .addAugmentation(oppLink1); + } - LinkId oppositeLinkId = new LinkId("OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1"); - //For setting up attributes for openRoadm augment - OMSAttributesBuilder omsAttributesBuilder = - new OMSAttributesBuilder().setOppositeLink(oppositeLinkId); - - // Augementation - Augmentation aug11 = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .Link1Builder() - .setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) - .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) - .setOMSAttributes(new OMSAttributesBuilder() - .setOppositeLink(new LinkId("OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1")) - .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); + public static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) { + return createLinkBuilder(true, srcNode, destNode, srcTp, destTp, + new Link1Builder() + .setLinkLatency(Uint32.valueOf(2)) + .setLinkLength(Decimal64.valueOf("50.0")) + .setLinkType(OpenroadmLinkType.ROADMTOROADM) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService)); + } - LinkBuilder linkBuilder = new LinkBuilder() - .setSource(ietfSrcLinkBldr.build()) - .setDestination(ietfDestLinkBldr.build()) - .setLinkId(linkId) - .addAugmentation(aug11) - .withKey(new LinkKey(linkId)); + public static LinkBuilder createAdd(String srcNode, String destNode, String srcTp, String destTp) { + return createLinkBuilder(false, srcNode, destNode, srcTp, destTp, + new Link1Builder() + .setLinkLatency(Uint32.valueOf(0)) + .setLinkLength(Decimal64.valueOf("0.01")) + .setLinkType(OpenroadmLinkType.ADDLINK) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService)); + } - linkBuilder.addAugmentation(link1Builder.build()); - return linkBuilder; + public static LinkBuilder createDrop(String srcNode, String destNode, String srcTp, String destTp) { + return createLinkBuilder(false, srcNode, destNode, srcTp, destTp, + new Link1Builder() + .setLinkLatency(Uint32.valueOf(0)) + .setLinkLength(Decimal64.valueOf("0.01")) + .setLinkType(OpenroadmLinkType.DROPLINK) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService)); } - public static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) { - Link1Builder link1Builder = new Link1Builder() - .setLinkLatency(Uint32.valueOf(30)) - .setLinkType(OpenroadmLinkType.ROADMTOROADM); - return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder); + public static LinkBuilder createXpdrToSrg(String srcNode, String destNode, String srcTp, String destTp) { + return createLinkBuilder(false, srcNode, destNode, srcTp, destTp, + new Link1Builder() + .setLinkLatency(Uint32.valueOf(0)) + .setLinkLength(Decimal64.valueOf("0.01")) + .setLinkType(OpenroadmLinkType.XPONDEROUTPUT) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService)); + } + public static LinkBuilder createSrgToXpdr(String srcNode, String destNode, String srcTp, String destTp) { + return createLinkBuilder(false, srcNode, destNode, srcTp, destTp, + new Link1Builder() + .setLinkLatency(Uint32.valueOf(0)) + .setLinkLength(Decimal64.valueOf("0.01")) + .setLinkType(OpenroadmLinkType.XPONDERINPUT) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService)); } public static Map geSupportingNodes() { - Map supportingNodes1 = new HashMap<>(); SupportingNode supportingNode1 = new SupportingNodeBuilder() .setNodeRef(new NodeId("node 1")) .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)) .build(); - supportingNodes1 - .put(supportingNode1.key(),supportingNode1); - SupportingNode supportingNode2 = new SupportingNodeBuilder() .setNodeRef(new NodeId("node 2")) .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)) .build(); - supportingNodes1 - .put(supportingNode2.key(),supportingNode2); - return supportingNodes1; + return new HashMap<>( + Map.of( + supportingNode1.key(),supportingNode1, + supportingNode2.key(),supportingNode2 + )); } public static NodeBuilder getNodeBuilder(Map supportingNodes1) { - - //update tp of nodes - TerminationPointBuilder xpdrTpBldr = new TerminationPointBuilder(); - TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder(); - - tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK); - xpdrTpBldr.addAugmentation(tp1Bldr.build()); - TerminationPoint xpdr = xpdrTpBldr.build(); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1 = - new Node1Builder().setTerminationPoint(Map.of(xpdr.key(),xpdr)).build(); - - - return new NodeBuilder() - .setNodeId(new NodeId("node 1")) - .withKey(new NodeKey(new NodeId("node 1"))) - .addAugmentation(node1) - .setSupportingNode(supportingNodes1); - } - - private Link genereateLinkBuilder() { - - Map linkConcentationValues = new HashMap<>(); - LinkConcatenation linkConcatenation = new LinkConcatenationBuilder() - .setFiberType(LinkConcatenation.FiberType.Truewave) - .setPmd(new FiberPmd(BigDecimal.ONE)) - .setSRLGId(Uint32.valueOf(1)) - .setSRLGLength(Uint32.valueOf(1)) - .build(); - LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder() - .setFiberType(LinkConcatenation.FiberType.Truewave) - .setPmd(new FiberPmd(BigDecimal.ONE)) - .setSRLGId(Uint32.valueOf(1)) - .setSRLGLength(Uint32.valueOf(1)) - .build(); - linkConcentationValues.put(linkConcatenation.key(),linkConcatenation); - linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2); - - Map - amplifiedLinkValues = new HashMap<>(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes - .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() - .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130 - .amplified.link.attributes.amplified.link.section.element.section.element - .SpanBuilder() - .setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified - .link.attributes.amplified.link.section.element.section - .element.span.SpanBuilder() - .setAdministrativeState(AdminStates.InService) - .setAutoSpanloss(true) - .setClfi("clfi") - .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) - .setLinkConcatenation(linkConcentationValues) - .setSpanlossBase(new RatioDB(BigDecimal.ONE)) - .setSpanlossCurrent(new RatioDB(BigDecimal.ONE)) - .build()) + TerminationPoint xpdrNw = + new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("xpdrNWTXRX"))) + .addAugmentation( + new TerminationPoint1Builder() + .setTpType(OpenroadmTpType.XPONDERNETWORK) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 + .TerminationPoint1Builder() + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526 + .TerminationPoint1Builder() + .setXpdrNetworkAttributes( + new XpdrNetworkAttributesBuilder() + .setState(State.InService) .build()) .build()) - .setSectionEltNumber(Uint16.valueOf(1)).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes - .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() - .setSectionElement( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link - .attributes.amplified.link.section.element.section.element.SpanBuilder() - .setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130 - .amplified.link - .attributes.amplified.link.section.element.section.element.span - .SpanBuilder() - .setAdministrativeState(AdminStates.InService) - .setAutoSpanloss(true) - .setClfi("clfi") - .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) - .setLinkConcatenation(linkConcentationValues) - .setSpanlossBase(new RatioDB(BigDecimal.ONE)) - .setSpanlossCurrent(new RatioDB(BigDecimal.ONE)) - .build()) - .build()) + .build(); + TerminationPoint xpdrClient = + new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("xpdrClientTXRX"))) + .addAugmentation( + new TerminationPoint1Builder() + .setTpType(OpenroadmTpType.XPONDERCLIENT) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 + .TerminationPoint1Builder() + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) .build()) - .setSectionEltNumber(Uint16.valueOf(1)).build(); - - amplifiedLinkValues.put(al.key(),al); - amplifiedLinkValues.put(al2.key(),al2); - Augmentation aug11 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder() - .setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) - .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) - .setOMSAttributes(new OMSAttributesBuilder() - .setAmplifiedLink(new AmplifiedLinkBuilder() - .setAmplifiedLink(amplifiedLinkValues) - .build()) - .setOppositeLink(new LinkId("link 1")) - .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); - - TransactionUtils.getNetworkForSpanLoss(); - return new LinkBuilder() - .setLinkId(new LinkId("OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1")) - .setSource( - new SourceBuilder() - .setSourceNode(new NodeId("OpenROADM-3-2-DEG1")) - .setSourceTp("DEG1-TTP-TX").build()) - .setDestination( - new DestinationBuilder() - .setDestNode(new NodeId("OpenROADM-3-1-DEG1")) - .setDestTp("DEG1-TTP-RX").build()) - .addAugmentation(aug11) .build(); + return new NodeBuilder() + .setNodeId(new NodeId("XPDR1")) + .withKey(new NodeKey(new NodeId("XPDR1"))) + .addAugmentation( + new Node1Builder() + .setTerminationPoint(Map.of(xpdrNw.key(),xpdrNw, xpdrClient.key(), xpdrClient)) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1Builder() + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .setSupportingNode(supportingNodes1); + } + public static NodeBuilder getDegNodeBuilder(Map supportingNodes, String nodeId) { + // update tp of nodes + TerminationPoint degTTP = new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("DEG1-TTP-TXRX"))) + .addAugmentation( + new TerminationPoint1Builder() + .setTpType(OpenroadmTpType.DEGREETXRXTTP) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .build(); + TerminationPoint degCTP = new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("DEG1-CTP-TXRX"))) + .addAugmentation( + new TerminationPoint1Builder() + .setTpType(OpenroadmTpType.DEGREETXRXCTP) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .build(); + return new NodeBuilder() + .setNodeId(new NodeId(nodeId)) + .withKey(new NodeKey(new NodeId(nodeId))) + .addAugmentation( + new Node1Builder() + .setTerminationPoint(Map.of(degTTP.key(), degTTP, degCTP.key(), degCTP)) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1Builder() + .setOperationalState(State.InService).setAdministrativeState(AdminStates.InService).build()) + .setSupportingNode(supportingNodes); + } + public static NodeBuilder getSrgNodeBuilder(Map supportingNodes, String nodeId) { + // update tp of nodes + TerminationPoint srgPP = new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("SRG1-PP-TXRX"))) + .addAugmentation( + new TerminationPoint1Builder() + .setTpType(OpenroadmTpType.SRGTXRXPP) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .build(); + TerminationPoint srgCP = new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("SRG1-CP-TXRX"))) + .addAugmentation( + new TerminationPoint1Builder() + .setTpType(OpenroadmTpType.SRGTXRXCP) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .build(); + return new NodeBuilder() + .setNodeId(new NodeId(nodeId)) + .withKey(new NodeKey(new NodeId(nodeId))) + .addAugmentation( + new Node1Builder() + .setTerminationPoint(Map.of(srgPP.key(), srgPP, srgCP.key(), srgCP)).build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1Builder() + .setOperationalState(State.InService).setAdministrativeState(AdminStates.InService).build()) + .setSupportingNode(supportingNodes); } // OTN network node public static List getOTNSupportingNodes() { - List supportingNodes1 = new ArrayList<>(); - supportingNodes1 - .add(new SupportingNodeBuilder() - .setNodeRef(new NodeId("node 1")) - .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)) - .build()); - - supportingNodes1 - .add(new SupportingNodeBuilder() + return new ArrayList<>( + List.of( + new SupportingNodeBuilder() + .setNodeRef(new NodeId("node 1")) + .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)) + .build(), + new SupportingNodeBuilder() .setNodeRef(new NodeId("node 2")) .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)) - .build()); - return supportingNodes1; + .build())); } public static NodeBuilder getOTNNodeBuilder(Map supportingNodes1, - OpenroadmTpType openroadmTpType) { - - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder - tp1Bldr = getTerminationPoint1Builder(openroadmTpType); - TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType); - xpdrTpBldr - .addAugmentation(tp1Bldr.build()); - - xpdrTpBldr.addAugmentation(createAnother2TerminationPoint(openroadmTpType).build()); - xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()); - - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1(); - TerminationPoint xpdr = xpdrTpBldr.build(); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = - new Node1Builder() - .setTerminationPoint(Map.of(xpdr.key(),xpdr)) - .build(); - - - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 nodeIetf = - new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 - .Node1Builder() - .setTerminationPoint(Map.of(xpdr.key(),xpdr)) - .build(); - + OpenroadmTpType openroadmTpType) { + TerminationPoint xpdr = getTerminationPointBuilder(openroadmTpType) + .addAugmentation(getTerminationPoint1Builder(openroadmTpType).build()) + .addAugmentation(createAnother2TerminationPoint(openroadmTpType).build()) + .addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()) + .build(); return new NodeBuilder() .setNodeId(new NodeId("node_test")) .withKey(new NodeKey(new NodeId("node 1"))) - .addAugmentation(node1Rev180226) - .addAugmentation(node1) - .addAugmentation(nodeIetf) + .addAugmentation(new Node1Builder().setTerminationPoint(Map.of(xpdr.key(),xpdr)).build()) + .addAugmentation(getNode1()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .Node1Builder() + .setTerminationPoint(Map.of(xpdr.key(),xpdr)) + .build()) .setSupportingNode(supportingNodes1); } public static NodeBuilder getOTNNodeBuilderEmpty(Map supportingNodes1, - OpenroadmTpType openroadmTpType) { - - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder tp1Bldr = - getTerminationPoint1Builder(openroadmTpType); - TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType); - xpdrTpBldr.addAugmentation(tp1Bldr.build()); - xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()); - - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty(); - TerminationPoint xpdr = xpdrTpBldr.build(); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = - new Node1Builder() - .setTerminationPoint(Map.of(xpdr.key(),xpdr)) - .build(); - - + OpenroadmTpType openroadmTpType) { + TerminationPoint xpdr = getTerminationPointBuilder(openroadmTpType) + .addAugmentation(getTerminationPoint1Builder(openroadmTpType).build()) + .addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()) + .build(); return new NodeBuilder() .setNodeId(new NodeId("node_test")) .withKey(new NodeKey(new NodeId("node 1"))) - .addAugmentation(node1Rev180226) - .addAugmentation(node1) + .addAugmentation( + new Node1Builder() + .setTerminationPoint(Map.of(xpdr.key(),xpdr)) + .build()) + .addAugmentation(getNode1Empty()) .setSupportingNode(supportingNodes1); } - private static org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + private static org.opendaylight.yang.gen.v1.http + .org.openroadm.network.topology.rev230526.Node1 getNode1() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.Node1Builder() .setSrgAttributes(getSrgAttributes()) .setDegreeAttributes(getDegAttributes()) .build(); } - private static org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + private static org.opendaylight.yang.gen.v1.http + .org.openroadm.network.topology.rev230526.Node1 getNode1Empty() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.Node1Builder() .setSrgAttributes(getEmptySrgAttributes()) .setDegreeAttributes(getEmptyDegAttributes()) .build(); } private static DegreeAttributes getDegAttributes() { - AvailableWavelengths aval = new AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(20)) - .build(); return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of(aval.key(),aval)) + .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()) .build(); } private static SrgAttributes getSrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); } private static DegreeAttributes getEmptyDegAttributes() { return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of()) + .setAvailFreqMaps(Map.of()) .build(); } private static SrgAttributes getEmptySrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(Map.of()).build(); } private static TerminationPointBuilder getTerminationPointBuilder(OpenroadmTpType openroadmTpType) { @@ -387,23 +390,21 @@ public class NodeUtils { .addAugmentation(createOTNTerminationPoint(openroadmTpType).build()); } - private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder - getTerminationPoint1Builder(OpenroadmTpType openroadmTpType) { - - return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + private static org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev230526.TerminationPoint1Builder getTerminationPoint1Builder( + OpenroadmTpType openroadmTpType) { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1Builder() .setTpType(openroadmTpType); } - private static org.opendaylight.yang.gen - .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint( - OpenroadmTpType openroadmTpType - ) { + private static org.opendaylight.yang.gen.v1.http + .org.openroadm.network.topology.rev230526.TerminationPoint1Builder createAnotherTerminationPoint( + OpenroadmTpType openroadmTpType) { return new org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder() - .setTpType(openroadmTpType) - .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) - .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) + .yang.gen.v1.http.org.openroadm.network.topology.rev230526.TerminationPoint1Builder() + .setCtpAttributes((new CtpAttributesBuilder()).build()) + .setCpAttributes((new CpAttributesBuilder()).build()) .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build()) @@ -413,72 +414,47 @@ public class NodeUtils { .setTailEquipmentId("destNode" + "--" + "destTp").build()); } - private static org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + private static org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev230526 .TerminationPoint1Builder createOTNTerminationPoint(OpenroadmTpType openroadmTpType) { - SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder() - .setIfCapType(IfOCHOTU4ODU4.class) + .setIfCapType(IfOCHOTU4ODU4.VALUE) .build(); - SupportedInterfaceCapability supIfCapa1 = new SupportedInterfaceCapabilityBuilder() - .setIfCapType(If100GEODU4.class) + .setIfCapType(If100GEODU4.VALUE) .build(); SupportedInterfaceCapability supIfCapa2 = new SupportedInterfaceCapabilityBuilder() - .setIfCapType(If10GEODU2e.class) + .setIfCapType(If10GEODU2e.VALUE) .build(); SupportedInterfaceCapability supIfCapa3 = new SupportedInterfaceCapabilityBuilder() - .setIfCapType(If1GEODU0.class) - .build(); - - Map supIfCapaList = new HashMap<>(); - supIfCapaList.put(supIfCapa.key(),supIfCapa); - supIfCapaList.put(supIfCapa1.key(),supIfCapa1); - supIfCapaList.put(supIfCapa2.key(),supIfCapa2); - supIfCapaList.put(supIfCapa3.key(),supIfCapa3); - - TpSupportedInterfaces tpSupIf = new TpSupportedInterfacesBuilder() - .setSupportedInterfaceCapability(supIfCapaList) + .setIfCapType(If1GEODU0.VALUE) .build(); - - XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder(); - - return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev230526 .TerminationPoint1Builder() - .setTpType(openroadmTpType) - .setTpSupportedInterfaces(tpSupIf) - .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()); + .setTpSupportedInterfaces( + new TpSupportedInterfacesBuilder() + .setSupportedInterfaceCapability( + new HashMap<>( + Map.of( + supIfCapa.key(),supIfCapa, + supIfCapa1.key(),supIfCapa1, + supIfCapa2.key(),supIfCapa2, + supIfCapa3.key(),supIfCapa3)) + ) + .build() + ) + .setXpdrTpPortConnectionAttributes(new XpdrTpPortConnectionAttributesBuilder().build()); } - private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 .TerminationPoint1Builder createAnother2TerminationPoint(OpenroadmTpType openroadmTpType) { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 .TerminationPoint1Builder() + .setOperationalState(State.InService) + .setAdministrativeState(AdminStates.InService) .setTpType(openroadmTpType); } - private static Map create96AvalWaveSrg() { - - Map - waveList = new HashMap<>(); - - for (int i = 1; i < 97; i++) { - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder avalBldr - = new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(i)) - .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsKey(Uint32.valueOf(i))); - org.opendaylight.yang.gen.v1.http.org.openroadm.srg - .rev181130.srg.node.attributes.AvailableWavelengths aval = - avalBldr.build(); - waveList.put(aval.key(),aval); - } - return waveList; + private NodeUtils() { + throw new IllegalStateException("Utility class"); } - }