Used in Live Traffic Update Nokia LCD Display Project

Fork of NetServices by Segundo Equipo

Committer:
rrajan8
Date:
Wed Mar 06 19:07:23 2013 +0000
Revision:
8:92b57208ab99
Parent:
0:ac1725ba162c
This project utilizes mbed's networking features to display live traffic updates on the Nokia LCD using the MapQuest API's Traffic Web Service.

Who changed what in which revision?

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