EmbeddedRelated.com
Forums

RCM4300 MTU Stuck at 16

Started by "Fem...@femtodesigns.com [rabbit-semi]" January 28, 2016
Hi Tom,

I applied the patch (TCP/IP.LIB) patch to DC 10.72 and re-ran the tests.
The results were the same.

However when I used DC 10.66 then the problem went away.
In other words, the value set by "ETH_MTU 1234" was correctly reported by ip_print_ifs() as;

Interface table:

# IP addr. Mask Up Lnk Pwr Type MTU Flags Peer/router
-- --------------- --------------- --- --- --- ---- ---- ------ ---------------
0 192.168.1.5 255.255.255.0 yes yes yes eth 1234 * 192.168.1.254

MTU:1234

So DC 10.66 works correctly with the RCM4300, while DC 10.72 does not.
I don't have any of the intermediate versions between 10.66 and 10.72.

Regards,
Mike
Mike,

Thanks for reporting this with that added detail. I was able to reproduce it on my end, and have pushed a fix up to GitHub.

https://github.com/digidotcom/DCRabbit_10/commit/18114a8d72d545b7ecca5581b37eb2d0dd520080

You can download the updated ASIX.LIB file using the following URL, and just replace the version in Dynamic C 10.72:

https://raw.githubusercontent.com/digidotcom/DCRabbit_10/18114a8d72d545b7ecca5581b37eb2d0dd520080/Lib/Rabbit4000/tcpip/ASIX.LIB

For those interested in knowing more, ip_print_ifs() calls ifmtu() in 10.72 instead of just pulling it from a field in the interface table (as it did in 10.66). Because of a bug in ASIX.LIB, ifmtu() would get an uninitialized value from the stack instead of 0, the correct return value for unimplemented ioctl features.

This bug could have caused other networking-related errors on boards with an ASIX Ethernet controller.

-Tom
On Jan 29, 2016, at 9:16 AM, m...@gmail.com [rabbit-semi] wrote:

> Hi Tom,
>
> I applied the patch (TCP/IP.LIB) patch to DC 10.72 and re-ran the tests.
> The results were the same.
>
> However when I used DC 10.66 then the problem went away.
> In other words, the value set by "ETH_MTU 1234" was correctly reported by ip_print_ifs() as;
>
> Interface table:
>
> # IP addr. Mask Up Lnk Pwr Type MTU Flags Peer/router
> -- --------------- --------------- --- --- --- ---- ---- ------ ---------------
> 0 192.168.1.5 255.255.255.0 yes yes yes eth 1234 * 192.168.1.254
>
> MTU:1234
>
> So DC 10.66 works correctly with the RCM4300, while DC 10.72 does not.
> I don't have any of the intermediate versions between 10.66 and 10.72.
>
> Regards,
> Mike