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"
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 | |
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. |
ARP module implementation.