tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Dealing with M_HASFCS for protocols that do not do ethernet crc
On Wed, Aug 10, 2022 at 08:48:02AM +0900, Chris wrote:
> Removing AWIN_GMAC_MAC_CONF_ACS from interface configuration, and reverting
> the per-protocol FCS bit I committed, appears to do the right thing. AppleTalk
> works, IP works, and the rockpro64 hasn't fallen over after four hours of
> moderate testing.
>
> I'm going to commit this fix right after I finish writing this email. Martin,
> would this pass muster for a pullup to the 9.x branch?
Yes, I was going to suggest exactly trying that - thanks for testing!
This was kinda a fools erand - for the archive here the summary:
- The driver configured the chip (due to missing/incomplete/incorrect)
documentation to NOT strip FCS from all "regular" packets (frame
length field <= 1500) but to strip it from packets with that field
used as ethertype (with type >= 0x600).
The driver (not being aware of the difference) set M_HASFCS for all
packets (whether stripped by hardware or not).
- The original commit that started this thread worked around the difference
manually (still not understanding the full issue).
- The real fix (as described above by Chris) of course is to configure the
hardware to always strip off FCS and never set M_HASFCS.
In general we seem to agree that:
- a driver should try to set the hardware to strip FCS always
- only if that is not possible, the driver sets M_HASFCS
- a driver does not have to care about ethernet packet types (unless
there are driver or hardware bugs, see above)
Martin
Home |
Main Index |
Thread Index |
Old Index