Tom Chen wrote:

<... not seeing bad packets in wireshark ...>

It is possible that the NIC drops the packet if you only give
it a small portion of the data that it needs to transmit.

> I am very new to GLDv3 driver. I am especially not confident in the 
> qla_send_common( ) function which copies only up to TX buffer size data from 
> mp to TX buffer and send it. What if the incoming data is more than TX buffer 
> size? like this one 0x112c (4396 bytes)packet which is bigger than mtu (1514 
> bytes)? Why other OpenSolaris drivers do not care about this? Is this a 
> concern only in drivers supporting LSO? 

The point of LSO is to send down a packet
larger than the MTU, and let the device segment it.
So seeing a frame with a 4KB+ size and an MTU of 1500b is
totally normal.


Drivers that implement LSO generally don't copy transmits, but map
them for DMA in place.   Assuming your device can do LSO, you
probably want to have a new transmit strategy which maps the
buffers in place.  If you really need to copy, I'd suggest
copying to large (page sized?) physically contiguous pre-mapped
buffers, rather than to buffers based on the MTU.


Drew
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to