Referencia del Archivo arp.c

Implementacion de ARP, necesario para resolver MAC's. Más...

#include "includes.h"

Dependencia gráfica adjunta para arp.c:


Funciones

void arp_generate_packet (BYTE *rxtx_buffer, BYTE *dest_mac, BYTE *dest_ip)
 Genera un paquete ARP para un determinado IP y MAC.
void arp_send_request (BYTE *rxtx_buffer, BYTE *dest_ip)
 Envia un paquete ARP Who_is preguntando por una IP.
void arp_send_reply (BYTE *rxtx_buffer)
void ARP_init (void)
 inicializa banderas de la maquina de estados de ARP
evita que se ejecute por error (p.e on_process=0)
void ARP_start (IP_ADDR strt_ip)
 arranca la maquina de estados de ARP
void ARP_restart (void)
void ARP_step (void)
 ejecuta un paso de la maquina de estados de ARP
void ARP_error (void)
 lleva a ARP a un estado de error
lo utilizan los procesos externos para "notificar" de errores (p.e. timeout)

Descripción detallada

Implementacion de ARP, necesario para resolver MAC's.

Address Resolution Protocol (ARP) is the method for finding a host's hardware address when only its network layer address is known. Due to the overwhelming prevalence of IPv4 and Ethernet, ARP is primarily used to translate IP addresses to Ethernet MAC addresses. It is also used for IP over other LAN technologies, such as Token Ring, FDDI, or IEEE 802.11, and for IP over ATM.

ARP is used in four cases of two hosts communicating:


Documentación de las funciones

void ARP_error ( void   ) 

lleva a ARP a un estado de error
lo utilizan los procesos externos para "notificar" de errores (p.e. timeout)

void arp_generate_packet ( BYTE rxtx_buffer,
BYTE dest_mac,
BYTE dest_ip 
)

Genera un paquete ARP para un determinado IP y MAC.

Parámetros:
rxtx_buffer un puntero al buffer generico de Rx/Tx.
dest_mac MAC de destino del paq. ARP
dest_ip IP de destino del paq. ARP

hardware type = ethernet (0x0001)

protocol = IP (0x0800)

hardware length = 0x06

protocol length = 0x04

rellena ARP dest. y source MAC

setup arp destination and source ip address

void ARP_init ( void   ) 

inicializa banderas de la maquina de estados de ARP
evita que se ejecute por error (p.e on_process=0)

void ARP_restart ( void   ) 

void arp_send_reply ( BYTE rxtx_buffer  ) 

Se utiliza inmediatamente despues de recibido un paquete ARP con el puntero apuntando al buffer del paquete

genera el ethernet header

cambia el tipo de paquete a reply

envia el paquete

Gráfico de llamadas para esta función:

void arp_send_request ( BYTE rxtx_buffer,
BYTE dest_ip 
)

Envia un paquete ARP Who_is preguntando por una IP.

Parámetros:
rxtx_buffer un puntero al buffer generico de Rx/Tx.
dest_ip IP cuya MAC queremos averiguar

genera el ethernet header

genera paquete ARP de REQUEST

set arp opcode is request

envia el paquete a la red

Gráfico de llamadas para esta función:

void ARP_start ( IP_ADDR  strt_ip  ) 

arranca la maquina de estados de ARP

Parámetros:
strt_ip IP del que se buscara MAC

void ARP_step ( void   ) 

ejecuta un paso de la maquina de estados de ARP

Gráfico de llamadas para esta función:


Generado el Wed Jul 2 09:20:43 2008 para TCP/IP por  doxygen 1.5.6