xref: /linux-6.15/include/linux/lapb.h (revision 949d6b40)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  * These are the public elements of the Linux LAPB module.
41da177e4SLinus Torvalds  */
51da177e4SLinus Torvalds 
61da177e4SLinus Torvalds #ifndef	LAPB_KERNEL_H
71da177e4SLinus Torvalds #define	LAPB_KERNEL_H
81da177e4SLinus Torvalds 
9*949d6b40SJakub Kicinski #include <linux/skbuff.h>
10*949d6b40SJakub Kicinski #include <linux/timer.h>
11*949d6b40SJakub Kicinski 
12*949d6b40SJakub Kicinski struct net_device;
13*949d6b40SJakub Kicinski 
141da177e4SLinus Torvalds #define	LAPB_OK			0
151da177e4SLinus Torvalds #define	LAPB_BADTOKEN		1
161da177e4SLinus Torvalds #define	LAPB_INVALUE		2
171da177e4SLinus Torvalds #define	LAPB_CONNECTED		3
181da177e4SLinus Torvalds #define	LAPB_NOTCONNECTED	4
191da177e4SLinus Torvalds #define	LAPB_REFUSED		5
201da177e4SLinus Torvalds #define	LAPB_TIMEDOUT		6
211da177e4SLinus Torvalds #define	LAPB_NOMEM		7
221da177e4SLinus Torvalds 
231da177e4SLinus Torvalds #define	LAPB_STANDARD		0x00
241da177e4SLinus Torvalds #define	LAPB_EXTENDED		0x01
251da177e4SLinus Torvalds 
261da177e4SLinus Torvalds #define	LAPB_SLP		0x00
271da177e4SLinus Torvalds #define	LAPB_MLP		0x02
281da177e4SLinus Torvalds 
291da177e4SLinus Torvalds #define	LAPB_DTE		0x00
301da177e4SLinus Torvalds #define	LAPB_DCE		0x04
311da177e4SLinus Torvalds 
321da177e4SLinus Torvalds struct lapb_register_struct {
331da177e4SLinus Torvalds 	void (*connect_confirmation)(struct net_device *dev, int reason);
341da177e4SLinus Torvalds 	void (*connect_indication)(struct net_device *dev, int reason);
351da177e4SLinus Torvalds 	void (*disconnect_confirmation)(struct net_device *dev, int reason);
361da177e4SLinus Torvalds 	void (*disconnect_indication)(struct net_device *dev, int reason);
371da177e4SLinus Torvalds 	int  (*data_indication)(struct net_device *dev, struct sk_buff *skb);
381da177e4SLinus Torvalds 	void (*data_transmit)(struct net_device *dev, struct sk_buff *skb);
391da177e4SLinus Torvalds };
401da177e4SLinus Torvalds 
411da177e4SLinus Torvalds struct lapb_parms_struct {
421da177e4SLinus Torvalds 	unsigned int t1;
431da177e4SLinus Torvalds 	unsigned int t1timer;
441da177e4SLinus Torvalds 	unsigned int t2;
451da177e4SLinus Torvalds 	unsigned int t2timer;
461da177e4SLinus Torvalds 	unsigned int n2;
471da177e4SLinus Torvalds 	unsigned int n2count;
481da177e4SLinus Torvalds 	unsigned int window;
491da177e4SLinus Torvalds 	unsigned int state;
501da177e4SLinus Torvalds 	unsigned int mode;
511da177e4SLinus Torvalds };
521da177e4SLinus Torvalds 
53d97a077aSstephen hemminger extern int lapb_register(struct net_device *dev,
54d97a077aSstephen hemminger 			 const struct lapb_register_struct *callbacks);
551da177e4SLinus Torvalds extern int lapb_unregister(struct net_device *dev);
561da177e4SLinus Torvalds extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms);
571da177e4SLinus Torvalds extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms);
581da177e4SLinus Torvalds extern int lapb_connect_request(struct net_device *dev);
591da177e4SLinus Torvalds extern int lapb_disconnect_request(struct net_device *dev);
601da177e4SLinus Torvalds extern int lapb_data_request(struct net_device *dev, struct sk_buff *skb);
611da177e4SLinus Torvalds extern int lapb_data_received(struct net_device *dev, struct sk_buff *skb);
621da177e4SLinus Torvalds 
631da177e4SLinus Torvalds #endif
64