comparison src/g23m-fad/ppp/ppp_ncps.c @ 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
comparison
equal deleted inserted replaced
0:b6a5e36de839 1:d393cd9bb723
1 /*
2 +-----------------------------------------------------------------------------
3 | Project :
4 | Modul :
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : This modul is part of the entity PPP and implements all
18 | functions to handles the incoming process internal signals as
19 | described in the SDL-documentation (NCP-statemachine)
20 +-----------------------------------------------------------------------------
21 */
22
23 #ifndef PPP_NCPS_C
24 #define PPP_NCPS_C
25 #endif /* PPP_NCPS_C */
26
27 #define ENTITY_PPP
28
29 /*==== INCLUDES =============================================================*/
30
31 #include "typedefs.h" /* to get Condat data types */
32 #include "vsi.h" /* to get a lot of macros */
33 #include "macdef.h" /* to get a lot of macros */
34 #include "custom.h" /* to get a lot of macros */
35 #include "gsm.h" /* to get a lot of macros */
36 #include "cnf_ppp.h" /* to get cnf-definitions */
37 #include "mon_ppp.h" /* to get mon-definitions */
38 #include "prim.h" /* to get the definitions of used SAP and directions */
39 #include "dti.h" /* to get the DTILIB definitions */
40 #include "ppp.h" /* to get the global entity definitions */
41
42 #include "ppp_ncpf.h" /* to get function interface from ncp */
43 #include "ppp_arbf.h" /* to get function interface from arb */
44 #include "ppp_onas.h" /* to get signal interface from ona */
45 #include "ppp_arbs.h" /* to get signal interface from arb */
46
47 /*==== CONST ================================================================*/
48
49 /*==== LOCAL VARS ===========================================================*/
50
51 /*==== PRIVATE FUNCTIONS ====================================================*/
52
53 /*==== PUBLIC FUNCTIONS =====================================================*/
54
55
56
57 /*
58 +------------------------------------------------------------------------------
59 | Function : sig_arb_ncp_parameters_req
60 +------------------------------------------------------------------------------
61 | Description : Handles the internal signal SIG_ARB_NCP_PARAMETERS_REQ
62 |
63 | Parameters : hc - IP header compression
64 | msid - max slot identifier
65 | ip - IP address
66 | pdns - primary DNS server address
67 | sdns - secondary DNS server address
68 | gateway - Gateway address
69 |
70 +------------------------------------------------------------------------------
71 */
72 GLOBAL void sig_arb_ncp_parameters_req (UBYTE hc,
73 UBYTE msid,
74 ULONG ip,
75 ULONG pdns,
76 ULONG sdns,
77 ULONG gateway)
78 {
79 TRACE_ISIG( "sig_arb_ncp_parameters_req" );
80
81 ppp_data->ncp.req_hc = hc;
82 ppp_data->ncp.req_msid = msid;
83 ppp_data->ncp.req_ip = ip;
84 ppp_data->ncp.req_pdns = pdns;
85 ppp_data->ncp.req_sdns = sdns;
86 ppp_data->ncp.req_gateway = gateway;
87
88 } /* sig_arb_ncp_parameters_req() */
89
90
91
92 /*
93 +------------------------------------------------------------------------------
94 | Function : sig_arb_ncp_modify_hc_req
95 +------------------------------------------------------------------------------
96 | Description : Handles the internal signal SIG_ARB_NCP_MODIFY_HC_REQ
97 |
98 | Parameters : hc - IP header compression
99 | msid - max slot identifier
100 |
101 +------------------------------------------------------------------------------
102 */
103 GLOBAL void sig_arb_ncp_modify_hc_req (UBYTE hc, UBYTE msid)
104 {
105 TRACE_ISIG( "sig_arb_ncp_modify_hc_req" );
106
107 ppp_data->ncp.req_hc = hc;
108 ppp_data->ncp.req_msid = msid;
109
110 } /* sig_arb_ncp_modify_hc_req() */
111
112
113
114 /*
115 +------------------------------------------------------------------------------
116 | Function : sig_arb_ncp_packet_req
117 +------------------------------------------------------------------------------
118 | Description : Handles the internal signal SIG_ARB_NCP_PACKET_REQ
119 |
120 | Parameters : packet - pointer to a generic data descriptor
121 |
122 +------------------------------------------------------------------------------
123 */
124 GLOBAL void sig_arb_ncp_packet_req (T_desc2* packet)
125 {
126 UBYTE forward;
127 UBYTE isnew = 0;
128
129 TRACE_ISIG( "sig_arb_ncp_packet_req" );
130
131 /*
132 * depend on the code-field call appropriate function
133 */
134 switch(packet->buffer[0])
135 {
136 case CODE_CONF_REQ:
137 ncp_rcr(&packet, &isnew, &forward);
138 break;
139 case CODE_CONF_ACK:
140 ncp_rca(packet, &forward);
141 break;
142 case CODE_CONF_NAK:
143 ncp_rcn(&packet, &forward);
144 break;
145 case CODE_CONF_REJ:
146 ncp_rcj(&packet, &forward);
147 break;
148 case CODE_TERM_REQ:
149 ncp_rtr(&packet, &forward);
150 break;
151 case CODE_TERM_ACK:
152 ncp_rta(packet, &forward);
153 break;
154 case CODE_CODE_REJ:
155 ncp_rxj(&packet, &forward);
156 break;
157 default:
158 ncp_ruc(&packet, &forward);
159 break;
160 }
161 switch(forward)
162 {
163 case FORWARD_RCRP:
164 sig_any_ona_rcrp_ind(DTI_PID_IPCP, packet);
165 break;
166 case FORWARD_RCRN:
167 sig_any_ona_rcrn_ind(DTI_PID_IPCP, packet, isnew);
168 break;
169 case FORWARD_RCA:
170 sig_any_ona_rca_ind(DTI_PID_IPCP);
171 break;
172 case FORWARD_RCN:
173 sig_any_ona_rcn_ind(DTI_PID_IPCP, packet);
174 break;
175 case FORWARD_RTR:
176 sig_any_ona_rtr_ind(DTI_PID_IPCP, packet);
177 break;
178 case FORWARD_RTA:
179 sig_any_ona_rta_ind(DTI_PID_IPCP);
180 break;
181 case FORWARD_RXJN:
182 sig_any_ona_rxjn_ind(DTI_PID_IPCP, packet);
183 break;
184 case FORWARD_RUC:
185 sig_any_ona_ruc_ind(DTI_PID_IPCP, packet);
186 break;
187 default:
188 arb_discard_packet(packet);
189 break;
190 }
191 } /* sig_arb_ncp_packet_req() */
192
193
194
195 /*
196 +------------------------------------------------------------------------------
197 | Function : sig_arb_ncp_open_req
198 +------------------------------------------------------------------------------
199 | Description : Handles the internal signal SIG_ARB_NCP_OPEN_REQ
200 |
201 | Parameters : no parameters
202 |
203 +------------------------------------------------------------------------------
204 */
205 GLOBAL void sig_arb_ncp_open_req ()
206 {
207 T_desc2* packet;
208 TRACE_ISIG( "sig_arb_ncp_open_req" );
209
210 /*
211 * reset all rejected configuration options
212 */
213 ppp_data->ncp.s_rejected = 0;
214 /*
215 * set configuration start values
216 */
217 ppp_data->ncp.s_hc = ppp_data->ncp.req_hc;
218 ppp_data->ncp.s_msid = ppp_data->ncp.req_msid;
219 ppp_data->ncp.n_ip = ppp_data->ncp.req_ip;
220 ppp_data->ncp.n_pdns = ppp_data->ncp.req_pdns;
221 ppp_data->ncp.n_sdns = ppp_data->ncp.req_sdns;
222 ppp_data->ncp.n_gateway = ppp_data->ncp.req_gateway;
223
224 ppp_data->ncp.scr = FALSE;
225 ppp_data->ncp.str = FALSE;
226 ppp_data->ncp.rcr = FALSE;
227 /*
228 * set new identifier
229 */
230 ppp_data->ncp.nscri++;
231 /*
232 * create configure request packet
233 */
234 ncp_get_scr(&packet);
235 /*
236 * inform ONA about the open signal
237 */
238 sig_any_ona_open_ind(DTI_PID_IPCP, packet);
239
240 } /* sig_arb_ncp_open_req() */
241
242
243
244 /*
245 +------------------------------------------------------------------------------
246 | Function : sig_arb_ncp_close_req
247 +------------------------------------------------------------------------------
248 | Description : Handles the internal signal SIG_ARB_NCP_CLOSE_REQ
249 |
250 | Parameters : no parameters
251 |
252 +------------------------------------------------------------------------------
253 */
254 GLOBAL void sig_arb_ncp_close_req ()
255 {
256 T_desc2* packet;
257
258 TRACE_ISIG( "sig_arb_ncp_close_req" );
259
260 /*
261 * set new identifier
262 */
263 ppp_data->ncp.nstri++;
264 /*
265 * create terminate request packet
266 */
267 ncp_get_str(&packet);
268 /*
269 * inform ONA about the close signal
270 */
271 sig_any_ona_close_ind(DTI_PID_IPCP, packet);
272
273 } /* sig_arb_ncp_close_req() */
274
275
276
277 /*
278 +------------------------------------------------------------------------------
279 | Function : sig_arb_ncp_down_req
280 +------------------------------------------------------------------------------
281 | Description : Handles the internal signal SIG_ARB_NCP_DOWN_REQ
282 |
283 | Parameters : no parameters
284 |
285 +------------------------------------------------------------------------------
286 */
287 GLOBAL void sig_arb_ncp_down_req ()
288 {
289 TRACE_ISIG( "sig_arb_ncp_down_req" );
290
291 /*
292 * inform ONA about the down signal
293 */
294 sig_any_ona_down_ind(DTI_PID_IPCP);
295 } /* sig_arb_ncp_down_req() */
296
297
298
299 /*
300 +------------------------------------------------------------------------------
301 | Function : sig_arb_ncp_to_req
302 +------------------------------------------------------------------------------
303 | Description : Handles the internal signal SIG_ARB_NCP_TO_REQ
304 |
305 | Parameters : no parameters
306 |
307 +------------------------------------------------------------------------------
308 */
309 GLOBAL void sig_arb_ncp_to_req ()
310 {
311 TRACE_ISIG( "sig_arb_ncp_to_req" );
312
313 /*
314 * inform ONA about the time out signal
315 */
316 sig_any_ona_to_ind(DTI_PID_IPCP);
317 } /* sig_arb_ncp_to_req() */
318
319
320
321 /*
322 +------------------------------------------------------------------------------
323 | Function : sig_ona_ncp_tld_req
324 +------------------------------------------------------------------------------
325 | Description : Handles the internal signal SIG_ONA_NCP_TLD_REQ
326 |
327 | Parameters : no parameters
328 |
329 +------------------------------------------------------------------------------
330 */
331 GLOBAL void sig_ona_ncp_tld_req ()
332 {
333 TRACE_ISIG( "sig_ona_ncp_tld_req" );
334
335 /*
336 * inform ARB about This-Layer-Down signal
337 */
338 sig_ncp_arb_tld_ind();
339 } /* sig_ona_ncp_tld_req() */
340
341
342
343 /*
344 +------------------------------------------------------------------------------
345 | Function : sig_ona_ncp_tlf_req
346 +------------------------------------------------------------------------------
347 | Description : Handles the internal signal SIG_ONA_NCP_TLF_REQ
348 |
349 | Parameters : no parameters
350 |
351 +------------------------------------------------------------------------------
352 */
353 GLOBAL void sig_ona_ncp_tlf_req ()
354 {
355 TRACE_ISIG( "sig_ona_ncp_tlf_req" );
356
357 /*
358 * inform ARB about This-Layer-Finish signal
359 */
360 sig_any_arb_tlf_ind();
361 } /* sig_ona_ncp_tlf_req() */
362
363
364
365 /*
366 +------------------------------------------------------------------------------
367 | Function : sig_ona_ncp_str_req
368 +------------------------------------------------------------------------------
369 | Description : Handles the internal signal SIG_ONA_NCP_STR_REQ
370 |
371 | Parameters : pointer on packet
372 |
373 +------------------------------------------------------------------------------
374 */
375 GLOBAL void sig_ona_ncp_str_req (T_desc2** ptr_packet)
376 {
377 TRACE_ISIG( "sig_ona_ncp_str_req" );
378
379 /*
380 * create terminate request packet
381 */
382 ncp_get_str(ptr_packet);
383 } /* sig_ona_ncp_str_req() */
384
385
386
387 /*
388 +------------------------------------------------------------------------------
389 | Function : sig_ona_ncp_scr_req
390 +------------------------------------------------------------------------------
391 | Description : Handles the internal signal SIG_ONA_NCP_SCR_REQ
392 |
393 | Parameters : pointer on packet
394 |
395 +------------------------------------------------------------------------------
396 */
397 GLOBAL void sig_ona_ncp_scr_req (T_desc2** ptr_packet)
398 {
399 TRACE_ISIG( "sig_ona_ncp_scr_req" );
400
401 /*
402 * create terminate request packet
403 */
404 ncp_get_scr(ptr_packet);
405 } /* sig_ona_ncp_scr_req() */
406
407
408
409 /*
410 +------------------------------------------------------------------------------
411 | Function : sig_ona_ncp_tlu_req
412 +------------------------------------------------------------------------------
413 | Description : Handles the internal signal SIG_ONA_NCP_TLU_REQ
414 |
415 | Parameters : no parameters
416 |
417 +------------------------------------------------------------------------------
418 */
419 GLOBAL void sig_ona_ncp_tlu_req ()
420 {
421 TRACE_ISIG( "sig_ona_ncp_tlu_req" );
422
423 /*
424 * inform ARB about This-Layer-Up signal
425 */
426 sig_any_arb_tlu_ind();
427 } /* sig_ona_ncp_tlu_req() */
428
429