public Ipv6Builder(Ipv6 base) { this._ipv6 = base.getIpv6(); if (base instanceof Ipv6Impl) { Ipv6Impl impl = (Ipv6Impl) base; if (!impl.augmentation.isEmpty()) { this.augmentation = new HashMap<>(impl.augmentation); } } else if (base instanceof AugmentationHolder) { @SuppressWarnings("unchecked") Map<Class<? extends Augmentation<Ipv6>>, Augmentation<Ipv6>> aug =((AugmentationHolder<Ipv6>) base).augmentations(); if (!aug.isEmpty()) { this.augmentation = new HashMap<>(aug); } } }
public Ipv6Builder(Ipv6 base) { this._ipv6 = base.getIpv6(); if (base instanceof Ipv6Impl) { Ipv6Impl impl = (Ipv6Impl) base; if (!impl.augmentation.isEmpty()) { this.augmentation = new HashMap<>(impl.augmentation); } } else if (base instanceof AugmentationHolder) { @SuppressWarnings("unchecked") AugmentationHolder<Ipv6> casted =(AugmentationHolder<Ipv6>) base; if (!casted.augmentations().isEmpty()) { this.augmentation = new HashMap<>(casted.augmentations()); } } }
if (!Objects.equals(_ipv6, other.getIpv6())) { return false;
if (!Objects.equals(_ipv6, other.getIpv6())) { return false;
default byte[] resolveByteArray(EidType type, Address address) { switch (type) { case IPV4: return ipv4AddressNoZoneToArray(new Ipv4AddressNoZone(((Ipv4) address).getIpv4())); case IPV6: return ipv6AddressNoZoneToArray(new Ipv6AddressNoZone(((Ipv6) address).getIpv6())); case MAC: return parseMac(((Mac) address).getMac().getValue()); case IPV4_PREFIX: return ipv4AddressPrefixToArray(v4LispPrefixToInetPrefix(Ipv4Prefix.class.cast(address))); case IPV6_PREFIX: return ipv6AddressPrefixToArray(v6LispPrefixToInetPrefix(Ipv6Prefix.class.cast(address))); default: throw new IllegalArgumentException("Unsupported type"); } }
default boolean compareAddresses(Address firstAddress, Address secondAddress) { checkNotNull(firstAddress, "First address is null"); checkNotNull(secondAddress, "Second address is null"); if (firstAddress instanceof Ipv4 && secondAddress instanceof Ipv4) { return ((Ipv4) firstAddress).getIpv4().getValue().equals(((Ipv4) secondAddress).getIpv4().getValue()); } if (firstAddress instanceof Ipv6 && secondAddress instanceof Ipv6) { return ((Ipv6) firstAddress).getIpv6().getValue().equals(((Ipv6) secondAddress).getIpv6().getValue()); } if (firstAddress instanceof Mac && secondAddress instanceof Mac) { return ((Mac) firstAddress).getMac().getValue().equals(((Mac) secondAddress).getMac().getValue()); } if (firstAddress instanceof Ipv4Prefix && secondAddress instanceof Ipv4Prefix) { final String firstPrefix = ((Ipv4Prefix) firstAddress).getIpv4Prefix().getValue(); final String secondPrefix = ((Ipv4Prefix) secondAddress).getIpv4Prefix().getValue(); // for ex. 192.168.2.1/24 and 192.168.2.2/24 will be optimized to // 192.168.2.0/24 return isSameSubnet(firstPrefix, secondPrefix); } if (firstAddress instanceof Ipv6Prefix && secondAddress instanceof Ipv6Prefix) { final String firstPrefix = ((Ipv6Prefix) firstAddress).getIpv6Prefix().getValue(); final String secondPrefix = ((Ipv6Prefix) secondAddress).getIpv6Prefix().getValue(); // same here return isSameSubnet(firstPrefix, secondPrefix); } return false; }
private IpAddress findLastHop(Eid prefix) { Object[] methodParameters = { prefix }; MappingRecord reply = (MappingRecord) SfcLispUtil.submitCallable( new SfcLispFlowMappingApi(lfmService, SfcLispFlowMappingApi.Method.GET_MAPPING, methodParameters), OpendaylightSfc.getOpendaylightSfcObj().getExecutor()); if (reply == null) { return null; } for (LocatorRecord locator : reply.getLocatorRecord()) { Address address = locator.getRloc().getAddress(); if (address instanceof Ipv4) { Ipv4 ipv4 = (Ipv4) address; return new IpAddress(ipv4.getIpv4()); } else if (address instanceof Ipv6) { Ipv6 ipv6 = (Ipv6) address; return new IpAddress(ipv6.getIpv6()); } else { LOG.debug("Locator address type not supported for TE LCAF: {}", address); } } return null; }
tab.setPort(new PortNumber(LispMessage.PORT_NUM)); } else if (address instanceof Ipv6) { String ipv6 = ((Ipv6) address).getIpv6().getValue(); tab.setIpAddress(IpAddressBinaryBuilder.getDefaultInstance(InetAddresses.forString(ipv6).getAddress())); tab.setPort(new PortNumber(LispMessage.PORT_NUM));