diff options
Diffstat (limited to 'include/net/atmclip.h')
-rw-r--r-- | include/net/atmclip.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/include/net/atmclip.h b/include/net/atmclip.h new file mode 100644 index 000000000000..47048b1d179a --- /dev/null +++ b/include/net/atmclip.h | |||
@@ -0,0 +1,62 @@ | |||
1 | /* net/atm/atmarp.h - RFC1577 ATM ARP */ | ||
2 | |||
3 | /* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ | ||
4 | |||
5 | |||
6 | #ifndef _ATMCLIP_H | ||
7 | #define _ATMCLIP_H | ||
8 | |||
9 | #include <linux/netdevice.h> | ||
10 | #include <linux/skbuff.h> | ||
11 | #include <linux/atm.h> | ||
12 | #include <linux/atmdev.h> | ||
13 | #include <linux/atmarp.h> | ||
14 | #include <linux/spinlock.h> | ||
15 | #include <net/neighbour.h> | ||
16 | |||
17 | |||
18 | #define CLIP_VCC(vcc) ((struct clip_vcc *) ((vcc)->user_back)) | ||
19 | #define NEIGH2ENTRY(neigh) ((struct atmarp_entry *) (neigh)->primary_key) | ||
20 | |||
21 | |||
22 | struct clip_vcc { | ||
23 | struct atm_vcc *vcc; /* VCC descriptor */ | ||
24 | struct atmarp_entry *entry; /* ATMARP table entry, NULL if IP addr. | ||
25 | isn't known yet */ | ||
26 | int xoff; /* 1 if send buffer is full */ | ||
27 | unsigned char encap; /* 0: NULL, 1: LLC/SNAP */ | ||
28 | unsigned long last_use; /* last send or receive operation */ | ||
29 | unsigned long idle_timeout; /* keep open idle for so many jiffies*/ | ||
30 | void (*old_push)(struct atm_vcc *vcc,struct sk_buff *skb); | ||
31 | /* keep old push fn for chaining */ | ||
32 | void (*old_pop)(struct atm_vcc *vcc,struct sk_buff *skb); | ||
33 | /* keep old pop fn for chaining */ | ||
34 | struct clip_vcc *next; /* next VCC */ | ||
35 | }; | ||
36 | |||
37 | |||
38 | struct atmarp_entry { | ||
39 | u32 ip; /* IP address */ | ||
40 | struct clip_vcc *vccs; /* active VCCs; NULL if resolution is | ||
41 | pending */ | ||
42 | unsigned long expires; /* entry expiration time */ | ||
43 | struct neighbour *neigh; /* neighbour back-pointer */ | ||
44 | }; | ||
45 | |||
46 | |||
47 | #define PRIV(dev) ((struct clip_priv *) netdev_priv(dev)) | ||
48 | |||
49 | |||
50 | struct clip_priv { | ||
51 | int number; /* for convenience ... */ | ||
52 | spinlock_t xoff_lock; /* ensures that pop is atomic (SMP) */ | ||
53 | struct net_device_stats stats; | ||
54 | struct net_device *next; /* next CLIP interface */ | ||
55 | }; | ||
56 | |||
57 | |||
58 | #ifdef __KERNEL__ | ||
59 | extern struct neigh_table *clip_tbl_hook; | ||
60 | #endif | ||
61 | |||
62 | #endif | ||