public Ip6 getNetworkAddress() { return _address.getNetworkAddress(_prefixLength); }
public boolean includesPrefix6(Prefix6 argPrefix6) { Prefix6 prefix6 = getPrefix6(); SubRange lengthRange = getLengthRange(); int prefixLength = prefix6.getPrefixLength(); int minPrefixLength = lengthRange.getStart(); int maxPrefixLength = lengthRange.getEnd(); int argPrefixLength = argPrefix6.getPrefixLength(); if (minPrefixLength > argPrefixLength || maxPrefixLength < argPrefixLength) { return false; } BigInteger maskedPrefixAsBigInteger = prefix6.getAddress().getNetworkAddress(prefixLength).asBigInteger(); BigInteger argMaskedPrefixAsBigInteger = argPrefix6.getAddress().getNetworkAddress(prefixLength).asBigInteger(); return maskedPrefixAsBigInteger.equals(argMaskedPrefixAsBigInteger); }
public boolean includesPrefix6Range(Prefix6Range argPrefixRange) { Prefix6 prefix6 = getPrefix6(); SubRange lengthRange = getLengthRange(); int prefixLength = prefix6.getPrefixLength(); BigInteger maskedPrefixAsBigInteger = prefix6.getAddress().getNetworkAddress(prefixLength).asBigInteger(); Prefix6 argPrefix = argPrefixRange.getPrefix6(); SubRange argLengthRange = argPrefixRange.getLengthRange(); BigInteger argMaskedPrefixAsBigInteger = argPrefix.getAddress().getNetworkAddress(prefixLength).asBigInteger(); return maskedPrefixAsBigInteger.equals(argMaskedPrefixAsBigInteger) && lengthRange.getStart() <= argLengthRange.getStart() && lengthRange.getEnd() >= argLengthRange.getEnd(); }
@Override public void applyTo(Route6FilterList rfl) { int low = _prefix6.getPrefixLength(); int high = _throughPrefix6.getPrefixLength(); for (int i = low; i <= high; i++) { Ip6 currentNetworkAddress = _throughPrefix6.getAddress().getNetworkAddress(i); Prefix6 currentPrefix6 = new Prefix6(currentNetworkAddress, i); org.batfish.datamodel.Route6FilterLine line = new org.batfish.datamodel.Route6FilterLine( LineAction.PERMIT, currentPrefix6, new SubRange(i, i)); rfl.addLine(line); } }