summaryrefslogtreecommitdiffstats
path: root/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/gpe/translate/write/GpeForwardEntryCustomizer.java
diff options
context:
space:
mode:
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.java55
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);
}
}