Detangling incubator: virtual nets, tunnels, resource labels, oh my

- virtual networking moved to /apps/virtual; with CLI & REST API
- tunnels and labels moved to /apps/tunnel; with CLI & REST API; UI disabled for now
- protobuf/models moved to /core/protobuf/models
- defunct grpc/rpc registry stuff left under /graveyard
- compile dependencies on /incubator moved to respective modules for compilation
- run-time dependencies will need to be re-tested for dependent apps

- /graveyard will be removed in not-too-distant future

Change-Id: I0a0b995c635487edcf95a352f50dd162186b0b39
diff --git a/apps/simplefabric/app/BUILD b/apps/simplefabric/app/BUILD
index 69d12f7..ed130ec 100644
--- a/apps/simplefabric/app/BUILD
+++ b/apps/simplefabric/app/BUILD
@@ -1,5 +1,6 @@
 COMPILE_DEPS = CORE_DEPS + JACKSON + CLI + REST + [
     "//apps/simplefabric/api:onos-apps-simplefabric-api",
+    "//apps/route-service/api:onos-apps-route-service-api",
     "@concurrent_trees//jar",
 ]
 
diff --git a/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/impl/SimpleFabricManager.java b/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/impl/SimpleFabricManager.java
index 7a4e5d8..6bfd813 100644
--- a/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/impl/SimpleFabricManager.java
+++ b/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/impl/SimpleFabricManager.java
@@ -81,6 +81,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import static org.onosproject.routeservice.RouteTools.createBinaryString;
 import static org.onosproject.simplefabric.api.Constants.ALLOW_ETH_ADDRESS_SELECTOR;
 import static org.onosproject.simplefabric.api.Constants.ALLOW_IPV6;
 import static org.onosproject.simplefabric.api.Constants.APP_ID;
@@ -89,7 +90,6 @@
 import static org.onosproject.simplefabric.api.Constants.REACTIVE_HASHED_PATH_SELECTION;
 import static org.onosproject.simplefabric.api.Constants.REACTIVE_MATCH_IP_PROTO;
 import static org.onosproject.simplefabric.api.Constants.REACTIVE_SINGLE_TO_SINGLE;
-import static org.onosproject.simplefabric.util.RouteTools.createBinaryString;
 
 
 /**
diff --git a/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/util/RouteTools.java b/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/util/RouteTools.java
deleted file mode 100644
index d02fed2..0000000
--- a/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/util/RouteTools.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * 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.
- */
-/*
- * local copy of onos/incubator/api/src/main/java/org/onosproject/incubator/net/routing/RouteTools.java
- * to remove dependency on onos.incubator.routing services, since 2017-08-09.
- */
-
-package org.onosproject.simplefabric.util;
-
-import org.onlab.packet.IpPrefix;
-
-/**
- * Routing tools.
- */
-public final class RouteTools {
-
-    private RouteTools() {
-    }
-
-    /**
-     * Creates a binary string representation of an IP prefix.
-     *
-     * For each string, we put a extra "0" in the front. The purpose of
-     * doing this is to store the default route inside InvertedRadixTree.
-     *
-     * @param ipPrefix the IP prefix to use
-     * @return the binary string representation
-     */
-    public static String createBinaryString(IpPrefix ipPrefix) {
-        byte[] octets = ipPrefix.address().toOctets();
-        StringBuilder result = new StringBuilder(ipPrefix.prefixLength());
-        result.append("0");
-        for (int i = 0; i < ipPrefix.prefixLength(); i++) {
-            int byteOffset = i / Byte.SIZE;
-            int bitOffset = i % Byte.SIZE;
-            int mask = 1 << (Byte.SIZE - 1 - bitOffset);
-            byte value = octets[byteOffset];
-            boolean isSet = ((value & mask) != 0);
-            result.append(isSet ? "1" : "0");
-        }
-        return result.toString();
-    }
-}
diff --git a/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/util/package-info.java b/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/util/package-info.java
deleted file mode 100644
index 9b3dde3..0000000
--- a/apps/simplefabric/app/src/main/java/org/onosproject/simplefabric/util/package-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * 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.
- */
-
-/**
- * Simple fabric utility package.
- */
-package org.onosproject.simplefabric.util;
\ No newline at end of file