Acked-by: Sairam Venugopal <vsai...@vmware.com>
On 9/10/15, 3:09 PM, "Alin Serdean" <aserd...@cloudbasesolutions.com> wrote: >If we have a flow rule of the following form: > actions=strip_vlan,set_tunnel:0x3e9,15,16,17 (Where port 15, 16 and 17 >are > VXLAN OF ports with different tunnelling information) > >Current implementation is that if a packet will hit that specific flow, >only one packet will be sent out with the first tunnelling information. > >This patch saves the initial packet source port for further use of the >currently implemented pipeline and ignores the latter if it >is the last tunnelling port. > >Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> >--- >This patch should also be applied on 2.4 >v5 Do not save the save the NIC index and source port ID. >v4 Relax condition when saving ports. >v3 Fix formatting. >v2 Address comments. >--- >--- > datapath-windows/ovsext/Actions.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > >diff --git a/datapath-windows/ovsext/Actions.c >b/datapath-windows/ovsext/Actions.c >index c8de7c5..bfe5d7f 100644 >--- a/datapath-windows/ovsext/Actions.c >+++ b/datapath-windows/ovsext/Actions.c >@@ -947,7 +947,6 @@ OvsOutputBeforeSetAction(OvsForwardingContext >*ovsFwdCtx) > { > PNET_BUFFER_LIST newNbl; > NDIS_STATUS status = NDIS_STATUS_SUCCESS; >- PNET_BUFFER nb; > > /* > * Create a copy and work on the copy after this point. The original >NBL is >@@ -967,14 +966,14 @@ OvsOutputBeforeSetAction(OvsForwardingContext >*ovsFwdCtx) > * XXX Head room needs to include the additional encap. > * XXX copySize check is not considering multiple NBs. > */ >- nb = NET_BUFFER_LIST_FIRST_NB(ovsFwdCtx->curNbl); > newNbl = OvsPartialCopyNBL(ovsFwdCtx->switchContext, >ovsFwdCtx->curNbl, > 0, 0, TRUE /*copy NBL info*/); > > ASSERT(ovsFwdCtx->destPortsSizeOut > 0 || > ovsFwdCtx->tunnelTxNic != NULL || ovsFwdCtx->tunnelRxNic != >NULL); > >- /* Send the original packet out */ >+ /* Send the original packet out and save the original source port >number */ >+ UINT32 tempVportNo = ovsFwdCtx->srcVportNo; > status = OvsOutputForwardingCtx(ovsFwdCtx); > ASSERT(ovsFwdCtx->curNbl == NULL); > ASSERT(ovsFwdCtx->destPortsSizeOut == 0); >@@ -992,7 +991,7 @@ OvsOutputBeforeSetAction(OvsForwardingContext >*ovsFwdCtx) > OvsCompleteNBL(ovsFwdCtx->switchContext, newNbl, TRUE); > } else { > status = OvsInitForwardingCtx(ovsFwdCtx, >ovsFwdCtx->switchContext, >- newNbl, ovsFwdCtx->srcVportNo, 0, >+ newNbl, tempVportNo, 0, > >NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL(newNbl), > ovsFwdCtx->completionList, > &ovsFwdCtx->layers, FALSE); >-- >1.9.5.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=Dc >ruz40PROJ40ROzSpxyQSLw6fcrOWpJgEcEmNR3JEQ&m=iVd0wpAwaSfU5xL5Nbr4Y7eYotstyp >AspBeloutEaVA&s=PktnT3avtbzDDgHPB4EcKAkjn5tgUrZgO-wP0-6II-c&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev