Acked-by: Nithin Raju <nit...@vmware.com>

I was wondering if this should be part of the recirc patch itself.


-----Original Message-----
From: dev <dev-boun...@openvswitch.org> on behalf of Sorin Vinturis
<svintu...@cloudbasesolutions.com>
Date: Friday, March 18, 2016 at 7:58 AM
To: "dev@openvswitch.org" <dev@openvswitch.org>
Subject: [ovs-dev] [PATCH v6 5/6] datapath-windows: Extract flow metadata
in execute cmd handler.

>Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
>Acked-by: Sairam Venugopal <vsai...@vmware.com>
>---
> datapath-windows/ovsext/DpInternal.h |  1 +
> datapath-windows/ovsext/Flow.c       | 17 +++++++++++++++++
> datapath-windows/ovsext/Flow.h       |  2 ++
> datapath-windows/ovsext/User.c       |  7 +++++++
> 4 files changed, 27 insertions(+)
>
>diff --git a/datapath-windows/ovsext/DpInternal.h
>b/datapath-windows/ovsext/DpInternal.h
>index 612ff7b..4d4fec3 100644
>--- a/datapath-windows/ovsext/DpInternal.h
>+++ b/datapath-windows/ovsext/DpInternal.h
>@@ -270,6 +270,7 @@ typedef struct OvsPacketExecute {
>    uint32_t actionsLen;
>    PCHAR packetBuf;
>    PNL_ATTR actions;
>+   PNL_ATTR *keyAttrs;
> } OvsPacketExecute;
> 
> 
>diff --git a/datapath-windows/ovsext/Flow.c
>b/datapath-windows/ovsext/Flow.c
>index 5625d01..40cfb54 100644
>--- a/datapath-windows/ovsext/Flow.c
>+++ b/datapath-windows/ovsext/Flow.c
>@@ -1735,6 +1735,23 @@ DeleteAllFlows(OVS_DATAPATH *datapath)
>     }
> }
> 
>+NDIS_STATUS
>+OvsGetFlowMetadata(OvsFlowKey *key,
>+                   PNL_ATTR *keyAttrs)
>+{
>+    NDIS_STATUS status = NDIS_STATUS_SUCCESS;
>+
>+    if (keyAttrs[OVS_KEY_ATTR_RECIRC_ID]) {
>+        key->recircId = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_RECIRC_ID]);
>+    }
>+
>+    if (keyAttrs[OVS_KEY_ATTR_DP_HASH]) {
>+        key->dpHash = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_DP_HASH]);
>+    }
>+
>+    return status;
>+}
>+
> /*
>  
>*-------------------------------------------------------------------------
>---
>  * Initializes 'flow' members from 'packet', 'skb_priority', 'tun_id',
>and
>diff --git a/datapath-windows/ovsext/Flow.h
>b/datapath-windows/ovsext/Flow.h
>index 78bf7cc..310c472 100644
>--- a/datapath-windows/ovsext/Flow.h
>+++ b/datapath-windows/ovsext/Flow.h
>@@ -51,6 +51,8 @@ NDIS_STATUS OvsDeleteFlowTable(OVS_DATAPATH *datapath);
> NDIS_STATUS OvsAllocateFlowTable(OVS_DATAPATH *datapath,
>                                  POVS_SWITCH_CONTEXT switchContext);
> 
>+NDIS_STATUS OvsGetFlowMetadata(OvsFlowKey *key,
>+                               PNL_ATTR *keyAttrs);
> NDIS_STATUS OvsExtractFlow(const NET_BUFFER_LIST *pkt, UINT32 inPort,
>                            OvsFlowKey *flow, POVS_PACKET_HDR_INFO layers,
>                            OvsIPv4TunnelKey *tunKey);
>diff --git a/datapath-windows/ovsext/User.c
>b/datapath-windows/ovsext/User.c
>index cadffda..6b2d94a 100644
>--- a/datapath-windows/ovsext/User.c
>+++ b/datapath-windows/ovsext/User.c
>@@ -383,6 +383,7 @@ _MapNlAttrToOvsPktExec(PNL_ATTR *nlAttrs, PNL_ATTR
>*keyAttrs,
>     execute->actionsLen =
>NlAttrGetSize(nlAttrs[OVS_PACKET_ATTR_ACTIONS]);
> 
>     execute->inPort = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_IN_PORT]);
>+    execute->keyAttrs = keyAttrs;
> }
> 
> NTSTATUS
>@@ -429,6 +430,11 @@ OvsExecuteDpIoctl(OvsPacketExecute *execute)
>     }
>     // XXX: Figure out if any of the other members of fwdDetail need to
>be set.
> 
>+    status = OvsGetFlowMetadata(&key, execute->keyAttrs);
>+    if (status != STATUS_SUCCESS) {
>+        goto dropit;
>+    }
>+
>     ndisStatus = OvsExtractFlow(pNbl, fwdDetail->SourcePortId, &key,
>&layers,
>                                 NULL);
>     if (ndisStatus == NDIS_STATUS_SUCCESS) {
>@@ -450,6 +456,7 @@ OvsExecuteDpIoctl(OvsPacketExecute *execute)
>         }
>     }
> 
>+dropit:
>     if (pNbl) {
>         OvsCompleteNBL(gOvsSwitchContext, pNbl, TRUE);
>     }
>-- 
>1.9.0.msysgit.0
>_______________________________________________
>dev mailing list
>dev@openvswitch.org
>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma
>n_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pN
>HQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=1YtRcaLre-9LkfwHfYn9JkqkifmvTp
>8pFqDao0bbEt4&s=G4pHn9ugPvStzFuPxKpWcBuWi1fQK5skdAu7VT3jtvo&e= 

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to