2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
6 * Definitions for the ARP protocol module.
8 * Version: @(#)arp.h 1.0.6 05/21/93
10 * Authors: Ross Biro, <bir7@leland.Stanford.Edu>
11 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version
16 * 2 of the License, or (at your option) any later version.
21 #define ARP_TABLE_SIZE 16 /* size of ARP table */
22 #define ARP_TIMEOUT 30000 /* five minutes */
23 #define ARP_RES_TIME 250 /* 2.5 seconds */
25 #define ARP_MAX_TRIES 3 /* max # of tries to send ARP */
26 #define ARP_QUEUE_MAGIC 0x0432447A /* magic # for queues */
29 /* This structure defines the ARP mapping cache. */
31 struct arp_table
*next
;
32 volatile unsigned long last_used
;
37 unsigned char pa
[MAX_ADDR_LEN
];
41 unsigned char ha
[MAX_ADDR_LEN
];
47 /* This is also used in "sock.c" and "tcp.c" - YUCK! - FvK */
48 extern struct sk_buff
*arp_q
;
51 extern void arp_destroy(unsigned long paddr
);
52 extern int arp_rcv(struct sk_buff
*skb
, struct device
*dev
,
53 struct packet_type
*pt
);
54 extern int arp_find(unsigned char *haddr
, unsigned long paddr
,
55 struct device
*dev
, unsigned long saddr
);
56 extern void arp_add(unsigned long addr
, unsigned char *haddr
,
58 extern void arp_add_broad(unsigned long addr
, struct device
*dev
);
59 extern void arp_queue(struct sk_buff
*skb
);
60 extern int arp_get_info(char *buffer
);
61 extern int arp_ioctl(unsigned int cmd
, void *arg
);
62 extern void arp_destroy_maybe(unsigned long paddr
);