#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.