- private NodeData createDegreeNode(String nodeId, int degreeCounter) {
- // Create augmentation node to inorder to add degree
- Node1Builder node1bldr = new Node1Builder();
- // set node type to degree
- node1bldr.setNodeType(OpenroadmNodeType.DEGREE);
-
- // Get connection ports on degree number = degreeCounter in order to get port
- // direction
- List<ConnectionPorts> degreeConPorts = getDegreePorts(nodeId, degreeCounter);
- if ((degreeConPorts == null) || degreeConPorts.isEmpty()) {
- return null;
- }
-
- DegreeAttributesBuilder degAttBldr = new DegreeAttributesBuilder();
- degAttBldr.setDegreeNumber(degreeCounter);
- degAttBldr.setAvailableWavelengths(create96AvalWaveDegree());
- node1bldr.setDegreeAttributes(degAttBldr.build());
-
- String nodeIdtopo = new StringBuilder(nodeId).append("-DEG").append(degreeCounter).toString();
- // Create a generic Topo Layer node
- NodeBuilder nodebldr = createTopoLayerNode(nodeId);
- nodebldr.setNodeId(new NodeId(nodeIdtopo));
- // Ad degree node specific augmentation
- nodebldr.addAugmentation(Node1.class, node1bldr.build());
- // Get Port direction
- int portDirectionEnum = getPortDirection(nodeId, degreeConPorts.get(0).getCircuitPackName(),
- degreeConPorts.get(0).getPortName().toString());
-
- /*
- * if bi-directional then create 2 tp's :
- *
- * --> TTP-TXRX --> CTP-TXRX
- *
- * if uni-directional :
- *
- * --> TTP-TX --> TTP-RX --> CTP-TX --> CTP-RX
- */
- TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
- TerminationPointBuilder tempTpBldr;
-
- List<TerminationPoint> tpList = new ArrayList<>();
- if ((portDirectionEnum == 1) || (portDirectionEnum == 2)) {
- // ports are uni Directional on a degree, therefore 4 termination points
- // Create TTP-TX termination
-
- tempTpBldr = createTpBldr("DEG" + degreeCounter + "-TTP-TX");
- tp1Bldr.setTpType(OpenroadmTpType.DEGREETXTTP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- // Create TTP-RX termination
- tp1Bldr = new TerminationPoint1Builder();
- tempTpBldr = createTpBldr("DEG" + degreeCounter + "-TTP-RX");
- tp1Bldr.setTpType(OpenroadmTpType.DEGREERXTTP);
-
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- // Create CTP-TX termination
- tp1Bldr = new TerminationPoint1Builder();
- tempTpBldr = createTpBldr("DEG" + degreeCounter + "-CTP-TX");
- tp1Bldr.setTpType(OpenroadmTpType.DEGREETXCTP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- // Create CTP-RX termination
- tp1Bldr = new TerminationPoint1Builder();
- tempTpBldr = createTpBldr("DEG" + degreeCounter + "-CTP-RX");
- tp1Bldr.setTpType(OpenroadmTpType.DEGREERXCTP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- } else if (portDirectionEnum == 3) {
- // Ports are bi directional therefore 2 termination points
- // Create TTP-TXRX termination
- tp1Bldr = new TerminationPoint1Builder();
- tempTpBldr = createTpBldr("DEG" + degreeCounter + "-TTP-TXRX");
- tp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXTTP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- // Create CTP-TXRX termination
- tp1Bldr = new TerminationPoint1Builder();
- tempTpBldr = createTpBldr("DEG" + degreeCounter + "-CTP-TXRX");
- tp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXCTP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- }
-
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder tpNode1 =
- new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder();
-
- tpNode1.setTerminationPoint(tpList);
-
- nodebldr.addAugmentation(
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1.class,
- tpNode1.build());
- return new NodeData(nodebldr, portDirectionEnum);
- }
-
- private NodeBuilder createSrgNode(String nodeId, int srgCounter, int portDirectionEnum) {
- // Create augmentation node to inorder to add degree
- Node1Builder node1bldr = new Node1Builder();
- // set node type to degree
- node1bldr.setNodeType(OpenroadmNodeType.SRG);
-
- node1bldr.setNodeType(OpenroadmNodeType.SRG);
-
- SrgAttributesBuilder srgAttrBldr = new SrgAttributesBuilder();
- srgAttrBldr.setAvailableWavelengths(create96AvalWaveSrg());
- node1bldr.setSrgAttributes(srgAttrBldr.build());
-
- // Create a generic Topo Layer node
- NodeBuilder nodebldr = createTopoLayerNode(nodeId);
- nodebldr.addAugmentation(Node1.class, node1bldr.build());
-
- // Get connection ports on degree number = degreeCounter in order to get port
- // direction
- int maxPpPorts = getMaxPp(nodeId, srgCounter);
- if (maxPpPorts == -1) {
- return null;
- }
-
- String nodeIdtopo = new StringBuilder().append(nodeId).append("-SRG").append(srgCounter).toString();
- nodebldr.setNodeId(new NodeId(nodeIdtopo));
- List<TerminationPoint> tpList = new ArrayList<>();
-
- TerminationPoint1Builder tp1Bldr;
- TerminationPointBuilder tempTpBldr;
-
- for (int i = 1; i <= maxPpPorts; i++) {
- if ((portDirectionEnum == 1) || (portDirectionEnum == 2)) {
- if (i >= (maxPpPorts / 2)) {
- break;
- }
- // ports are uni Directional on a degree, therefore 4 termination points
- // Create PP-TX termination
- tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TX");
- tp1Bldr = new TerminationPoint1Builder();
- tp1Bldr.setTpType(OpenroadmTpType.SRGTXPP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- // Create PP-RX termination
- tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-RX");
- tp1Bldr = new TerminationPoint1Builder();
- tp1Bldr.setTpType(OpenroadmTpType.SRGRXPP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());
-
- } else if (portDirectionEnum == 3) {
- // Ports are bi directional therefore 2 termination points
- // Create PP-TXRX termination
- tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TXRX");
- tp1Bldr = new TerminationPoint1Builder();
- tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP);
- tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- tpList.add(tempTpBldr.build());