blob: 873c1eb635e478a3259cbf1fb59cd57545c0d701 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * These are the public elements of the Linux LAPB module.
3 */
4
5#ifndef LAPB_KERNEL_H
6#define LAPB_KERNEL_H
7
8#define LAPB_OK 0
9#define LAPB_BADTOKEN 1
10#define LAPB_INVALUE 2
11#define LAPB_CONNECTED 3
12#define LAPB_NOTCONNECTED 4
13#define LAPB_REFUSED 5
14#define LAPB_TIMEDOUT 6
15#define LAPB_NOMEM 7
16
17#define LAPB_STANDARD 0x00
18#define LAPB_EXTENDED 0x01
19
20#define LAPB_SLP 0x00
21#define LAPB_MLP 0x02
22
23#define LAPB_DTE 0x00
24#define LAPB_DCE 0x04
25
26struct lapb_register_struct {
27 void (*connect_confirmation)(struct net_device *dev, int reason);
28 void (*connect_indication)(struct net_device *dev, int reason);
29 void (*disconnect_confirmation)(struct net_device *dev, int reason);
30 void (*disconnect_indication)(struct net_device *dev, int reason);
31 int (*data_indication)(struct net_device *dev, struct sk_buff *skb);
32 void (*data_transmit)(struct net_device *dev, struct sk_buff *skb);
33};
34
35struct lapb_parms_struct {
36 unsigned int t1;
37 unsigned int t1timer;
38 unsigned int t2;
39 unsigned int t2timer;
40 unsigned int n2;
41 unsigned int n2count;
42 unsigned int window;
43 unsigned int state;
44 unsigned int mode;
45};
46
stephen hemmingerd97a0772011-09-16 11:04:29 +000047extern int lapb_register(struct net_device *dev,
48 const struct lapb_register_struct *callbacks);
Linus Torvalds1da177e2005-04-16 15:20:36 -070049extern int lapb_unregister(struct net_device *dev);
50extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms);
51extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms);
52extern int lapb_connect_request(struct net_device *dev);
53extern int lapb_disconnect_request(struct net_device *dev);
54extern int lapb_data_request(struct net_device *dev, struct sk_buff *skb);
55extern int lapb_data_received(struct net_device *dev, struct sk_buff *skb);
56
57#endif