Search in sources :

Example 6 with RouteFilterList

use of org.batfish.datamodel.RouteFilterList in project batfish by batfish.

the class RouteMapMatchIpAccessListLine method toBooleanExpr.

@Override
public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) {
    Disjunction d = new Disjunction();
    List<BooleanExpr> disjuncts = d.getDisjuncts();
    for (String listName : _listNames) {
        Object list;
        IpAccessList ipAccessList = null;
        RouteFilterList routeFilterList = null;
        if (_routing) {
            routeFilterList = c.getRouteFilterLists().get(listName);
            list = routeFilterList;
        } else {
            ipAccessList = c.getIpAccessLists().get(listName);
            list = ipAccessList;
        }
        if (list == null) {
            cc.undefined(CiscoStructureType.IP_ACCESS_LIST, listName, CiscoStructureUsage.ROUTE_MAP_MATCH_IP_ACCESS_LIST, _statementLine);
        } else {
            String msg = "route-map match ip access-list line";
            ExtendedAccessList extendedAccessList = cc.getExtendedAcls().get(listName);
            if (extendedAccessList != null) {
                extendedAccessList.getReferers().put(this, msg);
            }
            StandardAccessList standardAccessList = cc.getStandardAcls().get(listName);
            if (standardAccessList != null) {
                standardAccessList.getReferers().put(this, msg);
            }
            if (_routing) {
                disjuncts.add(new MatchPrefixSet(new DestinationNetwork(), new NamedPrefixSet(listName)));
            } else {
                disjuncts.add(new MatchIpAccessList(listName));
            }
        }
    }
    return d.simplify();
}
Also used : NamedPrefixSet(org.batfish.datamodel.routing_policy.expr.NamedPrefixSet) MatchPrefixSet(org.batfish.datamodel.routing_policy.expr.MatchPrefixSet) Disjunction(org.batfish.datamodel.routing_policy.expr.Disjunction) DestinationNetwork(org.batfish.datamodel.routing_policy.expr.DestinationNetwork) RouteFilterList(org.batfish.datamodel.RouteFilterList) MatchIpAccessList(org.batfish.datamodel.routing_policy.expr.MatchIpAccessList) MatchIpAccessList(org.batfish.datamodel.routing_policy.expr.MatchIpAccessList) IpAccessList(org.batfish.datamodel.IpAccessList) BooleanExpr(org.batfish.datamodel.routing_policy.expr.BooleanExpr)

Example 7 with RouteFilterList

use of org.batfish.datamodel.RouteFilterList in project batfish by batfish.

the class FwFromPrefixList method applyTo.

@Override
public void applyTo(IpAccessListLine line, JuniperConfiguration jc, Warnings w, Configuration c) {
    PrefixList pl = jc.getPrefixLists().get(_name);
    if (pl != null) {
        pl.getReferers().put(this, "firewall from source-prefix-list");
        if (pl.getIpv6()) {
            return;
        }
        RouteFilterList sourcePrefixList = c.getRouteFilterLists().get(_name);
        List<IpWildcard> wildcards = sourcePrefixList.getMatchingIps();
        line.setSrcOrDstIps(Iterables.concat(line.getSrcOrDstIps(), wildcards));
    } else {
        w.redFlag("Reference to undefined source prefix-list: \"" + _name + "\"");
    }
}
Also used : IpWildcard(org.batfish.datamodel.IpWildcard) RouteFilterList(org.batfish.datamodel.RouteFilterList)

Example 8 with RouteFilterList

use of org.batfish.datamodel.RouteFilterList in project batfish by batfish.

the class FwFromSourcePrefixListExcept method applyTo.

@Override
public void applyTo(IpAccessListLine line, JuniperConfiguration jc, Warnings w, Configuration c) {
    PrefixList pl = jc.getPrefixLists().get(_name);
    if (pl != null) {
        pl.getReferers().put(this, "firewall from source-prefix-list except");
        if (pl.getIpv6()) {
            return;
        }
        RouteFilterList sourcePrefixList = c.getRouteFilterLists().get(_name);
        List<IpWildcard> wildcards = sourcePrefixList.getMatchingIps();
        line.setNotSrcIps(Iterables.concat(line.getNotSrcIps(), wildcards));
    } else {
        w.redFlag("Reference to undefined source prefix-list: \"" + _name + "\"");
    }
}
Also used : IpWildcard(org.batfish.datamodel.IpWildcard) RouteFilterList(org.batfish.datamodel.RouteFilterList)

Example 9 with RouteFilterList

use of org.batfish.datamodel.RouteFilterList in project batfish by batfish.

the class FwFromDestinationPrefixList method applyTo.

@Override
public void applyTo(IpAccessListLine line, JuniperConfiguration jc, Warnings w, Configuration c) {
    PrefixList pl = jc.getPrefixLists().get(_name);
    if (pl != null) {
        pl.getReferers().put(this, "firewall from destination-prefix-list");
        if (pl.getIpv6()) {
            return;
        }
        RouteFilterList destinationPrefixList = c.getRouteFilterLists().get(_name);
        List<IpWildcard> wildcards = destinationPrefixList.getMatchingIps();
        line.setDstIps(Iterables.concat(line.getDstIps(), wildcards));
    } else {
        w.redFlag("Reference to undefined source prefix-list: \"" + _name + "\"");
    }
}
Also used : IpWildcard(org.batfish.datamodel.IpWildcard) RouteFilterList(org.batfish.datamodel.RouteFilterList)

Example 10 with RouteFilterList

use of org.batfish.datamodel.RouteFilterList in project batfish by batfish.

the class VyosConfiguration method convertPrefixLists.

private void convertPrefixLists() {
    for (Entry<String, PrefixList> e : _prefixLists.entrySet()) {
        String name = e.getKey();
        PrefixList prefixList = e.getValue();
        RouteFilterList routeFilterList = toRouteFilterList(prefixList);
        _c.getRouteFilterLists().put(name, routeFilterList);
    }
}
Also used : RouteFilterList(org.batfish.datamodel.RouteFilterList)

Aggregations

RouteFilterList (org.batfish.datamodel.RouteFilterList)24 Prefix (org.batfish.datamodel.Prefix)11 NamedPrefixSet (org.batfish.datamodel.routing_policy.expr.NamedPrefixSet)11 DestinationNetwork (org.batfish.datamodel.routing_policy.expr.DestinationNetwork)10 MatchPrefixSet (org.batfish.datamodel.routing_policy.expr.MatchPrefixSet)10 SubRange (org.batfish.datamodel.SubRange)9 RoutingPolicy (org.batfish.datamodel.routing_policy.RoutingPolicy)9 RouteFilterLine (org.batfish.datamodel.RouteFilterLine)8 Ip (org.batfish.datamodel.Ip)7 If (org.batfish.datamodel.routing_policy.statement.If)7 ArrayList (java.util.ArrayList)6 BatfishException (org.batfish.common.BatfishException)6 IpWildcard (org.batfish.datamodel.IpWildcard)6 Conjunction (org.batfish.datamodel.routing_policy.expr.Conjunction)6 Statement (org.batfish.datamodel.routing_policy.statement.Statement)6 Configuration (org.batfish.datamodel.Configuration)5 InterfaceAddress (org.batfish.datamodel.InterfaceAddress)5 PrefixRange (org.batfish.datamodel.PrefixRange)5 Route6FilterList (org.batfish.datamodel.Route6FilterList)5 BooleanExpr (org.batfish.datamodel.routing_policy.expr.BooleanExpr)5