Saurav Das

Removing dependency on lower level drivers for the BGPRouter application.

Also a couple of bug fixes

Change-Id: I8f2ec58ed3403ae03cf7c068dabb30ae4272ff85
...@@ -252,10 +252,8 @@ public class BgpRouter { ...@@ -252,10 +252,8 @@ public class BgpRouter {
252 252
253 flowObjectiveService.forward(deviceId, 253 flowObjectiveService.forward(deviceId,
254 generateRibFlowRule(fibEntry.prefix(), nextId).add()); 254 generateRibFlowRule(fibEntry.prefix(), nextId).add());
255 - 255 + log.trace("Sending flow forwarding objective {}->{}", fibEntry, nextId);
256 -
257 } 256 }
258 - log.info("Sending flow forwarding objective");
259 257
260 } 258 }
261 259
...@@ -325,8 +323,10 @@ public class BgpRouter { ...@@ -325,8 +323,10 @@ public class BgpRouter {
325 .setOutput(egressIntf.connectPoint().port()) 323 .setOutput(egressIntf.connectPoint().port())
326 .build(); 324 .build();
327 325
326 + int nextId = flowObjectiveService.allocateNextId();
327 +
328 NextObjective nextObjective = DefaultNextObjective.builder() 328 NextObjective nextObjective = DefaultNextObjective.builder()
329 - .withId(entry.hashCode()) 329 + .withId(nextId)
330 .addTreatment(treatment) 330 .addTreatment(treatment)
331 .withType(NextObjective.Type.SIMPLE) 331 .withType(NextObjective.Type.SIMPLE)
332 .fromApp(appId) 332 .fromApp(appId)
...@@ -348,7 +348,7 @@ public class BgpRouter { ...@@ -348,7 +348,7 @@ public class BgpRouter {
348 groupService.addGroup(groupDescription); 348 groupService.addGroup(groupDescription);
349 */ 349 */
350 350
351 - nextHops.put(nextHop.ip(), flowObjectiveService.allocateNextId()); 351 + nextHops.put(nextHop.ip(), nextId);
352 352
353 } 353 }
354 354
......
...@@ -365,7 +365,7 @@ public class DefaultFlowRule implements FlowRule { ...@@ -365,7 +365,7 @@ public class DefaultFlowRule implements FlowRule {
365 "a timeout or be permanent"); 365 "a timeout or be permanent");
366 checkNotNull(deviceId != null, "Must refer to a device"); 366 checkNotNull(deviceId != null, "Must refer to a device");
367 checkNotNull(priority != null, "Priority cannot be null"); 367 checkNotNull(priority != null, "Priority cannot be null");
368 - checkArgument(priority < MIN_PRIORITY, "Priority cannot be less than " + 368 + checkArgument(priority >= MIN_PRIORITY, "Priority cannot be less than " +
369 MIN_PRIORITY); 369 MIN_PRIORITY);
370 370
371 return new DefaultFlowRule(deviceId, selector, treatment, priority, 371 return new DefaultFlowRule(deviceId, selector, treatment, priority,
......
...@@ -178,7 +178,7 @@ public class FlowObjectiveManager implements FlowObjectiveService { ...@@ -178,7 +178,7 @@ public class FlowObjectiveManager implements FlowObjectiveService {
178 private boolean queueObjective(DeviceId deviceId, ForwardingObjective fwd) { 178 private boolean queueObjective(DeviceId deviceId, ForwardingObjective fwd) {
179 if (fwd.nextId() != null && 179 if (fwd.nextId() != null &&
180 flowObjectiveStore.getNextGroup(fwd.nextId()) == null) { 180 flowObjectiveStore.getNextGroup(fwd.nextId()) == null) {
181 - log.warn("Queuing forwarding objective."); 181 + log.trace("Queuing forwarding objective for nextId {}", fwd.nextId());
182 if (pendingForwards.putIfAbsent(fwd.nextId(), 182 if (pendingForwards.putIfAbsent(fwd.nextId(),
183 Sets.newHashSet(new PendingNext(deviceId, fwd))) != null) { 183 Sets.newHashSet(new PendingNext(deviceId, fwd))) != null) {
184 Set<PendingNext> pending = pendingForwards.get(fwd.nextId()); 184 Set<PendingNext> pending = pendingForwards.get(fwd.nextId());
...@@ -226,10 +226,11 @@ public class FlowObjectiveManager implements FlowObjectiveService { ...@@ -226,10 +226,11 @@ public class FlowObjectiveManager implements FlowObjectiveService {
226 } 226 }
227 227
228 // Always (re)initialize the pipeline behaviour 228 // Always (re)initialize the pipeline behaviour
229 + log.info("Driver {} bound to device {} ... initializing driver",
230 + handler.driver().name(), deviceId);
229 Pipeliner pipeliner = handler.behaviour(Pipeliner.class); 231 Pipeliner pipeliner = handler.behaviour(Pipeliner.class);
230 pipeliner.init(deviceId, context); 232 pipeliner.init(deviceId, context);
231 pipeliners.putIfAbsent(deviceId, pipeliner); 233 pipeliners.putIfAbsent(deviceId, pipeliner);
232 - log.info("Driver {} bound to device {}", handler.driver().name(), deviceId);
233 } 234 }
234 } 235 }
235 236
...@@ -241,6 +242,7 @@ public class FlowObjectiveManager implements FlowObjectiveService { ...@@ -241,6 +242,7 @@ public class FlowObjectiveManager implements FlowObjectiveService {
241 case MASTER_CHANGED: 242 case MASTER_CHANGED:
242 if (event.roleInfo().master() != null) { 243 if (event.roleInfo().master() != null) {
243 setupPipelineHandler(event.subject()); 244 setupPipelineHandler(event.subject());
245 + log.info("mastership changed on device {}", event.subject());
244 } 246 }
245 break; 247 break;
246 case BACKUPS_CHANGED: 248 case BACKUPS_CHANGED:
...@@ -258,7 +260,10 @@ public class FlowObjectiveManager implements FlowObjectiveService { ...@@ -258,7 +260,10 @@ public class FlowObjectiveManager implements FlowObjectiveService {
258 switch (event.type()) { 260 switch (event.type()) {
259 case DEVICE_ADDED: 261 case DEVICE_ADDED:
260 case DEVICE_AVAILABILITY_CHANGED: 262 case DEVICE_AVAILABILITY_CHANGED:
263 + log.info("Device either added or availability changed {}",
264 + event.subject().id());
261 if (deviceService.isAvailable(event.subject().id())) { 265 if (deviceService.isAvailable(event.subject().id())) {
266 + log.info("Device is now available {}", event.subject().id());
262 setupPipelineHandler(event.subject().id()); 267 setupPipelineHandler(event.subject().id());
263 processPendingObjectives(event.subject().id()); 268 processPendingObjectives(event.subject().id());
264 } 269 }
...@@ -281,6 +286,8 @@ public class FlowObjectiveManager implements FlowObjectiveService { ...@@ -281,6 +286,8 @@ public class FlowObjectiveManager implements FlowObjectiveService {
281 } 286 }
282 287
283 private void processPendingObjectives(DeviceId deviceId) { 288 private void processPendingObjectives(DeviceId deviceId) {
289 + log.debug("Processing pending objectives for device {}", deviceId);
290 +
284 pendingObjectives.getOrDefault(deviceId, 291 pendingObjectives.getOrDefault(deviceId,
285 Collections.emptySet()).forEach(obj -> { 292 Collections.emptySet()).forEach(obj -> {
286 if (obj instanceof NextObjective) { 293 if (obj instanceof NextObjective) {
...@@ -313,13 +320,15 @@ public class FlowObjectiveManager implements FlowObjectiveService { ...@@ -313,13 +320,15 @@ public class FlowObjectiveManager implements FlowObjectiveService {
313 private class InternalStoreDelegate implements FlowObjectiveStoreDelegate { 320 private class InternalStoreDelegate implements FlowObjectiveStoreDelegate {
314 @Override 321 @Override
315 public void notify(ObjectiveEvent event) { 322 public void notify(ObjectiveEvent event) {
323 + log.debug("Received notification of obj event {}", event);
316 Set<PendingNext> pending = pendingForwards.remove(event.subject()); 324 Set<PendingNext> pending = pendingForwards.remove(event.subject());
317 325
318 if (pending == null) { 326 if (pending == null) {
327 + log.debug("Nothing pending for this obj event");
319 return; 328 return;
320 } 329 }
321 330
322 - log.info("Processing pending objectives {}", pending.size()); 331 + log.debug("Processing pending forwarding objectives {}", pending.size());
323 332
324 pending.forEach(p -> getDevicePipeliner(p.deviceId()) 333 pending.forEach(p -> getDevicePipeliner(p.deviceId())
325 .forward(p.forwardingObjective())); 334 .forward(p.forwardingObjective()));
......
...@@ -79,7 +79,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -79,7 +79,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
79 79
80 80
81 81
82 - protected static final int FIRST_TABLE = 0; 82 + protected static final int MAC_TABLE = 0;
83 protected static final int VLAN_MPLS_TABLE = 1; 83 protected static final int VLAN_MPLS_TABLE = 1;
84 protected static final int VLAN_TABLE = 2; 84 protected static final int VLAN_TABLE = 2;
85 //protected static final int MPLS_TABLE = 3; 85 //protected static final int MPLS_TABLE = 3;
...@@ -329,7 +329,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -329,7 +329,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
329 .withPriority(CONTROLLER_PRIORITY) 329 .withPriority(CONTROLLER_PRIORITY)
330 .fromApp(applicationId) 330 .fromApp(applicationId)
331 .makePermanent() 331 .makePermanent()
332 - .forTable(FIRST_TABLE).build(); 332 + .forTable(MAC_TABLE).build();
333 ops = install ? ops.add(rule) : ops.remove(rule); 333 ops = install ? ops.add(rule) : ops.remove(rule);
334 } else if (c.type() == Criterion.Type.VLAN_VID) { 334 } else if (c.type() == Criterion.Type.VLAN_VID) {
335 Criteria.VlanIdCriterion v = (Criteria.VlanIdCriterion) c; 335 Criteria.VlanIdCriterion v = (Criteria.VlanIdCriterion) c;
...@@ -378,13 +378,13 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -378,13 +378,13 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
378 @Override 378 @Override
379 public void onSuccess(FlowRuleOperations ops) { 379 public void onSuccess(FlowRuleOperations ops) {
380 pass(filt); 380 pass(filt);
381 - log.info("Provisioned default table for bgp router"); 381 + log.info("Applied filtering rules");
382 } 382 }
383 383
384 @Override 384 @Override
385 public void onError(FlowRuleOperations ops) { 385 public void onError(FlowRuleOperations ops) {
386 fail(filt, ObjectiveError.FLOWINSTALLATIONFAILED); 386 fail(filt, ObjectiveError.FLOWINSTALLATIONFAILED);
387 - log.info("Failed to provision default table for bgp router"); 387 + log.info("Failed to apply filtering rules");
388 } 388 }
389 })); 389 }));
390 } 390 }
...@@ -402,16 +402,16 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -402,16 +402,16 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
402 } 402 }
403 403
404 private void pushDefaultRules() { 404 private void pushDefaultRules() {
405 - processTableZero(true); 405 + processMacTable(true);
406 - processTableOne(true); 406 + processVlanMplsTable(true);
407 - processTableTwo(true); 407 + processVlanTable(true);
408 - processTableFour(true); 408 + processEtherTable(true);
409 - processTableFive(true); 409 + processCosTable(true);
410 - processTableSix(true); 410 + processFibTable(true);
411 - processTableNine(true); 411 + processLocalTable(true);
412 } 412 }
413 413
414 - private void processTableZero(boolean install) { 414 + private void processMacTable(boolean install) {
415 TrafficSelector.Builder selector; 415 TrafficSelector.Builder selector;
416 TrafficTreatment.Builder treatment; 416 TrafficTreatment.Builder treatment;
417 417
...@@ -429,7 +429,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -429,7 +429,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
429 .withPriority(CONTROLLER_PRIORITY) 429 .withPriority(CONTROLLER_PRIORITY)
430 .fromApp(appId) 430 .fromApp(appId)
431 .makePermanent() 431 .makePermanent()
432 - .forTable(FIRST_TABLE).build(); 432 + .forTable(MAC_TABLE).build();
433 433
434 434
435 FlowRuleOperations.Builder ops = FlowRuleOperations.builder(); 435 FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
...@@ -450,7 +450,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -450,7 +450,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
450 .withPriority(DROP_PRIORITY) 450 .withPriority(DROP_PRIORITY)
451 .fromApp(appId) 451 .fromApp(appId)
452 .makePermanent() 452 .makePermanent()
453 - .forTable(FIRST_TABLE).build(); 453 + .forTable(MAC_TABLE).build();
454 454
455 455
456 ops = install ? ops.add(rule) : ops.remove(rule); 456 ops = install ? ops.add(rule) : ops.remove(rule);
...@@ -458,18 +458,18 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -458,18 +458,18 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
458 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 458 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
459 @Override 459 @Override
460 public void onSuccess(FlowRuleOperations ops) { 460 public void onSuccess(FlowRuleOperations ops) {
461 - log.info("Provisioned default table for bgp router"); 461 + log.info("Provisioned mac table");
462 } 462 }
463 463
464 @Override 464 @Override
465 public void onError(FlowRuleOperations ops) { 465 public void onError(FlowRuleOperations ops) {
466 - log.info("Failed to provision default table for bgp router"); 466 + log.info("Failed to provision mac table");
467 } 467 }
468 })); 468 }));
469 469
470 } 470 }
471 471
472 - private void processTableOne(boolean install) { 472 + private void processVlanMplsTable(boolean install) {
473 TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); 473 TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
474 TrafficTreatment.Builder treatment = DefaultTrafficTreatment 474 TrafficTreatment.Builder treatment = DefaultTrafficTreatment
475 .builder(); 475 .builder();
...@@ -494,19 +494,19 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -494,19 +494,19 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
494 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 494 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
495 @Override 495 @Override
496 public void onSuccess(FlowRuleOperations ops) { 496 public void onSuccess(FlowRuleOperations ops) {
497 - log.info("Provisioned vlan/mpls table for bgp router"); 497 + log.info("Provisioned vlan/mpls table");
498 } 498 }
499 499
500 @Override 500 @Override
501 public void onError(FlowRuleOperations ops) { 501 public void onError(FlowRuleOperations ops) {
502 log.info( 502 log.info(
503 - "Failed to provision vlan/mpls table for bgp router"); 503 + "Failed to provision vlan/mpls table");
504 } 504 }
505 })); 505 }));
506 506
507 } 507 }
508 508
509 - private void processTableTwo(boolean install) { 509 + private void processVlanTable(boolean install) {
510 TrafficSelector.Builder selector; 510 TrafficSelector.Builder selector;
511 TrafficTreatment.Builder treatment; 511 TrafficTreatment.Builder treatment;
512 FlowRuleOperations.Builder ops = FlowRuleOperations.builder(); 512 FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
...@@ -533,17 +533,17 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -533,17 +533,17 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
533 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 533 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
534 @Override 534 @Override
535 public void onSuccess(FlowRuleOperations ops) { 535 public void onSuccess(FlowRuleOperations ops) {
536 - log.info("Provisioned vlan table for bgp router"); 536 + log.info("Provisioned vlan table");
537 } 537 }
538 538
539 @Override 539 @Override
540 public void onError(FlowRuleOperations ops) { 540 public void onError(FlowRuleOperations ops) {
541 - log.info("Failed to provision vlan table for bgp router"); 541 + log.info("Failed to provision vlan table");
542 } 542 }
543 })); 543 }));
544 } 544 }
545 545
546 - private void processTableFour(boolean install) { 546 + private void processEtherTable(boolean install) {
547 TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); 547 TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
548 TrafficTreatment.Builder treatment = DefaultTrafficTreatment 548 TrafficTreatment.Builder treatment = DefaultTrafficTreatment
549 .builder(); 549 .builder();
...@@ -602,18 +602,18 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -602,18 +602,18 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
602 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 602 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
603 @Override 603 @Override
604 public void onSuccess(FlowRuleOperations ops) { 604 public void onSuccess(FlowRuleOperations ops) {
605 - log.info("Provisioned ether table for bgp router"); 605 + log.info("Provisioned ether table");
606 } 606 }
607 607
608 @Override 608 @Override
609 public void onError(FlowRuleOperations ops) { 609 public void onError(FlowRuleOperations ops) {
610 - log.info("Failed to provision ether table for bgp router"); 610 + log.info("Failed to provision ether table");
611 } 611 }
612 })); 612 }));
613 613
614 } 614 }
615 615
616 - private void processTableFive(boolean install) { 616 + private void processCosTable(boolean install) {
617 TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); 617 TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
618 TrafficTreatment.Builder treatment = DefaultTrafficTreatment 618 TrafficTreatment.Builder treatment = DefaultTrafficTreatment
619 .builder(); 619 .builder();
...@@ -636,18 +636,18 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -636,18 +636,18 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
636 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 636 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
637 @Override 637 @Override
638 public void onSuccess(FlowRuleOperations ops) { 638 public void onSuccess(FlowRuleOperations ops) {
639 - log.info("Provisioned cos table for bgp router"); 639 + log.info("Provisioned cos table");
640 } 640 }
641 641
642 @Override 642 @Override
643 public void onError(FlowRuleOperations ops) { 643 public void onError(FlowRuleOperations ops) {
644 - log.info("Failed to provision cos table for bgp router"); 644 + log.info("Failed to provision cos table");
645 } 645 }
646 })); 646 }));
647 647
648 } 648 }
649 649
650 - private void processTableSix(boolean install) { 650 + private void processFibTable(boolean install) {
651 TrafficSelector.Builder selector; 651 TrafficSelector.Builder selector;
652 TrafficTreatment.Builder treatment; 652 TrafficTreatment.Builder treatment;
653 FlowRuleOperations.Builder ops = FlowRuleOperations.builder(); 653 FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
...@@ -673,17 +673,17 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -673,17 +673,17 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
673 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 673 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
674 @Override 674 @Override
675 public void onSuccess(FlowRuleOperations ops) { 675 public void onSuccess(FlowRuleOperations ops) {
676 - log.info("Provisioned FIB table for bgp router"); 676 + log.info("Provisioned FIB table");
677 } 677 }
678 678
679 @Override 679 @Override
680 public void onError(FlowRuleOperations ops) { 680 public void onError(FlowRuleOperations ops) {
681 - log.info("Failed to provision FIB table for bgp router"); 681 + log.info("Failed to provision FIB table");
682 } 682 }
683 })); 683 }));
684 } 684 }
685 685
686 - private void processTableNine(boolean install) { 686 + private void processLocalTable(boolean install) {
687 TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); 687 TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
688 TrafficTreatment.Builder treatment = DefaultTrafficTreatment 688 TrafficTreatment.Builder treatment = DefaultTrafficTreatment
689 .builder(); 689 .builder();
...@@ -706,12 +706,12 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -706,12 +706,12 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
706 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { 706 flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
707 @Override 707 @Override
708 public void onSuccess(FlowRuleOperations ops) { 708 public void onSuccess(FlowRuleOperations ops) {
709 - log.info("Provisioned Local table for bgp router"); 709 + log.info("Provisioned Local table");
710 } 710 }
711 711
712 @Override 712 @Override
713 public void onError(FlowRuleOperations ops) { 713 public void onError(FlowRuleOperations ops) {
714 - log.info("Failed to provision Local table for bgp router"); 714 + log.info("Failed to provision Local table");
715 } 715 }
716 })); 716 }));
717 } 717 }
...@@ -748,6 +748,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli ...@@ -748,6 +748,7 @@ public class OVSCorsaPipeline extends AbstractHandlerBehaviour implements Pipeli
748 } 748 }
749 pass(obj); 749 pass(obj);
750 pendingGroups.invalidate(key); 750 pendingGroups.invalidate(key);
751 + log.info("Heard back from group service for group {}", obj.id());
751 flowObjectiveStore.putNextGroup(obj.id(), new CorsaGroup(key)); 752 flowObjectiveStore.putNextGroup(obj.id(), new CorsaGroup(key));
752 }); 753 });
753 } 754 }
......
...@@ -38,7 +38,7 @@ import org.projectfloodlight.openflow.types.OFGroup; ...@@ -38,7 +38,7 @@ import org.projectfloodlight.openflow.types.OFGroup;
38 import org.projectfloodlight.openflow.types.OFVlanVidMatch; 38 import org.projectfloodlight.openflow.types.OFVlanVidMatch;
39 import org.projectfloodlight.openflow.types.TableId; 39 import org.projectfloodlight.openflow.types.TableId;
40 40
41 -import java.util.ArrayList; 41 +//import java.util.ArrayList;
42 import java.util.Collections; 42 import java.util.Collections;
43 import java.util.List; 43 import java.util.List;
44 import java.util.concurrent.atomic.AtomicBoolean; 44 import java.util.concurrent.atomic.AtomicBoolean;
...@@ -79,7 +79,7 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { ...@@ -79,7 +79,7 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch {
79 */ 79 */
80 @Override 80 @Override
81 public void write(OFMessage msg) { 81 public void write(OFMessage msg) {
82 - if (msg.getType() == OFType.FLOW_MOD) { 82 +/* if (msg.getType() == OFType.FLOW_MOD) {
83 OFFlowMod flowMod = (OFFlowMod) msg; 83 OFFlowMod flowMod = (OFFlowMod) msg;
84 OFFlowMod.Builder builder = flowMod.createBuilder(); 84 OFFlowMod.Builder builder = flowMod.createBuilder();
85 builder.setTableId(TableId.of(LOCAL_TABLE)); 85 builder.setTableId(TableId.of(LOCAL_TABLE));
...@@ -87,11 +87,13 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { ...@@ -87,11 +87,13 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch {
87 } else { 87 } else {
88 channel.write(Collections.singletonList(msg)); 88 channel.write(Collections.singletonList(msg));
89 } 89 }
90 +*/
91 + channel.write(Collections.singletonList(msg));
90 } 92 }
91 93
92 @Override 94 @Override
93 public void write(List<OFMessage> msgs) { 95 public void write(List<OFMessage> msgs) {
94 - List<OFMessage> newMsgs = new ArrayList<OFMessage>(); 96 +/* List<OFMessage> newMsgs = new ArrayList<OFMessage>();
95 for (OFMessage msg : msgs) { 97 for (OFMessage msg : msgs) {
96 if (msg.getType() == OFType.FLOW_MOD) { 98 if (msg.getType() == OFType.FLOW_MOD) {
97 OFFlowMod flowMod = (OFFlowMod) msg; 99 OFFlowMod flowMod = (OFFlowMod) msg;
...@@ -103,6 +105,8 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { ...@@ -103,6 +105,8 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch {
103 } 105 }
104 } 106 }
105 channel.write(newMsgs); 107 channel.write(newMsgs);
108 +*/
109 + channel.write(msgs);
106 } 110 }
107 111
108 @Override 112 @Override
......
...@@ -15,18 +15,18 @@ ...@@ -15,18 +15,18 @@
15 */ 15 */
16 package org.onosproject.openflow.drivers; 16 package org.onosproject.openflow.drivers;
17 17
18 -import com.google.common.collect.Lists;
19 import org.onosproject.openflow.controller.Dpid; 18 import org.onosproject.openflow.controller.Dpid;
20 import org.projectfloodlight.openflow.protocol.OFDescStatsReply; 19 import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
21 -import org.projectfloodlight.openflow.protocol.OFFlowMod;
22 import org.projectfloodlight.openflow.protocol.OFMessage; 20 import org.projectfloodlight.openflow.protocol.OFMessage;
21 +/*import com.google.common.collect.Lists;
22 +import org.projectfloodlight.openflow.protocol.OFFlowMod;
23 import org.projectfloodlight.openflow.protocol.OFType; 23 import org.projectfloodlight.openflow.protocol.OFType;
24 import org.projectfloodlight.openflow.protocol.instruction.OFInstruction; 24 import org.projectfloodlight.openflow.protocol.instruction.OFInstruction;
25 import org.projectfloodlight.openflow.protocol.instruction.OFInstructionGotoTable; 25 import org.projectfloodlight.openflow.protocol.instruction.OFInstructionGotoTable;
26 import org.projectfloodlight.openflow.types.TableId; 26 import org.projectfloodlight.openflow.types.TableId;
27 -
28 -import java.util.Collections;
29 import java.util.List; 27 import java.util.List;
28 +*/
29 +import java.util.Collections;
30 30
31 public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver { 31 public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver {
32 32
...@@ -36,7 +36,7 @@ public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver { ...@@ -36,7 +36,7 @@ public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver {
36 36
37 @Override 37 @Override
38 public void transformAndSendMsg(OFMessage msg, TableType type) { 38 public void transformAndSendMsg(OFMessage msg, TableType type) {
39 - log.trace("Trying to send {} of TableType {}", msg, type); 39 + /*log.trace("Trying to send {} of TableType {}", msg, type);
40 if (msg.getType() == OFType.FLOW_MOD) { 40 if (msg.getType() == OFType.FLOW_MOD) {
41 OFFlowMod flowMod = (OFFlowMod) msg; 41 OFFlowMod flowMod = (OFFlowMod) msg;
42 OFFlowMod.Builder builder = flowMod.createBuilder(); 42 OFFlowMod.Builder builder = flowMod.createBuilder();
...@@ -84,10 +84,10 @@ public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver { ...@@ -84,10 +84,10 @@ public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver {
84 break; 84 break;
85 case NONE: 85 case NONE:
86 log.error("Should never have to go to Table 0"); 86 log.error("Should never have to go to Table 0");
87 - /*newInstructions.add( 87 + newInstructions.add(
88 gotoTable.createBuilder() 88 gotoTable.createBuilder()
89 .setTableId(TableId.of(0)).build()); 89 .setTableId(TableId.of(0)).build());
90 - */ 90 +
91 break; 91 break;
92 default: 92 default:
93 log.warn("Unknown table type: {}", tid); 93 log.warn("Unknown table type: {}", tid);
...@@ -134,6 +134,7 @@ public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver { ...@@ -134,6 +134,7 @@ public class OFOVSSwitchCorsaTTP extends OFCorsaSwitchDriver {
134 134
135 } else { 135 } else {
136 channel.write(Collections.singletonList(msg)); 136 channel.write(Collections.singletonList(msg));
137 - } 137 + }*/
138 + channel.write(Collections.singletonList(msg));
138 } 139 }
139 } 140 }
......
...@@ -211,11 +211,12 @@ public class OpenFlowRuleProvider extends AbstractProvider implements FlowRulePr ...@@ -211,11 +211,12 @@ public class OpenFlowRuleProvider extends AbstractProvider implements FlowRulePr
211 fbe.operator(), fbe); 211 fbe.operator(), fbe);
212 continue; 212 continue;
213 } 213 }
214 - if (fbe.target().tableId() == 0) { 214 + /*if (fbe.target().tableId() == 0) {
215 sw.sendMsg(mod); 215 sw.sendMsg(mod);
216 } else { 216 } else {
217 sw.transformAndSendMsg(mod, getTableType(fbe.target().tableId())); 217 sw.transformAndSendMsg(mod, getTableType(fbe.target().tableId()));
218 - } 218 + }*/
219 + sw.sendMsg(mod);
219 } 220 }
220 OFBarrierRequest.Builder builder = sw.factory() 221 OFBarrierRequest.Builder builder = sw.factory()
221 .buildBarrierRequest() 222 .buildBarrierRequest()
......