[ONOS-5267] Initial implementation of MapResolver
Change-Id: I1438b0cc71b8fcb88064830d890ffc38ff9abd42
diff --git a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispEidRlocMap.java b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispEidRlocMap.java
index d85ff97..0593366 100644
--- a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispEidRlocMap.java
+++ b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispEidRlocMap.java
@@ -15,11 +15,14 @@
*/
package org.onosproject.lisp.ctl;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.onosproject.lisp.msg.protocols.LispEidRecord;
import org.onosproject.lisp.msg.protocols.LispMapRecord;
import org.onosproject.lisp.msg.types.LispAfiAddress;
+import java.util.List;
import java.util.Optional;
import java.util.concurrent.ConcurrentMap;
@@ -69,6 +72,23 @@
}
/**
+ * Obtains a collection of EID-RLOC mapping records with given EID records.
+ *
+ * @param eids endpoint identifier records
+ * @return a collection of EID-RLOC mapping records
+ */
+ public List<LispMapRecord> getMapRecordByEidRecords(List<LispEidRecord> eids) {
+ List<LispMapRecord> mapRecords = Lists.newArrayList();
+ eids.forEach(eidRecord -> {
+ LispMapRecord mapRecord = getMapRecordByEidRecord(eidRecord);
+ if (mapRecord != null) {
+ mapRecords.add(mapRecord);
+ }
+ });
+ return ImmutableList.copyOf(mapRecords);
+ }
+
+ /**
* Obtains an EID-RLOC mapping record with given EID address.
*
* @param address endpoint identifier address