summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/User.c
diff options
context:
space:
mode:
authorSorin Vinturis <svinturis@cloudbasesolutions.com>2016-03-25 14:49:27 +0000
committerBen Pfaff <blp@ovn.org>2016-03-25 08:24:38 -0700
commit877a19b785baf189e073a126891fccf4914873c4 (patch)
tree21c16ae4f2f2a4fb7be392526d18cb15c05ce94d /datapath-windows/ovsext/User.c
parent245eedef9519d8b75db7a7c36bc2ed1005938f81 (diff)
downloadopenvswitch-877a19b785baf189e073a126891fccf4914873c4.tar.gz
datapath-windows: Extract flow metadata in execute cmd handler.
Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Acked-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/User.c')
-rw-r--r--datapath-windows/ovsext/User.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c
index cadffdab8..6b2d94add 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);
}