> > To perform checksum in HW, HW obviously should work in store and > forward mode. Store all frame in TX FIFO and then check checksum. > > 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. > > 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.