@Override public BooleanExpr toBooleanExpr(CiscoConfiguration cc, Configuration c, Warnings w) { Disjunction disj = new Disjunction(); BooleanExpr left = _left.toBooleanExpr(cc, c, w); BooleanExpr right = _right.toBooleanExpr(cc, c, w); List<BooleanExpr> disjuncts = disj.getDisjuncts(); disjuncts.add(left); disjuncts.add(right); return disj.simplify(); } }
@Override public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) { Disjunction d = new Disjunction(); List<BooleanExpr> disjuncts = d.getDisjuncts(); for (String protocol : _protocols) { disjuncts.add(new MatchProtocol(RoutingProtocol.fromProtocolName(protocol))); } return d.simplify(); } }
@Override public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) { Disjunction d = new Disjunction(); List<BooleanExpr> disjuncts = d.getDisjuncts(); for (String listName : _listNames) { IpAsPathAccessList list = cc.getAsPathAccessLists().get(listName); if (list != null) { disjuncts.add(new MatchAsPath(new NamedAsPathSet(listName))); } } return d.simplify(); } }
@Override public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) { Disjunction d = new Disjunction(); List<BooleanExpr> disjuncts = d.getDisjuncts(); for (int tag : _tags) { disjuncts.add(new MatchTag(IntComparator.EQ, new LiteralInt(tag))); } return d.simplify(); } }
@Override public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) { Disjunction d = new Disjunction(); List<BooleanExpr> disjuncts = d.getDisjuncts(); for (String listName : _listNames) { CommunityList list = c.getCommunityLists().get(listName); if (list != null) { disjuncts.add(new MatchCommunitySet(new NamedCommunitySet(listName))); } } return d.simplify(); } }
@Override public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) { Disjunction d = new Disjunction(); List<BooleanExpr> disjuncts = d.getDisjuncts(); for (String listName : _listNames) { PrefixList list = cc.getPrefixLists().get(listName); if (list != null) { disjuncts.add( new MatchPrefixSet(DestinationNetwork.instance(), new NamedPrefixSet(listName))); } } return d.simplify(); } }
@Override public BooleanExpr toBooleanExpr(Configuration c, CiscoConfiguration cc, Warnings w) { Disjunction d = new Disjunction(); List<BooleanExpr> disjuncts = d.getDisjuncts(); for (String listName : _listNames) { Prefix6List list = cc.getPrefix6Lists().get(listName); if (list != null) { disjuncts.add( new MatchPrefix6Set(new DestinationNetwork6(), new NamedPrefix6Set(listName))); } } return d.simplify(); } }
private void initDefaultBgpExportPolicy() { if (_c.getRoutingPolicies().containsKey(DEFAULT_BGP_EXPORT_POLICY_NAME)) { return; } // set up default export policy (accept bgp routes) RoutingPolicy defaultBgpExportPolicy = new RoutingPolicy(DEFAULT_BGP_EXPORT_POLICY_NAME, _c); _c.getRoutingPolicies().put(DEFAULT_BGP_EXPORT_POLICY_NAME, defaultBgpExportPolicy); If defaultBgpExportPolicyConditional = new If(); defaultBgpExportPolicy.getStatements().add(defaultBgpExportPolicyConditional); // guard Disjunction isBgp = new Disjunction(); isBgp.getDisjuncts().add(new MatchProtocol(RoutingProtocol.BGP)); isBgp.getDisjuncts().add(new MatchProtocol(RoutingProtocol.IBGP)); defaultBgpExportPolicyConditional.setGuard(isBgp); PsThenAccept.INSTANCE.applyTo( defaultBgpExportPolicyConditional.getTrueStatements(), this, _c, _w); PsThenReject.INSTANCE.applyTo( defaultBgpExportPolicyConditional.getFalseStatements(), this, _c, _w); }
@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) { if (_routing) { disjuncts.add( new MatchPrefixSet(DestinationNetwork.instance(), new NamedPrefixSet(listName))); } else { disjuncts.add(new MatchIpAccessList(listName)); } } } return d.simplify(); } }
@Test public void simplifyShortCircuit() { Disjunction shortCircuit = new Disjunction(ImmutableList.of(CALL_EXPR_CONTEXT, TRUE, CALL_STATEMENT_CONTEXT)); BooleanExpr simplified = shortCircuit.simplify(); assertThat(simplified, instanceOf(Disjunction.class)); List<BooleanExpr> disjuncts = ((Disjunction) simplified).getDisjuncts(); assertThat(disjuncts, equalTo(ImmutableList.of(CALL_EXPR_CONTEXT, TRUE))); } }
@Override public BooleanExpr toBooleanExpr(JuniperConfiguration jc, Configuration c, Warnings warnings) { RouteFilterList rfl = c.getRouteFilterLists().get(_routeFilterName); Route6FilterList rfl6 = c.getRoute6FilterLists().get(_routeFilterName); BooleanExpr match4 = null; BooleanExpr match6 = null; if (rfl != null) { match4 = new MatchPrefixSet(DestinationNetwork.instance(), new NamedPrefixSet(_routeFilterName)); } if (rfl6 != null) { match6 = new MatchPrefix6Set(new DestinationNetwork6(), new NamedPrefix6Set(_routeFilterName)); } if (match4 != null && match6 == null) { return match4; } else if (rfl == null && rfl6 != null) { return match6; } else if (rfl != null && rfl6 != null) { Disjunction d = new Disjunction(); d.getDisjuncts().add(match4); d.getDisjuncts().add(match6); return d; } else { throw new VendorConversionException( "missing route filter list: \"" + _routeFilterName + "\""); } } }
@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; Ip6AccessList ipAccessList = null; Route6FilterList routeFilterList = null; if (_routing) { routeFilterList = c.getRoute6FilterLists().get(listName); list = routeFilterList; } else { ipAccessList = c.getIp6AccessLists().get(listName); list = ipAccessList; } if (list != null) { if (_routing) { disjuncts.add( new MatchPrefix6Set(new DestinationNetwork6(), new NamedPrefix6Set(listName))); } else { disjuncts.add(new MatchIp6AccessList(listName)); } } } return d.simplify(); } }
|| rmMatch instanceof RouteMapMatchIpv6AccessListLine || rmMatch instanceof RouteMapMatchIpv6PrefixListLine) { matchIpOrPrefix.getDisjuncts().add(matchExpr); } else { conj.getConjuncts().add(matchExpr); if (!matchIpOrPrefix.getDisjuncts().isEmpty()) { conj.getConjuncts().add(matchIpOrPrefix);
prefixListDisjunction.getDisjuncts().addAll(toBooleanExprs(froms.getFromPrefixLists())); prefixListDisjunction .getDisjuncts() .addAll(toBooleanExprs(froms.getFromPrefixListFilterLongers())); prefixListDisjunction .getDisjuncts() .addAll(toBooleanExprs(froms.getFromPrefixListFilterOrLongers())); prefixListDisjunction.getDisjuncts().addAll(toBooleanExprs(froms.getFromRouteFilters())); conj.getConjuncts().add(prefixListDisjunction);
setPolicyStatementReferent(exportPolicyName); CallExpr callPolicy = new CallExpr(exportPolicyName); matchSomeExportPolicy.getDisjuncts().add(callPolicy);
|| rmMatch instanceof RouteMapMatchIpv6AccessListLine || rmMatch instanceof RouteMapMatchIpv6PrefixListLine) { matchIpOrPrefix.getDisjuncts().add(matchExpr); } else { conj.getConjuncts().add(matchExpr); if (!matchIpOrPrefix.getDisjuncts().isEmpty()) { conj.getConjuncts().add(matchIpOrPrefix);
for (BooleanExpr be : d.getDisjuncts()) { visit(conf, be, fs, fe);
ImmutableList.of())); List<BooleanExpr> exportConditions = routesShouldBeExported.getDisjuncts();
BoolExpr acc = _enc.mkFalse(); TransferResult<BoolExpr, BoolExpr> result = new TransferResult<>(); for (BooleanExpr be : d.getDisjuncts()) { TransferResult<BoolExpr, BoolExpr> r = compute(be, pCur.indent()); result = result.addChangedVariables(r);
BDD acc = factory.zero(); TransferResult<TransferReturn, BDD> result = new TransferResult<>(); for (BooleanExpr be : d.getDisjuncts()) { TransferResult<TransferReturn, BDD> r = compute(be, p.indent()); result = result.addChangedVariables(r);