Request packet in when config being modified during runtime.

We can now enable features such as IPv6 via cfg command dynamically.
NOTE: We should remove unnecessary packet requests when app being deactivated
or modified once PacketService support the request revocation.

Change-Id: I7f239ce9db74456097675d03de99468db70a919f
diff --git a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
index 11888fd..b776280 100644
--- a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
+++ b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
@@ -128,17 +128,43 @@
     public void activate(ComponentContext context) {
         cfgService.registerProperties(getClass());
         appId = coreService.registerApplication("org.onosproject.provider.host");
-        readComponentConfiguration(context);
 
         providerService = providerRegistry.register(this);
         packetService.addProcessor(processor, 1);
         deviceService.addListener(deviceListener);
+        readComponentConfiguration(context);
+        requestPackests();
 
+        log.info("Started with Application ID {}", appId.id());
+    }
+
+    @Deactivate
+    public void deactivate() {
+        // TODO revoke all packet requests when deactivate
+        cfgService.unregisterProperties(getClass(), false);
+        providerRegistry.unregister(this);
+        packetService.removeProcessor(processor);
+        deviceService.removeListener(deviceListener);
+        providerService = null;
+        log.info("Stopped");
+    }
+
+    @Modified
+    public void modified(ComponentContext context) {
+        // TODO revoke unnecessary packet requests when config being modified
+        readComponentConfiguration(context);
+        requestPackests();
+    }
+
+    /**
+     * Request packet in via PacketService.
+     */
+    private void requestPackests() {
         TrafficSelector.Builder selectorBuilder =
                 DefaultTrafficSelector.builder();
         selectorBuilder.matchEthType(Ethernet.TYPE_ARP);
         packetService.requestPackets(selectorBuilder.build(),
-                                  PacketPriority.CONTROL, appId);
+                                     PacketPriority.CONTROL, appId);
 
         if (ipv6NeighborDiscovery) {
             // IPv6 Neighbor Solicitation packet.
@@ -157,23 +183,6 @@
             packetService.requestPackets(selectorBuilder.build(),
                                          PacketPriority.CONTROL, appId);
         }
-
-        log.info("Started with Application ID {}", appId.id());
-    }
-
-    @Deactivate
-    public void deactivate() {
-        cfgService.unregisterProperties(getClass(), false);
-        providerRegistry.unregister(this);
-        packetService.removeProcessor(processor);
-        deviceService.removeListener(deviceListener);
-        providerService = null;
-        log.info("Stopped");
-    }
-
-    @Modified
-    public void modified(ComponentContext context) {
-        readComponentConfiguration(context);
     }
 
     /**