implemented a distributed default flow registration mechanism to avoid duplicate requests from other onos instances
Change-Id: Ib2abb483456538e3e08e9790c4b4b0d50db8b384
implemented a distributed default flow registration mechanism to avoid
duplicate requests from other onos instances
Change-Id: I620cc51ac29cddaffa73cdbb20e9a9acbdd9ea69
diff --git a/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java b/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java
index 30f3910..68da758 100644
--- a/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java
+++ b/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java
@@ -15,15 +15,21 @@
*/
package org.onosproject.store.trivial.impl;
+import com.google.common.collect.Sets;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
import org.onosproject.net.packet.OutboundPacket;
import org.onosproject.net.packet.PacketEvent;
import org.onosproject.net.packet.PacketEvent.Type;
+import org.onosproject.net.packet.PacketRequest;
import org.onosproject.net.packet.PacketStore;
import org.onosproject.net.packet.PacketStoreDelegate;
import org.onosproject.store.AbstractStore;
+
+import java.util.Collections;
+import java.util.Set;
+
/**
* Simple single instance implementation of the packet store.
*/
@@ -33,9 +39,21 @@
extends AbstractStore<PacketEvent, PacketStoreDelegate>
implements PacketStore {
+ private Set<PacketRequest> requests = Sets.newConcurrentHashSet();
+
@Override
public void emit(OutboundPacket packet) {
notifyDelegate(new PacketEvent(Type.EMIT, packet));
}
+ @Override
+ public boolean requestPackets(PacketRequest request) {
+ return requests.add(request);
+ }
+
+ @Override
+ public Set<PacketRequest> existingRequests() {
+ return Collections.unmodifiableSet(requests);
+ }
+
}