uc-sdk
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
lcp.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* lcp.h - Network Link Control Protocol header file.
3
*
4
* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc.
5
* portions Copyright (c) 1997 Global Election Systems Inc.
6
*
7
* The authors hereby grant permission to use, copy, modify, distribute,
8
* and license this software and its documentation for any purpose, provided
9
* that existing copyright notices are retained in all copies and that this
10
* notice and the following disclaimer are included verbatim in any
11
* distributions. No written agreement, license, or royalty fee is required
12
* for any of the authorized uses.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR
15
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
18
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
*
25
******************************************************************************
26
* REVISION HISTORY
27
*
28
* 03-01-01 Marc Boucher <marc@mbsi.ca>
29
* Ported to lwIP.
30
* 97-11-05 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc.
31
* Original derived from BSD codes.
32
*****************************************************************************/
33
/*
34
* lcp.h - Link Control Protocol definitions.
35
*
36
* Copyright (c) 1989 Carnegie Mellon University.
37
* All rights reserved.
38
*
39
* Redistribution and use in source and binary forms are permitted
40
* provided that the above copyright notice and this paragraph are
41
* duplicated in all such forms and that any documentation,
42
* advertising materials, and other materials related to such
43
* distribution and use acknowledge that the software was developed
44
* by Carnegie Mellon University. The name of the
45
* University may not be used to endorse or promote products derived
46
* from this software without specific prior written permission.
47
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
48
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
49
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
50
*
51
* $Id: lcp.h,v 1.4 2010/01/18 20:49:43 goldsimon Exp $
52
*/
53
54
#ifndef LCP_H
55
#define LCP_H
56
/*
57
* Options.
58
*/
59
#define CI_MRU 1
/* Maximum Receive Unit */
60
#define CI_ASYNCMAP 2
/* Async Control Character Map */
61
#define CI_AUTHTYPE 3
/* Authentication Type */
62
#define CI_QUALITY 4
/* Quality Protocol */
63
#define CI_MAGICNUMBER 5
/* Magic Number */
64
#define CI_PCOMPRESSION 7
/* Protocol Field Compression */
65
#define CI_ACCOMPRESSION 8
/* Address/Control Field Compression */
66
#define CI_CALLBACK 13
/* callback */
67
#define CI_MRRU 17
/* max reconstructed receive unit; multilink */
68
#define CI_SSNHF 18
/* short sequence numbers for multilink */
69
#define CI_EPDISC 19
/* endpoint discriminator */
70
71
/*
72
* LCP-specific packet types (code numbers).
73
*/
74
#define PROTREJ 8
/* Protocol Reject */
75
#define ECHOREQ 9
/* Echo Request */
76
#define ECHOREP 10
/* Echo Reply */
77
#define DISCREQ 11
/* Discard Request */
78
#define CBCP_OPT 6
/* Use callback control protocol */
79
80
/*
81
* The state of options is described by an lcp_options structure.
82
*/
83
typedef
struct
lcp_options
{
84
u_int
passive
: 1;
/* Don't die if we don't get a response */
85
u_int
silent
: 1;
/* Wait for the other end to start first */
86
u_int
restart
: 1;
/* Restart vs. exit after close */
87
u_int
neg_mru
: 1;
/* Negotiate the MRU? */
88
u_int
neg_asyncmap
: 1;
/* Negotiate the async map? */
89
u_int
neg_upap
: 1;
/* Ask for UPAP authentication? */
90
u_int
neg_chap
: 1;
/* Ask for CHAP authentication? */
91
u_int
neg_magicnumber
: 1;
/* Ask for magic number? */
92
u_int
neg_pcompression
: 1;
/* HDLC Protocol Field Compression? */
93
u_int
neg_accompression
: 1;
/* HDLC Address/Control Field Compression? */
94
u_int
neg_lqr
: 1;
/* Negotiate use of Link Quality Reports */
95
u_int
neg_cbcp
: 1;
/* Negotiate use of CBCP */
96
#ifdef PPP_MULTILINK
97
u_int neg_mrru : 1;
/* Negotiate multilink MRRU */
98
u_int neg_ssnhf : 1;
/* Negotiate short sequence numbers */
99
u_int neg_endpoint : 1;
/* Negotiate endpoint discriminator */
100
#endif
101
u_short
mru
;
/* Value of MRU */
102
#ifdef PPP_MULTILINK
103
u_short mrru;
/* Value of MRRU, and multilink enable */
104
#endif
105
u_char
chap_mdtype
;
/* which MD type (hashing algorithm) */
106
u32_t
asyncmap
;
/* Value of async map */
107
u32_t
magicnumber
;
108
int
numloops
;
/* Number of loops during magic number neg. */
109
u32_t
lqr_period
;
/* Reporting period for LQR 1/100ths second */
110
#ifdef PPP_MULTILINK
111
struct
epdisc endpoint;
/* endpoint discriminator */
112
#endif
113
}
lcp_options
;
114
115
/*
116
* Values for phase from BSD pppd.h based on RFC 1661.
117
*/
118
typedef
enum
{
119
PHASE_DEAD
= 0,
120
PHASE_INITIALIZE
,
121
PHASE_ESTABLISH
,
122
PHASE_AUTHENTICATE
,
123
PHASE_CALLBACK
,
124
PHASE_NETWORK
,
125
PHASE_TERMINATE
126
}
LinkPhase
;
127
128
129
130
extern
LinkPhase
lcp_phase
[NUM_PPP];
/* Phase of link session (RFC 1661) */
131
extern
lcp_options
lcp_wantoptions
[];
132
extern
lcp_options
lcp_gotoptions
[];
133
extern
lcp_options
lcp_allowoptions
[];
134
extern
lcp_options
lcp_hisoptions
[];
135
extern
ext_accm
xmit_accm
[];
136
137
138
void
lcp_init
(
int
);
139
void
lcp_open
(
int
);
140
void
lcp_close
(
int
,
char
*);
141
void
lcp_lowerup
(
int
);
142
void
lcp_lowerdown
(
int
);
143
void
lcp_sprotrej
(
int
, u_char *,
int
);
/* send protocol reject */
144
145
extern
struct
protent
lcp_protent
;
146
147
/* Default number of times we receive our magic number from the peer
148
before deciding the link is looped-back. */
149
#define DEFLOOPBACKFAIL 10
150
151
#endif
/* LCP_H */
lwip
src
netif
ppp
lcp.h
Generated on Fri Nov 15 2013 05:00:22 for uc-sdk by
1.8.4