@Override public Prefix6 getNeighborPrefix6() { return new Prefix6(_ip6, Prefix6.MAX_PREFIX_LENGTH); } }
@Override public boolean equals(Object o) { if (this == o) { return true; } else if (!(o instanceof Route6FilterLineUpTo)) { return false; } Route6FilterLineUpTo rhs = (Route6FilterLineUpTo) o; return _prefix6.equals(rhs._prefix6) && _maxPrefixLength == rhs._maxPrefixLength; }
public void addPrefix(Prefix6 prefix6) { int prefixLength = prefix6.getPrefixLength(); BitSet bits = prefix6.getAddress().getAddressBits(); _root.addPrefix6(prefix6, bits, prefixLength, 0); }
public Ip6Wildcard(Prefix6 prefix) { this(prefix.getAddress(), prefix.getPrefixWildcard()); }
public Prefix6 getNetworkPrefix() { return new Prefix6(getNetworkAddress(), _prefixLength); }
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; } }
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]); } } }
@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); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + _maxPrefixLength; result = prime * result + _minPrefixLength; result = prime * result + _prefix6.hashCode(); return result; } }
private Ip6 getWildcard(Access_list_ip6_rangeContext ctx) { if (ctx.wildcard != null) { return toIp6(ctx.wildcard); } else if (ctx.ANY() != null || ctx.ANY6() != null || ctx.address_group != null) { return Ip6.MAX; } else if (ctx.HOST() != null) { return Ip6.ZERO; } else if (ctx.ipv6_prefix != null) { return new Prefix6(ctx.ipv6_prefix.getText()).getPrefixWildcard(); } else if (ctx.ip != null) { // basically same as host return Ip6.ZERO; } else { throw convError(Ip.class, ctx); } }
public static Prefix6Range fromPrefix6(Prefix6 prefix6) { int prefix6Length = prefix6.getPrefixLength(); return new Prefix6Range(prefix6, new SubRange(prefix6Length, prefix6Length)); }
@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; } } }
@Override public String getName() { return _prefix6.toString(); }
@Override public int compareTo(GeneratedRoute6 o) { return _network.compareTo(o._network); }
@Nullable private Prefix6 getLongestPrefixMatch(Ip6 address6) { if (_prefix6.contains(address6)) { return _prefix6; } else { return null; } }
@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); }
@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); } }
@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); }
@JsonValue @Override public String toString() { if (_second.equals(Ip6.ZERO)) { return _first.toString(); } else if (isPrefix()) { return toPrefix().toString(); } else { return _first + ";" + _second; } } }