@Test public void testFiniteDomainValues_twoActiveIfacesWithFilter() { { Set<String> ifaces = ImmutableSet.of( ACTIVE_IFACE_WITH_FILTER_1, ACTIVE_IFACE_WITH_FILTER_2, INACTIVE_IFACE_WITH_FILTER); Configuration c = createConfig(new NetworkFactory(), ifaces); BDDOutgoingOriginalFlowFilterManager mgr = getMgrForConfig(c); assertThat( mgr.getInterfaceBDDs().keySet(), containsInAnyOrder(ACTIVE_IFACE_WITH_FILTER_1, ACTIVE_IFACE_WITH_FILTER_2)); BDD activeIfaceWithFilter1Bdd = mgr.getInterfaceBDDs().get(ACTIVE_IFACE_WITH_FILTER_1); BDD activeIfaceWithFilter2Bdd = mgr.getInterfaceBDDs().get(ACTIVE_IFACE_WITH_FILTER_2); assertTrue(!activeIfaceWithFilter1Bdd.isZero() && !activeIfaceWithFilter1Bdd.isOne()); assertTrue(!activeIfaceWithFilter2Bdd.isZero() && !activeIfaceWithFilter2Bdd.isOne()); assertTrue(activeIfaceWithFilter1Bdd.and(activeIfaceWithFilter2Bdd).isZero()); assertTrue(activeIfaceWithFilter1Bdd.or(activeIfaceWithFilter2Bdd).isOne()); } { Set<String> ifaces = ImmutableSet.of( ACTIVE_IFACE_WITH_FILTER_1, ACTIVE_IFACE_WITH_FILTER_2, INACTIVE_IFACE_WITH_FILTER, ACTIVE_IFACE_NO_FILTER_1); Configuration c = createConfig(new NetworkFactory(), ifaces); BDDOutgoingOriginalFlowFilterManager mgr = getMgrForConfig(c); assertThat( mgr.getInterfaceBDDs().keySet(), containsInAnyOrder(ACTIVE_IFACE_WITH_FILTER_1, ACTIVE_IFACE_WITH_FILTER_2)); BDD activeIfaceWithFilter1Bdd = mgr.getInterfaceBDDs().get(ACTIVE_IFACE_WITH_FILTER_1); BDD activeIfaceWithFilter2Bdd = mgr.getInterfaceBDDs().get(ACTIVE_IFACE_WITH_FILTER_2); assertTrue(!activeIfaceWithFilter1Bdd.isZero() && !activeIfaceWithFilter1Bdd.isOne()); assertTrue(!activeIfaceWithFilter2Bdd.isZero() && !activeIfaceWithFilter2Bdd.isOne()); assertTrue(activeIfaceWithFilter1Bdd.and(activeIfaceWithFilter2Bdd).isZero()); assertFalse(activeIfaceWithFilter1Bdd.or(activeIfaceWithFilter2Bdd).isOne()); } }
@Nonnull Map<String, BDD> getInterfaceBDDs() { return _interfaceBdds; }
BDDOutgoingOriginalFlowFilterManager { @Nonnull Map<String, BDD> getInterfaceBDDs() { return _interfaceBdds; } }
BDDOutgoingOriginalFlowFilterManager { @Nonnull Map<String, BDD> getInterfaceBDDs() { return _interfaceBdds; } private  BDDOutgoingOriginalFlowFilterManager(
      BDDFiniteDomain<String> finiteDomain,
      @Nullable String activeButNoOriginalFlowFilterRepresentative,
      Map<String, BDD> filterBdds,
      BDD permitVar); }
BDDOutgoingOriginalFlowFilterManager { @Nonnull Map<String, BDD> getInterfaceBDDs() { return _interfaceBdds; } private  BDDOutgoingOriginalFlowFilterManager(
      BDDFiniteDomain<String> finiteDomain,
      @Nullable String activeButNoOriginalFlowFilterRepresentative,
      Map<String, BDD> filterBdds,
      BDD permitVar); static BDDOutgoingOriginalFlowFilterManager empty(BDDPacket pkt); static Map<String, BDDOutgoingOriginalFlowFilterManager> forNetwork(
      BDDPacket pkt, Map<String, Configuration> configs, Map<String, BDDSourceManager> srcMgrs); BDD outgoingOriginalFlowFiltersConstraint(); BDD erase(BDD bdd); BDD permittedByOriginalFlowEgressFilter(String iface); BDD deniedByOriginalFlowEgressFilter(String iface); boolean isTrivial(); }
BDDOutgoingOriginalFlowFilterManager { @Nonnull Map<String, BDD> getInterfaceBDDs() { return _interfaceBdds; } private  BDDOutgoingOriginalFlowFilterManager(
      BDDFiniteDomain<String> finiteDomain,
      @Nullable String activeButNoOriginalFlowFilterRepresentative,
      Map<String, BDD> filterBdds,
      BDD permitVar); static BDDOutgoingOriginalFlowFilterManager empty(BDDPacket pkt); static Map<String, BDDOutgoingOriginalFlowFilterManager> forNetwork(
      BDDPacket pkt, Map<String, Configuration> configs, Map<String, BDDSourceManager> srcMgrs); BDD outgoingOriginalFlowFiltersConstraint(); BDD erase(BDD bdd); BDD permittedByOriginalFlowEgressFilter(String iface); BDD deniedByOriginalFlowEgressFilter(String iface); boolean isTrivial();  }