Add test cases to test subscriber multi-table support with ONOS using CPQD and a new ONOS app.
This would verify single channel multiple subscriber joins using cpqd.
ONOS multi-table support was found to be broken with cordmcast.
Hence a new app similar to cordmcast was added to verify if multi-table rules were provisioned with ONOS
cpqd pipeline driver.
Using a different subscriber port per subscriber and provisioning an uplink port to be used
for IGMP traffic, it was found that ONOS cpqd driver fails to provision multi-table flows using group ids.
The subscriberMultiTable tests uses the new cordigmp multitable app to provision multicast flows in ONOS
enabling the spring-open-cpqd pipeline driver with ONOS when using CPQD.

If you want to verify/run the subscriberMultiTable test, first rebuild the test container with cpqd using:
sudo cord-test.py build test
And then run the subscriberMultiTable test: test_subscriber_join_recv using:
cord-test.run run --radius -t subscriberMultiTable:subscriber_exchange.test_subscriber_join_recv -k
diff --git a/src/test/setup/cpqd.sh b/src/test/setup/cpqd.sh
new file mode 100755
index 0000000..7500fb5
--- /dev/null
+++ b/src/test/setup/cpqd.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+dpid=${1:-001122334455}
+num_ports=${2:-200}
+controller=${3:-$ONOS_CONTROLLER_IP}
+num_ports=$(($num_ports-1))
+my_ip=`ifconfig eth0 | grep "inet addr" | tr -s ' ' | cut -d":" -f2 |cut -d" " -f1`
+if_list="veth1"
+for port in $(seq 3 2 $num_ports); do
+    if_list="$if_list"",""veth$port"
+done
+service openvswitch-switch stop
+nohup ofdatapath --no-slicing --datapath-id=$dpid --interfaces=$if_list ptcp:6653 2>&1 >/tmp/nohup.out &
+nohup ofprotocol tcp:$my_ip:6653 tcp:$controller:6633 2>&1 >/tmp/nohup.out &