@Override public IpSpace toIpSpace() { return _host.toIpSpace(); } }
public static MatchHeaderSpace matchDst(Ip ip) { return matchDst(ip.toIpSpace()); }
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()); } }
@Nonnull private static IkePhase1Key toIkePhase1PreSharedKey( IpsecTunnel ipsecTunnel, Ip remoteIdentity, String localInterface) { IkePhase1Key ikePhase1Key = new IkePhase1Key(); ikePhase1Key.setKeyType(IkeKeyType.PRE_SHARED_KEY); ikePhase1Key.setKeyHash(ipsecTunnel.getIkePreSharedKeyHash()); ikePhase1Key.setRemoteIdentity(remoteIdentity.toIpSpace()); ikePhase1Key.setLocalInterface(localInterface); return ikePhase1Key; }
@Test public void testIntersection() { IpIpSpace ipSpace = Ip.parse("1.2.3.4").toIpSpace(); assertThat(intersection(null, null), nullValue()); assertThat( intersection(null, UniverseIpSpace.INSTANCE, null), equalTo(UniverseIpSpace.INSTANCE)); assertThat(intersection(ipSpace, null, UniverseIpSpace.INSTANCE), equalTo(ipSpace)); assertThat(intersection(EmptyIpSpace.INSTANCE, ipSpace), equalTo(EmptyIpSpace.INSTANCE)); }
@Test public void testUnion() { IpIpSpace ipSpace = Ip.parse("1.2.3.4").toIpSpace(); assertThat(union(null, null), nullValue()); assertThat(union(EmptyIpSpace.INSTANCE), equalTo(EmptyIpSpace.INSTANCE)); assertThat(union(EmptyIpSpace.INSTANCE, ipSpace), equalTo(ipSpace)); }
@Test public void testIpSpaceReference() { Ip ip = Ip.parse("1.1.1.1"); Map<String, IpSpace> namedIpSpaces = ImmutableMap.of("foo", ip.toIpSpace()); IpSpace reference = new IpSpaceReference("foo"); IpSpaceToBDD ipSpaceToBDD = new IpSpaceToBDD(_ipAddrBdd, namedIpSpaces); BDD ipBDD = ip.toIpSpace().accept(ipSpaceToBDD); BDD referenceBDD = reference.accept(ipSpaceToBDD); assertThat(referenceBDD, equalTo(ipBDD)); }
@Test public void testIpIpSpace_0() { IpSpace ipSpace = Ip.parse("0.0.0.0").toIpSpace(); BDD bdd = ipSpace.accept(_ipSpaceToBdd); assertThat( bdd, equalTo( _bddOps.and( Arrays.stream(_ipAddrBdd.getBitvec()) .map(BDD::not) .collect(ImmutableList.toImmutableList())))); }
@Test public void testVisitIpIpSpace() { IpSpace ipSpace = Ip.parse("1.0.0.0").toIpSpace(); IpSpaceDescriber describerWithMetadata = new IpSpaceDescriber( new AclTracer( _flow, null, ImmutableMap.of(), ImmutableMap.of(TEST_NAME, ipSpace), ImmutableMap.of(TEST_NAME, TEST_METADATA))); assertThat(ipSpace.accept(_describerNoNamesNorMetadata), equalTo("1.0.0.0")); assertThat(ipSpace.accept(describerWithMetadata), equalTo(TEST_METADATA_DESCRIPTION)); }
@Test public void testSpecializeIpIpSpace() { IpSpace ipSpace = Ip.parse("1.2.3.4").toIpSpace(); assertThat(specializer(ipSpace).visit(ipSpace), equalTo(UniverseIpSpace.INSTANCE)); assertThat( specializer(Prefix.parse("1.2.3.0/24").toIpSpace()).visit(ipSpace), equalTo(ipSpace)); assertThat( specializer(Ip.parse("1.2.3.3").toIpSpace()).visit(ipSpace), equalTo(EmptyIpSpace.INSTANCE)); }
@Test public void testIpIpSpace_255() { IpSpace ipSpace = Ip.parse("255.255.255.255").toIpSpace(); BDD bdd = ipSpace.accept(_ipSpaceToBdd); assertThat(bdd, equalTo(_bddOps.and(_ipAddrBdd.getBitvec()))); }
@Test public void testVisitAclIpSpace_toEmpty() { assertThat( SIMPLIFIER.simplify(AclIpSpace.builder().thenRejecting(IP1234.toIpSpace()).build()), equalTo(EmptyIpSpace.INSTANCE)); assertThat(SIMPLIFIER.simplify(AclIpSpace.builder().build()), equalTo(EmptyIpSpace.INSTANCE)); }
@Test public void testEquals() { new EqualsTester() .addEqualityGroup( new InterfaceWithConnectedIpsSpecifier(Ip.parse("1.2.3.4").toIpSpace()), new InterfaceWithConnectedIpsSpecifier(Ip.parse("1.2.3.4").toIpSpace())) .addEqualityGroup(new InterfaceWithConnectedIpsSpecifier(Ip.parse("1.2.3.5").toIpSpace())) .testEquals(); } }
@Test public void testSpecializeIpWildcardIpSpace() { IpSpace ipSpace = new IpWildcard(Ip.parse("255.0.255.0"), Ip.parse("0.255.0.255")).toIpSpace(); assertThat(specializer(ipSpace).visit(ipSpace), equalTo(UniverseIpSpace.INSTANCE)); assertThat( specializer(Prefix.parse("255.0.0.0/8").toIpSpace()).visit(ipSpace), equalTo(ipSpace)); assertThat( specializer(Ip.parse("1.2.3.4").toIpSpace()).visit(ipSpace), equalTo(EmptyIpSpace.INSTANCE)); }
@Test public void testContainsIp() { IpSpace ipSpace = Ip.parse("1.1.1.1").toIpSpace(); assertThat(ipSpace, containsIp(Ip.parse("1.1.1.1"))); assertThat(ipSpace, not(containsIp(Ip.parse("1.2.3.4")))); }
@Test public void testComplement() { IpSpace ipSpace = Ip.parse("1.1.1.1").toIpSpace().complement(); assertThat(ipSpace, not(containsIp(Ip.parse("1.1.1.1")))); assertThat(ipSpace, containsIp(Ip.parse("1.2.3.4"))); } }
@Override public void exitSa_ip_netmask(Sa_ip_netmaskContext ctx) { if (_currentAddressObject == null) { return; } if (ctx.IP_ADDRESS() != null) { _currentAddressObject.setIpSpace(Ip.parse(ctx.IP_ADDRESS().getText()).toIpSpace()); } else if (ctx.IP_PREFIX() != null) { _currentAddressObject.setIpSpace(Prefix.parse(ctx.IP_PREFIX().getText()).toIpSpace()); } else { _w.redFlag("Cannot understand what follows 'ip-netmask' in " + getFullText(ctx)); } }
@Test public void test_negate() { IpSpace ip = Ip.parse("1.2.3.4").toIpSpace(); BDD ipBDD = _toBDD.toBDD(ip, _dstIpSpaceToBdd); assertThat( _toBDD.toBDD(HeaderSpace.builder().setDstIps(ip).setNegate(true).build()), equalTo(ipBDD.not())); }