diff options
Diffstat (limited to 'vpp-common/vpp-translate-utils/src/main/java/io/fd/honeycomb/translate/vpp/util/Ipv4AddressRange.java')
-rw-r--r-- | vpp-common/vpp-translate-utils/src/main/java/io/fd/honeycomb/translate/vpp/util/Ipv4AddressRange.java | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/vpp-common/vpp-translate-utils/src/main/java/io/fd/honeycomb/translate/vpp/util/Ipv4AddressRange.java b/vpp-common/vpp-translate-utils/src/main/java/io/fd/honeycomb/translate/vpp/util/Ipv4AddressRange.java deleted file mode 100644 index 7528c5464..000000000 --- a/vpp-common/vpp-translate-utils/src/main/java/io/fd/honeycomb/translate/vpp/util/Ipv4AddressRange.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.translate.vpp.util; - -import java.util.Objects; -import javax.annotation.Nonnull; -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; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * IPv4 address range representation. - */ -public final class Ipv4AddressRange { - - private static final Logger LOG = LoggerFactory.getLogger(Ipv4AddressRange.class); - - private final Ipv4AddressNoZone start; - private final Ipv4AddressNoZone end; - - private Ipv4AddressRange( - @Nonnull final Ipv4AddressNoZone start, - @Nonnull final Ipv4AddressNoZone end) { - this.start = start; - this.end = end; - } - - public Ipv4AddressNoZone getStart() { - return start; - } - - public Ipv4AddressNoZone getEnd() { - return end; - } - - @Override - public boolean equals(final Object other) { - if (this == other) { - return true; - } - if (other == null || getClass() != other.getClass()) { - return false; - } - final Ipv4AddressRange that = (Ipv4AddressRange) other; - return Objects.equals(start, that.start) - && Objects.equals(end, that.end); - } - - @Override - public int hashCode() { - return Objects.hash(start, end); - } - - @Override - public String toString() { - return "Ipv4AddressRange{" - + "start=" + start - + ", end=" + end - + '}'; - } - - /** - * Create address range from prefix. - */ - public static Ipv4AddressRange fromPrefix(@Nonnull final Ipv4Prefix prefix) { - final String addressString = prefix.getValue().split("/")[0]; - byte prefixLength = Ipv4Translator.INSTANCE.extractPrefix(prefix); - - if (prefixLength == 32) { - // 32 Prefix can be handled instantly - return new Ipv4AddressRange(new Ipv4AddressNoZone(addressString), new Ipv4AddressNoZone(addressString)); - } - - final byte[] prefixAddrBytes = Ipv4Translator.INSTANCE.ipv4AddressNoZoneToArray(addressString); - final byte[] prefixAddrBytes0 = new byte[prefixAddrBytes.length]; - final byte[] prefixAddrBytesF = new byte[prefixAddrBytes.length]; - - byte index = 0; - while (prefixLength >= 8) { - prefixAddrBytes0[index] = prefixAddrBytes[index]; - prefixAddrBytesF[index] = prefixAddrBytes[index]; - index++; - prefixLength -= 8; - } - - // Take care of the rest - if (prefixLength != 0) { - final int mask0 = (byte) (Math.pow(2, prefixLength) - 1) << (8 - prefixLength); - prefixAddrBytes0[index] = (byte) (prefixAddrBytes[index] & mask0); - - final int maskF = (byte) (Math.pow(2, 8 - prefixLength) - 1); - prefixAddrBytesF[index] = (byte) (prefixAddrBytes[index] | maskF); - - index++; - } - - for (int i = index; i < 4; i++) { - prefixAddrBytes0[i] = 0; - prefixAddrBytesF[i] = (byte) 255; - } - - return new Ipv4AddressRange( - Ipv4Translator.INSTANCE.arrayToIpv4AddressNoZoneReversed(prefixAddrBytes0), - Ipv4Translator.INSTANCE.arrayToIpv4AddressNoZoneReversed(prefixAddrBytesF)); - } -} |