[ovs-dev] [PATCH v2 2/2] datapath-windows: Transactional error fix for flow dump.
Ankur Sharma
ankursharma at vmware.com
Tue Oct 14 17:16:01 UTC 2014
My changes for trasacation error handling for not needed for dump commands.
Fixed the same.
Signed-off-by: Ankur Sharma <ankursharma at vmware.com>
---
datapath-windows/ovsext/Flow.c | 50 +++++++++++-------------------------------
1 file changed, 13 insertions(+), 37 deletions(-)
diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c
index f6e7bdb..3254223 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -381,48 +381,24 @@ OvsFlowNlGetCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
NTSTATUS rc = STATUS_SUCCESS;
NL_ERROR nlError = NL_ERROR_SUCCESS;
POVS_MESSAGE msgIn = (POVS_MESSAGE)usrParamsCtx->inputBuffer;
- POVS_MESSAGE msgOut = (POVS_MESSAGE)usrParamsCtx->outputBuffer;
- PNL_MSG_HDR nlMsgHdr = &(msgIn->nlMsg);
- PGENL_MSG_HDR genlMsgHdr = &(msgIn->genlMsg);
- POVS_HDR ovsHdr = &(msgIn->ovsHdr);
-
- NL_BUFFER nlBuf;
-
- if (!(usrParamsCtx->outputBuffer)) {
- /* No output buffer */
- rc = STATUS_INVALID_BUFFER_SIZE;
- goto done;
- }
if (usrParamsCtx->devOp == OVS_TRANSACTION_DEV_OP) {
rc = _FlowNlGetCmdHandler(usrParamsCtx, replyLen);
- } else {
- rc = _FlowNlDumpCmdHandler(usrParamsCtx, replyLen);
- }
- if ((nlError != NL_ERROR_SUCCESS) &&
- (usrParamsCtx->outputBuffer)) {
- POVS_MESSAGE_ERROR msgError = (POVS_MESSAGE_ERROR)
- usrParamsCtx->outputBuffer;
- BuildErrorMsg(msgIn, msgError, nlError);
- *replyLen = msgError->nlMsg.nlmsgLen;
- rc = STATUS_SUCCESS;
- goto done;
- }
-
- if (rc == STATUS_SUCCESS) {
- NlBufInit(&nlBuf, usrParamsCtx->outputBuffer,
- usrParamsCtx->outputLength);
-
- /* Prepare nl Msg headers */
- rc = NlFillOvsMsg(&nlBuf, nlMsgHdr->nlmsgType, 0,
- nlMsgHdr->nlmsgSeq, nlMsgHdr->nlmsgPid,
- genlMsgHdr->cmd, OVS_FLOW_VERSION,
- ovsHdr->dp_ifindex);
-
- if (rc == STATUS_SUCCESS) {
- *replyLen = msgOut->nlMsg.nlmsgLen;
+ /* No trasanctional errors as of now.
+ * If we have something then we need to convert rc to
+ * nlError. */
+ if ((nlError != NL_ERROR_SUCCESS) &&
+ (usrParamsCtx->outputBuffer)) {
+ POVS_MESSAGE_ERROR msgError = (POVS_MESSAGE_ERROR)
+ usrParamsCtx->outputBuffer;
+ BuildErrorMsg(msgIn, msgError, nlError);
+ *replyLen = msgError->nlMsg.nlmsgLen;
+ rc = STATUS_SUCCESS;
+ goto done;
}
+ } else {
+ rc = _FlowNlDumpCmdHandler(usrParamsCtx, replyLen);
}
done:
--
1.9.1
More information about the dev
mailing list