@Override @JsonValue public String toString() { int prefixLength = _first.getPrefixLength(); int low = _second.getStart(); int high = _second.getEnd(); if (prefixLength == low && prefixLength == high) { return _first.toString(); } else { return _first + ";" + low + "-" + high; } } }
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 void addPrefix(Prefix6 prefix6) { int prefixLength = prefix6.getPrefixLength(); BitSet bits = prefix6.getAddress().getAddressBits(); _root.addPrefix6(prefix6, 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); }
public static Prefix6Range fromPrefix6(Prefix6 prefix6) { int prefix6Length = prefix6.getPrefixLength(); return new Prefix6Range(prefix6, new SubRange(prefix6Length, prefix6Length)); }
@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); } }
private static SubRange lengthRangeFromStr(String str) { Prefix6 prefix6; String[] mainParts = str.split(";"); int numMainParts = mainParts.length; if (numMainParts < 1 || numMainParts > 2) { throw new BatfishException("Invalid Prefix6Range string: '" + str + "'"); } else { prefix6 = new Prefix6(mainParts[0]); if (mainParts.length == 1) { int prefix6Length = prefix6.getPrefixLength(); return new SubRange(prefix6Length, prefix6Length); } else { return new SubRange(mainParts[1]); } } }
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; }
@Override public void applyTo(Route6FilterList rfl) { int prefixLength = _prefix6.getPrefixLength(); org.batfish.datamodel.Route6FilterLine line = new org.batfish.datamodel.Route6FilterLine( LineAction.PERMIT, _prefix6, new SubRange(prefixLength, prefixLength)); rfl.addLine(line); }
@Override public void applyTo(Route6FilterList rfl) { int prefixLength = _prefix6.getPrefixLength(); org.batfish.datamodel.Route6FilterLine line = new org.batfish.datamodel.Route6FilterLine( LineAction.PERMIT, _prefix6, new SubRange(prefixLength, _maxPrefixLength)); rfl.addLine(line); }
@Override public void applyTo(Route6FilterList rfl) { int prefixLength = _prefix6.getPrefixLength(); org.batfish.datamodel.Route6FilterLine line = new org.batfish.datamodel.Route6FilterLine( LineAction.PERMIT, _prefix6, new SubRange(prefixLength, Prefix6.MAX_PREFIX_LENGTH)); rfl.addLine(line); }
@Override public void applyTo(Route6FilterList rfl) { int prefixLength = _prefix6.getPrefixLength(); if (prefixLength >= Prefix6.MAX_PREFIX_LENGTH) { throw new BatfishException( "Route filter prefix length cannot be 'longer' than " + Prefix6.MAX_PREFIX_LENGTH); } org.batfish.datamodel.Route6FilterLine line = new org.batfish.datamodel.Route6FilterLine( LineAction.PERMIT, _prefix6, new SubRange(prefixLength + 1, Prefix6.MAX_PREFIX_LENGTH)); rfl.addLine(line); }
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); }
/** Convert a standard IPv6 access list line to a route filter list line */ private static Route6FilterLine toRoute6FilterLine(StandardIpv6AccessListLine fromLine) { LineAction action = fromLine.getAction(); Prefix6 prefix = fromLine.getIpWildcard().toPrefix(); return new Route6FilterLine( action, new Ip6Wildcard(prefix), new SubRange(prefix.getPrefixLength(), Prefix6.MAX_PREFIX_LENGTH)); }
@Override public void exitIpv6_prefix_list_tail(Ipv6_prefix_list_tailContext ctx) { LineAction action = toLineAction(ctx.action); Prefix6 prefix6 = new Prefix6(ctx.prefix6.getText()); int prefixLength = prefix6.getPrefixLength(); int minLen = prefixLength; int maxLen = prefixLength; if (ctx.minpl != null) { minLen = toInteger(ctx.minpl); maxLen = Prefix6.MAX_PREFIX_LENGTH; } if (ctx.maxpl != null) { maxLen = toInteger(ctx.maxpl); } if (ctx.eqpl != null) { minLen = toInteger(ctx.eqpl); maxLen = toInteger(ctx.eqpl); } SubRange lengthRange = new SubRange(minLen, maxLen); Prefix6ListLine line = new Prefix6ListLine(action, prefix6, lengthRange); _currentPrefix6List.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 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); }
prefix6 = new Prefix6(ctx.ipv6_prefix.getText()); int prefixLength = prefix6.getPrefixLength(); int minLen = prefixLength; int maxLen = prefixLength;
} else if (pctxt.ipv6a != null) { prefix6 = new Prefix6(toIp6(pctxt.ipv6a), Prefix6.MAX_PREFIX_LENGTH); lower = prefix6.getPrefixLength(); upper = Prefix6.MAX_PREFIX_LENGTH; } else if (pctxt.ipv6_prefix != null) { prefix6 = new Prefix6(pctxt.ipv6_prefix.getText()); lower = prefix6.getPrefixLength(); upper = Prefix6.MAX_PREFIX_LENGTH; } else {