FreeCalypso > hg > fc-magnetite
comparison src/g23m-gprs/upm/upm_sndcp_output_handler.c @ 197:2cf312e56ee7
src/g23m-gprs/upm: import from LoCosto source
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 14 Oct 2016 01:21:46 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 196:a04cde1fb771 | 197:2cf312e56ee7 |
|---|---|
| 1 /*---------------------------------------------------------------------------- | |
| 2 | Project : 3G PS | |
| 3 | Module : UPM | |
| 4 +----------------------------------------------------------------------------- | |
| 5 | Copyright 2003 Texas Instruments. | |
| 6 | All rights reserved. | |
| 7 | | |
| 8 | This file is confidential and a trade secret of Texas | |
| 9 | Instruments . | |
| 10 | The receipt of or possession of this file does not convey | |
| 11 | any rights to reproduce or disclose its contents or to | |
| 12 | manufacture, use, or sell anything it may describe, in | |
| 13 | whole, or in part, without the specific written consent of | |
| 14 | Texas Instruments. | |
| 15 +----------------------------------------------------------------------------- | |
| 16 | Purpose: Output functions for primitives from UPM to the MM entity. | |
| 17 | For design details, see: | |
| 18 | 8010.939 UPM Detailed Specification | |
| 19 +---------------------------------------------------------------------------*/ | |
| 20 | |
| 21 /*==== DECLARATION CONTROL =================================================*/ | |
| 22 | |
| 23 /*==== INCLUDES ============================================================*/ | |
| 24 | |
| 25 #include "upm.h" | |
| 26 | |
| 27 #include "upm_sndcp_output_handler.h" | |
| 28 #include "upm_mm_output_handler.h" | |
| 29 #ifndef UPM_WITHOUT_USER_PLANE | |
| 30 #include "upm_dti_output_handler.h" | |
| 31 #endif /* UPM_WITHOUT_USER_PLANE */ | |
| 32 | |
| 33 /*==== CONSTS ===============================================================*/ | |
| 34 | |
| 35 /*==== TYPES ================================================================*/ | |
| 36 | |
| 37 /*==== LOCALS ===============================================================*/ | |
| 38 | |
| 39 /*==== PUBLIC FUNCTIONS =====================================================*/ | |
| 40 | |
| 41 /* | |
| 42 +------------------------------------------------------------------------------ | |
| 43 | Function : send_sn_activate_req | |
| 44 +------------------------------------------------------------------------------ | |
| 45 | Description : Allocate, pack and send SN_ACTIVATE_REQ primitive. | |
| 46 | | |
| 47 | Parameters : ptr_context_data - context data | |
| 48 | active - active/passive establishment flag to SNDCP | |
| 49 +------------------------------------------------------------------------------ | |
| 50 */ | |
| 51 void send_sn_activate_req(struct T_CONTEXT_DATA *ptr_context_data, | |
| 52 T_NAS_comp_params *comp_params, BOOL active) | |
| 53 { | |
| 54 (void)TRACE_FUNCTION("send_sn_activate_req"); | |
| 55 | |
| 56 { | |
| 57 struct T_UPM_CONTEXT_DATA_GPRS *gprs_data = &ptr_context_data->gprs_data; | |
| 58 PALLOC(prim, SN_ACTIVATE_REQ); | |
| 59 | |
| 60 /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 61 prim->nsapi = ptr_context_data->nsapi; | |
| 62 prim->sapi = gprs_data->sndcp_llc_sapi; | |
| 63 prim->radio_prio = gprs_data->sndcp_radio_prio; | |
| 64 prim->snsm_qos.delay = gprs_data->sndcp_delay; | |
| 65 prim->snsm_qos.relclass = gprs_data->sndcp_relclass; | |
| 66 prim->snsm_qos.peak = gprs_data->sndcp_peak_bitrate; | |
| 67 prim->snsm_qos.preced = gprs_data->sndcp_preced; | |
| 68 prim->snsm_qos.mean = gprs_data->sndcp_mean; | |
| 69 | |
| 70 prim->establish = (active ? (U8)SN_ACTIVE_ESTABLISHMENT : | |
| 71 (U8)SN_PASSIVE_ESTABLISHMENT); | |
| 72 if (comp_params != NULL) | |
| 73 { | |
| 74 memcpy(&prim->comp_params, comp_params, sizeof(T_NAS_comp_params)); | |
| 75 } else { | |
| 76 memset(&prim->comp_params, 0, sizeof(T_NAS_comp_params)); | |
| 77 } | |
| 78 prim->pkt_flow_id = (U16)gprs_data->pkt_flow_id; | |
| 79 /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 80 (void)PSEND(hCommSNDCP, prim); | |
| 81 } | |
| 82 } | |
| 83 | |
| 84 /* | |
| 85 +------------------------------------------------------------------------------ | |
| 86 | Function : send_sn_count_req | |
| 87 +------------------------------------------------------------------------------ | |
| 88 | Description : Allocate, pack and send SN_COUNT_REQ primitive. | |
| 89 | | |
| 90 | Parameters : nsapi - NSAPI | |
| 91 | reset - Reset indicator | |
| 92 +------------------------------------------------------------------------------ | |
| 93 */ | |
| 94 void send_sn_count_req(U8 nsapi, U8 reset) | |
| 95 { | |
| 96 (void)TRACE_FUNCTION("send_sn_count_req"); | |
| 97 | |
| 98 { | |
| 99 PALLOC(prim, SN_COUNT_REQ); | |
| 100 /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 101 prim->nsapi = nsapi; | |
| 102 prim->reset = reset; | |
| 103 | |
| 104 /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 105 (void)PSEND(hCommSNDCP, prim); | |
| 106 } | |
| 107 } | |
| 108 | |
| 109 /* | |
| 110 +------------------------------------------------------------------------------ | |
| 111 | Function : send_sn_deactivate_req | |
| 112 +------------------------------------------------------------------------------ | |
| 113 | Description : Allocate, pack and send SN_DEACTIVATE_REQ primitive. | |
| 114 | | |
| 115 | Parameters : nsapi - NSAPI to deactivate | |
| 116 | rel_ind - local release indicator for SNDCP | |
| 117 +------------------------------------------------------------------------------ | |
| 118 */ | |
| 119 void send_sn_deactivate_req(U8 nsapi, U8 rel_ind) | |
| 120 { | |
| 121 (void)TRACE_FUNCTION("send_sn_deactivate_req"); | |
| 122 | |
| 123 { | |
| 124 PALLOC(prim, SN_DEACTIVATE_REQ); | |
| 125 /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 126 prim->nsapi = nsapi; | |
| 127 prim->rel_ind = rel_ind; | |
| 128 /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 129 (void)PSEND(hCommSNDCP, prim); | |
| 130 } | |
| 131 } | |
| 132 | |
| 133 /* | |
| 134 +------------------------------------------------------------------------------ | |
| 135 | Function : send_sn_modify_req | |
| 136 +------------------------------------------------------------------------------ | |
| 137 | Description : Allocate, pack and send SN_MODIFY_REQ primitive. | |
| 138 | | |
| 139 | Parameters : ptr_context_data - context data | |
| 140 +------------------------------------------------------------------------------ | |
| 141 */ | |
| 142 void send_sn_modify_req(struct T_CONTEXT_DATA *ptr_context_data) | |
| 143 { | |
| 144 (void)TRACE_FUNCTION("send_sn_modify_req"); | |
| 145 | |
| 146 { | |
| 147 struct T_UPM_CONTEXT_DATA_GPRS *gprs_data = &ptr_context_data->gprs_data; | |
| 148 PALLOC(prim, SN_MODIFY_REQ); | |
| 149 | |
| 150 /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 151 prim->nsapi = ptr_context_data->nsapi; | |
| 152 prim->sapi = gprs_data->sndcp_llc_sapi; | |
| 153 prim->radio_prio = gprs_data->sndcp_radio_prio; | |
| 154 prim->snsm_qos.delay = gprs_data->sndcp_delay; | |
| 155 prim->snsm_qos.relclass = gprs_data->sndcp_relclass; | |
| 156 prim->snsm_qos.peak = gprs_data->sndcp_peak_bitrate; | |
| 157 prim->snsm_qos.preced = gprs_data->sndcp_preced; | |
| 158 prim->snsm_qos.mean = gprs_data->sndcp_mean; | |
| 159 prim->pkt_flow_id = (U16)gprs_data->pkt_flow_id; | |
| 160 /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 161 (void)PSEND(hCommSNDCP, prim); | |
| 162 } | |
| 163 } | |
| 164 | |
| 165 /* | |
| 166 +------------------------------------------------------------------------------ | |
| 167 | Function : send_sn_sequence_req | |
| 168 +------------------------------------------------------------------------------ | |
| 169 | Description : Allocate, pack and send SN_SEQUENCE_REQ primitive. | |
| 170 | | |
| 171 | Parameters : mmpm_sequence_ind - MMPM primitive containing sequence numbers | |
| 172 +------------------------------------------------------------------------------ | |
| 173 */ | |
| 174 void send_sn_sequence_req(T_MMPM_SEQUENCE_IND *mmpm_sequence_ind) | |
| 175 { | |
| 176 U16 index; | |
| 177 (void)TRACE_FUNCTION("send_sn_sequence_req"); | |
| 178 | |
| 179 { | |
| 180 PALLOC(prim, SN_SEQUENCE_REQ); | |
| 181 /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 182 prim->c_receive_no_list = mmpm_sequence_ind->c_npdu_list; | |
| 183 | |
| 184 for (index = 0; index < (U16)mmpm_sequence_ind->c_npdu_list; index++) | |
| 185 { | |
| 186 prim->receive_no_list[index].nsapi = mmpm_sequence_ind->npdu_list[index].nsapi; | |
| 187 prim->receive_no_list[index].receive_no = mmpm_sequence_ind->npdu_list[index].receive_n_pdu_number_val; | |
| 188 } | |
| 189 /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 190 (void)PSEND(hCommSNDCP, prim); | |
| 191 } | |
| 192 } | |
| 193 | |
| 194 /* | |
| 195 +------------------------------------------------------------------------------ | |
| 196 | Function : send_sn_get_pending_pdu_req | |
| 197 +------------------------------------------------------------------------------ | |
| 198 | Description : Allocate, pack and send SN_GET_PENDING_PDU_REQ primitive. | |
| 199 | | |
| 200 | Parameters : None | |
| 201 +------------------------------------------------------------------------------ | |
| 202 */ | |
| 203 #ifdef TI_DUAL_MODE | |
| 204 void send_sn_get_pending_pdu_req(void) | |
| 205 { | |
| 206 (void)TRACE_FUNCTION("send_sn_get_pending_pdu_req"); | |
| 207 | |
| 208 { | |
| 209 PALLOC(prim, SN_GET_PENDING_PDU_REQ); | |
| 210 | |
| 211 /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ | |
| 212 (void)PSEND(hCommSNDCP, prim); | |
| 213 } | |
| 214 } | |
| 215 #endif /* TI_DUAL_MODE */ | |
| 216 | |
| 217 /*==== END OF FILE ==========================================================*/ |
