public boolean containsPrefix6(Prefix6 prefix6) { return containsPrefix6Range(Prefix6Range.fromPrefix6(prefix6)); }
private void prune(Prefix6Range prefix6Range) { if (_left != null) { _left.prune(prefix6Range); if (_left.isEmpty()) { _left = null; } } if (_right != null) { _right.prune(prefix6Range); if (_right.isEmpty()) { _right = null; } } Set<Prefix6Range> oldPrefix6Ranges = new HashSet<>(); oldPrefix6Ranges.addAll(_prefix6Ranges); for (Prefix6Range oldPrefix6Range : oldPrefix6Ranges) { if (!prefix6Range.equals(oldPrefix6Range) && prefix6Range.includesPrefix6Range(oldPrefix6Range)) { _prefix6Ranges.remove(oldPrefix6Range); } } } }
public Route6FilterLine(LineAction action, Prefix6Range prefixRange) { this(action, new Ip6Wildcard(prefixRange.getPrefix6()), prefixRange.getLengthRange()); }
@JsonCreator public Prefix6Range(String str) { super(prefix6FromStr(str), lengthRangeFromStr(str)); }
public static Prefix6Range fromPrefix6(Prefix6 prefix6) { int prefix6Length = prefix6.getPrefixLength(); return new Prefix6Range(prefix6, new SubRange(prefix6Length, prefix6Length)); }
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, BitSet bits, int prefixLength, int depth) { for (Prefix6Range nodeRange : _prefix6Ranges) { if (nodeRange.includesPrefix6Range(prefix6Range)) { return true; } } if (prefixLength == depth) { return false; } else { boolean currentBit = bits.get(depth); if (currentBit) { if (_right == null) { return false; } else { return _right.containsPrefix6Range(prefix6Range, bits, prefixLength, depth + 1); } } else { if (_left == null) { return false; } else { return _left.containsPrefix6Range(prefix6Range, bits, prefixLength, depth + 1); } } } }
new ExplicitPrefix6Set( new Prefix6Space( Collections.singleton(new Prefix6Range(prefix6, prefixRange))))), ImmutableList.of(Statements.ReturnTrue.toStaticStatement())); currentGeneratedRoutePolicy.getStatements().add(currentGeneratedRouteConditional);
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 void addPrefix6Range( Prefix6Range prefix6Range, BitSet bits, int prefixLength, int depth) { for (Prefix6Range nodeRange : _prefix6Ranges) { if (nodeRange.includesPrefix6Range(prefix6Range)) { return; } } if (prefixLength == depth) { _prefix6Ranges.add(prefix6Range); prune(prefix6Range); } else { boolean currentBit = bits.get(depth); if (currentBit) { if (_right == null) { _right = new BitTrieNode(); } _right.addPrefix6Range(prefix6Range, bits, prefixLength, depth + 1); } else { if (_left == null) { _left = new BitTrieNode(); } _left.addPrefix6Range(prefix6Range, bits, prefixLength, depth + 1); } } }
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(); }
prefixSpace.addPrefixRange(new PrefixRange(prefix, new SubRange(lower, upper))); } else { prefix6Space.addPrefix6Range(new Prefix6Range(prefix6, new SubRange(lower, upper))); ipv6 = true;
public void addPrefix6(Prefix6 prefix6) { addPrefix6Range(Prefix6Range.fromPrefix6(prefix6)); }
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); }
new DestinationNetwork6(), new ExplicitPrefix6Set( new Prefix6Space(Prefix6Range.fromPrefix6(prefix6)))), new Not(new MatchProtocol(RoutingProtocol.BGP)), new Not(new MatchProtocol(RoutingProtocol.IBGP)), List<Route6FilterLine> lines = ipv6af.getIpv6Networks().keySet().stream() .map(p6 -> new Route6FilterLine(LineAction.PERMIT, Prefix6Range.fromPrefix6(p6))) .collect(ImmutableList.toImmutableList()); Route6FilterList localFilter6 =