Test: Changes to subscriber multitable test to work with latest ONOS.
Use CPQD over OVS with pmc-olt pipeline driver to test igmp/multicast groupid flows.

Change-Id: I83f8b3f378aee7fa3da2c8d99df128b8cd85035b
diff --git a/src/test/apps/ciena-cordigmp.multi-table/pom.xml b/src/test/apps/ciena-cordigmp.multi-table/pom.xml
index 4c49010..a9f8c85 100644
--- a/src/test/apps/ciena-cordigmp.multi-table/pom.xml
+++ b/src/test/apps/ciena-cordigmp.multi-table/pom.xml
@@ -17,23 +17,39 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

     <modelVersion>4.0.0</modelVersion>

 

+        <parent>

+        <groupId>org.onosproject</groupId>

+        <artifactId>onos</artifactId>

+        <version>1.6.0-rc2</version>

+        <relativePath></relativePath>

+    </parent>

+

     <groupId>org.ciena.cordigmp</groupId>

     <artifactId>ciena-cordigmp</artifactId>

-    <version>1.0-SNAPSHOT</version>

+    <version>2.0-SNAPSHOT</version>

     <packaging>bundle</packaging>

 

+          <repositories>

+        <repository>

+          <id>oss-staging</id>

+          <name>OSS Staging</name>

+          <url>https://oss.sonatype.org/content/groups/staging</url>

+        </repository>

+      </repositories>

+

     <description>Ciena CORD IGMP for OVS</description>

     <url>http://onosproject.org</url>

 

     <properties>

         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

-        <onos.version>1.6.0-SNAPSHOT</onos.version>

+        <onos.version>1.6.0-rc2</onos.version>

         <onos.app.name>org.ciena.cordigmp</onos.app.name>

         <onos.app.title>Ciena IGMP for OVS</onos.app.title>

         <onos.app.origin>Ciena Inc.</onos.app.origin>

         <onos.app.category>default</onos.app.category>

         <onos.app.url>http://onosproject.org</onos.app.url>

         <onos.app.readme>ONOS OSGi bundle archetype.</onos.app.readme>

+        <onos.app.requires>org.opencord.config</onos.app.requires>

     </properties>

 

     <dependencies>

@@ -44,9 +60,9 @@
         </dependency>

 

         <dependency>

-            <groupId>org.onosproject</groupId>

-            <artifactId>onos-cord-config</artifactId>

-            <version>${onos.version}</version>

+            <groupId>org.opencord</groupId>

+            <artifactId>cord-config</artifactId>

+            <version>1.0-SNAPSHOT</version>

         </dependency>

 

         <dependency>

@@ -63,14 +79,6 @@
         </dependency>

 

         <dependency>

-            <groupId>org.onosproject</groupId>

-            <artifactId>onos-api</artifactId>

-            <version>${onos.version}</version>

-            <scope>test</scope>

-            <classifier>tests</classifier>

-        </dependency>

-

-        <dependency>

             <groupId>org.apache.felix</groupId>

             <artifactId>org.apache.felix.scr.annotations</artifactId>

             <version>1.9.12</version>

@@ -92,6 +100,25 @@
         <artifactId>guava</artifactId>

         <version>19.0</version>

       </dependency>

+

+              <dependency>

+            <groupId>org.onosproject</groupId>

+            <artifactId>onlab-misc</artifactId>

+            <version>${onos.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.onosproject</groupId>

+            <artifactId>onos-incubator-api</artifactId>

+            <version>${onos.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.onosproject</groupId>

+            <artifactId>onos-core-common</artifactId>

+            <version>${onos.version}</version>

+        </dependency>

+

     </dependencies>

 

     <build>

diff --git a/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/CordIgmp.java b/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/CordIgmp.java
index 5b252d2..441a0a4 100644
--- a/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/CordIgmp.java
+++ b/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/CordIgmp.java
@@ -15,7 +15,6 @@
  */
 package org.ciena.cordigmp;
 
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.felix.scr.annotations.Activate;
@@ -29,8 +28,8 @@
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.VlanId;
 import org.onosproject.cfg.ComponentConfigService;
-import org.onosproject.cordconfig.access.AccessDeviceConfig;
-import org.onosproject.cordconfig.access.AccessDeviceData;
+import org.opencord.cordconfig.access.AccessDeviceConfig;
+import org.opencord.cordconfig.access.AccessDeviceData;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.net.ConnectPoint;
@@ -60,9 +59,7 @@
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 
-import java.io.IOException;
 import java.util.Dictionary;
-import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
@@ -185,7 +182,7 @@
         Dictionary<?, ?> properties = context != null ? context.getProperties() : new Properties();
 
         try {
-            
+
             String s = get(properties, "mcastVlan");
             mcastVlan = isNullOrEmpty(s) ? DEFAULT_MCAST_VLAN : Short.parseShort(s.trim());
 
@@ -239,8 +236,8 @@
         TrafficSelector.Builder metabuilder = DefaultTrafficSelector.builder()
             .matchEthType(Ethernet.TYPE_IPV4)
             .matchIPDst(info.route().group().toIpPrefix());
-        if(vlanEnabled) {
-            metabuilder.matchVlanId(VlanId.vlanId((short)mcastVlan));
+        if (vlanEnabled) {
+            metabuilder.matchVlanId(VlanId.vlanId((short) mcastVlan));
         }
         NextObjective next = DefaultNextObjective.builder()
                 .fromApp(appId)
@@ -379,7 +376,7 @@
 
             flowObjectiveService.next(sink.deviceId(), next);
 
-            log.info("Append flows for device {}, id {}, ip {}", sink.deviceId(), nextId, 
+            log.info("Append flows for device {}, id {}, ip {}", sink.deviceId(), nextId,
                      route.group().toIpPrefix());
         }
 
diff --git a/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/package-info.java b/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/package-info.java
new file mode 100644
index 0000000..75494c5
--- /dev/null
+++ b/src/test/apps/ciena-cordigmp.multi-table/src/main/java/org/ciena/cordigmp/package-info.java
@@ -0,0 +1,8 @@
+/**
+ * Ciena application for cord tester to provision flows with ovs.
+ * This is required as OVS onos driver does not support multi-table inserts.
+ * This application takes a port pair configuration per group to provision flows.
+ * To be used in simulation environments with subscriber tests.
+ * On the target, cordmcast app should be used.
+ */
+package org.ciena.cordigmp;