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/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java b/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java
index 8b6b413..afcd4ee 100644
--- a/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java
+++ b/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java
@@ -76,10 +76,34 @@
     public void activate(ComponentContext context) {
         cfgService.registerProperties(getClass());
         appId = coreService.registerApplication("org.onosproject.proxyarp");
-        readComponentConfiguration(context);
 
         packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 1);
+        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);
+        packetService.removeProcessor(processor);
+        processor = 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);
@@ -103,21 +127,6 @@
             packetService.requestPackets(selectorBuilder.build(),
                                          PacketPriority.CONTROL, appId);
         }
-
-        log.info("Started with Application ID {}", appId.id());
-    }
-
-    @Deactivate
-    public void deactivate() {
-        cfgService.unregisterProperties(getClass(), false);
-        packetService.removeProcessor(processor);
-        processor = null;
-        log.info("Stopped");
-    }
-
-    @Modified
-    public void modified(ComponentContext context) {
-        readComponentConfiguration(context);
     }
 
     /**