public IsisInterfaceSettings build() { return new IsisInterfaceSettings(this); }
@Override protected Integer featureValueOf(IsisInterfaceSettings actual) { return actual.getBfdLivenessDetectionMinimumInterval(); } }
@Override protected IsisInterfaceLevelSettings featureValueOf(IsisInterfaceSettings actual) { return actual.getLevel1(); } }
@Override protected IsisInterfaceLevelSettings featureValueOf(IsisInterfaceSettings actual) { return actual.getLevel2(); } }
org.batfish.datamodel.isis.IsisInterfaceSettings.builder(); if (level1) { newInterfaceSettingsBuilder.setLevel1(
@Override protected Integer featureValueOf(IsisInterfaceSettings actual) { return actual.getBfdLivenessDetectionMultiplier(); } }
@Override protected IsoAddress featureValueOf(IsisInterfaceSettings actual) { return actual.getIsoAddress(); } }
throw new VendorConversionException("Invalid IS-IS level"); IsisInterfaceSettings.Builder isisInterfaceSettingsBuilder = IsisInterfaceSettings.builder(); IsisInterfaceLevelSettings levelSettings = IsisInterfaceLevelSettings.builder()
/** * Generate IS-IS L1/L2 routes from a given interface and merge them into appropriate L1/L2 RIBs. */ private void generateAllIsisInterfaceRoutes( Builder<IsisRoute> d1, Builder<IsisRoute> d2, int l1Admin, int l2Admin, @Nullable IsisLevelSettings l1Settings, @Nullable IsisLevelSettings l2Settings, IsisRoute.Builder routeBuilder, Interface iface) { IsisInterfaceSettings ifaceSettings = iface.getIsis(); if (ifaceSettings == null) { return; } IsisInterfaceLevelSettings ifaceL1Settings = ifaceSettings.getLevel1(); IsisInterfaceLevelSettings ifaceL2Settings = ifaceSettings.getLevel2(); if (ifaceL1Settings != null && l1Settings != null) { generateIsisInterfaceRoutesPerLevel(l1Admin, routeBuilder, iface, IsisLevel.LEVEL_1) .forEach(r -> d1.from(_isisL1Rib.mergeRouteGetDelta(r))); } if (ifaceL2Settings != null && l2Settings != null) { generateIsisInterfaceRoutesPerLevel(l2Admin, routeBuilder, iface, IsisLevel.LEVEL_2) .forEach(r -> d2.from(_isisL2Rib.mergeRouteGetDelta(r))); } }
/** * Generate IS-IS from a given interface for a given level (with a given metric/admin cost) and * merge them into the appropriate RIB. */ private static Set<IsisRoute> generateIsisInterfaceRoutesPerLevel( int adminCost, IsisRoute.Builder routeBuilder, Interface iface, IsisLevel level) { IsisInterfaceLevelSettings ifaceLevelSettings = level == IsisLevel.LEVEL_1 ? iface.getIsis().getLevel1() : iface.getIsis().getLevel2(); RoutingProtocol isisProtocol = level == IsisLevel.LEVEL_1 ? RoutingProtocol.ISIS_L1 : RoutingProtocol.ISIS_L2; long metric = ifaceLevelSettings.getMode() == IsisInterfaceMode.PASSIVE ? 0L : firstNonNull(ifaceLevelSettings.getCost(), IsisRoute.DEFAULT_METRIC); routeBuilder.setAdmin(adminCost).setLevel(level).setMetric(metric).setProtocol(isisProtocol); return iface.getAllAddresses().stream() .map( address -> routeBuilder.setNetwork(address.getPrefix()).setNextHopIp(address.getIp()).build()) .collect(ImmutableSet.toImmutableSet()); }