RetroArch
Classes | Macros | Enumerations | Functions | Variables
uip_arp.c File Reference
#include "uip_pbuf.h"
#include "uip_netif.h"
#include "uip_arp.h"
#include <string.h>
Include dependency graph for uip_arp.c:

Classes

struct  arp_entry
 

Macros

#define UIP_LOG(m)
 
#define UIP_STAT(s)
 
#define ARP_TRY_HARD   0x01
 
#define ARP_MAXAGE   240
 
#define ARP_MAXPENDING   2
 
#define ARP_REQUEST   1
 
#define ARP_REPLY   2
 
#define ARP_HWTYPE_ETH   1
 
#define ARPH_HWLEN(hdr)   (ntohs((hdr)->_hwlen_protolen) >> 8)
 
#define ARPH_PROTOLEN(hdr)   (ntohs((hdr)->_hwlen_protolen) & 0xff)
 
#define ARPH_HWLEN_SET(hdr, len)   (hdr)->_hwlen_protolen = htons(ARPH_PROTOLEN(hdr) | ((len) << 8))
 
#define ARPH_PROTOLEN_SET(hdr, len)   (hdr)->_hwlen_protolen = htons((len) | (ARPH_HWLEN(hdr) << 8))
 

Enumerations

enum  arp_state { ARP_STATE_EMPTY, ARP_STATE_PENDING, ARP_STATE_STABLE, ARP_STATE_EXPIRED }
 

Functions

void uip_arp_init (void)
 
void uip_arp_timer (void)
 
static s8_t uip_arp_findentry (struct uip_ip_addr *ipaddr, u8_t flags)
 
static s8_t uip_arp_update (struct uip_netif *netif, struct uip_ip_addr *ipaddr, struct uip_eth_addr *ethaddr, u8_t flags)
 
void uip_arp_ipin (struct uip_netif *netif, struct uip_pbuf *p)
 
void uip_arp_arpin (struct uip_netif *netif, struct uip_eth_addr *ethaddr, struct uip_pbuf *p)
 
s8_t uip_arp_out (struct uip_netif *netif, struct uip_ip_addr *ipaddr, struct uip_pbuf *q)
 
s8_t uip_arp_arpquery (struct uip_netif *netif, struct uip_ip_addr *ipaddr, struct uip_pbuf *q)
 
s8_t uip_arp_arprequest (struct uip_netif *netif, struct uip_ip_addr *ipaddr)
 

Variables

static const struct uip_eth_addr ethbroadcast = {{0xff,0xff,0xff,0xff,0xff,0xff}}
 
static struct arp_entry arp_table [UIP_ARPTAB_SIZE]
 

Detailed Description

Implementation of the ARP Address Resolution Protocol.

Author
Adam Dunkels adam@.nosp@m.dunk.nosp@m.els.c.nosp@m.om