Hi Nithin,

While reading the ETHERTYPE attribute we already use ntohs.

Regards,
Ankur
________________________________________
From: dev <dev-boun...@openvswitch.org> on behalf of Nithin Raju 
<nit...@vmware.com>
Sent: Thursday, October 16, 2014 10:52 PM
To: dev@openvswitch.org
Subject: [ovs-dev] [PATCH 2/4] datapath-windows: fixes in Flow.c in key parsing

Signed-off-by: Nithin Raju <nit...@vmware.com>
---
 datapath-windows/ovsext/Flow.c |   43 ++++++++++++++++++++-------------------
 1 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c
index f3ee726..fa61262 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -1267,20 +1267,19 @@ _MapKeyAttrToFlowPut(PNL_ATTR *keyAttrs,
      * requests with no ETHERTYPE attributes.
      * Need to verify this. */
     if (keyAttrs[OVS_KEY_ATTR_ETHERTYPE]) {
-    destKey->l2.dlType = ntohs((NlAttrGetU16(keyAttrs
-                               [OVS_KEY_ATTR_ETHERTYPE])));
+        destKey->l2.dlType = ntohs((NlAttrGetU16(keyAttrs
+                                        [OVS_KEY_ATTR_ETHERTYPE])));
     }

     if (keyAttrs[OVS_KEY_ATTR_VLAN]) {
-        destKey->l2.vlanTci = NlAttrGetU16(keyAttrs
-                              [OVS_KEY_ATTR_VLAN]);
+        destKey->l2.vlanTci = NlAttrGetU16(keyAttrs[OVS_KEY_ATTR_VLAN]);
     }

     /* ==== L3 + L4. ==== */
     destKey->l2.keyLen = OVS_WIN_TUNNEL_KEY_SIZE + OVS_L2_KEY_SIZE
                          - destKey->l2.offset;

-    switch (destKey->l2.dlType) {
+    switch (ntohs(destKey->l2.dlType)) {
     case ETH_TYPE_IPV4: {

         if (keyAttrs[OVS_KEY_ATTR_IPV4]) {
@@ -1395,22 +1394,24 @@ _MapKeyAttrToFlowPut(PNL_ATTR *keyAttrs,
     }
     case ETH_TYPE_ARP:
     case ETH_TYPE_RARP: {
-        ArpKey *arpFlowPutKey = &destKey->arpKey;
-        const struct ovs_key_arp *arpKey;
-
-        arpKey = NlAttrGet(keyAttrs[OVS_KEY_ATTR_ARP]);
-
-        arpFlowPutKey->nwSrc = arpKey->arp_sip;
-        arpFlowPutKey->nwDst = arpKey->arp_tip;
-
-        RtlCopyMemory(arpFlowPutKey->arpSha, arpKey->arp_sha, ETH_ADDR_LEN);
-        RtlCopyMemory(arpFlowPutKey->arpTha, arpKey->arp_tha, ETH_ADDR_LEN);
-        arpFlowPutKey->nwProto = (UINT8)(arpKey->arp_op);
-        arpFlowPutKey->pad[0] = 0;
-        arpFlowPutKey->pad[1] = 0;
-        arpFlowPutKey->pad[2] = 0;
-        destKey->l2.keyLen += OVS_ARP_KEY_SIZE;
-        break;
+        if (keyAttrs[OVS_KEY_ATTR_ARP]) {
+            ArpKey *arpFlowPutKey = &destKey->arpKey;
+            const struct ovs_key_arp *arpKey;
+
+            arpKey = NlAttrGet(keyAttrs[OVS_KEY_ATTR_ARP]);
+
+            arpFlowPutKey->nwSrc = arpKey->arp_sip;
+            arpFlowPutKey->nwDst = arpKey->arp_tip;
+
+            RtlCopyMemory(arpFlowPutKey->arpSha, arpKey->arp_sha, 
ETH_ADDR_LEN);
+            RtlCopyMemory(arpFlowPutKey->arpTha, arpKey->arp_tha, 
ETH_ADDR_LEN);
+            arpFlowPutKey->nwProto = (UINT8)(arpKey->arp_op);
+            arpFlowPutKey->pad[0] = 0;
+            arpFlowPutKey->pad[1] = 0;
+            arpFlowPutKey->pad[2] = 0;
+            destKey->l2.keyLen += OVS_ARP_KEY_SIZE;
+            break;
+        }
     }
     }
 }
--
1.7.4.1

_______________________________________________
dev mailing list
dev@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=jCDA1pWsDkBchl%2B6LQPbLbMuTXTPlVqZIjhz2oFAtYI%3D%0A&s=a2a2699705f1dd5d7c08c077b9373536039ccff323849677705d82283800ce3b
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to