vertical feedback path for Role replies
Change-Id: I31bdb85f90901ec79147adeea0df8ceae00ed1dc
diff --git a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitch.java b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitch.java
index 17f168f..77eb437 100644
--- a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitch.java
@@ -121,11 +121,12 @@
public void disconnectSwitch();
/**
- * Notifies the controller that role assertion has failed.
+ * Notifies the controller that the device has responded to a set-role request.
*
- * @param role the failed role
+ * @param requested the role requested by the controller
+ * @param response the role set at the device
*/
- public void returnRoleAssertFailure(RoleState role);
+ public void returnRoleReply(RoleState requested, RoleState reponse);
/**
* Indicates if this switch is optical.
diff --git a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitchListener.java b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitchListener.java
index a96c56f..192f045 100644
--- a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitchListener.java
+++ b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/OpenFlowSwitchListener.java
@@ -53,5 +53,5 @@
* @param dpid the switch that failed role assertion
* @param role the role imposed by the controller
*/
- public void roleAssertFailed(Dpid dpid, RoleState role);
+ public void receivedRoleReply(Dpid dpid, RoleState requested, RoleState response);
}
diff --git a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/AbstractOpenFlowSwitch.java b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/AbstractOpenFlowSwitch.java
index 9950515..49943b8 100644
--- a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/AbstractOpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/AbstractOpenFlowSwitch.java
@@ -217,8 +217,8 @@
}
@Override
- public void returnRoleAssertFailure(RoleState role) {
- this.agent.returnRoleAssertFailed(dpid, role);
+ public void returnRoleReply(RoleState requested, RoleState response) {
+ this.agent.returnRoleReply(dpid, requested, response);
}
@Override
@@ -300,6 +300,7 @@
this.transitionToEqualSwitch();
}
} else {
+ log.warn(">>> mismatch with expected role - got {} - Disconnecting", r);
this.disconnectSwitch();
}
}
diff --git a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/OpenFlowAgent.java b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/OpenFlowAgent.java
index fa2823f..6b73efc 100644
--- a/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/OpenFlowAgent.java
+++ b/openflow/api/src/main/java/org/onlab/onos/openflow/controller/driver/OpenFlowAgent.java
@@ -97,5 +97,5 @@
* @param dpid the switch that failed role assertion
* @param role the failed role
*/
- public void returnRoleAssertFailed(Dpid dpid, RoleState role);
+ public void returnRoleReply(Dpid dpid, RoleState requested, RoleState response);
}