#include <async.h>
#include <malloc.h>
#include <mem.h>
#include <fibril_synch.h>
#include <assert.h>
#include <stdio.h>
#include <str.h>
#include <task.h>
#include <adt/measured_strings.h>
#include <ipc/services.h>
#include <ipc/net.h>
#include <ipc/arp.h>
#include <ipc/il.h>
#include <ipc/nil.h>
#include <byteorder.h>
#include <errno.h>
#include <net/modules.h>
#include <net/device.h>
#include <net/packet.h>
#include <nil_remote.h>
#include <protocol_map.h>
#include <packet_client.h>
#include <packet_remote.h>
#include <il_remote.h>
#include <il_skel.h>
#include "arp.h"
Go to the source code of this file.
Data Structures | |
| struct | arp_header |
| ARP protocol header. More... | |
ARP operation codes definitions | |
| #define | ARPOP_REPLY 2 |
| REPLY operation code. | |
| #define | ARPOP_REQUEST 1 |
| REQUEST operation code. | |
Defines | |
| #define | ARP_TRANS_WAIT 1000000 |
| Number of microseconds to wait for an ARP reply. | |
| #define | NAME "arp" |
| ARP module name. | |
Typedefs | |
| typedef arp_header | arp_header_t |
| Type definition of an ARP protocol header. | |
Functions | |
| static int | arp_clean_cache_req (int arp_phone) |
| static void | arp_clear_addr (arp_addr_t *addresses) |
| static int | arp_clear_address_req (int arp_phone, device_id_t device_id, services_t protocol, measured_string_t *address) |
| static void | arp_clear_device (arp_device_t *device) |
| Clear the device specific data. | |
| static int | arp_clear_device_req (int arp_phone, device_id_t device_id) |
| static void | arp_clear_trans (arp_trans_t *trans) |
| static int | arp_device_message (device_id_t device_id, services_t service, services_t protocol, measured_string_t *address) |
| Register the device. | |
| static int | arp_mtu_changed_message (device_id_t device_id, size_t mtu) |
| Update the device content length according to the new MTU value. | |
| static int | arp_proto_create (arp_proto_t **proto, services_t service, measured_string_t *address) |
| Create new protocol specific data. | |
| static int | arp_receive_message (device_id_t device_id, packet_t *packet) |
| Process the received ARP packet. | |
| static void | arp_receiver (ipc_callid_t iid, ipc_call_t *icall) |
| Process IPC messages from the registered device driver modules. | |
| static int | arp_send_request (device_id_t device_id, services_t protocol, measured_string_t *target, arp_device_t *device, arp_proto_t *proto) |
| static int | arp_translate_message (device_id_t device_id, services_t protocol, measured_string_t *target, measured_string_t **translation) |
| Return the hardware address for the given protocol address. | |
| int | il_initialize (int net_phone) |
| Module initialization. | |
| int | il_module_message (ipc_callid_t callid, ipc_call_t *call, ipc_call_t *answer, size_t *count) |
| Process the internetwork layer module message. | |
| int | main (int argc, char *argv[]) |
| Main entry point. | |
Variables | |
| arp_globals_t | arp_globals |
| ARP global data. | |
Definition in file arp.c.
1.4.7