summaryrefslogtreecommitdiffstats
path: root/ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java
diff options
context:
space:
mode:
Diffstat (limited to 'ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java')
-rw-r--r--ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java73
1 files changed, 47 insertions, 26 deletions
diff --git a/ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java b/ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java
index 45f54cdb8..a9a20cff0 100644
--- a/ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java
+++ b/ipsec/ipsec-impl/src/main/java/io/fd/hc2vpp/ipsec/read/IpsecStateSpdCustomizer.java
@@ -17,7 +17,6 @@
package io.fd.hc2vpp.ipsec.read;
import com.google.common.base.Optional;
-import io.fd.hc2vpp.common.translate.util.ByteDataTranslator;
import io.fd.hc2vpp.common.translate.util.FutureJVppCustomizer;
import io.fd.hc2vpp.common.translate.util.Ipv4Translator;
import io.fd.hc2vpp.common.translate.util.Ipv6Translator;
@@ -35,6 +34,7 @@ import io.fd.vpp.jvpp.core.dto.IpsecSpdsDetails;
import io.fd.vpp.jvpp.core.dto.IpsecSpdsDetailsReplyDump;
import io.fd.vpp.jvpp.core.dto.IpsecSpdsDump;
import io.fd.vpp.jvpp.core.future.FutureJVppCore;
+import io.fd.vpp.jvpp.core.types.AddressFamily;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@@ -134,23 +134,22 @@ public class IpsecStateSpdCustomizer extends FutureJVppCustomizer
private SpdEntries translateDetailToEntry(final IpsecSpdDetails details) {
SpdEntriesBuilder builder = new SpdEntriesBuilder();
- builder.setDirection(IpsecTrafficDirection.forValue(details.isOutbound))
- .setIsIpv6(ByteDataTranslator.INSTANCE.byteToBoolean(details.isIpv6))
- .setPriority(details.priority);
- switch (details.policy) {
- case 0:
+ builder.setDirection(IpsecTrafficDirection.forValue(details.entry.isOutbound))
+ .setPriority(details.entry.priority);
+ switch (details.entry.policy) {
+ case IPSEC_API_SPD_ACTION_BYPASS:
builder.setOperation(IpsecSpdOperation.Bypass);
break;
- case 1:
+ case IPSEC_API_SPD_ACTION_DISCARD:
builder.setOperation(IpsecSpdOperation.Discard);
break;
- case 3:
+ case IPSEC_API_SPD_ACTION_PROTECT:
builder.setOperation(IpsecSpdOperation.Protect);
- builder.setProtectSaId(details.saId);
+ builder.setProtectSaId(details.entry.saId);
break;
}
- if (builder.isIsIpv6()) {
+ if (details.entry.localAddressStart != null && details.entry.localAddressStart.af.equals(AddressFamily.ADDRESS_IP6)) {
processIpv6AddressRanges(builder, details);
} else {
processIpv4AddressRanges(builder, details);
@@ -160,40 +159,62 @@ public class IpsecStateSpdCustomizer extends FutureJVppCustomizer
}
private void processIpv4AddressRanges(final SpdEntriesBuilder builder, final IpsecSpdDetails details) {
- if (details.localStartAddr != null && details.localStartAddr.length > 0) {
+ if (details.entry.localAddressStart != null &&
+ details.entry.localAddressStart.un.getIp4().ip4Address.length > 0) {
builder.setLaddrStart(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv4AddressNoZone(details.localStartAddr)).stringValue()));
+ new IpAddressNoZone(
+ arrayToIpv4AddressNoZone(details.entry.localAddressStart.un.getIp4().ip4Address))
+ .stringValue()));
}
- if (details.localStopAddr != null && details.localStopAddr.length > 0) {
+ if (details.entry.localAddressStop != null &&
+ details.entry.localAddressStop.un.getIp4().ip4Address.length > 0) {
builder.setLaddrStop(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv4AddressNoZone(details.localStopAddr)).stringValue()));
+ new IpAddressNoZone(arrayToIpv4AddressNoZone(details.entry.localAddressStop.un.getIp4().ip4Address))
+ .stringValue()));
}
- if (details.remoteStartAddr != null && details.remoteStartAddr.length > 0) {
+ if (details.entry.remoteAddressStart != null &&
+ details.entry.remoteAddressStart.un.getIp4().ip4Address.length > 0) {
builder.setRaddrStart(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv4AddressNoZone(details.remoteStartAddr)).stringValue()));
+ new IpAddressNoZone(
+ arrayToIpv4AddressNoZone(details.entry.remoteAddressStart.un.getIp4().ip4Address))
+ .stringValue()));
}
- if (details.remoteStopAddr != null && details.remoteStopAddr.length > 0) {
+ if (details.entry.remoteAddressStop != null &&
+ details.entry.remoteAddressStop.un.getIp4().ip4Address.length > 0) {
builder.setRaddrStop(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv4AddressNoZone(details.remoteStopAddr)).stringValue()));
+ new IpAddressNoZone(
+ arrayToIpv4AddressNoZone(details.entry.remoteAddressStop.un.getIp4().ip4Address))
+ .stringValue()));
}
}
private void processIpv6AddressRanges(final SpdEntriesBuilder builder, final IpsecSpdDetails details) {
- if (details.localStartAddr != null && details.localStartAddr.length > 0) {
+ if (details.entry.localAddressStart != null &&
+ details.entry.localAddressStart.un.getIp6().ip6Address.length > 0) {
builder.setLaddrStart(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv6AddressNoZone(details.localStartAddr)).stringValue()));
+ new IpAddressNoZone(
+ arrayToIpv6AddressNoZone(details.entry.localAddressStart.un.getIp6().ip6Address))
+ .stringValue()));
}
- if (details.localStopAddr != null && details.localStopAddr.length > 0) {
+ if (details.entry.localAddressStop != null &&
+ details.entry.localAddressStop.un.getIp6().ip6Address.length > 0) {
builder.setLaddrStop(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv6AddressNoZone(details.localStopAddr)).stringValue()));
+ new IpAddressNoZone(arrayToIpv6AddressNoZone(details.entry.localAddressStop.un.getIp6().ip6Address))
+ .stringValue()));
}
- if (details.remoteStartAddr != null && details.remoteStartAddr.length > 0) {
+ if (details.entry.remoteAddressStart != null &&
+ details.entry.remoteAddressStart.un.getIp6().ip6Address.length > 0) {
builder.setRaddrStart(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv6AddressNoZone(details.remoteStartAddr)).stringValue()));
+ new IpAddressNoZone(
+ arrayToIpv6AddressNoZone(details.entry.remoteAddressStart.un.getIp6().ip6Address))
+ .stringValue()));
}
- if (details.remoteStopAddr != null && details.remoteStopAddr.length > 0) {
+ if (details.entry.remoteAddressStop != null &&
+ details.entry.remoteAddressStop.un.getIp6().ip6Address.length > 0) {
builder.setRaddrStop(IpAddressBuilder.getDefaultInstance(
- new IpAddressNoZone(arrayToIpv6AddressNoZone(details.remoteStopAddr)).stringValue()));
+ new IpAddressNoZone(
+ arrayToIpv6AddressNoZone(details.entry.remoteAddressStop.un.getIp6().ip6Address))
+ .stringValue()));
}
}