Search in sources :

Example 16 with BatfishLogger

use of org.batfish.common.BatfishLogger in project batfish by batfish.

the class OspfTest method getOspfRoutes.

/*
   * Int:1/2   2/1      2/3   3/2      3/4   4/3
   * R1 <=========> R2 <=========> R3 <=========> R4
   *  A      B       C      D       E      F       G
   *
   *  Areas:
   *  A: R1 Loopback0
   *  B: R1 E1/2, R2 E2/1
   *  C: R2 Loopback0
   *  D: R2 E2/3, R3 E3/2
   *  E: R3 Loopback0
   *  F: R3 E3/4, R4 E4/3
   *  G: R4 Loopback0
   */
private SortedMap<String, SortedMap<String, SortedSet<AbstractRoute>>> getOspfRoutes(long areaA, long areaB, long areaC, long areaD, long areaE, long areaF, long areaG, Long maxMetricExternalNetworks, Long maxMetricStubNetworks, Long maxMetricSummaryNetworks, Long maxMetricTransitLinks) {
    String l0Name = "Loopback0";
    String l1Name = "Loopback1";
    String c1E1To2Name = "Ethernet1/2";
    String c2E2To1Name = "Ethernet2/1";
    String c2E2To3Name = "Ethernet2/3";
    String c3E3To2Name = "Ethernet3/2";
    String c3E3To4Name = "Ethernet3/4";
    String c4E4To3Name = "Ethernet4/3";
    RoutingPolicy.Builder rpb = _nf.routingPolicyBuilder();
    OspfArea.Builder oaba = _nf.ospfAreaBuilder().setNumber(areaA);
    OspfArea.Builder oabb = _nf.ospfAreaBuilder().setNumber(areaB);
    OspfArea.Builder oabc = _nf.ospfAreaBuilder().setNumber(areaC);
    OspfArea.Builder oabd = _nf.ospfAreaBuilder().setNumber(areaD);
    OspfArea.Builder oabe = _nf.ospfAreaBuilder().setNumber(areaE);
    OspfArea.Builder oabf = _nf.ospfAreaBuilder().setNumber(areaF);
    OspfArea.Builder oabg = _nf.ospfAreaBuilder().setNumber(areaG);
    Configuration c1 = _cb.setHostname(C1_NAME).build();
    Vrf v1 = _vb.setOwner(c1).build();
    RoutingPolicy c1ExportPolicy = rpb.setOwner(c1).setStatements(getExportPolicyStatements(C1_L1_ADDRESS)).build();
    OspfProcess op1 = _opb.setVrf(v1).setExportPolicy(c1ExportPolicy).build();
    OspfArea oa1a = oaba.setOspfProcess(op1).build();
    OspfArea oa1b = areaA == areaB ? oa1a : oabb.setOspfProcess(op1).build();
    _ib.setOwner(c1).setVrf(v1).setOspfArea(oa1a);
    _ib.setOspfPassive(true).setName(l0Name).setAddress(C1_L0_ADDRESS).build();
    _ib.setOspfEnabled(false).setOspfPassive(false).setOspfArea(null).setName(l1Name).setAddress(C1_L1_ADDRESS).build();
    _ib.setOspfEnabled(true).setOspfArea(oa1b);
    _ib.setName(c1E1To2Name).setAddress(C1_E1_2_ADDRESS).build();
    Configuration c2 = _cb.setHostname(C2_NAME).build();
    Vrf v2 = _vb.setOwner(c2).build();
    RoutingPolicy c2ExportPolicy = rpb.setOwner(c2).setStatements(getExportPolicyStatements(C2_L1_ADDRESS)).build();
    OspfProcess op2 = _opb.setVrf(v2).setMaxMetricExternalNetworks(maxMetricExternalNetworks).setMaxMetricStubNetworks(maxMetricStubNetworks).setMaxMetricSummaryNetworks(maxMetricSummaryNetworks).setMaxMetricTransitLinks(maxMetricTransitLinks).setExportPolicy(c2ExportPolicy).build();
    _opb.setMaxMetricExternalNetworks(null).setMaxMetricStubNetworks(null).setMaxMetricSummaryNetworks(null).setMaxMetricTransitLinks(null);
    OspfArea oa2b = oabb.setOspfProcess(op2).build();
    OspfArea oa2c = areaB == areaC ? oa2b : oabc.setOspfProcess(op2).build();
    OspfArea oa2d = areaB == areaD ? oa2b : areaC == areaD ? oa2c : oabd.setOspfProcess(op2).build();
    _ib.setOwner(c2).setVrf(v2).setOspfArea(oa2c);
    _ib.setOspfPassive(true).setName(l0Name).setAddress(C2_L0_ADDRESS).build();
    _ib.setOspfEnabled(false).setOspfPassive(false).setOspfArea(null).setName(l1Name).setAddress(C2_L1_ADDRESS).build();
    _ib.setOspfEnabled(true).setOspfArea(oa2b);
    _ib.setName(c2E2To1Name).setAddress(C2_E2_1_ADDRESS).setOspfPointToPoint(true).build();
    _ib.setOspfPointToPoint(false).setOspfArea(oa2d);
    _ib.setName(c2E2To3Name).setAddress(C2_E2_3_ADDRESS).build();
    Configuration c3 = _cb.setHostname(C3_NAME).build();
    Vrf v3 = _vb.setOwner(c3).build();
    RoutingPolicy c3ExportPolicy = rpb.setOwner(c3).setStatements(getExportPolicyStatements(C3_L1_ADDRESS)).build();
    OspfProcess op3 = _opb.setVrf(v3).setExportPolicy(c3ExportPolicy).build();
    OspfArea oa3d = oabd.setOspfProcess(op3).build();
    OspfArea oa3e = areaD == areaE ? oa3d : oabe.setOspfProcess(op3).build();
    OspfArea oa3f = areaD == areaF ? oa3d : areaE == areaF ? oa3e : oabf.setOspfProcess(op3).build();
    _ib.setOwner(c3).setVrf(v3).setOspfArea(oa3e);
    _ib.setOspfPassive(true).setName(l0Name).setAddress(C3_L0_ADDRESS).build();
    _ib.setOspfEnabled(false).setOspfPassive(false).setOspfArea(null).setName(l1Name).setAddress(C3_L1_ADDRESS).build();
    _ib.setOspfEnabled(true).setOspfArea(oa3d);
    _ib.setName(c3E3To2Name).setAddress(C3_E3_2_ADDRESS).build();
    _ib.setName(c3E3To4Name).setAddress(C3_E3_4_ADDRESS).setOspfArea(oa3f).build();
    Configuration c4 = _cb.setHostname(C4_NAME).build();
    Vrf v4 = _vb.setOwner(c4).build();
    RoutingPolicy c4ExportPolicy = rpb.setOwner(c4).setStatements(getExportPolicyStatements(C4_L1_ADDRESS)).build();
    OspfProcess op4 = _opb.setVrf(v4).setExportPolicy(c4ExportPolicy).build();
    OspfArea oa4f = oabf.setOspfProcess(op4).build();
    OspfArea oa4g = areaF == areaG ? oa4f : oabg.setOspfProcess(op4).build();
    _ib.setOwner(c4).setVrf(v4).setOspfArea(oa4g);
    _ib.setOspfPassive(true).setName(l0Name).setAddress(C4_L0_ADDRESS).build();
    _ib.setOspfEnabled(false).setOspfPassive(false).setOspfArea(null).setName(l1Name).setAddress(C4_L1_ADDRESS).build();
    _ib.setOspfEnabled(true).setOspfArea(oa4f);
    _ib.setName(c4E4To3Name).setAddress(C4_E4_3_ADDRESS).build();
    SortedMap<String, Configuration> configurations = new ImmutableSortedMap.Builder<String, Configuration>(String::compareTo).put(c1.getName(), c1).put(c2.getName(), c2).put(c3.getName(), c3).put(c4.getName(), c4).build();
    BdpEngine engine = new BdpEngine(new MockBdpSettings(), new BatfishLogger(BatfishLogger.LEVELSTR_OUTPUT, false), (s, i) -> new AtomicInteger());
    Topology topology = CommonUtil.synthesizeTopology(configurations);
    BdpDataPlane dp = engine.computeDataPlane(false, configurations, topology, Collections.emptySet(), new BdpAnswerElement());
    return engine.getRoutes(dp);
}
Also used : OspfArea(org.batfish.datamodel.OspfArea) BdpAnswerElement(org.batfish.datamodel.answers.BdpAnswerElement) Configuration(org.batfish.datamodel.Configuration) BatfishLogger(org.batfish.common.BatfishLogger) ImmutableSortedMap(com.google.common.collect.ImmutableSortedMap) RoutingPolicy(org.batfish.datamodel.routing_policy.RoutingPolicy) OspfProcess(org.batfish.datamodel.OspfProcess) Vrf(org.batfish.datamodel.Vrf) Topology(org.batfish.datamodel.Topology) AtomicInteger(java.util.concurrent.atomic.AtomicInteger)

