arp.c File Reference

ARP module implementation. More...

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


Detailed Description

ARP module implementation.

See also:
arp.h

Definition in file arp.c.


Generated on Thu Jun 2 07:45:55 2011 for HelenOS/USB by  doxygen 1.4.7