public static Interface newInterface( String name, Configuration c, InterfaceAddress primaryAddress) { return FACTORY .interfaceBuilder() .setName(name) .setOwner(c) .setVrf(c.getDefaultVrf()) .setAddress(primaryAddress) .build(); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _vb = _nf.vrfBuilder(); _ib = _nf.interfaceBuilder(); }
/** Make an interface with the specified parameters */ private Interface iface(String interfaceName, String ip, boolean active, boolean blacklisted) { return _nf.interfaceBuilder() .setName(interfaceName) .setActive(active) .setAddress(new InterfaceAddress(ip)) .setBlacklisted(blacklisted) .build(); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _vb = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME); _ib = _nf.interfaceBuilder(); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _vb = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME); _ib = _nf.interfaceBuilder(); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _vb = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME); _ib = _nf.interfaceBuilder(); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(CISCO_IOS); _vb = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME); _ib = _nf.interfaceBuilder(); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _vb = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME); _ib = _nf.interfaceBuilder(); }
@Test public void testSynthesizeTopology_asymmetricPartialOverlap() { NetworkFactory nf = new NetworkFactory(); Configuration.Builder cb = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); Configuration c1 = cb.build(); Configuration c2 = cb.build(); nf.interfaceBuilder().setOwner(c1).setAddresses(new InterfaceAddress("1.2.3.4/24")).build(); nf.interfaceBuilder().setOwner(c2).setAddresses(new InterfaceAddress("1.2.3.17/28")).build(); Topology t = TopologyUtil.synthesizeL3Topology( ImmutableMap.of(c1.getHostname(), c1, c2.getHostname(), c2)); assertThat(t.getEdges(), empty()); }
@Test public void testSynthesizeTopology_asymmetricSharedIp() { NetworkFactory nf = new NetworkFactory(); Configuration.Builder cb = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); Configuration c1 = cb.build(); Configuration c2 = cb.build(); nf.interfaceBuilder().setOwner(c1).setAddresses(new InterfaceAddress("1.2.3.4/24")).build(); nf.interfaceBuilder().setOwner(c2).setAddresses(new InterfaceAddress("1.2.3.4/28")).build(); Topology t = TopologyUtil.synthesizeL3Topology( ImmutableMap.of(c1.getHostname(), c1, c2.getHostname(), c2)); assertThat(t.getEdges(), empty()); } }
@Test public void testSynthesizeTopology_asymmetric() { NetworkFactory nf = new NetworkFactory(); Configuration.Builder cb = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); Configuration c1 = cb.build(); Configuration c2 = cb.build(); Interface i1 = nf.interfaceBuilder().setOwner(c1).setAddresses(new InterfaceAddress("1.2.3.4/24")).build(); Interface i2 = nf.interfaceBuilder().setOwner(c2).setAddresses(new InterfaceAddress("1.2.3.5/28")).build(); Topology t = TopologyUtil.synthesizeL3Topology( ImmutableMap.of(c1.getHostname(), c1, c2.getHostname(), c2)); assertThat(t.getEdges(), equalTo(ImmutableSet.of(new Edge(i1, i2), new Edge(i2, i1)))); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder() .setHostname(HOSTNAME) .setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _ib = _nf.interfaceBuilder().setName(IFACE); _ab = _nf.aclBuilder().setName(ACLNAME); }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); _ib = _nf.interfaceBuilder().setOspfCost(100); _oab = _nf.ospfAreaBuilder().setNumber(0L); _opb = _nf.ospfProcessBuilder(); _vb = _nf.vrfBuilder(); }
@Test public void testOspfAreaBuilder() { NetworkFactory nf = new NetworkFactory(); Configuration c = nf.configurationBuilder().setConfigurationFormat(CONFIG_FORMAT).build(); Vrf vrf = nf.vrfBuilder().setOwner(c).build(); OspfProcess.Builder ob = nf.ospfProcessBuilder(); OspfProcess ospfProcess = ob.setVrf(vrf).build(); OspfArea.Builder oab = nf.ospfAreaBuilder(); OspfArea oa1 = oab.build(); OspfArea oa2 = oab.setOspfProcess(ospfProcess).build(); Interface iface = nf.interfaceBuilder().setOwner(c).setActive(false).setVrf(vrf).setOspfArea(oa2).build(); assertThat(oa1.getAreaNumber(), not(equalTo(oa2.getAreaNumber()))); assertThat(oa1, not(sameInstance(oa2))); assertThat(ospfProcess.getAreas().get(oa2.getAreaNumber()), sameInstance(oa2)); assertThat(oa2, OspfAreaMatchers.hasInterfaces(hasItem(iface.getName()))); assertThat(iface.getOspfAreaName(), equalTo(oa2.getAreaNumber())); } }
@Before public void setup() { _nf = new NetworkFactory(); _cb = _nf.configurationBuilder() .setConfigurationFormat(ConfigurationFormat.CISCO_IOS) .setHostname(HOSTNAME); _c = _cb.build(); _vb = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME).setOwner(_c); _v = _vb.build(); _ib = _nf.interfaceBuilder().setVrf(_v).setOwner(_c).setName(INTERFACE_NAME); }
private static SortedMap<String, Configuration> aclNetwork() { NetworkFactory nf = new NetworkFactory(); Configuration.Builder cb = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS); ImmutableSortedMap.Builder<String, Configuration> configs = new ImmutableSortedMap.Builder<>(Comparator.naturalOrder()); Configuration c1 = cb.build(); configs.put(c1.getHostname(), c1); Vrf v1 = nf.vrfBuilder().setOwner(c1).build(); // destination interface nf.interfaceBuilder() .setAddress(new InterfaceAddress("1.1.1.0/31")) .setOwner(c1) .setOutgoingFilter( nf.aclBuilder() .setOwner(c1) .setLines(ImmutableList.of(IpAccessListLine.REJECT_ALL)) .build()) .setVrf(v1) .build(); return configs.build(); }
@Test public void testSynthesizeTopology_selfEdges() { NetworkFactory nf = new NetworkFactory(); Configuration c = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS).build(); Vrf v1 = nf.vrfBuilder().setOwner(c).setName("v1").build(); Vrf v2 = nf.vrfBuilder().setOwner(c).setName("v2").build(); Interface.Builder builder = nf.interfaceBuilder().setOwner(c); Interface i1 = builder.setAddresses(new InterfaceAddress("1.2.3.4/24")).setVrf(v1).build(); Interface i2 = builder.setAddresses(new InterfaceAddress("1.2.3.5/24")).setVrf(v1).build(); Interface i3 = builder.setAddresses(new InterfaceAddress("1.2.3.6/24")).setVrf(v2).build(); Topology t = TopologyUtil.synthesizeL3Topology(ImmutableMap.of(c.getHostname(), c)); assertThat( t.getEdges(), equalTo( ImmutableSet.of( new Edge(i1, i3), new Edge(i3, i1), new Edge(i2, i3), new Edge(i3, i2)))); }
@Before public void setup() { _nf = new NetworkFactory(); Configuration c = _nf.configurationBuilder() .setConfigurationFormat(ConfigurationFormat.CISCO_IOS) .setHostname(NODE) .build(); Vrf v = _nf.vrfBuilder().setName(Configuration.DEFAULT_VRF_NAME).setOwner(c).build(); _ib = _nf.interfaceBuilder().setOwner(c).setVrf(v).setName(INTERFACE).setActive(true); _configurations = ImmutableMap.of(c.getHostname(), c); _vnb = VniSettings.builder().setBumTransportMethod(BumTransportMethod.MULTICAST_GROUP); _specifierContext = new TestSpecifierContext() { @Override public Map<String, Configuration> getConfigs() { return _configurations; } }; }
private static Configuration configWithOneAcl(NetworkFactory nf) { Configuration config = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS).build(); Interface.Builder ib = nf.interfaceBuilder().setOwner(config); ib.setName(IFACE1).build(); ib.setName(IFACE2).build(); ib.setName(IFACE3).build(); ib.setName(IFACE4).setActive(false).build(); // an ACL that can only match with an IFACE2 or iface3 IpAccessList.builder() .setName("acl") .setOwner(config) .setLines( ImmutableList.of( accepting().setMatchCondition(matchSrcInterface(IFACE1)).build(), rejecting().setMatchCondition(matchSrcInterface(IFACE4)).build(), ACCEPT_ALL)) .build(); return config; }
private Batfish maxTracesBatfish() throws IOException { // create a simple network with two paths for a given destination Prefix dst = Prefix.parse("1.1.1.1/32"); NetworkFactory nf = new NetworkFactory(); Configuration config = nf.configurationBuilder().setConfigurationFormat(ConfigurationFormat.CISCO_IOS).build(); Vrf vrf = nf.vrfBuilder().setOwner(config).build(); Interface.Builder ifaceBuilder = nf.interfaceBuilder().setActive(true).setOwner(config).setVrf(vrf); Interface lo0 = ifaceBuilder.setAddress(new InterfaceAddress("5.5.5.5/32")).build(); Interface lo1 = ifaceBuilder.setAddress(new InterfaceAddress("6.6.6.6/32")).build(); Builder routeBuilder = StaticRoute.builder().setNetwork(dst).setAdministrativeCost(1); vrf.setStaticRoutes( ImmutableSortedSet.of( routeBuilder.setNextHopInterface(lo0.getName()).build(), routeBuilder.setNextHopInterface(lo1.getName()).build())); Batfish batfish = BatfishTestUtils.getBatfish(ImmutableSortedMap.of(config.getHostname(), config), _folder); batfish.computeDataPlane(); return batfish; }