FreeCalypso > hg > fc-selenite
diff src/g23m-gprs/llc/llc_uf.h @ 1:d393cd9bb723
src/g23m-*: initial import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 04:40:46 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-gprs/llc/llc_uf.h Sun Jul 15 04:40:46 2018 +0000 @@ -0,0 +1,232 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Definitions for llc_uf.c ++----------------------------------------------------------------------------- +*/ + + +#ifndef LLC_UF_H +#define LLC_UF_H + + +/*==== XID DEFINITIONS ======================================================*/ + +/* + * XID parameter types + */ +#define XID_VERSION 0 +#define XID_IOV_UI 1 +#define XID_IOV_I 2 +#define XID_T200 3 +#define XID_N200 4 +#define XID_N201_U 5 +#define XID_N201_I 6 +#define XID_MD 7 +#define XID_MU 8 +#define XID_KD 9 +#define XID_KU 10 +#define XID_LAYER_3 11 +#define XID_RESET 12 + +#define XID_MAX_TYPE XID_RESET + +/* + * XID parameter lengths in octets + */ +#define XID_VERSION_LEN 1 +#define XID_IOV_UI_LEN 4 +#define XID_IOV_I_LEN 4 +#define XID_T200_LEN 2 +#define XID_N200_LEN 1 +#define XID_N201_U_LEN 2 +#define XID_N201_I_LEN 2 +#define XID_MD_LEN 2 +#define XID_MU_LEN 2 +#define XID_KD_LEN 1 +#define XID_KU_LEN 1 +/* no default length for layer 3 parameters */ +#define XID_RESET_LEN 0 + +/* + * XID parameter header lengths in octets + */ +#define XID_VERSION_HDR_LEN 1 +#define XID_IOV_UI_HDR_LEN 2 +#define XID_IOV_I_HDR_LEN 2 +#define XID_T200_HDR_LEN 1 +#define XID_N200_HDR_LEN 1 +#define XID_N201_U_HDR_LEN 1 +#define XID_N201_I_HDR_LEN 1 +#define XID_MD_HDR_LEN 1 +#define XID_MU_HDR_LEN 1 +#define XID_KD_HDR_LEN 1 +#define XID_KU_HDR_LEN 1 +#define XID_LAYER_3_HDR_LEN 2 +#define XID_RESET_HDR_LEN 1 + +/* + * XID parameter ranges + */ +#define XID_VERSION_MIN 0u +#define XID_VERSION_MAX 15u +#define XID_IOV_UI_MIN 0u +#define XID_IOV_UI_MAX 4294967295uL /* actually: 2 ^ 32 - 1 */ +#define XID_IOV_I_MIN 0u +#define XID_IOV_I_MAX 4294967295uL /* actually: 2 ^ 32 - 1 */ +#define XID_T200_MIN 1u /* units: 0.1 seconds */ +#define XID_T200_MAX 4095u +#define XID_N200_MIN 1u +#define XID_N200_MAX 15u +#ifdef _SIMULATION_ +#ifdef MULTI_LAYER + /* units: octets */ +#define XID_N201_U_MIN (llc_data->current_sapi EQ LL_SAPI_1 ? 400u : \ + llc_data->current_sapi EQ LL_SAPI_7 ? 270u : 59u) +#else +#define XID_N201_U_MIN (llc_data->current_sapi EQ LL_SAPI_1 ? 400u : \ + llc_data->current_sapi EQ LL_SAPI_7 ? 270u : 140u) + +#endif /* MULTI_LAYER */ +#else + /* units: octets */ +#define XID_N201_U_MIN (llc_data->current_sapi EQ LL_SAPI_1 ? 400u : \ + llc_data->current_sapi EQ LL_SAPI_7 ? 270u : 140u) +#endif /* SIMULATION */ +#define XID_N201_U_MAX 1520u +#ifdef _SIMULATION_ +#ifdef MULTI_LAYER +#define XID_N201_I_MIN 59u /* units: octets */ +#else +#define XID_N201_I_MIN 140u /* units: octets */ + +#endif /* MULTI_LAYER */ +#else +#define XID_N201_I_MIN 140u /* units: octets */ +#endif /* SIMULATION */ +#define XID_N201_I_MAX 1520u +#define XID_MD_OFF 0u +#define XID_MD_MIN 9u /* units: 16 octets */ +#define XID_MD_MAX 24320u +#define XID_MU_OFF 0u +#define XID_MU_MIN 9u /* units: 16 octets */ +#define XID_MU_MAX 24320u +#define XID_KD_MIN 1u /* units: frames */ +#define XID_KD_MAX 255u +#define XID_KU_MIN 1u /* units: frames */ +#define XID_KU_MAX 255u + +/* + * Conditions for checking correct sense of negotiation. + */ +#define XID_SENSE_UP > +#define XID_SENSE_DOWN < + + +/*==== FUNCTION DECLARATIONS ================================================*/ + +EXTERN void u_init (void); +EXTERN void u_init_sapi (void); + +EXTERN void u_build_u_frame +( +#ifdef LL_DESC + T_desc_list3 *desc_list3, +#else + T_sdu *sdu, +#endif + T_BIT cr_bit, + UBYTE sapi, + T_BIT pf_bit, + T_COMMAND command +); + +EXTERN BOOL u_check_xid (T_sdu *sdu, + T_BIT cr_bit, + T_COMMAND command); +EXTERN void u_eval_xid (T_BIT cr_bit, + BOOL *reset_received, + BOOL *xid_ind); + +EXTERN void u_insert_xid +( +#ifdef LL_DESC + T_desc_list3 *desc_list3, +#else + T_sdu *sdu, +#endif + T_BIT cr_bit +); + +EXTERN void u_insert_frmr_information +( +#ifndef LL_DESC + T_sdu *sdu, +#else + T_desc_list3 *desc_list3, +#endif + T_LL_UNITDATA_IND *frame, + T_PDU_TYPE pdu_type, + USHORT ctrl_length, + T_FRAME_NUM vs, + T_FRAME_NUM vr, + T_BIT cr_bit, + UBYTE reason +); + +EXTERN void u_send_sabm (void); +EXTERN void u_send_disc (void); + +#ifdef REL99 + EXTERN void sig_tx_u_send_null (UBYTE cause); +#endif /* REL99 */ + +EXTERN void u_send_ua (T_BIT pf_bit, + BOOL include_xid); +EXTERN void u_send_dm (T_BIT pf_bit); +EXTERN void u_send_frmr (T_LL_UNITDATA_IND *frame, + T_PDU_TYPE pdu_type, + USHORT ctrl_length, + T_FRAME_NUM vs, + T_FRAME_NUM vr, + T_BIT cr_bit, + UBYTE reason); +#ifdef CC_CONCEPT +EXTERN void u_send_llgmm_status_ind (USHORT error_cause); +EXTERN void u_send_ll_status_ind (USHORT cause); +EXTERN void u_send_ll_release_ind (USHORT cause); +#else +EXTERN void u_send_llgmm_status_ind (UBYTE error_cause); +EXTERN void u_send_ll_status_ind (UBYTE cause); +EXTERN void u_send_ll_release_ind (UBYTE cause); +#endif + +EXTERN void u_send_ll_release_cnf (void); +EXTERN void u_send_ll_xid_cnf (void); +EXTERN void u_send_ll_establish_ind (void); +EXTERN void u_send_ll_establish_cnf (void); +EXTERN void u_send_ll_xid_ind (void); +EXTERN void u_send_xid (T_BIT cr_bit); +EXTERN void u_tag_xid_parameters (T_BIT cr_bit, BOOL send_ack_para); +EXTERN void u_handle_optimization (void); + +EXTERN void u_handle_mX_zero_rsp (USHORT mX_req, USHORT* n201_i, + USHORT mX, USHORT mX_max, + UBYTE* kX, UBYTE kX_min, + UBYTE kX_type ); +EXTERN void u_check_requested_xid (void); + +#endif /* !LLC_UF_H */