diff --git a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
index b6e01c8..4283c78 100755
--- a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
+++ b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
@@ -15,7 +15,9 @@
  */
 package org.onosproject.mapping.impl;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
@@ -44,6 +46,7 @@
 import org.onosproject.net.provider.AbstractProviderService;
 import org.slf4j.Logger;
 
+import java.util.List;
 import java.util.Set;
 
 import static org.slf4j.LoggerFactory.getLogger;
@@ -190,5 +193,17 @@
         public MappingValue mappingQueried(MappingKey mappingKey) {
             return getMappingValueByMappingKey(mappingKey);
         }
+
+        @Override
+        public List<MappingValue> mappingQueried(List<MappingKey> mappingKeys) {
+            List<MappingValue> values = Lists.newArrayList();
+            mappingKeys.forEach(key -> {
+                MappingValue value = getMappingValueByMappingKey(key);
+                if (value != null) {
+                    values.add(value);
+                }
+            });
+            return ImmutableList.copyOf(values);
+        }
     }
 }
