Open
Conversation
nuno-silva
reviewed
Feb 7, 2019
Contributor
nuno-silva
left a comment
There was a problem hiding this comment.
Thank you for your work!
| #define ETH_ARP_DST_MAC_P 0x20 | ||
| #define ETH_ARP_DST_IP_P 0x26 | ||
| // Ethernet II header | ||
| struct EthHeader |
Contributor
There was a problem hiding this comment.
This struct should also be __attribute__((__packed__)), right?
Contributor
Author
There was a problem hiding this comment.
Is EtherCard support something else than 8 bits controllers? If yes then we need this attribute
Contributor
There was a problem hiding this comment.
I don't think so, but even if that's not the case, there's no harm in adding it for future proof :)
Owner
There was a problem hiding this comment.
I am aiming to add support for a wider range of devices, including the 32-bit ones, such as the Arduino M0.
The biggest blocker is the SPI interface - I have a half-complete branch using the Arduino SPI library - see #335.
added 2 commits
February 11, 2019 20:52
* keep MAC/IP relations into an ARP 'store'. * fix issue when IP packet is received from local network: answer is no more broadcasted * define ETHERCARD_ARP_STORE_SIZE to set cache size
* less error prone * decrease code size to flash * introduce ethernet_header(), ethernet_payload(), ip_header(), ip_payload().... basic functions to retrieve headers and payloads * use ntoh and hton instead of manual multibytes adaptations. getBigEndianLong has been replaced by standard function ntohl.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[IP] use IP header instead of array offsets
Description
less error prone
decrease code size to flash (save some bytes, see below)
introduce ethernet_header(), ethernet_payload(), ip_header(),
ip_payload().... basic functions to retrieve headers and payloads
use ntoh and hton instead of manual multibytes adaptations.
getBigEndianLong has been replaced by standard function ntohl.
Code size evolution depending on examples
Negative value: save size
Positive value: increase size