10#define MAXOS_NET_ARP_H
A stream that strings can be written to.
Stores the left, top, width and height of a rectangle.
Handles ARP requests and replies.
void request_mac_address(InternetProtocolAddress address)
Request the MAC address of a given IP address.
drivers::ethernet::MediaAccessControlAddress resolve(InternetProtocolAddress address) final
Get the MAC address from an IP via ARP.
void store(InternetProtocolAddress internet_protocol_address, drivers::ethernet::MediaAccessControlAddress media_access_control_address) final
store a mapping of an IP address to a MAC address.
bool handle_ethernetframe_payload(uint8_t *etherframe_payload, uint32_t size) final
Called when an ARP packet is received.
Handles incoming Ethernet Frames and routes them to the appropriate payload handlers.
Handles a specific type of Ethernet Frame payload.
Resolves IP addresses to MAC addresses.
Handles IPv4 packets over Ethernet frames.
uint64_t MediaAccessControlAddress
Used to make MAC addresses more readable.
Defines classes and structures for handling Internet Protocol version 4 (IPv4) packets.
uint32_t InternetProtocolAddress
An IPv4 address.
uint16_t hardware_type
The type of device that sent the ARP message (1 = Ethernet)
uint64_t src_mac
The MAC address of the sender.
uint16_t protocol
The protocol being used (0x0800 = IPv4)
uint8_t protocol_address_size
The size of the protocol address (4 for IPv4)
uint32_t dst_ip
The IP address of the target.
uint16_t command
The ARP command (1 = request, 2 = reply)
uint8_t hardware_address_size
The size of the hardware address (6 for MAC)
uint32_t src_ip
The IP address of the sender.
uint64_t dst_mac
The MAC address of the target.