[ovs-dev] [PATCH 3/4] datapath-windows: Fixes in packet created for userspace

Ankur Sharma ankursharma at vmware.com
Fri Oct 17 16:46:22 UTC 2014


Hi Nithin,

Changes look fine.
Please find a minor comment inline.

Acked-by: Ankur Sharma <ankursharma at vmware.com>
________________________________________
From: dev <dev-bounces at openvswitch.org> on behalf of Nithin Raju <nithin at vmware.com>
Sent: Thursday, October 16, 2014 10:52 PM
To: dev at openvswitch.org
Subject: [ovs-dev] [PATCH 3/4] datapath-windows: Fixes in packet created for    userspace

A couple of miscellaneous fixes in code that creates a packet for
userspace as well as when we copy the packet to memory specified by
userspace.

Signed-off-by: Nithin Raju <nithin at vmware.com>
---
 datapath-windows/ovsext/User.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c
index a8128bc..2811092 100644
--- a/datapath-windows/ovsext/User.c
+++ b/datapath-windows/ovsext/User.c
@@ -239,7 +239,7 @@ OvsReadDpIoctl(PFILE_OBJECT fileObject,
             *ptr = sum;
             ovsUserStats.l4Csum++;
         } else {
-            RtlCopyMemory(outputBuffer, &elem->packet, len);
+            RtlCopyMemory(outputBuffer, &elem->packet.data, len);
         }

         *replyLen = len;
@@ -928,14 +928,14 @@ OvsCreateQueueNlPacket(PVOID userData,
     UINT32 pid;
     UINT32 nlMsgSize;
     NL_BUFFER nlBuf;
+    PNL_MSG_HDR nlMsg;

     /* XXX pass vport in the stack rather than portNo */
     POVS_VPORT_ENTRY vport =
         OvsFindVportByPortNo(gOvsSwitchContext, inPort);

     if (vport == NULL){
-        /* Should never happen as dispatch lock is held */
-        ASSERT(vport);
+        /* No vport is not fatal. */
         return NULL;
     }

@@ -1064,6 +1064,12 @@ OvsCreateQueueNlPacket(PVOID userData,
         elem->hdrInfo.l4Offset += VLAN_TAG_SIZE;
         ovsUserStats.vlanInsert++;
     }
+
+    nlMsg = (PNL_MSG_HDR)NlBufAt(&nlBuf, 0, 0);
+    nlMsg->nlmsgLen = NlBufSize(&nlBuf);

[ANKUR]: Should we not align the msgLen here.?

+    /* 'totalLen' should be size of valid data. */
+    elem->packet.totalLen = nlMsg->nlmsgLen;
+
     return elem;
 fail:
     OvsFreeMemory(elem);
--
1.7.4.1

_______________________________________________
dev mailing list
dev at openvswitch.org
https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=f6EhnZ0ORGZNt5QbYmRaOxfWfx%2Bqd3KEiPf3%2FYaollU%3D%0A&m=Hs49WkZV2%2BZ9pazMuLNebGUUSFx73gcCclLNMTE1CVc%3D%0A&s=428428febeae8b4f8477e5581fb55a2688c0ea9ecca16cbaa456cfa474d69940



More information about the dev mailing list