Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
2369
Description
update-flow RPC causes NPE if either match or priority in UpdateFlowInput is null.
OFRpcTaskFactory.createUpdateFlowTask():
boolean updatedFlow = (getInput().getUpdatedFlow().getMatch().equals(getInput().getOriginalFlow().getMatch())) &&
(getInput().getUpdatedFlow().getPriority().equals(getInput().getOriginalFlow().getPriority()));
In addition, update-flow RPC should remove original flow and add updated flow
if any of the following fields is changed because FLOW_MOD (MODIFY/MODIFY_STRICT)
will not change them.
- idle-timeout
- hard-timeout
- flags
- cookie
OF13 FLOW_MOD (MODIFY) can be filtered by cookie and cookie_mask.
So one FLOW_MOD (MODIFY) should be sent if all of the following conditions are met:
- Protocol version is OF13.
- Strict flag is not set in UpdatedFlow.
- A non-zero cookie_mask is set in UpdatedFlow.
- Flow match, priority, idle-timeout, hard-timeout, and flags are not changed.