patrickelectric opened a new pull request, #18922:
URL: https://github.com/apache/nuttx/pull/18922
## Summary
The Ethernet MAC (57.11.4) was already configured in the code, but it was
necessary to configure the Transmit Descriptor (57.10.3) in read format:
- Checksum Interface Control for IP, payload and pseudo-header
Add checks for Receive Descriptor (57.10.4) in read format:
- Receive Descriptor 1 is valid from Receive Descriptor 3
- IP checksum was not bypassed
- IP header checksum error op IP payload checksum error is set
## Impact
Avoid unnecessary checksums done in software
## Testing
Testing with STM32 Nucleo-144 using iperf, improved transmission from
35 MBits/s to 50MBits/s.
### With CONFIG_STM32H5_ETH_HWCHECKSUM
```
nsh> iperf -c 192.168.2.2 -t 2 -i 1
IP: 192.168.2.90
mode=tcp-client sip=192.168.2.90:5001,dip=192.168.2.2:5001, interval=1,
time=2
Interval Transfer Bandwidth
0.00- 1.00 sec 6291456 Bytes 50.23 Mbits/sec
1.00- 2.00 sec 6307840 Bytes 50.36 Mbits/sec
0.00- 2.00 sec 12599296 Bytes 50.30 Mbits/sec
iperf exit
nsh> xd 0x40028000 4
Hex dump:
0000: 03 e1 00 08
```
### Without CONFIG_STM32H5_ETH_HWCHECKSUM
```
nsh> iperf -c 192.168.2.2 -t 2 -i 1
IP: 192.168.2.90
mode=tcp-client sip=192.168.2.90:5001,dip=192.168.2.2:5001, interval=1,
time=2
Interval Transfer Bandwidth
0.00- 1.00 sec 4358144 Bytes 34.80 Mbits/sec
1.00- 2.00 sec 4374528 Bytes 34.89 Mbits/sec
0.00- 2.00 sec 8732672 Bytes 34.84 Mbits/sec
iperf exit
nsh> xd 0x40028000 4
Hex dump:
0000: 03 e1 00 00
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]