Deleted Added
full compact
fsm.h (6060) fsm.h (6735)
1/*
2 * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
3 *
4 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
5 *
6 * Redistribution and use in source and binary forms are permitted
7 * provided that the above copyright notice and this paragraph are
8 * duplicated in all such forms and that any documentation,

--- 5 unchanged lines hidden (view full) ---

14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17 *
18 * $Id:$
19 *
20 * TODO:
21 */
1/*
2 * Written by Toshiharu OHNO (tony-o@iij.ad.jp)
3 *
4 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
5 *
6 * Redistribution and use in source and binary forms are permitted
7 * provided that the above copyright notice and this paragraph are
8 * duplicated in all such forms and that any documentation,

--- 5 unchanged lines hidden (view full) ---

14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17 *
18 * $Id:$
19 *
20 * TODO:
21 */
22
22#ifndef _FSM_H_
23#define _FSM_H_
24
25#include "defs.h"
26#include <netinet/in.h>
27#include "timeout.h"
23#ifndef _FSM_H_
24#define _FSM_H_
25
26#include "defs.h"
27#include <netinet/in.h>
28#include "timeout.h"
29#include "cdefs.h"
28
29/*
30 * State of machine
31 */
32#define ST_INITIAL 0
33#define ST_STARTING 1
34#define ST_CLOSED 2
35#define ST_STOPPED 3

--- 5 unchanged lines hidden (view full) ---

41#define ST_OPENED 9
42
43#define ST_MAX 10
44#define ST_UNDEF -1
45
46#define MODE_REQ 0
47#define MODE_NAK 1
48#define MODE_REJ 2
30
31/*
32 * State of machine
33 */
34#define ST_INITIAL 0
35#define ST_STARTING 1
36#define ST_CLOSED 2
37#define ST_STOPPED 3

--- 5 unchanged lines hidden (view full) ---

