diff options
author | Michal Cmarada <mcmarada@cisco.com> | 2019-05-06 13:48:21 +0200 |
---|---|---|
committer | Michal Cmarada <mcmarada@cisco.com> | 2019-05-06 13:48:21 +0200 |
commit | 97554c44ffc7f7ce82fe89d6da5ac15c46ee80b4 (patch) | |
tree | d1756819a8e108ab381129e747575c9515e0072e /vpp-common/vpp-translate-utils | |
parent | b248447c7ab16c86b28e9bda5f7224a9d106ac43 (diff) |
fix Nat implementation after API changes in VPP
Change-Id: Ibe8ead5a19119af9eb6b673f0713890ad5e243cb
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
Diffstat (limited to 'vpp-common/vpp-translate-utils')
4 files changed, 58 insertions, 1 deletions
diff --git a/vpp-common/vpp-translate-utils/pom.xml b/vpp-common/vpp-translate-utils/pom.xml index 9519e7970..c5e1fb45a 100644 --- a/vpp-common/vpp-translate-utils/pom.xml +++ b/vpp-common/vpp-translate-utils/pom.xml @@ -53,6 +53,11 @@ <artifactId>jvpp-core</artifactId> </dependency> <dependency> + <groupId>io.fd.jvpp</groupId> + <artifactId>jvpp-nat</artifactId> + <version>${jvpp.version}</version> + </dependency> + <dependency> <groupId>org.opendaylight.mdsal.model</groupId> <artifactId>ietf-inet-types-2013-07-15</artifactId> </dependency> diff --git a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/AddressTranslator.java b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/AddressTranslator.java index 3f5a56fb2..e6d71bee8 100644 --- a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/AddressTranslator.java +++ b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/AddressTranslator.java @@ -18,7 +18,6 @@ package io.fd.hc2vpp.common.translate.util; import static com.google.common.base.Preconditions.checkNotNull; -import java.util.Arrays; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone; diff --git a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java index 88085db78..f6fc3c78f 100644 --- a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java +++ b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java @@ -56,6 +56,20 @@ public interface Ipv4Translator extends ByteDataTranslator { } /** + * Creates {@link io.fd.jvpp.nat.types.Ip4Address} address from address part of {@link Ipv4Prefix} + * + * @return {@link io.fd.jvpp.nat.types.Ip4Address} + */ + default io.fd.jvpp.nat.types.Ip4Address ipv4AddressPrefixToNatIp4Address(@Nonnull final Ipv4Prefix ipv4Prefix) { + checkNotNull(ipv4Prefix, "Cannot convert null prefix"); + + io.fd.jvpp.nat.types.Ip4Address address = new io.fd.jvpp.nat.types.Ip4Address(); + address.ip4Address = ipv4AddressPrefixToArray(ipv4Prefix); + + return address; + } + + /** * Extracts {@link Ipv4Prefix} prefix */ default byte extractPrefix(Ipv4Prefix data) { @@ -89,6 +103,17 @@ public interface Ipv4Translator extends ByteDataTranslator { } /** + * Transform Ipv4 address to a {@link io.fd.jvpp.nat.types.Ip4Address} acceptable by VPP. + * + * @return {@link io.fd.jvpp.nat.types.Ip4Address} + */ + default io.fd.jvpp.nat.types.Ip4Address ipv4AddressNoZoneToNatIp4Address(final Ipv4AddressNoZone ipv4Addr) { + io.fd.jvpp.nat.types.Ip4Address ip4Address = new io.fd.jvpp.nat.types.Ip4Address(); + ip4Address.ip4Address = ipv4AddressNoZoneToArray(ipv4Addr.getValue()); + return ip4Address; + } + + /** * Transform Ipv4 address to a Ip4Address acceptable by VPP. * * @return byte array with address bytes diff --git a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv6Translator.java b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv6Translator.java index 153143910..c1ccd2d88 100644 --- a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv6Translator.java +++ b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv6Translator.java @@ -78,6 +78,19 @@ public interface Ipv6Translator extends ByteDataTranslator { } /** + * Creates {@link io.fd.jvpp.nat.types.Ip6Address} from address part of {@link Ipv6Prefix} + * + * @return {@link io.fd.jvpp.nat.types.Ip6Address} + */ + default io.fd.jvpp.nat.types.Ip6Address ipv6AddressPrefixToNatIp6Address(@Nonnull final Ipv6Prefix ipv6Prefix) { + checkNotNull(ipv6Prefix, "Cannot convert null prefix"); + + io.fd.jvpp.nat.types.Ip6Address ip6Address = new io.fd.jvpp.nat.types.Ip6Address(); + ip6Address.ip6Address = ipv6AddressPrefixToArray(ipv6Prefix); + return ip6Address; + } + + /** * Transforms {@link Prefix} from {@link Ipv6Prefix} * @param ipv6Prefix prefix to be translated * @return Vpp {@link Prefix} from {@link Ipv6Prefix} @@ -95,6 +108,21 @@ public interface Ipv6Translator extends ByteDataTranslator { } /** + * Creates {@link io.fd.jvpp.nat.types.Ip6Prefix} from {@link Ipv6Prefix} + * + * @param ipv6Prefix prefix to be translated + * @return Vpp {@link io.fd.jvpp.nat.types.Ip6Prefix} from {@link Ipv6Prefix} + */ + default io.fd.jvpp.nat.types.Ip6Prefix ipv6AddressPrefixToNatIp6Prefix(@Nonnull final Ipv6Prefix ipv6Prefix) { + checkNotNull(ipv6Prefix, "Cannot convert null prefix"); + io.fd.jvpp.nat.types.Ip6Prefix prefix = new io.fd.jvpp.nat.types.Ip6Prefix(); + prefix.prefix = new io.fd.jvpp.nat.types.Ip6Address(); + prefix.prefix.ip6Address = ipv6AddressPrefixToArray(ipv6Prefix); + prefix.len = extractPrefix(ipv6Prefix); + return prefix; + } + + /** * Extracts {@link Ipv6Prefix} prefix */ default byte extractPrefix(Ipv6Prefix data) { |