blob: 07c0b8da4fd7d7127ce3995f6456a3409320a6db [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 * Filename:
38 * ---------
39 * ltecsr_struct.h
40 *
41 * Project:
42 * --------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 * define the message struct parameters
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *==============================================================================
54 * HISTORY
55 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
56 *------------------------------------------------------------------------------
57 * removed!
58 *
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 * removed!
66 *
67 * removed!
68 * removed!
69 * removed!
70 * removed!
71 *
72 * removed!
73 * removed!
74 * removed!
75 * removed!
76 *
77 * removed!
78 * removed!
79 * removed!
80 *
81 * removed!
82 * removed!
83 * removed!
84 * removed!
85 *
86 * removed!
87 * removed!
88 *
89 * removed!
90 * removed!
91 * removed!
92 * removed!
93 *
94 * removed!
95 * removed!
96 * removed!
97 * removed!
98 *
99 * removed!
100 * removed!
101 * removed!
102 * removed!
103 *
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 * removed!
111 * removed!
112 * removed!
113 *
114 * removed!
115 * removed!
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 * removed!
122 * removed!
123 *
124 * removed!
125 * removed!
126 * removed!
127 * removed!
128 *
129 * removed!
130 * removed!
131 * removed!
132 * removed!
133 *
134 * removed!
135 * removed!
136 * removed!
137 * removed!
138 *
139 * removed!
140 * removed!
141 * removed!
142 *
143 * removed!
144 * removed!
145 * removed!
146 * removed!
147 *
148 * removed!
149 * removed!
150 * removed!
151 * removed!
152 *
153 * removed!
154 * removed!
155 *
156 * removed!
157 * removed!
158 * removed!
159 * removed!
160 *
161 * removed!
162 * removed!
163 * removed!
164 *
165 * removed!
166 * removed!
167 * removed!
168 * removed!
169 * removed!
170 * removed!
171 * removed!
172 *
173 * removed!
174 * removed!
175 * removed!
176 *
177 * removed!
178 * removed!
179 * removed!
180 *
181 * removed!
182 * removed!
183 * removed!
184 * removed!
185 * removed!
186 *
187 * removed!
188 * removed!
189 * removed!
190 * removed!
191 *
192 * removed!
193 * removed!
194 * removed!
195 *
196 * removed!
197 * removed!
198 * removed!
199 *
200 * removed!
201 * removed!
202 * removed!
203 *
204 * removed!
205 * removed!
206 * removed!
207 *
208 * removed!
209 * removed!
210 * removed!
211 * removed!
212 * removed!
213 *
214 * removed!
215 * removed!
216 * removed!
217 * removed!
218 *
219 * removed!
220 * removed!
221 * removed!
222 * removed!
223 * removed!
224 *
225 * removed!
226 * removed!
227 * removed!
228 * removed!
229 *
230 * removed!
231 * removed!
232 * removed!
233 * removed!
234 *
235 * removed!
236 * removed!
237 * removed!
238 * removed!
239 *
240 * removed!
241 * removed!
242 * removed!
243 * removed!
244 *
245 * removed!
246 * removed!
247 * removed!
248 * removed!
249 *
250 * removed!
251 * removed!
252 * removed!
253 * removed!
254 *
255 * removed!
256 * removed!
257 * removed!
258 * removed!
259 *
260 * removed!
261 * removed!
262 * removed!
263 * removed!
264 *
265 * removed!
266 * removed!
267 * removed!
268 * removed!
269 *
270 * removed!
271 * removed!
272 * removed!
273 * removed!
274 *
275 * removed!
276 * removed!
277 * removed!
278 * removed!
279 *
280 * removed!
281 * removed!
282 * removed!
283 *
284 * removed!
285 * removed!
286 * removed!
287 * removed!
288 *
289 * removed!
290 * removed!
291 * removed!
292 * removed!
293 *
294 * removed!
295 * removed!
296 *
297 * removed!
298 * removed!
299 * removed!
300 *
301 * removed!
302 * removed!
303 * removed!
304 * removed!
305 *
306 * removed!
307 * removed!
308 * removed!
309 * removed!
310 *
311 * removed!
312 * removed!
313 * removed!
314 * removed!
315 *
316 * removed!
317 * removed!
318 * removed!
319 *
320 * removed!
321 * removed!
322 * removed!
323 *
324 * removed!
325 * removed!
326 * removed!
327 * removed!
328 * removed!
329 * removed!
330 * removed!
331 * removed!
332 * removed!
333 *
334 * removed!
335 * removed!
336 * removed!
337 *
338 * removed!
339 * removed!
340 * removed!
341 *
342 * removed!
343 * removed!
344 * removed!
345 * removed!
346 *
347 * removed!
348 * removed!
349 *
350 * removed!
351 * removed!
352 * removed!
353 * removed!
354 * removed!
355 * removed!
356 * removed!
357 * removed!
358 *
359 * removed!
360 * removed!
361 * removed!
362 *
363 * removed!
364 * removed!
365 * removed!
366 *
367 * removed!
368 * removed!
369 * removed!
370 *
371 * removed!
372 * removed!
373 * removed!
374 *
375 * removed!
376 * removed!
377 * removed!
378 *
379 * removed!
380 * removed!
381 * removed!
382 *
383 * removed!
384 * removed!
385 * removed!
386 *
387 * removed!
388 * removed!
389 * removed!
390 *
391 * removed!
392 * removed!
393 * removed!
394 *
395 * removed!
396 * removed!
397 * removed!
398 *
399 * removed!
400 * removed!
401 * removed!
402 *
403 * removed!
404 * removed!
405 * removed!
406 *
407 * removed!
408 * removed!
409 * removed!
410 *
411 * removed!
412 * removed!
413 * removed!
414 * removed!
415 * removed!
416 * removed!
417 *
418 * removed!
419 * removed!
420 * removed!
421 *
422 *
423 * removed!
424 * removed!
425 *
426 * removed!
427 * removed!
428 * removed!
429 *
430 * removed!
431 * removed!
432 * removed!
433 *
434 * removed!
435 * removed!
436 * removed!
437 *
438 * removed!
439 * removed!
440 * removed!
441 *
442 * removed!
443 * removed!
444 * removed!
445 *
446 * removed!
447 * removed!
448 * removed!
449 *
450 * removed!
451 * removed!
452 * removed!
453 *
454 * removed!
455 * removed!
456 * removed!
457 *
458 * removed!
459 * removed!
460 * removed!
461 *
462 * removed!
463 * removed!
464 * removed!
465 * removed!
466 * removed!
467 * removed!
468 * removed!
469 * removed!
470 *
471 *------------------------------------------------------------------------------
472 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
473 *==============================================================================
474 *******************************************************************************/
475
476#ifndef _LTECSR_STRUCT_H
477#define _LTECSR_STRUCT_H
478
479#include "kal_general_types.h"
480#include "kal_public_defs.h"
481
482
483#include "codec_def.h"
484#include "ims_common_def.h"
485#include "ims_nvram_editor.h"
486
487/* value define for common_para2 */
488typedef enum e_ltecsr_feature_option {
489 LTECSR_FEATURE_NONE = (0),
490 LTECSR_FEATURE_DTMF_MUTE = (1<<0),
491 LTECSR_FEATURE_HOLDCALL_DL_CHECK = (1<<1),
492 LTECSR_FEATURE_ALWAYS_ONE_SHOT_DTMF = (1<<2),
493 LTECSR_FEATURE_DTMF_END_SEP_ENABLE = (1<<3),
494 LTECSR_FEATURE_DYNAMIC_QOS = (1<<4),
495 LTECSR_FEATURE_FIX_RTCP_INTERVAL_ACTIVE = (1<<5),
496 LTECSR_FEATURE_FIX_RTCP_INTERVAL_HOLD = (1<<6),
497 LTECSR_FEATURE_PING_PCSCF_ENABLE = (1<<7),
498 LTECSR_FEATURE_RTCP_MAX_INTERVAL_ENABLE = (1<<8),
499 LTECSR_FEATURE_IGNORE_BEARER_LOST = (1<<9),
500 LTECSR_FEATURE_DTMF_END_DURATION_UPDATE = (1<<10),
501 LTECSR_FRATURE_CMR_DISABLE = (1<<11),
502 LTECSR_FEATURE_SEND_INCOMING_DLPKT = (1<<12),
503 LTECSR_FEATURE_DISABLE_UDPCHECKSUM_SEND = (1<<13),
504} ltecsr_feature_option_e;
505
506/* value define for nvram stat_feature_option */
507typedef enum e_ltecsr_stat_feature_option {
508 LTECSR_STAT_NONE = (0),
509 LTECSR_STAT_MDMI = (1<<0),
510 LTECSR_STAT_CIQ = (1<<1),
511 LTECSR_STAT_ECHO = (1<<2),
512 LTECSR_STAT_HIDDEN = (1<<3),
513 LTECSR_STAT_RJIL = (1<<4),
514} ltecsr_stat_feature_option_e;
515
516typedef enum e_func_class {
517 FC_RTP = IMCB_IMC_FC_RTP,
518 FC_XMIT = IMCB_IMC_FC_XMIT,
519 FC_VOICE = IMCB_IMC_FC_VOICE,
520 FC_VIDEO = IMCB_IMC_FC_VIDEO,
521 FC_DTMF = IMCB_IMC_FC_DTMF,
522 FC_CODEC = IMCB_IMC_FC_CODEC,
523 FC_HANDOVER = IMCB_IMC_FC_HANDOVER,
524 FC_TTY = IMCB_IMC_FC_TTY,
525} func_class_e;
526
527typedef enum e_xmit_mode {
528 XMIT_MODE_NONE=0,
529 XMIT_MODE_INACTIVE,
530 XMIT_MODE_SENDONLY,
531 XMIT_MODE_RECVONLY,
532 XMIT_MODE_SENDRECV,
533 XMIT_MODE_ACTIVE,
534} xmit_mode_e;
535
536typedef enum e_ecfg{
537 LTECSR_ECFG_NONE = 0,
538 LTECSR_ECFG_DTX_ENABLE = 1,
539 LTECSR_ECFG_SILENCE_DROPCALL_THRESHOLD = 2,
540 LTECSR_ECFG_JBM_LOAD_PARAMS_ENABLE = 3,
541 LTECSR_ECFG_JBM_PREBUF_LEN = 4,
542 LTECSR_ECFG_JBM_JITTER_MAX_DEPTH = 5,
543 LTECSR_ECFG_JBM_JITTER_FULL_OFFSET = 6,
544 LTECSR_ECFG_LTECSR_COMMON_PARA0 = 7,
545 LTECSR_ECFG_LTECSR_COMMON_PARA1 = 8,
546 LTECSR_ECFG_LTECSR_COMMON_PARA2 = 9,
547 LTECSR_ECFG_LTECSR_COMMON_PARA3 = 10,
548 LTECSR_ECFG_LTECSR_COMMON_PARA4 = 11,
549
550 LTECSR_ECFG_SILENCE_TO_RRC_REPORT_THRRESHOLD = 12,
551 LTECSR_ECFG_RTP_EXPIRE_TIMER = 13,
552 LTECSR_ECFG_RTCP_EXPIRE_TIMER = 14,
553 LTECSR_ECFG_RTCP_XR_INTERVAL = 15,
554 LTECSR_ECFG_RTCP_XR_COMPOUND_RTCP = 16,
555 LTECSR_ECFG_RTCP_XR_GMIN = 17,
556 LTECSR_ECFG_RTCP_FIX_INTERVAL_ACTIVE = 18,
557 LTECSR_ECFG_RTCP_FIX_INTERVAL_HOLD = 19,
558 LTECSR_ECFG_TTY_SYNC_BUF_TIME = 20,
559 LTECSR_ECFG_TTY_WAIT_TIME = 21,
560 LTECSR_ECFG_TTY_SEN_DIFF = 22,
561 LTECSR_ECFG_SILENCE_PING_PCSCF_THRESHOLD = 23,
562 LTECSR_ECFG_RTCP_MIN_INTERVAL = 24,
563 LTECSR_ECFG_RTCP_MAX_INTERVAL = 25,
564 LTECSR_ECFG_STAT_FEATURE_OPTION = 26,
565 LTECSR_ECFG_STAT_REPORT_INTERVAL = 27,
566 LTECSR_ECFG_EVS_PREFER_RATE = 28,
567
568 LTECSR_ECFG_RESET_DEFAULT = 29,
569
570 LTECSR_ECFG_TEXT_RTP_EXPIRE_TIMER = 30,
571 LTECSR_ECFG_TEXT_RTCP_EXPIRE_TIMER = 31,
572 LTECSR_ECFG_TEXT_RTP_RTCP_EXPIRE_TIMER = 32,
573 LTECSR_ECFG_WFC_SILENCE_THRESHOLD = 33,
574 LTECSR_ECFG_EVOLTE_DELAY_THRESHOLD = 34,
575 LTECSR_ECFG_EVOLTE_JITTER_THRESHOLD = 35,
576 LTECSR_ECFG_EVOLTE_PLR_THRESHOLD = 36,
577 LTECSR_ECFG_EVOLTE_ANBR_ENABLE = 37,
578 LTECSR_ECFG_EVOLTE_ANBR_PARA = 38,
579
580 LTECSR_ECFG_DUMP_PROFILE = 39,
581 LTECSR_ECFG_NO_RTP_DROPCALL = 40,
582 LTECSR_ECFG_UL_SILENCE_DROPCALL_THRESHOLD = 41,
583
584 LTECSR_ECFG_RA_PARA = 44,
585 LTECSR_ECFG_RA_DURATION_MAX = 45,
586 LTECSR_ECFG_RA_DURATION_LOW = 46,
587 LTECSR_ECFG_RA_RSRP_POOR_TH = 47,
588 LTECSR_ECFG_RA_RSRP_GOOD_TH = 48,
589 LTECSR_ECFG_RA_SINR_POOR_TH = 49,
590 LTECSR_ECFG_RA_SINR_GOOD_TH = 50,
591
592 LTECSR_ECFG_MAX ,
593} ecfg_e;
594
595enum VoLTE_Event_IP_Version_e {
596 VoLTE_Event_IPv4 = 0,
597 VoLTE_Event_IPv6,
598 /*add here*/
599 VoLTE_Event_IPv_Max,
600};
601
602enum VoLTE_Event_ECN_RTP_METHOD_e {
603 VoLTE_Event_ECN_RTP_NONE = 0,
604 VoLTE_Event_ECN_RTP,
605 VoLTE_Event_ECN_RTP_ICE,
606 VoLTE_Event_ECN_RTP_LEAP,
607 /*add here*/
608 VoLTE_Event_ECN_RTP_Max,
609};
610
611/* Bit-map
612
613 bit0: ALTC
614
615*/
616enum VoLTE_Event_Media_Feature_Flag_e {
617 VoLTE_Event_Media_Feature_Flag_Altc = (1<<0),
618};
619
620typedef enum e_dtmf_mode {
621 DTMF_IN_BAND=0,
622 DTMF_OUT_BAND=1,
623 DTMF_INOUT_BAND=2,
624} dtmf_mode_e;
625
626typedef enum e_dtmf_duration {
627 DTMF_PLAY_INFINITE=-1,
628 DTMF_STOP=0,
629 DTMF_PLAY_ONESHOT=40,
630 /* others value: for unit(ms) */
631} dtmf_duration_e;
632
633typedef enum e_dtmf_clock_rate {
634 DTMF_CLOCK_RATE_8000 = 0,
635 DTMF_CLOCK_RATE_16000 = 1,
636} dtmf_clock_rate_e;
637
638typedef struct s_xxx2ltecsr_dtmf_param {
639 kal_int32 cid;
640// kal_int32 sid;
641 kal_uint8 digit;
642// kal_int8 mode;
643 kal_int8 duration;
644} xxx2ltecsr_dtmf_param_t;
645
646typedef enum e_dtmf_event_state {
647 DTMF_KEY_RELEASE =0,
648 DTMF_KEY_PUSH_STR=1,
649 DTMF_KEY_PUSH_ING=2,
650 DTMF_KEY_PUSH_RE1=3,
651 DTMF_KEY_PUSH_RE2=4,
652 DTMF_KEY_PUSH_RE3=5,
653} dtmf_event_state_e;
654
655typedef enum {
656 LTECSR_HO_START = 0,
657 LTECSR_HO_END = 1
658} ltecsr_ho_stage_enum;
659
660
661
662#define VOLTE_IPV4_LENGTH 4
663#define VOLTE_IPV6_LENGTH 16
664
665/** For EVS START **/
666/* Ref 3GPP 26.445 Table A.3 */
667/* Only for Primary mode */
668enum VoLTE_EVS_Codec_Bitrate_e {
669 VoLTE_EVS_Codec_Bitrate_5_9 = 0x0,
670 VoLTE_EVS_Codec_Bitrate_7_2,
671 VoLTE_EVS_Codec_Bitrate_8_0,
672 VoLTE_EVS_Codec_Bitrate_9_6,
673 VoLTE_EVS_Codec_Bitrate_13_2,
674 VoLTE_EVS_Codec_Bitrate_16_4,
675 VoLTE_EVS_Codec_Bitrate_24_4,
676 VoLTE_EVS_Codec_Bitrate_32_0,
677 VoLTE_EVS_Codec_Bitrate_48_0,
678 VoLTE_EVS_Codec_Bitrate_64_0,
679 VoLTE_EVS_Codec_Bitrate_96_0,
680 VoLTE_EVS_Codec_Bitrate_128_0 = 0xB,
681 VoLTE_EVS_Codec_Bitrate_NONE = 0xF,
682};
683
684enum VoLTE_EVS_Bandwidth_e {
685 VoLTE_EVS_Bandwidth_NB = 0x0,
686 VoLTE_EVS_Bandwidth_WB,
687 VoLTE_EVS_Bandwidth_SWB,
688 VoLTE_EVS_Bandwidth_FB,
689 VoLTE_EVS_Bandwidth_MAX,
690 VoLTE_EVS_Bandwidth_NONE = 0xF,
691};
692/** For EVS END **/
693
694typedef struct s_media_param {
695 VoLTE_Event_Media_config_t o;
696} media_param_t;
697
698typedef struct bearer_mbr_gbr {
699 kal_int32 dl_gbr;
700 kal_int32 dl_mbr;
701 kal_int32 ul_gbr;
702 kal_int32 ul_mbr;
703} bearer_mbr_gbr_t;
704
705typedef struct s_xxx2ltecsr_param {
706
707 /* call id */
708 kal_int32 cid;
709
710 /* session id */
711 kal_int32 voice_sid;
712 kal_int32 video_sid;
713
714 /* BID for voice and video */
715 /* for media_del, BID is not used */
716 kal_int32 voice_bid; /* LTE: EBI, NR: PSI|QFI */
717 kal_int32 video_bid; /* LTE: EBI, NR: PSI|QFI */
718
719 /* channel for voice and video */
720 kal_uint16 voice_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
721 kal_uint16 video_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
722
723 /* op code */
724 kal_uint32 func_class;
725
726 /* Default Bearer ID */
727 kal_uint32 default_bid; /* LTE: Default EBI, NR: PSI|Default QFI */
728
729 /* PDN Context ID */
730 kal_uint32 pdn_cid;
731
732 /* all parameters */
733 media_param_t params;
734
735 /* pcscf */
736 kal_uint32 ip_version; /* 1 (IPv4), 2 (IPv6) */
737 kal_int8 pcscf_address[IMCB_IMC_IPADDR_LENGTH];
738 kal_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
739
740 /* text sid for TTY/RTT
741 0 default value
742 -1 delete tty/rtt
743 others tty/rtt alive
744 */
745 kal_int32 tty_sid;
746 kal_int32 tty_bid; /* LTE: EBI, NR: PSI|QFI */
747
748 kal_uint16 tty_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
749 kal_uint16 gbr_mbr_present_mask; /* 0x1 voice, 0x2 video, 0x4 tty */
750
751 bearer_mbr_gbr_t voice_bearer_quatlity;
752 bearer_mbr_gbr_t video_bearer_quatlity;
753 bearer_mbr_gbr_t tty_bearer_quatlity;
754} xxx2ltecsr_param_t ;
755/* from IMC to LTECSR */
756typedef struct s_ltecsr_media_new {
757 LOCAL_PARA_HDR
758 kal_uint32 tv_sec; // IMCB use gettimeofday to get the time from 1970 (sec)
759 xxx2ltecsr_param_t param;
760} ltecsr_media_new_struct;
761
762typedef struct s_ltecsr_media_del {
763 LOCAL_PARA_HDR
764 xxx2ltecsr_param_t param;
765} ltecsr_media_del_struct;
766
767typedef struct s_ltecsr_media_update {
768 LOCAL_PARA_HDR
769 xxx2ltecsr_param_t param;
770} ltecsr_media_update_struct;
771
772typedef struct s_ltecsr_media_active {
773 LOCAL_PARA_HDR
774 kal_int32 cid;
775 kal_int32 direction;
776} ltecsr_media_active_struct;
777
778/* from LTECSR to IMC */
779typedef struct s_ltecsr_media_no_dlpkt_struct {
780 LOCAL_PARA_HDR
781 kal_int32 cid;
782} ltecsr_media_no_dlpkt_struct;
783
784typedef struct s_ltecsr_media_no_ulpkt_struct {
785 LOCAL_PARA_HDR
786 kal_int32 cid;
787} ltecsr_media_no_ulpkt_struct;
788
789
790/*from LTECSR to IMC, if ANBR can not supported by the negotiated codec, notify UA for further SIP procedure*/
791typedef struct s_ltecsr_media_anbr_notify_ind_struct {
792 LOCAL_PARA_HDR
793 kal_int32 cid;
794 kal_uint32 anbr_value; /*for cid, AS(including RTP and RTCP) supported by access network(e.g, LTE)*/
795}ltecsr_media_anbr_notify_ind_struct;
796
797/*from IMC to LTECSR, UA tells that SIP negotiated based on ANBR fails, then LTECSR shall not notify ANBR with the same bearer and session again*/
798typedef struct s_ltecsr_media_anbr_notify_rsp_struct {
799 LOCAL_PARA_HDR
800 kal_int32 cid;
801 kal_uint32 anbr_result; /*0: SIP negotiated base on ANBR fails; 1: SIP negotiated based on ANBR success; other value: ignore*/
802}ltecsr_media_anbr_notify_rsp_struct;
803
804
805
806/**
807 * IMC External
808 */
809typedef struct s_ltecsr_dtmf_req {
810 LOCAL_PARA_HDR
811 xxx2ltecsr_dtmf_param_t param;
812} ltecsr_dtmf_req_struct;
813
814typedef struct s_ltecsr_media_incoming_dlpkt_struct {
815 LOCAL_PARA_HDR
816 kal_int32 cid;
817} ltecsr_media_incoming_dlpkt_struct;
818
819/* HANDOVER with ebi */
820typedef struct s_ltecsr_handover_begin_struct{
821 imcf_uint8 source_rat_type;
822 imcf_uint8 target_rat_type;
823 imcf_uint8 default_ebi;
824 imcf_uint8 pad;
825 imcf_uint32 network_id;
826} ltecsr_handover_begin_struct;
827
828typedef struct s_ltecsr_handover_end_struct{
829 imcf_uint8 source_rat_type;
830 imcf_uint8 target_rat_type;
831 imcf_uint8 is_success;
832 imcf_uint8 default_ebi;
833 imcf_uint32 network_id;
834} ltecsr_handover_end_struct;
835
836/**
837 * L1SP External
838 */
839typedef struct s_ltecsr_voice_ul_data_notify {
840 LOCAL_PARA_HDR
841} ltecsr_voice_ul_data_notify_struct;
842
843/**
844 * LTECSR Internal
845 */
846typedef struct s_ltecsr_media_init {
847 LOCAL_PARA_HDR
848 xxx2ltecsr_param_t param;
849} ltecsr_media_init_struct;
850
851typedef struct s_ltecsr_media_start {
852 LOCAL_PARA_HDR
853 kal_int32 cid;
854 kal_int32 sid;
855} ltecsr_media_start_struct;
856
857typedef struct s_ltecsr_media_stop {
858 LOCAL_PARA_HDR
859 kal_int32 cid;
860 kal_int32 sid;
861} ltecsr_media_stop_struct;
862
863typedef struct s_ltecsr_media_xmit_mode_set {
864 LOCAL_PARA_HDR
865 kal_int32 cid;
866 kal_int32 sid;
867 kal_int8 xmit_mode; /* xmit_mode_e */
868} ltecsr_media_xmit_mode_set_struct;
869
870typedef struct s_ltecsr_dtmf_play {
871 LOCAL_PARA_HDR
872 xxx2ltecsr_dtmf_param_t param;
873} ltecsr_dtmf_play_struct;
874
875typedef struct s_ltecsr_dtmf_stop {
876 LOCAL_PARA_HDR
877 kal_int32 cid;
878} ltecsr_dtmf_stop_struct;
879
880typedef struct s_ltecsr_media_pt_set {
881 LOCAL_PARA_HDR
882 kal_int32 cid;
883 kal_int32 codec;
884 kal_int32 pt;
885} ltecsr_media_pt_set_struct;
886
887typedef struct s_ltecsr_rtcp_send_interval_set {
888 LOCAL_PARA_HDR
889 kal_int32 cid;
890 kal_int32 sid;
891 kal_int32 rtcp_send_interval;
892} ltecsr_rtcp_send_interval_set_struct;
893
894
895/* For new mechanism,
896 * ecfg_req/ecfg_cnf are used for LTECSR internally.
897 * we keep structure here for old IMC code not removed yet.
898 */
899typedef struct s_ltecsr_ecfg_req {
900 LOCAL_PARA_HDR
901 kal_bool op_code; // 0:get, 1:set
902 ecfg_e config_type;
903 kal_uint8 config_size;
904 kal_uint32 value; // only set op_code will use it
905} ltecsr_ecfg_req_struct;
906
907typedef struct s_ltecsr_ecfg_cnf {
908 LOCAL_PARA_HDR
909 kal_bool result; // KAL_TRUE or KAL_FALSE
910 kal_bool op_code; // 0:get, 1:set
911 ecfg_e config_type;
912 kal_uint8 config_size;
913 kal_uint32 value; // only get op_code will use it
914} ltecsr_ecfg_cnf_struct;
915
916
917typedef struct s_ltecsr_epdg_ho_ind {
918 LOCAL_PARA_HDR
919 kal_int32 stage; // ltecsr_ho_stage_enum
920 kal_int32 rat; // rat: 0->3GPP, 1->WiFi
921 kal_int32 network_id; // network_id
922 kal_int32 pdn_id; // if (stage==1 && rat==0), pdn_id must be non-zero; LTE: Default EBI, NR: PDU Session ID
923 kal_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
924} ltecsr_epdg_ho_ind_struct;
925
926/* interface to ATP */
927typedef enum e_ltecsr_event_type {
928 LTECSR_EVENT_NONE = 0,
929 LTECSR_EVENT_ONE_WAY = 1,
930 LTECSR_EVENT_NEED_CNF = 2,
931 LTECSR_EVENT_CNF = 3,
932 LTECSR_EVENT_MAX = 0xff,
933} ltecsr_event_type_e;
934
935typedef enum e_ltecsr_atp_event {
936 LTECSR_ATP_NONE = 0,
937 LTECSR_ATP_RTP_SESSION_TIMEOUT = 1,
938 LTECSR_ATP_PKT_INFO_URC = 2,
939 LTECSR_ATP_IMS_AUDIO_SILENCE_IND = 3,
940 LTECSR_ATP_MAX = 0xff,
941} ltecsr_atp_event_e;
942
943typedef enum e_ltecsr_action_ind {
944 LTECSR_IND_NONE = 0,
945 LTECSR_IND_EPDG = 1,
946 LTECSR_IND_PCSCF = 2,
947 LTECSR_IND_MAX = 0xff,
948} ltecsr_action_ind_e;
949
950typedef struct s_ltecsr_atp_req_struct {
951 LOCAL_PARA_HDR
952 kal_uint32 index;
953 ltecsr_event_type_e type;
954 ltecsr_atp_event_e msg;
955} ltecsr_atp_req_struct;
956
957typedef struct s_ltecsr_rtp_sample_time_ind_struct {
958 LOCAL_PARA_HDR
959 kal_uint8 pdn_id;
960 kal_uint32 network_id;
961 kal_uint32 timer;
962} ltecsr_rtp_sample_time_ind_struct;
963
964typedef struct s_ltecsr_rtp_session_expire_ind {
965 kal_uint32 id;
966 kal_uint32 pdn_id;
967 kal_uint32 network_id;
968 kal_uint32 timer;
969 kal_uint32 timeout;
970 kal_uint32 action;
971} ltecsr_rtp_session_expire_ind_struct;
972
973typedef struct s_ltecsr_pkt_info_urc_struct {
974 kal_uint32 id;
975 kal_uint32 pdn_id;
976 kal_uint32 network_id;
977 kal_uint32 timer; // statistic duration (ms)
978 kal_uint32 ul_lost; // Uplink pkt loss rate (1/256)
979 kal_uint32 dl_lost; // Downlink pkt loss rate (%)
980 kal_uint32 jitter; // jitter (ms)
981 kal_uint32 rtt; // round trip time (ms)
982} ltecsr_pkt_info_urc_struct;
983
984typedef struct s_ltecsr_ims_audio_silence_ind_struct {
985 kal_uint32 call_id;
986 kal_uint32 is_silence;
987} ltecsr_ims_audio_silence_ind_struct;
988
989
990typedef struct _ltecsr_ims_notify_msg_t{
991 kal_uint32 call_id; //unique call id
992 kal_uint8 msg_id; //enum value should be maintain in shared point
993 kal_uint8 ver; //structure version number start from 0
994 kal_uint16 rsv; //reserve bit must fill 0 (for 4 byte alignment)
995 kal_uint8 ext[64]; //reserve for future other usage
996} ltecsr_ims_notify_msg_t;
997
998typedef struct s_ltecsr_ims_notify_ind_struct {
999 LOCAL_PARA_HDR
1000 ltecsr_ims_notify_msg_t msg;
1001} ltecsr_ims_notify_ind_struct;
1002
1003typedef struct s_ltecsr_ims_notify_req_struct {
1004 LOCAL_PARA_HDR
1005 ltecsr_ims_notify_msg_t msg;
1006} ltecsr_ims_notify_req_struct;
1007
1008typedef enum e_ltecsr_ims_notify{
1009 LTECSR_IMS_NOTIFY_NONE = 0,
1010 LTECSR_IMS_RTP_TIMER_EXPIRE = 1,
1011 LTECSR_IMS_RTCP_TIMER_EXPIRE = 2,
1012 LTECSR_IMS_RTP_WARNING_TIMER_EXPIRE = 3,
1013 LTECSR_IMS_TEXT_RTP_RTCP_TIMER_EXPIRE = 4,
1014 LTECSR_IMS_TEXT_RTP_TIMER_EXPIRE = 5,
1015 LTECSR_IMS_TEXT_RTCP_TIMER_EXPIRE = 6,
1016 LTECSR_IMS_PARAM_ERROR_NOTIFY = 7,
1017 LTECSR_IMS_RTP_TIMER_SDP_REFRESH = 8,
1018 LTECSR_IMS_NOTIFY_MAX = 0xff,
1019} ltecsr_ims_notify_e;
1020
1021/**
1022 * L1C to LTECSR
1023 */
1024typedef struct s_ltecsr_l1c_latency_test_detection_ind {
1025 LOCAL_PARA_HDR
1026 kal_bool latency_test_flag; // 1: detected, 0: not detected
1027} ltecsr_l1c_latency_test_detection_ind_struct;
1028
1029/*
1030 * LTECSR Self Profile(NVRAM) Logging
1031 */
1032#ifdef __VOLTE_SUPPORT__
1033typedef struct {
1034 LOCAL_PARA_HDR
1035
1036 kal_uint32 sim_slot_id;
1037 nvram_ef_ltecsr_profile_record_struct profile;
1038} ltecsr_profile_dump_struct;
1039#endif
1040
1041/*
1042 * LTECSR to IWLAN
1043 */
1044typedef enum _ltecsr_ping_result_e {
1045 NETWORK_PING_PCSCF_NO_REPLY = 1,
1046 NETWORK_PING_PCSCF_PART_REPLY = 2,
1047 NETWORK_PING_PCSCF_FULL_REPLY = 3,
1048}ltecsr_ping_result_e;
1049
1050/*********** ERRC ************/
1051typedef enum e_ltecsr_errc_volte_status {
1052 LTECSR_ERRC_VOLTE_CALL_START = 0,
1053 LTECSR_ERRC_VOLTE_CALL_END = 1,
1054} ltecsr_errc_volte_status_e;
1055
1056typedef enum e_ltecsr_errc_delay_budget_cmd {
1057 LTECSR_ERRC_DB_RELEASE = 0,
1058 LTECSR_ERRC_DB_SETUP = 1,
1059} ltecsr_errc_delay_budget_cmd_e;
1060
1061typedef enum e_ltecsr_errc_delay_budget_type {
1062 LTECSR_ERRC_DB_INVALID = 0,
1063 LTECSR_ERRC_DB_TYPE1 = 1,
1064 LTECSR_ERRC_DB_TYPE2 = 2,
1065} ltecsr_errc_delay_budget_type_e;
1066
1067typedef enum e_ltecsr_errc_volte_quality {
1068 LTECSR_ERRC_VOICE_GOOD = 0,
1069 LTECSR_ERRC_VOICE_BAD = 1,
1070} ltecsr_errc_volte_quality_e;
1071
1072
1073/* VoLTE Status: LTECSR -> ERRC */
1074typedef struct s_ltecsr_errc_volte_status_ntf_struct {
1075 LOCAL_PARA_HDR
1076 ltecsr_errc_volte_status_e volte_status;
1077} ltecsr_errc_volte_status_ntf_struct;
1078
1079
1080/* Delay Budget: ERRC -> LTECSR */
1081typedef struct s_ltecsr_errc_delay_budget_rpt_req_struct {
1082 LOCAL_PARA_HDR
1083 ltecsr_errc_delay_budget_cmd_e cmd;
1084} ltecsr_errc_delay_budget_rpt_req_struct;
1085
1086typedef struct s_ltecsr_errc_delay_budget_result_ind_struct {
1087 LOCAL_PARA_HDR
1088 ltecsr_errc_delay_budget_type_e type; // type 1 or 2 report to eNB
1089 kal_int16 value; // unit: ms, reported value
1090} ltecsr_errc_delay_budget_result_ind_struct; // JBM could use this info to do some enhancement
1091
1092/* Delay Budget: LTECSR -> ERRC */
1093typedef struct s_ltecsr_errc_delay_budget_rpt_cnf_struct {
1094 LOCAL_PARA_HDR
1095 ltecsr_errc_volte_quality_e volte_quality;
1096 kal_int16 e2e_delay; // unit: ms
1097 kal_int16 speech_delay; // unit: ms, UL+DL speech delay
1098 kal_int16 JBM_delay_budget; // unit: ms
1099 kal_int16 delay_threshold; // unit: ms, mouth-to-ear delay threshold defined by NVRAM
1100} ltecsr_errc_delay_budget_rpt_cnf_struct,ltecsr_errc_delay_budget_rpt_ind_struct;
1101
1102/*ANBRQ support or not from LTE: UPCM -> LTECSR*/
1103typedef struct s_ltecsr_upcm_anbrq_config_ind_struct {
1104 LOCAL_PARA_HDR
1105 kal_bool anbrq_config; /*true: anbrq support; false: anbrq not support*/
1106}ltecsr_upcm_anbrq_config_ind_struct;
1107
1108/*ABNR: UPCM->LTECSR*/
1109typedef struct s_ltecsr_upcm_anbr_ind_struct {
1110 LOCAL_PARA_HDR
1111#ifdef __FIVEG_VOICE__
1112 kal_uint8 bearer_id; // EBI/QFI
1113 kal_uint8 pdu_session_id; // LTE: 0, NR: PSI
1114#else /* __FIVEG_VOICE__ */
1115 kal_uint8 ebi;
1116#endif /* __FIVEG_VOICE__ */
1117 kal_bool is_ul;
1118 kal_uint32 bitrate; /*bps, recommendated bitrate (in RTP payload level) from Access Network, after removing LTE related header (ROHC/PDCP/RLC/MAC.)*/
1119}ltecsr_upcm_anbr_ind_struct;
1120
1121/*ANBRQ: LTECSR->UPCM*/
1122typedef struct s_ltecsr_upcm_anbrq_req_struct {
1123 LOCAL_PARA_HDR
1124#ifdef __FIVEG_VOICE__
1125 kal_uint8 bearer_id; // EBI/QFI
1126 kal_uint8 pdu_session_id; // LTE: 0, NR: PSI
1127#else /* __FIVEG_VOICE__ */
1128 kal_uint8 ebi;
1129#endif /* __FIVEG_VOICE__ */
1130 kal_bool is_ul;
1131 kal_uint32 bitrate; /*bps, queryed bitrate (in RTP payload level) to Access Network*/
1132}ltecsr_upcm_anbrq_req_struct;
1133
1134#ifdef __FIVEG_VOICE__
1135/*IPV4V6: LTECSR->UPCM*/
1136typedef struct s_ltecsr_upcm_ipv4v6_req_struct {
1137 LOCAL_PARA_HDR
1138 kal_uint8 bearer_id; // EBI/QFI
1139 kal_uint8 ipv4v6_type;
1140 kal_uint8 pdu_session_id; // LTE: 0, NR: PSI
1141}ltecsr_upcm_ipv4v6_req_struct;
1142#endif /* __FIVEG_VOICE__ */
1143
1144/*********** NRRC - LTECSR SAP ************/
1145typedef enum {
1146 LTECSR_NR_DELAY_BUDGET_REPORTING_COMMAND_STOP = 0,
1147 LTECSR_NR_DELAY_BUDGET_REPORTING_COMMAND_START = 1
1148} ltecsr_nr_delay_budget_reporting_command_enum;
1149
1150typedef enum {
1151 LTECSR_NR_DELAY_BUDGET_REPORT_TYPE_TYPE1 = 1
1152} ltecsr_nr_delay_budget_report_type_enum;
1153
1154/* NRRC_LTECSR_DELAY_BUDGET_REPORT_REQ (NRRC -> LTECSR) */
1155typedef struct s_ltecsr_nrrc_delay_budget_report_req_struct {
1156 LOCAL_PARA_HDR
1157 ltecsr_nr_delay_budget_reporting_command_enum command;
1158} nrrc_ltecsr_delay_budget_report_req_struct;
1159
1160/* NRRC_LTECSR_DELAY_BUDGET_REPORT_IND (LTECSR -> NRRC) */
1161typedef struct s_ltecsr_nrrc_delay_budget_report_ind_struct{
1162 LOCAL_PARA_HDR
1163 kal_bool valid;
1164 kal_bool is_voice_quality_good;
1165 kal_uint16 voice_delay;
1166 kal_uint16 jbm_delay_budget;
1167 kal_uint16 max_acceptable_delay;
1168} nrrc_ltecsr_delay_budget_report_ind_struct;
1169
1170/* NRRC_LTECSR_DELAY_BUDGET_RESULT_HANDLE_REQ (NRRC -> LTECSR) */
1171typedef struct s_ltecsr_nrrc_delay_budget_result_handle_req_struct {
1172 LOCAL_PARA_HDR
1173 ltecsr_nr_delay_budget_report_type_enum type;
1174 kal_int16 drx_adjustment;
1175} nrrc_ltecsr_delay_budget_result_handle_req_struct;
1176
1177#endif
1178