@Override public RoutingProtocol getProtocol() { return getOspfMetricType().toRoutingProtocol(); }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof OspfExternalType1Route)) { return false; } if (!super.equals(obj)) { return false; } OspfExternalType1Route other = (OspfExternalType1Route) obj; return getCostToAdvertiser() == other.getCostToAdvertiser(); }
boolean withdraw = routeAdvert.isWithdrawn(); OspfExternalRoute neighborRoute = routeAdvert.getRoute(); long areaInRoute = neighborRoute.getArea(); OspfExternalRoute.Builder newRouteB = OspfExternalRoute.builder() .setNetwork(neighborRoute.getNetwork()) .setNextHopIp(neighborNode.getLocalIp()) .setLsaMetric(neighborRoute.getLsaMetric()) .setAdvertiser(neighborRoute.getAdvertiser()) .setOspfMetricType(neighborRoute.getOspfMetricType()) .setAdmin( neighborRoute .getOspfMetricType() .toRoutingProtocol() .getDefaultAdministrativeCost(_c.getConfigurationFormat())); long baseMetric = neighborRoute.getMetric(); long baseCostToAdvertiser = neighborRoute.getCostToAdvertiser(); if (areaInRoute != OspfRoute.NO_AREA && localArea != areaInRoute) { if (localArea != 0L && areaInRoute != 0L) { baseMetric = maxMetricSummaryNetworks + neighborRoute.getLsaMetric(); baseCostToAdvertiser = maxMetricSummaryNetworks; long baseCostToAdvertiser = neighborRoute.getCostToAdvertiser(); if (areaInRoute == OspfRoute.NO_AREA) { newArea = localArea; (OspfExternalType2Route)
if (exportPolicy.process( route, OspfExternalRoute.builder(), null, vrf.getName(),
OspfExternalRoute computeOspfExportRoute( AbstractRoute potentialExportRoute, RoutingPolicy exportPolicy, OspfProcess proc) { OspfExternalRoute.Builder outputRouteBuilder = OspfExternalRoute.builder();
@Test public void testEquals() { OspfExternalType2Route.Builder b = OspfExternalRoute.builder() .setNetwork(Prefix.create(Ip.parse("1.1.1.1"), 32)) .setNextHopIp(Ip.ZERO) .setAdmin(1) .setMetric(1) .setLsaMetric(1) .setArea(1) .setCostToAdvertiser(1) .setAdvertiser("") .setOspfMetricType(OspfMetricType.E1); OspfExternalRoute r1 = b.build(); OspfExternalRoute r1DiffObj = b.build(); OspfExternalRoute r2 = b.setCostToAdvertiser(2).build(); OspfExternalRoute r2t2 = b.setOspfMetricType(OspfMetricType.E2).build(); new EqualsTester() .addEqualityGroup(r1, r1DiffObj) .addEqualityGroup(r2) .addEqualityGroup(r2t2) .testEquals(); } }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + _network.hashCode(); result = prime * result + ((_nextHopIp == null) ? 0 : _nextHopIp.hashCode()); result = prime * result + _admin; result = prime * result + Long.hashCode(_metric); result = prime * result + Long.hashCode(_lsaMetric); result = prime * result + ((getOspfMetricType() == null) ? 0 : getOspfMetricType().ordinal()); return result; } }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof OspfExternalType2Route)) { return false; } if (!super.equals(obj)) { return false; } OspfExternalType2Route other = (OspfExternalType2Route) obj; return getCostToAdvertiser() == other.getCostToAdvertiser(); }
@Test public void testEquals() { OspfExternalType2Route.Builder b = OspfExternalRoute.builder() .setNetwork(Prefix.create(Ip.parse("1.1.1.1"), 32)) .setNextHopIp(Ip.ZERO) .setAdmin(1) .setMetric(1) .setLsaMetric(1) .setArea(1) .setCostToAdvertiser(1) .setAdvertiser("") .setOspfMetricType(OspfMetricType.E2); OspfExternalRoute r1 = b.build(); OspfExternalRoute r1DiffObj = b.build(); OspfExternalRoute r2 = b.setCostToAdvertiser(2).build(); OspfExternalRoute r2t1 = b.setOspfMetricType(OspfMetricType.E1).build(); new EqualsTester() .addEqualityGroup(r1, r1DiffObj) .addEqualityGroup(r2) .addEqualityGroup(r2t1) .testEquals(); } }
return false; if (getOspfMetricType() != other.getOspfMetricType()) { return false;
continue; // no need to export if (outputRoute.getOspfMetricType() == OspfMetricType.E1) { d1.from(_ospfExternalType1Rib.mergeRouteGetDelta((OspfExternalType1Route) outputRoute)); } else { // assuming here that MetricType exists. Or E2 is the default