[ovs-dev] [PATCH] datapath-windows: Fix recirculation to use the proper FlowKey
Sairam Venugopal
vsairam at vmware.com
Fri May 6 23:46:11 UTC 2016
Disregard this patch. I have more changes on this.
Thanks,
Sairam
On 5/6/16, 2:21 PM, "Sairam Venugopal" <vsairam at vmware.com> wrote:
>Pass down the right sendFlags for re-init fwdCtx. Remove the redundant
>call to ExtractFlow. It resets the flowKey causing failure in tunnel
>context.
>
>Signed-off-by: Sairam Venugopal <vsairam at vmware.com>
>---
> datapath-windows/ovsext/Actions.c | 15 +++++++--------
> datapath-windows/ovsext/Actions.h | 1 +
> datapath-windows/ovsext/Recirc.c | 1 +
> 3 files changed, 9 insertions(+), 8 deletions(-)
>
>diff --git a/datapath-windows/ovsext/Actions.c
>b/datapath-windows/ovsext/Actions.c
>index 5ad29ee..5ee9f17 100644
>--- a/datapath-windows/ovsext/Actions.c
>+++ b/datapath-windows/ovsext/Actions.c
>@@ -1976,6 +1976,7 @@ OvsDoRecirc(POVS_SWITCH_CONTEXT switchContext,
> PNET_BUFFER_LIST curNbl,
> OvsFlowKey *key,
> UINT32 srcPortNo,
>+ ULONG sendFlags,
> OVS_PACKET_HDR_INFO *layers)
> {
> NDIS_STATUS status;
>@@ -1983,17 +1984,15 @@ OvsDoRecirc(POVS_SWITCH_CONTEXT switchContext,
> OvsForwardingContext ovsFwdCtx = { 0 };
> UINT64 hash = 0;
> ASSERT(layers);
>+ PNDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO fwdDetail =
>+ NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL(curNbl);
>
>- OvsInitForwardingCtx(&ovsFwdCtx, switchContext, curNbl,
>- srcPortNo, 0,
>-
>NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL(curNbl),
>- completionList, layers, TRUE);
>-
>- status = OvsExtractFlow(ovsFwdCtx.curNbl, ovsFwdCtx.srcVportNo, key,
>- &ovsFwdCtx.layers, NULL);
>+ status = OvsInitForwardingCtx(&ovsFwdCtx, switchContext, curNbl,
>+ srcPortNo, sendFlags, fwdDetail,
>+ completionList, layers, TRUE);
> if (status != NDIS_STATUS_SUCCESS) {
> OvsCompleteNBLForwardingCtx(&ovsFwdCtx,
>- L"OVS-Dropped due to extract flow failure");
>+ L"OVS-initing destination port list failed at recirc");
> ovsActionStats.failedFlowMiss++;
> return NDIS_STATUS_FAILURE;
> }
>diff --git a/datapath-windows/ovsext/Actions.h
>b/datapath-windows/ovsext/Actions.h
>index c56c260..e80ac4a 100644
>--- a/datapath-windows/ovsext/Actions.h
>+++ b/datapath-windows/ovsext/Actions.h
>@@ -50,6 +50,7 @@ OvsDoRecirc(POVS_SWITCH_CONTEXT switchContext,
> PNET_BUFFER_LIST curNbl,
> OvsFlowKey *key,
> UINT32 srcPortNo,
>+ ULONG sendFlags,
> OVS_PACKET_HDR_INFO *layers);
>
> #endif /* __ACTIONS_H_ */
>diff --git a/datapath-windows/ovsext/Recirc.c
>b/datapath-windows/ovsext/Recirc.c
>index 2febf06..733e105 100644
>--- a/datapath-windows/ovsext/Recirc.c
>+++ b/datapath-windows/ovsext/Recirc.c
>@@ -327,6 +327,7 @@ OvsProcessDeferredActions(POVS_SWITCH_CONTEXT
>switchContext,
> deferredAction->nbl,
> &deferredAction->key,
> portNo,
>+ sendFlags,
> layers);
> }
> }
>--
>2.5.0.windows.1
>
More information about the dev
mailing list