@Test public void testIsisCostFromReferenceBandwidth() { JuniperConfiguration config = createConfig(); org.batfish.datamodel.Interface viIface = createInterface(config._c); RoutingInstance routingInstance = createRoutingInstance(500D, null, 10000D); config.processIsisInterfaceSettings(routingInstance, true, false); assertThat(viIface.getIsis().getLevel1().getCost(), equalTo(20L)); }
@VisibleForTesting IsisLevel processIsisInterfaceSettings( RoutingInstance routingInstance, boolean level1, boolean level2) { return _c.getAllInterfaces(routingInstance.getName()).entrySet().stream() .map( e -> { String ifaceName = e.getKey(); org.batfish.datamodel.Interface newIface = e.getValue(); org.batfish.datamodel.isis.IsisInterfaceSettings settings = toIsisInterfaceSettings( routingInstance.getIsisSettings(), routingInstance.getInterfaces().get(ifaceName), level1, level2, newIface.isLoopback()); newIface.setIsis(settings); if (settings == null || newIface.isLoopback()) { return null; } return settings.getEnabledLevels(); }) .filter(Objects::nonNull) .reduce(IsisLevel::union) .orElse(null); }
JuniperConfiguration extends VendorConfiguration { @VisibleForTesting IsisLevel processIsisInterfaceSettings( RoutingInstance routingInstance, boolean level1, boolean level2) { return _c.getAllInterfaces(routingInstance.getName()).entrySet().stream() .map( e -> { String ifaceName = e.getKey(); org.batfish.datamodel.Interface newIface = e.getValue(); org.batfish.datamodel.isis.IsisInterfaceSettings settings = toIsisInterfaceSettings( routingInstance.getIsisSettings(), routingInstance.getInterfaces().get(ifaceName), level1, level2, newIface.isLoopback()); newIface.setIsis(settings); if (settings == null || newIface.isLoopback()) { return null; } return settings.getEnabledLevels(); }) .filter(Objects::nonNull) .reduce(IsisLevel::union) .orElse(null); } }
JuniperConfiguration extends VendorConfiguration { @VisibleForTesting IsisLevel processIsisInterfaceSettings( RoutingInstance routingInstance, boolean level1, boolean level2) { return _c.getAllInterfaces(routingInstance.getName()).entrySet().stream() .map( e -> { String ifaceName = e.getKey(); org.batfish.datamodel.Interface newIface = e.getValue(); org.batfish.datamodel.isis.IsisInterfaceSettings settings = toIsisInterfaceSettings( routingInstance.getIsisSettings(), routingInstance.getInterfaces().get(ifaceName), level1, level2, newIface.isLoopback()); newIface.setIsis(settings); if (settings == null || newIface.isLoopback()) { return null; } return settings.getEnabledLevels(); }) .filter(Objects::nonNull) .reduce(IsisLevel::union) .orElse(null); } JuniperConfiguration(); }
JuniperConfiguration extends VendorConfiguration { @VisibleForTesting IsisLevel processIsisInterfaceSettings( RoutingInstance routingInstance, boolean level1, boolean level2) { return _c.getAllInterfaces(routingInstance.getName()).entrySet().stream() .map( e -> { String ifaceName = e.getKey(); org.batfish.datamodel.Interface newIface = e.getValue(); org.batfish.datamodel.isis.IsisInterfaceSettings settings = toIsisInterfaceSettings( routingInstance.getIsisSettings(), routingInstance.getInterfaces().get(ifaceName), level1, level2, newIface.isLoopback()); newIface.setIsis(settings); if (settings == null || newIface.isLoopback()) { return null; } return settings.getEnabledLevels(); }) .filter(Objects::nonNull) .reduce(IsisLevel::union) .orElse(null); } JuniperConfiguration(); static @Nonnull String computeFirewallFilterTermName(
      @Nonnull String filterName, @Nonnull String termName); static @Nonnull String computeSecurityPolicyTermName(
      @Nonnull String policyName, @Nonnull String termName); @VisibleForTesting static TraceElement matchingFirewallFilter(String filename, String filterName); @VisibleForTesting static TraceElement matchingFirewallFilterTerm(
      String filename, String filterName, String termName); @VisibleForTesting static TraceElement matchingSecurityPolicyTerm(
      String filename, String policyName, String termName); static String computePeerExportPolicyName(Prefix remoteAddress); static String computeOspfExportPolicyName(String vrfName); Map<String, NodeDevice> getNodeDevices(); @Override void setVendor(ConfigurationFormat format); static String computeContributorRouteFilterListName(Prefix prefix); static String computeAggregatedRouteGenerationPolicyName(Prefix prefix); static String computeGeneratedRouteGenerationPolicyName(Prefix prefix); static String computeIsisExportPolicyName(String routingInstanceName); @Override List<Configuration> toVendorIndependentConfigurations(); static String computeLogicalSystemDefaultHostname(
      String masterHostname, String logicalSystemName); @Nonnull Map<String, LogicalSystem> getLogicalSystems(); LogicalSystem getMasterLogicalSystem(); @Override String getHostname(); @Override void setHostname(String hostname); }
