diff options
Diffstat (limited to 'vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java')
-rw-r--r-- | vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java | 33 |
1 files changed, 33 insertions, 0 deletions
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 24f4ae9aa..5f8a283ed 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 @@ -18,9 +18,14 @@ package io.fd.hc2vpp.common.translate.util; import static com.google.common.base.Preconditions.checkNotNull; +import io.fd.vpp.jvpp.core.types.Address; +import io.fd.vpp.jvpp.core.types.AddressFamily; +import io.fd.vpp.jvpp.core.types.AddressUnion; +import io.fd.vpp.jvpp.core.types.Ip4Address; import java.util.Arrays; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; @@ -83,6 +88,34 @@ public interface Ipv4Translator extends ByteDataTranslator { return ipv4AddressNoZoneToArray(ipv4Addr.getValue()); } + /** + * Transform Ipv4 address to a Ip4Address acceptable by VPP. + * + * @return byte array with address bytes + */ + default Address ipv4AddressNoZoneToAddress(final Ipv4AddressNoZone ipv4Addr) { + Address address = new Address(); + address.af = AddressFamily.ADDRESS_IP4; + Ip4Address ip4Address = new Ip4Address(); + ip4Address.ip4Address = ipv4AddressNoZoneToArray(ipv4Addr); + address.un = new AddressUnion(ip4Address); + return address; + } + + /** + * Transform Ipv4 address to a Ip4Address acceptable by VPP. + * + * @return byte array with address bytes + */ + default Address ipv4AddressToAddress(final Ipv4Address ipv4Addr) { + Address address = new Address(); + address.af = AddressFamily.ADDRESS_IP4; + Ip4Address ip4Address = new Ip4Address(); + ip4Address.ip4Address = ipv4AddressNoZoneToArray(ipv4Addr.getValue()); + address.un = new AddressUnion(ip4Address); + return address; + } + default byte[] ipv4AddressNoZoneToArray(final String ipv4Addr) { byte[] retval = new byte[4]; String[] dots = ipv4Addr.split("\\."); |