3 |
* Address Resolution Protocol module for IP over Ethernet |
* Address Resolution Protocol module for IP over Ethernet |
4 |
* |
* |
5 |
* $Log$ |
* $Log$ |
6 |
|
* Revision 1.15 2002/12/05 09:41:52 kieranm |
7 |
|
* Fixed compiler warnings when ARP_QUEUEING is not defined. |
8 |
|
* |
9 |
* Revision 1.14 2002/12/02 16:08:09 likewise |
* Revision 1.14 2002/12/02 16:08:09 likewise |
10 |
* Fixed wrong assertion condition. |
* Fixed wrong assertion condition. |
11 |
* |
* |
171 |
/* clear ARP entries */ |
/* clear ARP entries */ |
172 |
for(i = 0; i < ARP_TABLE_SIZE; ++i) { |
for(i = 0; i < ARP_TABLE_SIZE; ++i) { |
173 |
arp_table[i].state = ETHARP_STATE_EMPTY; |
arp_table[i].state = ETHARP_STATE_EMPTY; |
174 |
|
#if ARP_QUEUEING |
175 |
arp_table[i].p = NULL; |
arp_table[i].p = NULL; |
176 |
|
#endif |
177 |
} |
} |
178 |
/* reset ARP current time */ |
/* reset ARP current time */ |
179 |
ctime = 0; |
ctime = 0; |
212 |
pbuf_free(arp_table[i].p); |
pbuf_free(arp_table[i].p); |
213 |
arp_table[i].p = NULL; |
arp_table[i].p = NULL; |
214 |
#else |
#else |
215 |
DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired pending entry %u.\n", i); |
DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired pending entry %u.\n", i)); |
216 |
#endif |
#endif |
217 |
} |
} |
218 |
} |
} |
276 |
update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags) |
update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags) |
277 |
{ |
{ |
278 |
u8_t i, k; |
u8_t i, k; |
279 |
|
#if ARP_QUEUEING |
280 |
struct eth_hdr *ethhdr; |
struct eth_hdr *ethhdr; |
281 |
|
#endif |
282 |
DEBUGF(ETHARP_DEBUG, ("update_arp_entry()")); |
DEBUGF(ETHARP_DEBUG, ("update_arp_entry()")); |
283 |
DEBUGF(ETHARP_DEBUG, ("update_arp_entry: %u.%u.%u.%u - %02x:%02x:%02x:%02x:%02x:%02x\n", ip4_addr1(ipaddr), ip4_addr2(ipaddr), ip4_addr3(ipaddr), ip4_addr4(ipaddr), |
DEBUGF(ETHARP_DEBUG, ("update_arp_entry: %u.%u.%u.%u - %02x:%02x:%02x:%02x:%02x:%02x\n", ip4_addr1(ipaddr), ip4_addr2(ipaddr), ip4_addr3(ipaddr), ip4_addr4(ipaddr), |
284 |
ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2], ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5], ethaddr->addr[6])); |
ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2], ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5], ethaddr->addr[6])); |
368 |
/* mark as stable */ |
/* mark as stable */ |
369 |
arp_table[i].state = ETHARP_STATE_STABLE; |
arp_table[i].state = ETHARP_STATE_STABLE; |
370 |
/* no queued packet */ |
/* no queued packet */ |
371 |
|
#if ARP_QUEUEING |
372 |
arp_table[i].p = NULL; |
arp_table[i].p = NULL; |
373 |
|
#endif |
374 |
} |
} |
375 |
else |
else |
376 |
{ |
{ |
742 |
ip_addr_set(&arp_table[i].ipaddr, ipaddr); |
ip_addr_set(&arp_table[i].ipaddr, ipaddr); |
743 |
arp_table[i].ctime = ctime; |
arp_table[i].ctime = ctime; |
744 |
arp_table[i].state = ETHARP_STATE_PENDING; |
arp_table[i].state = ETHARP_STATE_PENDING; |
745 |
|
#if ARP_QUEUEING |
746 |
arp_table[i].p = NULL; |
arp_table[i].p = NULL; |
747 |
|
#endif |
748 |
} |
} |
749 |
/* allocate a pbuf for the outgoing ARP request packet */ |
/* allocate a pbuf for the outgoing ARP request packet */ |
750 |
p = pbuf_alloc(PBUF_LINK, sizeof(struct etharp_hdr), PBUF_RAM); |
p = pbuf_alloc(PBUF_LINK, sizeof(struct etharp_hdr), PBUF_RAM); |