import org.opendaylight.transportpce.common.fixedflex.GridUtils;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.Nodes;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
}
public static TopologyShard createTopologyShard(Nodes mappingNode) {
+ return createTopologyShard(mappingNode, true);
+ }
+
+ public static TopologyShard createTopologyShard(Nodes mappingNode, boolean firstMount) {
int numOfDegrees;
int numOfSrgs;
List<Node> nodes = new ArrayList<>();
}
}
for (String str : nodeShardList) {
- List<Mapping> interList = mappingList.stream().filter(x -> x.getLogicalConnectionPoint().contains(str))
- .collect(Collectors.toList());
+ List<Mapping> interList = mappingList.stream().filter(x -> x.getLogicalConnectionPoint()
+ .split("-")[0].equals(str)).collect(Collectors.toList());
if (str.contains("DEG")) {
mapDeg.put(str, interList);
} else if (str.contains("SRG")) {
// create degree nodes
for (Map.Entry<String, List<Mapping>> entry : mapDeg.entrySet()) {
NodeBuilder ietfNode = createDegree(entry.getKey(), entry.getValue(), mappingNode.getNodeId(),
- mappingNode.getNodeInfo().getNodeClli());
+ mappingNode.getNodeInfo().getNodeClli(), firstMount);
nodes.add(ietfNode.build());
}
// create srg nodes
for (Map.Entry<String, List<Mapping>> entry : mapSrg.entrySet()) {
NodeBuilder ietfNode = createSrg(entry.getKey(), entry.getValue(), mappingNode.getNodeId(),
- mappingNode.getNodeInfo().getNodeClli());
+ mappingNode.getNodeInfo().getNodeClli(), firstMount);
nodes.add(ietfNode.build());
}
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder
ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http
.org.openroadm.common.network.rev200529.TerminationPoint1Builder()
- .setAdministrativeState(AdminStates.InService)
- .setOperationalState(State.InService);
+ .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+ .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
if (m.getPortQual().equals("xpdr-network")) {
ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
- org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1 tpceTp1 =
- new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder()
+ org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1 tpceTp1 =
+ new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1Builder()
.setAssociatedConnectionMapPort(m.getConnectionMapLcp()).build();
ietfTpBldr
.addAugmentation(ocnTp1Bldr.build())
tpMap.put(ietfTp.key(),ietfTp);
} else if (m.getPortQual().equals("xpdr-client")) {
ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERCLIENT);
- org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1 tpceTp1 =
- new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder()
+ org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1 tpceTp1 =
+ new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1Builder()
.setAssociatedConnectionMapPort(m.getConnectionMapLcp()).build();
ietfTpBldr
.addAugmentation(ocnTp1Bldr.build())
ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http
.org.openroadm.common.network.rev200529.TerminationPoint1Builder()
.setTpType(OpenroadmTpType.XPONDERNETWORK)
- .setAdministrativeState(AdminStates.InService)
- .setOperationalState(State.InService);
+ .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+ .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
ietfTpBldr
.addAugmentation(ocnTp1Bldr.build());
TerminationPoint ietfTp = ietfTpBldr.build();
return ietfNodeBldr;
}
- private static NodeBuilder createDegree(String degNb, List<Mapping> degListMap, String nodeId, String clli) {
+ private static NodeBuilder createDegree(String degNb, List<Mapping> degListMap, String nodeId, String clli,
+ boolean firstMount) {
// Create tp-list
Map<TerminationPointKey,TerminationPoint> tpMap = new HashMap<>();
TerminationPointBuilder ietfTpBldr;
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder
ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529
.TerminationPoint1Builder()
- .setAdministrativeState(AdminStates.InService)
- .setOperationalState(State.InService);
+ .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+ .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
// Added states to degree port. TODO: add to mapping relation between abstracted and physical node states
switch (m.getPortDirection()) {
TerminationPoint ietfTp = ietfTpBldr.build();
tpMap.put(ietfTp.key(),ietfTp);
// set degree-attributes
- DegreeAttributes degAtt = new DegreeAttributesBuilder()
- .setDegreeNumber(Uint16.valueOf(degNb.split("DEG")[1]))
- .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available())
- .build();
+ DegreeAttributesBuilder degAttBldr = new DegreeAttributesBuilder()
+ .setDegreeNumber(Uint16.valueOf(degNb.split("DEG")[1]));
+ if (firstMount) {
+ degAttBldr.setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available());
+ }
+ DegreeAttributes degAtt = degAttBldr.build();
// Create ietf node augmentation to support ietf tp-list
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder
ietfNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
.addAugmentation(ietfNode1.build());
}
- private static NodeBuilder createSrg(String srgNb, List<Mapping> srgListMap, String nodeId, String clli) {
+ private static NodeBuilder createSrg(String srgNb, List<Mapping> srgListMap, String nodeId, String clli,
+ boolean firstMount) {
// Create tp-list
Map<TerminationPointKey,TerminationPoint> tpMap = new HashMap<>();
TerminationPointBuilder ietfTpBldr;
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529
.TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http
.org.openroadm.common.network.rev200529.TerminationPoint1Builder()
- .setAdministrativeState(AdminStates.InService)
- .setOperationalState(State.InService);
+ .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+ .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
// Added states to srg port. TODO: add to mapping relation between abstracted and physical node states
switch (m.getPortDirection()) {
case "bidirectional":
.setOperationalState(State.InService)
.build();
// set srg-attributes
- SrgAttributes srgAttr = new SrgAttributesBuilder()
- .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build();
+ SrgAttributesBuilder srgAttrBldr = new SrgAttributesBuilder();
+ if (firstMount) {
+ srgAttrBldr.setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available());
+ }
+ SrgAttributes srgAttr = srgAttrBldr.build();
Node1 ontNode1 = new Node1Builder().setSrgAttributes(srgAttr).build();
// Create ietf node augmentation to support ietf tp-list
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder
private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
//create source link
- SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
+ SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode))
+ .setSourceTp(new TpId(srcTp));
//create destination link
DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
- .setDestTp(destTp);
+ .setDestTp(new TpId(destTp));
LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, destNode, destTp);
return new LinkBuilder()
.setSource(ietfSrcLinkBldr.build())