From 66716f66f3fd859a9bbfceac0a50f2e67e626e92 Mon Sep 17 00:00:00 2001 From: Gilles Thouenon Date: Thu, 2 Jul 2020 08:51:40 +0200 Subject: [PATCH] Adapt PCE output to include trib-port & trib-slot JIRA: TRNSPRTPCE-164 Signed-off-by: Gilles Thouenon Co-authored-by: Christophe Betoule Change-Id: I170e12e07f16a0f7b0e7a61d79e976b78e64e705 --- .../transportpce/pce/PcePathDescription.java | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java b/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java index ff46c71f2..bc15bf50e 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java @@ -29,6 +29,8 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.TerminationPoint; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; +import org.opendaylight.yangtools.yang.common.Uint16; +import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,13 +61,21 @@ public class PcePathDescription { buildAtoZ(atozList, pathAtoZ); AToZDirectionBuilder atoZDirectionBldr = new AToZDirectionBuilder() - .setRate(rc.getRate()) + .setRate(Uint32.valueOf(rc.getRate())) .setAToZ(atozList); if ("100GE".equals(rc.getServiceType()) || "OTU4".equals(rc.getServiceType())) { - atoZDirectionBldr.setAToZWavelengthNumber(rc.getResultWavelength()); + atoZDirectionBldr.setAToZWavelengthNumber(Uint32.valueOf(rc.getResultWavelength())); } else if ("10GE".equals(rc.getServiceType()) || "1GE".equals(rc.getServiceType()) || "ODU4".equals(rc.getServiceType())) { - atoZDirectionBldr.setAToZWavelengthNumber(Long.valueOf(0)); + if (rc.getResultTribSlot() != null && rc.getResultTribPort() != null) { + List tribSlotList = (List) rc.getResultTribSlot().values().toArray()[0]; + atoZDirectionBldr.setAToZWavelengthNumber(Uint32.valueOf(0)) + .setTribPortNumber(Uint16.valueOf(rc.getResultTribPort().values().toArray()[0].toString())) + .setTribSlotNumber(tribSlotList.get(0)); + } else { + LOG.error("Trib port and trib slot number should be present"); + atoZDirectionBldr.setTribSlotNumber(Uint16.valueOf(0)).setTribPortNumber(Uint16.valueOf(0)); + } } rc.setAtoZDirection(atoZDirectionBldr.build()); pathZtoA = ImmutableList.copyOf(pathAtoZ).reverse(); @@ -79,13 +89,21 @@ public class PcePathDescription { } buildZtoA(ztoaList, pathZtoA); ZToADirectionBuilder ztoADirectionBldr = new ZToADirectionBuilder() - .setRate(rc.getRate()) + .setRate(Uint32.valueOf(rc.getRate())) .setZToA(ztoaList); if ("100GE".equals(rc.getServiceType()) || "OTU4".equals(rc.getServiceType())) { - ztoADirectionBldr.setZToAWavelengthNumber(rc.getResultWavelength()); + ztoADirectionBldr.setZToAWavelengthNumber(Uint32.valueOf(rc.getResultWavelength())); } else if ("10GE".equals(rc.getServiceType()) || "1GE".equals(rc.getServiceType()) || "ODU4".equals(rc.getServiceType())) { - ztoADirectionBldr.setZToAWavelengthNumber(Long.valueOf(0)); + if (rc.getResultTribSlot() != null && rc.getResultTribPort() != null) { + List tribSlotList = (List) rc.getResultTribSlot().values().toArray()[0]; + ztoADirectionBldr.setZToAWavelengthNumber(Uint32.valueOf(0)) + .setTribPortNumber(Uint16.valueOf(rc.getResultTribPort().values().toArray()[0].toString())) + .setTribSlotNumber(tribSlotList.get(0)); + } else { + LOG.error("Trib port and trib slot number should be present"); + ztoADirectionBldr.setTribSlotNumber(Uint16.valueOf(0)).setTribPortNumber(Uint16.valueOf(0)); + } } rc.setZtoADirection(ztoADirectionBldr.build()); -- 2.36.6