public Builder setHeaderSpace(@Nonnull HeaderSpace headerSpace) { _headerSpace = new MatchHeaderSpace(headerSpace); return this; }
/** Prefer {@link #acceptingHeaderSpace(String, HeaderSpace)}. */ @VisibleForTesting public static IpAccessListLine acceptingHeaderSpace(HeaderSpace headerSpace) { return accepting(new MatchHeaderSpace(headerSpace)); }
/** Prefer {@link #rejectingHeaderSpace(String, HeaderSpace)}. */ @VisibleForTesting public static IpAccessListLine rejectingHeaderSpace(HeaderSpace headerSpace) { return rejecting(new MatchHeaderSpace(headerSpace)); }
public static IpAccessListLine acceptingHeaderSpace( @Nonnull String name, HeaderSpace headerSpace) { return accepting(name, new MatchHeaderSpace(headerSpace)); }
public static IpAccessListLine rejectingHeaderSpace(String name, HeaderSpace headerSpace) { return rejecting(name, new MatchHeaderSpace(headerSpace)); }
@Override public AclLineMatchExpr visitMatchHeaderSpace(MatchHeaderSpace matchHeaderSpace) throws CircularReferenceException, UndefinedReferenceException { return new MatchHeaderSpace( IpSpaceDereferencer.dereferenceHeaderSpace( matchHeaderSpace.getHeaderspace(), _namedIpSpaces)); }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder().setIpProtocols(ImmutableList.of(_protocol)).build()); } }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder().setIpProtocols(ImmutableList.of(IpProtocol.ICMP)).build()); } }
/** Convert to vendor-independent {@link Transformation}. */ public Optional<Transformation.Builder> toTransformationBuilder( TransformationType type, IpField field, Map<String, NatPool> pools, Ip interfaceIp) { return _then == null ? Optional.empty() : _then .toTransformationStep(type, field, pools, interfaceIp) .map(step -> when(new MatchHeaderSpace(toHeaderSpace(_matches))).apply(step)); } }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder() .setIpProtocols(ImmutableList.of(IpProtocol.TCP)) .setDstPorts(_ports) .build()); } }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder() .setIpProtocols(ImmutableList.of(IpProtocol.UDP)) .setDstPorts(_ports) .build()); } }
@Override @Nonnull public AclLineMatchExpr toAclLineMatchExpr(Map<String, ObjectGroup> objectGroups) { return new MatchHeaderSpace(HeaderSpace.builder().setDscps(_dscps).setEcns(_ecns).build()); } }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder() .setIpProtocols(ImmutableList.of(IpProtocol.TCP, IpProtocol.UDP)) .setSrcOrDstPorts(_ports) .build()); } }
public static MatchHeaderSpace matchSrc(IpSpace ipSpace) { return new MatchHeaderSpace(HeaderSpace.builder().setSrcIps(ipSpace).build()); }
@Override public AclLineMatchExpr toAclLineMatchExpr() { return new MatchHeaderSpace( HeaderSpace.builder().setIcmpTypes(ImmutableList.of(new SubRange(_type))).build()); } }
/** * Convert {@link PacketHeaderConstraints} to an {@link AclLineMatchExpr}. * * @param phc the packet header constraints * @param srcIpSpace Resolved source IP space * @param dstIpSpace Resolved destination IP space */ public static AclLineMatchExpr toAclLineMatchExpr( PacketHeaderConstraints phc, IpSpace srcIpSpace, IpSpace dstIpSpace) { return new MatchHeaderSpace( toHeaderSpaceBuilder(phc).setSrcIps(srcIpSpace).setDstIps(dstIpSpace).build()); }
private void addHeaderSpaceConstraint() { Context ctx = _encoder.getCtx(); add( new IpAccessListToBoolExpr(ctx, _symbolicPacket) .visitMatchHeaderSpace(new MatchHeaderSpace(_headerSpace))); }
@Override public AclLineMatchExpr toAclLineMatchExpr() { HeaderSpace.Builder b = HeaderSpace.builder().setIpProtocols(ImmutableList.copyOf(_protocols)); b.setDstPorts(_dstPorts); b.setSrcPorts(_srcPorts); if (_icmpType != null) { b.setIcmpTypes(ImmutableList.of(new SubRange(_icmpType))); } return new MatchHeaderSpace(b.build()); } }
private static MatchHeaderSpace matchField(Prefix prefix, IpField field) { switch (field) { case DESTINATION: return new MatchHeaderSpace(HeaderSpace.builder().setDstIps(prefix.toIpSpace()).build()); case SOURCE: return new MatchHeaderSpace(HeaderSpace.builder().setSrcIps(prefix.toIpSpace()).build()); default: throw new BatfishException("Invalid field"); } }
public static MatchHeaderSpace match5Tuple( Ip srcIp, int srcPort, Ip dstIp, int dstPort, IpProtocol ipProtocol) { return new MatchHeaderSpace( HeaderSpace.builder() .setSrcIps(srcIp.toIpSpace()) .setSrcPorts(ImmutableList.of(new SubRange(srcPort, srcPort))) .setDstIps(dstIp.toIpSpace()) .setDstPorts(ImmutableList.of(new SubRange(dstPort, dstPort))) .setIpProtocols(ImmutableList.of(ipProtocol)) .build()); } }