use of org.batfish.datamodel.routing_policy.Result in project batfish by batfish.
the class If method execute.
@Override
public Result execute(Environment environment) {
Result exprResult = _guard.evaluate(environment);
if (exprResult.getExit()) {
return exprResult;
}
boolean guardVal = exprResult.getBooleanValue();
List<Statement> toExecute = guardVal ? _trueStatements : _falseStatements;
for (Statement statement : toExecute) {
Result result = statement.execute(environment);
if (result.getExit() || result.getReturn()) {
return result;
}
}
Result fallThroughResult = new Result();
fallThroughResult.setFallThrough(true);
return fallThroughResult;
}
use of org.batfish.datamodel.routing_policy.Result in project batfish by batfish.
the class PrependAsPath method execute.
@Override
public Result execute(Environment environment) {
List<Integer> toPrepend = _expr.evaluate(environment);
List<SortedSet<Integer>> newAsPaths = toPrepend.stream().map(ImmutableSortedSet::of).collect(ImmutableList.toImmutableList());
BgpRoute.Builder bgpRouteBuilder = (BgpRoute.Builder) environment.getOutputRoute();
bgpRouteBuilder.setAsPath(ImmutableList.<SortedSet<Integer>>builder().addAll(newAsPaths).addAll(bgpRouteBuilder.getAsPath()).build());
if (environment.getWriteToIntermediateBgpAttributes()) {
BgpRoute.Builder ir = environment.getIntermediateBgpAttributes();
ir.setAsPath(ImmutableList.<SortedSet<Integer>>builder().addAll(newAsPaths).addAll(ir.getAsPath()).build());
}
Result result = new Result();
return result;
}
use of org.batfish.datamodel.routing_policy.Result in project batfish by batfish.
the class SetCommunity method execute.
@Override
public Result execute(Environment environment) {
Result result = new Result();
BgpRoute.Builder bgpRoute = (BgpRoute.Builder) environment.getOutputRoute();
SortedSet<Long> communities = _expr.allCommunities(environment);
bgpRoute.getCommunities().clear();
bgpRoute.getCommunities().addAll(communities);
if (environment.getWriteToIntermediateBgpAttributes()) {
environment.getIntermediateBgpAttributes().getCommunities().clear();
environment.getIntermediateBgpAttributes().getCommunities().addAll(communities);
}
return result;
}
use of org.batfish.datamodel.routing_policy.Result in project batfish by batfish.
the class MatchPrefix6Set method evaluate.
@Override
public Result evaluate(Environment environment) {
Prefix6 prefix = _prefix.evaluate(environment);
boolean match = prefix != null && _prefixSet.matches(prefix, environment);
Result result = new Result();
result.setBooleanValue(match);
return result;
}
use of org.batfish.datamodel.routing_policy.Result in project batfish by batfish.
the class MatchPrefixSet method evaluate.
@Override
public Result evaluate(Environment environment) {
Prefix prefix = _prefix.evaluate(environment);
boolean match = _prefixSet.matches(prefix, environment);
Result result = new Result();
result.setBooleanValue(match);
return result;
}
Aggregations