public static MatchHeaderSpace match(HeaderSpace headerSpace) { return new MatchHeaderSpace(headerSpace); }
@Override public AclLineMatchExpr visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) throws CircularReferenceException, UndefinedReferenceException { return new MatchHeaderSpace( IpSpaceDereferencer.dereferenceHeaderSpace( matchHeaderSpace.getHeaderspace(), _namedIpSpaces)); }
@Override public HeaderSpace visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { return matchHeaderSpace.getHeaderspace(); }
@VisibleForTesting void forbidHeaderSpace(MatchHeaderSpace matchHeaderSpace) { HeaderSpace headerSpace = matchHeaderSpace.getHeaderspace(); _notHeaderSpaces.add(headerSpace); _notHeaderSpacesProvenance.put(headerSpace, matchHeaderSpace); }
public Builder setHeaderSpace(@Nonnull HeaderSpace headerSpace) { _headerSpace = new MatchHeaderSpace(headerSpace); return this; }
private static IpAccessListLine toIpAccessListLine( ExtendedAccessListLine line, Map<String, ObjectGroup> objectGroups) { IpSpace srcIpSpace = line.getSourceAddressSpecifier().toIpSpace(); IpSpace dstIpSpace = line.getDestinationAddressSpecifier().toIpSpace(); AclLineMatchExpr matchService = line.getServiceSpecifier().toAclLineMatchExpr(objectGroups); AclLineMatchExpr match; if (matchService instanceof MatchHeaderSpace) { match = new MatchHeaderSpace( ((MatchHeaderSpace) matchService) .getHeaderspace() .toBuilder() .setSrcIps(srcIpSpace) .setDstIps(dstIpSpace) .build()); } else { match = new AndMatchExpr( ImmutableList.of( matchService, new MatchHeaderSpace( HeaderSpace.builder().setSrcIps(srcIpSpace).setDstIps(dstIpSpace).build()))); } return IpAccessListLine.builder() .setAction(line.getAction()) .setMatchCondition(match) .setName(line.getName()) .build(); }
@Override protected HeaderSpace featureValueOf(MatchHeaderSpace actual) { return actual.getHeaderspace(); } }
/** Prefer {@link #acceptingHeaderSpace(String, HeaderSpace)}. */ @VisibleForTesting public static IpAccessListLine acceptingHeaderSpace(HeaderSpace headerSpace) { return accepting(new MatchHeaderSpace(headerSpace)); }
@Override public AclLineMatchExpr visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { HeaderSpace headerSpace = matchHeaderSpace.getHeaderspace(); IpSpace dstIps = rename(headerSpace.getDstIps()); IpSpace notDstIps = rename(headerSpace.getNotDstIps()); IpSpace srcIps = rename(headerSpace.getSrcIps()); IpSpace notSrcIps = rename(headerSpace.getNotSrcIps()); IpSpace srcOrDstIps = rename(headerSpace.getSrcOrDstIps()); MatchHeaderSpace newMatchHeaderSpace = new MatchHeaderSpace( headerSpace .toBuilder() .setDstIps(dstIps) .setNotDstIps(notDstIps) .setSrcIps(srcIps) .setNotSrcIps(notSrcIps) .setSrcOrDstIps(srcOrDstIps) .build()); _literalsMap.put(matchHeaderSpace, newMatchHeaderSpace); return newMatchHeaderSpace; }
@VisibleForTesting void requireHeaderSpace(MatchHeaderSpace matchHeaderSpace) { HeaderSpace headerSpace = matchHeaderSpace.getHeaderspace(); if (_headerSpace == null) { _headerSpace = headerSpace; } else { Optional<HeaderSpace> intersection = IntersectHeaderSpaces.intersect(_headerSpace, headerSpace); checkState(intersection.isPresent(), "AclExplanation is unsatisfiable"); _headerSpace = intersection.get(); } _headerSpaceProvenance.add(matchHeaderSpace); }
/** Prefer {@link #rejectingHeaderSpace(String, HeaderSpace)}. */ @VisibleForTesting public static IpAccessListLine rejectingHeaderSpace(HeaderSpace headerSpace) { return rejecting(new MatchHeaderSpace(headerSpace)); }
line -> { HeaderSpace origHeader = ((MatchHeaderSpace) line.getMatchCondition()).getHeaderspace(); HeaderSpace headerSpace = origHeader return IpAccessListLine.builder() .setAction(line.getAction()) .setMatchCondition(new MatchHeaderSpace(headerSpace)) .build(); })
@Override public BDD visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { return _headerSpaceToBDD.toBDD(matchHeaderSpace.getHeaderspace()); }
public static IpAccessListLine acceptingHeaderSpace( @Nonnull String name, HeaderSpace headerSpace) { return accepting(name, new MatchHeaderSpace(headerSpace)); }
@Override public final AclLineMatchExpr visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { HeaderSpace originalHeaderSpace = matchHeaderSpace.getHeaderspace(); HeaderSpace headerSpace = specialize(originalHeaderSpace); IpSpace dstIps = headerSpace.getDstIps(); return new MatchHeaderSpace(simplifiedHeaderSpace);
@Override public Boolean visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { return matchHeaderSpace.getHeaderspace().matches(_flow, _namedIpSpaces); }
public static IpAccessListLine rejectingHeaderSpace(String name, HeaderSpace headerSpace) { return rejecting(name, new MatchHeaderSpace(headerSpace)); }
@Override public Boolean visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { return trace(matchHeaderSpace.getHeaderspace()); }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder().setIpProtocols(ImmutableList.of(_protocol)).build()); } }
@Override public BooleanExpr visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) { return new HeaderSpaceMatchExpr( matchHeaderSpace.getHeaderspace(), _namedIpSpaces, _matchOriginalHeaderSpaceFields) .getExpr(); }