CORD-628 Refactored VTN service network and port API

- Removed direct use of Neutron data model and Neutron API
- Extended service network and service port API to have all network
  information required for VTN
- Removed unnecessary dependency manager and store
- Removed network state sync method with Neutron and XOS
- Removed Neutron and XOS access information from the network config
- Re-organized API packages

Change-Id: I18f49ec733309315f683dfb2e6be6526056118f1
diff --git a/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
index d4339df..153eed3 100644
--- a/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
@@ -20,6 +20,7 @@
 import com.google.common.collect.Sets;
 import org.onlab.packet.TpPort;
 import org.onosproject.net.DeviceId;
+import org.opencord.cordvtn.api.net.CidrAddr;
 
 import java.util.Comparator;
 import java.util.Objects;
@@ -37,9 +38,9 @@
 public final class CordVtnNode {
 
     private final String hostname;
-    private final NetworkAddress hostMgmtIp;
-    private final NetworkAddress localMgmtIp;
-    private final NetworkAddress dataIp;
+    private final CidrAddr hostMgmtIp;
+    private final CidrAddr localMgmtIp;
+    private final CidrAddr dataIp;
     private final Optional<TpPort> ovsdbPort;
     private final SshAccessInfo sshInfo;
     private final DeviceId integrationBridgeId;
@@ -65,9 +66,9 @@
      * @param state cordvtn node state
      */
     private CordVtnNode(String hostname,
-                        NetworkAddress hostMgmtIp,
-                        NetworkAddress localMgmtIp,
-                        NetworkAddress dataIp,
+                        CidrAddr hostMgmtIp,
+                        CidrAddr localMgmtIp,
+                        CidrAddr dataIp,
                         Optional<TpPort> ovsdbPort,
                         SshAccessInfo sshInfo,
                         DeviceId integrationBridgeId,
@@ -117,7 +118,7 @@
      *
      * @return network address
      */
-    public NetworkAddress hostMgmtIp() {
+    public CidrAddr hostMgmtIp() {
         return this.hostMgmtIp;
     }
 
@@ -126,7 +127,7 @@
      *
      * @return network address
      */
-    public NetworkAddress localMgmtIp() {
+    public CidrAddr localMgmtIp() {
         return this.localMgmtIp;
     }
 
@@ -135,7 +136,7 @@
      *
      * @return network address
      */
-    public NetworkAddress dataIp() {
+    public CidrAddr dataIp() {
         return this.dataIp;
     }
 
@@ -286,9 +287,9 @@
      */
     public static final class Builder {
         private String hostname;
-        private NetworkAddress hostMgmtIp;
-        private NetworkAddress localMgmtIp;
-        private NetworkAddress dataIp;
+        private CidrAddr hostMgmtIp;
+        private CidrAddr localMgmtIp;
+        private CidrAddr dataIp;
         private Optional<TpPort> ovsdbPort =
                 Optional.of(TpPort.tpPort(DEFAULT_OVSDB_PORT));
         private SshAccessInfo sshInfo;
@@ -344,7 +345,7 @@
          * @param hostMgmtIp host management netework ip address
          * @return cordvtn node builder
          */
-        public Builder hostMgmtIp(NetworkAddress hostMgmtIp) {
+        public Builder hostMgmtIp(CidrAddr hostMgmtIp) {
             checkNotNull(hostMgmtIp);
             this.hostMgmtIp = hostMgmtIp;
             return this;
@@ -357,7 +358,7 @@
          * @return cordvtn node builder
          */
         public Builder hostMgmtIp(String cidr) {
-            this.hostMgmtIp = NetworkAddress.valueOf(cidr);
+            this.hostMgmtIp = CidrAddr.valueOf(cidr);
             return this;
         }
 
@@ -367,7 +368,7 @@
          * @param localMgmtIp local management network ip address
          * @return cordvtn node builder
          */
-        public Builder localMgmtIp(NetworkAddress localMgmtIp) {
+        public Builder localMgmtIp(CidrAddr localMgmtIp) {
             checkNotNull(localMgmtIp);
             this.localMgmtIp = localMgmtIp;
             return this;
@@ -380,7 +381,7 @@
          * @return cordvtn node builder
          */
         public Builder localMgmtIp(String cidr) {
-            this.localMgmtIp = NetworkAddress.valueOf(cidr);
+            this.localMgmtIp = CidrAddr.valueOf(cidr);
             return this;
         }
 
@@ -390,7 +391,7 @@
          * @param dataIp data network ip address
          * @return cordvtn node builder
          */
-        public Builder dataIp(NetworkAddress dataIp) {
+        public Builder dataIp(CidrAddr dataIp) {
             checkNotNull(dataIp);
             this.dataIp = dataIp;
             return this;
@@ -403,7 +404,7 @@
          * @return cordvtn node builder
          */
         public Builder dataIp(String cidr) {
-            this.dataIp = NetworkAddress.valueOf(cidr);
+            this.dataIp = CidrAddr.valueOf(cidr);
             return this;
         }
 
diff --git a/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java b/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
deleted file mode 100644
index 93bcb7a..0000000
--- a/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.opencord.cordvtn.api.node;
-
-import com.google.common.base.MoreObjects;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.IpPrefix;
-
-import java.util.Objects;
-
-import static com.google.common.base.Preconditions.checkArgument;
-
-/**
- * Representation of a network address, which consists of IP address and prefix.
- */
-public final class NetworkAddress {
-    private final IpAddress ip;
-    private final IpPrefix prefix;
-
-    /**
-     * Constructor for a given IP address and prefix.
-     *
-     * @param ip ip address
-     * @param prefix ip prefix
-     */
-    public NetworkAddress(IpAddress ip, IpPrefix prefix) {
-        this.ip = ip;
-        this.prefix = prefix;
-    }
-
-    /**
-     * Converts a CIDR notation string into a network address.
-     *
-     * @param cidr cidr
-     * @return network address
-     * @throws IllegalArgumentException if the cidr is not valid
-     */
-    public static NetworkAddress valueOf(String cidr) {
-        checkArgument(cidr.contains("/"));
-
-        IpAddress ipAddress = IpAddress.valueOf(cidr.split("/")[0]);
-        IpPrefix ipPrefix = IpPrefix.valueOf(cidr);
-
-        return new NetworkAddress(ipAddress, ipPrefix);
-    }
-
-    /**
-     * Returns the IP address value of the network address.
-     *
-     * @return ip address
-     */
-    public IpAddress ip() {
-        return this.ip;
-    }
-
-    /**
-     * Returns the IP prefix value of the network address.
-     *
-     * @return ip prefix
-     */
-    public IpPrefix prefix() {
-        return this.prefix;
-    }
-
-    /**
-     * Converts a network address to a CIDR notation.
-     *
-     * @return cidr notation string
-     */
-    public String cidr() {
-        return ip.toString() + "/" + prefix.prefixLength();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-
-        if (obj instanceof NetworkAddress) {
-            NetworkAddress that = (NetworkAddress) obj;
-            if (Objects.equals(ip, that.ip) && Objects.equals(prefix, that.prefix)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(ip, prefix);
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(getClass())
-                .add("IpAddress", ip)
-                .add("IpPrefix", prefix)
-                .toString();
-    }
-}