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