Embedded Xinu Operating System
An ongoing research project and educational operating system.
|
Address Resolution Protocol. More...
Functions | |
struct arpEntry * | arpAlloc (void) |
thread | arpDaemon (void) |
syscall | arpFree (struct arpEntry *entry) |
struct arpEntry * | arpGetEntry (const struct netaddr *praddr) |
syscall | arpInit (void) |
syscall | arpLookup (struct netif *netptr, const struct netaddr *praddr, struct netaddr *hwaddr) |
syscall | arpNotify (struct arpEntry *entry, message msg) |
syscall | arpRecv (struct packet *pkt) |
syscall | arpSendReply (struct packet *pkt) |
syscall | arpSendRqst (struct arpEntry *entry) |
Address Resolution Protocol.
struct arpEntry* arpAlloc | ( | void | ) |
Allocates an entry from the ARP table.
thread arpDaemon | ( | void | ) |
ARP daemon to manage the ARP table.
syscall arpFree | ( | struct arpEntry * | entry | ) |
Frees an entry from the ARP table.
struct arpEntry* arpGetEntry | ( | const struct netaddr * | praddr | ) |
Obtains an entry from the ARP table given a protocol address.
praddr | protocol address |
< pointer to ARP table entry
< interrupt state
syscall arpInit | ( | void | ) |
Initializes ARP table and ARP daemon.
syscall arpLookup | ( | struct netif * | netptr, |
const struct netaddr * | praddr, | ||
struct netaddr * | hwaddr | ||
) |
Obtains a hardware address from the ARP table given a protocol address.
netptr | network interface |
praddr | protocol address |
hwaddr | buffer into which hardware address should be placed |
< pointer to ARP table entry
< num of ARP lookups performed
< TTL for ARP table entry
< interrupt state
syscall arpNotify | ( | struct arpEntry * | entry, |
message | msg | ||
) |
Send a message to threads waiting on resolution of an ARP table entry.
entry | ARP table entry |
msg | message to send to waiting threads |
< index into ARP table
< interrupt state
syscall arpRecv | ( | struct packet * | pkt | ) |
Processes an incoming ARP packet.
pkt | pointer to the incoming packet return OK if packet was processed succesfully, otherwise SYSERR |
< pointer to ARP table entry
< source hardware address
< source protocol address
< destination protocol address
< interrupt state
syscall arpSendReply | ( | struct packet * | pkt | ) |
Sends an ARP reply for an ARP request over a network interface.
pkt | ARP packet to reply to |
syscall arpSendRqst | ( | struct arpEntry * | entry | ) |
Sends an ARP request for an ARP table entry over a network interface.
entry | ARP table entry |