quoted
To perform checksum in HW, HW obviously should work in store and
forward mode. Store all frame in TX FIFO and then check checksum.
quoted
If mtu 1500B, everything fine and all port can do this.
If mtu is 9KB and 9KB frame transmitted, Port 0 still can do HW checksum.
But ports 1 and 2 doesn't has enough FIFO for this.
quoted
So we cannot offload this feature and SW should perform checksum.
So perhaps the real check should not be "port 0", but whether the MTU is
higher or lower than the TX FIFO size assigned to the current port.
This would express in much better way the reason why HW checksum can be
used or not.
I really don't want involve MTU size here, for each packet we should add to MTU overhead added by HW(offset, CRC, DSA tags and etc).
I prefer just to check: port TX FIFO size is 10KB -> port can support HW checksum offload.
Do you suggest to keep some shadow table with ports TX FIFO sizes for this?
Thanks,
Stefan.