diff options
Diffstat (limited to 'nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read')
8 files changed, 30 insertions, 24 deletions
diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ExternalIpPoolCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ExternalIpPoolCustomizer.java index 7a97a68d1..574d05862 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ExternalIpPoolCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ExternalIpPoolCustomizer.java @@ -102,7 +102,7 @@ final class ExternalIpPoolCustomizer implements // Uses ID<->address mapping as defined by getAllIds (nat44 mappings go before nat64): if (poolId < nat44PoolCount) { final Nat44AddressDetails detail = nat44Details.get(Math.toIntExact(poolId)); - readPoolIp(builder, detail.ipAddress); + readPoolIp(builder, detail.ipAddress.ip4Address); setPoolType(builder, NatPoolType.Nat44); } else { final List<Nat64PoolAddrDetails> nat64Details = nat64DumpMgr.getDump(id, ctx.getModificationCache()) @@ -111,7 +111,7 @@ final class ExternalIpPoolCustomizer implements final int nat64PoolPosition = Math.toIntExact(poolId) - nat44PoolCount; if (nat64PoolPosition < nat64PoolCount) { final Nat64PoolAddrDetails detail = nat64Details.get(nat64PoolPosition); - readPoolIp(builder, detail.address); + readPoolIp(builder, detail.address.ip4Address); setPoolType(builder, NatPoolType.Nat64); } else { // Address pool for given ID is missing (legal state). diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/MappingEntryCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/MappingEntryCustomizer.java index 1ae452183..70dc10b44 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/MappingEntryCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/MappingEntryCustomizer.java @@ -33,6 +33,7 @@ import io.fd.jvpp.nat.dto.Nat64BibDetails; import io.fd.jvpp.nat.dto.Nat64BibDetailsReplyDump; import io.fd.jvpp.nat.dto.Nat64BibDump; import io.fd.jvpp.nat.future.FutureJVppNatFacade; +import io.fd.jvpp.nat.types.NatConfigFlags; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -114,10 +115,10 @@ final class MappingEntryCustomizer implements Ipv4Translator, Ipv6Translator, builder.setIndex((long) index); builder.setType( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.nat.rev180628.MappingEntry.Type.Static); - builder.setExternalSrcAddress(new IpPrefix(toIpv4Prefix(detail.externalIpAddress, 32))); - builder.setInternalSrcAddress(new IpPrefix(toIpv4Prefix(detail.localIpAddress, 32))); + builder.setExternalSrcAddress(new IpPrefix(toIpv4Prefix(detail.externalIpAddress.ip4Address, 32))); + builder.setInternalSrcAddress(new IpPrefix(toIpv4Prefix(detail.localIpAddress.ip4Address, 32))); - if (detail.addrOnly == 0) { + if (!detail.flags.contains(NatConfigFlags.NatConfigFlagsOptions.NAT_IS_ADDR_ONLY)) { builder.setExternalSrcPort(new ExternalSrcPortBuilder() .setStartPortNumber(new PortNumber(Short.toUnsignedInt(detail.externalPort))).build()); builder.setInternalSrcPort(new InternalSrcPortBuilder() @@ -128,15 +129,15 @@ final class MappingEntryCustomizer implements Ipv4Translator, Ipv6Translator, private void readNat64Entry(@Nonnull final MappingEntryBuilder builder, final int index, final Nat64BibDetails detail) { builder.setIndex((long) index); - if (detail.isStatic == 1) { + if (detail.flags.contains(NatConfigFlags.NatConfigFlagsOptions.NAT_IS_STATIC)) { builder.setType( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.nat.rev180628.MappingEntry.Type.Static); } else { builder.setType( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.nat.rev180628.MappingEntry.Type.DynamicImplicit); } - builder.setExternalSrcAddress(new IpPrefix(toIpv4Prefix(detail.oAddr,32 ))); - builder.setInternalSrcAddress(new IpPrefix(toIpv6Prefix(detail.iAddr, 128))); + builder.setExternalSrcAddress(new IpPrefix(toIpv4Prefix(detail.oAddr.ip4Address, 32))); + builder.setInternalSrcAddress(new IpPrefix(toIpv6Prefix(detail.iAddr.ip6Address, 128))); builder.setExternalSrcPort(new ExternalSrcPortBuilder() .setStartPortNumber(new PortNumber(Short.toUnsignedInt(detail.oPort))).build()); diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/Nat64PrefixesCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/Nat64PrefixesCustomizer.java index 6e955ea64..468008c46 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/Nat64PrefixesCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/Nat64PrefixesCustomizer.java @@ -111,7 +111,7 @@ final class Nat64PrefixesCustomizer } private Ipv6Prefix readPrefix(final Nat64PrefixDetails details) { - return toIpv6Prefix(details.prefix, UnsignedBytes.toInt(details.prefixLen)); + return toIpv6Prefix(details.prefix.prefix.ip6Address, UnsignedBytes.toInt(details.prefix.len)); } private final class Nat64PrefixesExecutor implements EntityDumpExecutor<Map<Long, Nat64PrefixDetails>, Void> { diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/AbstractInterfaceNatCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/AbstractInterfaceNatCustomizer.java index 2d8e4cce5..8ce475b38 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/AbstractInterfaceNatCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/AbstractInterfaceNatCustomizer.java @@ -31,6 +31,7 @@ import io.fd.jvpp.nat.dto.Nat44InterfaceOutputFeatureDump; import io.fd.jvpp.nat.dto.Nat64InterfaceDetailsReplyDump; import io.fd.jvpp.nat.dto.Nat64InterfaceDump; import io.fd.jvpp.nat.future.FutureJVppNatFacade; +import io.fd.jvpp.nat.types.NatConfigFlags; import java.util.Optional; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; @@ -96,8 +97,8 @@ abstract class AbstractInterfaceNatCustomizer<C extends DataObject, B extends Bu preRoutingNat44DumpMgr.getDump(id, ctx.getModificationCache()); dump.orElse(new Nat44InterfaceDetailsReplyDump()).nat44InterfaceDetails.stream() - .filter(natIfcDetail -> natIfcDetail.swIfIndex == index) - .filter(natIfcDetail -> isExpectedNatType(natIfcDetail.isInside)) + .filter(natIfcDetail -> natIfcDetail.swIfIndex.interfaceindex == index) + .filter(natIfcDetail -> isExpectedNatType(natIfcDetail.flags)) .findAny() .ifPresent(natIfcDetail -> vppAttributesBuilder.enableNat44(builder)); // do not modify builder is feature is absent (inbound/outbound are presence containers) @@ -109,8 +110,8 @@ abstract class AbstractInterfaceNatCustomizer<C extends DataObject, B extends Bu preRoutingNat64DumpMgr.getDump(id, ctx.getModificationCache()); dump.orElse(new Nat64InterfaceDetailsReplyDump()).nat64InterfaceDetails.stream() - .filter(natIfcDetail -> natIfcDetail.swIfIndex == index) - .filter(natIfcDetail -> isExpectedNatType(natIfcDetail.isInside)) + .filter(natIfcDetail -> natIfcDetail.swIfIndex.interfaceindex == index) + .filter(natIfcDetail -> isExpectedNatType(natIfcDetail.flags)) .findAny() .ifPresent(natIfcDetail -> vppAttributesBuilder.enableNat64(builder)); // do not modify builder is feature is absent (inbound/outbound are presence containers) @@ -123,8 +124,8 @@ abstract class AbstractInterfaceNatCustomizer<C extends DataObject, B extends Bu dump.orElse(new Nat44InterfaceOutputFeatureDetailsReplyDump()).nat44InterfaceOutputFeatureDetails .stream() - .filter(natIfcDetail -> natIfcDetail.swIfIndex == index) - .filter(natIfcDetail -> isExpectedNatType(natIfcDetail.isInside)) + .filter(natIfcDetail -> natIfcDetail.swIfIndex.interfaceindex == index) + .filter(natIfcDetail -> isExpectedNatType(natIfcDetail.flags)) .findAny() .ifPresent(natIfcDetail -> vppAttributesBuilder.enablePostRouting(builder)); // do not modify builder is feature is absent (inbound/outbound are presence containers) @@ -136,5 +137,5 @@ abstract class AbstractInterfaceNatCustomizer<C extends DataObject, B extends Bu abstract Logger getLog(); - abstract boolean isExpectedNatType(final int isInside); + abstract boolean isExpectedNatType(final NatConfigFlags flags); } diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceInboundNatCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceInboundNatCustomizer.java index 76a20a94c..c0dde6516 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceInboundNatCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceInboundNatCustomizer.java @@ -20,6 +20,7 @@ import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.spi.read.Initialized; import io.fd.jvpp.nat.future.FutureJVppNatFacade; +import io.fd.jvpp.nat.types.NatConfigFlags; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816.NatInterfaceAugmentation; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816._interface.nat.attributes.Nat; @@ -50,8 +51,8 @@ final class InterfaceInboundNatCustomizer extends AbstractInterfaceNatCustomizer } @Override - boolean isExpectedNatType(final int isInside) { - return isInside == 1; + boolean isExpectedNatType(final NatConfigFlags flags) { + return flags.contains(NatConfigFlags.NatConfigFlagsOptions.NAT_IS_INSIDE); } @Nonnull diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceOutboundNatCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceOutboundNatCustomizer.java index 68c0cb1ce..3196cda10 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceOutboundNatCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/InterfaceOutboundNatCustomizer.java @@ -20,6 +20,7 @@ import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.spi.read.Initialized; import io.fd.jvpp.nat.future.FutureJVppNatFacade; +import io.fd.jvpp.nat.types.NatConfigFlags; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816.NatInterfaceAugmentation; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816._interface.nat.attributes.Nat; @@ -50,8 +51,8 @@ final class InterfaceOutboundNatCustomizer extends AbstractInterfaceNatCustomize } @Override - boolean isExpectedNatType(final int isInside) { - return isInside == 0; + boolean isExpectedNatType(final NatConfigFlags flags) { + return flags.contains(NatConfigFlags.NatConfigFlagsOptions.NAT_IS_OUTSIDE); } @Nonnull diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceInboundNatCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceInboundNatCustomizer.java index 0ca344419..c9f4dc888 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceInboundNatCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceInboundNatCustomizer.java @@ -20,6 +20,7 @@ import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.spi.read.Initialized; import io.fd.jvpp.nat.future.FutureJVppNatFacade; +import io.fd.jvpp.nat.types.NatConfigFlags; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816._interface.nat.attributes.Nat; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816._interface.nat.attributes.NatBuilder; @@ -54,8 +55,8 @@ final class SubInterfaceInboundNatCustomizer extends AbstractSubInterfaceNatCust } @Override - boolean isExpectedNatType(final int isInside) { - return isInside == 1; + boolean isExpectedNatType(final NatConfigFlags flags) { + return flags.contains(NatConfigFlags.NatConfigFlagsOptions.NAT_IS_INSIDE); } @Nonnull diff --git a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceOutboundNatCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceOutboundNatCustomizer.java index 92d829987..8485cded9 100644 --- a/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceOutboundNatCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/read/ifc/SubInterfaceOutboundNatCustomizer.java @@ -20,6 +20,7 @@ import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.spi.read.Initialized; import io.fd.jvpp.nat.future.FutureJVppNatFacade; +import io.fd.jvpp.nat.types.NatConfigFlags; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816._interface.nat.attributes.Nat; import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang._interface.nat.rev170816._interface.nat.attributes.NatBuilder; @@ -54,8 +55,8 @@ final class SubInterfaceOutboundNatCustomizer extends AbstractSubInterfaceNatCus } @Override - boolean isExpectedNatType(final int isInside) { - return isInside == 0; + boolean isExpectedNatType(final NatConfigFlags flags) { + return flags.contains(NatConfigFlags.NatConfigFlagsOptions.NAT_IS_OUTSIDE); } @Nonnull |