import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.transportpce.networkmodel.dto.OtnTopoNode;
import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200128.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200128.network.nodes.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.Mapping;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPools;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder;
public static TopologyShard updateOtnLinks(List<Link> suppOdu4Links, List<TerminationPoint> oldTps,
String serviceRate, Short tribPortNb, Short tribSoltNb, boolean isDeletion) {
List<Link> links = new ArrayList<>();
+ Long bwIncr = 10000L;
+ if ("1G".equals(serviceRate)) {
+ bwIncr = 1000L;
+ }
for (Link link : suppOdu4Links) {
if (link.augmentation(Link1.class) != null && link.augmentation(Link1.class).getAvailableBandwidth() != null
&& link.augmentation(Link1.class).getUsedBandwidth() != null) {
- Long avlBwIncr = 10000L;
- Long usedBwIncr = 10000L;
- if ("1G".equals(serviceRate)) {
- avlBwIncr = 1000L;
- usedBwIncr = 1000L;
- }
Uint32 avlBw = link.augmentation(Link1.class).getAvailableBandwidth();
Uint32 usedBw = link.augmentation(Link1.class).getUsedBandwidth();
+ if (avlBw.toJava() < bwIncr) {
+ bwIncr = 0L;
+ }
if (isDeletion) {
- links.add(updateOtnLinkBwParameters(link, avlBw.toJava() + avlBwIncr,
- usedBw.toJava() - usedBwIncr));
+ links.add(updateOtnLinkBwParameters(link, avlBw.toJava() + bwIncr,
+ usedBw.toJava() - bwIncr));
} else {
- links.add(updateOtnLinkBwParameters(link, avlBw.toJava() - avlBwIncr,
- usedBw.toJava() + usedBwIncr));
+ links.add(updateOtnLinkBwParameters(link, avlBw.toJava() - bwIncr,
+ usedBw.toJava() + bwIncr));
}
} else {
LOG.error("Error with otn parameters of supported link {}", link.getLinkId().getValue());
}
List<TerminationPoint> tps = new ArrayList<>();
for (TerminationPoint tp : oldTps) {
- tps.add(updateNodeTpTsPool(tp, serviceRate, tribPortNb, tribSoltNb, isDeletion));
+ if (bwIncr != 0) {
+ tps.add(updateNodeTpTsPool(tp, serviceRate, tribPortNb, tribSoltNb, isDeletion));
+ }
}
if (!links.isEmpty() && !tps.isEmpty()) {
return new TopologyShard(null, links, tps);
} else {
+ LOG.error("unable to update otn links");
return new TopologyShard(null, null, null);
}
}
= new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1Builder()
.setOtnLinkType(linkType).build();
Link1 otnLink1 = new Link1Builder()
- .setLinkType(OpenroadmLinkType.OTNLINK)
.setAvailableBandwidth(Uint32.valueOf(100000))
.setUsedBandwidth(Uint32.valueOf(0))
.build();
nodeZTopo = nodeZ + "-" + tpZ.split("-")[0];
}
LinkBuilder ietfLinkAZBldr = TopologyUtils.createLink(nodeATopo, nodeZTopo, tpA, tpZ, linkIdPrefix);
- ietfLinkAZBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class,
- tpceLink1)
- .addAugmentation(Link1.class, otnLink1);
+ ietfLinkAZBldr
+ .addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class, tpceLink1)
+ .addAugmentation(Link1.class, otnLink1)
+ .addAugmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder(
+ ietfLinkAZBldr.augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class))
+ .setLinkType(OpenroadmLinkType.OTNLINK)
+ .build());
links.add(ietfLinkAZBldr.build());
// create link Z-A
LinkBuilder ietfLinkZABldr = TopologyUtils.createLink(nodeZTopo, nodeATopo, tpZ, tpA, linkIdPrefix);
- ietfLinkZABldr.addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class,
- tpceLink1)
- .addAugmentation(Link1.class, otnLink1);
+ ietfLinkZABldr
+ .addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class, tpceLink1)
+ .addAugmentation(Link1.class, otnLink1)
+ .addAugmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder(
+ ietfLinkZABldr.augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class))
+ .setLinkType(OpenroadmLinkType.OTNLINK)
+ .build());
links.add(ietfLinkZABldr.build());
return links;
}
.setTpnPool(tpnPool).build()));
tpBldr.addAugmentation(TerminationPoint1.class,
- new TerminationPoint1Builder().setXpdrTpPortConnectionAttributes(xtpcaBldr.build()).build());
+ new TerminationPoint1Builder(tp.augmentation(TerminationPoint1.class))
+ .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()).build());
return tpBldr.build();
}