TeTopology core and nbi bug fixes and improvements
Change-Id: I5f3dbcaa79b04c1b1b00b9df7ccae804953c3bae
diff --git a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java
index cf8d6c1..1557d7d 100644
--- a/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java
+++ b/apps/tenbi/utils/src/main/java/org/onosproject/teyang/utils/topology/NodeConverter.java
@@ -15,8 +15,12 @@
*/
package org.onosproject.teyang.utils.topology;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.util.BitSet;
+import java.util.List;
+import java.util.Map;
+
import org.apache.commons.collections.MapUtils;
import org.onlab.packet.Ip4Address;
import org.onosproject.tetopology.management.api.EncodingType;
@@ -47,92 +51,60 @@
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NetworkId;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.NodeId;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.Network;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
- .DefaultNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
- .Node;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
- .node.DefaultSupportingNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208.ietfnetwork.networks.network
- .node.SupportingNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
- .TpId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
- .networks.network.node.AugmentedNdNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology
- .networks.network.node.DefaultAugmentedNdNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .DefaultTeNodeEvent;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
+ .ietfnetwork.networks.network.DefaultNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
+ .ietfnetwork.networks.network.Node;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
+ .ietfnetwork.networks.network.node.DefaultSupportingNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev20151208
+ .ietfnetwork.networks.network.node.SupportingNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208.ietfnetworktopology.TpId;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
+ .ietfnetworktopology.networks.network.node.AugmentedNdNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev20151208
+ .ietfnetworktopology.networks.network.node.DefaultAugmentedNdNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.DefaultTeNodeEvent;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.TeNodeEvent;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .informationsourceattributes.DefaultInformationSourceState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .informationsourceattributes.InformationSourceState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .informationsourceattributes.informationsourcestate.DefaultTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .informationsourceattributes.informationsourcestate.Topology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
- .network.node.AugmentedNwNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
- .network.node.DefaultAugmentedNwNode;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks
- .network.node.terminationpoint.AugmentedNtTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.DefaultTe;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.DefaultTe.TeBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.Te;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.te.Config;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.te.DefaultConfig;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.te.DefaultState;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.te.DefaultTunnelTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.te.State;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeaugment.te.TunnelTerminationPoint;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconfigattributes.DefaultTeNodeAttributes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconfigattributes.TeNodeAttributes;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconfigattributes.TeNodeAttributes.TeNodeAttributesBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconnectivitymatrix.DefaultConnectivityMatrix;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconnectivitymatrix.DefaultConnectivityMatrix.ConnectivityMatrixBuilder;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconnectivitymatrix.connectivitymatrix.DefaultFrom;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconnectivitymatrix.connectivitymatrix.DefaultTo;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeinfoattributes.DefaultUnderlayTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeinfoattributes.UnderlayTopology;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodetunnelterminationcapability.DefaultTerminationCapability;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodetunnelterminationcapability.TerminationCapability;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.informationsourceattributes.DefaultInformationSourceState;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.informationsourceattributes.InformationSourceState;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.informationsourceattributes.informationsourcestate.DefaultTopology;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.informationsourceattributes.informationsourcestate.Topology;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
+ .ietftetopology.networks.network.node.AugmentedNwNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
+ .ietftetopology.networks.network.node.DefaultAugmentedNwNode;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.networks.network.node.terminationpoint.AugmentedNtTerminationPoint;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.DefaultTe;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.DefaultTe.TeBuilder;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.Te;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.Config;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.DefaultConfig;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.DefaultState;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.DefaultTunnelTerminationPoint;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.State;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeaugment.te.TunnelTerminationPoint;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconfigattributes.DefaultTeNodeAttributes;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconfigattributes.TeNodeAttributes;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconfigattributes.TeNodeAttributes.TeNodeAttributesBuilder;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.DefaultConnectivityMatrix;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.DefaultConnectivityMatrix.ConnectivityMatrixBuilder;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.connectivitymatrix.DefaultFrom;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrix.connectivitymatrix.DefaultTo;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeinfoattributes.DefaultUnderlayTopology;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeinfoattributes.UnderlayTopology;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodetunnelterminationcapability.DefaultTerminationCapability;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodetunnelterminationcapability.TerminationCapability;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.Srlg;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeAdminStatus;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeNodeId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes
- .TeTopologyEventType;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTopologyEventType;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.TeTopologyId;
-import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes
- .tetopologyeventtype.TeTopologyEventTypeEnum;
+import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev20160705.ietftetypes.tetopologyeventtype.TeTopologyEventTypeEnum;
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20130715.ietfyangtypes.DottedQuad;
-import java.util.BitSet;
-import java.util.List;
-import java.util.Map;
-
-import static com.google.common.base.Preconditions.checkNotNull;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
/**
* Node conversion functions.
@@ -166,7 +138,7 @@
.builder();
teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
.isAbstract(teSubsystemTeNode.flags()
- .get(TeNode.BIT_ABSTRACT));
+ .get(TeNode.BIT_ABSTRACT));
if (teSubsystemTeNode.adminStatus() != null) {
teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
@@ -181,7 +153,7 @@
if (teSubsystemTeNode.underlayTeTopologyId() != null) {
teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
.underlayTopology(teNode2YangUnderlay(teSubsystemTeNode
- .underlayTeTopologyId(), teTopologyService));
+ .underlayTeTopologyId(), teTopologyService));
}
// TODO: should we ignore this from te to yang? as we've already set yang supportingNode
@@ -201,26 +173,26 @@
}
private static TeNodeAttributesBuilder
- te2YangConnectivityMatrix(TeNodeAttributesBuilder teNodeAttributesConfigBuilder,
- Map<Long, ConnectivityMatrix> connectivityMatrices) {
+ te2YangConnectivityMatrix(TeNodeAttributesBuilder teNodeAttributesConfigBuilder,
+ Map<Long, ConnectivityMatrix> connectivityMatrices) {
ConnectivityMatrixBuilder connectivityMatrixConfigBuilder = DefaultConnectivityMatrix.builder();
for (Map.Entry<Long, ConnectivityMatrix> teCmEntry :
- connectivityMatrices.entrySet()) {
+ connectivityMatrices.entrySet()) {
connectivityMatrixConfigBuilder = connectivityMatrixConfigBuilder
.id(teCmEntry.getKey())
.isAllowed(!teCmEntry.getValue().flags()
- .get(ConnectivityMatrix.BIT_DISALLOWED))
+ .get(ConnectivityMatrix.BIT_DISALLOWED))
.from(new DefaultFrom.FromBuilder() // TODO: for now, assuming that there is
- // only one 'from', and mergingList is empty
- .tpRef(((TeLinkId) teCmEntry.getValue().from()).value())
- .build())
+ // only one 'from', and mergingList is empty
+ .tpRef(((TeLinkId) teCmEntry.getValue().from()).value())
+ .build())
.to(new DefaultTo.ToBuilder() // TODO: for now, assuming that there is only
- // one item in constrainingElements list
- .tpRef(((TeLinkId) teCmEntry.getValue().constrainingElements().get(0)).value())
- .build());
+ // one item in constrainingElements list
+ .tpRef(((TeLinkId) teCmEntry.getValue().constrainingElements().get(0)).value())
+ .build());
teNodeAttributesConfigBuilder = teNodeAttributesConfigBuilder
.addToConnectivityMatrix(connectivityMatrixConfigBuilder
- .build());
+ .build());
}
return teNodeAttributesConfigBuilder;
}
@@ -230,7 +202,7 @@
UnderlayTopology.UnderlayTopologyBuilder underlayBuilder = DefaultUnderlayTopology
.builder()
.teTopologyIdRef(TeTopologyId
- .fromString(String.valueOf(underlayTopology.topologyId())))
+ .fromString(String.valueOf(underlayTopology.topologyId())))
.clientIdRef(underlayTopology.clientId())
.providerIdRef(underlayTopology.providerId());
@@ -250,10 +222,10 @@
checkNotNull(teSubsystemTeNode, E_NULL_TE_SUBSYSTEM_TE_NODE);
TeNodeAttributes
- .TeNodeAttributesBuilder teNodeAttributesStateBuilder =
- DefaultTeNodeAttributes.builder()
- .isAbstract(teSubsystemTeNode.flags()
- .get(TeNode.BIT_ABSTRACT));
+ .TeNodeAttributesBuilder teNodeAttributesStateBuilder =
+ DefaultTeNodeAttributes.builder()
+ .isAbstract(teSubsystemTeNode.flags()
+ .get(TeNode.BIT_ABSTRACT));
if (teSubsystemTeNode.adminStatus() != null) {
teNodeAttributesStateBuilder = teNodeAttributesStateBuilder
@@ -268,12 +240,12 @@
if (teSubsystemTeNode.underlayTeTopologyId() != null) {
teNodeAttributesStateBuilder = teNodeAttributesStateBuilder
.underlayTopology(teNode2YangUnderlay(teSubsystemTeNode
- .underlayTeTopologyId(), teTopologyService));
+ .underlayTeTopologyId(), teTopologyService));
}
if (teSubsystemTeNode.connectivityMatrices() != null) {
teNodeAttributesStateBuilder = te2YangConnectivityMatrix(teNodeAttributesStateBuilder,
- teSubsystemTeNode.connectivityMatrices());
+ teSubsystemTeNode.connectivityMatrices());
}
// TODO: should we ignore this from te to yang? as we've already set yang supportingNode
@@ -285,8 +257,7 @@
if (teSubsystemTeNode.opStatus() != null) {
yangStateBuilder = yangStateBuilder.operStatus(EnumConverter
- .teSubsystem2YangOperStatus(teSubsystemTeNode
- .opStatus()));
+ .teSubsystem2YangOperStatus(teSubsystemTeNode.opStatus()));
}
if (teSubsystemTeNode.sourceTeNodeId() != null) {
@@ -295,10 +266,10 @@
Topology.TopologyBuilder topologyBuilder = DefaultTopology.builder();
topologyBuilder =
topologyBuilder.clientIdRef(teSubsystemTeNode.sourceTeNodeId().clientId())
- .providerIdRef(teSubsystemTeNode.sourceTeNodeId().providerId())
- // is this correct? Why not sourceTeNodeId().teTopologyKey()?
- .teTopologyIdRef(teSubsystemTeNode
- .sourceTeNodeId().topologyId());
+ .providerIdRef(teSubsystemTeNode.sourceTeNodeId().providerId())
+ // is this correct? Why not sourceTeNodeId().teTopologyKey()?
+ .teTopologyIdRef(teSubsystemTeNode
+ .sourceTeNodeId().topologyId());
issBuilder = issBuilder.topology(topologyBuilder.build());
yangStateBuilder.informationSourceState(issBuilder.build());
}
@@ -319,52 +290,52 @@
}
public static long bytesToLong(byte[] bytes) {
- return ((long) bytes[7] & 255L) << 56
- | ((long) bytes[6] & 255L) << 48
- | ((long) bytes[5] & 255L) << 40
- | ((long) bytes[4] & 255L) << 32
- | ((long) bytes[3] & 255L) << 24
- | ((long) bytes[2] & 255L) << 16
- | ((long) bytes[1] & 255L) << 8 | (long) bytes[0] & 255L;
+ return (bytes[7] & 255L) << 56
+ | (bytes[6] & 255L) << 48
+ | (bytes[5] & 255L) << 40
+ | (bytes[4] & 255L) << 32
+ | (bytes[3] & 255L) << 24
+ | (bytes[2] & 255L) << 16
+ | (bytes[1] & 255L) << 8 | bytes[0] & 255L;
}
}
/**
* TE Node TunnelTerminationPoint object conversion from TE Topology subsystem to YANG.
*
- * @param teTunnelTp TE TunnelTerminationPoint object
+ * @param teTunnelTp TE TunnelTerminationPoint object
* @param teTpId
* @param teTopologyService
* @param teNodeKey
* @return TunnelTerminationPoint YANG object
*/
private static TunnelTerminationPoint teSubsystem2YangTtp(
- org.onosproject.tetopology.management.api.node
- .TunnelTerminationPoint teTunnelTp, Long teTpId,
- TeTopologyService teTopologyService,
- TeNodeKey teNodeKey) {
+ org.onosproject.tetopology.management.api.node
+ .TunnelTerminationPoint teTunnelTp, Long teTpId,
+ TeTopologyService teTopologyService,
+ TeNodeKey teNodeKey) {
checkNotNull(teTunnelTp, E_NULL_TE_SUBSYSTEM_TE_TUNNEL_TP);
TunnelTerminationPoint.TunnelTerminationPointBuilder tunnelTpBuilder =
DefaultTunnelTerminationPoint.builder().tunnelTpId(ByteUtils.longToBytes(teTpId.longValue()));
org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.Config.ConfigBuilder ttpConfigBuilder =
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.DefaultConfig.builder();
+ .ietftetopology.tenodeaugment.te.tunnelterminationpoint.Config.ConfigBuilder ttpConfigBuilder =
org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.State.StateBuilder ttpStateBuilder =
- org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeaugment.te.tunnelterminationpoint.DefaultState.builder();
+ .ietftetopology.tenodeaugment.te.tunnelterminationpoint.DefaultConfig.builder();
+ org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
+ .ietftetopology.tenodeaugment.te.tunnelterminationpoint.State.StateBuilder ttpStateBuilder =
+ org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
+ .ietftetopology.tenodeaugment.te.tunnelterminationpoint.DefaultState.builder();
// Assuming teTunnelTp only has one interLayerLock
if (teTunnelTp.interLayerLockList() != null && !teTunnelTp.interLayerLockList().isEmpty()) {
ttpConfigBuilder = ttpConfigBuilder.interLayerLockId(teTunnelTp.interLayerLockList().get(0));
- ttpStateBuilder = ttpStateBuilder.interLayerLockId(teTunnelTp.interLayerLockList().get(0));
+ ttpStateBuilder = ttpStateBuilder.interLayerLockId(teTunnelTp.interLayerLockList().get(0));
}
TerminationCapability.TerminationCapabilityBuilder
- tcapConfigBuilder = DefaultTerminationCapability.builder();
+ tcapConfigBuilder = DefaultTerminationCapability.builder();
// TODO: retrieve more attributes from teTunnelTp and assign to tcapConfigBuilder.
// For which ones we can do the conversion?
// FIXME: once new yang model is used, we can make llc from teTunnelTp.localLinkConnectivityList()
@@ -377,7 +348,7 @@
.network(netLinkKey.networkId()).links().get(netLinkKey.linkId());
tcapConfigBuilder = tcapConfigBuilder
.linkTp(TpId.fromString(networkLink.source().tpId()
- .toString()));
+ .toString()));
// convert teLinkId to networkLinkKey
ttpConfigBuilder = ttpConfigBuilder.addToTerminationCapability(tcapConfigBuilder.build());
}
@@ -396,13 +367,13 @@
.network(netLinkKey.networkId()).links().get(netLinkKey.linkId());
tcapStateBuilder = tcapStateBuilder
.linkTp(TpId.fromString(networkLink.source().tpId()
- .toString()));
+ .toString()));
ttpStateBuilder = ttpStateBuilder.addToTerminationCapability(tcapStateBuilder.build());
}
}
tunnelTpBuilder = tunnelTpBuilder.config(ttpConfigBuilder.build())
- .state(ttpStateBuilder.build());
+ .state(ttpStateBuilder.build());
return tunnelTpBuilder.build();
}
@@ -410,9 +381,9 @@
/**
* Node object conversion from TE Topology subsystem to YANG.
*
- * @param teSubsystem TE subsystem node
+ * @param teSubsystem TE subsystem node
* @param teTopologyService teTopology core service
- * @param teTopologyKey teTopologyKey
+ * @param teTopologyKey teTopologyKey
* @return YANG node
*/
public static Node teSubsystem2YangNode(org.onosproject.tetopology.management.api.node.NetworkNode teSubsystem,
@@ -430,10 +401,10 @@
.builder();
for (NetworkNodeKey nodeKey : teSubsystem.supportingNodeIds()) {
sNodes.add(spNodeBuilder
- .networkRef(NetworkId
- .fromString(nodeKey.networkId().toString()))
- .nodeRef(NodeId.fromString(nodeKey.nodeId().toString()))
- .build());
+ .networkRef(NetworkId
+ .fromString(nodeKey.networkId().toString()))
+ .nodeRef(NodeId.fromString(nodeKey.nodeId().toString()))
+ .build());
}
builder = builder.supportingNode(sNodes);
}
@@ -446,7 +417,7 @@
for (TerminationPoint teTp : teSubsystemTeTp.values()) {
tpAugmentBuilder.addToTerminationPoint(TerminationPointConverter
- .teSubsystem2YangTerminationPoint(teTp));
+ .teSubsystem2YangTerminationPoint(teTp));
}
builder.addYangAugmentedInfo(tpAugmentBuilder.build(),
AugmentedNdNode.class);
@@ -461,24 +432,21 @@
TeBuilder yangTeBuilder = DefaultTe.builder();
yangTeBuilder = yangTeBuilder.teNodeId(TeNodeId.of(DottedQuad
- .of(Ip4Address.valueOf((int) teSubsystemTeNode
- .teNodeId())
- .toString())));
+ .of(Ip4Address.valueOf((int) teSubsystemTeNode.teNodeId())
+ .toString())));
// Set configuration data
// Set state data
yangTeBuilder = yangTeBuilder.config(teNode2YangConfig(teSubsystemTeNode, teTopologyService))
- .state(teNode2YangState(teSubsystemTeNode, teTopologyService));
+ .state(teNode2YangState(teSubsystemTeNode, teTopologyService));
if (teSubsystemTeNode.tunnelTerminationPoints() != null) {
for (Map.Entry<Long, org.onosproject.tetopology.management.api.node.TunnelTerminationPoint> entry :
teSubsystemTeNode.tunnelTerminationPoints().entrySet()) {
yangTeBuilder = yangTeBuilder
- .addToTunnelTerminationPoint(teSubsystem2YangTtp(
- entry.getValue(), entry.getKey(),
- teTopologyService,
- new TeNodeKey(teTopologyKey,
- teSubsystemTeNode.teNodeId())));
+ .addToTunnelTerminationPoint(teSubsystem2YangTtp(entry
+ .getValue(), entry.getKey(), teTopologyService,
+ new TeNodeKey(teTopologyKey, teSubsystemTeNode.teNodeId())));
}
}
@@ -492,12 +460,12 @@
/**
* Node object conversion from YANG to TE Topology subsystem.
*
- * @param yangNode Node in YANG model
+ * @param yangNode Node in YANG model
* @param yangNetwork YANG network
* @return TE subsystem node
*/
public static org.onosproject.tetopology.management.api.node.NetworkNode
- yang2TeSubsystemNode(Node yangNode, Network yangNetwork) {
+ yang2TeSubsystemNode(Node yangNode, Network yangNetwork) {
checkNotNull(yangNode, E_NULL_YANG_NODE);
org.onosproject.tetopology.management.api.node.DefaultNetworkNode node;
@@ -541,12 +509,12 @@
// TODO: convert connectivity matrix from yang to te
private static Map<Long, ConnectivityMatrix>
- yang2TeSubsystemNodeConnectivityMatrix(String networkId,
- String nodeId,
- List<org.onosproject.yang.gen.v1.urn.ietf
- .params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeconnectivitymatrix.
- ConnectivityMatrix> yangMatrix) {
+ yang2TeSubsystemNodeConnectivityMatrix(String networkId,
+ String nodeId,
+ List<org.onosproject.yang.gen.v1.urn.ietf
+ .params.xml.ns.yang.ietf.te.topology.rev20160708
+ .ietftetopology.tenodeconnectivitymatrix.
+ ConnectivityMatrix> yangMatrix) {
Map<Long, ConnectivityMatrix> teCmList = Maps.newHashMap();
@@ -576,8 +544,8 @@
TePathAttributes teAttributes = new
TePathAttributes(cmYang.teDefaultMetric(),
cmYang.performanceMetric() == null ? null :
- (cmYang.performanceMetric().measurement() == null ? null :
- cmYang.performanceMetric().measurement().unidirectionalDelay()),
+ (cmYang.performanceMetric().measurement() == null ? null :
+ cmYang.performanceMetric().measurement().unidirectionalDelay()),
srlgs);
ConnectivityMatrix coreCm = new ConnectivityMatrix(cmYang.id(),
from,
@@ -602,7 +570,7 @@
// TODO: retrieve the details of tunnel termiantion points from yang to te
private static Map<Long, org.onosproject.tetopology.management.api.node.
- TunnelTerminationPoint> yang2TeSubsystemTtp(List<TunnelTerminationPoint> ttps, Node yangNode) {
+ TunnelTerminationPoint> yang2TeSubsystemTtp(List<TunnelTerminationPoint> ttps, Node yangNode) {
Map<Long, org.onosproject.tetopology.management.api.node.TunnelTerminationPoint> ttpsMap = Maps
.newHashMap();
for (TunnelTerminationPoint ttpYang : ttps) {
@@ -641,7 +609,7 @@
&& !tpItem.yangAugmentedInfoMap().isEmpty()) {
AugmentedNtTerminationPoint yangTpAugment =
(AugmentedNtTerminationPoint) tpItem
- .yangAugmentedInfo(AugmentedNtTerminationPoint.class);
+ .yangAugmentedInfo(AugmentedNtTerminationPoint.class);
if (yangTpAugment.te() != null && yangTpAugment.te().teTpId() != null) {
elt = new TeLinkId(Long.valueOf(yangTpAugment.te().teTpId().toString()));
break;
@@ -655,7 +623,7 @@
}
}
TePathAttributes teAttributes = null; // how to find these
- // attributes from ttpYang?
+ // attributes from ttpYang?
UnderlayAbstractPath underlayPath = null; // how to find underlayAbstractPath from ttpYang?
LocalLinkConnectivity llc = new LocalLinkConnectivity(eltList,
flags,
@@ -666,15 +634,16 @@
float[] availAdaptBandwidth = null; // how to find availableBandwidth?
org.onosproject.tetopology.management.api.node.
- TunnelTerminationPoint ttpTe = new
- org.onosproject.tetopology.management.api.node.
- DefaultTunnelTerminationPoint(ByteUtils.bytesToLong(ttpYang.tunnelTpId()),
- switchingLayer,
- encodingLayer,
- flags,
- interLayerLockList,
- localLinkConnectivityList,
- availAdaptBandwidth);
+ TunnelTerminationPoint ttpTe = new
+ org.onosproject.tetopology.management.api.node.
+ DefaultTunnelTerminationPoint(ByteUtils.bytesToLong(ttpYang.tunnelTpId()),
+ switchingLayer,
+ encodingLayer,
+ flags,
+ interLayerLockList,
+ localLinkConnectivityList,
+ availAdaptBandwidth,
+ null);
ttpsMap.put(ByteUtils.bytesToLong(ttpYang.tunnelTpId()), ttpTe);
}
@@ -711,28 +680,31 @@
List<Long> teTpIds = Lists.newArrayList();
// ********************************************** to find teLinkIds
+ // teLinkIds should be supposed to get from YANG Link and TP data.
+ // For now, assuming each teTp is sourcing a TE link .
if (MapUtils.isNotEmpty(teTps)) {
for (Map.Entry<KeyId, TerminationPoint> entry : teTps.entrySet()) {
if (entry.getValue().teTpId() != null) {
teTpIds.add(entry.getValue().teTpId());
+ teLinkIds.add(entry.getValue().teTpId());
}
}
}
// ********************************************** to find teTpIds
- if (yangNode.yangAugmentedInfoMap() != null
- && !yangNode.yangAugmentedInfoMap().isEmpty()) {
-
- AugmentedNdNode yangTpNodeAugment = (AugmentedNdNode) yangNode
- .yangAugmentedInfo(AugmentedNdNode.class);
-
- if (yangTpNodeAugment.terminationPoint() != null) {
- for (org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology
- .rev20151208.ietfnetworktopology.networks.network.node.augmentedndnode.TerminationPoint
- yangTpnode : yangTpNodeAugment.terminationPoint()) {
- teTpIds.add(Long.valueOf(yangTpnode.tpId().uri().string()));
- }
- }
- }
+// if (yangNode.yangAugmentedInfoMap() != null
+// && !yangNode.yangAugmentedInfoMap().isEmpty()) {
+//
+// AugmentedNdNode yangTpNodeAugment = (AugmentedNdNode) yangNode
+// .yangAugmentedInfo(AugmentedNdNode.class);
+//
+// if (yangTpNodeAugment.terminationPoint() != null) {
+// for (org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology
+// .rev20151208.ietfnetworktopology.networks.network.node.augmentedndnode.TerminationPoint
+// yangTpnode : yangTpNodeAugment.terminationPoint()) {
+// teTpIds.add(Long.valueOf(yangTpnode.tpId().uri().string()));
+// }
+// }
+// }
// **********************************************
Config ynodeAugCfg = yangNodeAugTe.config();
@@ -744,22 +716,22 @@
if (teNodeAttr.underlayTopology() != null) {
underlayTopologyIdId = yang2TeSubsystemNodeUnderlayTopology(teNodeAttr
- .underlayTopology());
+ .underlayTopology());
}
BitSet flags = new BitSet();
if (teNodeAttr.isAbstract()) {
flags.set(TeNode.BIT_ABSTRACT);
}
teData = new CommonNodeData(
- null, // teNodeAttr.name().string(),
- EnumConverter.yang2TeSubsystemAdminStatus(teNodeAttr.adminStatus()),
- EnumConverter.yang2TeSubsystemOpStatus(yangNodeAugTe.state().operStatus()),
- flags);
+ null, // teNodeAttr.name().string(),
+ EnumConverter.yang2TeSubsystemAdminStatus(teNodeAttr.adminStatus()),
+ EnumConverter.yang2TeSubsystemOpStatus(yangNodeAugTe.state().operStatus()),
+ flags);
if (teNodeAttr.connectivityMatrix() != null) {
connMatrices = yang2TeSubsystemNodeConnectivityMatrix(yangNetworkId.uri().toString(),
- yangNodeId.uri().toString(),
- teNodeAttr.connectivityMatrix());
+ yangNodeId.uri().toString(),
+ teNodeAttr.connectivityMatrix());
}
}
@@ -801,7 +773,7 @@
* to its corresponding YANG Object (YO) format.
*
* @param eventType Node event type
- * @param eventData TE Topology node event data
+ * @param eventData TE Topology node event data
* @return YANG Object converted from nodeData
*/
public static TeNodeEvent teNetworkNode2yangTeNodeEvent(TeTopologyEventTypeEnum eventType,
@@ -820,7 +792,7 @@
org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.
rev20160708.ietftetopology.tenodeconfigattributesnotification.
TeNodeAttributes teNodeAttributes = node == null ? null
- : teNode2YangTeNodeAttributes(node.teNode());
+ : teNode2YangTeNodeAttributes(node.teNode());
builder.teNodeAttributes(teNodeAttributes);
return builder.build();
@@ -841,31 +813,31 @@
if (teNode.connectivityMatrices() != null) {
org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology
- .tenodeconnectivitymatrixabs.DefaultConnectivityMatrix
- .ConnectivityMatrixBuilder connectivityMatrixConfigBuilder = org.onosproject.yang.gen.v1.urn.ietf.
- params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrixabs.
- DefaultConnectivityMatrix.builder();
+ .tenodeconnectivitymatrixabs.DefaultConnectivityMatrix
+ .ConnectivityMatrixBuilder connectivityMatrixConfigBuilder = org.onosproject.yang.gen.v1.urn.ietf.
+ params.xml.ns.yang.ietf.te.topology.rev20160708.ietftetopology.tenodeconnectivitymatrixabs.
+ DefaultConnectivityMatrix.builder();
for (Map.Entry<Long, ConnectivityMatrix> teCmEntry :
- teNode.connectivityMatrices().entrySet()) {
+ teNode.connectivityMatrices().entrySet()) {
connectivityMatrixConfigBuilder = connectivityMatrixConfigBuilder
.id(teCmEntry.getKey())
.isAllowed(!teCmEntry.getValue().flags()
- .get(ConnectivityMatrix.BIT_DISALLOWED))
+ .get(ConnectivityMatrix.BIT_DISALLOWED))
.from(new org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeconnectivitymatrixabs.connectivitymatrix.DefaultFrom
- .FromBuilder() // TODO: for now, assuming that there is
- // only one 'from', and mergingList is empty
- .tpRef(teCmEntry.getValue().from())
- .build())
+ .ietftetopology.tenodeconnectivitymatrixabs.connectivitymatrix.DefaultFrom
+ .FromBuilder() // TODO: for now, assuming that there is
+ // only one 'from', and mergingList is empty
+ .tpRef(teCmEntry.getValue().from())
+ .build())
.to(new org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev20160708
- .ietftetopology.tenodeconnectivitymatrixabs.connectivitymatrix
- .DefaultTo.ToBuilder() // TODO: for now, assuming that there is only
- // one item in constrainingElements list
- .tpRef(teCmEntry.getValue().constrainingElements().get(0))
- .build());
+ .ietftetopology.tenodeconnectivitymatrixabs.connectivitymatrix
+ .DefaultTo.ToBuilder() // TODO: for now, assuming that there is only
+ // one item in constrainingElements list
+ .tpRef(teCmEntry.getValue().constrainingElements().get(0))
+ .build());
attrBuilder = attrBuilder
.addToConnectivityMatrix(connectivityMatrixConfigBuilder
- .build());
+ .build());
}
}
@@ -877,7 +849,8 @@
}
/**
- * Retrieves the TE network node key from a YANG network node notification event.
+ * Retrieves the TE network node key from a YANG network node notification
+ * event.
*
* @param yangNodeEvent YANG network node notification event
* @return TE network node key
@@ -896,7 +869,7 @@
/**
* Converts YangNode event to NetworkNode.
*
- * @param yangNodeEvent yangNodeEvent
+ * @param yangNodeEvent yangNodeEvent
* @param teTopologyService teTopologyService
* @return NetworkNode
*/
@@ -992,12 +965,12 @@
}
private static ConnectivityMatrix yangNodeEvent2TeConnectivityMatrix(org.onosproject.yang.gen.v1.
- urn.ietf.params.xml.ns.yang.
- ietf.te.topology
- .rev20160708.ietftetopology
- .tenodeconnectivitymatrixabs
- .ConnectivityMatrix yangConnMatrix,
- ConnectivityMatrix oldTeConnMatrix) {
+ urn.ietf.params.xml.ns.yang.
+ ietf.te.topology
+ .rev20160708.ietftetopology
+ .tenodeconnectivitymatrixabs
+ .ConnectivityMatrix yangConnMatrix,
+ ConnectivityMatrix oldTeConnMatrix) {
long id = yangConnMatrix.id();
ElementType from = new TeLinkId((long) (yangConnMatrix.from().tpRef()));