Skip to content

Conversation

t-wallet
Copy link
Collaborator

@t-wallet t-wallet commented Sep 30, 2024

This draft PR improves IPv4 checksum verification and generation by pipelining it.

Doing this for dataWidth 4 was not very difficult. But doing it for generic dataWidth turned out to be way more complex than initially thought (thanks, IPv4). Therefore, I wanted to separate this issue from #8 to avoid cluttering things and blocking the main PR.

TODO:

t-wallet and others added 21 commits August 28, 2024 16:00
Co-authored-by: Jasmijn Bookelmann <[email protected]>
Co-authored-by: Cato van Ojen <[email protected]>
Co-authored-by: MatthijsMu <[email protected]>
Co-authored-by: Jasper Laumen <[email protected]>
Co-authored-by: Mart Koster <[email protected]>
Co-authored-by: Bryan Rinders <[email protected]>
Co-authored-by: Daan Weessies <[email protected]>
Co-authored-by: Rowan Goemans <[email protected]>
It was only used to be able to test the ARP stack in hardware when we did not have IP yet.
Major documentation was missing for the ICMP module. Especially the fact that the checksum adjustment breaks for very specific (unlikely to happen in practice) input packets.
Mostly includes improvements in packet generation, and reuse of models and generators. Aside from that, most test files have also been formatted with fourmolu.
Now also recognizes packets of which some of the preamble is missing. The SFD is still required to be byte-aligned.
Also removed some superfluous constraints and made the timer of the ARP manager less granular. This caused the manual test to fail, because its domain is too slow. The manual test was not any better than a hardware test anyway, so I removed it. Once support for ReqResp tests arrives from clash-protocols, we can add a proper test.
See the discussion in #8 (comment) for more details.

Co-authored-by: Rowan Goemans <[email protected]>
@t-wallet t-wallet changed the base branch from main to ethernet September 30, 2024 14:12
@t-wallet t-wallet mentioned this pull request Sep 30, 2024
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant