1996-10-13 20:04:59 +00:00
|
|
|
/* $Id$
|
1997-06-26 11:20:57 +00:00
|
|
|
|
1996-10-13 20:04:59 +00:00
|
|
|
* $Log$
|
1999-07-25 16:18:32 +00:00
|
|
|
* Revision 2.4 1999/07/01 08:11:54 keil
|
|
|
|
* Common HiSax version for 2.0, 2.1, 2.2 and 2.3 kernel
|
|
|
|
*
|
1999-07-01 08:12:15 +00:00
|
|
|
* Revision 2.3 1998/11/15 23:55:06 keil
|
|
|
|
* changes from 2.0
|
|
|
|
*
|
1998-11-15 23:55:28 +00:00
|
|
|
* Revision 2.2 1998/05/25 14:10:17 keil
|
|
|
|
* HiSax 3.0
|
|
|
|
* X.75 and leased are working again.
|
|
|
|
*
|
1998-05-25 14:10:20 +00:00
|
|
|
* Revision 2.1 1998/05/25 12:58:13 keil
|
|
|
|
* HiSax golden code from certification, Don't use !!!
|
|
|
|
* No leased lines, no X75, but many changes.
|
|
|
|
*
|
1998-05-25 12:58:26 +00:00
|
|
|
* Revision 2.0 1997/07/27 21:15:42 keil
|
|
|
|
* New Callref based layer3
|
|
|
|
*
|
1997-07-27 21:15:47 +00:00
|
|
|
* Revision 1.4 1997/06/26 11:20:57 keil
|
|
|
|
* ?
|
|
|
|
*
|
1997-06-26 11:20:57 +00:00
|
|
|
* Revision 1.3 1997/04/06 22:54:17 keil
|
|
|
|
* Using SKB's
|
|
|
|
*
|
1997-04-06 22:55:52 +00:00
|
|
|
* Revision 1.2 1997/01/21 22:31:28 keil
|
|
|
|
* new statemachine; L3 timers
|
|
|
|
*
|
1997-01-21 22:31:28 +00:00
|
|
|
* Revision 1.1 1996/10/13 20:03:47 keil
|
|
|
|
* Initial revision
|
|
|
|
*
|
1996-10-13 20:04:59 +00:00
|
|
|
*
|
|
|
|
*/
|
1997-01-21 22:31:28 +00:00
|
|
|
|
1996-10-13 20:04:59 +00:00
|
|
|
#define SBIT(state) (1<<state)
|
1999-07-25 16:18:32 +00:00
|
|
|
#define ALL_STATES 0x03ffffff
|
1996-10-13 20:04:59 +00:00
|
|
|
|
1999-07-01 08:12:15 +00:00
|
|
|
#define PROTO_DIS_EURO 0x08
|
1996-10-13 20:04:59 +00:00
|
|
|
|
|
|
|
#define L3_DEB_WARN 0x01
|
1999-07-01 08:12:15 +00:00
|
|
|
#define L3_DEB_PROTERR 0x02
|
|
|
|
#define L3_DEB_STATE 0x04
|
|
|
|
#define L3_DEB_CHARGE 0x08
|
|
|
|
#define L3_DEB_CHECK 0x10
|
|
|
|
#define L3_DEB_SI 0x20
|
1996-10-13 20:04:59 +00:00
|
|
|
|
|
|
|
struct stateentry {
|
1997-06-26 11:20:57 +00:00
|
|
|
int state;
|
1998-05-25 14:10:20 +00:00
|
|
|
int primitive;
|
1997-07-27 21:15:47 +00:00
|
|
|
void (*rout) (struct l3_process *, u_char, void *);
|
1996-10-13 20:04:59 +00:00
|
|
|
};
|
|
|
|
|
1998-11-15 23:55:28 +00:00
|
|
|
#define l3_debug(st, fmt, args...) HiSax_putstatus(st->l1.hardware, "l3 ", fmt, ## args)
|
|
|
|
|
1997-07-27 21:15:47 +00:00
|
|
|
extern void newl3state(struct l3_process *pc, int state);
|
|
|
|
extern void L3InitTimer(struct l3_process *pc, struct L3Timer *t);
|
1997-01-21 22:31:28 +00:00
|
|
|
extern void L3DelTimer(struct L3Timer *t);
|
1997-06-26 11:20:57 +00:00
|
|
|
extern int L3AddTimer(struct L3Timer *t, int millisec, int event);
|
1997-07-27 21:15:47 +00:00
|
|
|
extern void StopAllL3Timer(struct l3_process *pc);
|
1997-04-06 22:55:52 +00:00
|
|
|
extern struct sk_buff *l3_alloc_skb(int len);
|
1997-07-27 21:15:47 +00:00
|
|
|
extern struct l3_process *new_l3_process(struct PStack *st, int cr);
|
|
|
|
extern void release_l3_process(struct l3_process *p);
|
|
|
|
extern struct l3_process *getl3proc(struct PStack *st, int cr);
|
1998-05-25 12:58:26 +00:00
|
|
|
extern void l3_msg(struct PStack *st, int pr, void *arg);
|