commit | cfdf91b72eb284f0e7ad6b80d91f66e520459333 | [log] [tgz] |
---|---|---|
author | Kenji HIKICHI <hikichi.kenji@jp.fujitsu.com> | Wed May 25 13:04:45 2016 +0900 |
committer | Gerrit Code Review <gerrit@onlab.us> | Tue May 31 16:33:09 2016 +0000 |
tree | 165ff851daf61cf1f1bcae3b325051e23ad3f7aa | |
parent | 98c31657103de02b2199a03d47c65f81e09e3e15 [diff] |
[ONOS-4606] Avoid generating incorrect NetworkId Change-Id: I7b474e368cde8e46e3c903326a8052ce555c0c85
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/NetworkId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/NetworkId.java index 4ea57ea..d524156 100644 --- a/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/NetworkId.java +++ b/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/NetworkId.java
@@ -18,6 +18,8 @@ import com.google.common.annotations.Beta; import org.onlab.util.Identifier; +import java.util.Objects; + /** * Representation of network identity. */ @@ -34,6 +36,15 @@ */ public static final NetworkId PHYSICAL = networkId(0L); + /** + * Checks if the id is for virtual network. + * + * @return true if the id is for virtual network. + */ + public final boolean isVirtualNetworkId() { + return (!Objects.equals(this, NONE) && !Objects.equals(this, PHYSICAL)); + } + // Public construction is prohibited private NetworkId(long id) { super(id);
diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java b/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java index 7ceeb1b..538109d 100644 --- a/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java +++ b/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java
@@ -256,9 +256,13 @@ * @return NetworkId network identifier */ private NetworkId genNetworkId() { - return NetworkId.networkId(idGenerator.getNewId()); - } + NetworkId networkId; + do { + networkId = NetworkId.networkId(idGenerator.getNewId()); + } while (!networkId.isVirtualNetworkId()); + return networkId; + } @Override public void removeNetwork(NetworkId networkId) {