Flow stats collection optimization - Flag introduced to stop periodic collection and collect only in 3 scenarios (Flows Add/Delete/Mod, Switch Add/Change, Mastership Change)
Change-Id: I1ad143a416f34135a622818c60dbc97310fe905e
diff --git a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitchListener.java b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitchListener.java
index 5ad5a4f..41ec50b 100644
--- a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitchListener.java
+++ b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitchListener.java
@@ -55,4 +55,11 @@
* @param response role reply from the switch
*/
void receivedRoleReply(Dpid dpid, RoleState requested, RoleState response);
+
+ /**
+ * Notify that role of the switch changed to Master.
+ *
+ * @param dpid the switch for which the role is changed
+ */
+ default void roleChangedToMaster(Dpid dpid) {}
}
diff --git a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
index 8431068..9434c59 100644
--- a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
+++ b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
@@ -340,6 +340,7 @@
}
// perform role transition after clearing messages queue
this.role = RoleState.MASTER;
+ this.agent.roleChangedToMaster(dpid);
}
}
diff --git a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java
index 4451b19..d6bda5d 100644
--- a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java
+++ b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java
@@ -124,4 +124,11 @@
* @param listener the OpenFlow classifier listener
*/
void removeClassifierListener(OpenFlowClassifierListener listener);
+
+ /**
+ * Notify that role of the switch changed to Master.
+ *
+ * @param dpid the switch for which the role is changed
+ */
+ default void roleChangedToMaster(Dpid dpid) {}
}