Example 17 with BatfishLogger

use of org.batfish.common.BatfishLogger in project batfish by batfish.

the class RouteReflectionTest method generateRoutesOneReflector.

/*
   * See documentation of calling functions for information description of produced network
   */
private SortedMap<String, SortedMap<String, SortedSet<AbstractRoute>>> generateRoutesOneReflector(boolean edge1RouteReflectorClient, boolean edge2RouteReflectorClient) {
    Ip as1PeeringIp = new Ip("10.12.11.1");
    Ip edge1EbgpIfaceIp = new Ip("10.12.11.2");
    Ip edge1IbgpIfaceIp = new Ip("10.1.12.1");
    Ip edge1LoopbackIp = new Ip("2.0.0.1");
    Ip rrEdge1IfaceIp = new Ip("10.1.12.2");
    Ip rrEdge2IfaceIp = new Ip("10.1.23.2");
    Ip rrLoopbackIp = new Ip("2.0.0.2");
    Ip as3PeeringIp = new Ip("10.23.31.3");
    Ip edge2EbgpIfaceIp = new Ip("10.23.31.2");
    Ip edge2IbgpIfaceIp = new Ip("10.1.23.3");
    Ip edge2LoopbackIp = new Ip("2.0.0.3");
    Configuration edge1 = _cb.setHostname(EDGE1_NAME).build();
    Vrf vEdge1 = _vb.setOwner(edge1).build();
    _ib.setOwner(edge1).setVrf(vEdge1);
    _ib.setAddress(new InterfaceAddress(edge1EbgpIfaceIp, EDGE_PREFIX_LENGTH)).build();
    _ib.setAddress(new InterfaceAddress(edge1LoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build();
    _ib.setAddress(new InterfaceAddress(edge1IbgpIfaceIp, EDGE_PREFIX_LENGTH)).build();
    StaticRoute.Builder sb = StaticRoute.builder();
    vEdge1.setStaticRoutes(ImmutableSortedSet.of(sb.setNextHopIp(rrEdge1IfaceIp).setNetwork(new Prefix(rrLoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build()));
    BgpProcess edge1Proc = _pb.setRouterId(edge1LoopbackIp).setVrf(vEdge1).build();
    RoutingPolicy edge1EbgpExportPolicy = _nullExportPolicyBuilder.setOwner(edge1).build();
    _nb.setOwner(edge1).setVrf(vEdge1).setBgpProcess(edge1Proc).setClusterId(edge1LoopbackIp.asLong()).setRemoteAs(1).setLocalIp(edge1EbgpIfaceIp).setPeerAddress(as1PeeringIp).setExportPolicy(edge1EbgpExportPolicy.getName()).build();
    RoutingPolicy edge1IbgpExportPolicy = _defaultExportPolicyBuilder.setOwner(edge1).build();
    _nb.setRemoteAs(2).setLocalIp(edge1LoopbackIp).setPeerAddress(rrLoopbackIp).setExportPolicy(edge1IbgpExportPolicy.getName()).build();
    Configuration rr = _cb.setHostname(RR_NAME).build();
    Vrf vRr = _vb.setOwner(rr).build();
    _ib.setOwner(rr).setVrf(vRr);
    _ib.setAddress(new InterfaceAddress(rrEdge1IfaceIp, EDGE_PREFIX_LENGTH)).build();
    _ib.setAddress(new InterfaceAddress(rrLoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build();
    _ib.setAddress(new InterfaceAddress(rrEdge2IfaceIp, EDGE_PREFIX_LENGTH)).build();
    vRr.setStaticRoutes(ImmutableSortedSet.of(sb.setNextHopIp(edge1IbgpIfaceIp).setNetwork(new Prefix(edge1LoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build(), sb.setNextHopIp(edge2IbgpIfaceIp).setNetwork(new Prefix(edge2LoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build()));
    BgpProcess rrProc = _pb.setRouterId(rrLoopbackIp).setVrf(vRr).build();
    RoutingPolicy rrExportPolicy = _defaultExportPolicyBuilder.setOwner(rr).build();
    _nb.setOwner(rr).setVrf(vRr).setBgpProcess(rrProc).setClusterId(rrLoopbackIp.asLong()).setRemoteAs(2).setLocalIp(rrLoopbackIp).setExportPolicy(rrExportPolicy.getName());
    if (edge1RouteReflectorClient) {
        _nb.setRouteReflectorClient(true);
    }
    _nb.setPeerAddress(edge1LoopbackIp).build();
    _nb.setRouteReflectorClient(false);
    if (edge2RouteReflectorClient) {
        _nb.setRouteReflectorClient(true);
    }
    _nb.setPeerAddress(edge2LoopbackIp).build();
    _nb.setRouteReflectorClient(false);
    Configuration edge2 = _cb.setHostname(EDGE2_NAME).build();
    Vrf vEdge2 = _vb.setOwner(edge2).build();
    _ib.setOwner(edge2).setVrf(vEdge2);
    _ib.setAddress(new InterfaceAddress(edge2EbgpIfaceIp, EDGE_PREFIX_LENGTH)).build();
    _ib.setAddress(new InterfaceAddress(edge2LoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build();
    _ib.setAddress(new InterfaceAddress(edge2IbgpIfaceIp, EDGE_PREFIX_LENGTH)).build();
    vEdge2.setStaticRoutes(ImmutableSortedSet.of(sb.setNextHopIp(rrEdge2IfaceIp).setNetwork(new Prefix(rrLoopbackIp, Prefix.MAX_PREFIX_LENGTH)).build()));
    BgpProcess edge2Proc = _pb.setRouterId(edge2LoopbackIp).setVrf(vEdge2).build();
    RoutingPolicy edge2EbgpExportPolicy = _nullExportPolicyBuilder.setOwner(edge2).build();
    _nb.setOwner(edge2).setVrf(vEdge2).setBgpProcess(edge2Proc).setClusterId(edge2LoopbackIp.asLong()).setRemoteAs(3).setLocalIp(edge2EbgpIfaceIp).setPeerAddress(as3PeeringIp).setExportPolicy(edge2EbgpExportPolicy.getName()).build();
    RoutingPolicy edge2IbgpExportPolicy = _defaultExportPolicyBuilder.setOwner(edge2).build();
    _nb.setRemoteAs(2).setLocalIp(edge2LoopbackIp).setPeerAddress(rrLoopbackIp).setExportPolicy(edge2IbgpExportPolicy.getName()).build();
    SortedMap<String, Configuration> configurations = new ImmutableSortedMap.Builder<String, Configuration>(String::compareTo).put(edge1.getName(), edge1).put(rr.getName(), rr).put(edge2.getName(), edge2).build();
    BdpEngine engine = new BdpEngine(new MockBdpSettings(), new BatfishLogger(BatfishLogger.LEVELSTR_OUTPUT, false), (s, i) -> new AtomicInteger());
    Topology topology = CommonUtil.synthesizeTopology(configurations);
    BdpDataPlane dp = engine.computeDataPlane(false, configurations, topology, ImmutableSet.of(_ab.setAsPath(AsPath.ofSingletonAsSets(1)).setDstIp(edge1EbgpIfaceIp).setDstNode(edge1.getName()).setNetwork(AS1_PREFIX).setNextHopIp(as1PeeringIp).setOriginatorIp(as1PeeringIp).setSrcIp(as1PeeringIp).setSrcNode("as1Edge").build(), _ab.setAsPath(AsPath.ofSingletonAsSets(3)).setDstIp(edge2EbgpIfaceIp).setDstNode(edge2.getName()).setNetwork(AS3_PREFIX).setNextHopIp(as3PeeringIp).setOriginatorIp(as3PeeringIp).setSrcIp(as3PeeringIp).setSrcNode("as3Edge").build()), new BdpAnswerElement());
    return engine.getRoutes(dp);
}
Also used : StaticRoute(org.batfish.datamodel.StaticRoute) BdpAnswerElement(org.batfish.datamodel.answers.BdpAnswerElement) Configuration(org.batfish.datamodel.Configuration) BatfishLogger(org.batfish.common.BatfishLogger) BgpProcess(org.batfish.datamodel.BgpProcess) InterfaceAddress(org.batfish.datamodel.InterfaceAddress) Ip(org.batfish.datamodel.Ip) RoutingPolicy(org.batfish.datamodel.routing_policy.RoutingPolicy) Vrf(org.batfish.datamodel.Vrf) AbstractRouteMatchers.hasPrefix(org.batfish.datamodel.matchers.AbstractRouteMatchers.hasPrefix) Prefix(org.batfish.datamodel.Prefix) Topology(org.batfish.datamodel.Topology) AtomicInteger(java.util.concurrent.atomic.AtomicInteger)

Example 18 with BatfishLogger

use of org.batfish.common.BatfishLogger in project batfish by batfish.

the class BatfishJobExecutorTest method testHandleJobResultSuccess.

@Test
public void testHandleJobResultSuccess() {
    Settings settings = new Settings();
    // initializing executor
    BatfishJobExecutor executor = BatfishJobExecutor.getBatfishJobExecutor(settings, _logger);
    executor.initializeJobsStats(Lists.newArrayList(new BfTestJob(settings, "result1")), TEST_EXECUTOR_DESC);
    // Simulating finishing of a job and handling the result
    // initiating a separate logger from the Executor logger
    BatfishLogger jobLogger = new BatfishLogger(BatfishLogger.LEVELSTR_INFO, false);
    BfTestResult bfTestResult = new BfTestResult(TEST_ELAPSED_TIME, jobLogger.getHistory(), "result");
    Set<String> output = new HashSet<>();
    List<BatfishException> failureCauses = new ArrayList<>();
    BfTestAnswerElement ae = new BfTestAnswerElement();
    executor.markJobCompleted();
    executor.handleJobResult(bfTestResult, output, ae, failureCauses, false);
    // checking the log of the executor for the job finished
    assertEquals(_logger.getHistory().toString(BatfishLogger.LEVEL_INFO), executor.getSuccessMessage(bfTestResult));
}
Also used : BatfishException(org.batfish.common.BatfishException) BatfishLogger(org.batfish.common.BatfishLogger) ArrayList(java.util.ArrayList) Settings(org.batfish.config.Settings) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 19 with BatfishLogger

use of org.batfish.common.BatfishLogger in project batfish by batfish.

the class BatfishStorageTest method before.

@Before
public void before() throws IOException {
    _containerDir = _folder.newFolder("container").toPath();
    _logger = new BatfishLogger(BatfishLogger.LEVELSTR_DEBUG, false);
    _storage = new BatfishStorage(_containerDir, _logger, (m, n) -> new AtomicInteger());
}
Also used : ConfigurationFormat(org.batfish.datamodel.ConfigurationFormat) INCOMPATIBLE_VERSION(org.batfish.common.Version.INCOMPATIBLE_VERSION) Matchers.not(org.hamcrest.Matchers.not) RunWith(org.junit.runner.RunWith) IOException(java.io.IOException) HashMap(java.util.HashMap) Test(org.junit.Test) JUnit4(org.junit.runners.JUnit4) Sets(com.google.common.collect.Sets) Assert.assertThat(org.junit.Assert.assertThat) Rule(org.junit.Rule) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Version(org.batfish.common.Version) ConvertConfigurationAnswerElement(org.batfish.datamodel.answers.ConvertConfigurationAnswerElement) Matchers.equalTo(org.hamcrest.Matchers.equalTo) Matchers.nullValue(org.hamcrest.Matchers.nullValue) Map(java.util.Map) Configuration(org.batfish.datamodel.Configuration) Path(java.nio.file.Path) TemporaryFolder(org.junit.rules.TemporaryFolder) BatfishLogger(org.batfish.common.BatfishLogger) Before(org.junit.Before) BatfishLogger(org.batfish.common.BatfishLogger) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Before(org.junit.Before)

Example 20 with BatfishLogger

use of org.batfish.common.BatfishLogger in project batfish by batfish.

the class BatfishTestUtils method getBatfishFromTestrigText.

/**
 * Get a new Batfish instance with given configurations, tempFolder should be present for
 * non-empty configurations
 *
 * @param testrigText Structure containing names and content of testrig input files
 * @param tempFolder Temporary folder to be used to files required for Batfish
 * @return Batfish instance pointing at new testrig comprising testrigText
 */
public static Batfish getBatfishFromTestrigText(TestrigText testrigText, TemporaryFolder tempFolder) throws IOException {
    Map<String, String> awsText = testrigText.getAwsText();
    Map<String, String> bgpTablesText = testrigText.getBgpTablesText();
    Map<String, String> configurationText = testrigText.getConfigurationText();
    Map<String, String> hostsText = testrigText.getHostsText();
    Map<String, String> iptablesFilesText = testrigText.getIptablesFilesText();
    Map<String, String> routingTablesText = testrigText.getRoutingTablesText();
    Settings settings = new Settings(new String[] {});
    settings.setLogger(new BatfishLogger("debug", false));
    settings.setDisableUnrecognized(true);
    settings.setHaltOnConvertError(true);
    settings.setHaltOnParseError(true);
    settings.setThrowOnLexerError(true);
    settings.setThrowOnParserError(true);
    settings.setVerboseParse(true);
    Path containerDir = tempFolder.newFolder().toPath();
    settings.setContainerDir(containerDir);
    settings.setTestrig("tempTestrig");
    settings.setEnvironmentName("tempEnvironment");
    settings.setDataplaneEngineName(BdpDataPlanePlugin.PLUGIN_NAME);
    Batfish.initTestrigSettings(settings);
    Path testrigPath = settings.getBaseTestrigSettings().getTestRigPath();
    settings.setActiveTestrigSettings(settings.getBaseTestrigSettings());
    EnvironmentSettings envSettings = settings.getBaseTestrigSettings().getEnvironmentSettings();
    envSettings.getEnvPath().toFile().mkdirs();
    writeTemporaryTestrigFiles(configurationText, testrigPath.resolve(BfConsts.RELPATH_CONFIGURATIONS_DIR));
    writeTemporaryTestrigFiles(awsText, testrigPath.resolve(BfConsts.RELPATH_AWS_CONFIGS_DIR));
    writeTemporaryTestrigFiles(bgpTablesText, envSettings.getEnvironmentBgpTablesPath());
    writeTemporaryTestrigFiles(hostsText, testrigPath.resolve(BfConsts.RELPATH_HOST_CONFIGS_DIR));
    writeTemporaryTestrigFiles(iptablesFilesText, testrigPath.resolve("iptables"));
    writeTemporaryTestrigFiles(routingTablesText, envSettings.getEnvironmentRoutingTablesPath());
    Batfish batfish = new Batfish(settings, makeTestrigCache(), makeTestrigCache(), makeDataPlaneCache(), makeDataPlaneCache(), makeEnvBgpCache(), makeEnvRouteCache(), makeForwardingAnalysisCache());
    return batfish;
}
Also used : Path(java.nio.file.Path) EnvironmentSettings(org.batfish.config.Settings.EnvironmentSettings) BatfishLogger(org.batfish.common.BatfishLogger) TestrigSettings(org.batfish.config.Settings.TestrigSettings) EnvironmentSettings(org.batfish.config.Settings.EnvironmentSettings) Settings(org.batfish.config.Settings)

Aggregations

BatfishLogger (org.batfish.common.BatfishLogger)22 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)6 Settings (org.batfish.config.Settings)6 Configuration (org.batfish.datamodel.Configuration)6 Test (org.junit.Test)6 Path (java.nio.file.Path)5 BatfishException (org.batfish.common.BatfishException)5 Topology (org.batfish.datamodel.Topology)5 Vrf (org.batfish.datamodel.Vrf)5 File (java.io.File)4 IOException (java.io.IOException)4 EnvironmentSettings (org.batfish.config.Settings.EnvironmentSettings)4 TestrigSettings (org.batfish.config.Settings.TestrigSettings)4 Ip (org.batfish.datamodel.Ip)4 BdpAnswerElement (org.batfish.datamodel.answers.BdpAnswerElement)4 ActiveSpan (io.opentracing.ActiveSpan)3 ArrayList (java.util.ArrayList)3 HashSet (java.util.HashSet)3 Nullable (javax.annotation.Nullable)3 CleanBatfishException (org.batfish.common.CleanBatfishException)3