TAS
TCP Acceleration as an OS Service
Functions
Tas-sp-arp

ARP Protocol Handling. More...

Collaboration diagram for Tas-sp-arp:

Functions

int arp_init (void)
 
int arp_request (struct nicif_completion *comp, uint32_t ip, uint64_t *mac)
 
void arp_packet (const void *pkt, uint16_t len)
 
void arp_timeout (struct timeout *to, enum timeout_type type)
 

Detailed Description

ARP Protocol Handling.

Function Documentation

◆ arp_init()

int arp_init ( void  )

Initialize ARP subsystem

Definition at line 58 of file arp.c.

References configuration::ip, and configuration::quiet.

◆ arp_packet()

void arp_packet ( const void *  pkt,
uint16_t  len 
)

RX processing for an ARP packet.

Parameters
pktPointer to packet
lenLength of packet

Definition at line 138 of file arp.c.

References configuration::ip, and util_timeout_disarm().

◆ arp_request()

int arp_request ( struct nicif_completion comp,
uint32_t  ip,
uint64_t *  mac 
)

Resolve IP address to MAC address using ARP resolution.

This function can either return success immediately in case on an ARP cache hit, or return asynchronously if an ARP request was sent out.

Parameters
compContext for asynchronous return
ipIP address to be resolved
macPointer of memory location where destination MAC should be stored.
Returns
0 on success, < 0 on error, and > 0 if request was sent but response is still pending.

Definition at line 81 of file arp.c.

References configuration::arp_to, and util_timeout_arm().

Referenced by routing_resolve().

◆ arp_timeout()

void arp_timeout ( struct timeout to,
enum timeout_type  type 
)

ARP timeout triggered.

Parameters
toTimeout that triggered
typeTimeout type

Definition at line 209 of file arp.c.

References configuration::arp_to_max, configuration::ip, nicif_tx_alloc(), nicif_tx_send(), and util_timeout_arm().