arp.c File Reference

ARP module implementation. More...

#include <async.h>
#include <malloc.h>
#include <mem.h>
#include <fibril_synch.h>
#include <stdio.h>
#include <string.h>
#include <task.h>
#include <ipc/ipc.h>
#include <ipc/services.h>
#include "../../err.h"
#include "../../messages.h"
#include "../../modules.h"
#include "../../include/byteorder.h"
#include "../../include/device.h"
#include "../../include/arp_interface.h"
#include "../../include/nil_interface.h"
#include "../../include/protocol_map.h"
#include "../../structures/measured_strings.h"
#include "../../structures/packet/packet.h"
#include "../../structures/packet/packet_client.h"
#include "../il_messages.h"
#include "arp.h"
#include "arp_header.h"
#include "arp_oc.h"
#include "arp_module.h"
#include "arp_messages.h"
Include dependency graph for arp.c:

Functions

void arp_clear_device (arp_device_ref device)
 Clears the device specific data.
int arp_proto_create (arp_proto_ref *proto, services_t service, measured_string_ref address)
 Creates new protocol specific data.
int arp_initialize (async_client_conn_t client_connection)
 Initializes the ARP module.
int arp_message (ipc_callid_t callid, ipc_call_t *call, ipc_call_t *answer, int *answer_count)
 Processes the ARP message.
Message processing functions



int arp_device_message (device_id_t device_id, services_t service, services_t protocol, measured_string_ref address)
 Registers the device.
int arp_mtu_changed_message (device_id_t device_id, size_t mtu)
 Updates the device content length according to the new MTU value.
int arp_receive_message (device_id_t device_id, packet_t packet)
 Processes the received ARP packet.
measured_string_ref arp_translate_message (device_id_t device_id, services_t protocol, measured_string_ref target)
 Returns the hardware address for the given protocol address.
ARP module interface

This interface is used by other modules.



int arp_clean_cache_req (int arp_phone)
 Cleans the cache.
int arp_clear_address_req (int arp_phone, device_id_t device_id, services_t protocol, measured_string_ref address)
 Clears the given protocol address from the cache.
int arp_clear_device_req (int arp_phone, device_id_t device_id)
 Clears the device cache.
int arp_connect_module (services_t service)
 Connects to the ARP module.
int arp_device_req (int arp_phone, device_id_t device_id, services_t protocol, services_t netif, measured_string_ref address)
 Registers the new device and the requesting protocol service.
task_id_t arp_task_get_id (void)
 Returns the ARP task identifier.
int arp_translate_req (int arp_phone, device_id_t device_id, services_t protocol, measured_string_ref address, measured_string_ref *translation, char **data)
 Translates the given protocol address to the network interface address.

Variables

arp_globals_t arp_globals
 ARP global data.

Detailed Description

ARP module implementation.

See also:
arp.h

Generated on Thu Mar 11 20:45:57 2010 for Networking and TCP/IP stack for HelenOS system by  doxygen 1.6.1