We need to update the "layers" after an action. Think about the following scenario: Mpls_pop,recirc We do not update the "layers" after mpls_pop so we will have the initial values. That is why we did another flow extract just to update the layers.
Alin. > -----Mesaj original----- > De la: dev [mailto:dev-boun...@openvswitch.org] În numele Nithin Raju > Trimis: Tuesday, May 17, 2016 8:15 PM > Către: dev@openvswitch.org > Subiect: [ovs-dev] [PATCH 4/4 v2] datapath-windows: remove extract flow in > OvsDoRecirc() > > It is not necessary to do a flow extract in OvsDoRecirc(). > In fact, doing it would overwrite the tunnel key within 'key'. So, let's > remove > the call. > > Signed-off-by: Nithin Raju <nit...@vmware.com> > Signed-off-by: Sairam Venugopal <vsai...@vmware.com> > Co-Authored-by: Sairam Venugopal <vsai...@vmware.com> > --- > datapath-windows/ovsext/Actions.c | 9 --------- > 1 file changed, 9 deletions(-) > > diff --git a/datapath-windows/ovsext/Actions.c b/datapath- > windows/ovsext/Actions.c > index 5ad29ee..4edf7d0 100644 > --- a/datapath-windows/ovsext/Actions.c > +++ b/datapath-windows/ovsext/Actions.c > @@ -1989,15 +1989,6 @@ OvsDoRecirc(POVS_SWITCH_CONTEXT > switchContext, > NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL(curNbl), > completionList, layers, TRUE); > > - status = OvsExtractFlow(ovsFwdCtx.curNbl, ovsFwdCtx.srcVportNo, key, > - &ovsFwdCtx.layers, NULL); > - if (status != NDIS_STATUS_SUCCESS) { > - OvsCompleteNBLForwardingCtx(&ovsFwdCtx, > - L"OVS-Dropped due to extract flow failure"); > - ovsActionStats.failedFlowMiss++; > - return NDIS_STATUS_FAILURE; > - } > - > flow = OvsLookupFlow(&ovsFwdCtx.switchContext->datapath, key, > &hash, FALSE); > if (flow) { > UINT32 level = OvsDeferredActionsLevelGet(); > -- > 2.7.1.windows.1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev