Thanks for the patch. Just to clarify, I think we still don¹t support IPv6 in OvsTcpSegmentNBL.
Acked-by: Sairam Venugopal <vsai...@vmware.com> On 12/11/15, 2:29 PM, "Alin Serdean" <aserd...@cloudbasesolutions.com> wrote: >This patch adds LSO version 2 support for the windows datapath. >(https://urldefense.proofpoint.com/v2/url?u=https-3A__msdn.microsoft.com_e >n-2Dus_library_windows_hardware_ff568840-2528v-3Dvs.85-2529.aspx&d=BQIGaQ& >c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Dcruz40PROJ40ROzSpxyQSLw6f >crOWpJgEcEmNR3JEQ&m=ewMobSdivrA6XR-BJ8hbfBp5jsgbMzrEHybjAZ24RO4&s=Y9h65-o1 >FW1buPSLpV6zKv8ZTZtuEaFY245ELBMKd7w&e= ) > >Tested using psping and iperf3. > >Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> >--- >v2: Allow VXLAN encapsulation to take place if no LSO is available >--- > datapath-windows/ovsext/Vxlan.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > >diff --git a/datapath-windows/ovsext/Vxlan.c >b/datapath-windows/ovsext/Vxlan.c >index c0611da..2516ece 100644 >--- a/datapath-windows/ovsext/Vxlan.c >+++ b/datapath-windows/ovsext/Vxlan.c >@@ -190,6 +190,7 @@ OvsDoEncapVxlan(POVS_VPORT_ENTRY vport, > POVS_VXLAN_VPORT vportVxlan; > UINT32 headRoom = OvsGetVxlanTunHdrSize(); > UINT32 packetLength; >+ ULONG mss = 0; > > /* > * XXX: the assumption currently is that the NBL is owned by OVS, and >@@ -204,12 +205,23 @@ OvsDoEncapVxlan(POVS_VPORT_ENTRY vport, > > tsoInfo.Value = NET_BUFFER_LIST_INFO(curNbl, > >TcpLargeSendNetBufferListInfo); >- OVS_LOG_TRACE("MSS %u packet len %u", tsoInfo.LsoV1Transmit.MSS, >+ switch (tsoInfo.Transmit.Type) { >+ case NDIS_TCP_LARGE_SEND_OFFLOAD_V1_TYPE: >+ mss = tsoInfo.LsoV1Transmit.MSS; >+ break; >+ case NDIS_TCP_LARGE_SEND_OFFLOAD_V2_TYPE: >+ mss = tsoInfo.LsoV2Transmit.MSS; >+ break; >+ default: >+ OVS_LOG_ERROR("Unknown LSO transmit type:%d", >+ tsoInfo.Transmit.Type); >+ } >+ OVS_LOG_TRACE("MSS %u packet len %u", mss, > packetLength); >- if (tsoInfo.LsoV1Transmit.MSS) { >+ if (mss) { > OVS_LOG_TRACE("l4Offset %d", layers->l4Offset); > *newNbl = OvsTcpSegmentNBL(switchContext, curNbl, layers, >- tsoInfo.LsoV1Transmit.MSS, >headRoom); >+ mss, headRoom); > if (*newNbl == NULL) { > OVS_LOG_ERROR("Unable to segment NBL"); > return NDIS_STATUS_FAILURE; >-- >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=ewMobSdivrA6XR-BJ8hbfBp5jsgbMz >rEHybjAZ24RO4&s=hCu09m9IAwqR2mS7U5CxPbo2fRMEBqPvfN1lTdJGgHw&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev