From bcb2264dc98356829f2ec6215f32b7b70811c579 Mon Sep 17 00:00:00 2001 From: Olivier Dugeon Date: Wed, 20 Jul 2022 18:28:47 +0200 Subject: [PATCH] Graph: add Multi-Topology support Graph supports IPv4 or IPv6 topology but with IS-IS Multi-Topology it is possible to advertise both IPv4 and IPv6 topologies. Recent versions of BGP-LS speaker also support this Multi-Topology. This patch changes the Graph yang model (including the revision date) to handle IPv4 and IPv6 simultaneously on Edges and Vertices for IS-IS Multi-Topology. JIRA: BGPCEP-1010 Change-Id: Icfcf9e8a27f5f9d3fd9a928dba8d3adffaf8de50 Signed-off-by: Olivier Dugeon Signed-off-by: Robert Varga --- .../algo/PathComputationAlgorithm.java | 2 +- .../src/main/yang/path-computation.yang | 2 +- .../algo/impl/AbstractPathComputation.java | 52 ++++----- .../impl/ConstrainedShortestPathFirst.java | 2 +- .../algo/impl/PathComputationServer.java | 2 +- .../org/opendaylight/algo/impl/Samcra.java | 4 +- .../algo/impl/ShortestPathFirst.java | 2 +- .../provider/LinkstateGraphBuilder.java | 102 ++++++++++-------- docs/graph/graph-user-guide-graph-model.rst | 11 +- .../org/opendaylight/graph/ConnectedEdge.java | 2 +- .../graph/ConnectedEdgeTrigger.java | 2 +- .../opendaylight/graph/ConnectedGraph.java | 32 ++++-- .../graph/ConnectedGraphProvider.java | 6 +- .../graph/ConnectedGraphTrigger.java | 4 +- .../opendaylight/graph/ConnectedVertex.java | 6 +- .../graph/ConnectedVertexTrigger.java | 2 +- graph/graph-api/src/main/yang/graph.yang | 40 +++++-- .../graph/impl/ConnectedEdgeImpl.java | 2 +- .../graph/impl/ConnectedGraphImpl.java | 41 ++++--- .../graph/impl/ConnectedGraphServer.java | 18 ++-- .../graph/impl/ConnectedVertexImpl.java | 6 +- .../graph/impl/GraphListener.java | 12 +-- .../bgpcep/pcep/server/PceServerProvider.java | 2 +- .../provider/DefaultPceServerProvider.java | 2 +- .../pcep/server/provider/ManagedTePath.java | 8 +- .../server/provider/PathComputationImpl.java | 6 +- .../server/provider/PathManagerProvider.java | 4 +- .../server/provider/PcepTopologyListener.java | 4 +- .../provider/PCEPTopologyConfiguration.java | 2 +- .../provider/ServerSessionManager.java | 2 +- .../provider/AbstractPCEPSessionTest.java | 2 +- 31 files changed, 231 insertions(+), 153 deletions(-) diff --git a/algo/algo-api/src/main/java/org/opendaylight/algo/PathComputationAlgorithm.java b/algo/algo-api/src/main/java/org/opendaylight/algo/PathComputationAlgorithm.java index 97ac2b55b3..eeed03fc2a 100644 --- a/algo/algo-api/src/main/java/org/opendaylight/algo/PathComputationAlgorithm.java +++ b/algo/algo-api/src/main/java/org/opendaylight/algo/PathComputationAlgorithm.java @@ -9,7 +9,7 @@ package org.opendaylight.algo; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPath; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.PathConstraints; diff --git a/algo/algo-api/src/main/yang/path-computation.yang b/algo/algo-api/src/main/yang/path-computation.yang index 36ea34b02e..59f031d816 100644 --- a/algo/algo-api/src/main/yang/path-computation.yang +++ b/algo/algo-api/src/main/yang/path-computation.yang @@ -4,7 +4,7 @@ module path-computation { prefix "algo"; import ietf-inet-types { prefix inet; revision-date 2013-07-15; } - import graph { prefix gr; revision-date 2019-11-25; } + import graph { prefix gr; revision-date 2022-07-20; } organization "Orange"; contact "Olivier Dugeon "; diff --git a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/AbstractPathComputation.java b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/AbstractPathComputation.java index 21dad91773..cffbc7cbdc 100644 --- a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/AbstractPathComputation.java +++ b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/AbstractPathComputation.java @@ -19,10 +19,10 @@ import org.opendaylight.graph.ConnectedVertex; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.EdgeAttributes; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.attributes.UnreservedBandwidth; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Prefix; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.EdgeAttributes; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.attributes.UnreservedBandwidth; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.Prefix; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.MplsLabel; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ComputationStatus; @@ -119,13 +119,13 @@ public abstract class AbstractPathComputation implements PathComputationAlgorith /* Check that Edge belongs to the Address Family of the requested path */ switch (constraints.getAddressFamily()) { case Ipv4: - if (attributes.getRemoteAddress() == null || attributes.getRemoteAddress().getIpv4Address() == null) { + if (attributes.getRemoteAddress() == null) { LOG.debug("No Ipv4 address"); return true; } break; case Ipv6: - if (attributes.getRemoteAddress() == null || attributes.getRemoteAddress().getIpv6Address() == null) { + if (attributes.getRemoteAddress6() == null) { LOG.debug("No Ipv6 address"); return true; } @@ -136,7 +136,7 @@ public abstract class AbstractPathComputation implements PathComputationAlgorith return true; } if (attributes.getAdjSid() == null) { - LOG.debug("No Adjacency-SID"); + LOG.debug("No SR Adjacency-SID for IPv4"); return true; } break; @@ -145,8 +145,8 @@ public abstract class AbstractPathComputation implements PathComputationAlgorith LOG.debug("No Node-SID for IPv6"); return true; } - if (attributes.getAdjSid() == null) { - LOG.debug("No SR Adjacency-SID"); + if (attributes.getAdjSid6() == null) { + LOG.debug("No SR Adjacency-SID for IPv6"); return true; } break; @@ -243,10 +243,10 @@ public abstract class AbstractPathComputation implements PathComputationAlgorith case SrIpv4: for (int i = 0; i < xro.size(); i++) { final Ipv4Address address = xro.get(i).getIpv4(); - if (address.equals(attributes.getRemoteAddress().getIpv4Address()) - || address.equals(attributes.getLocalAddress().getIpv4Address()) - || address.equals(edge.getSource().getVertex().getRouterId().getIpv4Address()) - || address.equals(edge.getDestination().getVertex().getRouterId().getIpv4Address())) { + if (address.equals(attributes.getRemoteAddress()) + || address.equals(attributes.getLocalAddress()) + || address.equals(edge.getSource().getVertex().getRouterId()) + || address.equals(edge.getDestination().getVertex().getRouterId())) { return true; } } @@ -255,10 +255,10 @@ public abstract class AbstractPathComputation implements PathComputationAlgorith case SrIpv6: for (int i = 0; i < xro.size(); i++) { final Ipv6Address address = xro.get(i).getIpv6(); - if (address.equals(attributes.getRemoteAddress().getIpv6Address()) - || address.equals(attributes.getLocalAddress().getIpv6Address()) - || address.equals(edge.getSource().getVertex().getRouterId().getIpv6Address()) - || address.equals(edge.getDestination().getVertex().getRouterId().getIpv6Address())) { + if (address.equals(attributes.getRemoteAddress6()) + || address.equals(attributes.getLocalAddress6()) + || address.equals(edge.getSource().getVertex().getRouterId6()) + || address.equals(edge.getDestination().getVertex().getRouterId6())) { return true; } } @@ -427,28 +427,28 @@ public abstract class AbstractPathComputation implements PathComputationAlgorith switch (constraints.getAddressFamily()) { case Ipv4: pathDesc = new PathDescriptionBuilder() - .setIpv4(edge.getEdge().getEdgeAttributes().getLocalAddress().getIpv4Address()) - .setRemoteIpv4(edge.getEdge().getEdgeAttributes().getRemoteAddress().getIpv4Address()) + .setIpv4(edge.getEdge().getEdgeAttributes().getLocalAddress()) + .setRemoteIpv4(edge.getEdge().getEdgeAttributes().getRemoteAddress()) .build(); break; case Ipv6: pathDesc = new PathDescriptionBuilder() - .setIpv6(edge.getEdge().getEdgeAttributes().getLocalAddress().getIpv6Address()) - .setRemoteIpv6(edge.getEdge().getEdgeAttributes().getRemoteAddress().getIpv6Address()) + .setIpv6(edge.getEdge().getEdgeAttributes().getLocalAddress6()) + .setRemoteIpv6(edge.getEdge().getEdgeAttributes().getRemoteAddress6()) .build(); break; case SrIpv4: pathDesc = new PathDescriptionBuilder() - .setIpv4(edge.getEdge().getEdgeAttributes().getLocalAddress().getIpv4Address()) - .setRemoteIpv4(edge.getEdge().getEdgeAttributes().getRemoteAddress().getIpv4Address()) + .setIpv4(edge.getEdge().getEdgeAttributes().getLocalAddress()) + .setRemoteIpv4(edge.getEdge().getEdgeAttributes().getRemoteAddress()) .setSid(edge.getEdge().getEdgeAttributes().getAdjSid()) .build(); break; case SrIpv6: pathDesc = new PathDescriptionBuilder() - .setIpv6(edge.getEdge().getEdgeAttributes().getLocalAddress().getIpv6Address()) - .setRemoteIpv6(edge.getEdge().getEdgeAttributes().getRemoteAddress().getIpv6Address()) - .setSid(edge.getEdge().getEdgeAttributes().getAdjSid()) + .setIpv6(edge.getEdge().getEdgeAttributes().getLocalAddress6()) + .setRemoteIpv6(edge.getEdge().getEdgeAttributes().getRemoteAddress6()) + .setSid(edge.getEdge().getEdgeAttributes().getAdjSid6()) .build(); break; default: diff --git a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ConstrainedShortestPathFirst.java b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ConstrainedShortestPathFirst.java index 3615aeb32c..5905a3ed23 100644 --- a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ConstrainedShortestPathFirst.java +++ b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ConstrainedShortestPathFirst.java @@ -11,7 +11,7 @@ import java.util.HashMap; import java.util.List; import org.opendaylight.graph.ConnectedEdge; import org.opendaylight.graph.ConnectedGraph; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ComputationStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPath; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPathBuilder; diff --git a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/PathComputationServer.java b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/PathComputationServer.java index f54fc9b9ff..f5707883eb 100644 --- a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/PathComputationServer.java +++ b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/PathComputationServer.java @@ -18,7 +18,7 @@ import org.opendaylight.algo.PathComputationProvider; import org.opendaylight.graph.ConnectedGraph; import org.opendaylight.graph.ConnectedGraphProvider; import org.opendaylight.mdsal.binding.api.RpcProviderService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.AlgorithmType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ComputationStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPath; diff --git a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/Samcra.java b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/Samcra.java index 35ed348b45..26fac22f40 100644 --- a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/Samcra.java +++ b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/Samcra.java @@ -13,8 +13,8 @@ import java.util.List; import org.opendaylight.graph.ConnectedEdge; import org.opendaylight.graph.ConnectedGraph; import org.opendaylight.graph.ConnectedVertex; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.Delay; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.Delay; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ComputationStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPath; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPathBuilder; diff --git a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ShortestPathFirst.java b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ShortestPathFirst.java index 7a389883c9..0e8b3ffb0b 100644 --- a/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ShortestPathFirst.java +++ b/algo/algo-impl/src/main/java/org/opendaylight/algo/impl/ShortestPathFirst.java @@ -11,7 +11,7 @@ import java.util.HashMap; import java.util.List; import org.opendaylight.graph.ConnectedEdge; import org.opendaylight.graph.ConnectedGraph; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ComputationStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPath; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev220324.ConstrainedPathBuilder; diff --git a/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java b/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java index 1cbd7be229..3154670170 100644 --- a/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java +++ b/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java @@ -23,7 +23,6 @@ import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; import org.opendaylight.protocol.bgp.rib.RibReference; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.Ipv4InterfaceIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.Ipv6InterfaceIdentifier; @@ -51,33 +50,33 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.link import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.OspfNodeCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.Tables; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.adj.flags.flags.isis.adj.flags._case.IsisAdjFlags; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.adj.flags.flags.ospf.adj.flags._case.OspfAdjFlags; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.adj.flags.flags.IsisAdjFlagsCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.adj.flags.flags.OspfAdjFlagsCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.prefix.sid.tlv.flags.IsisPrefixFlagsCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.SidLabelIndex; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.sid.label.index.LocalLabelCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.sid.label.index.SidCase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.DecimalBandwidth; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.Delay; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.Loss; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.Vertex.VertexType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.EdgeAttributes; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.EdgeAttributesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.attributes.MinMaxDelay; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.attributes.MinMaxDelayBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.attributes.UnreservedBandwidth; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.attributes.UnreservedBandwidthBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.edge.attributes.UnreservedBandwidthKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.Graph.DomainScope; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Edge; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.EdgeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.EdgeKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Prefix; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.PrefixBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Vertex; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.vertex.SrgbBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.DecimalBandwidth; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.Delay; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.Loss; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.Vertex.VertexType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.EdgeAttributes; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.EdgeAttributesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.attributes.MinMaxDelay; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.attributes.MinMaxDelayBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.attributes.UnreservedBandwidth; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.attributes.UnreservedBandwidthBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.edge.attributes.UnreservedBandwidthKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.Graph.DomainScope; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.Edge; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.EdgeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.EdgeKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.Prefix; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.PrefixBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.Vertex; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.vertex.SrgbBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.topology.types.rev160524.TopologyTypes1Builder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.topology.types.rev160524.bgp.linkstate.topology.type.BgpLinkstateTopologyBuilder; @@ -209,24 +208,24 @@ public class LinkstateGraphBuilder extends AbstractTopologyBuilder