2 * Copyright © 2020 Orange, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.transportpce.pce.networkanalyzer;
11 import static org.junit.Assert.assertEquals;
13 import java.math.RoundingMode;
14 import java.util.HashMap;
16 import org.junit.Assert;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.mockito.Mock;
20 import org.mockito.MockitoAnnotations;
21 import org.opendaylight.transportpce.common.NetworkUtils;
22 import org.opendaylight.transportpce.common.StringConstants;
23 import org.opendaylight.transportpce.common.fixedflex.GridConstant;
24 import org.opendaylight.transportpce.common.mapping.PortMapping;
25 import org.opendaylight.transportpce.test.AbstractTest;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1Builder;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1Builder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
31 import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev211210.span.attributes.LinkConcatenation1.FiberType;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev211210.span.attributes.LinkConcatenation1Builder;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.link.OMSAttributesBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.link.oms.attributes.SpanBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmNodeType;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenation;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenationBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenationKey;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
43 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
44 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
45 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
47 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey;
50 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
51 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
52 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
53 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
54 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
55 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
56 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
57 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
58 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
59 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
60 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey;
61 import org.opendaylight.yangtools.yang.common.Decimal64;
62 import org.opendaylight.yangtools.yang.common.Uint32;
64 public class PceLinkTest extends AbstractTest {
66 private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
67 private PceLink pceLink = null;
68 private String deviceNodeId = "device node";
69 private String deviceNodeId2 = "device node 2";
70 private String serviceType = "100GE";
72 private PortMapping portMapping;
76 MockitoAnnotations.openMocks(this);
80 public void testBuildPceLinkRoadmToRoadm() {
81 Link link = createRoadmToRoadm("srcNode",
83 "srcTp", "destTp").build();
84 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
85 Node node = node1Builder.setNodeId(new NodeId("test")).build();
86 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
87 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
88 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
89 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId2, serviceType, portMapping, node,
90 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
91 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
92 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
96 public void testBuildPceLinkRoadmToRoadmWithoutPMD() {
97 Link link = createRoadmToRoadmWithoutPMD("srcNode",
99 "srcTp", "destTp").build();
100 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
101 Node node = node1Builder.setNodeId(new NodeId("test")).build();
102 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
103 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
104 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
105 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId2, serviceType, portMapping, node,
106 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
107 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
108 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
109 Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link));
110 Assert.assertEquals(1, pceLink.getsrlgList().size());
111 assertEquals("Checking length loss", 20.0, pceLink.getspanLoss(), 0.005);
112 assertEquals("Checking length loss", 825.0, pceLink.getcd(), 0.005);
113 assertEquals("Checking PMDvalue of link", 4.0, pceLink.getpmd2(), 0.005);
117 public void testBuildPceLinkRoadmToRoadmWithoutLinkLatency() {
118 Link link = createRoadmToRoadmWithoutLinkLatency("srcNode",
120 "srcTp", "destTp").build();
122 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
123 Node node = node1Builder.setNodeId(new NodeId("test")).build();
124 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
125 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
126 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
127 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId2, serviceType, portMapping, node,
128 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
129 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
130 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
134 public void testBuildPceLinkOTN() {
135 // TODO: Modify with OTN node not PceO=ticalNode
136 Link link = createOTNLink("srcNode",
138 "srcTp", "destTp").build();
140 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
141 Node node = node1Builder.setNodeId(new NodeId("test")).build();
142 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
143 OpenroadmNodeType.SWITCH, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
144 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
145 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId2, serviceType, portMapping, node,
146 OpenroadmNodeType.SWITCH, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
147 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
148 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
152 public void testBuildPceLinkExponder() {
153 Link link = createXponderLink("srcNode",
155 "srcTp", "destTp").build();
157 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
158 Node node = node1Builder.setNodeId(new NodeId("test")).build();
159 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
160 OpenroadmNodeType.XPONDER, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
161 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
162 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId2, serviceType, portMapping, node,
163 OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
164 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
165 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
169 public void testCalcSpanOSNR() {
170 Link link = createRoadmToRoadm("srcNode",
172 "srcTp", "destTp").build();
174 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
175 Node node = node1Builder.setNodeId(new NodeId("test")).build();
176 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
177 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
178 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
179 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
180 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
181 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
182 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
183 Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link));
184 // Assert.assertNotNull(pceLink.getosnr());
185 Assert.assertEquals(1, pceLink.getsrlgList().size());
186 assertEquals("Checking PMDvalue of link", 0.25, pceLink.getpmd2(), 0.005);
187 assertEquals("Checking CDvalue of link", 825, pceLink.getcd(), 0.005);
188 // Assert.assertTrue(7.857119000000001 == pceLink.getosnr());
189 Assert.assertNull(pceLink.getOppositeLink());
190 Assert.assertNull(pceLink.getOppositeLink());
191 Assert.assertNotNull(pceLink.getDestTP());
192 Assert.assertNotNull(pceLink.getlinkType());
193 Assert.assertNotNull(pceLink.getLinkId());
194 Assert.assertNotNull(pceLink.getSourceId());
195 Assert.assertNotNull(pceLink.getDestId());
196 pceLink.setClient("specific_client");
197 Assert.assertTrue(pceLink.getClient().equals("specific_client"));
198 Assert.assertNotNull(pceLink.getClient());
199 Assert.assertNotNull(pceLink.getLatency());
200 Assert.assertNotNull(pceLink.getAvailableBandwidth());
201 Assert.assertNotNull(pceLink.getUsedBandwidth());
202 Assert.assertNotNull(pceLink.getsourceNetworkSupNodeId());
203 Assert.assertNotNull(pceLink.getdestNetworkSupNodeId());
204 Assert.assertNotNull(pceLink.getSourceTP());
205 Assert.assertNotNull(pceLink.getsourceCLLI());
206 Assert.assertNotNull(pceLink.getdestCLLI());
207 Assert.assertTrue(pceLink.toString().equals("PceLink type=" + pceLink.getlinkType()
208 + " ID=" + pceLink.getLinkId().getValue() + " latency=" + pceLink.getLatency().intValue()));
212 public void testWrongSpanLoss() {
213 Link link = createInvalidRoadmToRoadm("srcNode",
215 "srcTp", "destTp").build();
217 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
218 Node node = node1Builder.setNodeId(new NodeId("test")).build();
219 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
220 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
221 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
222 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
223 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
224 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
225 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
226 Assert.assertNull(MapUtils.getOmsAttributesSpan(link));
227 Assert.assertNull(pceLink.getpmd2());
228 Assert.assertNull(pceLink.getpowerCorrection());
229 Assert.assertNull(pceLink.getcd());
233 public void testExtrapolatedPMD() {
234 Link link = createRoadmToRoadmWithoutPMD("srcNode",
236 "srcTp", "destTp").build();
238 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
239 Node node = node1Builder.setNodeId(new NodeId("test")).build();
240 PceOpticalNode pceOpticalNode1 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
241 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
242 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
243 PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node,
244 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
245 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
246 pceLink = new PceLink(link, pceOpticalNode1, pceOpticalNode2);
247 Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link));
248 Assert.assertEquals(1, pceLink.getsrlgList().size());
249 assertEquals("Checking PMDvalue of link", 4.0, pceLink.getpmd2(), 0.005);
252 private static LinkBuilder createOTNLink(String srcNode, String destNode, String srcTp, String destTp) {
253 Link1Builder link1Builder = new Link1Builder()
254 .setLinkType(OpenroadmLinkType.OTNLINK)
255 .setOperationalState(State.InService)
256 .setAdministrativeState(AdminStates.InService);
257 // create source link
258 return createLinkBuilder(false, false, 10000.0, srcNode, destNode, srcTp, destTp, link1Builder);
261 private static LinkBuilder createXponderLink(String srcNode, String destNode, String srcTp, String destTp) {
262 Link1Builder link1Builder = new Link1Builder()
263 .setLinkType(OpenroadmLinkType.XPONDERINPUT)
264 .setAdministrativeState(AdminStates.InService)
265 .setOperationalState(State.InService);
266 // create source link
267 return createLinkBuilder(false, false, 10.0, srcNode, destNode, srcTp, destTp, link1Builder);
270 private static LinkBuilder createLinkBuilder(boolean pmdpresent, boolean omspresent, double length,
271 String srcNode, String destNode, String srcTp, String destTp, Link1Builder link1Builder) {
272 SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode))
273 .setSourceTp(new TpId(srcTp));
274 // create destination link
275 DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
276 .setDestTp(new TpId(destTp));
277 LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp));
279 // For setting up attributes for openRoadm augment
280 LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
281 .withKey(new LinkConcatenationKey(Uint32.valueOf(1)))
282 .setSRLGLength(Decimal64.valueOf(length, RoundingMode.FLOOR))
283 .addAugmentation(new LinkConcatenation1Builder()
284 .setFiberType(FiberType.Smf)
288 linkConcatenation = new LinkConcatenationBuilder()
289 .withKey(new LinkConcatenationKey(Uint32.valueOf(1)))
290 .setSRLGLength(Decimal64.valueOf(length, RoundingMode.FLOOR))
291 .addAugmentation(new LinkConcatenation1Builder()
292 .setFiberType(FiberType.Smf)
293 .setPmd(FiberPmd.getDefaultInstance("0.500"))
297 OMSAttributesBuilder omsAttributesBuilder = new OMSAttributesBuilder()
298 .setSpan(new SpanBuilder()
299 // .setSpanlossCurrent(new RatioDB(Decimal64.valueOf("55")))
300 .setSpanlossCurrent(new RatioDB(Decimal64.valueOf("20")))
301 .setLinkConcatenation(Map.of(linkConcatenation.key(), linkConcatenation))
304 LinkBuilder linkBuilder = new LinkBuilder()
305 .setSource(ietfSrcLinkBldr.build())
306 .setDestination(ietfDestLinkBldr.build())
308 .withKey(new LinkKey(linkId));
310 linkBuilder.addAugmentation(link1Builder.build());
312 var linkBuilderNetworkLink = new org.opendaylight.yang.gen.v1.http
313 .org.openroadm.network.topology.rev211210.Link1Builder()
314 .setOMSAttributes(omsAttributesBuilder
317 linkBuilder.addAugmentation(linkBuilderNetworkLink.build());
322 private static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) {
323 return createLinkBuilder(true, true, 50000.0, srcNode, destNode, srcTp, destTp, new Link1Builder()
324 .setLinkLatency(Uint32.valueOf(100))
325 .setAdministrativeState(AdminStates.InService)
326 .setOperationalState(State.InService)
327 .setLinkType(OpenroadmLinkType.ROADMTOROADM)
328 .setLinkLength(Decimal64.valueOf(50.0, RoundingMode.FLOOR)));
331 private static LinkBuilder createRoadmToRoadmWithoutPMD(String srcNode, String destNode, String srcTp,
333 return createLinkBuilder(false, true, 50000.0, srcNode, destNode, srcTp, destTp, new Link1Builder()
334 .setLinkLatency(Uint32.valueOf(100))
335 .setAdministrativeState(AdminStates.InService)
336 .setOperationalState(State.InService)
337 .setLinkType(OpenroadmLinkType.ROADMTOROADM)
338 .setLinkLength(Decimal64.valueOf(50.0, RoundingMode.FLOOR)));
341 private static LinkBuilder createInvalidRoadmToRoadm(String srcNode, String destNode,
342 String srcTp, String destTp) {
343 return createLinkBuilder(false, false, 0.0, srcNode, destNode, srcTp, destTp, new Link1Builder()
344 .setLinkLatency(Uint32.valueOf(100))
345 .setAdministrativeState(AdminStates.InService)
346 .setOperationalState(State.InService)
347 .setLinkType(OpenroadmLinkType.ROADMTOROADM));
350 private static LinkBuilder createRoadmToRoadmWithoutLinkLatency(
351 String srcNode, String destNode, String srcTp, String destTp) {
352 return createLinkBuilder(true, true, 50000.0, srcNode, destNode, srcTp, destTp, new Link1Builder()
353 .setLinkType(OpenroadmLinkType.ROADMTOROADM));
356 private Map<SupportingNodeKey, SupportingNode> geSupportingNodes() {
357 Map<SupportingNodeKey, SupportingNode> supportingNodes1 = new HashMap<>();
358 SupportingNode supportingNode1 = new SupportingNodeBuilder()
359 .setNodeRef(new NodeId("node 1"))
360 .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
363 .put(supportingNode1.key(), supportingNode1);
365 SupportingNode supportingNode2 = new SupportingNodeBuilder()
366 .setNodeRef(new NodeId("node 2"))
367 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
370 .put(supportingNode2.key(), supportingNode2);
371 return supportingNodes1;
374 private NodeBuilder getNodeBuilder(Map<SupportingNodeKey, SupportingNode> supportingNodes1) {
375 // update tp of nodes
376 TerminationPointBuilder xpdrTpBldr = new TerminationPointBuilder()
377 .withKey(new TerminationPointKey(new TpId("xpdr")));
378 TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
380 tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK).setAdministrativeState(AdminStates.InService)
381 .setOperationalState(State.InService);
382 xpdrTpBldr.addAugmentation(tp1Bldr.build());
383 TerminationPoint xpdr = xpdrTpBldr.build();
384 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
385 .Node1 node1 = new Node1Builder()
386 .setTerminationPoint(Map.of(xpdr.key(), xpdr)).build();
387 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1 node11 =
388 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder()
389 .setOperationalState(State.InService).setAdministrativeState(AdminStates.InService).build();
390 return new NodeBuilder()
391 .setNodeId(new NodeId("node 1"))
392 .withKey(new NodeKey(new NodeId("node 1")))
393 .addAugmentation(node1)
394 .addAugmentation(node11)
395 .setSupportingNode(supportingNodes1);