tag | line | file | source code |
hh | 39 | include/linux/etherdevice.h | extern void eth_header_cache_update(struct hh_cache *hh, struct device *dev, unsigned char * haddr); |
hh | 189 | include/linux/netdevice.h | void (*header_cache_update)(struct hh_cache *hh, struct device *dev, unsigned char * haddr); |
hh | 16 | include/net/arp.h | extern int arp_update_cache(struct hh_cache * hh); |
hh | 230 | net/ethernet/eth.c | struct hh_cache *hh; |
hh | 239 | net/ethernet/eth.c | if ((hh=*hhp) != NULL) |
hh | 241 | net/ethernet/eth.c | memcpy(hh->hh_data+6, dev->dev_addr, ETH_ALEN); |
hh | 242 | net/ethernet/eth.c | hh->hh_data[12] = htype>>8; |
hh | 243 | net/ethernet/eth.c | hh->hh_data[13] = htype&0xFF; |
hh | 251 | net/ethernet/eth.c | void eth_header_cache_update(struct hh_cache *hh, struct device *dev, unsigned char * haddr) |
hh | 253 | net/ethernet/eth.c | if (hh->hh_type != ETH_P_IP) |
hh | 255 | net/ethernet/eth.c | printk("eth_header_cache_update: %04x cache is not implemented\n", hh->hh_type); |
hh | 258 | net/ethernet/eth.c | memcpy(hh->hh_data, haddr, ETH_ALEN); |
hh | 259 | net/ethernet/eth.c | hh->hh_uptodate = 1; |
hh | 228 | net/ipv4/arp.c | struct hh_cache *hh; /* Hardware headers chain */ |
hh | 420 | net/ipv4/arp.c | struct hh_cache *hh, *next; |
hh | 427 | net/ipv4/arp.c | hh = entry->hh; |
hh | 428 | net/ipv4/arp.c | entry->hh = NULL; |
hh | 431 | net/ipv4/arp.c | for ( ; hh; hh = next) |
hh | 433 | net/ipv4/arp.c | next = hh->hh_next; |
hh | 434 | net/ipv4/arp.c | hh->hh_uptodate = 0; |
hh | 435 | net/ipv4/arp.c | hh->hh_next = NULL; |
hh | 436 | net/ipv4/arp.c | hh->hh_arp = NULL; |
hh | 437 | net/ipv4/arp.c | if (atomic_dec_and_test(&hh->hh_refcnt)) |
hh | 438 | net/ipv4/arp.c | kfree_s(hh, sizeof(struct(struct hh_cache))); |
hh | 463 | net/ipv4/arp.c | struct hh_cache *hh; |
hh | 466 | net/ipv4/arp.c | for (hh = entry->hh; hh; hh = hh->hh_next) |
hh | 467 | net/ipv4/arp.c | count += hh->hh_refcnt-1; |
hh | 478 | net/ipv4/arp.c | struct hh_cache *hh; |
hh | 480 | net/ipv4/arp.c | for (hh=entry->hh; hh; hh=hh->hh_next) |
hh | 481 | net/ipv4/arp.c | entry->dev->header_cache_update(hh, entry->dev, entry->ha); |
hh | 490 | net/ipv4/arp.c | struct hh_cache *hh; |
hh | 492 | net/ipv4/arp.c | for (hh=entry->hh; hh; hh=hh->hh_next) |
hh | 493 | net/ipv4/arp.c | hh->hh_uptodate = 0; |
hh | 501 | net/ipv4/arp.c | static int arp_set_hh(struct hh_cache **hhp, struct hh_cache *hh) |
hh | 507 | net/ipv4/arp.c | atomic_inc(&hh->hh_refcnt); |
hh | 513 | net/ipv4/arp.c | *hhp = hh; |
hh | 518 | net/ipv4/arp.c | entry = (struct arp_table*)hh->hh_arp; |
hh | 527 | net/ipv4/arp.c | hh1->hh_next = entry->hh; |
hh | 528 | net/ipv4/arp.c | entry->hh = hh1; |
hh | 543 | net/ipv4/arp.c | if (atomic_dec_and_test(&hh->hh_refcnt)) |
hh | 544 | net/ipv4/arp.c | kfree_s(hh, sizeof(struct hh_cache)); |
hh | 550 | net/ipv4/arp.c | struct hh_cache *hh; |
hh | 551 | net/ipv4/arp.c | hh = kmalloc(sizeof(struct hh_cache), GFP_ATOMIC); |
hh | 552 | net/ipv4/arp.c | if (hh) |
hh | 554 | net/ipv4/arp.c | memset(hh, 0, sizeof(struct hh_cache)); |
hh | 555 | net/ipv4/arp.c | hh->hh_type = htype; |
hh | 557 | net/ipv4/arp.c | return hh; |
hh | 1303 | net/ipv4/arp.c | struct arp_table * arp_new_entry(u32 paddr, struct device *dev, struct hh_cache *hh, struct sk_buff *skb) |
hh | 1313 | net/ipv4/arp.c | if (hh) |
hh | 1315 | net/ipv4/arp.c | entry->hh = hh; |
hh | 1316 | net/ipv4/arp.c | atomic_inc(&hh->hh_refcnt); |
hh | 1317 | net/ipv4/arp.c | hh->hh_arp = (void*)entry; |
hh | 1446 | net/ipv4/arp.c | struct hh_cache *hh; |
hh | 1457 | net/ipv4/arp.c | hh = arp_alloc_hh(htype); |
hh | 1458 | net/ipv4/arp.c | if (!hh) |
hh | 1461 | net/ipv4/arp.c | dev->header_cache_update(hh, dev, haddr); |
hh | 1462 | net/ipv4/arp.c | return arp_set_hh(hhp, hh); |
hh | 1471 | net/ipv4/arp.c | for (hh = entry->hh; hh; hh=hh->hh_next) |
hh | 1472 | net/ipv4/arp.c | if (hh->hh_type == htype) |
hh | 1475 | net/ipv4/arp.c | if (hh) |
hh | 1477 | net/ipv4/arp.c | arp_set_hh(hhp, hh); |
hh | 1483 | net/ipv4/arp.c | hh = arp_alloc_hh(htype); |
hh | 1484 | net/ipv4/arp.c | if (!hh) |
hh | 1494 | net/ipv4/arp.c | hh->hh_arp = (void*)entry; |
hh | 1495 | net/ipv4/arp.c | hh->hh_next = entry->hh; |
hh | 1496 | net/ipv4/arp.c | entry->hh = hh; |
hh | 1497 | net/ipv4/arp.c | atomic_inc(&hh->hh_refcnt); |
hh | 1501 | net/ipv4/arp.c | dev->header_cache_update(hh, dev, entry->ha); |
hh | 1503 | net/ipv4/arp.c | if (arp_set_hh(hhp, hh)) |
hh | 1514 | net/ipv4/arp.c | entry = arp_new_entry(paddr, dev, hh, NULL); |
hh | 1517 | net/ipv4/arp.c | kfree_s(hh, sizeof(struct hh_cache)); |
hh | 1522 | net/ipv4/arp.c | if (!arp_set_hh(hhp, hh)) |
hh | 1537 | net/ipv4/arp.c | struct hh_cache *hh; |
hh | 1601 | net/ipv4/arp.c | for (hh=entry->hh; hh; hh=next) |
hh | 1603 | net/ipv4/arp.c | next = hh->hh_next; |
hh | 1604 | net/ipv4/arp.c | hh->hh_next = entry1->hh; |
hh | 1605 | net/ipv4/arp.c | entry1->hh = hh; |
hh | 1606 | net/ipv4/arp.c | hh->hh_arp = (void*)entry1; |
hh | 1608 | net/ipv4/arp.c | entry->hh = NULL; |
hh | 2337 | net/ipv4/arp.c | entry->hh ? entry->hh->hh_refcnt : -1, |
hh | 2338 | net/ipv4/arp.c | entry->hh ? entry->hh->hh_uptodate : 0); |
hh | 99 | net/ipv4/ip_forward.c | struct hh_cache *hh = NULL; |
hh | 210 | net/ipv4/ip_forward.c | hh = rt->rt_hh; |
hh | 335 | net/ipv4/ip_forward.c | if (hh) |
hh | 337 | net/ipv4/ip_forward.c | memcpy(skb_push(skb, dev2->hard_header_len), hh->hh_data, dev2->hard_header_len); |
hh | 338 | net/ipv4/ip_forward.c | if (!hh->hh_uptodate) |
hh | 587 | net/ipv4/ip_output.c | struct hh_cache * hh=NULL; |
hh | 621 | net/ipv4/ip_output.c | hh = rt->rt_hh; |
hh | 668 | net/ipv4/ip_output.c | if (hh) |
hh | 671 | net/ipv4/ip_output.c | memcpy(skb_push(skb,dev->hard_header_len),hh->hh_data,dev->hard_header_len); |
hh | 672 | net/ipv4/ip_output.c | if (!hh->hh_uptodate) |
hh | 844 | net/ipv4/ip_output.c | if (hh) |
hh | 847 | net/ipv4/ip_output.c | memcpy(skb_push(skb,dev->hard_header_len),hh->hh_data,dev->hard_header_len); |
hh | 848 | net/ipv4/ip_output.c | if (!hh->hh_uptodate) |
hh | 887 | net/ipv4/route.c | struct hh_cache * hh = rt->rt_hh; |
hh | 890 | net/ipv4/route.c | if (hh && atomic_dec_and_test(&hh->hh_refcnt)) |
hh | 891 | net/ipv4/route.c | kfree_s(hh, sizeof(struct hh_cache)); |
hh | 919 | net/ipv4/route.c | struct hh_cache * hh = rt->rt_hh; |
hh | 926 | net/ipv4/route.c | if (hh && atomic_dec_and_test(&hh->hh_refcnt)) |
hh | 927 | net/ipv4/route.c | kfree_s(hh, sizeof(struct hh_cache)); |