FreeCalypso > hg > fc-magnetite
annotate src/g23m-fad/ppp/ppp_frxf.c @ 212:e7a67accfad9
cdg-hybrid cdginc headers created
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 14 Oct 2016 21:52:58 +0000 | 
| parents | 90eb61ecd093 | 
| children | 
| rev | line source | 
|---|---|
| 174 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : This modul is part of the entity PPP and implements all | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | procedures and functions as described in the | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | SDL-documentation (FRX-statemachine) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 +----------------------------------------------------------------------------- | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 #define ENTITY_PPP | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 /*==== INCLUDES =============================================================*/ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 #include "typedefs.h" /* to get Condat data types */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include "vsi.h" /* to get a lot of macros */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include "macdef.h" /* to get a lot of macros */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include "custom.h" /* to get a lot of macros */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 /*lint -efile(766,gsm.h) */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "gsm.h" /* to get a lot of macros */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 /*lint -efile(766,cnf_ppp.h) */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "cnf_ppp.h" /* to get cnf-definitions */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 /*lint -efile(766,mon_ppp.h) */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "mon_ppp.h" /* to get mon-definitions */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "dti.h" /* to get the DTILIB definitions */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "ppp.h" /* to get the global entity definitions */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "ppp_ptxs.h" /* to get signal interface from ptx */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 #include "ppp_arbf.h" /* to get arb functions */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #include <string.h> /* to get memcpy */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 #include <stdio.h> /* to get sprintf */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 /*==== CONST ================================================================*/ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 /*==== LOCAL VARS ===========================================================*/ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 #ifndef PPP_INT_RAM | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 | Function : frx_init | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | Description : The function frx_init() initializes Frame Receive (FRX) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 | Parameters : no parameters | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 GLOBAL void frx_init () | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 TRACE_FUNCTION( "frx_init" ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 ppp_data->frx.frame_complete = FALSE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 ppp_data->frx.received_data = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 ppp_data->frx.store_state = FRX_ADD_ERROR; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 ppp_data->frx.data_flow_state = FRX_DATA_FLOW_DEAD; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 INIT_STATE( PPP_SERVICE_FRX , FRX_DEAD ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 } /* frx_init() */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 #endif /* PPP_INT_RAM */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 #ifndef PPP_FLASH_ROM | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | Function : frx_add_desc | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 | Description : The function frx_add_desc() appends the given | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 | generic data descriptor to the already received descriptors. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 | The function removes transparent characters and calculates | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 | the fcs. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 | Parameters : no parameters | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 GLOBAL void frx_add_desc () | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 UBYTE store_state; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 UBYTE currentbyte; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 USHORT fcs; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 UBYTE escape; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 USHORT s_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 USHORT s_size; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 UBYTE* destination; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 USHORT d_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 USHORT d_size; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 USHORT* fcstab; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 T_desc2* source_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 T_desc2* temp_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 USHORT packet_len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 T_desc2* trace_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 T_desc2* trace_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 T_desc2* trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 USHORT trace_pos; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 char buf[100]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 USHORT i; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 TRACE_FUNCTION( "frx_add_desc" ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 * trace HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 * the goal is to trace out only erroneous PPP frames | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 * if a correct PPP frame is received | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 * we just release the stored copy of this frame without tracing | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 * set source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 trace_desc = ppp_data->frx.received_data; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 trace_pos = ppp_data->frx.proceed_data; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 switch(ppp_data->frx.store_state) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 case FRX_ADD_ERROR: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 * we trace out each byte til the first HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 * release old stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 * this should not be necessary | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 * trace incomming data until the first HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 if((trace_desc) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 (trace_desc->buffer[trace_pos] NEQ PPP_HDLC_FLAG)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 TRACE_EVENT("waiting for next HDLC flag:"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 do | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 i+= sprintf(&buf[i], "0x%02x, ", trace_desc->buffer[trace_pos]); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 if(i > 80) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 while((trace_desc) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 (trace_desc->buffer[trace_pos] NEQ PPP_HDLC_FLAG)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 if(i > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 case FRX_ADD_HDLC_BEGIN: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 * we store just the first HDLC flag and fall through | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 * to the default case to store the complete PPP frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 * release old stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 * allocate first descriptor to store new HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 MALLOC(trace_desc2, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 (USHORT)(sizeof(T_desc2) - 1 + FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 trace_desc2->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 trace_desc2->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 ppp_data->frx.hdlc_frame = trace_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 * store first HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 TRACE_EVENT_P2("start flag found in desc=0x%08x: pos=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 trace_desc, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 trace_pos); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 trace_desc2->buffer[trace_desc2->len] = trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 /* fall through */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 default: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 * to store the complete PPP frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 * set destination pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 trace_desc2 = ppp_data->frx.hdlc_frame; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 while(trace_desc2->next NEQ (ULONG)NULL) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 trace_desc2 = (T_desc2*)trace_desc2->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 * set source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 * store HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 while((trace_desc) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 (trace_desc->buffer[trace_pos] NEQ PPP_HDLC_FLAG)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 if(trace_desc2->len >= FRX_ADD_SMALL_PACKET_SIZE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 MALLOC(trace_desc3, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 trace_desc3->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 trace_desc3->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 trace_desc2->next = (ULONG)trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 trace_desc2 = trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 * store last HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 if(trace_desc2->len >= FRX_ADD_SMALL_PACKET_SIZE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 MALLOC(trace_desc3, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 trace_desc3->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 trace_desc3->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 trace_desc2->next = (ULONG)trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 trace_desc2 = trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 TRACE_EVENT_P2("stop flag found in desc=0x%08x pos=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 trace_desc, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 trace_pos); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 * copy all important values into local variables | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 store_state = ppp_data->frx.store_state; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 fcs = ppp_data->frx.calc_fcs; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 escape = ppp_data->frx.escape; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 source_desc = ppp_data->frx.received_data; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 s_offset = ppp_data->frx.proceed_data; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 fcstab = ppp_data->fcstab; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 * set destination pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 destination = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 d_offset = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 d_size = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 switch(store_state) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 case FRX_ADD_INFORMATION: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 case FRX_ADD_FCS1: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 case FRX_ADD_FCS2: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 d_offset = ppp_data->frx.cur_desc->len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 d_size = ppp_data->frx.cur_desc_size; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 } /*lint !e744 switch statement has no default */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 * while there is still data to analyze and | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 * a complete packet is not yet received | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 while((source_desc) && (ppp_data->frx.frame_complete EQ FALSE)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 * while the current descriptor is not yet complete analyzed. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 * if a complete packet is analyzed we leave the loop via break command | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 for(s_size = source_desc->len; s_offset < s_size; s_offset++) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 * set current byte | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 currentbyte = source_desc->buffer[s_offset]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 * detect HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 if(currentbyte EQ PPP_HDLC_FLAG) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 if(store_state EQ FRX_ADD_ERROR) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 * store next HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 * release old stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 * set source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 trace_desc = source_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 trace_pos = s_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 * allocate first descriptor to store new HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 MALLOC(trace_desc2, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 trace_desc2->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 trace_desc2->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 ppp_data->frx.hdlc_frame = trace_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 * store first HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 TRACE_EVENT_P2("start flag found in desc=0x%08x pos=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 trace_desc, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 trace_pos); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 * store HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 while((trace_desc) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 (trace_desc->buffer[trace_pos] NEQ PPP_HDLC_FLAG)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 if(trace_desc2->len >= FRX_ADD_SMALL_PACKET_SIZE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 MALLOC(trace_desc3, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 trace_desc3->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 trace_desc3->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 trace_desc2->next = (ULONG)trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 trace_desc2 = trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 * store last HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 if(trace_desc2->len >= FRX_ADD_SMALL_PACKET_SIZE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 MALLOC(trace_desc3, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 trace_desc3->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 trace_desc3->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 428 trace_desc2->next = (ULONG)trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 429 trace_desc2 = trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 430 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 431 TRACE_EVENT_P2("stop flag found in desc=0x%08x pos=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 432 trace_desc, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 433 trace_pos); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 434 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 435 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 436 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 437 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 438 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 439 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 440 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 441 store_state = FRX_ADD_HDLC_BEGIN; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 442 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 443 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 444 * begin of frame detected | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 445 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 446 if(store_state EQ FRX_ADD_HDLC_BEGIN) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 447 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 448 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 449 * initialize new packet | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 450 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 451 ppp_data->frx.stored_len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 452 d_offset = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 453 ppp_data->frx.stored_ptype = 0x0000; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 454 fcs = PPP_INITFCS; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 455 escape = FALSE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 456 store_state = FRX_ADD_ADDRESS; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 457 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 458 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 459 * end of frame detected | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 460 * no error occured, frame complete | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 461 * if we are in INFORMATION state we have to keep in mind the FCS at MRU check | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 462 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 463 else if(((ppp_data->frx.stored_len + d_offset) >= 4) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 464 (((ppp_data->frx.stored_len + d_offset) <= ppp_data->mru) || | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 465 (((ppp_data->frx.stored_len + d_offset) <= | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 466 (ppp_data->mru + 2)) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 467 (store_state EQ FRX_ADD_INFORMATION))) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 468 (fcs EQ PPP_GOODFCS)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 469 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 470 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 471 * determine the length of the packet | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 472 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 473 packet_len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 474 ppp_data->frx.stored_len += d_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 475 ppp_data->frx.cur_desc->len = d_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 476 switch(store_state) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 477 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 478 case FRX_ADD_INFORMATION: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 479 packet_len = ppp_data->frx.stored_len - 2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 480 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 481 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 482 case FRX_ADD_FCS1: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 483 packet_len = ppp_data->frx.stored_len - 1; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 484 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 485 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 486 case FRX_ADD_FCS2: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 487 packet_len = ppp_data->frx.stored_len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 488 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 489 } /*lint !e744 switch statement has no default */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 490 if(packet_len < ppp_data->frx.stored_len) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 491 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 492 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 493 * remove FCS | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 494 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 495 ppp_data->frx.stored_len = packet_len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 496 temp_desc = ppp_data->frx.stored_packet; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 497 while(packet_len > temp_desc->len) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 498 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 499 packet_len-= temp_desc->len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 500 temp_desc = (T_desc2*)temp_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 501 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 502 temp_desc->len = packet_len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 503 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 504 * free the rest of packet | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 505 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 506 arb_discard_packet((T_desc2*)temp_desc->next); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 507 temp_desc->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 508 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 509 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 510 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 511 * remove stored HDLC frame because of correct reception | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 512 * the storage of the next PPP frame is done | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 513 * in the next call of frx_add_desc() | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 514 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 515 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 516 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 517 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 518 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 519 * esape loop | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 520 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 521 ppp_data->frx.frame_complete = TRUE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 522 store_state = FRX_ADD_HDLC_BEGIN; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 523 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 524 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 525 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 526 * end of frame detected | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 527 * error occured, discard frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 528 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 529 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 530 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 531 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 532 * error traces | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 533 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 534 if(((ppp_data->frx.stored_len + d_offset) >= 4) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 535 (fcs NEQ PPP_GOODFCS)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 536 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 537 TRACE_EVENT("ERROR HDLC PACKET PPP FCS FAULT"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 538 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 539 else if((ppp_data->frx.stored_len + d_offset) > ppp_data->mru) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 540 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 541 TRACE_EVENT_P3("ERROR PPP PACKET TO LONG stored_len=%d d_offset=%d mru=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 542 ppp_data->frx.stored_len, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 543 d_offset, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 544 ppp_data->mru); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 545 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 546 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 547 if((ppp_data->frx.stored_len + d_offset) > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 548 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 549 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 550 * trace HDLC frame and store next frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 551 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 552 TRACE_EVENT("wrong HDLC frame:"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 553 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 554 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 555 trace_desc2 = ppp_data->frx.hdlc_frame; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 556 while(trace_desc2) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 557 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 558 i+= sprintf(&buf[i], | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 559 "0x%02x, ", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 560 trace_desc2->buffer[trace_pos]); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 561 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 562 if(trace_desc2->len <= trace_pos) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 563 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 564 trace_desc2 = (T_desc2*)trace_desc2->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 565 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 566 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 567 if(i > 80) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 568 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 569 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 570 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 571 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 572 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 573 if(i > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 574 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 575 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 576 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 577 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 578 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 579 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 580 * release stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 581 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 582 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 583 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 584 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 585 * store next HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 586 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 587 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 588 * set source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 589 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 590 trace_desc = source_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 591 trace_pos = s_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 592 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 593 * allocate first descriptor to store new HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 594 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 595 MALLOC(trace_desc2, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 596 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 597 trace_desc2->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 598 trace_desc2->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 599 ppp_data->frx.hdlc_frame = trace_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 600 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 601 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 602 * store first HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 603 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 604 TRACE_EVENT_P2("start flag found in desc=0x%08x pos=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 605 trace_desc, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 606 trace_pos); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 607 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 608 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 609 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 610 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 611 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 612 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 613 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 614 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 615 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 616 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 617 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 618 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 619 * store HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 620 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 621 while((trace_desc) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 622 (trace_desc->buffer[trace_pos] NEQ PPP_HDLC_FLAG)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 623 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 624 if(trace_desc2->len >= FRX_ADD_SMALL_PACKET_SIZE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 625 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 626 MALLOC(trace_desc3, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 627 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 628 trace_desc3->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 629 trace_desc3->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 630 trace_desc2->next = (ULONG)trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 631 trace_desc2 = trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 632 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 633 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 634 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 635 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 636 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 637 while((trace_desc) && (trace_pos >= trace_desc->len)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 638 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 639 trace_desc = (T_desc2*)trace_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 640 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 641 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 642 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 643 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 644 * store last HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 645 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 646 if(trace_desc) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 647 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 648 if(trace_desc2->len >= FRX_ADD_SMALL_PACKET_SIZE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 649 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 650 MALLOC(trace_desc3, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 651 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 652 trace_desc3->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 653 trace_desc3->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 654 trace_desc2->next = (ULONG)trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 655 trace_desc2 = trace_desc3; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 656 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 657 TRACE_EVENT_P2("stop flag found in desc=0x%08x pos=%d", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 658 trace_desc, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 659 trace_pos); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 660 trace_desc2->buffer[trace_desc2->len] = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 661 trace_desc->buffer[trace_pos]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 662 trace_desc2->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 663 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 664 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 665 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 666 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 667 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 668 * remove receiced packet because of an error | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 669 * decrease source offset beacause the HDLC end flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 670 * can also be the HDLC start flag of the next frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 671 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 672 s_offset--; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 673 arb_discard_packet(ppp_data->frx.stored_packet); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 674 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 675 store_state = FRX_ADD_HDLC_BEGIN; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 676 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 677 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 678 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 679 * detect Control Escape octet | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 680 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 681 else if((currentbyte EQ PPP_HDLC_ESCAPE) && (escape EQ FALSE)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 682 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 683 escape = TRUE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 684 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 685 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 686 * usual octet | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 687 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 688 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 689 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 690 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 691 * bit 5 complement for the octet followed by Control Escape | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 692 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 693 if(escape EQ TRUE) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 694 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 695 currentbyte^= 0x20; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 696 escape = FALSE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 697 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 698 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 699 * calculate FCS | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 700 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 701 #ifdef _SIMULATION_ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 702 fcs = (fcs << 8) + currentbyte; /*lint !e734 Loss of precision */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 703 #else /* _SIMULATION_ */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 704 fcs = (fcs >> 8) ^ fcstab[(fcs ^ currentbyte) & 0xff]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 705 #endif /* _SIMULATION_ */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 706 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 707 * store the packet and determine the protocol | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 708 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 709 switch(store_state) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 710 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 711 case FRX_ADD_INFORMATION: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 712 if(d_offset >= d_size) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 713 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 714 if((ppp_data->frx.stored_len + d_offset) < ppp_data->mru) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 715 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 716 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 717 * allocate new descriptor | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 718 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 719 switch(ppp_data->frx.stored_ptype) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 720 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 721 case DTI_PID_LCP: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 722 case DTI_PID_PAP: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 723 case DTI_PID_CHAP: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 724 case DTI_PID_IPCP: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 725 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 726 * allocate a big descriptor, copy the data into the new | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 727 * one and free the small descriptor | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 728 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 729 MALLOC (ppp_data->frx.stored_packet, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 730 (USHORT)(sizeof(T_desc2) - 1 + ppp_data->mru)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 731 memcpy(ppp_data->frx.stored_packet->buffer, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 732 destination, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 733 d_offset); /*lint !e668 Possibly passing a null pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 734 MFREE(ppp_data->frx.cur_desc); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 735 ppp_data->frx.cur_desc = ppp_data->frx.stored_packet; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 736 ppp_data->frx.cur_desc->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 737 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 738 d_size = ppp_data->mru; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 739 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 740 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 741 default: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 742 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 743 * allocate a new small descriptor | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 744 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 745 MALLOC (temp_desc, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 746 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 747 ppp_data->frx.cur_desc->next = (ULONG)temp_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 748 ppp_data->frx.cur_desc->len = d_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 749 ppp_data->frx.cur_desc = temp_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 750 ppp_data->frx.cur_desc->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 751 ppp_data->frx.stored_len += d_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 752 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 753 d_offset = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 754 d_size = FRX_ADD_SMALL_PACKET_SIZE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 755 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 756 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 757 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 758 else if((ppp_data->frx.stored_len + d_offset) >= | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 759 (ppp_data->mru + 2)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 760 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 761 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 762 * remove receiced packet because it is to long | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 763 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 764 arb_discard_packet(ppp_data->frx.stored_packet); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 765 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 766 store_state = FRX_ADD_ERROR; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 767 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 768 TRACE_EVENT("ERROR PPP: HDLC packet to long"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 769 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 770 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 771 * trace HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 772 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 773 TRACE_EVENT("wrong HDLC frame:"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 774 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 775 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 776 trace_desc2 = ppp_data->frx.hdlc_frame; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 777 while(trace_desc2) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 778 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 779 i+= sprintf(&buf[i], | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 780 "0x%02x, ", | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 781 trace_desc2->buffer[trace_pos]); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 782 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 783 if(trace_desc2->len <= trace_pos) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 784 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 785 trace_desc2 = (T_desc2*)trace_desc2->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 786 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 787 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 788 if(i > 80) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 789 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 790 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 791 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 792 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 793 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 794 if(i > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 795 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 796 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 797 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 798 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 799 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 800 * release stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 801 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 802 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 803 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 804 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 805 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 806 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 807 else if((ppp_data->frx.stored_len + d_offset) >= | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 808 (ppp_data->mru + 1)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 809 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 810 d_offset--; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 811 store_state = FRX_ADD_FCS2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 812 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 813 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 814 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 815 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 816 store_state = FRX_ADD_FCS1; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 817 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 818 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 819 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 820 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 821 * copy data | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 822 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 823 destination[d_offset] = currentbyte; /*lint !e613 Possible use of null pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 824 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 825 * increase destination offset | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 826 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 827 d_offset++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 828 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 829 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 830 case FRX_ADD_CONTROL: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 831 if(currentbyte EQ 0x03) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 832 store_state = FRX_ADD_PROTOCOL1; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 833 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 834 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 835 TRACE_EVENT("ERROR PPP: wrong HDLC control field"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 836 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 837 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 838 * trace HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 839 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 840 TRACE_EVENT("wrong HDLC frame:"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 841 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 842 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 843 trace_desc2 = ppp_data->frx.hdlc_frame; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 844 while(trace_desc2) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 845 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 846 i+= sprintf(&buf[i], "0x%02x, ", trace_desc2->buffer[trace_pos]); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 847 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 848 if(trace_desc2->len <= trace_pos) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 849 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 850 trace_desc2 = (T_desc2*)trace_desc2->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 851 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 852 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 853 if(i > 80) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 854 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 855 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 856 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 857 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 858 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 859 if(i > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 860 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 861 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 862 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 863 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 864 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 865 * release stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 866 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 867 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 868 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 869 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 870 store_state = FRX_ADD_ERROR; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 871 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 872 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 873 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 874 case FRX_ADD_ADDRESS: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 875 if(currentbyte EQ 0xff) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 876 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 877 store_state = FRX_ADD_CONTROL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 878 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 879 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 880 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 881 * address and control field compression detected | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 882 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 883 /* fall through */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 884 case FRX_ADD_PROTOCOL1: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 885 if((currentbyte & 0x01) EQ 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 886 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 887 ppp_data->frx.stored_ptype = currentbyte; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 888 ppp_data->frx.stored_ptype = (ppp_data->frx.stored_ptype << 8); /*lint !e734 Loss of precision */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 889 store_state = FRX_ADD_PROTOCOL2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 890 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 891 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 892 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 893 * protocol field compression detected | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 894 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 895 /* fall through */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 896 case FRX_ADD_PROTOCOL2: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 897 if(currentbyte & 0x01) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 898 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 899 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 900 * store protocol | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 901 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 902 ppp_data->frx.stored_ptype|= currentbyte; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 903 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 904 * allocate new packet | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 905 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 906 d_size = FRX_ADD_SMALL_PACKET_SIZE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 907 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 908 * Allocate the necessary size for the data descriptor. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 909 * The size is calculated as follows: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 910 * - take the size of a descriptor structure | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 911 * - subtract one because of the array buffer[1] to get | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 912 * the size of descriptor control information | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 913 * - add number of octets of descriptor data | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 914 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 915 MALLOC (ppp_data->frx.stored_packet, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 916 (USHORT)(sizeof(T_desc2) - 1 + d_size)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 917 ppp_data->frx.cur_desc = ppp_data->frx.stored_packet; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 918 ppp_data->frx.cur_desc->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 919 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 920 d_offset = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 921 store_state = FRX_ADD_INFORMATION; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 922 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 923 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 924 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 925 TRACE_EVENT("ERROR PPP: wrong HDLC protocol field"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 926 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 927 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 928 * trace HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 929 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 930 TRACE_EVENT("wrong HDLC frame:"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 931 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 932 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 933 trace_desc2 = ppp_data->frx.hdlc_frame; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 934 while(trace_desc2) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 935 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 936 i+= sprintf(&buf[i], "0x%02x, ", trace_desc2->buffer[trace_pos]); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 937 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 938 if(trace_desc2->len <= trace_pos) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 939 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 940 trace_desc2 = (T_desc2*)trace_desc2->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 941 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 942 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 943 if(i > 80) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 944 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 945 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 946 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 947 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 948 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 949 if(i > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 950 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 951 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 952 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 953 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 954 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 955 * release stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 956 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 957 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 958 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 959 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 960 store_state = FRX_ADD_ERROR; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 961 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 962 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 963 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 964 case FRX_ADD_FCS1: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 965 store_state = FRX_ADD_FCS2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 966 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 967 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 968 case FRX_ADD_FCS2: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 969 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 970 * remove receiced packet because its to long | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 971 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 972 arb_discard_packet(ppp_data->frx.stored_packet); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 973 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 974 store_state = FRX_ADD_ERROR; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 975 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 976 TRACE_EVENT("ERROR PPP: HDLC packet to long"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 977 #ifdef PPP_HDLC_TRACE | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 978 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 979 * trace HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 980 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 981 TRACE_EVENT("wrong HDLC frame:"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 982 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 983 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 984 trace_desc2 = ppp_data->frx.hdlc_frame; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 985 while(trace_desc2) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 986 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 987 i+= sprintf(&buf[i], "0x%02x, ", trace_desc2->buffer[trace_pos]); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 988 trace_pos++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 989 if(trace_desc2->len <= trace_pos) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 990 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 991 trace_desc2 = (T_desc2*)trace_desc2->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 992 trace_pos = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 993 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 994 if(i > 80) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 995 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 996 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 997 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 998 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 999 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1000 if(i > 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1001 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1002 TRACE_EVENT( buf ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1003 i = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1004 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1005 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1006 * release stored HDLC frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1007 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1008 MFREE_DESC2(ppp_data->frx.hdlc_frame); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1009 ppp_data->frx.hdlc_frame = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1010 #endif /* PPP_HDLC_TRACE */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1011 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1012 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1013 case FRX_ADD_ERROR: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1014 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1015 * we wait for the next HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1016 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1017 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1018 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1019 case FRX_ADD_HDLC_BEGIN: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1020 TRACE_ERROR("ERROR: frx_add_desc(): in FRX_ADD_HDLC_BEGIN state without HDLC flag"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1021 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1022 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1023 default: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1024 TRACE_ERROR("ERROR: frx_add_desc(): wrong state"); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1025 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1026 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1027 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1028 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1029 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1030 * check if current descriptor is complete analyzed | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1031 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1032 if(s_offset >= s_size) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1033 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1034 temp_desc = (T_desc2*)source_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1035 MFREE(source_desc); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1036 source_desc = temp_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1037 s_offset = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1038 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1039 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1040 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1041 * store important values in global variables | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1042 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1043 switch(store_state) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1044 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1045 case FRX_ADD_INFORMATION: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1046 case FRX_ADD_FCS1: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1047 case FRX_ADD_FCS2: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1048 ppp_data->frx.cur_desc->len = d_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1049 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1050 } /*lint !e744 switch statement has no default */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1051 ppp_data->frx.store_state = store_state; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1052 ppp_data->frx.calc_fcs = fcs; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1053 ppp_data->frx.escape = escape; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1054 ppp_data->frx.received_data = source_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1055 ppp_data->frx.cur_desc_size = d_size; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1056 ppp_data->frx.proceed_data = s_offset; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1057 } /*lint !e550 fcstab not accessed in _SIMULATION_ frx_add_desc() */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1058 #endif /* PPP_FLASH_ROM */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1059 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1060 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1061 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1062 #ifndef PPP_INT_RAM | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1063 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1064 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1065 | Function : frx_detect_frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1066 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1067 | Description : The function frx_detect_frame() detects begin and end of | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1068 | PPP frames. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1069 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1070 | Parameters : no parameters | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1071 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1072 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1073 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1074 GLOBAL void frx_detect_frame () | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1075 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1076 UBYTE* source; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1077 UBYTE* destination; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1078 T_desc2* temp_desc1; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1079 T_desc2* temp_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1080 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1081 TRACE_FUNCTION( "frx_detect_frame" ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1082 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1083 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1084 * copy received data stream pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1085 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1086 temp_desc1 = ppp_data->frx.received_data; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1087 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1088 * set destination pointer if necessary | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1089 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1090 if(ppp_data->frx.store_state EQ FRX_ADD_INFORMATION) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1091 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1092 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1093 * to avoid erroneuos code generation of target compiler, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1094 * it is written in two lines instead of one | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1095 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1096 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1097 destination+= ppp_data->frx.cur_desc->len; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1098 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1099 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1100 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1101 * while there is still data to analyze and | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1102 * a complete frame is not yet received | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1103 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1104 while((temp_desc1) && (ppp_data->frx.frame_complete EQ FALSE)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1105 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1106 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1107 * set source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1108 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1109 source = &temp_desc1->buffer[ppp_data->frx.proceed_data]; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1110 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1111 * We count down the length of the current descriptor. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1112 * while the current descriptor is not yet complete analyzed and | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1113 * a complete frame is not yet received | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1114 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1115 while((temp_desc1->len) && (ppp_data->frx.frame_complete EQ FALSE)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1116 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1117 switch(ppp_data->frx.store_state) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1118 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1119 case FRX_ADD_ERROR: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1120 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1121 * search for next HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1122 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1123 while((temp_desc1->len) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1124 (*source NEQ PPP_HDLC_FLAG)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1125 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1126 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1127 * increase source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1128 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1129 source++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1130 temp_desc1->len--; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1131 ppp_data->frx.proceed_data++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1132 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1133 if(temp_desc1->len EQ 0) /*lint !e661 Possible access of out-of-bounds pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1134 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1135 * end of descriptor reached | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1136 * analyze next descriptor | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1137 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1138 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1139 ppp_data->frx.store_state = FRX_ADD_HDLC_BEGIN; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1140 /* fall through */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1141 case FRX_ADD_HDLC_BEGIN: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1142 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1143 * create new packet (frame) to store detected frame | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1144 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1145 ppp_data->frx.stored_len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1146 ppp_data->frx.stored_ptype = DTI_PID_UOS; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1147 ppp_data->frx.cur_desc_size = FRX_ADD_SMALL_PACKET_SIZE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1148 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1149 * Allocate the necessary size for the data descriptor. The size is | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1150 * calculated as follows: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1151 * - take the size of a descriptor structure | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1152 * - subtract one because of the array buffer[1] to get the size of | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1153 * descriptor control information | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1154 * - add number of octets of descriptor data | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1155 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1156 MALLOC (ppp_data->frx.stored_packet, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1157 (USHORT)(sizeof(T_desc2) - 1 + FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1158 ppp_data->frx.cur_desc = ppp_data->frx.stored_packet; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1159 ppp_data->frx.cur_desc->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1160 ppp_data->frx.cur_desc->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1161 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1162 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1163 *destination = *source; /*lint !e613 Possible use of null pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1164 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1165 * increase source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1166 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1167 source++; /*lint !e613 Possible use of null pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1168 temp_desc1->len--; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1169 ppp_data->frx.proceed_data++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1170 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1171 * increase destination pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1172 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1173 ppp_data->frx.stored_len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1174 destination++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1175 ppp_data->frx.cur_desc->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1176 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1177 ppp_data->frx.store_state = FRX_ADD_INFORMATION; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1178 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1179 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1180 case FRX_ADD_INFORMATION: | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1181 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1182 * copy data | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1183 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1184 while((temp_desc1->len) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1185 (ppp_data->frx.stored_len < ppp_data->mru) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1186 (ppp_data->frx.cur_desc->len < ppp_data->frx.cur_desc_size) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1187 (*source NEQ PPP_HDLC_FLAG)) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1188 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1189 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1190 * copy data | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1191 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1192 *destination = *source; /*lint !e644 destination may not have been initialized */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1193 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1194 * increase source pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1195 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1196 source++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1197 temp_desc1->len--; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1198 ppp_data->frx.proceed_data++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1199 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1200 * increase destination pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1201 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1202 ppp_data->frx.stored_len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1203 destination++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1204 ppp_data->frx.cur_desc->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1205 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1206 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1207 * analyze why the loop is left | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1208 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1209 if(ppp_data->frx.stored_len < ppp_data->mru) /*lint !e661 Possible access of out-of-bounds pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1210 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1211 if(ppp_data->frx.cur_desc->len >= ppp_data->frx.cur_desc_size) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1212 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1213 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1214 * allocate a new small descriptor | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1215 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1216 MALLOC (temp_desc2, (USHORT)(sizeof(T_desc2) - 1 + | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1217 FRX_ADD_SMALL_PACKET_SIZE)); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1218 ppp_data->frx.cur_desc->next = (ULONG)temp_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1219 ppp_data->frx.cur_desc = | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1220 (T_desc2*)ppp_data->frx.cur_desc->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1221 ppp_data->frx.cur_desc->len = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1222 ppp_data->frx.cur_desc->size = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1223 ppp_data->frx.cur_desc->offset = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1224 ppp_data->frx.cur_desc->next = (ULONG)NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1225 ppp_data->frx.cur_desc_size = FRX_ADD_SMALL_PACKET_SIZE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1226 destination = ppp_data->frx.cur_desc->buffer; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1227 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1228 if((temp_desc1->len) && | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1229 (*source EQ PPP_HDLC_FLAG)) /*lint !e613 Possible use of null pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1230 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1231 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1232 * end of frame detected | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1233 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1234 ppp_data->frx.store_state = FRX_ADD_HDLC_BEGIN; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1235 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1236 * copy HDLC flag | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1237 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1238 *destination = *source; /*lint !e613 Possible use of null pointer */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1239 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1240 * increase length values | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1241 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1242 ppp_data->frx.stored_len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1243 ppp_data->frx.cur_desc->len++; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1244 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1245 * check for correct length | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1246 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1247 if(ppp_data->frx.stored_len > 2) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1248 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1249 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1250 * no error occured, frame complete | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1251 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1252 ppp_data->frx.frame_complete = TRUE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1253 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1254 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1255 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1256 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1257 * remove receiced packet because its to short | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1258 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1259 arb_discard_packet(ppp_data->frx.stored_packet); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1260 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1261 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1262 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1263 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1264 else | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1265 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1266 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1267 * remove receiced packet because its to long | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1268 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1269 arb_discard_packet(ppp_data->frx.stored_packet); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1270 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1271 ppp_data->frx.store_state = FRX_ADD_ERROR; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1272 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1273 break; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1274 } /*lint !e744 switch statement has no default */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1275 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1276 if(temp_desc1->len EQ 0) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1277 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1278 temp_desc2 = (T_desc2*)temp_desc1->next; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1279 MFREE(temp_desc1); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1280 temp_desc1 = temp_desc2; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1281 ppp_data->frx.proceed_data = 0; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1282 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1283 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1284 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1285 * store received data stream pointer | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1286 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1287 ppp_data->frx.received_data = temp_desc1; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1288 } /* frx_detect_frame() */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1289 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1290 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1291 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1292 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1293 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1294 | Function : frx_send_pack_ready_mode() | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1295 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1296 | Description : send as many packets to ptx as can be extracted from received frame. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1297 | Frx is in ready mode. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1298 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1299 | Parameters : no parameters | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1300 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1301 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1302 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1303 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1304 GLOBAL void frx_send_pack_ready_mode () | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1305 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1306 T_desc2* temp_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1307 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1308 TRACE_FUNCTION( "frx_send_pack_ready_mode ()" ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1309 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1310 while( ppp_data->frx.frame_complete EQ TRUE AND | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1311 ppp_data->frx.data_flow_state EQ FRX_DATA_FLOW_READY) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1312 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1313 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1314 * to avoid any side effects | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1315 * first reset all necessary variables and then call the signal | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1316 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1317 ppp_data->frx.frame_complete = FALSE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1318 temp_desc = ppp_data->frx.stored_packet; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1319 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1320 sig_frx_ptx_packet_ind(ppp_data->frx.stored_ptype, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1321 ppp_data->frx.stored_len, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1322 temp_desc); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1323 frx_add_desc(); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1324 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1325 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1326 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1327 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1328 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1329 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1330 | Function : frx_send_pack_transp_mode | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1331 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1332 | Description : send as many packets to ptx as can be extracted from received frame. | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1333 | Frx is in transparent mode . | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1334 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1335 | Parameters : no parameters | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1336 | | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1337 +------------------------------------------------------------------------------ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1338 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1339 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1340 GLOBAL void frx_send_pack_transp_mode () | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1341 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1342 T_desc2* temp_desc; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1343 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1344 TRACE_FUNCTION( "frx_send_pack_transp_mode ()" ); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1345 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1346 while( ppp_data->frx.frame_complete EQ TRUE AND | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1347 ppp_data->frx.data_flow_state EQ FRX_DATA_FLOW_READY) | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1348 { | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1349 /* | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1350 * to avoid any side effects | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1351 * first reset all necessary variables and then call the signal | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1352 */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1353 ppp_data->frx.frame_complete = FALSE; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1354 temp_desc = ppp_data->frx.stored_packet; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1355 ppp_data->frx.stored_packet = NULL; | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1356 sig_frx_ptx_packet_ind(ppp_data->frx.stored_ptype, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1357 ppp_data->frx.stored_len, | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1358 temp_desc); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1359 frx_detect_frame(); | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1360 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1361 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1362 } | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1363 | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1364 #endif /* PPP_INT_RAM */ | 
| 
90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1365 | 
