Jonathan Hart
Committed by Gerrit Code Review

Adapt FIBs to new route interface

Change-Id: I8ac19ad578aac4607fd8319186b6568a21edc1fd
...@@ -89,9 +89,9 @@ public class IntentSynchronizer implements IntentSynchronizationService, ...@@ -89,9 +89,9 @@ public class IntentSynchronizer implements IntentSynchronizationService,
89 89
90 @Activate 90 @Activate
91 public void activate() { 91 public void activate() {
92 - intentsSynchronizerExecutor = createExecutor();
93 this.localNodeId = clusterService.getLocalNode().id(); 92 this.localNodeId = clusterService.getLocalNode().id();
94 this.appId = coreService.registerApplication(APP_NAME); 93 this.appId = coreService.registerApplication(APP_NAME);
94 + intentsSynchronizerExecutor = createExecutor();
95 95
96 leadershipService.addListener(leadershipEventListener); 96 leadershipService.addListener(leadershipEventListener);
97 leadershipService.runForLeadership(appId.name()); 97 leadershipService.runForLeadership(appId.name());
......
...@@ -17,9 +17,7 @@ ...@@ -17,9 +17,7 @@
17 package org.onosproject.routing.impl; 17 package org.onosproject.routing.impl;
18 18
19 import com.google.common.collect.ConcurrentHashMultiset; 19 import com.google.common.collect.ConcurrentHashMultiset;
20 -import com.google.common.collect.HashMultimap;
21 import com.google.common.collect.Maps; 20 import com.google.common.collect.Maps;
22 -import com.google.common.collect.Multimap;
23 import com.google.common.collect.Multiset; 21 import com.google.common.collect.Multiset;
24 import org.apache.felix.scr.annotations.Activate; 22 import org.apache.felix.scr.annotations.Activate;
25 import org.apache.felix.scr.annotations.Component; 23 import org.apache.felix.scr.annotations.Component;
...@@ -40,6 +38,10 @@ import org.onosproject.incubator.net.intf.Interface; ...@@ -40,6 +38,10 @@ import org.onosproject.incubator.net.intf.Interface;
40 import org.onosproject.incubator.net.intf.InterfaceEvent; 38 import org.onosproject.incubator.net.intf.InterfaceEvent;
41 import org.onosproject.incubator.net.intf.InterfaceListener; 39 import org.onosproject.incubator.net.intf.InterfaceListener;
42 import org.onosproject.incubator.net.intf.InterfaceService; 40 import org.onosproject.incubator.net.intf.InterfaceService;
41 +import org.onosproject.incubator.net.routing.ResolvedRoute;
42 +import org.onosproject.incubator.net.routing.RouteEvent;
43 +import org.onosproject.incubator.net.routing.RouteListener;
44 +import org.onosproject.incubator.net.routing.RouteService;
43 import org.onosproject.net.ConnectPoint; 45 import org.onosproject.net.ConnectPoint;
44 import org.onosproject.net.DeviceId; 46 import org.onosproject.net.DeviceId;
45 import org.onosproject.net.config.NetworkConfigEvent; 47 import org.onosproject.net.config.NetworkConfigEvent;
...@@ -56,24 +58,19 @@ import org.onosproject.net.flow.criteria.Criteria; ...@@ -56,24 +58,19 @@ import org.onosproject.net.flow.criteria.Criteria;
56 import org.onosproject.net.flowobjective.DefaultFilteringObjective; 58 import org.onosproject.net.flowobjective.DefaultFilteringObjective;
57 import org.onosproject.net.flowobjective.DefaultForwardingObjective; 59 import org.onosproject.net.flowobjective.DefaultForwardingObjective;
58 import org.onosproject.net.flowobjective.DefaultNextObjective; 60 import org.onosproject.net.flowobjective.DefaultNextObjective;
61 +import org.onosproject.net.flowobjective.DefaultObjectiveContext;
59 import org.onosproject.net.flowobjective.FilteringObjective; 62 import org.onosproject.net.flowobjective.FilteringObjective;
60 import org.onosproject.net.flowobjective.FlowObjectiveService; 63 import org.onosproject.net.flowobjective.FlowObjectiveService;
61 import org.onosproject.net.flowobjective.ForwardingObjective; 64 import org.onosproject.net.flowobjective.ForwardingObjective;
62 import org.onosproject.net.flowobjective.NextObjective; 65 import org.onosproject.net.flowobjective.NextObjective;
63 import org.onosproject.net.flowobjective.ObjectiveContext; 66 import org.onosproject.net.flowobjective.ObjectiveContext;
64 -import org.onosproject.net.flowobjective.DefaultObjectiveContext;
65 -import org.onosproject.routing.FibEntry;
66 -import org.onosproject.routing.FibListener;
67 -import org.onosproject.routing.FibUpdate;
68 import org.onosproject.routing.RoutingService; 67 import org.onosproject.routing.RoutingService;
69 import org.onosproject.routing.config.RouterConfig; 68 import org.onosproject.routing.config.RouterConfig;
70 import org.osgi.service.component.ComponentContext; 69 import org.osgi.service.component.ComponentContext;
71 import org.slf4j.Logger; 70 import org.slf4j.Logger;
72 import org.slf4j.LoggerFactory; 71 import org.slf4j.LoggerFactory;
73 72
74 -import java.util.Collection;
75 import java.util.Dictionary; 73 import java.util.Dictionary;
76 -import java.util.HashMap;
77 import java.util.List; 74 import java.util.List;
78 import java.util.Map; 75 import java.util.Map;
79 import java.util.Set; 76 import java.util.Set;
...@@ -96,7 +93,7 @@ public class SingleSwitchFibInstaller { ...@@ -96,7 +93,7 @@ public class SingleSwitchFibInstaller {
96 protected CoreService coreService; 93 protected CoreService coreService;
97 94
98 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 95 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
99 - protected RoutingService routingService; 96 + protected RouteService routeService;
100 97
101 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 98 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
102 protected InterfaceService interfaceService; 99 protected InterfaceService interfaceService;
...@@ -137,11 +134,9 @@ public class SingleSwitchFibInstaller { ...@@ -137,11 +134,9 @@ public class SingleSwitchFibInstaller {
137 // Mapping from next hop IP to next hop object containing group info 134 // Mapping from next hop IP to next hop object containing group info
138 private final Map<IpAddress, Integer> nextHops = Maps.newHashMap(); 135 private final Map<IpAddress, Integer> nextHops = Maps.newHashMap();
139 136
140 - // Stores FIB updates that are waiting for groups to be set up
141 - private final Multimap<NextHopGroupKey, FibEntry> pendingUpdates = HashMultimap.create();
142 -
143 //interface object for event 137 //interface object for event
144 private InternalInterfaceListener internalInterfaceList = new InternalInterfaceListener(); 138 private InternalInterfaceListener internalInterfaceList = new InternalInterfaceListener();
139 + private InternalRouteListener routeListener = new InternalRouteListener();
145 140
146 @Activate 141 @Activate
147 protected void activate(ComponentContext context) { 142 protected void activate(ComponentContext context) {
...@@ -155,9 +150,6 @@ public class SingleSwitchFibInstaller { ...@@ -155,9 +150,6 @@ public class SingleSwitchFibInstaller {
155 150
156 interfaceService.addListener(internalInterfaceList); 151 interfaceService.addListener(internalInterfaceList);
157 152
158 - routingService.addFibListener(new InternalFibListener());
159 - routingService.start();
160 -
161 updateConfig(); 153 updateConfig();
162 154
163 log.info("Started"); 155 log.info("Started");
...@@ -165,10 +157,8 @@ public class SingleSwitchFibInstaller { ...@@ -165,10 +157,8 @@ public class SingleSwitchFibInstaller {
165 157
166 @Deactivate 158 @Deactivate
167 protected void deactivate() { 159 protected void deactivate() {
168 - routingService.stop(); 160 + routeService.removeListener(routeListener);
169 -
170 deviceService.removeListener(deviceListener); 161 deviceService.removeListener(deviceListener);
171 -
172 interfaceService.removeListener(internalInterfaceList); 162 interfaceService.removeListener(internalInterfaceList);
173 163
174 //processIntfFilters(false, configService.getInterfaces()); //TODO necessary? 164 //processIntfFilters(false, configService.getInterfaces()); //TODO necessary?
...@@ -208,6 +198,8 @@ public class SingleSwitchFibInstaller { ...@@ -208,6 +198,8 @@ public class SingleSwitchFibInstaller {
208 interfaces = routerConfig.getInterfaces(); 198 interfaces = routerConfig.getInterfaces();
209 log.info("Using interfaces: {}", interfaces.isEmpty() ? "all" : interfaces); 199 log.info("Using interfaces: {}", interfaces.isEmpty() ? "all" : interfaces);
210 200
201 + routeService.addListener(routeListener);
202 +
211 updateDevice(); 203 updateDevice();
212 } 204 }
213 205
...@@ -229,55 +221,30 @@ public class SingleSwitchFibInstaller { ...@@ -229,55 +221,30 @@ public class SingleSwitchFibInstaller {
229 } 221 }
230 } 222 }
231 223
232 - private void updateFibEntry(Collection<FibUpdate> updates) { 224 + private void updateRoute(ResolvedRoute route) {
233 - Map<FibEntry, Integer> toInstall = new HashMap<>(updates.size()); 225 + addNextHop(route);
234 -
235 - for (FibUpdate update : updates) {
236 - FibEntry entry = update.entry();
237 -
238 - addNextHop(entry);
239 -
240 - Integer nextId;
241 - synchronized (pendingUpdates) {
242 - nextId = nextHops.get(entry.nextHopIp());
243 - }
244 -
245 - toInstall.put(update.entry(), nextId);
246 - }
247 -
248 - installFlows(toInstall);
249 - }
250 -
251 - private void installFlows(Map<FibEntry, Integer> entriesToInstall) {
252 -
253 - for (Map.Entry<FibEntry, Integer> entry : entriesToInstall.entrySet()) {
254 - FibEntry fibEntry = entry.getKey();
255 - Integer nextId = entry.getValue();
256 226
257 - flowObjectiveService.forward(deviceId, 227 + Integer nextId;
258 - generateRibForwardingObj(fibEntry.prefix(), nextId).add()); 228 + synchronized (this) {
259 - log.trace("Sending forwarding objective {} -> nextId:{}", fibEntry, nextId); 229 + nextId = nextHops.get(route.nextHop());
260 } 230 }
261 231
232 + flowObjectiveService.forward(deviceId,
233 + generateRibForwardingObj(route.prefix(), nextId).add());
234 + log.trace("Sending forwarding objective {} -> nextId:{}", route, nextId);
262 } 235 }
263 236
264 - private synchronized void deleteFibEntry(Collection<FibUpdate> withdraws) { 237 + private synchronized void deleteRoute(ResolvedRoute route) {
265 - 238 + //Integer nextId = nextHops.get(route.nextHop());
266 - for (FibUpdate update : withdraws) {
267 - FibEntry entry = update.entry();
268 - //Integer nextId = nextHops.get(entry.nextHopIp());
269 -
270 - /* Group group = deleteNextHop(entry.prefix());
271 - if (group == null) {
272 - log.warn("Group not found when deleting {}", entry);
273 - return;
274 - }*/
275 -
276 - flowObjectiveService.forward(deviceId,
277 - generateRibForwardingObj(entry.prefix(), null).remove());
278 239
279 - } 240 + /* Group group = deleteNextHop(route.prefix());
241 + if (group == null) {
242 + log.warn("Group not found when deleting {}", route);
243 + return;
244 + }*/
280 245
246 + flowObjectiveService.forward(deviceId,
247 + generateRibForwardingObj(route.prefix(), null).remove());
281 } 248 }
282 249
283 private ForwardingObjective.Builder generateRibForwardingObj(IpPrefix prefix, 250 private ForwardingObjective.Builder generateRibForwardingObj(IpPrefix prefix,
...@@ -306,20 +273,20 @@ public class SingleSwitchFibInstaller { ...@@ -306,20 +273,20 @@ public class SingleSwitchFibInstaller {
306 return fwdBuilder; 273 return fwdBuilder;
307 } 274 }
308 275
309 - private synchronized void addNextHop(FibEntry entry) { 276 + private synchronized void addNextHop(ResolvedRoute route) {
310 - prefixToNextHop.put(entry.prefix(), entry.nextHopIp()); 277 + prefixToNextHop.put(route.prefix(), route.nextHop());
311 - if (nextHopsCount.count(entry.nextHopIp()) == 0) { 278 + if (nextHopsCount.count(route.nextHop()) == 0) {
312 // There was no next hop in the multiset 279 // There was no next hop in the multiset
313 280
314 - Interface egressIntf = interfaceService.getMatchingInterface(entry.nextHopIp()); 281 + Interface egressIntf = interfaceService.getMatchingInterface(route.nextHop());
315 if (egressIntf == null) { 282 if (egressIntf == null) {
316 - log.warn("no egress interface found for {}", entry); 283 + log.warn("no egress interface found for {}", route);
317 return; 284 return;
318 } 285 }
319 286
320 - NextHopGroupKey groupKey = new NextHopGroupKey(entry.nextHopIp()); 287 + NextHopGroupKey groupKey = new NextHopGroupKey(route.nextHop());
321 288
322 - NextHop nextHop = new NextHop(entry.nextHopIp(), entry.nextHopMac(), groupKey); 289 + NextHop nextHop = new NextHop(route.nextHop(), route.nextHopMac(), groupKey);
323 290
324 TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder() 291 TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder()
325 .setEthSrc(egressIntf.mac()) 292 .setEthSrc(egressIntf.mac())
...@@ -356,12 +323,12 @@ public class SingleSwitchFibInstaller { ...@@ -356,12 +323,12 @@ public class SingleSwitchFibInstaller {
356 if (routeToNextHop) { 323 if (routeToNextHop) {
357 // Install route to next hop 324 // Install route to next hop
358 ForwardingObjective fob = 325 ForwardingObjective fob =
359 - generateRibForwardingObj(IpPrefix.valueOf(entry.nextHopIp(), 32), nextId).add(); 326 + generateRibForwardingObj(IpPrefix.valueOf(route.nextHop(), 32), nextId).add();
360 flowObjectiveService.forward(deviceId, fob); 327 flowObjectiveService.forward(deviceId, fob);
361 } 328 }
362 } 329 }
363 330
364 - nextHopsCount.add(entry.nextHopIp()); 331 + nextHopsCount.add(route.nextHop());
365 } 332 }
366 333
367 /*private synchronized Group deleteNextHop(IpPrefix prefix) { 334 /*private synchronized Group deleteNextHop(IpPrefix prefix) {
...@@ -452,13 +419,21 @@ public class SingleSwitchFibInstaller { ...@@ -452,13 +419,21 @@ public class SingleSwitchFibInstaller {
452 flowObjectiveService.filter(deviceId, filter); 419 flowObjectiveService.filter(deviceId, filter);
453 } 420 }
454 421
455 - private class InternalFibListener implements FibListener { 422 + private class InternalRouteListener implements RouteListener {
456 -
457 @Override 423 @Override
458 - public void update(Collection<FibUpdate> updates, 424 + public void event(RouteEvent event) {
459 - Collection<FibUpdate> withdraws) { 425 + ResolvedRoute route = event.subject();
460 - SingleSwitchFibInstaller.this.deleteFibEntry(withdraws); 426 + switch (event.type()) {
461 - SingleSwitchFibInstaller.this.updateFibEntry(updates); 427 + case ROUTE_ADDED:
428 + case ROUTE_UPDATED:
429 + updateRoute(route);
430 + break;
431 + case ROUTE_REMOVED:
432 + deleteRoute(route);
433 + break;
434 + default:
435 + break;
436 + }
462 } 437 }
463 } 438 }
464 439
......
...@@ -73,7 +73,6 @@ public class SdnIp { ...@@ -73,7 +73,6 @@ public class SdnIp {
73 private static List<String> components = new ArrayList<>(); 73 private static List<String> components = new ArrayList<>();
74 static { 74 static {
75 components.add("org.onosproject.routing.bgp.BgpSessionManager"); 75 components.add("org.onosproject.routing.bgp.BgpSessionManager");
76 - components.add("org.onosproject.routing.impl.Router");
77 components.add(org.onosproject.sdnip.SdnIpFib.class.getName()); 76 components.add(org.onosproject.sdnip.SdnIpFib.class.getName());
78 } 77 }
79 78
......
...@@ -34,6 +34,10 @@ import org.onosproject.incubator.net.intf.Interface; ...@@ -34,6 +34,10 @@ import org.onosproject.incubator.net.intf.Interface;
34 import org.onosproject.incubator.net.intf.InterfaceEvent; 34 import org.onosproject.incubator.net.intf.InterfaceEvent;
35 import org.onosproject.incubator.net.intf.InterfaceListener; 35 import org.onosproject.incubator.net.intf.InterfaceListener;
36 import org.onosproject.incubator.net.intf.InterfaceService; 36 import org.onosproject.incubator.net.intf.InterfaceService;
37 +import org.onosproject.incubator.net.routing.ResolvedRoute;
38 +import org.onosproject.incubator.net.routing.RouteEvent;
39 +import org.onosproject.incubator.net.routing.RouteListener;
40 +import org.onosproject.incubator.net.routing.RouteService;
37 import org.onosproject.net.ConnectPoint; 41 import org.onosproject.net.ConnectPoint;
38 import org.onosproject.net.flow.DefaultTrafficSelector; 42 import org.onosproject.net.flow.DefaultTrafficSelector;
39 import org.onosproject.net.flow.DefaultTrafficTreatment; 43 import org.onosproject.net.flow.DefaultTrafficTreatment;
...@@ -43,21 +47,15 @@ import org.onosproject.net.intent.Constraint; ...@@ -43,21 +47,15 @@ import org.onosproject.net.intent.Constraint;
43 import org.onosproject.net.intent.Key; 47 import org.onosproject.net.intent.Key;
44 import org.onosproject.net.intent.MultiPointToSinglePointIntent; 48 import org.onosproject.net.intent.MultiPointToSinglePointIntent;
45 import org.onosproject.net.intent.constraint.PartialFailureConstraint; 49 import org.onosproject.net.intent.constraint.PartialFailureConstraint;
46 -import org.onosproject.routing.FibListener;
47 -import org.onosproject.routing.FibUpdate;
48 import org.onosproject.routing.IntentSynchronizationService; 50 import org.onosproject.routing.IntentSynchronizationService;
49 -import org.onosproject.routing.RoutingService;
50 import org.slf4j.Logger; 51 import org.slf4j.Logger;
51 import org.slf4j.LoggerFactory; 52 import org.slf4j.LoggerFactory;
52 53
53 -import java.util.Collection;
54 import java.util.HashSet; 54 import java.util.HashSet;
55 import java.util.Map; 55 import java.util.Map;
56 import java.util.Set; 56 import java.util.Set;
57 import java.util.concurrent.ConcurrentHashMap; 57 import java.util.concurrent.ConcurrentHashMap;
58 58
59 -import static com.google.common.base.Preconditions.checkArgument;
60 -
61 /** 59 /**
62 * FIB component of SDN-IP. 60 * FIB component of SDN-IP.
63 */ 61 */
...@@ -75,9 +73,9 @@ public class SdnIpFib { ...@@ -75,9 +73,9 @@ public class SdnIpFib {
75 protected CoreService coreService; 73 protected CoreService coreService;
76 74
77 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 75 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
78 - protected RoutingService routingService; 76 + protected RouteService routeService;
79 77
80 - private final InternalFibListener fibListener = new InternalFibListener(); 78 + private final InternalRouteListener routeListener = new InternalRouteListener();
81 private final InternalInterfaceListener interfaceListener = new InternalInterfaceListener(); 79 private final InternalInterfaceListener interfaceListener = new InternalInterfaceListener();
82 80
83 private static final int PRIORITY_OFFSET = 100; 81 private static final int PRIORITY_OFFSET = 100;
...@@ -96,69 +94,41 @@ public class SdnIpFib { ...@@ -96,69 +94,41 @@ public class SdnIpFib {
96 94
97 interfaceService.addListener(interfaceListener); 95 interfaceService.addListener(interfaceListener);
98 96
99 - routingService.addFibListener(fibListener); 97 + routeService.addListener(routeListener);
100 - routingService.start();
101 } 98 }
102 99
103 @Deactivate 100 @Deactivate
104 public void deactivate() { 101 public void deactivate() {
105 interfaceService.removeListener(interfaceListener); 102 interfaceService.removeListener(interfaceListener);
106 - // TODO remove listener 103 + routeService.removeListener(routeListener);
107 - routingService.stop();
108 } 104 }
109 105
110 - private void update(Collection<FibUpdate> updates, Collection<FibUpdate> withdraws) { 106 + private void update(ResolvedRoute route) {
111 - int submitCount = 0, withdrawCount = 0;
112 - //
113 - // NOTE: Semantically, we MUST withdraw existing intents before
114 - // submitting new intents.
115 - //
116 synchronized (this) { 107 synchronized (this) {
117 - MultiPointToSinglePointIntent intent; 108 + IpPrefix prefix = route.prefix();
118 - 109 + MultiPointToSinglePointIntent intent =
119 - // 110 + generateRouteIntent(prefix, route.nextHop(), route.nextHopMac());
120 - // Prepare the Intent batch operations for the intents to withdraw 111 +
121 - // 112 + if (intent == null) {
122 - for (FibUpdate withdraw : withdraws) { 113 + log.debug("SDN-IP no interface found for route {}", route);
123 - checkArgument(withdraw.type() == FibUpdate.Type.DELETE, 114 + return;
124 - "FibUpdate with wrong type in withdraws list");
125 -
126 - IpPrefix prefix = withdraw.entry().prefix();
127 - intent = routeIntents.remove(prefix);
128 - if (intent == null) {
129 - log.trace("SDN-IP No intent in routeIntents to delete " +
130 - "for prefix: {}", prefix);
131 - continue;
132 - }
133 - intentSynchronizer.withdraw(intent);
134 - withdrawCount++;
135 } 115 }
136 116
137 - // 117 + routeIntents.put(prefix, intent);
138 - // Prepare the Intent batch operations for the intents to submit 118 + intentSynchronizer.submit(intent);
139 - // 119 + }
140 - for (FibUpdate update : updates) { 120 + }
141 - checkArgument(update.type() == FibUpdate.Type.UPDATE,
142 - "FibUpdate with wrong type in updates list");
143 -
144 - IpPrefix prefix = update.entry().prefix();
145 - intent = generateRouteIntent(prefix, update.entry().nextHopIp(),
146 - update.entry().nextHopMac());
147 -
148 - if (intent == null) {
149 - // This preserves the old semantics - if an intent can't be
150 - // generated, we don't do anything with that prefix. But
151 - // perhaps we should withdraw the old intent anyway?
152 - continue;
153 - }
154 121
155 - routeIntents.put(prefix, intent); 122 + private void withdraw(ResolvedRoute route) {
156 - intentSynchronizer.submit(intent); 123 + synchronized (this) {
157 - submitCount++; 124 + IpPrefix prefix = route.prefix();
125 + MultiPointToSinglePointIntent intent = routeIntents.remove(prefix);
126 + if (intent == null) {
127 + log.trace("SDN-IP no intent in routeIntents to delete " +
128 + "for prefix: {}", prefix);
129 + return;
158 } 130 }
159 - 131 + intentSynchronizer.withdraw(intent);
160 - log.debug("SDN-IP submitted {}/{}, withdrew = {}/{}", submitCount,
161 - updates.size(), withdrawCount, withdraws.size());
162 } 132 }
163 } 133 }
164 134
...@@ -292,10 +262,20 @@ public class SdnIpFib { ...@@ -292,10 +262,20 @@ public class SdnIpFib {
292 } 262 }
293 } 263 }
294 264
295 - private class InternalFibListener implements FibListener { 265 + private class InternalRouteListener implements RouteListener {
296 @Override 266 @Override
297 - public void update(Collection<FibUpdate> updates, Collection<FibUpdate> withdraws) { 267 + public void event(RouteEvent event) {
298 - SdnIpFib.this.update(updates, withdraws); 268 + switch (event.type()) {
269 + case ROUTE_ADDED:
270 + case ROUTE_UPDATED:
271 + update(event.subject());
272 + break;
273 + case ROUTE_REMOVED:
274 + withdraw(event.subject());
275 + break;
276 + default:
277 + break;
278 + }
299 } 279 }
300 } 280 }
301 281
......
...@@ -49,7 +49,6 @@ public class Vrouter { ...@@ -49,7 +49,6 @@ public class Vrouter {
49 49
50 private final List<String> components = ImmutableList.<String>builder() 50 private final List<String> components = ImmutableList.<String>builder()
51 .add("org.onosproject.routing.fpm.FpmManager") 51 .add("org.onosproject.routing.fpm.FpmManager")
52 - .add("org.onosproject.routing.impl.Router")
53 .add("org.onosproject.routing.impl.SingleSwitchFibInstaller") 52 .add("org.onosproject.routing.impl.SingleSwitchFibInstaller")
54 .add("org.onosproject.routing.impl.ControlPlaneRedirectManager") 53 .add("org.onosproject.routing.impl.ControlPlaneRedirectManager")
55 .build(); 54 .build();
......
...@@ -182,11 +182,6 @@ public class InterfaceIpAddress { ...@@ -182,11 +182,6 @@ public class InterfaceIpAddress {
182 182
183 @Override 183 @Override
184 public String toString() { 184 public String toString() {
185 - /*return toStringHelper(this).add("ipAddress", ipAddress)
186 - .add("subnetAddress", subnetAddress)
187 - .add("broadcastAddress", broadcastAddress)
188 - .add("peerAddress", peerAddress)
189 - .omitNullValues().toString();*/
190 return ipAddress.toString() + "/" + subnetAddress.prefixLength(); 185 return ipAddress.toString() + "/" + subnetAddress.prefixLength();
191 } 186 }
192 } 187 }
......