From 877a19b785baf189e073a126891fccf4914873c4 Mon Sep 17 00:00:00 2001 From: Sorin Vinturis Date: Fri, 25 Mar 2016 14:49:27 +0000 Subject: datapath-windows: Extract flow metadata in execute cmd handler. Signed-off-by: Sorin Vinturis Acked-by: Sairam Venugopal Acked-by: Nithin Raju Signed-off-by: Ben Pfaff --- datapath-windows/ovsext/User.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'datapath-windows/ovsext/User.c') 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); } -- cgit v1.2.1