vertical feedback path for Role replies
Change-Id: I31bdb85f90901ec79147adeea0df8ceae00ed1dc
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OpenFlowControllerImpl.java b/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OpenFlowControllerImpl.java
index 70c9b1b..098771d 100644
--- a/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OpenFlowControllerImpl.java
+++ b/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OpenFlowControllerImpl.java
@@ -374,9 +374,9 @@
}
@Override
- public void returnRoleAssertFailed(Dpid dpid, RoleState role) {
+ public void returnRoleReply(Dpid dpid, RoleState requested, RoleState response) {
for (OpenFlowSwitchListener l : ofSwitchListener) {
- l.roleAssertFailed(dpid, role);
+ l.receivedRoleReply(dpid, requested, response);
}
}
}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/RoleManager.java b/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/RoleManager.java
index c9f71b7..a22aac0 100644
--- a/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/RoleManager.java
+++ b/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/RoleManager.java
@@ -224,8 +224,8 @@
}
int xid = (int) rri.getXid();
- RoleState role = rri.getRole();
- // XXX S should check generation id meaningfully and other cases of expectations
+ RoleState receivedRole = rri.getRole();
+ // XXX Should check generation id meaningfully and other cases of expectations
if (pendingXid != xid) {
log.debug("Received older role reply from " +
@@ -236,10 +236,12 @@
return RoleRecvStatus.OLD_REPLY;
}
- if (pendingRole == role) {
+ sw.returnRoleReply(pendingRole, receivedRole);
+
+ if (pendingRole == receivedRole) {
log.debug("Received role reply message from {} that matched "
+ "expected role-reply {} with expectations {}",
- new Object[] {sw.getStringId(), role, expectation});
+ new Object[] {sw.getStringId(), receivedRole, expectation});
if (expectation == RoleRecvStatus.MATCHED_CURRENT_ROLE ||
expectation == RoleRecvStatus.MATCHED_SET_ROLE) {
@@ -247,8 +249,6 @@
} else {
return RoleRecvStatus.OTHER_EXPECTATION;
}
- } else {
- sw.returnRoleAssertFailure(pendingRole);
}
// if xids match but role's don't, perhaps its a query (OF1.3)