@Override public void applyTo(RouteFilterList rfl) { org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, _prefix, new SubRange(_minPrefixLength, _maxPrefixLength)); rfl.addLine(line); }
private RouteFilterList toRouteFilterList(PrefixList prefixList) { String name = prefixList.getName(); RouteFilterList newList = new RouteFilterList(name); List<RouteFilterLine> newLines = prefixList.getRules().values().stream() .map(l -> new RouteFilterLine(l.getAction(), l.getPrefix(), l.getLengthRange())) .collect(ImmutableList.toImmutableList()); newList.setLines(newLines); return newList; }
@Override public void applyTo(RouteFilterList rfl) { int prefixLength = _prefix.getPrefixLength(); org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, _prefix, new SubRange(prefixLength, Prefix.MAX_PREFIX_LENGTH)); rfl.addLine(line); }
@Override public void applyTo(RouteFilterList rfl) { int prefixLength = _prefix.getPrefixLength(); org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, _prefix, new SubRange(prefixLength, _maxPrefixLength)); rfl.addLine(line); }
@Override public void applyTo(RouteFilterList rfl) { int prefixLength = _prefix.getPrefixLength(); if (prefixLength >= 32) { throw new BatfishException("Route filter prefix length cannot be 'longer' than 32"); } org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, PrefixRange.moreSpecificThan(_prefix)); rfl.addLine(line); }
@Override public void applyTo(RouteFilterList rfl) { int prefixLength = _prefix.getPrefixLength(); org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, _prefix, new SubRange(prefixLength, prefixLength)); rfl.addLine(line); }
static RouteFilterList toRouteFilterList(PrefixList list) { RouteFilterList newRouteFilterList = new RouteFilterList(list.getName()); List<RouteFilterLine> newLines = list.getLines().stream() .map( l -> new RouteFilterLine( l.getAction(), new IpWildcard(l.getPrefix()), l.getLengthRange())) .collect(ImmutableList.toImmutableList()); newRouteFilterList.setLines(newLines); return newRouteFilterList; }
p -> matchLonger.addLine( new RouteFilterLine(LineAction.PERMIT, PrefixRange.moreSpecificThan(p))));
@Override public void applyTo(RouteFilterList rfl) { int low = _prefix.getPrefixLength(); int high = _throughPrefix.getPrefixLength(); for (int i = low; i <= high; i++) { Ip currentNetworkAddress = _throughPrefix.getStartIp().getNetworkAddress(i); Prefix currentPrefix = Prefix.create(currentNetworkAddress, i); org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, currentPrefix, new SubRange(i, i)); rfl.addLine(line); } }
@Override public void applyTo(RouteFilterList rfl) { int prefixLength = _prefix.getPrefixLength(); org.batfish.datamodel.RouteFilterLine line = new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, new IpWildcard( Prefix.create(_prefix.getStartIp(), prefixLength).getStartIp(), _addressMask), new SubRange(prefixLength, prefixLength)); rfl.addLine(line); }
RouteFilterList rfList = new RouteFilterList(rflName); rfList.addLine( new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, prefix,
/** Convert a standard access list line to a route filter list line */ private static RouteFilterLine toRouteFilterLine(StandardAccessListLine fromLine) { LineAction action = fromLine.getAction(); /* * This cast is safe since the other address specifier (network object group specifier) * can be used only from extended ACLs. */ IpWildcard srcIpWildcard = ((WildcardAddressSpecifier) fromLine.getSrcAddressSpecifier()).getIpWildcard(); Prefix prefix = srcIpWildcard.toPrefix(); return new RouteFilterLine( action, new IpWildcard(prefix), new SubRange(prefix.getPrefixLength(), Prefix.MAX_PREFIX_LENGTH)); }
@Before public void setup() { _rfAddressMask = new RouteFilterList( "test-route-filter-mask", ImmutableList.of( new RouteFilterLine( LineAction.PERMIT, new IpWildcard("1.2.3.4:0.255.0.255"), new SubRange(24, 24)))); _rfPrefixMoreSpecific = new RouteFilterList( "test-route-filter-prefix", ImmutableList.of( new RouteFilterLine( LineAction.PERMIT, new IpWildcard("1.2.3.4:0.0.255.255"), new SubRange(26, 32)))); _rfPrefixExact = new RouteFilterList( "test-route-filter-prefix", ImmutableList.of( new RouteFilterLine( LineAction.PERMIT, new IpWildcard("1.2.3.4:0.0.255.255"), new SubRange(26, 26)))); }
@Override public BooleanExpr toBooleanExpr(JuniperConfiguration jc, Configuration c, Warnings warnings) { PrefixList pl = jc.getMasterLogicalSystem().getPrefixLists().get(_prefixList); if (pl != null) { if (pl.getIpv6()) { return BooleanExprs.FALSE; } RouteFilterList rf = c.getRouteFilterLists().get(_prefixList); String orLongerListName = "~" + _prefixList + "~ORLONGER~"; RouteFilterList orLongerList = c.getRouteFilterLists().get(orLongerListName); if (orLongerList == null) { orLongerList = new RouteFilterList(orLongerListName); for (RouteFilterLine line : rf.getLines()) { Prefix prefix = line.getIpWildcard().toPrefix(); LineAction action = line.getAction(); SubRange orLongerLineRange = new SubRange(line.getLengthRange().getStart(), Prefix.MAX_PREFIX_LENGTH); RouteFilterLine orLongerLine = new RouteFilterLine(action, prefix, orLongerLineRange); orLongerList.addLine(orLongerLine); c.getRouteFilterLists().put(orLongerListName, orLongerList); } } return new MatchPrefixSet( DestinationNetwork.instance(), new NamedPrefixSet(orLongerListName)); } else { warnings.redFlag("Reference to undefined prefix-list: \"" + _prefixList + "\""); return BooleanExprs.FALSE; } } }
RouteFilterList rfList = new RouteFilterList(rflName); rfList.addLine( new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, prefix, new SubRange(prefixLength + 1, Prefix.MAX_PREFIX_LENGTH))); org.batfish.datamodel.GeneratedRoute.Builder newRoute =
: prefixLength; summaryFilter.addLine( new org.batfish.datamodel.RouteFilterLine( LineAction.DENY, new IpWildcard(prefix), new org.batfish.datamodel.RouteFilterLine( LineAction.PERMIT, new IpWildcard(Prefix.ZERO),
continue; RouteFilterLine orLongerLine = new RouteFilterLine(action, prefix, longerLineRange); longerList.addLine(orLongerLine); c.getRouteFilterLists().put(longerListName, longerList);
: prefixLength; summaryFilter.addLine( new RouteFilterLine( LineAction.DENY, new IpWildcard(prefix), new RouteFilterLine( LineAction.PERMIT, new IpWildcard(Prefix.ZERO),
private static RouteFilterLine toRouteFilterLine(ExtendedAccessListLine fromLine) { LineAction action = fromLine.getAction(); IpWildcard srcIpWildcard = ((WildcardAddressSpecifier) fromLine.getSourceAddressSpecifier()).getIpWildcard(); Ip ip = srcIpWildcard.getIp(); IpWildcard dstIpWildcard = ((WildcardAddressSpecifier) fromLine.getDestinationAddressSpecifier()).getIpWildcard(); long minSubnet = dstIpWildcard.getIp().asLong(); long maxSubnet = minSubnet | dstIpWildcard.getWildcard().asLong(); int minPrefixLength = dstIpWildcard.getIp().numSubnetBits(); int maxPrefixLength = Ip.create(maxSubnet).numSubnetBits(); int statedPrefixLength = srcIpWildcard.getWildcard().inverted().numSubnetBits(); int prefixLength = Math.min(statedPrefixLength, minPrefixLength); Prefix prefix = Prefix.create(ip, prefixLength); return new RouteFilterLine( action, new IpWildcard(prefix), new SubRange(minPrefixLength, maxPrefixLength)); }
prefix -> { RouteFilterLine matchOutgoingPrefix = new RouteFilterLine( LineAction.PERMIT, prefix,