All ARP queueing code is now conditionally compiled-in.

This commit is contained in:
likewise 2002-11-28 09:26:18 +00:00
parent 4619bbc3ea
commit bda378bb9f

View File

@ -3,6 +3,9 @@
* Address Resolution Protocol module for IP over Ethernet
*
* $Log: etharp.c,v $
* Revision 1.12 2002/11/28 09:26:18 likewise
* All ARP queueing code is now conditionally compiled-in.
*
* Revision 1.11 2002/11/18 10:31:05 likewise
* Conditionally have ARP queue outgoing pbufs.
*
@ -106,7 +109,6 @@ RFC 3220 4.6 IP Mobility Support for IPv4 January 2002
# define ETHARP_SNOOP_UPDATES 0
#endif
#define HWTYPE_ETHERNET 1
/** ARP message types */
@ -129,7 +131,9 @@ struct etharp_entry {
struct ip_addr ipaddr;
struct eth_addr ethaddr;
enum etharp_state state;
#if ARP_QUEUEING
struct pbuf *p;
#endif
u8_t ctime;
};
@ -177,9 +181,11 @@ etharp_tmr(void)
(ctime - arp_table[i].ctime >= ARP_MAXPENDING)) {
DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired pending entry %u - dequeueing %p.\n", i, arp_table[i].p));
arp_table[i].state = ETHARP_STATE_EMPTY;
#if ARP_QUEUEING
/* remove any queued packet */
pbuf_free(arp_table[i].p);
arp_table[i].p = NULL;
#endif
}
}
}
@ -240,8 +246,10 @@ static struct pbuf *
update_arp_entry(struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags)
{
u8_t i, k;
struct pbuf *p;
struct eth_hdr *ethhdr;
#if ARP_QUEUEING
struct pbuf *p;
#endif
/* Walk through the ARP mapping table and try to find an entry to
update. If none is found, the IP -> MAC address mapping is
@ -270,6 +278,7 @@ update_arp_entry(struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags)
}
arp_table[i].ctime = ctime;
arp_table[i].state = ETHARP_STATE_STABLE;
#if ARP_QUEUEING
p = arp_table[i].p;
// queued packet present? */
if(p != NULL) {
@ -288,6 +297,10 @@ update_arp_entry(struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags)
}
/* return queued packet, if any */
return p;
#else
/* ARP queueing disabled */
return NULL;
#endif
}
}
}