Acked-by: Sairam Venugopal <vsai...@vmware.com>
On 3/24/17, 1:51 PM, "ovs-dev-boun...@openvswitch.org on behalf of Anand Kumar" <ovs-dev-boun...@openvswitch.org on behalf of kumaran...@vmware.com> wrote: >This patch adds support for Fragmenting NBL based on the MRU value. >MRU value is updated only for Ipv4 fragments, if it is non zero, then >fragment the NBL and send out the new NBL to the vnic. > >Signed-off-by: Anand Kumar <kumaran...@vmware.com> >--- >v5->v6: No Change >v4->v5: > - Use MRU information in the _OVS_BUFFER_CONTEXT to fragment NBL. >v3->v4: No Change >v2->v3: > - Updated log message >v1->v2: No change >--- > datapath-windows/ovsext/Actions.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > >diff --git a/datapath-windows/ovsext/Actions.c >b/datapath-windows/ovsext/Actions.c >index cbc7640..a68679c 100644 >--- a/datapath-windows/ovsext/Actions.c >+++ b/datapath-windows/ovsext/Actions.c >@@ -34,6 +34,7 @@ > #include "Vport.h" > #include "Vxlan.h" > #include "Geneve.h" >+#include "IpFragment.h" > > #ifdef OVS_DBG_MOD > #undef OVS_DBG_MOD >@@ -864,6 +865,8 @@ OvsOutputForwardingCtx(OvsForwardingContext *ovsFwdCtx) > NDIS_STATUS status = STATUS_SUCCESS; > POVS_SWITCH_CONTEXT switchContext = ovsFwdCtx->switchContext; > PCWSTR dropReason; >+ PNET_BUFFER_LIST fragNbl = NULL; >+ POVS_BUFFER_CONTEXT ctx; > > /* > * Handle the case where the some of the destination ports are tunneled >@@ -909,6 +912,30 @@ OvsOutputForwardingCtx(OvsForwardingContext *ovsFwdCtx) > goto dropit; > } > >+ ctx = >(POVS_BUFFER_CONTEXT)NET_BUFFER_LIST_CONTEXT_DATA_START(ovsFwdCtx->curNbl); >+ if (ctx->mru != 0) { >+ /* Fragment nbl based on mru. If it returns NULL then the original >+ * reassembled NBL is sent out to the VIF which will be dropped if >+ * the packet size is more than VIF MTU. >+ */ >+ fragNbl = OvsFragmentNBL(ovsFwdCtx->switchContext, >+ ovsFwdCtx->curNbl, >+ &(ovsFwdCtx->layers), >+ ctx->mru, 0, TRUE); >+ if (fragNbl != NULL) { >+ OvsCompleteNBLForwardingCtx(ovsFwdCtx, >+ L"Dropped since fragmenting NBL"); >+ status = OvsInitForwardingCtx(ovsFwdCtx, >+ ovsFwdCtx->switchContext, >+ fragNbl, >+ ovsFwdCtx->srcVportNo, >+ ovsFwdCtx->sendFlags, >+ >NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL(fragNbl), >+ ovsFwdCtx->completionList, >+ &ovsFwdCtx->layers, FALSE); >+ } >+ } >+ > OvsSendNBLIngress(ovsFwdCtx->switchContext, ovsFwdCtx->curNbl, > ovsFwdCtx->sendFlags); > /* End this pipeline by resetting the corresponding context. */ >-- >2.9.3.windows.1 > >_______________________________________________ >dev mailing list >d...@openvswitch.org >https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=Z6vowHUOjP5ysP_g372c49Nqc1vEKqHKNBkR5Q5Z7uo&m=3sl4LJX8-HSAc_mfofbqDS1UYgla5hIj4zVdVv8Mz5c&s=CuBYGxQI9b-Q-vjVq6DY8KAqOu1TllZ5TWdmnea67go&e= > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev