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);
}
/**