Lines Matching refs:arp_table

120 static struct etharp_entry arp_table[ARP_TABLE_SIZE];
180 snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr);
182 if (arp_table[i].q != NULL) {
184 LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_free_entry: freeing entry %"U16_F", packet queue %p.\n", (u16_t)i, (void *)(arp_table[i].q)));
185 free_etharp_q(arp_table[i].q);
186 arp_table[i].q = NULL;
189 arp_table[i].state = ETHARP_STATE_EMPTY;
192 arp_table[i].ctime = 0;
193 arp_table[i].netif = NULL;
194 ip_addr_set_zero(&arp_table[i].ipaddr);
195 arp_table[i].ethaddr = ethzero;
213 u8_t state = arp_table[i].state;
219 arp_table[i].ctime++;
220 if ((arp_table[i].ctime >= ARP_MAXAGE) ||
221 ((arp_table[i].state == ETHARP_STATE_PENDING) &&
222 (arp_table[i].ctime >= ARP_MAXPENDING))) {
225 arp_table[i].state >= ETHARP_STATE_STABLE ? "stable" : "pending", (u16_t)i));
229 else if (arp_table[i].state == ETHARP_STATE_STABLE_REREQUESTING) {
232 arp_table[i].state = ETHARP_STATE_STABLE;
236 if (arp_table[i].state == ETHARP_STATE_PENDING) {
292 u8_t state = arp_table[i].state;
302 if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) {
310 if (arp_table[i].q != NULL) {
311 if (arp_table[i].ctime >= age_queue) {
313 age_queue = arp_table[i].ctime;
318 if (arp_table[i].ctime >= age_pending) {
320 age_pending = arp_table[i].ctime;
331 if (arp_table[i].ctime >= age_stable) {
333 age_stable = arp_table[i].ctime;
369 LWIP_ASSERT("arp_table[i].q == NULL", arp_table[i].q == NULL);
379 LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting oldest pending entry %"U16_F", freeing packet queue %p\n", (u16_t)i, (void *)(arp_table[i].q)));
392 LWIP_ASSERT("arp_table[i].state == ETHARP_STATE_EMPTY",
393 arp_table[i].state == ETHARP_STATE_EMPTY);
398 ip_addr_copy(arp_table[i].ipaddr, *ipaddr);
400 arp_table[i].ctime = 0;
473 arp_table[i].state = ETHARP_STATE_STATIC;
478 arp_table[i].state = ETHARP_STATE_STABLE;
482 arp_table[i].netif = netif;
484 snmp_insert_arpidx_tree(netif, &arp_table[i].ipaddr);
488 ETHADDR32_COPY(&arp_table[i].ethaddr, ethaddr);
490 arp_table[i].ctime = 0;
493 while (arp_table[i].q != NULL) {
496 struct etharp_q_entry *q = arp_table[i].q;
498 arp_table[i].q = q->next;
504 if (arp_table[i].q != NULL) {
505 struct pbuf *p = arp_table[i].q;
506 arp_table[i].q = NULL;
564 if (arp_table[i].state != ETHARP_STATE_STATIC) {
584 u8_t state = arp_table[i].state;
585 if ((state != ETHARP_STATE_EMPTY) && (arp_table[i].netif == netif)) {
614 if((i >= 0) && (arp_table[i].state >= ETHARP_STATE_STABLE)) {
615 *eth_ret = &arp_table[i].ethaddr;
616 *ip_ret = &arp_table[i].ipaddr;
839 * in the arp_table specified by the index 'arp_idx'.
844 LWIP_ASSERT("arp_table[arp_idx].state >= ETHARP_STATE_STABLE",
845 arp_table[arp_idx].state >= ETHARP_STATE_STABLE);
849 if ((arp_table[arp_idx].state == ETHARP_STATE_STABLE) &&
850 (arp_table[arp_idx].ctime >= ARP_AGE_REREQUEST_USED)) {
851 if (etharp_request(netif, &arp_table[arp_idx].ipaddr) == ERR_OK) {
852 arp_table[arp_idx].state = ETHARP_STATE_STABLE_REREQUESTING;
857 &arp_table[arp_idx].ethaddr);
950 if ((arp_table[etharp_cached_entry].state >= ETHARP_STATE_STABLE) &&
951 (ip_addr_cmp(dst_addr, &arp_table[etharp_cached_entry].ipaddr))) {
964 if ((arp_table[i].state >= ETHARP_STATE_STABLE) &&
965 (ip_addr_cmp(dst_addr, &arp_table[i].ipaddr))) {
1044 if (arp_table[i].state == ETHARP_STATE_EMPTY) {
1045 arp_table[i].state = ETHARP_STATE_PENDING;
1049 LWIP_ASSERT("arp_table[i].state == PENDING or STABLE",
1050 ((arp_table[i].state == ETHARP_STATE_PENDING) ||
1051 (arp_table[i].state >= ETHARP_STATE_STABLE)));
1054 if ((arp_table[i].state == ETHARP_STATE_PENDING) || (q == NULL)) {
1071 if (arp_table[i].state >= ETHARP_STATE_STABLE) {
1075 result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr));
1077 } else if (arp_table[i].state == ETHARP_STATE_PENDING) {
1117 if(arp_table[i].q != NULL) {
1120 r = arp_table[i].q;
1127 arp_table[i].q = new_entry;
1139 if (arp_table[i].q != NULL) {
1141 pbuf_free(arp_table[i].q);
1143 arp_table[i].q = p;