diff options
Diffstat (limited to 'lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java')
-rw-r--r-- | lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java | 55 |
1 files changed, 17 insertions, 38 deletions
diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java index cdd388776..28a0e1a37 100644 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java @@ -17,14 +17,11 @@ package io.fd.hc2vpp.lisp.gpe.translate.write; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static io.fd.hc2vpp.lisp.gpe.translate.ctx.GpeLocatorPair.fromLocatorPair; import static java.util.Objects.nonNull; import io.fd.hc2vpp.common.translate.util.FutureJVppCustomizer; import io.fd.hc2vpp.common.translate.util.JvppReplyConsumer; import io.fd.hc2vpp.common.translate.util.NamingContext; -import io.fd.hc2vpp.lisp.gpe.translate.ctx.GpeLocatorPairMappingContext; import io.fd.hc2vpp.lisp.gpe.translate.service.GpeStateCheckService; import io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType; import io.fd.hc2vpp.lisp.translate.util.EidTranslator; @@ -37,19 +34,17 @@ import io.fd.vpp.jvpp.core.dto.GpeAddDelFwdEntryReply; import io.fd.vpp.jvpp.core.future.FutureJVppCore; import io.fd.vpp.jvpp.core.types.GpeLocator; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nonnull; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.gpe.entry.table.grouping.gpe.entry.table.GpeEntry; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.gpe.entry.table.grouping.gpe.entry.table.GpeEntryKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.LocalEid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.LocatorPairs; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.RemoteEid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.locator.pair.LocatorPair; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.GpeEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.GpeEntryKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.LocalEid; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.RemoteEid; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.locator.pairs.grouping.LocatorPair; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class GpeForwardEntryCustomizer extends FutureJVppCustomizer @@ -57,16 +52,13 @@ public class GpeForwardEntryCustomizer extends FutureJVppCustomizer private final GpeStateCheckService gpeStateCheckService; private final NamingContext entryMappingCtx; - private final GpeLocatorPairMappingContext locatorPairCtx; public GpeForwardEntryCustomizer(@Nonnull final FutureJVppCore futureJVppCore, @Nonnull final GpeStateCheckService gpeStateCheckService, - @Nonnull final NamingContext entryMappingCtx, - @Nonnull final GpeLocatorPairMappingContext locatorPairCtx) { + @Nonnull final NamingContext entryMappingCtx) { super(futureJVppCore); this.gpeStateCheckService = gpeStateCheckService; this.entryMappingCtx = entryMappingCtx; - this.locatorPairCtx = locatorPairCtx; } @Override @@ -115,20 +107,13 @@ public class GpeForwardEntryCustomizer extends FutureJVppCustomizer final GpeAddDelFwdEntryReply reply, final MappingContext mappingContext){ /* - * sync to disallow synchronization issues + * sync to prevent synchronization issues */ synchronized (entryMappingCtx) { - synchronized (locatorPairCtx) { - if (add) { - entryMappingCtx.addName(reply.fwdEntryIndex,data.getId(),mappingContext); - Optional.ofNullable(data.getLocatorPairs()).orElse(Collections.emptyList()).forEach( - locatorPair -> locatorPairCtx - .addMapping(data.getId(), locatorPair.getId(), fromLocatorPair(locatorPair), - mappingContext)); - } else { - entryMappingCtx.removeName(data.getId(),mappingContext); - locatorPairCtx.removeMapping(data.getId(), mappingContext); - } + if (add) { + entryMappingCtx.addName(reply.fwdEntryIndex, data.getId(), mappingContext); + } else { + entryMappingCtx.removeName(data.getId(), mappingContext); } } } @@ -162,8 +147,8 @@ public class GpeForwardEntryCustomizer extends FutureJVppCustomizer request.action = (byte) entry.getAction().getIntValue(); } - if (nonNull(entry.getLocatorPairs())) { - request.locs = toRequestLocators(entry.getLocatorPairs()); + if (nonNull(entry.getLocatorPair())) { + request.locs = toRequestLocators(entry.getLocatorPair()); request.locNum = request.locs.length; } @@ -174,12 +159,9 @@ public class GpeForwardEntryCustomizer extends FutureJVppCustomizer // Locators vector must be ordered in way that local locators are first ,then remote. // Pair is translated to two locators, one(local) with local address and weight, second one(remote) with remote // address - private GpeLocator[] toRequestLocators(final List<LocatorPairs> pairs) { + private GpeLocator[] toRequestLocators(final List<LocatorPair> pairs) { final List<GpeLocator> localLocators = pairs.stream() - .map(locatorPairContainer -> { - final LocatorPair locatorPair = - checkNotNull(locatorPairContainer.getLocatorPair(), "Locator pair cannot be null"); - + .map(locatorPair -> { final boolean isLocalIpv6 = isIpv6(locatorPair.getLocalLocator()); final boolean isRemoteIpv6 = isIpv6(locatorPair.getRemoteLocator()); @@ -195,18 +177,15 @@ public class GpeForwardEntryCustomizer extends FutureJVppCustomizer }).collect(Collectors.toList()); final List<GpeLocator> remoteLocators = pairs.stream() - .map(locatorPairContainer -> { - final LocatorPair locatorPair = locatorPairContainer.getLocatorPair(); - + .map(locatorPair -> { final boolean isRemoteIpv6 = isIpv6(locatorPair.getRemoteLocator()); - GpeLocator remoteLocator = new GpeLocator(); remoteLocator.addr = ipAddressToArray(locatorPair.getRemoteLocator()); remoteLocator.isIp4 = booleanToByte(!isRemoteIpv6); return remoteLocator; }).collect(Collectors.toList()); - return Stream.of(localLocators,remoteLocators).flatMap(Collection::stream).toArray(GpeLocator[]::new); + return Stream.of(localLocators, remoteLocators).flatMap(Collection::stream).toArray(GpeLocator[]::new); } } |