JuniperConfiguration extends VendorConfiguration { @VisibleForTesting IsisLevel processIsisInterfaceSettings( RoutingInstance routingInstance, boolean level1, boolean level2) { return _c.getAllInterfaces(routingInstance.getName()).entrySet().stream() .map( e -> { String ifaceName = e.getKey(); org.batfish.datamodel.Interface newIface = e.getValue(); org.batfish.datamodel.isis.IsisInterfaceSettings settings = toIsisInterfaceSettings( routingInstance.getIsisSettings(), routingInstance.getInterfaces().get(ifaceName), level1, level2, newIface.isLoopback()); newIface.setIsis(settings); if (settings == null || newIface.isLoopback()) { return null; } return settings.getEnabledLevels(); }) .filter(Objects::nonNull) .reduce(IsisLevel::union) .orElse(null); } JuniperConfiguration(); static @Nonnull String computeFirewallFilterTermName(
      @Nonnull String filterName, @Nonnull String termName); static @Nonnull String computeSecurityPolicyTermName(
      @Nonnull String policyName, @Nonnull String termName); @VisibleForTesting static TraceElement matchingFirewallFilter(String filename, String filterName); @VisibleForTesting static TraceElement matchingFirewallFilterTerm(
      String filename, String filterName, String termName); @VisibleForTesting static TraceElement matchingSecurityPolicyTerm(
      String filename, String policyName, String termName); static String computePeerExportPolicyName(Prefix remoteAddress); static String computeOspfExportPolicyName(String vrfName); Map<String, NodeDevice> getNodeDevices(); @Override void setVendor(ConfigurationFormat format); static String computeContributorRouteFilterListName(Prefix prefix); static String computeAggregatedRouteGenerationPolicyName(Prefix prefix); static String computeGeneratedRouteGenerationPolicyName(Prefix prefix); static String computeIsisExportPolicyName(String routingInstanceName); @Override List<Configuration> toVendorIndependentConfigurations(); static String computeLogicalSystemDefaultHostname(
      String masterHostname, String logicalSystemName); @Nonnull Map<String, LogicalSystem> getLogicalSystems(); LogicalSystem getMasterLogicalSystem(); @Override String getHostname(); @Override void setHostname(String hostname); static final String ACL_NAME_COMBINED_INCOMING; static final String ACL_NAME_GLOBAL_POLICY; static final String ACL_NAME_SCREEN; static final String ACL_NAME_SCREEN_INTERFACE; static final String ACL_NAME_SCREEN_ZONE; static final String ACL_NAME_SECURITY_POLICY; @VisibleForTesting static final int DEFAULT_ISIS_COST; }