Bulk merge of l2gw changes
[netvirt.git] / elanmanager / impl / src / main / java / org / opendaylight / netvirt / elan / cache / ConfigMcastCache.java
index 1e4c36e5c7888f5b20d942021d0bb76562dd4b4f..bdbf3bc4e5cfc045ee18b07eece2d94fc8540f2d 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.netvirt.elan.cache;
 
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.opendaylight.genius.mdsalutil.cache.InstanceIdDataObjectCache;
@@ -28,6 +30,7 @@ import org.slf4j.LoggerFactory;
 public class ConfigMcastCache extends InstanceIdDataObjectCache<RemoteMcastMacs> {
 
     private static final Logger LOG = LoggerFactory.getLogger(ConfigMcastCache.class);
+    private final Map<InstanceIdentifier, RemoteMcastMacs> lsCache = new ConcurrentHashMap<>();
 
     @Inject
     public ConfigMcastCache(DataBroker dataBroker, CacheProvider cacheProvider) {
@@ -37,4 +40,20 @@ public class ConfigMcastCache extends InstanceIdDataObjectCache<RemoteMcastMacs>
                         .child(Node.class).augmentation(HwvtepGlobalAugmentation.class)
                         .child(RemoteMcastMacs.class), cacheProvider);
     }
-}
+
+    @Override
+    public void added(InstanceIdentifier<RemoteMcastMacs> identifier, RemoteMcastMacs add) {
+        LOG.trace("Got mcast add {}", add);
+        lsCache.put(add.getLogicalSwitchRef().getValue(), add);
+    }
+
+    @Override
+    public void removed(InstanceIdentifier<RemoteMcastMacs> identifier, RemoteMcastMacs del) {
+        LOG.trace("Got mcast remove {}" , del);
+        lsCache.remove(del.getLogicalSwitchRef().getValue());
+    }
+
+    public RemoteMcastMacs getMac(InstanceIdentifier lsIid) {
+        return lsCache.get(lsIid);
+    }
+}
\ No newline at end of file