diff options
author | Jan Srnicek <jsrnicek@cisco.com> | 2016-10-04 16:44:47 +0200 |
---|---|---|
committer | Maros Marsalek <mmarsale@cisco.com> | 2016-10-05 11:52:37 +0000 |
commit | 5d1054b26f144948be321f30204b4b2a7cbbc03e (patch) | |
tree | 2104b21d9a2e728b8275d5d9f2a554c414db8c31 /lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java | |
parent | 512143ddd9995d16d9bb055481721fa276ccfa01 (diff) |
HONEYCOMB-138 - Lisp L2 Support
Change-Id: Idff4776a64a88be2e0a45ab1927978e40876ea92
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java')
-rwxr-xr-x | lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java index 3e26de47d..e8a28cc1b 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/read/VniTableCustomizer.java @@ -28,6 +28,11 @@ import io.fd.honeycomb.translate.util.RWUtils; import io.fd.honeycomb.translate.util.read.cache.DumpCacheManager; import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.DumpExecutionFailedException; import io.fd.honeycomb.translate.vpp.util.FutureJVppCustomizer; +import io.fd.vpp.jvpp.core.dto.LispEidTableMapDetails; +import io.fd.vpp.jvpp.core.dto.LispEidTableMapDetailsReplyDump; +import io.fd.vpp.jvpp.core.dto.LispEidTableVniDetails; +import io.fd.vpp.jvpp.core.dto.LispEidTableVniDetailsReplyDump; +import io.fd.vpp.jvpp.core.future.FutureJVppCore; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -39,9 +44,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import io.fd.vpp.jvpp.core.dto.LispEidTableMapDetails; -import io.fd.vpp.jvpp.core.dto.LispEidTableMapDetailsReplyDump; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,16 +56,16 @@ public class VniTableCustomizer extends FutureJVppCustomizer private static final Logger LOG = LoggerFactory.getLogger(VniTableCustomizer.class); private static final String LISP_TABLE_ID_DUMP = VniTableCustomizer.class.getName(); - private final DumpCacheManager<LispEidTableMapDetailsReplyDump, Void> dumpManager; + private final DumpCacheManager<LispEidTableVniDetailsReplyDump, Void> dumpManager; public VniTableCustomizer(@Nonnull final FutureJVppCore futureJvpp) { super(futureJvpp); - this.dumpManager = new DumpCacheManager.DumpCacheManagerBuilder<LispEidTableMapDetailsReplyDump, Void>() + this.dumpManager = new DumpCacheManager.DumpCacheManagerBuilder<LispEidTableVniDetailsReplyDump, Void>() .withExecutor(new VniTableDumpExecutor(futureJvpp)) .build(); } - private static VniTableKey detailsToKey(final LispEidTableMapDetails lispEidTableMapDetails) { + private static VniTableKey detailsToKey(final LispEidTableVniDetails lispEidTableMapDetails) { return new VniTableKey(Integer.valueOf(lispEidTableMapDetails.vni).longValue()); } @@ -86,18 +88,18 @@ public class VniTableCustomizer extends FutureJVppCustomizer throws ReadFailedException { LOG.trace("Reading all IDS..."); - Optional<LispEidTableMapDetailsReplyDump> optionalReply; + Optional<LispEidTableVniDetailsReplyDump> optionalReply; try { optionalReply = dumpManager.getDump(LISP_TABLE_ID_DUMP, context.getModificationCache(), NO_PARAMS); } catch (DumpExecutionFailedException e) { throw new ReadFailedException(id, e); } - if (!optionalReply.isPresent() || optionalReply.get().lispEidTableMapDetails.isEmpty()) { + if (!optionalReply.isPresent() || optionalReply.get().lispEidTableVniDetails.isEmpty()) { return Collections.emptyList(); } - return optionalReply.get().lispEidTableMapDetails.stream().map(VniTableCustomizer::detailsToKey) + return optionalReply.get().lispEidTableVniDetails.stream().map(VniTableCustomizer::detailsToKey) .collect(Collectors.toList()); } @@ -109,23 +111,25 @@ public class VniTableCustomizer extends FutureJVppCustomizer checkState(id.firstKeyOf(VniTable.class) != null, "No VNI present"); VniTableKey key = new VniTableKey(id.firstKeyOf(VniTable.class).getVirtualNetworkIdentifier()); - Optional<LispEidTableMapDetailsReplyDump> optionalReply; + Optional<LispEidTableVniDetailsReplyDump> optionalReply; try { optionalReply = dumpManager.getDump(LISP_TABLE_ID_DUMP, ctx.getModificationCache(), NO_PARAMS); } catch (DumpExecutionFailedException e) { throw new ReadFailedException(id, e); } - if (!optionalReply.isPresent() || optionalReply.get().lispEidTableMapDetails.isEmpty()) { + if (!optionalReply.isPresent() || optionalReply.get().lispEidTableVniDetails.isEmpty()) { return; } //transforming right away to single detail(specific request should do the magic) - final LispEidTableMapDetails details = - optionalReply.get().lispEidTableMapDetails.stream().filter(a -> detailsToKey(a).equals(key)) - .collect(RWUtils.singleItemCollector()); + final LispEidTableVniDetails details = optionalReply.get() + .lispEidTableVniDetails + .stream() + .filter(a -> a.vni == key.getVirtualNetworkIdentifier().intValue()) + .collect(RWUtils.singleItemCollector()); builder.setVirtualNetworkIdentifier((long) details.vni); - builder.setTableId((long) details.dpTable); + builder.setKey(new VniTableKey(Long.valueOf(details.vni))); } } |