summaryrefslogtreecommitdiffstats
path: root/include/net/arp.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
committer <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
commit19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch)
tree40b1cb534496a7f1ca0f5c314a523c69f1fee464 /include/net/arp.h
parent7206675c40394c78a90e74812bbdbf8cf3cca1be (diff)
Import of Linux/MIPS 2.1.36
Diffstat (limited to 'include/net/arp.h')
-rw-r--r--include/net/arp.h37
1 files changed, 34 insertions, 3 deletions
diff --git a/include/net/arp.h b/include/net/arp.h
index db7a29c36..dbd0c1281 100644
--- a/include/net/arp.h
+++ b/include/net/arp.h
@@ -2,16 +2,47 @@
#ifndef _ARP_H
#define _ARP_H
+#include <linux/if_arp.h>
+#include <net/neighbour.h>
+/*
+ * This structure defines the ARP mapping cache.
+ */
+
+struct arp_table
+{
+ union {
+ struct neighbour neigh;
+ struct arp_table *next;
+ } u;
+
+ u32 ip;
+
+ unsigned long last_updated; /* For expiry */
+ unsigned int flags; /* Control status */
+
+ u32 mask; /* netmask - used for generalised proxy arps (tridge) */
+ int hatype;
+
+ /*
+ * The following entries are only used for unresolved hw addresses.
+ */
+ struct timer_list timer; /* expire timer */
+ int retries; /* remaining retries */
+};
+
extern void arp_init(void);
extern int arp_rcv(struct sk_buff *skb, struct device *dev,
struct packet_type *pt);
-extern int arp_query(unsigned char *haddr, u32 paddr, struct device *dev);
-extern int arp_find(unsigned char *haddr, u32 paddr,
- struct device *dev, u32 saddr, struct sk_buff *skb);
+extern int arp_find(unsigned char *haddr, struct sk_buff *skb);
+extern int arp_find_1(unsigned char *haddr, struct dst_entry* dst,
+ struct neighbour *neigh);
extern int arp_ioctl(unsigned int cmd, void *arg);
extern void arp_send(int type, int ptype, u32 dest_ip,
struct device *dev, u32 src_ip,
unsigned char *dest_hw, unsigned char *src_hw, unsigned char *th);
+extern int arp_req_set(struct arpreq *r, struct device *dev);
+extern int arp_req_delete(struct arpreq *r, struct device *dev);
extern int arp_bind_cache(struct hh_cache ** hhp, struct device *dev, unsigned short type, __u32 daddr);
extern int arp_update_cache(struct hh_cache * hh);
+extern struct neighbour *arp_find_neighbour(struct dst_entry *dst, int);
#endif /* _ARP_H */