blob: 2baae2504712153ef6da7a4701d5e088a45c084e [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
597 LTECSR_ECFG_MAX ,
598} ecfg_e;
599
600enum VoLTE_Event_IP_Version_e {
601 VoLTE_Event_IPv4 = 0,
602 VoLTE_Event_IPv6,
603 /*add here*/
604 VoLTE_Event_IPv_Max,
605};
606
607enum VoLTE_Event_ECN_RTP_METHOD_e {
608 VoLTE_Event_ECN_RTP_NONE = 0,
609 VoLTE_Event_ECN_RTP,
610 VoLTE_Event_ECN_RTP_ICE,
611 VoLTE_Event_ECN_RTP_LEAP,
612 /*add here*/
613 VoLTE_Event_ECN_RTP_Max,
614};
615
616/* Bit-map
617
618 bit0: ALTC
619
620*/
621enum VoLTE_Event_Media_Feature_Flag_e {
622 VoLTE_Event_Media_Feature_Flag_Altc = (1<<0),
623};
624
625typedef enum e_dtmf_mode {
626 DTMF_IN_BAND=0,
627 DTMF_OUT_BAND=1,
628 DTMF_INOUT_BAND=2,
629} dtmf_mode_e;
630
631typedef enum e_dtmf_duration {
632 DTMF_PLAY_INFINITE=-1,
633 DTMF_STOP=0,
634 DTMF_PLAY_ONESHOT=40,
635 /* others value: for unit(ms) */
636} dtmf_duration_e;
637
638typedef enum e_dtmf_clock_rate {
639 DTMF_CLOCK_RATE_8000 = 0,
640 DTMF_CLOCK_RATE_16000 = 1,
641} dtmf_clock_rate_e;
642
643typedef struct s_xxx2ltecsr_dtmf_param {
644 kal_int32 cid;
645// kal_int32 sid;
646 kal_uint8 digit;
647// kal_int8 mode;
648 kal_int8 duration;
649} xxx2ltecsr_dtmf_param_t;
650
651typedef enum e_dtmf_event_state {
652 DTMF_KEY_RELEASE =0,
653 DTMF_KEY_PUSH_STR=1,
654 DTMF_KEY_PUSH_ING=2,
655 DTMF_KEY_PUSH_RE1=3,
656 DTMF_KEY_PUSH_RE2=4,
657 DTMF_KEY_PUSH_RE3=5,
658} dtmf_event_state_e;
659
660typedef enum {
661 LTECSR_HO_START = 0,
662 LTECSR_HO_END = 1
663} ltecsr_ho_stage_enum;
664
665
666
667#define VOLTE_IPV4_LENGTH 4
668#define VOLTE_IPV6_LENGTH 16
669
670/** For EVS START **/
671/* Ref 3GPP 26.445 Table A.3 */
672/* Only for Primary mode */
673enum VoLTE_EVS_Codec_Bitrate_e {
674 VoLTE_EVS_Codec_Bitrate_5_9 = 0x0,
675 VoLTE_EVS_Codec_Bitrate_7_2,
676 VoLTE_EVS_Codec_Bitrate_8_0,
677 VoLTE_EVS_Codec_Bitrate_9_6,
678 VoLTE_EVS_Codec_Bitrate_13_2,
679 VoLTE_EVS_Codec_Bitrate_16_4,
680 VoLTE_EVS_Codec_Bitrate_24_4,
681 VoLTE_EVS_Codec_Bitrate_32_0,
682 VoLTE_EVS_Codec_Bitrate_48_0,
683 VoLTE_EVS_Codec_Bitrate_64_0,
684 VoLTE_EVS_Codec_Bitrate_96_0,
685 VoLTE_EVS_Codec_Bitrate_128_0 = 0xB,
686 VoLTE_EVS_Codec_Bitrate_NONE = 0xF,
687};
688
689enum VoLTE_EVS_Bandwidth_e {
690 VoLTE_EVS_Bandwidth_NB = 0x0,
691 VoLTE_EVS_Bandwidth_WB,
692 VoLTE_EVS_Bandwidth_SWB,
693 VoLTE_EVS_Bandwidth_FB,
694 VoLTE_EVS_Bandwidth_MAX,
695 VoLTE_EVS_Bandwidth_NONE = 0xF,
696};
697/** For EVS END **/
698
699typedef struct s_media_param {
700 VoLTE_Event_Media_config_t o;
701} media_param_t;
702
703typedef struct bearer_mbr_gbr {
704 kal_int32 dl_gbr;
705 kal_int32 dl_mbr;
706 kal_int32 ul_gbr;
707 kal_int32 ul_mbr;
708} bearer_mbr_gbr_t;
709
710typedef struct s_xxx2ltecsr_param {
711
712 /* call id */
713 kal_int32 cid;
714
715 /* session id */
716 kal_int32 voice_sid;
717 kal_int32 video_sid;
718
719 /* BID for voice and video */
720 /* for media_del, BID is not used */
721 kal_int32 voice_bid; /* LTE: EBI, NR: PSI|QFI */
722 kal_int32 video_bid; /* LTE: EBI, NR: PSI|QFI */
723
724 /* channel for voice and video */
725 kal_uint16 voice_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
726 kal_uint16 video_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
727
728 /* op code */
729 kal_uint32 func_class;
730
731 /* Default Bearer ID */
732 kal_uint32 default_bid; /* LTE: Default EBI, NR: PSI|Default QFI */
733
734 /* PDN Context ID */
735 kal_uint32 pdn_cid;
736
737 /* all parameters */
738 media_param_t params;
739
740 /* pcscf */
741 kal_uint32 ip_version; /* 1 (IPv4), 2 (IPv6) */
742 kal_int8 pcscf_address[IMCB_IMC_IPADDR_LENGTH];
743 kal_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
744
745 /* text sid for TTY/RTT
746 0 default value
747 -1 delete tty/rtt
748 others tty/rtt alive
749 */
750 kal_int32 tty_sid;
751 kal_int32 tty_bid; /* LTE: EBI, NR: PSI|QFI */
752
753 kal_uint16 tty_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
754 kal_uint16 gbr_mbr_present_mask; /* 0x1 voice, 0x2 video, 0x4 tty */
755
756 bearer_mbr_gbr_t voice_bearer_quatlity;
757 bearer_mbr_gbr_t video_bearer_quatlity;
758 bearer_mbr_gbr_t tty_bearer_quatlity;
759} xxx2ltecsr_param_t ;
760/* from IMC to LTECSR */
761typedef struct s_ltecsr_media_new {
762 LOCAL_PARA_HDR
763 kal_uint32 tv_sec; // IMCB use gettimeofday to get the time from 1970 (sec)
764 xxx2ltecsr_param_t param;
765} ltecsr_media_new_struct;
766
767typedef struct s_ltecsr_media_del {
768 LOCAL_PARA_HDR
769 xxx2ltecsr_param_t param;
770} ltecsr_media_del_struct;
771
772typedef struct s_ltecsr_media_update {
773 LOCAL_PARA_HDR
774 xxx2ltecsr_param_t param;
775} ltecsr_media_update_struct;
776
777typedef struct s_ltecsr_media_active {
778 LOCAL_PARA_HDR
779 kal_int32 cid;
780 kal_int32 direction;
781} ltecsr_media_active_struct;
782
783/* from LTECSR to IMC */
784typedef struct s_ltecsr_media_no_dlpkt_struct {
785 LOCAL_PARA_HDR
786 kal_int32 cid;
787} ltecsr_media_no_dlpkt_struct;
788
789typedef struct s_ltecsr_media_no_ulpkt_struct {
790 LOCAL_PARA_HDR
791 kal_int32 cid;
792} ltecsr_media_no_ulpkt_struct;
793
794
795/*from LTECSR to IMC, if ANBR can not supported by the negotiated codec, notify UA for further SIP procedure*/
796typedef struct s_ltecsr_media_anbr_notify_ind_struct {
797 LOCAL_PARA_HDR
798 kal_int32 cid;
799 kal_uint32 anbr_value; /*for cid, AS(including RTP and RTCP) supported by access network(e.g, LTE)*/
800}ltecsr_media_anbr_notify_ind_struct;
801
802/*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*/
803typedef struct s_ltecsr_media_anbr_notify_rsp_struct {
804 LOCAL_PARA_HDR
805 kal_int32 cid;
806 kal_uint32 anbr_result; /*0: SIP negotiated base on ANBR fails; 1: SIP negotiated based on ANBR success; other value: ignore*/
807}ltecsr_media_anbr_notify_rsp_struct;
808
809
810
811/**
812 * IMC External
813 */
814typedef struct s_ltecsr_dtmf_req {
815 LOCAL_PARA_HDR
816 xxx2ltecsr_dtmf_param_t param;
817} ltecsr_dtmf_req_struct;
818
819typedef struct s_ltecsr_media_incoming_dlpkt_struct {
820 LOCAL_PARA_HDR
821 kal_int32 cid;
822} ltecsr_media_incoming_dlpkt_struct;
823
824/* HANDOVER with ebi */
825typedef struct s_ltecsr_handover_begin_struct{
826 imcf_uint8 source_rat_type;
827 imcf_uint8 target_rat_type;
828 imcf_uint8 default_ebi;
829 imcf_uint8 pad;
830 imcf_uint32 network_id;
831} ltecsr_handover_begin_struct;
832
833typedef struct s_ltecsr_handover_end_struct{
834 imcf_uint8 source_rat_type;
835 imcf_uint8 target_rat_type;
836 imcf_uint8 is_success;
837 imcf_uint8 default_ebi;
838 imcf_uint32 network_id;
839} ltecsr_handover_end_struct;
840
841/**
842 * L1SP External
843 */
844typedef struct s_ltecsr_voice_ul_data_notify {
845 LOCAL_PARA_HDR
846} ltecsr_voice_ul_data_notify_struct;
847
848/**
849 * LTECSR Internal
850 */
851typedef struct s_ltecsr_media_init {
852 LOCAL_PARA_HDR
853 xxx2ltecsr_param_t param;
854} ltecsr_media_init_struct;
855
856typedef struct s_ltecsr_media_start {
857 LOCAL_PARA_HDR
858 kal_int32 cid;
859 kal_int32 sid;
860} ltecsr_media_start_struct;
861
862typedef struct s_ltecsr_media_stop {
863 LOCAL_PARA_HDR
864 kal_int32 cid;
865 kal_int32 sid;
866} ltecsr_media_stop_struct;
867
868typedef struct s_ltecsr_media_xmit_mode_set {
869 LOCAL_PARA_HDR
870 kal_int32 cid;
871 kal_int32 sid;
872 kal_int8 xmit_mode; /* xmit_mode_e */
873} ltecsr_media_xmit_mode_set_struct;
874
875typedef struct s_ltecsr_dtmf_play {
876 LOCAL_PARA_HDR
877 xxx2ltecsr_dtmf_param_t param;
878} ltecsr_dtmf_play_struct;
879
880typedef struct s_ltecsr_dtmf_stop {
881 LOCAL_PARA_HDR
882 kal_int32 cid;
883} ltecsr_dtmf_stop_struct;
884
885typedef struct s_ltecsr_media_pt_set {
886 LOCAL_PARA_HDR
887 kal_int32 cid;
888 kal_int32 codec;
889 kal_int32 pt;
890} ltecsr_media_pt_set_struct;
891
892typedef struct s_ltecsr_rtcp_send_interval_set {
893 LOCAL_PARA_HDR
894 kal_int32 cid;
895 kal_int32 sid;
896 kal_int32 rtcp_send_interval;
897} ltecsr_rtcp_send_interval_set_struct;
898
899
900/* For new mechanism,
901 * ecfg_req/ecfg_cnf are used for LTECSR internally.
902 * we keep structure here for old IMC code not removed yet.
903 */
904typedef struct s_ltecsr_ecfg_req {
905 LOCAL_PARA_HDR
906 kal_bool op_code; // 0:get, 1:set
907 ecfg_e config_type;
908 kal_uint8 config_size;
909 kal_uint32 value; // only set op_code will use it
910} ltecsr_ecfg_req_struct;
911
912typedef struct s_ltecsr_ecfg_cnf {
913 LOCAL_PARA_HDR
914 kal_bool result; // KAL_TRUE or KAL_FALSE
915 kal_bool op_code; // 0:get, 1:set
916 ecfg_e config_type;
917 kal_uint8 config_size;
918 kal_uint32 value; // only get op_code will use it
919} ltecsr_ecfg_cnf_struct;
920
921
922typedef struct s_ltecsr_epdg_ho_ind {
923 LOCAL_PARA_HDR
924 kal_int32 stage; // ltecsr_ho_stage_enum
925 kal_int32 rat; // rat: 0->3GPP, 1->WiFi
926 kal_int32 network_id; // network_id
927 kal_int32 pdn_id; // if (stage==1 && rat==0), pdn_id must be non-zero; LTE: Default EBI, NR: PDU Session ID
928 kal_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
929} ltecsr_epdg_ho_ind_struct;
930
931/* interface to ATP */
932typedef enum e_ltecsr_event_type {
933 LTECSR_EVENT_NONE = 0,
934 LTECSR_EVENT_ONE_WAY = 1,
935 LTECSR_EVENT_NEED_CNF = 2,
936 LTECSR_EVENT_CNF = 3,
937 LTECSR_EVENT_MAX = 0xff,
938} ltecsr_event_type_e;
939
940typedef enum e_ltecsr_atp_event {
941 LTECSR_ATP_NONE = 0,
942 LTECSR_ATP_RTP_SESSION_TIMEOUT = 1,
943 LTECSR_ATP_PKT_INFO_URC = 2,
944 LTECSR_ATP_IMS_AUDIO_SILENCE_IND = 3,
945 LTECSR_ATP_MAX = 0xff,
946} ltecsr_atp_event_e;
947
948typedef enum e_ltecsr_action_ind {
949 LTECSR_IND_NONE = 0,
950 LTECSR_IND_EPDG = 1,
951 LTECSR_IND_PCSCF = 2,
952 LTECSR_IND_MAX = 0xff,
953} ltecsr_action_ind_e;
954
955typedef struct s_ltecsr_atp_req_struct {
956 LOCAL_PARA_HDR
957 kal_uint32 index;
958 ltecsr_event_type_e type;
959 ltecsr_atp_event_e msg;
960} ltecsr_atp_req_struct;
961
962typedef struct s_ltecsr_rtp_sample_time_ind_struct {
963 LOCAL_PARA_HDR
964 kal_uint8 pdn_id;
965 kal_uint32 network_id;
966 kal_uint32 timer;
967} ltecsr_rtp_sample_time_ind_struct;
968
969typedef struct s_ltecsr_rtp_session_expire_ind {
970 kal_uint32 id;
971 kal_uint32 pdn_id;
972 kal_uint32 network_id;
973 kal_uint32 timer;
974 kal_uint32 timeout;
975 kal_uint32 action;
976} ltecsr_rtp_session_expire_ind_struct;
977
978typedef struct s_ltecsr_pkt_info_urc_struct {
979 kal_uint32 id;
980 kal_uint32 pdn_id;
981 kal_uint32 network_id;
982 kal_uint32 timer; // statistic duration (ms)
983 kal_uint32 ul_lost; // Uplink pkt loss rate (1/256)
984 kal_uint32 dl_lost; // Downlink pkt loss rate (%)
985 kal_uint32 jitter; // jitter (ms)
986 kal_uint32 rtt; // round trip time (ms)
987} ltecsr_pkt_info_urc_struct;
988
989typedef struct s_ltecsr_ims_audio_silence_ind_struct {
990 kal_uint32 call_id;
991 kal_uint32 is_silence;
992} ltecsr_ims_audio_silence_ind_struct;
993
994
995typedef struct _ltecsr_ims_notify_msg_t{
996 kal_uint32 call_id; //unique call id
997 kal_uint8 msg_id; //enum value should be maintain in shared point
998 kal_uint8 ver; //structure version number start from 0
999 kal_uint16 rsv; //reserve bit must fill 0 (for 4 byte alignment)
1000 kal_uint8 ext[64]; //reserve for future other usage
1001} ltecsr_ims_notify_msg_t;
1002
1003typedef struct s_ltecsr_ims_notify_ind_struct {
1004 LOCAL_PARA_HDR
1005 ltecsr_ims_notify_msg_t msg;
1006} ltecsr_ims_notify_ind_struct;
1007
1008typedef struct s_ltecsr_ims_notify_req_struct {
1009 LOCAL_PARA_HDR
1010 ltecsr_ims_notify_msg_t msg;
1011} ltecsr_ims_notify_req_struct;
1012
1013typedef enum e_ltecsr_ims_notify{
1014 LTECSR_IMS_NOTIFY_NONE = 0,
1015 LTECSR_IMS_RTP_TIMER_EXPIRE = 1,
1016 LTECSR_IMS_RTCP_TIMER_EXPIRE = 2,
1017 LTECSR_IMS_RTP_WARNING_TIMER_EXPIRE = 3,
1018 LTECSR_IMS_TEXT_RTP_RTCP_TIMER_EXPIRE = 4,
1019 LTECSR_IMS_TEXT_RTP_TIMER_EXPIRE = 5,
1020 LTECSR_IMS_TEXT_RTCP_TIMER_EXPIRE = 6,
1021 LTECSR_IMS_PARAM_ERROR_NOTIFY = 7,
1022 LTECSR_IMS_RTP_TIMER_SDP_REFRESH = 8,
1023 LTECSR_IMS_NOTIFY_MAX = 0xff,
1024} ltecsr_ims_notify_e;
1025
1026/**
1027 * L1C to LTECSR
1028 */
1029typedef struct s_ltecsr_l1c_latency_test_detection_ind {
1030 LOCAL_PARA_HDR
1031 kal_bool latency_test_flag; // 1: detected, 0: not detected
1032} ltecsr_l1c_latency_test_detection_ind_struct;
1033
1034/*
1035 * LTECSR Self Profile(NVRAM) Logging
1036 */
1037#ifdef __VOLTE_SUPPORT__
1038typedef struct {
1039 LOCAL_PARA_HDR
1040
1041 kal_uint32 sim_slot_id;
1042 nvram_ef_ltecsr_profile_record_struct profile;
1043} ltecsr_profile_dump_struct;
1044#endif
1045
1046/*
1047 * LTECSR to IWLAN
1048 */
1049typedef enum _ltecsr_ping_result_e {
1050 NETWORK_PING_PCSCF_NO_REPLY = 1,
1051 NETWORK_PING_PCSCF_PART_REPLY = 2,
1052 NETWORK_PING_PCSCF_FULL_REPLY = 3,
1053}ltecsr_ping_result_e;
1054
1055/*********** ERRC ************/
1056typedef enum e_ltecsr_errc_volte_status {
1057 LTECSR_ERRC_VOLTE_CALL_START = 0,
1058 LTECSR_ERRC_VOLTE_CALL_END = 1,
1059} ltecsr_errc_volte_status_e;
1060
1061typedef enum e_ltecsr_errc_delay_budget_cmd {
1062 LTECSR_ERRC_DB_RELEASE = 0,
1063 LTECSR_ERRC_DB_SETUP = 1,
1064} ltecsr_errc_delay_budget_cmd_e;
1065
1066typedef enum e_ltecsr_errc_delay_budget_type {
1067 LTECSR_ERRC_DB_INVALID = 0,
1068 LTECSR_ERRC_DB_TYPE1 = 1,
1069 LTECSR_ERRC_DB_TYPE2 = 2,
1070} ltecsr_errc_delay_budget_type_e;
1071
1072typedef enum e_ltecsr_errc_volte_quality {
1073 LTECSR_ERRC_VOICE_GOOD = 0,
1074 LTECSR_ERRC_VOICE_BAD = 1,
1075} ltecsr_errc_volte_quality_e;
1076
1077
1078/* VoLTE Status: LTECSR -> ERRC */
1079typedef struct s_ltecsr_errc_volte_status_ntf_struct {
1080 LOCAL_PARA_HDR
1081 ltecsr_errc_volte_status_e volte_status;
1082} ltecsr_errc_volte_status_ntf_struct;
1083
1084
1085/* Delay Budget: ERRC -> LTECSR */
1086typedef struct s_ltecsr_errc_delay_budget_rpt_req_struct {
1087 LOCAL_PARA_HDR
1088 ltecsr_errc_delay_budget_cmd_e cmd;
1089} ltecsr_errc_delay_budget_rpt_req_struct;
1090
1091typedef struct s_ltecsr_errc_delay_budget_result_ind_struct {
1092 LOCAL_PARA_HDR
1093 ltecsr_errc_delay_budget_type_e type; // type 1 or 2 report to eNB
1094 kal_int16 value; // unit: ms, reported value
1095} ltecsr_errc_delay_budget_result_ind_struct; // JBM could use this info to do some enhancement
1096
1097/* Delay Budget: LTECSR -> ERRC */
1098typedef struct s_ltecsr_errc_delay_budget_rpt_cnf_struct {
1099 LOCAL_PARA_HDR
1100 ltecsr_errc_volte_quality_e volte_quality;
1101 kal_int16 e2e_delay; // unit: ms
1102 kal_int16 speech_delay; // unit: ms, UL+DL speech delay
1103 kal_int16 JBM_delay_budget; // unit: ms
1104 kal_int16 delay_threshold; // unit: ms, mouth-to-ear delay threshold defined by NVRAM
1105} ltecsr_errc_delay_budget_rpt_cnf_struct,ltecsr_errc_delay_budget_rpt_ind_struct;
1106
1107/*ANBRQ support or not from LTE: UPCM -> LTECSR*/
1108typedef struct s_ltecsr_upcm_anbrq_config_ind_struct {
1109 LOCAL_PARA_HDR
1110 kal_bool anbrq_config; /*true: anbrq support; false: anbrq not support*/
1111}ltecsr_upcm_anbrq_config_ind_struct;
1112
1113/*ABNR: UPCM->LTECSR*/
1114typedef struct s_ltecsr_upcm_anbr_ind_struct {
1115 LOCAL_PARA_HDR
1116#ifdef __FIVEG_VOICE__
1117 kal_uint8 bearer_id; // EBI/QFI
1118 kal_uint8 pdu_session_id; // LTE: 0, NR: PSI
1119#else /* __FIVEG_VOICE__ */
1120 kal_uint8 ebi;
1121#endif /* __FIVEG_VOICE__ */
1122 kal_bool is_ul;
1123 kal_uint32 bitrate; /*bps, recommendated bitrate (in RTP payload level) from Access Network, after removing LTE related header (ROHC/PDCP/RLC/MAC.)*/
1124}ltecsr_upcm_anbr_ind_struct;
1125
1126/*ANBRQ: LTECSR->UPCM*/
1127typedef struct s_ltecsr_upcm_anbrq_req_struct {
1128 LOCAL_PARA_HDR
1129#ifdef __FIVEG_VOICE__
1130 kal_uint8 bearer_id; // EBI/QFI
1131 kal_uint8 pdu_session_id; // LTE: 0, NR: PSI
1132#else /* __FIVEG_VOICE__ */
1133 kal_uint8 ebi;
1134#endif /* __FIVEG_VOICE__ */
1135 kal_bool is_ul;
1136 kal_uint32 bitrate; /*bps, queryed bitrate (in RTP payload level) to Access Network*/
1137}ltecsr_upcm_anbrq_req_struct;
1138
1139#ifdef __FIVEG_VOICE__
1140/*IPV4V6: LTECSR->UPCM*/
1141typedef struct s_ltecsr_upcm_ipv4v6_req_struct {
1142 LOCAL_PARA_HDR
1143 kal_uint8 bearer_id; // EBI/QFI
1144 kal_uint8 ipv4v6_type;
1145 kal_uint8 pdu_session_id; // LTE: 0, NR: PSI
1146}ltecsr_upcm_ipv4v6_req_struct;
1147#endif /* __FIVEG_VOICE__ */
1148
1149/*********** NRRC - LTECSR SAP ************/
1150typedef enum {
1151 LTECSR_NR_DELAY_BUDGET_REPORTING_COMMAND_STOP = 0,
1152 LTECSR_NR_DELAY_BUDGET_REPORTING_COMMAND_START = 1
1153} ltecsr_nr_delay_budget_reporting_command_enum;
1154
1155typedef enum {
1156 LTECSR_NR_DELAY_BUDGET_REPORT_TYPE_TYPE1 = 1
1157} ltecsr_nr_delay_budget_report_type_enum;
1158
1159/* NRRC_LTECSR_DELAY_BUDGET_REPORT_REQ (NRRC -> LTECSR) */
1160typedef struct s_ltecsr_nrrc_delay_budget_report_req_struct {
1161 LOCAL_PARA_HDR
1162 ltecsr_nr_delay_budget_reporting_command_enum command;
1163} nrrc_ltecsr_delay_budget_report_req_struct;
1164
1165/* NRRC_LTECSR_DELAY_BUDGET_REPORT_IND (LTECSR -> NRRC) */
1166typedef struct s_ltecsr_nrrc_delay_budget_report_ind_struct{
1167 LOCAL_PARA_HDR
1168 kal_bool valid;
1169 kal_bool is_voice_quality_good;
1170 kal_uint16 voice_delay;
1171 kal_uint16 jbm_delay_budget;
1172 kal_uint16 max_acceptable_delay;
1173} nrrc_ltecsr_delay_budget_report_ind_struct;
1174
1175/* NRRC_LTECSR_DELAY_BUDGET_RESULT_HANDLE_REQ (NRRC -> LTECSR) */
1176typedef struct s_ltecsr_nrrc_delay_budget_result_handle_req_struct {
1177 LOCAL_PARA_HDR
1178 ltecsr_nr_delay_budget_report_type_enum type;
1179 kal_int16 drx_adjustment;
1180} nrrc_ltecsr_delay_budget_result_handle_req_struct;
1181
rjw8e44aab2022-11-30 16:42:16 +08001182/**
1183 * L5 LTECSR SAP
1184 */
1185typedef enum e_ltecsr_notify_recv_dtmf_event{
1186 LTECSR_NOTIFY_RECV_DTMF_EVENT_START = 0,
1187 LTECSR_NOTIFY_RECV_DTMF_EVENT_STOP = 1,
1188 LTECSR_NOTIFY_RECV_DTMF_EVENT_STOP_ALL = 2
1189} ltecsr_notify_recv_dtmf_event_e;
1190#define MAX_DTMF_RECV_REPORT_LENGTH 2
1191/* L5_LTECSR_RECV_DTMF_IND (LTECSR -> L5) */
1192typedef struct s_ltecsr_l5_recv_dtmf_ind_struct {
1193 LOCAL_PARA_HDR
1194 kal_uint8 mode; /* 0:START, 1:STOP, 2:STOP_ALL */
1195 kal_char digit[MAX_DTMF_RECV_REPORT_LENGTH]; /* digit[0]: the DTMF event char, digit[1]: always ended with '\0' */
1196} l5_ltecsr_recv_dtmf_ind_struct;
rjw6c1fd8f2022-11-30 14:33:01 +08001197#endif
1198