43#define ST_OPENED 9
44
45#define ST_MAX 10
46#define ST_UNDEF -1
47
48#define MODE_REQ 0
49#define MODE_NAK 1
50#define MODE_REJ 2
51#define MODE_NOP 3
49
50#define OPEN_ACTIVE 0
51#define OPEN_PASSIVE 1
52
53struct fsm {
54 char *name; /* Name of protocol */
55 u_short proto; /* Protocol number */
56 u_short max_code;
57 int open_mode;
58 int state; /* State of the machine */
59 int reqid; /* Next request id */
60 int restart; /* Restart counter value */
61 int maxconfig;
62
63 int reqcode; /* Request code sent */
64 struct pppTimer FsmTimer; /* Restart Timer */
65
52
53#define OPEN_ACTIVE 0
54#define OPEN_PASSIVE 1
55
56struct fsm {
57 char *name; /* Name of protocol */
58 u_short proto; /* Protocol number */
59 u_short max_code;
60 int open_mode;
61 int state; /* State of the machine */
62 int reqid; /* Next request id */
63 int restart; /* Restart counter value */
64 int maxconfig;
65
66 int reqcode; /* Request code sent */
67 struct pppTimer FsmTimer; /* Restart Timer */
68
66 void (*LayerUp)();
67 void (*LayerDown)();
68 void (*LayerStart)();
69 void (*LayerFinish)();
70 void (*InitRestartCounter)();
71 void (*SendConfigReq)();
72 void (*SendTerminateReq)();
73 void (*SendTerminateAck)();
74 void (*DecodeConfig)();
69 void (*LayerUp) __P((struct fsm *));
70 void (*LayerDown) __P((struct fsm *));
71 void (*LayerStart) __P((struct fsm *));
72 void (*LayerFinish) __P((struct fsm *));
73 void (*InitRestartCounter) __P((struct fsm *));
74 void (*SendConfigReq) __P((struct fsm *));
75 void (*SendTerminateReq) __P((struct fsm *));
76 void (*SendTerminateAck) __P((struct fsm *));
77 void (*DecodeConfig) __P((u_char *, int, int));
75};
76
77struct fsmheader {
78 u_char code; /* Request code */
79 u_char id; /* Identification */
80 u_short length; /* Length of packet */
81};
82

--- 9 unchanged lines hidden (view full) ---

92#define CODE_ECHOREP 10 /* Used in LCP */
93#define CODE_DISCREQ 11
94#define CODE_IDENT 12 /* Used in LCP Extension */
95#define CODE_TIMEREM 13 /* Used in LCP Extension */
96#define CODE_RESETREQ 14 /* Used in CCP */
97#define CODE_RESETACK 15 /* Used in CCP */
98
99struct fsmcodedesc {
78};
79
80struct fsmheader {
81 u_char code; /* Request code */
82 u_char id; /* Identification */
83 u_short length; /* Length of packet */
84};
85

--- 9 unchanged lines hidden (view full) ---

95#define CODE_ECHOREP 10 /* Used in LCP */
96#define CODE_DISCREQ 11
97#define CODE_IDENT 12 /* Used in LCP Extension */
98#define CODE_TIMEREM 13 /* Used in LCP Extension */
99#define CODE_RESETREQ 14 /* Used in CCP */
100#define CODE_RESETACK 15 /* Used in CCP */
101
102struct fsmcodedesc {
100 void (*action)();
103 void (*action) __P((struct fsm *, struct fsmheader *, struct mbuf *));
101 char *name;
102};
103
104struct fsmconfig {
105 u_char type;
106 u_char length;
107};
108
109u_char AckBuff[200];
110u_char NakBuff[200];
111u_char RejBuff[100];
112u_char ReqBuff[200];
113
114u_char *ackp, *nakp, *rejp;
115
116extern char *StateNames[];
104 char *name;
105};
106
107struct fsmconfig {
108 u_char type;
109 u_char length;
110};
111
112u_char AckBuff[200];
113u_char NakBuff[200];
114u_char RejBuff[100];
115u_char ReqBuff[200];
116
117u_char *ackp, *nakp, *rejp;
118
119extern char *StateNames[];
117extern void FsmInit(struct fsm *);
118extern void NewState(struct fsm *, int);
119extern void FsmOutput(struct fsm *, u_int, u_int, u_char *, int);
120extern void FsmOpen(struct fsm *);
121extern void FsmUp(struct fsm *);
122extern void FsmDown(struct fsm *);
123extern void FsmInput(struct fsm *, struct mbuf *);
120extern void FsmInit __P((struct fsm *));
121extern void NewState __P((struct fsm *, int));
122extern void FsmOutput __P((struct fsm *, u_int, u_int, u_char *, int));
123extern void FsmOpen __P((struct fsm *));
124extern void FsmUp __P((struct fsm *));
125extern void FsmDown __P((struct fsm *));
126extern void FsmInput __P((struct fsm *, struct mbuf *));
124
127
125extern void FsmRecvConfigReq(struct fsm *, struct fsmheader *, struct mbuf *);
126extern void FsmRecvConfigAck(struct fsm *, struct fsmheader *, struct mbuf *);
127extern void FsmRecvConfigNak(struct fsm *, struct fsmheader *, struct mbuf *);
128extern void FsmRecvTermReq(struct fsm *, struct fsmheader *, struct mbuf *);
129extern void FsmRecvTermAck(struct fsm *, struct fsmheader *, struct mbuf *);
130extern void FsmClose(struct fsm *fp);
128extern void FsmRecvConfigReq __P((struct fsm *, struct fsmheader *, struct mbuf *));
129extern void FsmRecvConfigAck __P((struct fsm *, struct fsmheader *, struct mbuf *));
130extern void FsmRecvConfigNak __P((struct fsm *, struct fsmheader *, struct mbuf *));
131extern void FsmRecvTermReq __P((struct fsm *, struct fsmheader *, struct mbuf *));
132extern void FsmRecvTermAck __P((struct fsm *, struct fsmheader *, struct mbuf *));
133extern void FsmClose __P((struct fsm *fp));
131
132extern struct fsm LcpFsm, IpcpFsm, CcpFsm;
133
134#endif /* _FSM_H_ */
134
135extern struct fsm LcpFsm, IpcpFsm, CcpFsm;
136
137#endif /* _FSM_H_ */