Pushes flow rules to the control switch when the switch is connected and available.
Change-Id: I7cc03a44e21b9dd67d40139ceea7a9b44201d7a8
diff --git a/apps/bgprouter/src/main/java/org/onosproject/bgprouter/TunnellingConnectivityManager.java b/apps/bgprouter/src/main/java/org/onosproject/bgprouter/TunnellingConnectivityManager.java
index 7d8ca7c..39b248c 100644
--- a/apps/bgprouter/src/main/java/org/onosproject/bgprouter/TunnellingConnectivityManager.java
+++ b/apps/bgprouter/src/main/java/org/onosproject/bgprouter/TunnellingConnectivityManager.java
@@ -81,6 +81,23 @@
this.bgpSpeaker = bgpSpeaker;
+ }
+
+ public void start() {
+ packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 3);
+ }
+
+ public void stop() {
+ packetService.removeProcessor(processor);
+ // Should revoke packet requests in the future
+ }
+
+ /**
+ * Pushes the flow rules for forwarding BGP TCP packets to controller.
+ * It is called when switches are connected and available.
+ */
+ public void notifySwitchAvailable() {
+ // control plane OVS is available, push default flows
TrafficSelector selectorDst = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
.matchIPProtocol(IPv4.PROTOCOL_TCP)
@@ -105,7 +122,7 @@
.withFlag(ForwardingObjective.Flag.VERSATILE)
.add();
flowObjectiveService.forward(bgpSpeaker.connectPoint().deviceId(),
- puntSrc);
+ puntSrc);
ForwardingObjective puntDst = DefaultForwardingObjective.builder()
.fromApp(appId)
@@ -115,18 +132,8 @@
.withFlag(ForwardingObjective.Flag.VERSATILE)
.add();
flowObjectiveService.forward(bgpSpeaker.connectPoint().deviceId(),
- puntDst);
+ puntDst);
log.info("Sent punt forwarding objective to {}", bgpSpeaker.connectPoint().deviceId());
-
- }
-
- public void start() {
- packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 3);
- }
-
- public void stop() {
- packetService.removeProcessor(processor);
- // Should revoke packet requests in the future
}
/**