Glad we were able to resolve this :) -----Original Message----- From: Alin Serdean <aserd...@cloudbasesolutions.com> Date: Tuesday, June 14, 2016 at 9:12 AM To: Nithin Raju <nit...@vmware.com>, "dev@openvswitch.org" <dev@openvswitch.org> Subject: RE: [ovs-dev] [PATCH v3] datapath-windows: Add GRE checksum
>> >greater than the maximum header size which is configurable. In the case > >> >of VXLAN / STT we can be in the case above, because of the UDP/TCP like > >> >packet > >> > >> [Nithin]: Yes, in fact even for NICs that support header-split (mostly >>Intel), > >[Alin Gabriel Serdean: ] I looked over some Intel specs and they said you >could header split after eth header on a RQ. > >The documentation is very shady between NDIS versions, you are right, I >will allocate a buffer if the memory was not contiguous. > >I found this in the document when header data split was introduced: > >" € Do not assume that the minimum size of the data in the first MDL >contains all of the TCP/IP headers." > >Thanks for the patience of reiterating that we should not make >assumptions :). > >> the payload of the packet WILL NOT be in the first MDL. In case of GRE, >>the > >> split would happen at the IP header itself. So, GRE header would not be >>in > >> the contigous buffer. > >> > >> >, but for GRE things differ since there are cards which support > >> >offloading: > >> >https://urldefense.proofpoint.com/v2/url?u=https- > >> 3A__msdn.microsoft.com > >> >_en > >> >-2Dus_library_windows_hardware_dn605832-28v-3Dvs.85- > >> 29.aspx&d=CwIFAA&c= > >> >Sqc > >> >l0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt- > >> uEs&r=pNHQcdr7B40b4h6Yb7FIedI1dnBs > >> >xdD > >> >uTLBYD3JqV80&m=Xih_0c1MPDafKSkW1nO5- > >> mIutm1WK_ZmMcu7likx3jM&s=A4LA4vS20h > >> >f4l > >> >keq-wjCc6N9kbBMqswRnC-SSulTF6s&e= > >> >"The protocol driver will guarantee that all the prepended > >> >encapsulation headers (ETH, IP, GRE) will be physically contiguous and > >> >will be in the first MDL of the packet." > >> > >> > >> >I do not think we will be in a situation in which a GRE header will not > >> >be continuous. > >> >If you consider we should still have a fragmented header problem, I > >> >will allocate a buffer and execute another NdisGetDataBuffer call if > >> >the first one failed. > >> > >> [Nithin]: The documention you point to is to the send direction. In >>case of > >> receive, where does it say that the protocol/filter driver can expect >>the > >> miniport driver to pack the ETH + IP + GRE header in one contiguous >>buffer? > >[Alin Gabriel Serdean: ] >https://urldefense.proofpoint.com/v2/url?u=https-3A__msdn.microsoft.com_en >-2Dus_library_windows_hardware_dn605831-28v-3Dvs.85-29.aspx&d=CwIGaQ&c=Sqc >l0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pNHQcdr7B40b4h6Yb7FIedI1dnBsxdD >uTLBYD3JqV80&m=VugC5mFPTpNpx0R-jC10W_uinFfZOY_F1Hi4gFstsFA&s=h7DHGykgAZtg3 >nSvp5hoJlvoAHoucP3l3niTl3PmxnI&e= > >> > >> In any case, if you are particular that the code is correct, I am ok >>with the > >> patch. I was trying to give suggestions to make the code solid. > >> > >> Acked-by: Nithin Raju <nit...@vmware.com> > >> > >> -- Nithin > > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev