[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) {