public Ip6Wildcard(Prefix6 prefix) { this(prefix.getAddress(), prefix.getPrefixWildcard()); }
private static Ip6 getIp(Access_list_ip6_rangeContext ctx) { if (ctx.ip != null) { return toIp6(ctx.ip); } else if (ctx.ipv6_prefix != null) { return new Prefix6(ctx.ipv6_prefix.getText()).getAddress(); } else { return Ip6.ZERO; } }
public void addPrefix(Prefix6 prefix6) { int prefixLength = prefix6.getPrefixLength(); BitSet bits = prefix6.getAddress().getAddressBits(); _root.addPrefix6(prefix6, bits, prefixLength, 0); }
public void addPrefix6Range(Prefix6Range prefix6Range) { Prefix6 prefix6 = prefix6Range.getPrefix6(); int prefixLength = prefix6.getPrefixLength(); BitSet bits = getAddressBits(prefix6.getAddress()); _root.addPrefix6Range(prefix6Range, bits, prefixLength, 0); }
public boolean containsPrefix6Range(Prefix6Range prefix6Range) { Prefix6 prefix6 = prefix6Range.getPrefix6(); int prefixLength = prefix6.getPrefixLength(); BitSet bits = getAddressBits(prefix6.getAddress()); return _root.containsPrefix6Range(prefix6Range, bits, prefixLength, 0); }
public boolean containsPathFromPrefix(Prefix6 prefix6) { int prefixLength = prefix6.getPrefixLength(); BitSet bits = prefix6.getAddress().getAddressBits(); return _root.containsPathFromPrefix(bits, prefixLength, 0); }
private boolean newPermits(Prefix6 prefix) { boolean accept = false; for (Route6FilterLine line : _lines) { if (line.getIpWildcard().contains(prefix.getAddress())) { int prefixLength = prefix.getPrefixLength(); SubRange range = line.getLengthRange(); if (prefixLength >= range.getStart() && prefixLength <= range.getEnd()) { accept = line.getAction() == LineAction.PERMIT; break; } } } if (accept) { _permittedCache.get().add(prefix); } else { _deniedCache.get().add(prefix); } return accept; }
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); }
@Override public void applyTo(Route6FilterList rfl) { int prefixLength = _prefix6.getPrefixLength(); org.batfish.datamodel.Route6FilterLine line = new org.batfish.datamodel.Route6FilterLine( LineAction.PERMIT, new Ip6Wildcard( new Prefix6(_prefix6.getAddress(), prefixLength).getAddress(), _addressMask), new SubRange(prefixLength, prefixLength)); rfl.addLine(line); }
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); } }