[ONOS-6179] Virtual Network Packet Propagation Issue

There is a problem that the packet request from virtual network
is not relay to real packet service because
VirtualNetworkPacketService cannot process requestPacket()
properly.
Moreover, the installed flow rules from vNet are not syncronized
with the physical rules.

Change-Id: I20c3e1fbb7668f563fafcb3a9d6a7d80ffba55fd
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPacketManagerTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPacketManagerTest.java
index 184a30e..be91963 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPacketManagerTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPacketManagerTest.java
@@ -338,7 +338,12 @@
         }
 
         @Override
-        public void startPacketHandling() {
+        public void startPacketHandling(NetworkId networkId) {
+
+        }
+
+        @Override
+        public void stopPacketHandling(NetworkId networkId) {
 
         }
     }
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualFlowRuleProviderTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualFlowRuleProviderTest.java
index 0d3c8cc..2b010bb 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualFlowRuleProviderTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualFlowRuleProviderTest.java
@@ -73,6 +73,7 @@
 import org.onosproject.net.topology.Topology;
 import org.onosproject.net.topology.TopologyServiceAdapter;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
@@ -125,7 +126,6 @@
 
     private static final int TIMEOUT = 10;
 
-
     protected DefaultVirtualFlowRuleProvider virtualProvider;
 
     private ApplicationId vAppId;
@@ -136,7 +136,7 @@
 
         virtualProvider.deviceService = new TestDeviceService();
         virtualProvider.coreService = new TestCoreService();
-        virtualProvider.virtualNetworkAdminService =
+        virtualProvider.vnService =
                 new TestVirtualNetworkAdminService();
         virtualProvider.topologyService = new TestTopologyService();
         virtualProvider.flowRuleService = new TestFlowRuleService();
@@ -154,7 +154,7 @@
     }
 
     @Test
-    public void virtualizeFlowRuleWithInPort() {
+    public void devirtualizeFlowRuleWithInPort() {
         TrafficSelector ts = DefaultTrafficSelector.builder()
                 .matchInPort(PORT_NUM1).build();
         TrafficTreatment tr = DefaultTrafficTreatment.builder()
@@ -203,7 +203,7 @@
     }
 
     @Test
-    public void virtualizeFlowRuleWithoutInPort() {
+    public void devirtualizeFlowRuleWithoutInPort() {
         TrafficSelector ts = DefaultTrafficSelector.builder().build();
         TrafficTreatment tr = DefaultTrafficTreatment.builder()
                 .setOutput(PORT_NUM2).build();
@@ -327,7 +327,7 @@
         }
     }
 
-    private static class TestVirtualNetworkAdminService
+    private class TestVirtualNetworkAdminService
             implements VirtualNetworkAdminService {
 
         @Override
@@ -368,7 +368,7 @@
 
         @Override
         public ApplicationId getVirtualNetworkApplicationId(NetworkId networkId) {
-            return null;
+            return vAppId;
         }
 
         @Override
@@ -504,15 +504,13 @@
         public Iterable<FlowEntry> getFlowEntries(DeviceId deviceId) {
             return ruleCollection.stream()
                     .filter(r -> r.deviceId().equals(deviceId))
-                    .map(r -> new DefaultFlowEntry(r))
+                    .map(DefaultFlowEntry::new)
                     .collect(Collectors.toSet());
         }
 
         @Override
         public void applyFlowRules(FlowRule... flowRules) {
-            for (FlowRule rule : flowRules) {
-                ruleCollection.add(rule);
-            }
+            ruleCollection.addAll(Arrays.asList(flowRules));
         }
 
         @Override
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProviderTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProviderTest.java
index dc99153..32c6a30 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProviderTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProviderTest.java
@@ -55,7 +55,9 @@
 import org.onosproject.net.Link;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
 import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
 import org.onosproject.net.flow.TrafficTreatment;
 import org.onosproject.net.flow.instructions.Instruction;
 import org.onosproject.net.flow.instructions.Instructions;
@@ -142,7 +144,7 @@
         virtualProvider = new DefaultVirtualPacketProvider();
 
         virtualProvider.coreService = new CoreServiceAdapter();
-        virtualProvider.virtualNetworkAdminService =
+        virtualProvider.vnaService =
                 new TestVirtualNetworkAdminService();
 
         providerService = new TestVirtualPacketProviderService();
@@ -155,15 +157,19 @@
         providerManager.registerProviderService(VNET_ID, providerService);
 
         virtualProvider.activate();
-        virtualProvider.startPacketHandling();
         vAppId = new TestApplicationId(0, "Virtual App");
+
+        TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
+        selector.matchEthType(Ethernet.TYPE_IPV4);
+
+        virtualProvider.startPacketHandling(VNET_ID);
     }
 
     @After
     public void tearDown() {
         virtualProvider.deactivate();
         virtualProvider.coreService = null;
-        virtualProvider.virtualNetworkAdminService = null;
+        virtualProvider.vnaService = null;
     }