Skip to content
Snippets Groups Projects
Commit 95542331 authored by Shudong Zhou's avatar Shudong Zhou
Browse files

Send HA role request to switch when master controller gets permission error

parent 6efcb2ef
No related branches found
No related tags found
No related merge requests found
...@@ -987,8 +987,22 @@ public class Controller implements IFloodlightProviderService, ...@@ -987,8 +987,22 @@ public class Controller implements IFloodlightProviderService,
if (roleChanger.checkFirstPendingRoleRequestXid( if (roleChanger.checkFirstPendingRoleRequestXid(
sw, error.getXid())) { sw, error.getXid())) {
roleChanger.deliverRoleRequestError(sw, error); roleChanger.deliverRoleRequestError(sw, error);
} } else if (error.getErrorCode() ==
else { OFErrorType.OFPET_BAD_REQUEST.getValue() &&
error.getErrorType() ==
OFBadRequestCode.OFPBRC_EPERM.ordinal() &&
role.equals(Role.MASTER)) {
// We are the master and the switch returned permission
// error. Send a role change request in case switch set
// the master to someone else.
// Only send if there are no pending requests.
synchronized(roleChanger) {
if (roleChanger.pendingRequestMap.get(sw) == null) {
log.info("Tell switch {} who is the master", sw);
roleChanger.submitRequest(Collections.singleton(sw), role);
}
}
} else {
logError(sw, error); logError(sw, error);
// allow registered listeners to receive error messages // allow registered listeners to receive error messages
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment