[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/service/icd/el1/EL1_DCI_Information.h b/mcu/interface/service/icd/el1/EL1_DCI_Information.h
new file mode 100644
index 0000000..5adbee9
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_DCI_Information.h
@@ -0,0 +1,141 @@
+// ICD Header Format v3
+// Name : EL1_DCI_Information
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x700A
+// Version : V2.6
+
+#ifndef _EL1_DCI_INFORMATION_H
+#define _EL1_DCI_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_DCI_INFORMATION 0x700A
+
+#define ICD_EL1_L1_DCI_INFO_CONTENT_V1 1
+
+#define MAX_ICD_L1_DCI_INFO_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_L1_DCI_INFO_STRUCT_V1_MAX_SIZE 564
+
+typedef struct {
+ kal_uint32 dl_dci_valid:1; // Not valid (0)
+ // Valid (1)
+ kal_uint32 dl_dci_format:4; // Format 0 (0)
+ // Format 0C (1)
+ // Format 1 (2)
+ // Format 1a (3)
+ // Format 1b (4)
+ // Format 1c (5)
+ // Format 1d (6)
+ // Format 2 (7)
+ // Format 2a (8)
+ // Format 2b (9)
+ // Format 2c (10)
+ // Format 2d (11)
+ // Format 3 (12)
+ // Format 3A (13)
+ // Format 4 (14)
+ // Reserved (15)
+ kal_uint32 num_ack_bit:2; // Received DL TB num, range [0,2]
+ kal_uint32 dl_dci_tpc_command:2; // TPC command for PUCCH, range [0,3]
+ kal_uint32 reserved:23;
+} dl_dci_info_content_v1;
+
+typedef dl_dci_info_content_v1 dl_dci_info_content;
+
+typedef struct {
+ kal_uint32 tpc_dci_valid:1; // Not valid (0)
+ // Valid (1)
+ kal_uint32 tpc_dci_format:1; // Can be format 3(0) or 3A(1)
+ kal_uint32 reserved:30;
+} tpc_dci_info_content_v1;
+
+typedef tpc_dci_info_content_v1 tpc_dci_info_content;
+
+typedef struct {
+ kal_uint32 ul_grant_valid:1; // Not valid (0)
+ // Valid (1)
+ kal_uint32 mcs_idx:5; // PUSCH transmition MCS, range [0,31]
+ kal_uint32 cqi_req:2; // CSI request 2 bits only applys UEs that
+ // are configured with more than one DL
+ // cell.
+ // Look up TS 36.213 Table 7.2.1-1A
+ kal_uint32 start_rb:7; // The Start of RB, range [0,99]
+ kal_uint32 num_rb:7; // The length of RB, range [0,100]
+ kal_uint32 modulation_type:2; // Modulation Order:
+ // QPSK(0),
+ // 16QAM(1),
+ // 64QAM(2),
+ // 256QAM(3)
+ kal_uint32 ndi:1; // Indicate new transmission or
+ // re-transmission.
+ kal_uint32 tpc:2; // TPC command for scheduled PUSCH.
+ // The definition can infer TS 36.213
+ // 5.1.1.1
+ kal_uint32 dmrs_cyclic_shift:3; // Cyclic shift for DM RS and OCC index.
+ // The definition can infer TS 36.211
+ // Table 5.5.2.1.1-1
+ kal_uint32 rv_idx:2; // Derive from MCS, range [0,3].
+ // The definition can infer TS 36.213
+ // Table 8.6.1-1
+ kal_uint32 dci0_k_pusch:3; // If DCI0 with CSI request field set to
+ // trigger an aperiodic CSI reportis is
+ // detected by a UE on subframe n, then on
+ // subframe n+k UCI is mapped on the
+ // corresponding PUSCH transmission where
+ // k is given by TS 36.213 Table 8-2
+ kal_uint32 tbs_size:15; // This bit field is from spec TS 36.213
+ // 8.6: transport block size determination.
+ // The range of the corresponding UL-SCH
+ // transport block size is between 2~18772
+ // bytes.
+ kal_uint32 hopping_flag:1; // If frequency hopping applied on PUSCH.
+ kal_uint32 reserved:13;
+} ul_dci_grant_info_content_v1;
+
+typedef ul_dci_grant_info_content_v1 ul_dci_grant_info_content;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence
+ // of PDCCH.Range [0,1023].
+ kal_uint32 subframe:4; // This is the SF based on the occurrence
+ // of PDCCH.Range [0,9].
+ kal_uint32 duplex_type:2; // FDD (0)
+ // TDD (1)
+ // Frame Type 3 (2)
+ kal_uint32 pdcch_order_valid:1; // Not valid (0)
+ // Valid (1)
+ kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:12;
+ ul_dci_grant_info_content ul_dci_grant0_info;
+ ul_dci_grant_info_content ul_dci_grant1_info;
+ tpc_dci_info_content tpc_dci_info;
+ dl_dci_info_content dl_dci_info;
+} dci_info_content_v1;
+
+typedef dci_info_content_v1 dci_info_content;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:19;
+ dci_info_content dci_info[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_l1_dci_info_struct_v1;
+
+typedef icd_l1_dci_info_struct_v1 icd_l1_dci_info_struct;
+
+
+#endif /* _EL1_DCI_INFORMATION_H */
+
+
+/* Public JSON start
+"EL1_DCI_Information": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x700A", "Name": "EL1_DCI_Information", "Type": "RECORD", "Desc": "The log is generated every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"L1_DCI_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "L1_DCI_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "L1_DCI_Info"}, "L1_DCI_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "L1_DCI_Info_Content_V1", ""]}, "Name": "L1_DCI_Info_Content_Versions"}, "L1_DCI_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "L1_DCI_Info_Content_V1", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[0, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["DCI Info", "DCI_Info_Content_V1", "N", "24", "VAR", "N := Number of Records"]}}, "DCI_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof PDCCH.Range [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof PDCCH.Range [0,9]."], "2": ["Duplex type", "UINT32", "1", "14", "2", "FDD (0)\nTDD (1)\nFrame Type 3 (2)"], "3": ["PDCCH Order valid", "UINT32", "1", "16", "1", "Not valid (0)\nValid (1)"], "4": ["Serving Cell Index", "UINT32", "1", "17", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "5": ["Reserved", "UINT32", "1", "20", "12", ""], "6": ["UL DCI Grant0 Info", "UL_DCI_Grant_Info_Content_V1", "1", "32", "64", ""], "7": ["UL DCI Grant1 Info", "UL_DCI_Grant_Info_Content_V1", "1", "96", "64", ""], "8": ["TPC DCI Info", "TPC_DCI_Info_Content_V1", "1", "160", "32", ""], "9": ["DL DCI Info", "DL_DCI_Info_Content_V1", "1", "192", "32", ""]}, "Name": "DCI_Info_Content_V1"}, "UL_DCI_Grant_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Grant Valid", "UINT32", "1", "0", "1", "Not valid (0)\nValid (1)"], "1": ["MCS IDX", "UINT32", "1", "1", "5", "PUSCH transmition MCS, range [0,31]"], "2": ["CQI REQ", "UINT32", "1", "6", "2", "CSI request 2 bits only applys UEs that\nare configured with more than one DL\ncell.\nLook up TS 36.213 Table 7.2.1-1A"], "3": ["Start RB", "UINT32", "1", "8", "7", "The Start of RB, range [0,99]"], "4": ["NUM RB", "UINT32", "1", "15", "7", "The length of RB, range [0,100]"], "5": ["Modulation type", "UINT32", "1", "22", "2", "Modulation Order:\nQPSK(0),\n16QAM(1),\n64QAM(2),\n256QAM(3)"], "6": ["NDI", "UINT32", "1", "24", "1", "Indicate new transmission or\nre-transmission."], "7": ["TPC", "UINT32", "1", "25", "2", "TPC command for scheduled PUSCH.\nThe definition can infer TS 36.213\n5.1.1.1"], "8": ["DMRS Cyclic Shift", "UINT32", "1", "27", "3", "Cyclic shift for DM RS and OCC index.\nThe definition can infer TS 36.211\nTable 5.5.2.1.1-1"], "9": ["RV IDX", "UINT32", "1", "30", "2", "Derive from MCS, range [0,3].\nThe definition can infer TS 36.213\nTable 8.6.1-1"], "10": ["DCI0 K PUSCH", "UINT32", "1", "32", "3", "If DCI0 with CSI request field set to\ntrigger an aperiodic CSI reportis is\ndetected by a UE on subframe n, then on\nsubframe n+k UCI is mapped on the\ncorresponding PUSCH transmission where\nk is given by TS 36.213 Table 8-2"], "11": ["TBS Size", "UINT32", "1", "35", "15", "This bit field is from spec TS 36.213\n8.6: transport block size determination.\nThe range of the corresponding UL-SCH\ntransport block size is between 2~18772\nbytes."], "12": ["Hopping flag", "UINT32", "1", "50", "1", "If frequency hopping applied on PUSCH."], "13": ["Reserved", "UINT32", "1", "51", "13", ""]}, "Name": "UL_DCI_Grant_Info_Content_V1"}, "TPC_DCI_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["TPC DCI Valid", "UINT32", "1", "0", "1", "Not valid (0)\nValid (1)"], "1": ["TPC DCI Format", "UINT32", "1", "1", "1", "Can be format 3(0) or 3A(1)"], "2": ["Reserved", "UINT32", "1", "2", "30", ""]}, "Name": "TPC_DCI_Info_Content_V1"}, "DL_DCI_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Not valid (0)\nValid (1)"], "1": ["DL DCI Format", "UINT32", "1", "1", "4", "Format 0 (0)\nFormat 0C (1)\nFormat 1 (2)\nFormat 1a (3)\nFormat 1b (4)\nFormat 1c (5)\nFormat 1d (6)\nFormat 2 (7)\nFormat 2a (8)\nFormat 2b (9)\nFormat 2c (10)\nFormat 2d (11)\nFormat 3 (12)\nFormat 3A (13)\nFormat 4 (14)\nReserved (15)"], "2": ["NUM ACK bit", "UINT32", "1", "5", "2", "Received DL TB num, range [0,2]"], "3": ["DL DCI TPC Command", "UINT32", "1", "7", "2", "TPC command for PUCCH, range [0,3]"], "4": ["Reserved", "UINT32", "1", "9", "23", ""]}, "Name": "DL_DCI_Info_Content_V1"}}},
+ Public JSON end */
+// Checksum : [9a4b62f359e32584700d26ad66b26008]
diff --git a/mcu/interface/service/icd/el1/EL1_LTE_Cell_Time.h b/mcu/interface/service/icd/el1/EL1_LTE_Cell_Time.h
new file mode 100644
index 0000000..2baf5a4
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_LTE_Cell_Time.h
@@ -0,0 +1,59 @@
+// ICD Header Format v3
+// Name : EL1_LTE_Cell_Time
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7000
+// Version : V2.6
+
+#ifndef _EL1_LTE_CELL_TIME_H
+#define _EL1_LTE_CELL_TIME_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_LTE_CELL_TIME 0x7000
+
+#define ICD_EL1_LTE_CELL_TIME_INFO_CONTENT_V2 2
+
+#define MAX_ICD_LTE_CELL_TIME_INFO_STRUCT_V2_NUMBER_OF_CELL 16
+
+#define ICD_LTE_CELL_TIME_INFO_STRUCT_V2_MAX_SIZE 260
+
+typedef struct {
+ kal_uint32 carrier_index:4; // Indicates this metric is reporting on which serving
+ // cell (not scell index configured by RRC).
+ // range[0, 7], 1 bit reserved. Values: 0:PCC, 1:SCC1,
+ // 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 dl_ul_valid_bitmap:2; // Bit 0(0x1) DL timing information is valid.
+ // Bit 1(0x2) UL timing information is valid.
+ kal_uint32 reserved:26;
+ kal_uint32 start_dl_offset; // Starting DL subframe boundary. Range [0, 307200] Ts
+ kal_uint32 start_ul_offset; // Starting UL subframe boundary. Range [0, 307200] Ts
+ kal_int16 dl_frame_timing_change; // Rx Boundary Adjust. Range [-128,128]Ts
+ kal_int16 ul_frame_timing_change; // Tx Boundary Adjust. Range [-128,128]Ts
+} timing_adjust_content_v2;
+
+typedef timing_adjust_content_v2 timing_adjust_content;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 start_sfn:10; // This is the SFN based on reporting time of this record.
+ // Range [0,1023].
+ kal_uint32 start_subframe:4; // This is the SF based on reporting time of this record.
+ // Range [0,9].
+ kal_uint32 number_of_cell:5; // range[0, 16]
+ kal_uint32 reserved:5;
+ timing_adjust_content timing_adjustment[FLEXIBLE_ARRAY_SIZE]; // N := Number of Cell
+} icd_lte_cell_time_info_struct_v2;
+
+typedef icd_lte_cell_time_info_struct_v2 icd_lte_cell_time_info_struct;
+
+
+#endif /* _EL1_LTE_CELL_TIME_H */
+
+
+/* Internal JSON start
+"EL1_LTE_Cell_Time": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7000", "Name": "EL1_LTE_Cell_Time", "Type": "RECORD", "Desc": "The log is generated every 20 ms.\n"}, "table": {"LTE_Cell_Time_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "LTE_Cell_Time_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "LTE_Cell_Time_Info"}, "LTE_Cell_Time_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "LTE_Cell_Time_Info_Content_V1", ""], "1": ["2", "LTE_Cell_Time_Info_Content_V2", ""]}, "Name": "LTE_Cell_Time_Info_Content_Versions"}, "LTE_Cell_Time_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Start SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Start subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["CC Valid Bitmap of Start DL/UL offset", "UINT32", "1", "14", "5", "Bitmap of 5 bits, indicating which cell info is valid.\nBit 0(0x1) Start DL offset of Scell 0 is valid.\nBit 1(0x2) Start DL offset of Scell 1 is valid.\nBit 2(0x4) Start DL offset of Scell 2 is valid.\nBit 3(0x8) Start UL offset of Scell 0 is valid.\nBit 4(0xF) Start UL offset of Scell 1 is valid."], "3": ["Reserved", "UINT32", "1", "19", "5", ""], "4": ["Start DL offset of PCC", "UINT32", "1", "24", "32", "Starting DL subframe boundary of Pcell. Range [0, 307200] Ts"], "5": ["Start DL offset of SCC0", "UINT32", "1", "56", "32", "Starting DL subframe boundary of Scell 0. Range [0, 307200] Ts"], "6": ["Start DL offset of SCC1", "UINT32", "1", "88", "32", "Starting DL subframe boundary of Scell 1. Range [0, 307200] Ts"], "7": ["Start DL offset of SCC2", "UINT32", "1", "120", "32", "Starting DL subframe boundary of Scell 2. Range [0, 307200] Ts"], "8": ["Start UL offset of PCC", "UINT32", "1", "152", "32", "Starting UL subframe boundary of Pcell. Range [0, 307200] Ts"], "9": ["Start UL offset of SCC0", "UINT32", "1", "184", "32", "Starting UL subframe boundary of Scell 0. Range [0, 307200] Ts"], "10": ["Start UL offset of SCC1", "UINT32", "1", "216", "32", "Starting UL subframe boundary of Scell 1. Range [0, 307200] Ts"], "11": ["Timing Adjustment", "Timing_Adjust_Content_V1", "1", "248", "128", ""]}, "Name": "LTE_Cell_Time_Info_Content_V1"}, "Timing_Adjust_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL frame timing change of PCC", "INT16", "1", "0", "16", "Rx Boundary Adjust of Pcell [-128,128]Ts"], "1": ["DL frame timing change of SCC 0", "INT16", "1", "16", "16", "Rx Boundary Adjust of Sell 0 [-128,128]Ts"], "2": ["DL frame timing change of SCC 1", "INT16", "1", "32", "16", "Rx Boundary Adjust of Sell 1 [-128,128]Ts"], "3": ["DL frame timing change of SCC 2", "INT16", "1", "48", "16", "Rx Boundary Adjust of Sell 2 [-128,128]Ts"], "4": ["UL frame timing change of PCC", "INT16", "1", "64", "16", "Tx Boundary Adjust of Pcell [-128,128]Ts"], "5": ["UL frame timing change of SCC 0", "INT16", "1", "80", "16", "Tx Boundary Adjust of Sell 0 [-128,128]Ts"], "6": ["UL frame timing change of SCC 1", "INT16", "1", "96", "16", "Tx Boundary Adjust of Sell 1 [-128,128]Ts"], "7": ["Reserved", "INT16", "1", "112", "16", ""]}, "Name": "Timing_Adjust_Content_V1"}, "LTE_Cell_Time_Info_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Timing Adjustment": "Number of Cell"}, "Name": "LTE_Cell_Time_Info_Content_V2", "Data": {"0": ["Start SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Start subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Number of Cell", "UINT32", "1", "14", "5", "range[0, 16]"], "3": ["Reserved", "UINT32", "1", "19", "5", ""], "4": ["Timing Adjustment", "Timing_Adjust_Content_V2", "N", "24", "VAR", "N := Number of Cell"]}}, "Timing_Adjust_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Carrier Index", "UINT32", "1", "0", "4", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC).\nrange[0, 7], 1 bit reserved. Values: 0:PCC, 1:SCC1,\n2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "1": ["DL/UL valid bitmap", "UINT32", "1", "4", "2", "Bit 0(0x1) DL timing information is valid.\nBit 1(0x2) UL timing information is valid."], "2": ["Reserved", "UINT32", "1", "6", "26", ""], "3": ["Start DL offset", "UINT32", "1", "32", "32", "Starting DL subframe boundary. Range [0, 307200] Ts"], "4": ["Start UL offset", "UINT32", "1", "64", "32", "Starting UL subframe boundary. Range [0, 307200] Ts"], "5": ["DL frame timing change", "INT16", "1", "96", "16", "Rx Boundary Adjust. Range [-128,128]Ts"], "6": ["UL frame timing change", "INT16", "1", "112", "16", "Tx Boundary Adjust. Range [-128,128]Ts"]}, "Name": "Timing_Adjust_Content_V2"}}},
+ Internal JSON end */
+// Checksum : [e0f56f1ca58a918e1ade6b793df148be]
diff --git a/mcu/interface/service/icd/el1/EL1_MIMO_PDSCH_Throughput0.h b/mcu/interface/service/icd/el1/EL1_MIMO_PDSCH_Throughput0.h
new file mode 100644
index 0000000..fdc9b69
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_MIMO_PDSCH_Throughput0.h
@@ -0,0 +1,50 @@
+// ICD Header Format v3
+// Name : EL1_MIMO_PDSCH_Throughput0
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7007
+// Version : V2.6
+
+#ifndef _EL1_MIMO_PDSCH_THROUGHPUT0_H
+#define _EL1_MIMO_PDSCH_THROUGHPUT0_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_MIMO_PDSCH_THROUGHPUT0 0x7007
+
+#define ICD_EL1_MIMO_PDSCH_THROUGHPUT0_CONTENT_V3 3
+
+#define ICD_MIMO_PDSCH_THROUGHPUT0_STRUCT_V3_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
+ // Range [0,1023].
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record.
+ // Range [0,9].
+ kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 total_cc_number:4; // Total DL CC Number
+ kal_uint32 reserved:3;
+ kal_uint32 mimo_pdsch_throughput0; // The downlink bits of codeword 0 decoded successfully within 1000ms(bits/sec)
+ kal_uint32 dl_bler0:7; // The downlink BLER of codeword 0 within 1000ms, range[0,100]
+ kal_uint32 dl_ibler0:7; // The downlink iBLER of codeword 0 within 1000ms, range[0,100]
+ // iBLER: Initial Block Error Rate. The ratio of data blocks with initial
+ // transmission errors to all initial transmission data blocks.
+ kal_uint32 dl_tb_number0:10; // The downlink TB number of codeword 0 within 1000ms, range[0,1000]
+ kal_uint32 reserved_1:8;
+} icd_mimo_pdsch_throughput0_struct_v3;
+
+typedef icd_mimo_pdsch_throughput0_struct_v3 icd_mimo_pdsch_throughput0_struct;
+
+
+#endif /* _EL1_MIMO_PDSCH_THROUGHPUT0_H */
+
+
+/* Public JSON start
+"EL1_MIMO_PDSCH_Throughput0": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7007", "Name": "EL1_MIMO_PDSCH_Throughput0", "Type": "RECORD", "Desc": "The log is generated every 1000 ms.\n"}, "table": {"MIMO_PDSCH_Throughput0": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "MIMO_PDSCH_Throughput0_Content_Versions", "1", "8", "VAR", ""]}, "Name": "MIMO_PDSCH_Throughput0"}, "MIMO_PDSCH_Throughput0_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MIMO_PDSCH_Throughput0_Content_V1", ""], "1": ["2", "MIMO_PDSCH_Throughput0_Content_V2", ""], "2": ["3", "MIMO_PDSCH_Throughput0_Content_V3", ""]}, "Name": "MIMO_PDSCH_Throughput0_Content_Versions"}, "MIMO_PDSCH_Throughput0_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["MIMO PDSCH Throughput0", "UINT32", "1", "24", "32", "The downlink bits of codeword 0 decoded successfully within 1000ms(bits/sec)"]}, "Name": "MIMO_PDSCH_Throughput0_Content_V1"}, "MIMO_PDSCH_Throughput0_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Total CC Number", "UINT32", "1", "17", "4", "Total DL CC Number"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["MIMO PDSCH Throughput0", "UINT32", "1", "24", "32", "The downlink bits of codeword 0 decoded successfully within 1000ms(bits/sec)"], "6": ["DL BLER0", "UINT32", "1", "56", "7", "The downlink BLER of codeword 0 within 1000ms, range[0,100]"], "7": ["DL TB Number0", "UINT32", "1", "63", "10", "The downlink TB number of codeword 0 within 1000ms, range[0,1000]"], "8": ["Reserved", "UINT32", "1", "73", "15", ""]}, "Name": "MIMO_PDSCH_Throughput0_Content_V2"}, "MIMO_PDSCH_Throughput0_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Total CC Number", "UINT32", "1", "17", "4", "Total DL CC Number"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["MIMO PDSCH Throughput0", "UINT32", "1", "24", "32", "The downlink bits of codeword 0 decoded successfully within 1000ms(bits/sec)"], "6": ["DL BLER0", "UINT32", "1", "56", "7", "The downlink BLER of codeword 0 within 1000ms, range[0,100]"], "7": ["DL iBLER0", "UINT32", "1", "63", "7", "The downlink iBLER of codeword 0 within 1000ms, range[0,100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "8": ["DL TB Number0", "UINT32", "1", "70", "10", "The downlink TB number of codeword 0 within 1000ms, range[0,1000]"], "9": ["Reserved", "UINT32", "1", "80", "8", ""]}, "Name": "MIMO_PDSCH_Throughput0_Content_V3"}}},
+ Public JSON end */
+// Checksum : [8ea8f8fc19b5bdd8cad2ca99e96e0908]
diff --git a/mcu/interface/service/icd/el1/EL1_MIMO_PDSCH_Throughput1.h b/mcu/interface/service/icd/el1/EL1_MIMO_PDSCH_Throughput1.h
new file mode 100644
index 0000000..fe904cc
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_MIMO_PDSCH_Throughput1.h
@@ -0,0 +1,50 @@
+// ICD Header Format v3
+// Name : EL1_MIMO_PDSCH_Throughput1
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7008
+// Version : V2.6
+
+#ifndef _EL1_MIMO_PDSCH_THROUGHPUT1_H
+#define _EL1_MIMO_PDSCH_THROUGHPUT1_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_MIMO_PDSCH_THROUGHPUT1 0x7008
+
+#define ICD_EL1_MIMO_PDSCH_THROUGHPUT1_CONTENT_V3 3
+
+#define ICD_MIMO_PDSCH_THROUGHPUT1_STRUCT_V3_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
+ // Range [0,1023].
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record.
+ // Range [0,9].
+ kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 total_cc_number:4; // Total DL CC Number
+ kal_uint32 reserved:3;
+ kal_uint32 mimo_pdsch_throughput1; // The downlink bits of codeword 1 decoded successfully within 1000ms(bits/sec)
+ kal_uint32 dl_bler1:7; // The downlink BLER of codeword 1 within 1000ms, range[0,100]
+ kal_uint32 dl_ibler1:7; // The downlink iBLER of codeword 1 within 1000ms, range[0,100]
+ // iBLER: Initial Block Error Rate. The ratio of data blocks with initial
+ // transmission errors to all initial transmission data blocks.
+ kal_uint32 dl_tb_number1:10; // The downlink TB number of codeword 1 within 1000ms,range[0,1000]
+ kal_uint32 reserved_1:8;
+} icd_mimo_pdsch_throughput1_struct_v3;
+
+typedef icd_mimo_pdsch_throughput1_struct_v3 icd_mimo_pdsch_throughput1_struct;
+
+
+#endif /* _EL1_MIMO_PDSCH_THROUGHPUT1_H */
+
+
+/* Public JSON start
+"EL1_MIMO_PDSCH_Throughput1": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7008", "Name": "EL1_MIMO_PDSCH_Throughput1", "Type": "RECORD", "Desc": "The log is generated every 1000 ms.\n"}, "table": {"MIMO_PDSCH_Throughput1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "MIMO_PDSCH_Throughput1_Content_Versions", "1", "8", "VAR", ""]}, "Name": "MIMO_PDSCH_Throughput1"}, "MIMO_PDSCH_Throughput1_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MIMO_PDSCH_Throughput1_Content_V1", ""], "1": ["2", "MIMO_PDSCH_Throughput1_Content_V2", ""], "2": ["3", "MIMO_PDSCH_Throughput1_Content_V3", ""]}, "Name": "MIMO_PDSCH_Throughput1_Content_Versions"}, "MIMO_PDSCH_Throughput1_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["MIMO PDSCH Throughput1", "UINT32", "1", "24", "32", "The downlink bits of codeword 1 decoded successfully within 1000ms(bits/sec)"]}, "Name": "MIMO_PDSCH_Throughput1_Content_V1"}, "MIMO_PDSCH_Throughput1_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Total CC Number", "UINT32", "1", "17", "4", "Total DL CC Number"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["MIMO PDSCH Throughput1", "UINT32", "1", "24", "32", "The downlink bits of codeword 1 decoded successfully within 1000ms(bits/sec)"], "6": ["DL BLER1", "UINT32", "1", "56", "7", "The downlink BLER of codeword 1 within 1000ms, range[0,100]"], "7": ["DL TB Number1", "UINT32", "1", "63", "10", "The downlink TB number of codeword 1 within 1000ms,range[0,1000]"], "8": ["Reserved", "UINT32", "1", "73", "15", ""]}, "Name": "MIMO_PDSCH_Throughput1_Content_V2"}, "MIMO_PDSCH_Throughput1_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Total CC Number", "UINT32", "1", "17", "4", "Total DL CC Number"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["MIMO PDSCH Throughput1", "UINT32", "1", "24", "32", "The downlink bits of codeword 1 decoded successfully within 1000ms(bits/sec)"], "6": ["DL BLER1", "UINT32", "1", "56", "7", "The downlink BLER of codeword 1 within 1000ms, range[0,100]"], "7": ["DL iBLER1", "UINT32", "1", "63", "7", "The downlink iBLER of codeword 1 within 1000ms, range[0,100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "8": ["DL TB Number1", "UINT32", "1", "70", "10", "The downlink TB number of codeword 1 within 1000ms,range[0,1000]"], "9": ["Reserved", "UINT32", "1", "80", "8", ""]}, "Name": "MIMO_PDSCH_Throughput1_Content_V3"}}},
+ Public JSON end */
+// Checksum : [8bb9d227ee1938fb1854fe6e7f97dd56]
diff --git a/mcu/interface/service/icd/el1/EL1_Neighbor_Cell_Measurement.h b/mcu/interface/service/icd/el1/EL1_Neighbor_Cell_Measurement.h
new file mode 100644
index 0000000..e463392
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_Neighbor_Cell_Measurement.h
@@ -0,0 +1,92 @@
+// ICD Header Format v3
+// Name : EL1_Neighbor_Cell_Measurement
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7002
+// Version : V2.6
+
+#ifndef _EL1_NEIGHBOR_CELL_MEASUREMENT_H
+#define _EL1_NEIGHBOR_CELL_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_NEIGHBOR_CELL_MEASUREMENT 0x7002
+
+#define ICD_EL1_NEIGHBOR_CELL_MEASUREMENT_INFO_V3 3
+
+#define MAX_ICD_NEIGHBOR_CELL_MEASUREMENT_STRUCT_V3_NUMBER_OF_RECORDS 20
+#define MAX_NEIGHBOR_CELL_MEASUREMENT_RECORD_V3_NCELL_NUM 7
+
+#define ICD_NEIGHBOR_CELL_MEASUREMENT_STRUCT_V3_MAX_SIZE 3448
+
+typedef struct {
+ kal_uint32 pci:9; // Physical Cell Identity
+ kal_uint32 reserved:23;
+ kal_int16 rsrp; // Maximum RSRP value of two paths RSRP result
+ kal_int16 rsrp_rx0; // RX path 0 RSRP value in dbm, range[-150, -30]
+ kal_int16 rsrp_rx1; // RX path 1 RSRP value in dbm, range[-150, -30]
+ kal_int8 rsrq; // Maximum RSRQ value of two paths RSRQ result
+ kal_int8 rsrq_rx0; // RX path 0 RSRQ value in db, range[-40, 10]
+ kal_int8 rsrq_rx1; // RX path 1 RSRQ value in db, range[-40, 10]
+ kal_int8 reserved_1;
+ kal_int16 rssi; // Maximum RSSI value of two paths RSSI result
+ kal_int16 rssi_rx0; // RX path 0 RSSI value in dbm, range[-150, -10]
+ kal_int16 rssi_rx1; // RX path 1 RSSI value in dbm, range[-150, -10]
+ kal_int8 reserved_2;
+ kal_int8 snr; // Maximum SNR value of two paths SNR result
+ kal_int8 snr_rx0; // RX path 0 SNR value in dbm, range[-20, 40]
+ kal_int8 snr_rx1; // RX path 1 SNR value in dbm, range[-20, 40]
+} neighbor_cell_measurement_cell_info_v3;
+
+typedef neighbor_cell_measurement_cell_info_v3 neighbor_cell_measurement_cell_info;
+
+typedef struct {
+ kal_uint32 ncell_num:3; // Total number of cell, range[1, 7]
+ kal_uint32 sfn:10; // This is the system frame number based on the occurrence of neighbor cell measurement.
+ kal_uint32 subframe:4; // This is the sub-frame number based on the occurrence of neighbor cell measurement.
+ kal_uint32 ant_mask_0:3; // Number to indicate which antenna measurement result is applied to RX path 0.
+ // 0: antenna 0
+ // 1: antenna 1
+ // 2: antenna 2
+ // 3: antenna 3
+ // 4: None
+ kal_uint32 ant_mask_1:3; // Number to indicate which antenna measurement result is applied to RX path 1.
+ // 0: antenna 0
+ // 1: antenna 1
+ // 2: antenna 2
+ // 3: antenna 3
+ // 4: None
+ kal_uint32 priority:3; // Frequency reselection priority, range[0, 7]
+ kal_uint32 reserved:6;
+ neighbor_cell_measurement_cell_info neighbor_cells[FLEXIBLE_ARRAY_SIZE]; // N := Ncell Num
+ // Information of individual neighbor cell measurement result.
+} neighbor_cell_measurement_record_v3;
+
+typedef neighbor_cell_measurement_record_v3 neighbor_cell_measurement_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 earfcn:17; // E-UTRA Absolute Radio Frequency Channel Number
+ kal_uint32 duplex_type:2; // 0:FDD, 1:TDD, 2:LAA
+ kal_uint32 carrier_type:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 reserved:2;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved_1:27;
+ neighbor_cell_measurement_record neighbor_cell_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_neighbor_cell_measurement_struct_v3;
+
+typedef icd_neighbor_cell_measurement_struct_v3 icd_neighbor_cell_measurement_struct;
+
+
+#endif /* _EL1_NEIGHBOR_CELL_MEASUREMENT_H */
+
+
+/* Public JSON start
+"EL1_Neighbor_Cell_Measurement": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7002", "Name": "EL1_Neighbor_Cell_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"Neighbor_Cell_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "Neighbor_Cell_Measurement_Info_Versions", "1", "8", "VAR", "Version of Neighbor_Cell_Measurement_Info"]}, "Name": "Neighbor_Cell_Measurement"}, "Neighbor_Cell_Measurement_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "Neighbor_Cell_Measurement_Info_V1", "Information of neighbor cell measurement (version 1)"], "1": ["2", "Neighbor_Cell_Measurement_Info_V2", "Information of neighbor cell measurement (version 2)"], "2": ["3", "Neighbor_Cell_Measurement_Info_V3", "Information of neighbor cell measurement (version 3)"]}, "Name": "Neighbor_Cell_Measurement_Info_Versions"}, "Neighbor_Cell_Measurement_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cell Measurement Records": "Number of Records"}, "Name": "Neighbor_Cell_Measurement_Info_V1", "Data": {"0": ["EARFCN", "UINT32", "1", "0", "16", "E-UTRA Absolute Radio Frequency Channel Number"], "1": ["Duplex Type", "UINT32", "1", "16", "2", "0:FDD, 1:TDD, 2:LAA"], "2": ["Carrier Type", "UINT32", "1", "18", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "21", "3", ""], "4": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "29", "27", ""], "6": ["Neighbor Cell Measurement Records", "Neighbor_Cell_Measurement_Record_V1", "N", "56", "VAR", "N := Number of Records"]}}, "Neighbor_Cell_Measurement_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cells": "Ncell Num"}, "Name": "Neighbor_Cell_Measurement_Record_V1", "Data": {"0": ["Ncell Num", "UINT32", "1", "0", "3", "Total number of cell, range[1, 7]"], "1": ["SFN", "UINT32", "1", "3", "10", "This is the system frame number based on the occurrence of neighbor cell measurement."], "2": ["Subframe", "UINT32", "1", "13", "4", "This is the sub-frame number based on the occurrence of neighbor cell measurement."], "3": ["Ant mask 0", "UINT32", "1", "17", "3", "Number to indicate which antenna measurement result is applied to RX path 0.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "4": ["Ant mask 1", "UINT32", "1", "20", "3", "Number to indicate which antenna measurement result is applied to RX path 1.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "5": ["Priority", "UINT32", "1", "23", "3", "Frequency reselection priority, range[0, 7]"], "6": ["Reserved", "UINT32", "1", "26", "6", ""], "7": ["Neighbor Cells", "Neighbor_Cell_Measurement_Cell_Info_V1", "N", "32", "VAR", "N := Ncell Num\nInformation of individual neighbor cell measurement result (version 1)."]}}, "Neighbor_Cell_Measurement_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PCI", "UINT32", "1", "0", "9", "Physical Cell Identity"], "1": ["Reserved", "UINT32", "1", "9", "23", ""], "2": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "3": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm, range[-150, -30]"], "4": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm, range[-150, -30]"], "5": ["RSRQ", "INT8", "1", "80", "8", "Maximum RSRQ value of two paths RSRQ result"], "6": ["RSRQ RX0", "INT8", "1", "88", "8", "RX path 0 RSRQ value in db, range[-40, 10]"], "7": ["RSRQ RX1", "INT8", "1", "96", "8", "RX path 1 RSRQ value in db, range[-40, 10]"], "8": ["Reserved", "INT8", "1", "104", "8", ""], "9": ["RSSI", "INT16", "1", "112", "16", "Maximum RSSI value of two paths RSSI result"], "10": ["RSSI Rx0", "INT16", "1", "128", "16", "RX path 0 RSSI value in dbm, range[-150, -10]"], "11": ["RSSI RX1", "INT16", "1", "144", "16", "RX path 1 RSSI value in dbm, range[-150, -10]"]}, "Name": "Neighbor_Cell_Measurement_Cell_Info_V1"}, "Neighbor_Cell_Measurement_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cell Measurement Records": "Number of Records"}, "Name": "Neighbor_Cell_Measurement_Info_V2", "Data": {"0": ["EARFCN", "UINT32", "1", "0", "17", "E-UTRA Absolute Radio Frequency Channel Number"], "1": ["Duplex Type", "UINT32", "1", "17", "2", "0:FDD, 1:TDD, 2:LAA"], "2": ["Carrier Type", "UINT32", "1", "19", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "22", "2", ""], "4": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "29", "27", ""], "6": ["Neighbor Cell Measurement Records", "Neighbor_Cell_Measurement_Record_V2", "N", "56", "VAR", "N := Number of Records"]}}, "Neighbor_Cell_Measurement_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cells": "Ncell Num"}, "Name": "Neighbor_Cell_Measurement_Record_V2", "Data": {"0": ["Ncell Num", "UINT32", "1", "0", "3", "Total number of cell, range[1, 7]"], "1": ["SFN", "UINT32", "1", "3", "10", "This is the system frame number based on the occurrence of neighbor cell measurement."], "2": ["Subframe", "UINT32", "1", "13", "4", "This is the sub-frame number based on the occurrence of neighbor cell measurement."], "3": ["Ant mask 0", "UINT32", "1", "17", "3", "Number to indicate which antenna measurement result is applied to RX path 0.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "4": ["Ant mask 1", "UINT32", "1", "20", "3", "Number to indicate which antenna measurement result is applied to RX path 1.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "5": ["Priority", "UINT32", "1", "23", "3", "Frequency reselection priority, range[0, 7]"], "6": ["Reserved", "UINT32", "1", "26", "6", ""], "7": ["Neighbor Cells", "Neighbor_Cell_Measurement_Cell_Info_V2", "N", "32", "VAR", "N := Ncell Num\nInformation of individual neighbor cell measurement result (version 1)."]}}, "Neighbor_Cell_Measurement_Cell_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PCI", "UINT32", "1", "0", "9", "Physical Cell Identity"], "1": ["Reserved", "UINT32", "1", "9", "23", ""], "2": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "3": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm, range[-150, -30]"], "4": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm, range[-150, -30]"], "5": ["RSRQ", "INT8", "1", "80", "8", "Maximum RSRQ value of two paths RSRQ result"], "6": ["RSRQ RX0", "INT8", "1", "88", "8", "RX path 0 RSRQ value in db, range[-40, 10]"], "7": ["RSRQ RX1", "INT8", "1", "96", "8", "RX path 1 RSRQ value in db, range[-40, 10]"], "8": ["Reserved", "INT8", "1", "104", "8", ""], "9": ["RSSI", "INT16", "1", "112", "16", "Maximum RSSI value of two paths RSSI result"], "10": ["RSSI Rx0", "INT16", "1", "128", "16", "RX path 0 RSSI value in dbm, range[-150, -10]"], "11": ["RSSI RX1", "INT16", "1", "144", "16", "RX path 1 RSSI value in dbm, range[-150, -10]"]}, "Name": "Neighbor_Cell_Measurement_Cell_Info_V2"}, "Neighbor_Cell_Measurement_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cell Measurement Records": "Number of Records"}, "Name": "Neighbor_Cell_Measurement_Info_V3", "Data": {"0": ["EARFCN", "UINT32", "1", "0", "17", "E-UTRA Absolute Radio Frequency Channel Number"], "1": ["Duplex Type", "UINT32", "1", "17", "2", "0:FDD, 1:TDD, 2:LAA"], "2": ["Carrier Type", "UINT32", "1", "19", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "22", "2", ""], "4": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "29", "27", ""], "6": ["Neighbor Cell Measurement Records", "Neighbor_Cell_Measurement_Record_V3", "N", "56", "VAR", "N := Number of Records"]}}, "Neighbor_Cell_Measurement_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cells": "Ncell Num"}, "Name": "Neighbor_Cell_Measurement_Record_V3", "Data": {"0": ["Ncell Num", "UINT32", "1", "0", "3", "Total number of cell, range[1, 7]"], "1": ["SFN", "UINT32", "1", "3", "10", "This is the system frame number based on the occurrence of neighbor cell measurement."], "2": ["Subframe", "UINT32", "1", "13", "4", "This is the sub-frame number based on the occurrence of neighbor cell measurement."], "3": ["Ant mask 0", "UINT32", "1", "17", "3", "Number to indicate which antenna measurement result is applied to RX path 0.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "4": ["Ant mask 1", "UINT32", "1", "20", "3", "Number to indicate which antenna measurement result is applied to RX path 1.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "5": ["Priority", "UINT32", "1", "23", "3", "Frequency reselection priority, range[0, 7]"], "6": ["Reserved", "UINT32", "1", "26", "6", ""], "7": ["Neighbor Cells", "Neighbor_Cell_Measurement_Cell_Info_V3", "N", "32", "VAR", "N := Ncell Num\nInformation of individual neighbor cell measurement result."]}}, "Neighbor_Cell_Measurement_Cell_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PCI", "UINT32", "1", "0", "9", "Physical Cell Identity"], "1": ["Reserved", "UINT32", "1", "9", "23", ""], "2": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "3": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm, range[-150, -30]"], "4": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm, range[-150, -30]"], "5": ["RSRQ", "INT8", "1", "80", "8", "Maximum RSRQ value of two paths RSRQ result"], "6": ["RSRQ RX0", "INT8", "1", "88", "8", "RX path 0 RSRQ value in db, range[-40, 10]"], "7": ["RSRQ RX1", "INT8", "1", "96", "8", "RX path 1 RSRQ value in db, range[-40, 10]"], "8": ["Reserved", "INT8", "1", "104", "8", ""], "9": ["RSSI", "INT16", "1", "112", "16", "Maximum RSSI value of two paths RSSI result"], "10": ["RSSI Rx0", "INT16", "1", "128", "16", "RX path 0 RSSI value in dbm, range[-150, -10]"], "11": ["RSSI RX1", "INT16", "1", "144", "16", "RX path 1 RSSI value in dbm, range[-150, -10]"], "12": ["Reserved", "INT8", "1", "160", "8", ""], "13": ["SNR", "INT8", "1", "168", "8", "Maximum SNR value of two paths SNR result"], "14": ["SNR Rx0", "INT8", "1", "176", "8", "RX path 0 SNR value in dbm, range[-20, 40]"], "15": ["SNR RX1", "INT8", "1", "184", "8", "RX path 1 SNR value in dbm, range[-20, 40]"]}, "Name": "Neighbor_Cell_Measurement_Cell_Info_V3"}}},
+ Public JSON end */
+// Checksum : [d7b172872ebbba970dacc2d0638782fd]
diff --git a/mcu/interface/service/icd/el1/EL1_PBCH_DecodingResults.h b/mcu/interface/service/icd/el1/EL1_PBCH_DecodingResults.h
new file mode 100644
index 0000000..1ea3f9a
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PBCH_DecodingResults.h
@@ -0,0 +1,59 @@
+// ICD Header Format v3
+// Name : EL1_PBCH_DecodingResults
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x700C
+// Version : V2.6
+
+#ifndef _EL1_PBCH_DECODINGRESULTS_H
+#define _EL1_PBCH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PBCH_DECODINGRESULTS 0x700C
+
+#define ICD_EL1_PBCH_DECODING_INFO_V2 2
+
+#define MAX_ICD_PBCH_DECODING_RESULTS_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_PBCH_DECODING_RESULTS_STRUCT_V2_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 crc_result:1; // 0: Fail
+ // 1: Pass
+ kal_uint32 payload_size:8; // in bits
+ kal_uint32 transmit_antenna_config:3; // 0: 1, 1: 2, 2: 4
+ kal_uint32 downlink_bandwidth:3; // 0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB
+ kal_uint32 bler:7; // MIB error rate, range[0, 100]
+ kal_uint32 reserved:1;
+ kal_uint32 sfn_offset:3; // range[0, 7]
+ // The offset between current SFN and the SFN when PBCH decoded
+ kal_uint32 earfcn:29; // E-UTRA Absolute Radio Frequency Channel Number
+} pbch_decoding_record_v2;
+
+typedef pbch_decoding_record_v2 pbch_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on the reporting time of the records.
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the reporting time of the records.
+ // range[0, 9]
+ kal_uint32 reserved:5;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ pbch_decoding_record pbch_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pbch_decoding_results_struct_v2;
+
+typedef icd_pbch_decoding_results_struct_v2 icd_pbch_decoding_results_struct;
+
+
+#endif /* _EL1_PBCH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"EL1_PBCH_DecodingResults": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x700C", "Name": "EL1_PBCH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PBCH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PbchDecodingInfo_Versions", "1", "8", "VAR", ""]}, "Name": "PBCH_Decoding_Results"}, "PbchDecodingInfo_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PBCH_Decoding_Info_V1", ""], "1": ["2", "PBCH_Decoding_Info_V2", ""]}, "Name": "PbchDecodingInfo_Versions"}, "PBCH_Decoding_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pbch Decoding Records": "Number of Records"}, "Name": "PBCH_Decoding_Info_V1", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the reporting time of the records.\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the reporting time of the records.\nrange[0, 9]"], "2": ["Reserved", "UINT32", "1", "14", "5", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pbch Decoding Records", "PBCH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PBCH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["CRC Result", "UINT32", "1", "9", "1", "0: Fail\n1: Pass"], "2": ["Payload Size", "UINT32", "1", "10", "8", "in bits"], "3": ["Transmit Antenna Config", "UINT32", "1", "18", "3", "0: 1, 1: 2, 2: 4"], "4": ["Downlink Bandwidth", "UINT32", "1", "21", "3", "0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB"], "5": ["Reserved", "UINT32", "1", "24", "8", ""], "6": ["SFN Offset", "UINT32", "1", "32", "3", "range[0, 7]\nThe offset between current SFN and the SFN when PBCH decoded"], "7": ["EARFCN", "UINT32", "1", "35", "29", "E-UTRA Absolute Radio Frequency Channel Number"]}, "Name": "PBCH_Decoding_Record_V1"}, "PBCH_Decoding_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pbch Decoding Records": "Number of Records"}, "Name": "PBCH_Decoding_Info_V2", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the reporting time of the records.\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the reporting time of the records.\nrange[0, 9]"], "2": ["Reserved", "UINT32", "1", "14", "5", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pbch Decoding Records", "PBCH_Decoding_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "PBCH_Decoding_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["CRC Result", "UINT32", "1", "9", "1", "0: Fail\n1: Pass"], "2": ["Payload Size", "UINT32", "1", "10", "8", "in bits"], "3": ["Transmit Antenna Config", "UINT32", "1", "18", "3", "0: 1, 1: 2, 2: 4"], "4": ["Downlink Bandwidth", "UINT32", "1", "21", "3", "0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB"], "5": ["BLER", "UINT32", "1", "24", "7", "MIB error rate, range[0, 100]"], "6": ["Reserved", "UINT32", "1", "31", "1", ""], "7": ["SFN Offset", "UINT32", "1", "32", "3", "range[0, 7]\nThe offset between current SFN and the SFN when PBCH decoded"], "8": ["EARFCN", "UINT32", "1", "35", "29", "E-UTRA Absolute Radio Frequency Channel Number"]}, "Name": "PBCH_Decoding_Record_V2"}}},
+ Public JSON end */
+// Checksum : [7359799b5a508c7a3b1aeedb8b4111dd]
diff --git a/mcu/interface/service/icd/el1/EL1_PCFICH_DecodingResults.h b/mcu/interface/service/icd/el1/EL1_PCFICH_DecodingResults.h
new file mode 100644
index 0000000..e80f838
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PCFICH_DecodingResults.h
@@ -0,0 +1,55 @@
+// ICD Header Format v3
+// Name : EL1_PCFICH_DecodingResults
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x700E
+// Version : V2.6
+
+#ifndef _EL1_PCFICH_DECODINGRESULTS_H
+#define _EL1_PCFICH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PCFICH_DECODINGRESULTS 0x700E
+
+#define ICD_EL1_PCFICH_DECODING_INFO_V1 1
+
+#define MAX_ICD_PCFICH_DECODING_RESULTS_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_PCFICH_DECODING_RESULTS_STRUCT_V1_MAX_SIZE 84
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record
+ // range[0, 9]
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 cfi:2; // range[1, 3], control format indicator
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving
+ // cell (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 reserved:4;
+} pcfich_decoding_record_v1;
+
+typedef pcfich_decoding_record_v1 pcfich_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:19;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ pcfich_decoding_record pcfich_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pcfich_decoding_results_struct_v1;
+
+typedef icd_pcfich_decoding_results_struct_v1 icd_pcfich_decoding_results_struct;
+
+
+#endif /* _EL1_PCFICH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"EL1_PCFICH_DecodingResults": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x700E", "Name": "EL1_PCFICH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PCFICH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PcfichDecodingInfo_Versions", "1", "8", "VAR", ""]}, "Name": "PCFICH_Decoding_Results"}, "PcfichDecodingInfo_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PCFICH_Decoding_Info_V1", ""]}, "Name": "PcfichDecodingInfo_Versions"}, "PCFICH_Decoding_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pcfich Decoding Records": "Number of Records"}, "Name": "PCFICH_Decoding_Info_V1", "Data": {"0": ["Reserved", "UINT32", "1", "0", "19", ""], "1": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "2": ["Pcfich Decoding Records", "PCFICH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PCFICH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Serving Cell ID", "UINT32", "1", "14", "9", "range[0, 503]"], "3": ["CFI", "UINT32", "1", "23", "2", "range[1, 3], control format indicator"], "4": ["Carrier Index", "UINT32", "1", "25", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "5": ["Reserved", "UINT32", "1", "28", "4", ""]}, "Name": "PCFICH_Decoding_Record_V1"}}},
+ Public JSON end */
+// Checksum : [dcdaae412478e4fd8c55a2d0ead9bf39]
diff --git a/mcu/interface/service/icd/el1/EL1_PDCCH_DecodingResults.h b/mcu/interface/service/icd/el1/EL1_PDCCH_DecodingResults.h
new file mode 100644
index 0000000..a65bd16
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PDCCH_DecodingResults.h
@@ -0,0 +1,93 @@
+// ICD Header Format v3
+// Name : EL1_PDCCH_DecodingResults
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x700F
+// Version : V2.6
+
+#ifndef _EL1_PDCCH_DECODINGRESULTS_H
+#define _EL1_PDCCH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PDCCH_DECODINGRESULTS 0x700F
+
+#define ICD_EL1_PDCCH_DECODING_INFO_V1 1
+
+#define MAX_ICD_PDCCH_DECODING_RESULTS_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_PDCCH_DECODING_RESULTS_STRUCT_V1_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 sfn:10; // range[0, 1023]
+ kal_uint32 subframe:4; // range[0, 9]
+ kal_uint32 aggregation_level:2; // Number of control channel elements
+ // 0: Agg1, 1: Agg2, 2: Agg4, 3: Agg8
+ kal_uint32 dci_format:4; // 0: 0
+ // 1: 0C
+ // 2: 1
+ // 3: 1A
+ // 4: 1B
+ // 5: 1C
+ // 6: 1D
+ // 7: 2
+ // 8: 2A
+ // 9: 2B
+ // 10: 2C
+ // 11: 2D
+ // 12: 3
+ // 13: 3A
+ // 14: 4
+ kal_uint32 rnti_type:4; // 0: C_RNTI
+ // 1: SPS_C_RNTI
+ // 2: P_RNTI
+ // 3: RA_RNTI
+ // 4: T_C_RNTI
+ // 5: SI_RNTI
+ // 6: TPC_PUSCH_RNTI
+ // 7: TPC_PUCCH_RNTI
+ // 8: MBMS_RNTI
+ kal_uint32 payload_size:8; // in bytes
+ kal_uint32 search_space_type:1; // 0: common, 1: user
+ kal_uint32 start_cce_index:7; // range[0, 86]
+ kal_uint32 tail_match:1; // 0: Mismatch, 1: Match
+ kal_uint32 sps_grant_type:3; // Only valid when RNTI Type == SPS_C_RNTI
+ // 0: null
+ // 1: release
+ // 2: activate
+ // 3: cfg
+ // 4: retx
+ kal_uint32 number_of_dl_tbs:1; // 0: 1 TB, 1: 2 TBs
+ kal_uint32 new_dl_indicator:2; // New DL indicators for 2 TBs. Bit 0 for TB 1, bit 1
+ // for TB2. Bit value 1 means new DL, 0 means not new.
+ kal_uint32 reserved:17;
+} pdcch_decoding_record_v1;
+
+typedef pdcch_decoding_record_v1 pdcch_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving
+ // cell (not scell index configured by RRC).
+ // range[0, 7], Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 duplex_mode:1; // 0: FDD, 1: TDD
+ kal_uint32 udc:3; // range[0, 7], only valid when Duplex Mode == TDD
+ kal_uint32 reserved:3;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ pdcch_decoding_record pdcch_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pdcch_decoding_results_struct_v1;
+
+typedef icd_pdcch_decoding_results_struct_v1 icd_pdcch_decoding_results_struct;
+
+
+#endif /* _EL1_PDCCH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"EL1_PDCCH_DecodingResults": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x700F", "Name": "EL1_PDCCH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PDCCH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PDCCH_Decoding_Infos_Versions", "1", "8", "VAR", ""]}, "Name": "PDCCH_Decoding_Results"}, "PDCCH_Decoding_Infos_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PDCCH_Decoding_Info_V1", ""]}, "Name": "PDCCH_Decoding_Infos_Versions"}, "PDCCH_Decoding_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pdcch Decoding Records": "Number of Records"}, "Name": "PDCCH_Decoding_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC).\nrange[0, 7], Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Duplex Mode", "UINT32", "1", "12", "1", "0: FDD, 1: TDD"], "3": ["UDC", "UINT32", "1", "13", "3", "range[0, 7], only valid when Duplex Mode == TDD"], "4": ["Reserved", "UINT32", "1", "16", "3", ""], "5": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "6": ["Pdcch Decoding Records", "PDCCH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PDCCH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "range[0, 9]"], "2": ["Aggregation Level", "UINT32", "1", "14", "2", "Number of control channel elements\n0: Agg1, 1: Agg2, 2: Agg4, 3: Agg8"], "3": ["DCI Format", "UINT32", "1", "16", "4", "0: 0\n1: 0C\n2: 1\n3: 1A\n4: 1B\n5: 1C\n6: 1D\n7: 2\n8: 2A\n9: 2B\n10: 2C\n11: 2D\n12: 3\n13: 3A\n14: 4"], "4": ["RNTI Type", "UINT32", "1", "20", "4", "0: C_RNTI\n1: SPS_C_RNTI\n2: P_RNTI\n3: RA_RNTI\n4: T_C_RNTI\n5: SI_RNTI\n6: TPC_PUSCH_RNTI\n7: TPC_PUCCH_RNTI\n8: MBMS_RNTI"], "5": ["Payload Size", "UINT32", "1", "24", "8", "in bytes"], "6": ["Search Space Type", "UINT32", "1", "32", "1", "0: common, 1: user"], "7": ["Start CCE Index", "UINT32", "1", "33", "7", "range[0, 86]"], "8": ["Tail Match", "UINT32", "1", "40", "1", "0: Mismatch, 1: Match"], "9": ["SPS Grant Type", "UINT32", "1", "41", "3", "Only valid when RNTI Type == SPS_C_RNTI\n0: null\n1: release\n2: activate\n3: cfg\n4: retx"], "10": ["Number of DL TBs", "UINT32", "1", "44", "1", "0: 1 TB, 1: 2 TBs"], "11": ["New DL Indicator", "UINT32", "1", "45", "2", "New DL indicators for 2 TBs. Bit 0 for TB 1, bit 1\nfor TB2. Bit value 1 means new DL, 0 means not new."], "12": ["Reserved", "UINT32", "1", "47", "17", ""]}, "Name": "PDCCH_Decoding_Record_V1"}}},
+ Public JSON end */
+// Checksum : [0f791506321ec8ef76aba3d8edffcf44]
diff --git a/mcu/interface/service/icd/el1/EL1_PDSCH_DecodingResults.h b/mcu/interface/service/icd/el1/EL1_PDSCH_DecodingResults.h
new file mode 100644
index 0000000..207307e
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PDSCH_DecodingResults.h
@@ -0,0 +1,100 @@
+// ICD Header Format v3
+// Name : EL1_PDSCH_DecodingResults
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x700D
+// Version : V2.6
+
+#ifndef _EL1_PDSCH_DECODINGRESULTS_H
+#define _EL1_PDSCH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PDSCH_DECODINGRESULTS 0x700D
+
+#define ICD_EL1_PDSCH_DECODING_INFOS_V4 4
+
+#define MAX_ICD_PDSCH_DECODING_RESULTS_STRUCT_V4_NUMBER_OF_RECORDS 20
+#define MAX_PDSCH_DECODING_RECORD_V4_NUMBER_OF_STREAMS 2
+
+#define ICD_PDSCH_DECODING_RESULTS_STRUCT_V4_MAX_SIZE 648
+
+typedef struct {
+ kal_uint32 crc_result:1; // 0: Fail, 1: Pass
+ kal_uint32 rv:2; // range[0, 3]
+ kal_uint32 tb_index:1; // range[0, 1]
+ kal_uint32 tb_size:16; // in bytes
+ kal_uint32 mcs:5; // range[0, 31]
+ kal_uint32 prb:7; // range[1, 100]
+ kal_uint32 code_block_size_plus:13; // in bits, range[0, 8191]
+ kal_uint32 number_of_code_block_size_plus:4; // range[1, 13]
+ kal_uint32 codeword_index:1; // range[0, 1]
+ kal_uint32 code_block_crc_bitmask:13; // The CRC bitmask of code block
+ kal_uint32 harq_combining:1; // 0: Disabled
+ // 1: Enabled
+ kal_uint32 ndi:1; // range[0, 1]
+ kal_uint32 retx_number:3; // range[0, 7]
+ kal_uint32 modulation_scheme:2; // QPSK (0),
+ // QAM16 (1),
+ // QAM64 (2),
+ // QAM256 (3)
+ kal_uint32 reserved:26;
+} pdsch_decoding_stream_v4;
+
+typedef pdsch_decoding_stream_v4 pdsch_decoding_stream;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record
+ // range[0, 9]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving
+ // cell (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 harq_id:4; // range[0, 15]
+ kal_uint32 number_of_rbs:7; // range[1, 100]
+ kal_uint32 reserved:4;
+ kal_uint32 rnti_type:3; // 0: C-RNTI
+ // 1: SPS-C-RNTI
+ // 2: P-RNTI
+ // 3: RA-RNTI
+ // 4: TC-RNTI
+ // 5: SI-RNTI
+ // 6: TPC-PUSCH-RNTI
+ // 7: TPC-PUCCH-RNTI
+ kal_uint32 rnti:16; // RNTI value
+ kal_uint32 dl_layer:3; // range[1, 4]
+ kal_uint32 p_rnti_vld:1; // range[0, 1] Indicate Paging report is valid or not
+ kal_uint32 p_rnti_rpt:1; // range[0, 1] Consider Paging rpt if P RNTI VLD is TRUE
+ kal_uint32 reserved_1:6;
+ kal_uint32 number_of_streams:2; // range[1, 2]
+ pdsch_decoding_stream decoding_streams[FLEXIBLE_ARRAY_SIZE]; // N := Number of Streams
+} pdsch_decoding_record_v4;
+
+typedef pdsch_decoding_record_v4 pdsch_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:3;
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 ue_category:5; // range[0, 15]
+ kal_uint32 tm:4; // range[1, 10]
+ kal_uint32 reserved_1:3;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved_2:27;
+ pdsch_decoding_record pdsch_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pdsch_decoding_results_struct_v4;
+
+typedef icd_pdsch_decoding_results_struct_v4 icd_pdsch_decoding_results_struct;
+
+
+#endif /* _EL1_PDSCH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"EL1_PDSCH_DecodingResults": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x700D", "Name": "EL1_PDSCH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PDSCH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PdschDecodingInfos_Versions", "1", "8", "VAR", ""]}, "Name": "PDSCH_Decoding_Results"}, "PdschDecodingInfos_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PDSCH_Decoding_Infos_V1", ""], "1": ["2", "PDSCH_Decoding_Infos_V2", ""], "2": ["3", "PDSCH_Decoding_Infos_V3", ""], "3": ["4", "PDSCH_Decoding_Infos_V4", ""]}, "Name": "PdschDecodingInfos_Versions"}, "PDSCH_Decoding_Infos_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pdsch Decoding Records": "Number of Records"}, "Name": "PDSCH_Decoding_Infos_V1", "Data": {"0": ["Reserved", "UINT32", "1", "0", "3", ""], "1": ["Serving Cell ID", "UINT32", "1", "3", "9", "range[0, 503]"], "2": ["UE Category", "UINT32", "1", "12", "5", "range[0, 15]"], "3": ["TM", "UINT32", "1", "17", "4", "range[1, 10]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "6": ["Reserved", "UINT32", "1", "29", "27", ""], "7": ["Pdsch Decoding Records", "PDSCH_Decoding_Record_V1", "N", "56", "VAR", "N := Number of Records"]}}, "PDSCH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Decoding Streams": "Number of Streams"}, "Name": "PDSCH_Decoding_Record_V1", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["HARQ ID", "UINT32", "1", "17", "4", "range[0, 15]"], "4": ["Number of RBs", "UINT32", "1", "21", "7", "range[1, 100]"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["RNTI Type", "UINT32", "1", "32", "3", "0: C-RNTI\n1: SPS-C-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI"], "7": ["RNTI", "UINT32", "1", "35", "16", "RNTI value"], "8": ["Reserved", "UINT32", "1", "51", "11", ""], "9": ["Number of Streams", "UINT32", "1", "62", "2", "range[1, 2]"], "10": ["Decoding Streams", "PDSCH_Decoding_Stream_V1", "N", "64", "VAR", "N := Number of Streams"]}}, "PDSCH_Decoding_Stream_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CRC Result", "UINT32", "1", "0", "1", "0: Fail, 1: Pass"], "1": ["RV", "UINT32", "1", "1", "2", "range[0, 3]"], "2": ["TB Index", "UINT32", "1", "3", "1", "range[0, 1]"], "3": ["TB Size", "UINT32", "1", "4", "16", "in bytes"], "4": ["MCS", "UINT32", "1", "20", "5", "range[0, 31]"], "5": ["PRB", "UINT32", "1", "25", "7", "range[1, 100]"], "6": ["Code Block Size Plus", "UINT32", "1", "32", "13", "in bits, range[0, 8191]"], "7": ["Number of Code Block Size Plus", "UINT32", "1", "45", "4", "range[1, 13]"], "8": ["Codeword Index", "UINT32", "1", "49", "1", "range[0, 1]"], "9": ["Code Block CRC Bitmask", "UINT32", "1", "50", "13", "The CRC bitmask of code block"], "10": ["HARQ Combining", "UINT32", "1", "63", "1", "0: Disabled\n1: Enabled"], "11": ["NDI", "UINT32", "1", "64", "1", "range[0, 1]"], "12": ["ReTx Number", "UINT32", "1", "65", "3", "range[0, 7]"], "13": ["Reserved", "UINT32", "1", "68", "28", ""]}, "Name": "PDSCH_Decoding_Stream_V1"}, "PDSCH_Decoding_Infos_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pdsch Decoding Records": "Number of Records"}, "Name": "PDSCH_Decoding_Infos_V2", "Data": {"0": ["Reserved", "UINT32", "1", "0", "3", ""], "1": ["Serving Cell ID", "UINT32", "1", "3", "9", "range[0, 503]"], "2": ["UE Category", "UINT32", "1", "12", "5", "range[0, 15]"], "3": ["TM", "UINT32", "1", "17", "4", "range[1, 10]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "6": ["Reserved", "UINT32", "1", "29", "27", ""], "7": ["Pdsch Decoding Records", "PDSCH_Decoding_Record_V2", "N", "56", "VAR", "N := Number of Records"]}}, "PDSCH_Decoding_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Decoding Streams": "Number of Streams"}, "Name": "PDSCH_Decoding_Record_V2", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["HARQ ID", "UINT32", "1", "17", "4", "range[0, 15]"], "4": ["Number of RBs", "UINT32", "1", "21", "7", "range[1, 100]"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["RNTI Type", "UINT32", "1", "32", "3", "0: C-RNTI\n1: SPS-C-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI"], "7": ["RNTI", "UINT32", "1", "35", "16", "RNTI value"], "8": ["Reserved", "UINT32", "1", "51", "11", ""], "9": ["Number of Streams", "UINT32", "1", "62", "2", "range[1, 2]"], "10": ["Decoding Streams", "PDSCH_Decoding_Stream_V2", "N", "64", "VAR", "N := Number of Streams"]}}, "PDSCH_Decoding_Stream_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CRC Result", "UINT32", "1", "0", "1", "0: Fail, 1: Pass"], "1": ["RV", "UINT32", "1", "1", "2", "range[0, 3]"], "2": ["TB Index", "UINT32", "1", "3", "1", "range[0, 1]"], "3": ["TB Size", "UINT32", "1", "4", "16", "in bytes"], "4": ["MCS", "UINT32", "1", "20", "5", "range[0, 31]"], "5": ["PRB", "UINT32", "1", "25", "7", "range[1, 100]"], "6": ["Code Block Size Plus", "UINT32", "1", "32", "13", "in bits, range[0, 8191]"], "7": ["Number of Code Block Size Plus", "UINT32", "1", "45", "4", "range[1, 13]"], "8": ["Codeword Index", "UINT32", "1", "49", "1", "range[0, 1]"], "9": ["Code Block CRC Bitmask", "UINT32", "1", "50", "13", "The CRC bitmask of code block"], "10": ["HARQ Combining", "UINT32", "1", "63", "1", "0: Disabled\n1: Enabled"], "11": ["NDI", "UINT32", "1", "64", "1", "range[0, 1]"], "12": ["ReTx Number", "UINT32", "1", "65", "3", "range[0, 7]"], "13": ["Modulation Scheme", "UINT32", "1", "68", "2", "QPSK (0),\nQAM16 (1),\nQAM64 (2),\nQAM256 (3)"], "14": ["Reserved", "UINT32", "1", "70", "26", ""]}, "Name": "PDSCH_Decoding_Stream_V2"}, "PDSCH_Decoding_Infos_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pdsch Decoding Records": "Number of Records"}, "Name": "PDSCH_Decoding_Infos_V3", "Data": {"0": ["Reserved", "UINT32", "1", "0", "3", ""], "1": ["Serving Cell ID", "UINT32", "1", "3", "9", "range[0, 503]"], "2": ["UE Category", "UINT32", "1", "12", "5", "range[0, 15]"], "3": ["TM", "UINT32", "1", "17", "4", "range[1, 10]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "6": ["Reserved", "UINT32", "1", "29", "27", ""], "7": ["Pdsch Decoding Records", "PDSCH_Decoding_Record_V3", "N", "56", "VAR", "N := Number of Records"]}}, "PDSCH_Decoding_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Decoding Streams": "Number of Streams"}, "Name": "PDSCH_Decoding_Record_V3", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["HARQ ID", "UINT32", "1", "17", "4", "range[0, 15]"], "4": ["Number of RBs", "UINT32", "1", "21", "7", "range[1, 100]"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["RNTI Type", "UINT32", "1", "32", "3", "0: C-RNTI\n1: SPS-C-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI"], "7": ["RNTI", "UINT32", "1", "35", "16", "RNTI value"], "8": ["DL Layer", "UINT32", "1", "51", "3", "range[1, 4]"], "9": ["Reserved", "UINT32", "1", "54", "8", ""], "10": ["Number of Streams", "UINT32", "1", "62", "2", "range[1, 2]"], "11": ["Decoding Streams", "PDSCH_Decoding_Stream_V3", "N", "64", "VAR", "N := Number of Streams"]}}, "PDSCH_Decoding_Stream_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CRC Result", "UINT32", "1", "0", "1", "0: Fail, 1: Pass"], "1": ["RV", "UINT32", "1", "1", "2", "range[0, 3]"], "2": ["TB Index", "UINT32", "1", "3", "1", "range[0, 1]"], "3": ["TB Size", "UINT32", "1", "4", "16", "in bytes"], "4": ["MCS", "UINT32", "1", "20", "5", "range[0, 31]"], "5": ["PRB", "UINT32", "1", "25", "7", "range[1, 100]"], "6": ["Code Block Size Plus", "UINT32", "1", "32", "13", "in bits, range[0, 8191]"], "7": ["Number of Code Block Size Plus", "UINT32", "1", "45", "4", "range[1, 13]"], "8": ["Codeword Index", "UINT32", "1", "49", "1", "range[0, 1]"], "9": ["Code Block CRC Bitmask", "UINT32", "1", "50", "13", "The CRC bitmask of code block"], "10": ["HARQ Combining", "UINT32", "1", "63", "1", "0: Disabled\n1: Enabled"], "11": ["NDI", "UINT32", "1", "64", "1", "range[0, 1]"], "12": ["ReTx Number", "UINT32", "1", "65", "3", "range[0, 7]"], "13": ["Modulation Scheme", "UINT32", "1", "68", "2", "QPSK (0),\nQAM16 (1),\nQAM64 (2),\nQAM256 (3)"], "14": ["Reserved", "UINT32", "1", "70", "26", ""]}, "Name": "PDSCH_Decoding_Stream_V3"}, "PDSCH_Decoding_Infos_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pdsch Decoding Records": "Number of Records"}, "Name": "PDSCH_Decoding_Infos_V4", "Data": {"0": ["Reserved", "UINT32", "1", "0", "3", ""], "1": ["Serving Cell ID", "UINT32", "1", "3", "9", "range[0, 503]"], "2": ["UE Category", "UINT32", "1", "12", "5", "range[0, 15]"], "3": ["TM", "UINT32", "1", "17", "4", "range[1, 10]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["Number of Records", "UINT32", "1", "24", "5", "range[0, 20]"], "6": ["Reserved", "UINT32", "1", "29", "27", ""], "7": ["Pdsch Decoding Records", "PDSCH_Decoding_Record_V4", "N", "56", "VAR", "N := Number of Records"]}}, "PDSCH_Decoding_Record_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Decoding Streams": "Number of Streams"}, "Name": "PDSCH_Decoding_Record_V4", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["HARQ ID", "UINT32", "1", "17", "4", "range[0, 15]"], "4": ["Number of RBs", "UINT32", "1", "21", "7", "range[1, 100]"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["RNTI Type", "UINT32", "1", "32", "3", "0: C-RNTI\n1: SPS-C-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI"], "7": ["RNTI", "UINT32", "1", "35", "16", "RNTI value"], "8": ["DL Layer", "UINT32", "1", "51", "3", "range[1, 4]"], "9": ["P RNTI VLD", "UINT32", "1", "54", "1", "range[0, 1] Indicate Paging report is valid or not"], "10": ["P RNTI RPT", "UINT32", "1", "55", "1", "range[0, 1] Consider Paging rpt if P RNTI VLD is TRUE"], "11": ["Reserved", "UINT32", "1", "56", "6", ""], "12": ["Number of Streams", "UINT32", "1", "62", "2", "range[1, 2]"], "13": ["Decoding Streams", "PDSCH_Decoding_Stream_V4", "N", "64", "VAR", "N := Number of Streams"]}}, "PDSCH_Decoding_Stream_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CRC Result", "UINT32", "1", "0", "1", "0: Fail, 1: Pass"], "1": ["RV", "UINT32", "1", "1", "2", "range[0, 3]"], "2": ["TB Index", "UINT32", "1", "3", "1", "range[0, 1]"], "3": ["TB Size", "UINT32", "1", "4", "16", "in bytes"], "4": ["MCS", "UINT32", "1", "20", "5", "range[0, 31]"], "5": ["PRB", "UINT32", "1", "25", "7", "range[1, 100]"], "6": ["Code Block Size Plus", "UINT32", "1", "32", "13", "in bits, range[0, 8191]"], "7": ["Number of Code Block Size Plus", "UINT32", "1", "45", "4", "range[1, 13]"], "8": ["Codeword Index", "UINT32", "1", "49", "1", "range[0, 1]"], "9": ["Code Block CRC Bitmask", "UINT32", "1", "50", "13", "The CRC bitmask of code block"], "10": ["HARQ Combining", "UINT32", "1", "63", "1", "0: Disabled\n1: Enabled"], "11": ["NDI", "UINT32", "1", "64", "1", "range[0, 1]"], "12": ["ReTx Number", "UINT32", "1", "65", "3", "range[0, 7]"], "13": ["Modulation Scheme", "UINT32", "1", "68", "2", "QPSK (0),\nQAM16 (1),\nQAM64 (2),\nQAM256 (3)"], "14": ["Reserved", "UINT32", "1", "70", "26", ""]}, "Name": "PDSCH_Decoding_Stream_V4"}}},
+ Public JSON end */
+// Checksum : [abee81c20334c1706879780fcc254d34]
diff --git a/mcu/interface/service/icd/el1/EL1_PHICH_DecodingResults.h b/mcu/interface/service/icd/el1/EL1_PHICH_DecodingResults.h
new file mode 100644
index 0000000..cbc1664
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PHICH_DecodingResults.h
@@ -0,0 +1,68 @@
+// ICD Header Format v3
+// Name : EL1_PHICH_DecodingResults
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7010
+// Version : V2.6
+
+#ifndef _EL1_PHICH_DECODINGRESULTS_H
+#define _EL1_PHICH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PHICH_DECODINGRESULTS 0x7010
+
+#define ICD_EL1_PHICH_DECODING_INFOS_V1 1
+
+#define MAX_ICD_PHICH_DECODING_RESULTS_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_PHICH_DECODING_RESULTS_STRUCT_V1_MAX_SIZE 164
+
+typedef struct {
+ kal_uint16 decoding_result:1; // 0: NACK, 1: ACK
+ kal_uint16 spreading_code_index:3; // range[0, 7]
+ kal_uint16 phich_group_number:5; // range[0, 31]
+ kal_uint16 reserved:7;
+} phich_result_v1;
+
+typedef phich_result_v1 phich_result;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record
+ // range[0, 9]
+ kal_uint32 reserved:16;
+ kal_uint32 number_of_results:2; // range[1, 2]
+ // 1: 1 result, the other one is invalid
+ // 2: 2 results
+ phich_result phich_results[2];
+} phich_decoding_record_v1;
+
+typedef phich_decoding_record_v1 phich_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ phich_decoding_record decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_phich_decoding_results_struct_v1;
+
+typedef icd_phich_decoding_results_struct_v1 icd_phich_decoding_results_struct;
+
+
+#endif /* _EL1_PHICH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"EL1_PHICH_DecodingResults": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7010", "Name": "EL1_PHICH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PHICH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PhichDecodingInfos_Versions", "1", "8", "VAR", ""]}, "Name": "PHICH_Decoding_Results"}, "PhichDecodingInfos_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PHICH_Decoding_Infos_V1", ""]}, "Name": "PhichDecodingInfos_Versions"}, "PHICH_Decoding_Infos_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Decoding Records": "Number of Records"}, "Name": "PHICH_Decoding_Infos_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Decoding Records", "PHICH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PHICH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Reserved", "UINT32", "1", "14", "16", ""], "3": ["Number of Results", "UINT32", "1", "30", "2", "range[1, 2]\n1: 1 result, the other one is invalid\n2: 2 results"], "4": ["Phich Results", "PHICH_Result_V1", "2", "32", "32", ""]}, "Name": "PHICH_Decoding_Record_V1"}, "PHICH_Result_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Decoding Result", "UINT16", "1", "0", "1", "0: NACK, 1: ACK"], "1": ["Spreading Code Index", "UINT16", "1", "1", "3", "range[0, 7]"], "2": ["Phich Group Number", "UINT16", "1", "4", "5", "range[0, 31]"], "3": ["Reserved", "UINT16", "1", "9", "7", ""]}, "Name": "PHICH_Result_V1"}}},
+ Public JSON end */
+// Checksum : [68f71e0a1b245c9a2f098416f1579441]
diff --git a/mcu/interface/service/icd/el1/EL1_PMCH_DecodingResults.h b/mcu/interface/service/icd/el1/EL1_PMCH_DecodingResults.h
new file mode 100644
index 0000000..5fe95a7
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PMCH_DecodingResults.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : EL1_PMCH_DecodingResults
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x700B
+// Version : V2.6
+
+#ifndef _EL1_PMCH_DECODINGRESULTS_H
+#define _EL1_PMCH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PMCH_DECODINGRESULTS 0x700B
+
+#define ICD_EL1_PMCH_DECODING_INFOS_V1 1
+
+#define MAX_ICD_PMCH_DECODING_RESULTS_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_PMCH_DECODING_RESULTS_STRUCT_V1_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record
+ // range[0, 9]
+ kal_uint32 number_of_rbs:7; // range[0, 100]
+ kal_uint32 crc_result:1; // 0: Fail
+ // 1: Pass
+ kal_uint32 mcs:5; // range[0, 28]
+ kal_uint32 reserved:5;
+ kal_uint32 pmch_id:8; // range[0, 255]
+ kal_uint32 area_id:8; // range[0, 255]
+ kal_uint32 tb_size:14; // in bytes
+ kal_uint32 reserved_1:2;
+} pmch_decoding_record_v1;
+
+typedef pmch_decoding_record_v1 pmch_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:4;
+ kal_uint32 number_of_records:8; // range[0, 20]
+ pmch_decoding_record pmch_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pmch_decoding_results_struct_v1;
+
+typedef icd_pmch_decoding_results_struct_v1 icd_pmch_decoding_results_struct;
+
+
+#endif /* _EL1_PMCH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"EL1_PMCH_DecodingResults": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x700B", "Name": "EL1_PMCH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PMCH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PmchDecodingInfos_Versions", "1", "8", "VAR", ""]}, "Name": "PMCH_Decoding_Results"}, "PmchDecodingInfos_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PMCH_Decoding_Infos_V1", ""]}, "Name": "PmchDecodingInfos_Versions"}, "PMCH_Decoding_Infos_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pmch Decoding Records": "Number of Records"}, "Name": "PMCH_Decoding_Infos_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "4", ""], "3": ["Number of Records", "UINT32", "1", "16", "8", "range[0, 20]"], "4": ["Pmch Decoding Records", "PMCH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PMCH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Number of RBs", "UINT32", "1", "14", "7", "range[0, 100]"], "3": ["CRC Result", "UINT32", "1", "21", "1", "0: Fail\n1: Pass"], "4": ["MCS", "UINT32", "1", "22", "5", "range[0, 28]"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Pmch ID", "UINT32", "1", "32", "8", "range[0, 255]"], "7": ["Area ID", "UINT32", "1", "40", "8", "range[0, 255]"], "8": ["TB Size", "UINT32", "1", "48", "14", "in bytes"], "9": ["Reserved", "UINT32", "1", "62", "2", ""]}, "Name": "PMCH_Decoding_Record_V1"}}},
+ Public JSON end */
+// Checksum : [f3f3fd770d1be4b379dd3bee35ab38f7]
diff --git a/mcu/interface/service/icd/el1/EL1_PSS_Information.h b/mcu/interface/service/icd/el1/EL1_PSS_Information.h
new file mode 100644
index 0000000..aa1c74f
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PSS_Information.h
@@ -0,0 +1,49 @@
+// ICD Header Format v3
+// Name : EL1_PSS_Information
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7004
+// Version : V2.6
+
+#ifndef _EL1_PSS_INFORMATION_H
+#define _EL1_PSS_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PSS_INFORMATION 0x7004
+
+#define ICD_EL1_PSS_INFO_CONTENT_V1 1
+
+#define ICD_PSS_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // INTERGER(0..1023)
+ // This is the SFN based on
+ // reporting time of this
+ // record.
+ kal_uint32 subframe_number:4; // INTERGER(0..9)
+ // This is the SF based on
+ // reporting time of this
+ // record.
+ kal_uint32 index:2; // INTERGER(0..2)
+ // PSS Index
+ kal_uint32 reserved:8;
+ kal_int16 peak_value; // PSS peak value in dB.
+ kal_uint16 peak_position; // INTERGER(0..9599)
+ // Sample position with 5ms
+ // resolution
+} icd_pss_info_struct_v1;
+
+typedef icd_pss_info_struct_v1 icd_pss_info_struct;
+
+
+#endif /* _EL1_PSS_INFORMATION_H */
+
+
+/* Public JSON start
+"EL1_PSS_Information": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7004", "Name": "EL1_PSS_Information", "Type": "RECORD", "Desc": "The log is generated once the serving cell is changed.\n"}, "table": {"PSS_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PSS_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "PSS_Info"}, "PSS_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PSS_Info_Content_V1", ""]}, "Name": "PSS_Info_Content_Versions"}, "PSS_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "INTERGER(0..1023)\nThis is the SFN based on\nreporting time of this\nrecord."], "1": ["Subframe Number", "UINT32", "1", "10", "4", "INTERGER(0..9)\nThis is the SF based on\nreporting time of this\nrecord."], "2": ["Index", "UINT32", "1", "14", "2", "INTERGER(0..2)\nPSS Index"], "3": ["Reserved", "UINT32", "1", "16", "8", ""], "4": ["Peak Value", "INT16", "1", "24", "16", "PSS peak value in dB."], "5": ["Peak Position", "UINT16", "1", "40", "16", "INTERGER(0..9599)\nSample position with 5ms\nresolution"]}, "Name": "PSS_Info_Content_V1"}}},
+ Public JSON end */
+// Checksum : [13e70c03f2ef0216b1728b544b637185]
diff --git a/mcu/interface/service/icd/el1/EL1_PUCCH_Csf.h b/mcu/interface/service/icd/el1/EL1_PUCCH_Csf.h
new file mode 100644
index 0000000..8c67ff4
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PUCCH_Csf.h
@@ -0,0 +1,83 @@
+// ICD Header Format v3
+// Name : EL1_PUCCH_Csf
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7013
+// Version : V2.4-58-g84b34b9
+
+#ifndef _EL1_PUCCH_CSF_H
+#define _EL1_PUCCH_CSF_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PUCCH_CSF 0x7013
+
+#define ICD_EL1_PUCCH_CSF_INFO_V2 2
+
+#define MAX_ICD_PUCCH_CSF_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_PUCCH_CSF_STRUCT_V2_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record
+ // range[0, 9]
+ kal_uint32 reporting_mode:2; // 0: mode 1-0
+ // 1: mode 1-1
+ // 2: mode 2-0
+ // 3: mode 2-1
+ kal_uint32 reporting_type:3; // 0: SB CQI
+ // 1: WB CQI&PMI
+ // 2: RI
+ // 3: WB CQI
+ // 4: RI&PMI
+ // 5: PMI
+ kal_uint32 number_of_subbands_in_bwp:3; // range[0, 4]
+ // Valid only when Reporting Type == SB CQI
+ kal_uint32 bwp_index:3; // range[0, 4]
+ // Valid only when Reporting Type == SB CQI
+ kal_uint32 total_number_of_subbands:4; // range[1, 13]
+ kal_uint32 rank_indicator:2; // 0: rank 1, 1: rank 2, 2: rank 3, 3: rank 4
+ // Valid only when Reporting Type == RI
+ kal_uint32 reserved:1;
+ kal_uint32 cqi_codeword_0:4; // range[0, 15]
+ // Valid only when Reporting Type == SB CQI or
+ // WB CQI&PMI or WB CQI
+ kal_uint32 cqi_codeword_1:4; // range[0, 15]
+ // Valid only when Reporting Type == SB CQI or
+ // WB CQI&PMI or WB CQI
+ kal_uint32 wideband_pmi:4; // range[0, 15]
+ // Valid only when Reporting Type == WB CQI&PMI or RI&PMI
+ // or PMI
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving
+ // cell (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 alt_cqi_table:1; // Indicates the Alt CQITable is present or not
+ kal_uint32 alt_cqi_table_percent:7; // Indicates the Alt CQI percent
+ // range [0, 100]
+ kal_uint32 reserved_1:9;
+} pucch_csf_record_v2;
+
+typedef pucch_csf_record_v2 pucch_csf_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:19;
+ pucch_csf_record csf_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pucch_csf_struct_v2;
+
+typedef icd_pucch_csf_struct_v2 icd_pucch_csf_struct;
+
+
+#endif /* _EL1_PUCCH_CSF_H */
+
+
+/* Public JSON start
+"EL1_PUCCH_Csf": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7013", "Name": "EL1_PUCCH_Csf", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PUCCH_Csf": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PucchCsfInfo_Versions", "1", "8", "VAR", ""]}, "Name": "PUCCH_Csf"}, "PucchCsfInfo_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PUCCH_Csf_Info_V1", ""], "1": ["2", "PUCCH_Csf_Info_V2", ""]}, "Name": "PucchCsfInfo_Versions"}, "PUCCH_Csf_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Csf Records": "Number of Records"}, "Name": "PUCCH_Csf_Info_V1", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[0, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["Csf Records", "PUCCH_Csf_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PUCCH_Csf_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Reporting Mode", "UINT32", "1", "14", "2", "0: mode 1-0\n1: mode 1-1\n2: mode 2-0\n3: mode 2-1"], "3": ["Reporting Type", "UINT32", "1", "16", "3", "0: SB CQI\n1: WB CQI&PMI\n2: RI\n3: WB CQI\n4: RI&PMI\n5: PMI"], "4": ["Number of Subbands in BWP", "UINT32", "1", "19", "3", "range[0, 4]\nValid only when Reporting Type == SB CQI"], "5": ["BWP Index", "UINT32", "1", "22", "3", "range[0, 4]\nValid only when Reporting Type == SB CQI"], "6": ["Total Number of Subbands", "UINT32", "1", "25", "4", "range[1, 13]"], "7": ["Rank Indicator", "UINT32", "1", "29", "2", "0: rank 1, 1: rank 2, 2: rank 3, 3: rank 4\nValid only when Reporting Type == RI"], "8": ["Reserved", "UINT32", "1", "31", "1", ""], "9": ["CQI Codeword 0", "UINT32", "1", "32", "4", "range[0, 15]\nValid only when Reporting Type == SB CQI or\nWB CQI&PMI or WB CQI"], "10": ["CQI Codeword 1", "UINT32", "1", "36", "4", "range[0, 15]\nValid only when Reporting Type == SB CQI or\nWB CQI&PMI or WB CQI"], "11": ["Wideband PMI", "UINT32", "1", "40", "4", "range[0, 15]\nValid only when Reporting Type == WB CQI&PMI or RI&PMI\nor PMI"], "12": ["Carrier Index", "UINT32", "1", "44", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "13": ["Reserved", "UINT32", "1", "47", "17", ""]}, "Name": "PUCCH_Csf_Record_V1"}, "PUCCH_Csf_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Csf Records": "Number of Records"}, "Name": "PUCCH_Csf_Info_V2", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[0, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["Csf Records", "PUCCH_Csf_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "PUCCH_Csf_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record\nrange[0, 9]"], "2": ["Reporting Mode", "UINT32", "1", "14", "2", "0: mode 1-0\n1: mode 1-1\n2: mode 2-0\n3: mode 2-1"], "3": ["Reporting Type", "UINT32", "1", "16", "3", "0: SB CQI\n1: WB CQI&PMI\n2: RI\n3: WB CQI\n4: RI&PMI\n5: PMI"], "4": ["Number of Subbands in BWP", "UINT32", "1", "19", "3", "range[0, 4]\nValid only when Reporting Type == SB CQI"], "5": ["BWP Index", "UINT32", "1", "22", "3", "range[0, 4]\nValid only when Reporting Type == SB CQI"], "6": ["Total Number of Subbands", "UINT32", "1", "25", "4", "range[1, 13]"], "7": ["Rank Indicator", "UINT32", "1", "29", "2", "0: rank 1, 1: rank 2, 2: rank 3, 3: rank 4\nValid only when Reporting Type == RI"], "8": ["Reserved", "UINT32", "1", "31", "1", ""], "9": ["CQI Codeword 0", "UINT32", "1", "32", "4", "range[0, 15]\nValid only when Reporting Type == SB CQI or\nWB CQI&PMI or WB CQI"], "10": ["CQI Codeword 1", "UINT32", "1", "36", "4", "range[0, 15]\nValid only when Reporting Type == SB CQI or\nWB CQI&PMI or WB CQI"], "11": ["Wideband PMI", "UINT32", "1", "40", "4", "range[0, 15]\nValid only when Reporting Type == WB CQI&PMI or RI&PMI\nor PMI"], "12": ["Carrier Index", "UINT32", "1", "44", "3", "Indicates this metric is reporting on which serving\ncell (not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "13": ["Alt CQI Table", "UINT32", "1", "47", "1", "Indicates the Alt CQITable is present or not"], "14": ["Alt CQI Table Percent", "UINT32", "1", "48", "7", "Indicates the Alt CQI percent\nrange [0, 100]"], "15": ["Reserved", "UINT32", "1", "55", "9", ""]}, "Name": "PUCCH_Csf_Record_V2"}}},
+ Public JSON end */
+// Checksum : [84b1106f53ca5c017a700658ca3c8426]
diff --git a/mcu/interface/service/icd/el1/EL1_PUCCH_Power_Control.h b/mcu/interface/service/icd/el1/EL1_PUCCH_Power_Control.h
new file mode 100644
index 0000000..749e62b
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PUCCH_Power_Control.h
@@ -0,0 +1,99 @@
+// ICD Header Format v3
+// Name : EL1_PUCCH_Power_Control
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7012
+// Version : V2.6
+
+#ifndef _EL1_PUCCH_POWER_CONTROL_H
+#define _EL1_PUCCH_POWER_CONTROL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PUCCH_POWER_CONTROL 0x7012
+
+#define ICD_EL1_PUCCH_POWER_CONTROL_INFO_V1 1
+
+#define MAX_ICD_PUCCH_POWER_CONTROL_STRUCT_V1_NUMBER_OF_RECORDS 20
+#define MAX_PUCCH_POWER_CONTROL_RECORD_V1_M 9
+
+#define ICD_PUCCH_POWER_CONTROL_STRUCT_V1_MAX_SIZE 964
+
+typedef struct {
+ kal_uint16 dci_format:4; // 0: 0
+ // 1: 1
+ // 2: 1A
+ // 3: 1B
+ // 4: 1C
+ // 5: 1D
+ // 6: 2
+ // 7: 2A
+ // 8: 2B
+ // 9: 2C
+ // 10: 2D
+ // 11: 3
+ // 12: 3A
+ // 13: 4
+ kal_uint16 reserved:12;
+ kal_int16 tpc; // range[-1, 3]
+} pucch_power_dl_v1;
+
+typedef pucch_power_dl_v1 pucch_power_dl;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 tx_format:4; // 0 - UCI format 1
+ // 1 - UCI format 1a
+ // 2 - UCI format 1b
+ // 3 - UCI format 2
+ // 4 - UCI format 2a
+ // 5 - UCI format 2b
+ // 6 - UCI format 3
+ // 7 - UCI format 4
+ // 8 - UCI format 5
+ kal_uint32 number_of_harq_bits:2; // range[0, 2]
+ kal_uint32 number_of_cqi_bits:4; // range[0, 13]
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 power_backoff:16; // TX power backoff, bit0~bit6: mantissa of power backoff
+ // , bit7~bit15: exponent of power backoff
+ kal_uint32 reserved:16;
+ kal_int8 power; // range[-50, 23]
+ kal_int8 m; // Number of DL or special subframes associated with this
+ // subframe. For FDD, the maximum value of M is 1. For
+ // TDD, refer to 36.213 table 10.1.3.1-1.
+ // M=0 indicates no corresponding DCI
+ // range[1, 9]
+ kal_int16 gi; // range[-141, 141]
+ pucch_power_dl assoc_dl[FLEXIBLE_ARRAY_SIZE]; // N := M
+} pucch_power_control_record_v1;
+
+typedef pucch_power_control_record_v1 pucch_power_control_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ pucch_power_control_record pucch_power_control_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pucch_power_control_struct_v1;
+
+typedef icd_pucch_power_control_struct_v1 icd_pucch_power_control_struct;
+
+
+#endif /* _EL1_PUCCH_POWER_CONTROL_H */
+
+
+/* Public JSON start
+"EL1_PUCCH_Power_Control": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7012", "Name": "EL1_PUCCH_Power_Control", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PUCCH_Power_Control": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PucchPowerControlInfo_Versions", "1", "8", "VAR", ""]}, "Name": "PUCCH_Power_Control"}, "PucchPowerControlInfo_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PUCCH_Power_Control_Info_V1", ""], "1": ["2", "PUCCH_Power_Control_Info_V2", ""]}, "Name": "PucchPowerControlInfo_Versions"}, "PUCCH_Power_Control_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Power Control Records": "Number of Records"}, "Name": "PUCCH_Power_Control_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Power Control Records", "PUCCH_Power_Control_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PUCCH_Power_Control_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Power Control Records": "Number of Records"}, "Name": "PUCCH_Power_Control_Info_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Power Control Records", "PUCCH_Power_Control_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "PUCCH_Power_Control_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Assoc DL": "M"}, "Name": "PUCCH_Power_Control_Record_V1", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Tx Format", "UINT32", "1", "14", "4", "0 - UCI format 1\n1 - UCI format 1a\n2 - UCI format 1b\n3 - UCI format 2\n4 - UCI format 2a\n5 - UCI format 2b\n6 - UCI format 3\n7 - UCI format 4\n8 - UCI format 5"], "3": ["Number of HARQ Bits", "UINT32", "1", "18", "2", "range[0, 2]"], "4": ["Number of CQI Bits", "UINT32", "1", "20", "4", "range[0, 13]"], "5": ["Path Loss", "UINT32", "1", "24", "8", "range[0, 255]"], "6": ["Power Backoff", "UINT32", "1", "32", "16", "TX power backoff, bit0~bit6: mantissa of power backoff\n, bit7~bit15: exponent of power backoff"], "7": ["Reserved", "UINT32", "1", "48", "16", ""], "8": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "9": ["M", "INT8", "1", "72", "8", "Number of DL or special subframes associated with this\nsubframe. For FDD, the maximum value of M is 1. For\nTDD, refer to 36.213 table 10.1.3.1-1.\nM=0 indicates no corresponding DCI\nrange[1, 9]"], "10": ["Gi", "INT16", "1", "80", "16", "range[-141, 141]"], "11": ["Assoc DL", "PUCCH_Power_DL_V1", "N", "96", "VAR", "N := M"]}}, "PUCCH_Power_Control_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Assoc DL": "M"}, "Name": "PUCCH_Power_Control_Record_V2", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Tx Format", "UINT32", "1", "14", "4", "0 - UCI format 1\n1 - UCI format 1a\n2 - UCI format 1b\n3 - UCI format 2\n4 - UCI format 2a\n5 - UCI format 2b\n6 - UCI format 3\n7 - UCI format 4\n8 - UCI format 5"], "3": ["Number of HARQ Bits", "UINT32", "1", "18", "5", "range[0, 20]"], "4": ["Number of CQI Bits", "UINT32", "1", "23", "4", "range[0, 13]"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Path Loss", "UINT32", "1", "32", "8", "range[0, 255]"], "7": ["Power Backoff", "UINT32", "1", "40", "16", "TX power backoff, bit0~bit6: mantissa of power backoff\n, bit7~bit15: exponent of power backoff"], "8": ["Reserved", "UINT32", "1", "56", "8", ""], "9": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "10": ["M", "INT8", "1", "72", "8", "Number of DL or special subframes associated with this\nsubframe. For FDD, the maximum value of M is 1. For\nTDD, refer to 36.213 table 10.1.3.1-1.\nM=0 indicates no corresponding DCI\nrange[1, 9]"], "11": ["Gi", "INT16", "1", "80", "16", "range[-141, 141]"], "12": ["Assoc DL", "PUCCH_Power_DL_V1", "N", "96", "VAR", "N := M"]}}, "PUCCH_Power_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DCI Format", "UINT16", "1", "0", "4", "0: 0\n1: 1\n2: 1A\n3: 1B\n4: 1C\n5: 1D\n6: 2\n7: 2A\n8: 2B\n9: 2C\n10: 2D\n11: 3\n12: 3A\n13: 4"], "1": ["Reserved", "UINT16", "1", "4", "12", ""], "2": ["TPC", "INT16", "1", "16", "16", "range[-1, 3]"]}, "Name": "PUCCH_Power_DL_V1"}}},
+ Public JSON end */
+// Checksum : [ac4192c9c5e495c41ef74ac795b7293e]
diff --git a/mcu/interface/service/icd/el1/EL1_PUCCH_Report.h b/mcu/interface/service/icd/el1/EL1_PUCCH_Report.h
new file mode 100644
index 0000000..febc926
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PUCCH_Report.h
@@ -0,0 +1,98 @@
+// ICD Header Format v3
+// Name : EL1_PUCCH_Report
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7011
+// Version : V2.6
+
+#ifndef _EL1_PUCCH_REPORT_H
+#define _EL1_PUCCH_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PUCCH_REPORT 0x7011
+
+#define ICD_EL1_PUCCH_REPORT_INFO_V1 1
+
+#define MAX_ICD_PUCCH_REPORTS_STRUCT_V1_NUMBER_OF_REPORTS 20
+#define MAX_PUCCH_TX_REPORT_V1_M 9
+
+#define ICD_PUCCH_REPORTS_STRUCT_V1_MAX_SIZE 964
+
+typedef struct {
+ kal_uint16 dci_format:4; // 0: 0
+ // 1: 1
+ // 2: 1A
+ // 3: 1B
+ // 4: 1C
+ // 5: 1D
+ // 6: 2
+ // 7: 2A
+ // 8: 2B
+ // 9: 2C
+ // 10: 2D
+ // 11: 3
+ // 12: 3A
+ // 13: 4
+ kal_uint16 reserved:12;
+ kal_int16 tpc; // range[-1, 3]
+} pucch_assoc_dl_v1;
+
+typedef pucch_assoc_dl_v1 pucch_assoc_dl;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 format:4; // 0 - UCI format 1
+ // 1 - UCI format 1a
+ // 2 - UCI format 1b
+ // 3 - UCI format 2
+ // 4 - UCI format 2a
+ // 5 - UCI format 2b
+ // 6 - UCI format 3
+ // 7 - UCI format 4
+ // 8 - UCI format 5
+ kal_uint32 start_rb_slot_0:7; // range[0, 110]
+ kal_uint32 start_rb_slot_1:7; // range[0, 110]
+ kal_uint32 dmrs_seq_slot_0:5; // range[0, 29]
+ kal_uint32 dmrs_seq_slot_1:5; // range[0, 29]
+ kal_uint32 reserved:22;
+ kal_int8 power; // range[-50, 23]
+ kal_int8 m; // Number of DL or special subframes associated with this
+ // subframe. For FDD, M=1. For TDD, refer to 36.213 table
+ // 10.1.3.1-1.
+ // M=0 indicates no corresponding DCI
+ // range[0, 9]
+ kal_int16 gi; // range[-141, 141]
+ pucch_assoc_dl assoc_dl[FLEXIBLE_ARRAY_SIZE]; // N := M
+} pucch_tx_report_v1;
+
+typedef pucch_tx_report_v1 pucch_tx_report;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_reports:5; // range[0, 20]
+ pucch_tx_report pucch_tx_reports[FLEXIBLE_ARRAY_SIZE]; // N := Number of Reports
+} icd_pucch_reports_struct_v1;
+
+typedef icd_pucch_reports_struct_v1 icd_pucch_reports_struct;
+
+
+#endif /* _EL1_PUCCH_REPORT_H */
+
+
+/* Public JSON start
+"EL1_PUCCH_Report": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7011", "Name": "EL1_PUCCH_Report", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PUCCH_Reports": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PUCCH_Report_Info_Versions", "1", "8", "VAR", ""]}, "Name": "PUCCH_Reports"}, "PUCCH_Report_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PUCCH_Report_Info_V1", ""]}, "Name": "PUCCH_Report_Info_Versions"}, "PUCCH_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Tx Reports": "Number of Reports"}, "Name": "PUCCH_Report_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Tx Reports", "PUCCH_TX_Report_V1", "N", "24", "VAR", "N := Number of Reports"]}}, "PUCCH_TX_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Assoc DL": "M"}, "Name": "PUCCH_TX_Report_V1", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Format", "UINT32", "1", "14", "4", "0 - UCI format 1\n1 - UCI format 1a\n2 - UCI format 1b\n3 - UCI format 2\n4 - UCI format 2a\n5 - UCI format 2b\n6 - UCI format 3\n7 - UCI format 4\n8 - UCI format 5"], "3": ["Start RB Slot 0", "UINT32", "1", "18", "7", "range[0, 110]"], "4": ["Start RB Slot 1", "UINT32", "1", "25", "7", "range[0, 110]"], "5": ["DMRS Seq Slot 0", "UINT32", "1", "32", "5", "range[0, 29]"], "6": ["DMRS Seq Slot 1", "UINT32", "1", "37", "5", "range[0, 29]"], "7": ["Reserved", "UINT32", "1", "42", "22", ""], "8": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "9": ["M", "INT8", "1", "72", "8", "Number of DL or special subframes associated with this\nsubframe. For FDD, M=1. For TDD, refer to 36.213 table\n10.1.3.1-1.\nM=0 indicates no corresponding DCI\nrange[0, 9]"], "10": ["Gi", "INT16", "1", "80", "16", "range[-141, 141]"], "11": ["Assoc DL", "PUCCH_Assoc_DL_V1", "N", "96", "VAR", "N := M"]}}, "PUCCH_Assoc_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DCI Format", "UINT16", "1", "0", "4", "0: 0\n1: 1\n2: 1A\n3: 1B\n4: 1C\n5: 1D\n6: 2\n7: 2A\n8: 2B\n9: 2C\n10: 2D\n11: 3\n12: 3A\n13: 4"], "1": ["Reserved", "UINT16", "1", "4", "12", ""], "2": ["TPC", "INT16", "1", "16", "16", "range[-1, 3]"]}, "Name": "PUCCH_Assoc_DL_V1"}}},
+ Public JSON end */
+// Checksum : [5993e6155dd5bc407f603b293e33702f]
diff --git a/mcu/interface/service/icd/el1/EL1_PUSCH_Csf.h b/mcu/interface/service/icd/el1/EL1_PUSCH_Csf.h
new file mode 100644
index 0000000..81967a1
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PUSCH_Csf.h
@@ -0,0 +1,129 @@
+// ICD Header Format v3
+// Name : EL1_PUSCH_Csf
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7016
+// Version : V2.6
+
+#ifndef _EL1_PUSCH_CSF_H
+#define _EL1_PUSCH_CSF_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PUSCH_CSF 0x7016
+
+#define ICD_EL1_PUSCH_CSF_INFO_V1 1
+
+#define MAX_ICD_PUSCH_CSF_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_PUSCH_CSF_STRUCT_V1_MAX_SIZE 644
+
+typedef struct {
+ kal_uint32 subband_0:4; // range[0, 15]
+ kal_uint32 subband_1:4; // range[0, 15]
+ kal_uint32 subband_2:4; // range[0, 15]
+ kal_uint32 subband_3:4; // range[0, 15]
+ kal_uint32 subband_4:4; // range[0, 15]
+ kal_uint32 subband_5:4; // range[0, 15]
+ kal_uint32 subband_6:4; // range[0, 15]
+ kal_uint32 subband_7:4; // range[0, 15]
+ kal_uint32 subband_8:4; // range[0, 15]
+ kal_uint32 subband_9:4; // range[0, 15]
+ kal_uint32 subband_10:4; // range[0, 15]
+ kal_uint32 subband_11:4; // range[0, 15]
+ kal_uint32 subband_12:4; // range[0, 15]
+ kal_uint32 reserved:12;
+} pusch_csf_info_subband_pmi_list_v1;
+
+typedef pusch_csf_info_subband_pmi_list_v1 pusch_csf_info_subband_pmi_list;
+
+typedef struct {
+ kal_uint32 subband_0:4; // range[0, 15]
+ kal_uint32 subband_1:4; // range[0, 15]
+ kal_uint32 subband_2:4; // range[0, 15]
+ kal_uint32 subband_3:4; // range[0, 15]
+ kal_uint32 subband_4:4; // range[0, 15]
+ kal_uint32 subband_5:4; // range[0, 15]
+ kal_uint32 subband_6:4; // range[0, 15]
+ kal_uint32 subband_7:4; // range[0, 15]
+ kal_uint32 subband_8:4; // range[0, 15]
+ kal_uint32 subband_9:4; // range[0, 15]
+ kal_uint32 subband_10:4; // range[0, 15]
+ kal_uint32 subband_11:4; // range[0, 15]
+ kal_uint32 subband_12:4; // range[0, 15]
+ kal_uint32 reserved:12;
+} pusch_csf_info_subband_cqi_list_v1;
+
+typedef pusch_csf_info_subband_cqi_list_v1 pusch_csf_info_subband_cqi_list;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the reporting time of this record
+ // range[0, 9]
+ kal_uint32 reporting_mode:3; // 0: mode 1-2
+ // 1: mode 2-0
+ // 2: mode 2-2
+ // 3: mode 3-0
+ // 4: mode 3-1
+ // 5: mode 3-2
+ kal_uint32 rank_indicator:2; // 0: rank 1, 1: rank 2, 2: rank 3, 3: rank 4
+ kal_uint32 wideband_cqi_codeword_0:4; // range[0, 15]
+ kal_uint32 wideband_cqi_codeword_1:4; // range[0, 15]
+ // Only valid in reporting modes 1-2, 2-2 and 3-1
+ kal_uint32 size_m:3; // [1, 3, 5, 6], refer to table 7.2.1-5 in 36.213
+ // Only valid in reporting modes 2-0 and 2-2
+ kal_uint32 reserved:2;
+ kal_uint32 subband_size_k:4; // [4, 6, 8], refer to table 7.2.1-3 in 36.213
+ kal_uint32 number_of_subbands:4; // range[1, 13]
+ // Only valid in reporting modes 3-0, 3-1 and 3-2
+ kal_uint32 first_wb_pmi:4; // range[0, 15]
+ // Only valid in reporting modes 1-2, 2-2, 3-1 and 3-2
+ kal_uint32 second_wb_pmi:4; // range[0, 15]
+ // Only valid in reporting mode 3-1 and 2-2 and
+ // number of CSI-RS ports == 8
+ kal_uint32 single_mb_pmi:4; // range[0, 15]
+ // Only valid in reporting mode 2-2
+ // If number of CSI-RS ports == 8, this means second PMI reflecting M
+ // subbands, otherwise, this means PMI reflecting M subbands
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 reserved_1:9;
+ pusch_csf_info_subband_cqi_list subband_cqi_codeword_0; // Only valid in reporting modes 2-0, 2-2, 3-0, 3-1 and 3-2
+ // In reporting modes 2-0 and 2-2, the subband 0 CQI means subband CQI
+ // reflecting M subbands, and the other subband CQIs are invalid. In
+ // reporting modes 3-0, 3-1 and 3-2, only N subband CQIs (N == number
+ // of subbands) are valid, and the others are invalid.
+ pusch_csf_info_subband_cqi_list subband_cqi_codeword_1; // Only valid in reporting modes 2-2, 3-1 and 3-2
+ // In reporting mode 2-2, the subband 0 CQI means subband CQI
+ // reflecting M subbands, and the other subband CQIs are invalid. In
+ // reporting modes 3-1 and 3-2, only N subband CQIs (N == number
+ // of subbands) are valid, and the others are invalid.
+ pusch_csf_info_subband_pmi_list multi_sb_pmi; // Only valid in reporting modes 1-2 and 3-2
+ // If number of CSI-RS ports == 8, this means N second subband PMIs (N
+ // == number of subbands), otherwise, this means N subband PMIs
+} pusch_csf_record_v1;
+
+typedef pusch_csf_record_v1 pusch_csf_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:19;
+ pusch_csf_record csf_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pusch_csf_struct_v1;
+
+typedef icd_pusch_csf_struct_v1 icd_pusch_csf_struct;
+
+
+#endif /* _EL1_PUSCH_CSF_H */
+
+
+/* Public JSON start
+"EL1_PUSCH_Csf": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7016", "Name": "EL1_PUSCH_Csf", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PUSCH_Csf": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PuschCsfInfo_Versions", "1", "8", "VAR", ""]}, "Name": "PUSCH_Csf"}, "PuschCsfInfo_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PUSCH_Csf_Info_V1", ""]}, "Name": "PuschCsfInfo_Versions"}, "PUSCH_Csf_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Csf Records": "Number of Records"}, "Name": "PUSCH_Csf_Info_V1", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[0, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["Csf Records", "PUSCH_Csf_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PUSCH_Csf_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the reporting time of this record\nrange[0, 9]"], "2": ["Reporting Mode", "UINT32", "1", "14", "3", "0: mode 1-2\n1: mode 2-0\n2: mode 2-2\n3: mode 3-0\n4: mode 3-1\n5: mode 3-2"], "3": ["Rank Indicator", "UINT32", "1", "17", "2", "0: rank 1, 1: rank 2, 2: rank 3, 3: rank 4"], "4": ["Wideband CQI Codeword 0", "UINT32", "1", "19", "4", "range[0, 15]"], "5": ["Wideband CQI Codeword 1", "UINT32", "1", "23", "4", "range[0, 15]\nOnly valid in reporting modes 1-2, 2-2 and 3-1"], "6": ["Size M", "UINT32", "1", "27", "3", "[1, 3, 5, 6], refer to table 7.2.1-5 in 36.213\nOnly valid in reporting modes 2-0 and 2-2"], "7": ["Reserved", "UINT32", "1", "30", "2", ""], "8": ["Subband Size K", "UINT32", "1", "32", "4", "[4, 6, 8], refer to table 7.2.1-3 in 36.213"], "9": ["Number of Subbands", "UINT32", "1", "36", "4", "range[1, 13]\nOnly valid in reporting modes 3-0, 3-1 and 3-2"], "10": ["First WB PMI", "UINT32", "1", "40", "4", "range[0, 15]\nOnly valid in reporting modes 1-2, 2-2, 3-1 and 3-2"], "11": ["Second WB PMI", "UINT32", "1", "44", "4", "range[0, 15]\nOnly valid in reporting mode 3-1 and 2-2 and\nnumber of CSI-RS ports == 8"], "12": ["Single MB PMI", "UINT32", "1", "48", "4", "range[0, 15]\nOnly valid in reporting mode 2-2\nIf number of CSI-RS ports == 8, this means second PMI reflecting M\nsubbands, otherwise, this means PMI reflecting M subbands"], "13": ["Carrier Index", "UINT32", "1", "52", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "14": ["Reserved", "UINT32", "1", "55", "9", ""], "15": ["Subband CQI Codeword 0", "PUSCH_Csf_Info_Subband_CQI_List_V1", "1", "64", "64", "Only valid in reporting modes 2-0, 2-2, 3-0, 3-1 and 3-2\nIn reporting modes 2-0 and 2-2, the subband 0 CQI means subband CQI\nreflecting M subbands, and the other subband CQIs are invalid. In\nreporting modes 3-0, 3-1 and 3-2, only N subband CQIs (N == number\nof subbands) are valid, and the others are invalid."], "16": ["Subband CQI Codeword 1", "PUSCH_Csf_Info_Subband_CQI_List_V1", "1", "128", "64", "Only valid in reporting modes 2-2, 3-1 and 3-2\nIn reporting mode 2-2, the subband 0 CQI means subband CQI\nreflecting M subbands, and the other subband CQIs are invalid. In\nreporting modes 3-1 and 3-2, only N subband CQIs (N == number\nof subbands) are valid, and the others are invalid."], "17": ["Multi SB PMI", "PUSCH_Csf_Info_Subband_PMI_List_V1", "1", "192", "64", "Only valid in reporting modes 1-2 and 3-2\nIf number of CSI-RS ports == 8, this means N second subband PMIs (N\n== number of subbands), otherwise, this means N subband PMIs"]}, "Name": "PUSCH_Csf_Record_V1"}, "PUSCH_Csf_Info_Subband_CQI_List_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Subband 0", "UINT32", "1", "0", "4", "range[0, 15]"], "1": ["Subband 1", "UINT32", "1", "4", "4", "range[0, 15]"], "2": ["Subband 2", "UINT32", "1", "8", "4", "range[0, 15]"], "3": ["Subband 3", "UINT32", "1", "12", "4", "range[0, 15]"], "4": ["Subband 4", "UINT32", "1", "16", "4", "range[0, 15]"], "5": ["Subband 5", "UINT32", "1", "20", "4", "range[0, 15]"], "6": ["Subband 6", "UINT32", "1", "24", "4", "range[0, 15]"], "7": ["Subband 7", "UINT32", "1", "28", "4", "range[0, 15]"], "8": ["Subband 8", "UINT32", "1", "32", "4", "range[0, 15]"], "9": ["Subband 9", "UINT32", "1", "36", "4", "range[0, 15]"], "10": ["Subband 10", "UINT32", "1", "40", "4", "range[0, 15]"], "11": ["Subband 11", "UINT32", "1", "44", "4", "range[0, 15]"], "12": ["Subband 12", "UINT32", "1", "48", "4", "range[0, 15]"], "13": ["Reserved", "UINT32", "1", "52", "12", ""]}, "Name": "PUSCH_Csf_Info_Subband_CQI_List_V1"}, "PUSCH_Csf_Info_Subband_PMI_List_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Subband 0", "UINT32", "1", "0", "4", "range[0, 15]"], "1": ["Subband 1", "UINT32", "1", "4", "4", "range[0, 15]"], "2": ["Subband 2", "UINT32", "1", "8", "4", "range[0, 15]"], "3": ["Subband 3", "UINT32", "1", "12", "4", "range[0, 15]"], "4": ["Subband 4", "UINT32", "1", "16", "4", "range[0, 15]"], "5": ["Subband 5", "UINT32", "1", "20", "4", "range[0, 15]"], "6": ["Subband 6", "UINT32", "1", "24", "4", "range[0, 15]"], "7": ["Subband 7", "UINT32", "1", "28", "4", "range[0, 15]"], "8": ["Subband 8", "UINT32", "1", "32", "4", "range[0, 15]"], "9": ["Subband 9", "UINT32", "1", "36", "4", "range[0, 15]"], "10": ["Subband 10", "UINT32", "1", "40", "4", "range[0, 15]"], "11": ["Subband 11", "UINT32", "1", "44", "4", "range[0, 15]"], "12": ["Subband 12", "UINT32", "1", "48", "4", "range[0, 15]"], "13": ["Reserved", "UINT32", "1", "52", "12", ""]}, "Name": "PUSCH_Csf_Info_Subband_PMI_List_V1"}}},
+ Public JSON end */
+// Checksum : [0b55c1cf0ec74d4a0f66d796ba997fb3]
diff --git a/mcu/interface/service/icd/el1/EL1_PUSCH_Power_Control.h b/mcu/interface/service/icd/el1/EL1_PUSCH_Power_Control.h
new file mode 100644
index 0000000..56eccf0
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PUSCH_Power_Control.h
@@ -0,0 +1,65 @@
+// ICD Header Format v3
+// Name : EL1_PUSCH_Power_Control
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7015
+// Version : V2.6
+
+#ifndef _EL1_PUSCH_POWER_CONTROL_H
+#define _EL1_PUSCH_POWER_CONTROL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PUSCH_POWER_CONTROL 0x7015
+
+#define ICD_EL1_PUSCH_POWER_CONTROL_INFO_V1 1
+
+#define MAX_ICD_PUSCH_POWER_CONTROL_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_PUSCH_POWER_CONTROL_STRUCT_V1_MAX_SIZE 244
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 tx_type:2; // 0: SPS, 1: Dynamic, 2: MSG3
+ kal_uint32 number_of_rb:7; // range[1, 100]
+ kal_uint32 reserved:1;
+ kal_uint32 tb_size:14; // in bytes
+ kal_uint32 power_backoff:16; // TX power backoff, bit0~bit6: mantissa of power backoff
+ // , bit7~bit15: exponent of power backoff
+ kal_uint32 reserved_1:2;
+ kal_int8 power; // range[-50, 23]
+ kal_int8 tpc; // range[-6, 8]
+ kal_int16 fi; // range[-141, 141)
+} pusch_power_control_record_v1;
+
+typedef pusch_power_control_record_v1 pusch_power_control_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ pusch_power_control_record pusch_power_control_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_pusch_power_control_struct_v1;
+
+typedef icd_pusch_power_control_struct_v1 icd_pusch_power_control_struct;
+
+
+#endif /* _EL1_PUSCH_POWER_CONTROL_H */
+
+
+/* Public JSON start
+"EL1_PUSCH_Power_Control": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7015", "Name": "EL1_PUSCH_Power_Control", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PUSCH_Power_Control": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PUSCH_Power_Control_Info_Versions", "1", "8", "VAR", ""]}, "Name": "PUSCH_Power_Control"}, "PUSCH_Power_Control_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PUSCH_Power_Control_Info_V1", ""]}, "Name": "PUSCH_Power_Control_Info_Versions"}, "PUSCH_Power_Control_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "PUSCH_Power_Control_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "PUSCH_Power_Control_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PUSCH_Power_Control_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Path Loss", "UINT32", "1", "14", "8", "range[0, 255]"], "3": ["Tx Type", "UINT32", "1", "22", "2", "0: SPS, 1: Dynamic, 2: MSG3"], "4": ["Number of RB", "UINT32", "1", "24", "7", "range[1, 100]"], "5": ["Reserved", "UINT32", "1", "31", "1", ""], "6": ["TB Size", "UINT32", "1", "32", "14", "in bytes"], "7": ["Power Backoff", "UINT32", "1", "46", "16", "TX power backoff, bit0~bit6: mantissa of power backoff\n, bit7~bit15: exponent of power backoff"], "8": ["Reserved", "UINT32", "1", "62", "2", ""], "9": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "10": ["TPC", "INT8", "1", "72", "8", "range[-6, 8]"], "11": ["Fi", "INT16", "1", "80", "16", "range[-141, 141)"]}, "Name": "PUSCH_Power_Control_Record_V1"}}},
+ Public JSON end */
+// Checksum : [b149792c6f19e9e36af626d82d1f3d26]
diff --git a/mcu/interface/service/icd/el1/EL1_PUSCH_Report.h b/mcu/interface/service/icd/el1/EL1_PUSCH_Report.h
new file mode 100644
index 0000000..4465a25
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_PUSCH_Report.h
@@ -0,0 +1,81 @@
+// ICD Header Format v3
+// Name : EL1_PUSCH_Report
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7014
+// Version : V2.6
+
+#ifndef _EL1_PUSCH_REPORT_H
+#define _EL1_PUSCH_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PUSCH_REPORT 0x7014
+
+#define ICD_EL1_PUSCH_REPORT_INFO_V2 2
+
+#define MAX_ICD_PUSCH_REPORT_STRUCT_V2_NUMBER_OF_REPORTS 20
+
+#define ICD_PUSCH_REPORT_STRUCT_V2_MAX_SIZE 404
+
+typedef struct {
+ kal_uint16 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0, 1023]
+ kal_uint16 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint16 modulation_order:2; // 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
+ kal_uint16 tb_size; // in bytes
+ kal_uint16 path_loss:8; // range[0, 255]
+ kal_uint16 harq_id:3; // range[0, 7]
+ kal_uint16 ack_exists:1; // 0: False, 1: True
+ kal_uint16 cqi_exists:1; // 0: False, 1: True
+ kal_uint16 ri_exists:1; // 0: False, 1: True
+ kal_uint16 frequency_hopping:2; // 0: Disabled
+ // 1: Inter SF
+ // 2: Intra+Inter
+ // 3: Undefined
+ kal_uint16 start_rb_slot_0:7; // range[0, 99]
+ kal_uint16 start_rb_slot_1:7; // range[0, 99]
+ kal_uint16 reserved:2;
+ kal_uint32 dmrs_seq_slot_0:5; // range[0, 11]
+ kal_uint32 dmrs_seq_slot_1:5; // range[0, 11]
+ kal_uint32 number_of_rbs:7; // range[1, 100]
+ kal_uint32 number_of_ack_bits:3; // range[0, 7]
+ kal_uint32 number_of_ri_bits:2; // range[0, 3]
+ kal_uint32 number_of_cqi_bits:8; // range[0, 127]
+ kal_uint32 reserved_1:2;
+ kal_uint32 retx_index:5; // range[0, 28]
+ kal_uint32 ul_layer:1; // range[0, 1]
+ kal_uint32 reserved_2:26;
+ kal_int8 power; // range[-50, 23]
+ kal_int8 tpc; // range[-6, 8]
+ kal_int16 fi; // range[-141,141]
+} pusch_tx_report_v2;
+
+typedef pusch_tx_report_v2 pusch_tx_report;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on
+ // which serving cell (not scell index
+ // configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,
+ // 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_reports:5; // range[0, 20]
+ pusch_tx_report pusch_tx_reports[FLEXIBLE_ARRAY_SIZE]; // N := Number of Reports
+} icd_pusch_report_struct_v2;
+
+typedef icd_pusch_report_struct_v2 icd_pusch_report_struct;
+
+
+#endif /* _EL1_PUSCH_REPORT_H */
+
+
+/* Public JSON start
+"EL1_PUSCH_Report": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7014", "Name": "EL1_PUSCH_Report", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"PUSCH_Report": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PUSCH_Report_Info_Versions", "1", "8", "VAR", ""]}, "Name": "PUSCH_Report"}, "PUSCH_Report_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PUSCH_Report_Info_V1", ""], "1": ["2", "PUSCH_Report_Info_V2", ""]}, "Name": "PUSCH_Report_Info_Versions"}, "PUSCH_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Tx Reports": "Number of Reports"}, "Name": "PUSCH_Report_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Tx Reports", "PUSCH_TX_Report_V1", "N", "24", "VAR", "N := Number of Reports"]}}, "PUSCH_Report_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Tx Reports": "Number of Reports"}, "Name": "PUSCH_Report_Info_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on\nwhich serving cell (not scell index\nconfigured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3,\n4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Tx Reports", "PUSCH_TX_Report_V2", "N", "24", "VAR", "N := Number of Reports"]}}, "PUSCH_TX_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT16", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT16", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Modulation Order", "UINT16", "1", "14", "2", "0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM"], "3": ["TB Size", "UINT16", "1", "16", "16", "in bytes"], "4": ["Path Loss", "UINT16", "1", "32", "8", "range[0, 255]"], "5": ["HARQ ID", "UINT16", "1", "40", "3", "range[0, 7]"], "6": ["Ack Exists", "UINT16", "1", "43", "1", "0: False, 1: True"], "7": ["CQI Exists", "UINT16", "1", "44", "1", "0: False, 1: True"], "8": ["RI Exists", "UINT16", "1", "45", "1", "0: False, 1: True"], "9": ["Frequency Hopping", "UINT16", "1", "46", "2", "0: Disabled\n1: Inter SF\n2: Intra+Inter\n3: Undefined"], "10": ["Start RB Slot 0", "UINT16", "1", "48", "7", "range[0, 99]"], "11": ["Start RB Slot 1", "UINT16", "1", "55", "7", "range[0, 99]"], "12": ["Reserved", "UINT16", "1", "62", "2", ""], "13": ["DMRS Seq Slot 0", "UINT32", "1", "64", "5", "range[0, 11]"], "14": ["DMRS Seq Slot 1", "UINT32", "1", "69", "5", "range[0, 11]"], "15": ["Number of RBs", "UINT32", "1", "74", "7", "range[1, 100]"], "16": ["Number of Ack Bits", "UINT32", "1", "81", "3", "range[0, 7]"], "17": ["Number of RI Bits", "UINT32", "1", "84", "2", "range[0, 3]"], "18": ["Number of CQI Bits", "UINT32", "1", "86", "8", "range[0, 127]"], "19": ["Reserved", "UINT32", "1", "94", "2", ""], "20": ["ReTx Index", "UINT32", "1", "96", "5", "range[0, 28]"], "21": ["Reserved", "UINT32", "1", "101", "27", ""], "22": ["Power", "INT8", "1", "128", "8", "range[-50, 23]"], "23": ["TPC", "INT8", "1", "136", "8", "range[-6, 8]"], "24": ["Fi", "INT16", "1", "144", "16", "range[-141,141]"]}, "Name": "PUSCH_TX_Report_V1"}, "PUSCH_TX_Report_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT16", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT16", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Modulation Order", "UINT16", "1", "14", "2", "0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM"], "3": ["TB Size", "UINT16", "1", "16", "16", "in bytes"], "4": ["Path Loss", "UINT16", "1", "32", "8", "range[0, 255]"], "5": ["HARQ ID", "UINT16", "1", "40", "3", "range[0, 7]"], "6": ["Ack Exists", "UINT16", "1", "43", "1", "0: False, 1: True"], "7": ["CQI Exists", "UINT16", "1", "44", "1", "0: False, 1: True"], "8": ["RI Exists", "UINT16", "1", "45", "1", "0: False, 1: True"], "9": ["Frequency Hopping", "UINT16", "1", "46", "2", "0: Disabled\n1: Inter SF\n2: Intra+Inter\n3: Undefined"], "10": ["Start RB Slot 0", "UINT16", "1", "48", "7", "range[0, 99]"], "11": ["Start RB Slot 1", "UINT16", "1", "55", "7", "range[0, 99]"], "12": ["Reserved", "UINT16", "1", "62", "2", ""], "13": ["DMRS Seq Slot 0", "UINT32", "1", "64", "5", "range[0, 11]"], "14": ["DMRS Seq Slot 1", "UINT32", "1", "69", "5", "range[0, 11]"], "15": ["Number of RBs", "UINT32", "1", "74", "7", "range[1, 100]"], "16": ["Number of Ack Bits", "UINT32", "1", "81", "3", "range[0, 7]"], "17": ["Number of RI Bits", "UINT32", "1", "84", "2", "range[0, 3]"], "18": ["Number of CQI Bits", "UINT32", "1", "86", "8", "range[0, 127]"], "19": ["Reserved", "UINT32", "1", "94", "2", ""], "20": ["ReTx Index", "UINT32", "1", "96", "5", "range[0, 28]"], "21": ["UL Layer", "UINT32", "1", "101", "1", "range[0, 1]"], "22": ["Reserved", "UINT32", "1", "102", "26", ""], "23": ["Power", "INT8", "1", "128", "8", "range[-50, 23]"], "24": ["TPC", "INT8", "1", "136", "8", "range[-6, 8]"], "25": ["Fi", "INT16", "1", "144", "16", "range[-141,141]"]}, "Name": "PUSCH_TX_Report_V2"}}},
+ Public JSON end */
+// Checksum : [09b54f5868949443876c424b23b328a2]
diff --git a/mcu/interface/service/icd/el1/EL1_Physical_Configuration.h b/mcu/interface/service/icd/el1/EL1_Physical_Configuration.h
new file mode 100644
index 0000000..0496f28
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_Physical_Configuration.h
@@ -0,0 +1,130 @@
+// ICD Header Format v3
+// Name : EL1_Physical_Configuration
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7018
+// Version : V2.6
+
+#ifndef _EL1_PHYSICAL_CONFIGURATION_H
+#define _EL1_PHYSICAL_CONFIGURATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PHYSICAL_CONFIGURATION 0x7018
+
+#define ICD_EL1_PHY_CONFIG_V4 4
+
+#define ICD_PHYSICAL_CONFIGURATION_STRUCT_V4_MAX_SIZE 48
+
+typedef struct {
+ kal_uint32 valid_config:1; // 0: Invalid, 1: Valid
+ kal_uint32 periodicity:3; // CSI-RS period. Unit: subframes
+ // 0: 5, 1: 10, 2: 20, 3: 40, 4: 80
+ kal_uint32 offset:7; // range[0, 79]
+ kal_uint32 reserved:21;
+} csi_rs_config_v1;
+
+typedef csi_rs_config_v1 csi_rs_config;
+
+typedef struct {
+ kal_uint32 valid_config:1; // 0: Invalid, 1: Valid
+ kal_uint32 periodicity:3; // SRS period. Unit: ms
+ // 0: 2, 1: 5, 2: 10, 3: 20, 4: 40, 5: 80, 6: 160, 7: 320
+ kal_uint32 offset:9; // range[0, 319]
+ kal_uint32 reserved:19;
+} srs_resource_config_v1;
+
+typedef srs_resource_config_v1 srs_resource_config;
+
+typedef struct {
+ kal_uint32 max_dl_throughput; // Maximum DL throughput based on the current physical
+ // configuration(bits/sec)
+} pdsch_config_v1;
+
+typedef pdsch_config_v1 pdsch_config;
+
+typedef struct {
+ kal_uint32 transmission_mode:4; // range[1, 10]
+ kal_uint32 tx_antenna_selection:2; // 0: Disabled, 1: Closed loop, 2: Open loop
+ kal_uint32 reserved:26;
+} antenna_config_v1;
+
+typedef antenna_config_v1 antenna_config;
+
+typedef struct {
+ kal_uint32 aperiodic_cqi_config_present:1; // 0: Not present, 1: Present
+ kal_uint32 aperiodic_cqi_reporting_mode:3; // 0: mode 1-2
+ // 1: mode 2-0
+ // 2: mode 2-2
+ // 3: mode 3-0
+ // 4: mode 3-1
+ // 5: mode 3-2
+ kal_uint32 periodic_cqi_config_present:1; // 0: Not present, 1: Present
+ kal_uint32 pucch_resource_index:11; // range[0, 1185]
+ kal_uint32 cqi_pmi_config_index:10; // range[0, 1023]
+ kal_uint32 cqi_format:1; // 0: Wideband CQI, 1: Subband CQI
+ kal_uint32 submode:1; // 0: Submode 1, 1: Submode 2
+ kal_uint32 k:3; // range[0, 4]
+ kal_uint32 simultaneous_ack_nack_and_cqi:1; // 0: Disabled, 1: Enabled
+ kal_uint32 ri_config:1; // 0: Disabled, 1: Enabled
+ kal_uint32 ri_config_index:10; // range[0, 1023]
+ kal_uint32 reserved:21;
+} cqi_config_v1;
+
+typedef cqi_config_v1 cqi_config;
+
+typedef struct {
+ kal_uint32 frequency_hopping:1; // 0: Inter, 1: Intra & inter
+ kal_uint32 reserved:31;
+ kal_uint32 max_ul_throughput; // Maximum UL throughput based on the current physical
+ // configuration(bits/sec)
+} pusch_config_v2;
+
+typedef pusch_config_v2 pusch_config;
+
+typedef struct {
+ kal_uint32 root_index:10; // range[0, 837]
+ kal_uint32 highspeed_flag:1; // 0: False, 1: True
+ kal_uint32 frequency_offset:7; // range[0, 94]
+ kal_uint32 number_of_zadoff_sequence:1; // 0: 139 sequences, 1: 839 sequences
+ kal_uint32 cyclic_shift_interval:9; // range[0, 419]
+ kal_uint32 reserved:4;
+} prach_config_v1;
+
+typedef prach_config_v1 prach_config;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 ue_category:5; // range[0, 15]
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 reserved:10;
+ kal_uint32 earfcn:17; // E-UTRA Absolute Radio Frequency Channel Number
+ kal_uint32 downlink_bandwidth:3; // 0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 reserved_1:9;
+ prach_config prach_config;
+ pusch_config pusch_config;
+ cqi_config cqi_config;
+ antenna_config antenna_config;
+ pdsch_config pdsch_config;
+ srs_resource_config srs_resource_config;
+ csi_rs_config csi_rs_config;
+ kal_uint32 acknack_fdm:8;
+ kal_uint32 reserved_2:24;
+} icd_physical_configuration_struct_v4;
+
+typedef icd_physical_configuration_struct_v4 icd_physical_configuration_struct;
+
+
+#endif /* _EL1_PHYSICAL_CONFIGURATION_H */
+
+
+/* Public JSON start
+"EL1_Physical_Configuration": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7018", "Name": "EL1_Physical_Configuration", "Type": "RECORD", "Desc": "This log packet contains the important parameters of physical channel configuration. The log is generated once when the parameters are updated.\n"}, "table": {"Physical_Configuration": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "PHY_Config_Versions", "1", "8", "VAR", ""]}, "Name": "Physical_Configuration"}, "PHY_Config_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "PHY_Config_V1", ""], "1": ["2", "PHY_Config_V2", ""], "2": ["3", "PHY_Config_V3", ""], "3": ["4", "PHY_Config_V4", ""]}, "Name": "PHY_Config_Versions"}, "PHY_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Serving Cell ID", "UINT32", "1", "5", "9", "range[0, 503]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["EARFCN", "UINT32", "1", "24", "16", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Downlink Bandwidth", "UINT32", "1", "40", "3", "0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB"], "5": ["Carrier Index", "UINT32", "1", "43", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "6": ["Reserved", "UINT32", "1", "46", "10", ""], "7": ["PRACH Config", "PRACH_Config_V1", "1", "56", "32", ""], "8": ["PUSCH Config", "PUSCH_Config_V1", "1", "88", "32", ""], "9": ["CQI Config", "CQI_Config_V1", "1", "120", "64", ""], "10": ["Antenna Config", "Antenna_Config_V1", "1", "184", "32", ""]}, "Name": "PHY_Config_V1"}, "PHY_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Serving Cell ID", "UINT32", "1", "5", "9", "range[0, 503]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["EARFCN", "UINT32", "1", "24", "16", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Downlink Bandwidth", "UINT32", "1", "40", "3", "0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB"], "5": ["Carrier Index", "UINT32", "1", "43", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "6": ["Reserved", "UINT32", "1", "46", "10", ""], "7": ["PRACH Config", "PRACH_Config_V1", "1", "56", "32", ""], "8": ["PUSCH Config", "PUSCH_Config_V2", "1", "88", "64", ""], "9": ["CQI Config", "CQI_Config_V1", "1", "152", "64", ""], "10": ["Antenna Config", "Antenna_Config_V1", "1", "216", "32", ""], "11": ["PDSCH Config", "PDSCH_Config_V1", "1", "248", "32", ""], "12": ["SRS Resource Config", "SRS_Resource_Config_V1", "1", "280", "32", ""], "13": ["CSI RS Config", "CSI_RS_Config_V1", "1", "312", "32", ""]}, "Name": "PHY_Config_V2"}, "PHY_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Serving Cell ID", "UINT32", "1", "5", "9", "range[0, 503]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["EARFCN", "UINT32", "1", "24", "17", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Downlink Bandwidth", "UINT32", "1", "41", "3", "0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB"], "5": ["Carrier Index", "UINT32", "1", "44", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "6": ["Reserved", "UINT32", "1", "47", "9", ""], "7": ["PRACH Config", "PRACH_Config_V1", "1", "56", "32", ""], "8": ["PUSCH Config", "PUSCH_Config_V2", "1", "88", "64", ""], "9": ["CQI Config", "CQI_Config_V1", "1", "152", "64", ""], "10": ["Antenna Config", "Antenna_Config_V1", "1", "216", "32", ""], "11": ["PDSCH Config", "PDSCH_Config_V1", "1", "248", "32", ""], "12": ["SRS Resource Config", "SRS_Resource_Config_V1", "1", "280", "32", ""], "13": ["CSI RS Config", "CSI_RS_Config_V1", "1", "312", "32", ""]}, "Name": "PHY_Config_V3"}, "PHY_Config_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Serving Cell ID", "UINT32", "1", "5", "9", "range[0, 503]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["EARFCN", "UINT32", "1", "24", "17", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Downlink Bandwidth", "UINT32", "1", "41", "3", "0: 6RB, 1: 15RB, 2: 25RB, 3: 50RB, 4: 75RB, 5: 100RB"], "5": ["Carrier Index", "UINT32", "1", "44", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "6": ["Reserved", "UINT32", "1", "47", "9", ""], "7": ["PRACH Config", "PRACH_Config_V1", "1", "56", "32", ""], "8": ["PUSCH Config", "PUSCH_Config_V2", "1", "88", "64", ""], "9": ["CQI Config", "CQI_Config_V1", "1", "152", "64", ""], "10": ["Antenna Config", "Antenna_Config_V1", "1", "216", "32", ""], "11": ["PDSCH Config", "PDSCH_Config_V1", "1", "248", "32", ""], "12": ["SRS Resource Config", "SRS_Resource_Config_V1", "1", "280", "32", ""], "13": ["CSI RS Config", "CSI_RS_Config_V1", "1", "312", "32", ""], "14": ["AckNack FDM", "UINT32", "1", "344", "8", ""], "15": ["Reserved", "UINT32", "1", "352", "24", ""]}, "Name": "PHY_Config_V4"}, "PRACH_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Root Index", "UINT32", "1", "0", "10", "range[0, 837]"], "1": ["Highspeed Flag", "UINT32", "1", "10", "1", "0: False, 1: True"], "2": ["Frequency Offset", "UINT32", "1", "11", "7", "range[0, 94]"], "3": ["Number of ZadOff Sequence", "UINT32", "1", "18", "1", "0: 139 sequences, 1: 839 sequences"], "4": ["Cyclic Shift Interval", "UINT32", "1", "19", "9", "range[0, 419]"], "5": ["Reserved", "UINT32", "1", "28", "4", ""]}, "Name": "PRACH_Config_V1"}, "PUSCH_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Frequency Hopping", "UINT32", "1", "0", "1", "0: Inter, 1: Intra & inter"], "1": ["Reserved", "UINT32", "1", "1", "31", ""]}, "Name": "PUSCH_Config_V1"}, "PUSCH_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Frequency Hopping", "UINT32", "1", "0", "1", "0: Inter, 1: Intra & inter"], "1": ["Reserved", "UINT32", "1", "1", "31", ""], "2": ["Max UL Throughput", "UINT32", "1", "32", "32", "Maximum UL throughput based on the current physical\nconfiguration(bits/sec)"]}, "Name": "PUSCH_Config_V2"}, "CQI_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Aperiodic CQI Config Present", "UINT32", "1", "0", "1", "0: Not present, 1: Present"], "1": ["Aperiodic CQI Reporting Mode", "UINT32", "1", "1", "3", "0: mode 1-2\n1: mode 2-0\n2: mode 2-2\n3: mode 3-0\n4: mode 3-1\n5: mode 3-2"], "2": ["Periodic CQI Config Present", "UINT32", "1", "4", "1", "0: Not present, 1: Present"], "3": ["PUCCH Resource Index", "UINT32", "1", "5", "11", "range[0, 1185]"], "4": ["CQI PMI Config Index", "UINT32", "1", "16", "10", "range[0, 1023]"], "5": ["CQI Format", "UINT32", "1", "26", "1", "0: Wideband CQI, 1: Subband CQI"], "6": ["Submode", "UINT32", "1", "27", "1", "0: Submode 1, 1: Submode 2"], "7": ["K", "UINT32", "1", "28", "3", "range[0, 4]"], "8": ["Simultaneous ACK NACK and CQI", "UINT32", "1", "31", "1", "0: Disabled, 1: Enabled"], "9": ["RI Config", "UINT32", "1", "32", "1", "0: Disabled, 1: Enabled"], "10": ["RI Config Index", "UINT32", "1", "33", "10", "range[0, 1023]"], "11": ["Reserved", "UINT32", "1", "43", "21", ""]}, "Name": "CQI_Config_V1"}, "Antenna_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Transmission Mode", "UINT32", "1", "0", "4", "range[1, 10]"], "1": ["Tx Antenna Selection", "UINT32", "1", "4", "2", "0: Disabled, 1: Closed loop, 2: Open loop"], "2": ["Reserved", "UINT32", "1", "6", "26", ""]}, "Name": "Antenna_Config_V1"}, "PDSCH_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Max DL Throughput", "UINT32", "1", "0", "32", "Maximum DL throughput based on the current physical\nconfiguration(bits/sec)"]}, "Name": "PDSCH_Config_V1"}, "SRS_Resource_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid Config", "UINT32", "1", "0", "1", "0: Invalid, 1: Valid"], "1": ["Periodicity", "UINT32", "1", "1", "3", "SRS period. Unit: ms\n0: 2, 1: 5, 2: 10, 3: 20, 4: 40, 5: 80, 6: 160, 7: 320"], "2": ["Offset", "UINT32", "1", "4", "9", "range[0, 319]"], "3": ["Reserved", "UINT32", "1", "13", "19", ""]}, "Name": "SRS_Resource_Config_V1"}, "CSI_RS_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid Config", "UINT32", "1", "0", "1", "0: Invalid, 1: Valid"], "1": ["Periodicity", "UINT32", "1", "1", "3", "CSI-RS period. Unit: subframes\n0: 5, 1: 10, 2: 20, 3: 40, 4: 80"], "2": ["Offset", "UINT32", "1", "4", "7", "range[0, 79]"], "3": ["Reserved", "UINT32", "1", "11", "21", ""]}, "Name": "CSI_RS_Config_V1"}}},
+ Public JSON end */
+// Checksum : [12058ecdae108f567fb49a8d2a56b189]
diff --git a/mcu/interface/service/icd/el1/EL1_RACH_Information.h b/mcu/interface/service/icd/el1/EL1_RACH_Information.h
new file mode 100644
index 0000000..b1113d0
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_RACH_Information.h
@@ -0,0 +1,110 @@
+// ICD Header Format v3
+// Name : EL1_RACH_Information
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7006
+// Version : V2.6
+
+#ifndef _EL1_RACH_INFORMATION_H
+#define _EL1_RACH_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_RACH_INFORMATION 0x7006
+
+#define ICD_EL1_RACH_INFO_CONTENT_V2 2
+
+#define ICD_RACH_INFO_STRUCT_V2_MAX_SIZE 36
+
+typedef struct {
+ kal_uint32 msg4_valid:1; // 0: invalid, 1: valid
+ kal_uint32 contention_decoding_result:1; // 0: fail, 1: success
+ kal_uint32 msg4_sfn:10; // This is the SFN based on the occurrence of msg2, range[0,1023]
+ kal_uint32 msg4_subframe_number:3; // This is the SF based on the occurrence of msg2, range[0,9]
+ kal_uint32 reserved:17;
+} rach_msg4_content_v2;
+
+typedef rach_msg4_content_v2 rach_msg4_content;
+
+typedef struct {
+ kal_uint32 msg3_valid:1; // 0: invalid, 1: valid
+ kal_uint32 mcs:5; // range[0, 31]
+ kal_uint32 modulation_type:2; // 0: QPSK
+ // 1: 16QAM
+ // 2: 64QAM
+ // 3: 256QAM
+ kal_uint32 start_rb:7; // range[0, 110]
+ kal_uint32 number_of_rb:7; // range[0, 110]
+ kal_uint32 tbs_idx:6; // range[0, 33]
+ kal_uint32 csi_request:1; // 0: off, 1: on
+ kal_uint32 ul_delay:1; // 0: off, 1: on
+ kal_uint32 rv:2; // range[0,3]
+ kal_uint16 reserved:6;
+ kal_uint16 msg3_sfn:10; // This is the SFN based on the occurrence of msg3, range[0,1023]
+ kal_uint8 msg3_subframe_number:4; // This is the SF based on the occurrence of msg3, range[0,9]
+ kal_uint8 harq_id:3; // range[0,7]
+ kal_uint8 hopping_flag:1; // 0: hopping disable, 1:hopping enable
+ kal_int8 tpc; // range[-6, 8]
+} rach_msg3_content_v1;
+
+typedef rach_msg3_content_v1 rach_msg3_content;
+
+typedef struct {
+ kal_uint32 msg2_valid:1; // 0: invalid, 1: valid
+ kal_uint32 contention_type:1; // 0: contention-based
+ // 1: non-contention-based
+ kal_uint32 rnti_type:1; // 0: TC-RNTI
+ // 1: C-RNTI
+ kal_uint32 rnti_value:16; // Radio Network Temporary Identifier
+ kal_uint32 timing_advance_valid:1; // 0: invalid, 1: valid
+ kal_uint32 timing_advance_value:11; // range[0,1282]
+ kal_uint32 reserved:1;
+ kal_uint32 riv:14; // Resource Indicator Value
+ kal_uint32 msg2_sfn:10; // This is the SFN based on the occurrence of msg2, range[0,1023]
+ kal_uint32 msg2_subframe_number:3; // This is the SF based on the occurrence of msg2, range[0,9]
+ kal_uint32 reserved_1:5;
+} rach_msg2_content_v2;
+
+typedef rach_msg2_content_v2 rach_msg2_content;
+
+typedef struct {
+ kal_uint32 msg1_valid:1; // 0: invalid, 1: valid
+ kal_uint32 zadoff_sequence_number:10; // range[0, 837]
+ kal_uint32 cyclic_shift:10; // range[0, 839]
+ kal_uint32 duplex_mode:1; // 0: FDD, 1: TDD
+ kal_uint32 high_speed_flag:1; // 0: False, 1: True
+ kal_uint32 reserved:9;
+ kal_int16 prach_tx_power; // PRACH power, range[-128,127]
+ kal_uint16 prach_config:6; // range[0, 63]
+ kal_uint16 preamble_format:3; // range[0, 4]
+ kal_uint16 frequency_offset:7; // range[0, 104]
+ kal_uint16 prach_sfn:10; // This is the SFN based on the occurrence of msg1, range[0,1023]
+ kal_uint16 prach_subframe_number:6; // This is the SF based on the occurrence of msg1, range[0,9]
+ kal_uint16 reserved_1;
+} rach_msg1_content_v2;
+
+typedef rach_msg1_content_v2 rach_msg1_content;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record, range[0,9]
+ kal_uint32 reserved:10;
+ rach_msg1_content rach_msg1;
+ rach_msg2_content rach_msg2;
+ rach_msg3_content rach_msg3;
+ rach_msg4_content rach_msg4;
+} icd_rach_info_struct_v2;
+
+typedef icd_rach_info_struct_v2 icd_rach_info_struct;
+
+
+#endif /* _EL1_RACH_INFORMATION_H */
+
+
+/* Public JSON start
+"EL1_RACH_Information": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7006", "Name": "EL1_RACH_Information", "Type": "RECORD", "Desc": "The log is generated every RACH process.\n"}, "table": {"RACH_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "RACH_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "RACH_Info"}, "RACH_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "RACH_Info_Content_V1", ""], "1": ["2", "RACH_Info_Content_V2", ""]}, "Name": "RACH_Info_Content_Versions"}, "RACH_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["RACH_MSG1", "RACH_MSG1_Content_V1", "1", "24", "64", ""], "4": ["RACH_MSG2", "RACH_MSG2_Content_V1", "1", "88", "64", ""], "5": ["RACH_MSG3", "RACH_MSG3_Content_V1", "1", "152", "64", ""], "6": ["RACH_MSG4", "RACH_MSG4_Content_V1", "1", "216", "32", ""]}, "Name": "RACH_Info_Content_V1"}, "RACH_Info_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["RACH_MSG1", "RACH_MSG1_Content_V2", "1", "24", "96", ""], "4": ["RACH_MSG2", "RACH_MSG2_Content_V2", "1", "120", "64", ""], "5": ["RACH_MSG3", "RACH_MSG3_Content_V1", "1", "184", "64", ""], "6": ["RACH_MSG4", "RACH_MSG4_Content_V2", "1", "248", "32", ""]}, "Name": "RACH_Info_Content_V2"}, "RACH_MSG1_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg1 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["ZadOff Sequence Number", "UINT32", "1", "1", "10", "range[0, 837]"], "2": ["Cyclic Shift", "UINT32", "1", "11", "10", "range[0, 839]"], "3": ["Duplex Mode", "UINT32", "1", "21", "1", "0: FDD, 1: TDD"], "4": ["High Speed Flag", "UINT32", "1", "22", "1", "0: False, 1: True"], "5": ["Reserved", "UINT32", "1", "23", "9", ""], "6": ["PRACH TX power", "INT16", "1", "32", "16", "PRACH power, range[-128,127]"], "7": ["Prach Config", "UINT16", "1", "48", "6", "range[0, 63]"], "8": ["Preamble Format", "UINT16", "1", "54", "3", "range[0, 4]"], "9": ["Frequency Offset", "UINT16", "1", "57", "7", "range[0, 104]"]}, "Name": "RACH_MSG1_Content_V1"}, "RACH_MSG1_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg1 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["ZadOff Sequence Number", "UINT32", "1", "1", "10", "range[0, 837]"], "2": ["Cyclic Shift", "UINT32", "1", "11", "10", "range[0, 839]"], "3": ["Duplex Mode", "UINT32", "1", "21", "1", "0: FDD, 1: TDD"], "4": ["High Speed Flag", "UINT32", "1", "22", "1", "0: False, 1: True"], "5": ["Reserved", "UINT32", "1", "23", "9", ""], "6": ["PRACH TX power", "INT16", "1", "32", "16", "PRACH power, range[-128,127]"], "7": ["Prach Config", "UINT16", "1", "48", "6", "range[0, 63]"], "8": ["Preamble Format", "UINT16", "1", "54", "3", "range[0, 4]"], "9": ["Frequency Offset", "UINT16", "1", "57", "7", "range[0, 104]"], "10": ["Prach SFN", "UINT16", "1", "64", "10", "This is the SFN based on the occurrence of msg1, range[0,1023]"], "11": ["Prach subframe number", "UINT16", "1", "74", "6", "This is the SF based on the occurrence of msg1, range[0,9]"], "12": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "RACH_MSG1_Content_V2"}, "RACH_MSG2_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg2 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Contention Type", "UINT32", "1", "1", "1", "0: contention-based\n1: non-contention-based"], "2": ["RNTI Type", "UINT32", "1", "2", "1", "0: TC-RNTI\n1: C-RNTI"], "3": ["RNTI Value", "UINT32", "1", "3", "16", "Radio Network Temporary Identifier"], "4": ["Timing_Advance_valid", "UINT32", "1", "19", "1", "0: invalid, 1: valid"], "5": ["Timing Advance Value", "UINT32", "1", "20", "11", "range[0,1282]"], "6": ["Reserved", "UINT32", "1", "31", "1", ""], "7": ["RIV", "UINT32", "1", "32", "14", "Resource Indicator Value"], "8": ["Reserved", "UINT32", "1", "46", "18", ""]}, "Name": "RACH_MSG2_Content_V1"}, "RACH_MSG2_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg2 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Contention Type", "UINT32", "1", "1", "1", "0: contention-based\n1: non-contention-based"], "2": ["RNTI Type", "UINT32", "1", "2", "1", "0: TC-RNTI\n1: C-RNTI"], "3": ["RNTI Value", "UINT32", "1", "3", "16", "Radio Network Temporary Identifier"], "4": ["Timing_Advance_valid", "UINT32", "1", "19", "1", "0: invalid, 1: valid"], "5": ["Timing Advance Value", "UINT32", "1", "20", "11", "range[0,1282]"], "6": ["Reserved", "UINT32", "1", "31", "1", ""], "7": ["RIV", "UINT32", "1", "32", "14", "Resource Indicator Value"], "8": ["msg2 SFN", "UINT32", "1", "46", "10", "This is the SFN based on the occurrence of msg2, range[0,1023]"], "9": ["msg2 subframe number", "UINT32", "1", "56", "3", "This is the SF based on the occurrence of msg2, range[0,9]"], "10": ["Reserved", "UINT32", "1", "59", "5", ""]}, "Name": "RACH_MSG2_Content_V2"}, "RACH_MSG3_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg3 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["MCS", "UINT32", "1", "1", "5", "range[0, 31]"], "2": ["Modulation type", "UINT32", "1", "6", "2", "0: QPSK\n1: 16QAM\n2: 64QAM\n3: 256QAM"], "3": ["Start RB", "UINT32", "1", "8", "7", "range[0, 110]"], "4": ["Number of RB", "UINT32", "1", "15", "7", "range[0, 110]"], "5": ["TBS IDX", "UINT32", "1", "22", "6", "range[0, 33]"], "6": ["CSI Request", "UINT32", "1", "28", "1", "0: off, 1: on"], "7": ["UL Delay", "UINT32", "1", "29", "1", "0: off, 1: on"], "8": ["RV", "UINT32", "1", "30", "2", "range[0,3]"], "9": ["Reserved", "UINT16", "1", "32", "6", ""], "10": ["Msg3 SFN", "UINT16", "1", "38", "10", "This is the SFN based on the occurrence of msg3, range[0,1023]"], "11": ["Msg3 subframe number", "UINT8", "1", "48", "4", "This is the SF based on the occurrence of msg3, range[0,9]"], "12": ["HARQ ID", "UINT8", "1", "52", "3", "range[0,7]"], "13": ["Hopping Flag", "UINT8", "1", "55", "1", "0: hopping disable, 1:hopping enable"], "14": ["TPC", "INT8", "1", "56", "8", "range[-6, 8]"]}, "Name": "RACH_MSG3_Content_V1"}, "RACH_MSG4_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg4 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Contention decoding result", "UINT32", "1", "1", "1", "0: fail, 1: success"], "2": ["Reserved", "UINT32", "1", "2", "30", ""]}, "Name": "RACH_MSG4_Content_V1"}, "RACH_MSG4_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg4 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Contention decoding result", "UINT32", "1", "1", "1", "0: fail, 1: success"], "2": ["msg4 SFN", "UINT32", "1", "2", "10", "This is the SFN based on the occurrence of msg2, range[0,1023]"], "3": ["msg4 subframe number", "UINT32", "1", "12", "3", "This is the SF based on the occurrence of msg2, range[0,9]"], "4": ["Reserved", "UINT32", "1", "15", "17", ""]}, "Name": "RACH_MSG4_Content_V2"}}},
+ Public JSON end */
+// Checksum : [ed60f45cf0cd723c6ff3448b9fa26a6f]
diff --git a/mcu/interface/service/icd/el1/EL1_SRS_TX_Information.h b/mcu/interface/service/icd/el1/EL1_SRS_TX_Information.h
new file mode 100644
index 0000000..8835835
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_SRS_TX_Information.h
@@ -0,0 +1,69 @@
+// ICD Header Format v3
+// Name : EL1_SRS_TX_Information
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7009
+// Version : V2.6
+
+#ifndef _EL1_SRS_TX_INFORMATION_H
+#define _EL1_SRS_TX_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_SRS_TX_INFORMATION 0x7009
+
+#define ICD_EL1_SRS_TX_INFO_CONTENT_V1 1
+
+#define MAX_ICD_SRS_TX_INFO_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_SRS_TX_INFO_STRUCT_V1_MAX_SIZE 324
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record, range[0,9]
+ kal_uint32 ue_srs_enable:1; // 0: enable, 1: disable
+ kal_uint32 cell_srs_enable:1; // 0: enable, 1: disable
+ kal_uint32 srs_tx_bw:8; // SRS bandwidth in RB unit, range[0,96]
+ kal_uint32 reserved:8;
+ kal_uint32 start_rb:10; // SRS start RB, range[0,96]
+ kal_uint32 rb_number:10; // SRS RB length, range[0,96]
+ kal_uint32 zc_root:12; // SRS ZC root, range[1,1151]
+ kal_uint32 srs_trigger_type:2; // 0: Type 0
+ // 1: Type 1 DCI0
+ // 2: Type 1 DCI1A2B2C
+ // 3: Type 1 DCI4
+ kal_uint32 cyclic_shift:3; // cyclic shift for SRS, range[0,7]
+ kal_uint32 srs_power_offset:4; // range[0, 15]
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 uppts_type:2; // 0: No SRS, 1: Symbol 0, 2: Symbol 1, 3: Both symbols
+ kal_uint32 reserved_1:13;
+ kal_int16 srs_tx_pwer; // SRS transmission power, range[-128,127]
+ kal_int16 fi; // range[-141, 141]
+} srs_tx_record_v1;
+
+typedef srs_tx_record_v1 srs_tx_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ srs_tx_record srs_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_srs_tx_info_struct_v1;
+
+typedef icd_srs_tx_info_struct_v1 icd_srs_tx_info_struct;
+
+
+#endif /* _EL1_SRS_TX_INFORMATION_H */
+
+
+/* Public JSON start
+"EL1_SRS_TX_Information": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7009", "Name": "EL1_SRS_TX_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"SRS_TX_info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "SRS_TX_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "SRS_TX_info"}, "SRS_TX_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SRS_TX_Info_Content_V1", ""]}, "Name": "SRS_TX_Info_Content_Versions"}, "SRS_TX_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SRS Records": "Number of Records"}, "Name": "SRS_TX_Info_Content_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["SRS Records", "SRS_TX_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "SRS_TX_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record, range[0,9]"], "2": ["UE SRS Enable", "UINT32", "1", "14", "1", "0: enable, 1: disable"], "3": ["Cell SRS Enable", "UINT32", "1", "15", "1", "0: enable, 1: disable"], "4": ["SRS TX BW", "UINT32", "1", "16", "8", "SRS bandwidth in RB unit, range[0,96]"], "5": ["Reserved", "UINT32", "1", "24", "8", ""], "6": ["Start RB", "UINT32", "1", "32", "10", "SRS start RB, range[0,96]"], "7": ["RB Number", "UINT32", "1", "42", "10", "SRS RB length, range[0,96]"], "8": ["ZC Root", "UINT32", "1", "52", "12", "SRS ZC root, range[1,1151]"], "9": ["SRS Trigger Type", "UINT32", "1", "64", "2", "0: Type 0\n1: Type 1 DCI0\n2: Type 1 DCI1A2B2C\n3: Type 1 DCI4"], "10": ["Cyclic Shift", "UINT32", "1", "66", "3", "cyclic shift for SRS, range[0,7]"], "11": ["SRS Power Offset", "UINT32", "1", "69", "4", "range[0, 15]"], "12": ["Path Loss", "UINT32", "1", "73", "8", "range[0, 255]"], "13": ["UpPTS Type", "UINT32", "1", "81", "2", "0: No SRS, 1: Symbol 0, 2: Symbol 1, 3: Both symbols"], "14": ["Reserved", "UINT32", "1", "83", "13", ""], "15": ["SRS TX pwer", "INT16", "1", "96", "16", "SRS transmission power, range[-128,127]"], "16": ["Fi", "INT16", "1", "112", "16", "range[-141, 141]"]}, "Name": "SRS_TX_Record_V1"}}},
+ Public JSON end */
+// Checksum : [6a024cac4a861bc4d615f80230539cd9]
diff --git a/mcu/interface/service/icd/el1/EL1_SSS_Information.h b/mcu/interface/service/icd/el1/EL1_SSS_Information.h
new file mode 100644
index 0000000..97f61f7
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_SSS_Information.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : EL1_SSS_Information
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7005
+// Version : V2.6
+
+#ifndef _EL1_SSS_INFORMATION_H
+#define _EL1_SSS_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_SSS_INFORMATION 0x7005
+
+#define ICD_EL1_SSS_INFO_CONTENT_V1 1
+
+#define ICD_SSS_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // INTERGER(0..1023)
+ // This is the SFN based on
+ // reporting time of this
+ // record.
+ kal_uint32 subframe_number:4; // INTERGER(0..9)
+ // This is the SF based on
+ // reporting time of this
+ // record.
+ kal_uint32 pci:9; // INTERGER(0..503)
+ kal_uint32 reserved:1;
+ kal_int16 peak_value; // SSS peak value in dB.
+ kal_uint16 reserved_1;
+ kal_uint32 earfcn:18; // INTERGER(0..262143)
+ // Center frequency
+ kal_uint32 cp_type:1; // INTERGER(0..1)
+ // Cyclic prefix type:
+ // 0: Normal
+ // 1: Extended
+ kal_uint32 reserved_2:13;
+} icd_sss_info_struct_v1;
+
+typedef icd_sss_info_struct_v1 icd_sss_info_struct;
+
+
+#endif /* _EL1_SSS_INFORMATION_H */
+
+
+/* Public JSON start
+"EL1_SSS_Information": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7005", "Name": "EL1_SSS_Information", "Type": "RECORD", "Desc": "The log is generated once the serving cell is changed.\n"}, "table": {"SSS_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "SSS_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "SSS_Info"}, "SSS_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SSS_Info_Content_V1", ""], "1": ["2", "SSS_Info_Content_V2", ""]}, "Name": "SSS_Info_Content_Versions"}, "SSS_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "INTERGER(0..1023)\nThis is the SFN based on\nreporting time of this\nrecord."], "1": ["Subframe Number", "UINT32", "1", "10", "4", "INTERGER(0..9)\nThis is the SF based on\nreporting time of this\nrecord."], "2": ["PCI", "UINT32", "1", "14", "9", "INTERGER(0..503)"], "3": ["Reserved", "UINT32", "1", "23", "1", ""], "4": ["Peak Value", "INT16", "1", "24", "16", "SSS peak value in dB."], "5": ["Reserved", "UINT16", "1", "40", "16", ""], "6": ["Earfcn", "UINT32", "1", "56", "18", "INTERGER(0..262143)\nCenter frequency"], "7": ["CP Type", "UINT32", "1", "74", "1", "INTERGER(0..1)\nCyclic prefix type:\n0: Normal\n1: Extended"], "8": ["Reserved", "UINT32", "1", "75", "13", ""]}, "Name": "SSS_Info_Content_V1"}, "SSS_Info_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "INTERGER(0..1023)\nThis is the SFN based on\nreporting time of this\nrecord."], "1": ["Subframe Number", "UINT32", "1", "10", "4", "INTERGER(0..9)\nThis is the SF based on\nreporting time of this\nrecord."], "2": ["PCI", "UINT32", "1", "14", "9", "INTERGER(0..503)"], "3": ["Reserved", "UINT32", "1", "23", "1", ""], "4": ["Peak Value", "INT16", "1", "24", "16", "SSS peak value in dB."], "5": ["Reserved", "UINT16", "1", "40", "16", ""], "6": ["Earfcn", "UINT32", "1", "56", "18", "INTERGER(0..262143)\nCenter frequency"], "7": ["CP Type", "UINT32", "1", "74", "1", "INTERGER(0..1)\nCyclic prefix type:\n0: Normal\n1: Extended"], "8": ["Reserved", "UINT32", "1", "75", "13", ""], "9": ["XoValue", "INT32", "1", "88", "32", "Freq bin value in PPM"]}, "Name": "SSS_Info_Content_V2"}}},
+ Public JSON end */
+// Checksum : [8f9f2f35510579f8501c6d569d17c078]
diff --git a/mcu/interface/service/icd/el1/EL1_Serving_Cell_Measurement.h b/mcu/interface/service/icd/el1/EL1_Serving_Cell_Measurement.h
new file mode 100644
index 0000000..a13d469
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_Serving_Cell_Measurement.h
@@ -0,0 +1,87 @@
+// ICD Header Format v3
+// Name : EL1_Serving_Cell_Measurement
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7001
+// Version : V2.6
+
+#ifndef _EL1_SERVING_CELL_MEASUREMENT_H
+#define _EL1_SERVING_CELL_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_SERVING_CELL_MEASUREMENT 0x7001
+
+#define ICD_EL1_SERVING_CELL_MEASUREMENT_INFO_V3 3
+
+#define MAX_ICD_SERVING_CELL_MEASUREMENT_STRUCT_V3_NUMBER_OF_RECORDS 20
+
+#define ICD_SERVING_CELL_MEASUREMENT_STRUCT_V3_MAX_SIZE 648
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the system frame number based on the occurrence of serving cell measurement.
+ kal_uint32 subframe:4; // This is the sub-frame number based on the occurrence of serving cell measurement.
+ kal_uint32 is_rrc_idle_mode:1; // 0: Connected mode, 1: Idle mode
+ kal_uint32 priority:3; // Cell reselection priority, range[0, 7]
+ kal_uint32 ant_mask_0:3; // Number to indicate which antenna measurement result is applied to RX path 0.
+ // 0: antenna 0
+ // 1: antenna 1
+ // 2: antenna 2
+ // 3: antenna 3
+ // 4: None
+ kal_uint32 ant_mask_1:3; // Number to indicate which antenna measurement result is applied to RX path 1.
+ // 0: antenna 0
+ // 1: antenna 1
+ // 2: antenna 2
+ // 3: antenna 3
+ // 4: None
+ kal_uint32 cell_measurement_bw:3; // 0:1.4, 1:3, 2:5, 3:10, 4:15, 5:20 MHz
+ kal_uint32 reserved:5;
+ kal_int16 rsrp; // Maximum RSRP value of two paths RSRP result
+ kal_int16 rsrp_rx0; // RX path 0 RSRP value in dbm, range[-150, -30]
+ kal_int16 rsrp_rx1; // RX path 1 RSRP value in dbm, range[-150, -30]
+ kal_int8 rsrq; // Maximum RSRQ value of two paths RSRQ result
+ kal_int8 rsrq_rx0; // RX path 0 RSRQ value in db, range[-40, 10]
+ kal_int8 rsrq_rx1; // RX path 1 RSRQ value in db, range[-40, 10]
+ kal_int8 reserved_1;
+ kal_int16 rssi; // Maximum RSSI value of two paths RSSI result
+ kal_int16 rssi_rx0; // RX path 0 RSSI value in dbm, range[-150, -10]
+ kal_int16 rssi_rx1; // RX path 1 RSSI value in dbm, range[-150, -10]
+ kal_int8 sinr; // Maximum SINR value of two paths SINR result
+ kal_int8 sinr_rx0; // RX path 0 SINR value in db, range[-20, 40]
+ kal_int8 sinr_rx1; // RX path 1 SINR value in db, range[-20, 40]
+ kal_int8 reserved_2;
+ kal_int16 agc_rssi_rx0; // RX path 0 AGC RSSI value in db, range[-150, -30]
+ kal_int16 agc_rssi_rx1; // RX path 1 AGC RSSI value in db, range[-150, -30]
+ kal_int16 agc_rssi_rx2; // RX path 2 AGC RSSI value in db, range[-150, -30]
+ kal_int16 agc_rssi_rx3; // RX path 3 AGC RSSI value in db, range[-150, -30]
+} serving_cell_measurement_record_v3;
+
+typedef serving_cell_measurement_record_v3 serving_cell_measurement_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:9; // Physical Cell Identity
+ kal_uint32 carrier_type:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 reserved:12;
+ kal_uint32 earfcn:17; // E-UTRA Absolute Radio Frequency Channel Number
+ kal_uint32 reserved_1:10;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ serving_cell_measurement_record serving_cell_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_serving_cell_measurement_struct_v3;
+
+typedef icd_serving_cell_measurement_struct_v3 icd_serving_cell_measurement_struct;
+
+
+#endif /* _EL1_SERVING_CELL_MEASUREMENT_H */
+
+
+/* Public JSON start
+"EL1_Serving_Cell_Measurement": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7001", "Name": "EL1_Serving_Cell_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"Serving_Cell_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "Serving_Cell_Measurement_Info_Versions", "1", "8", "VAR", "Version of Serving_Cell_Measurement_Info"]}, "Name": "Serving_Cell_Measurement"}, "Serving_Cell_Measurement_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "Serving_Cell_Measurement_Info_V1", "Information of serving cell measurement result (version 1)"], "1": ["2", "Serving_Cell_Measurement_Info_V2", "Information of serving cell measurement result (version 2)"], "2": ["3", "Serving_Cell_Measurement_Info_V3", "Information of serving cell measurement result (version 3)"]}, "Name": "Serving_Cell_Measurement_Info_Versions"}, "Serving_Cell_Measurement_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell Measurement Records": "Number of Records"}, "Name": "Serving_Cell_Measurement_Info_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "9", "Physical Cell Identity"], "1": ["Carrier type", "UINT32", "1", "9", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "12", ""], "3": ["EARFCN", "UINT32", "1", "24", "16", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Reserved", "UINT32", "1", "40", "11", ""], "5": ["Number of Records", "UINT32", "1", "51", "5", "range[0, 20]"], "6": ["Serving Cell Measurement Records", "Serving_Cell_Measurement_Record_V1", "N", "56", "VAR", "N := Number of Records"]}}, "Serving_Cell_Measurement_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the occurrence of serving cell measurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the occurrence of serving cell measurement."], "2": ["Is RRC Idle Mode", "UINT32", "1", "14", "1", "0: Connected mode, 1: Idle mode"], "3": ["priority", "UINT32", "1", "15", "3", "Cell reselection priority, range[0, 7]"], "4": ["Ant mask 0", "UINT32", "1", "18", "3", "Number to indicate which antenna measurement result is applied to RX path 0.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "5": ["Ant mask 1", "UINT32", "1", "21", "3", "Number to indicate which antenna measurement result is applied to RX path 1.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "6": ["Cell measurement BW", "UINT32", "1", "24", "3", "0:1.4, 1:3, 2:5, 3:10, 4:15, 5:20 MHz"], "7": ["Reserved", "UINT32", "1", "27", "5", ""], "8": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "9": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm, range[-150, -30]"], "10": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm, range[-150, -30]"], "11": ["RSRQ", "INT8", "1", "80", "8", "Maximum RSRQ value of two paths RSRQ result"], "12": ["RSRQ RX0", "INT8", "1", "88", "8", "RX path 0 RSRQ value in db, range[-40, 10]"], "13": ["RSRQ RX1", "INT8", "1", "96", "8", "RX path 1 RSRQ value in db, range[-40, 10]"], "14": ["Reserved", "INT8", "1", "104", "8", ""], "15": ["RSSI", "INT16", "1", "112", "16", "Maximum RSSI value of two paths RSSI result"], "16": ["RSSI Rx0", "INT16", "1", "128", "16", "RX path 0 RSSI value in dbm, range[-150, -10]"], "17": ["RSSI RX1", "INT16", "1", "144", "16", "RX path 1 RSSI value in dbm, range[-150, -10]"], "18": ["SINR", "INT8", "1", "160", "8", "Maximum SINR value of two paths SINR result"], "19": ["SINR RX0", "INT8", "1", "168", "8", "RX path 0 SINR value in db, range[-20, 40]"], "20": ["SINR RX1", "INT8", "1", "176", "8", "RX path 1 SINR value in db, range[-20, 40]"], "21": ["Reserved", "INT8", "1", "184", "8", ""]}, "Name": "Serving_Cell_Measurement_Record_V1"}, "Serving_Cell_Measurement_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell Measurement Records": "Number of Records"}, "Name": "Serving_Cell_Measurement_Info_V2", "Data": {"0": ["PCI", "UINT32", "1", "0", "9", "Physical Cell Identity"], "1": ["Carrier type", "UINT32", "1", "9", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "12", ""], "3": ["EARFCN", "UINT32", "1", "24", "16", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Reserved", "UINT32", "1", "40", "11", ""], "5": ["Number of Records", "UINT32", "1", "51", "5", "range[0, 20]"], "6": ["Serving Cell Measurement Records", "Serving_Cell_Measurement_Record_V2", "N", "56", "VAR", "N := Number of Records"]}}, "Serving_Cell_Measurement_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the occurrence of serving cell measurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the occurrence of serving cell measurement."], "2": ["Is RRC Idle Mode", "UINT32", "1", "14", "1", "0: Connected mode, 1: Idle mode"], "3": ["priority", "UINT32", "1", "15", "3", "Cell reselection priority, range[0, 7]"], "4": ["Ant mask 0", "UINT32", "1", "18", "3", "Number to indicate which antenna measurement result is applied to RX path 0.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "5": ["Ant mask 1", "UINT32", "1", "21", "3", "Number to indicate which antenna measurement result is applied to RX path 1.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "6": ["Cell measurement BW", "UINT32", "1", "24", "3", "0:1.4, 1:3, 2:5, 3:10, 4:15, 5:20 MHz"], "7": ["Reserved", "UINT32", "1", "27", "5", ""], "8": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "9": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm, range[-150, -30]"], "10": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm, range[-150, -30]"], "11": ["RSRQ", "INT8", "1", "80", "8", "Maximum RSRQ value of two paths RSRQ result"], "12": ["RSRQ RX0", "INT8", "1", "88", "8", "RX path 0 RSRQ value in db, range[-40, 10]"], "13": ["RSRQ RX1", "INT8", "1", "96", "8", "RX path 1 RSRQ value in db, range[-40, 10]"], "14": ["Reserved", "INT8", "1", "104", "8", ""], "15": ["RSSI", "INT16", "1", "112", "16", "Maximum RSSI value of two paths RSSI result"], "16": ["RSSI Rx0", "INT16", "1", "128", "16", "RX path 0 RSSI value in dbm, range[-150, -10]"], "17": ["RSSI RX1", "INT16", "1", "144", "16", "RX path 1 RSSI value in dbm, range[-150, -10]"], "18": ["SINR", "INT8", "1", "160", "8", "Maximum SINR value of two paths SINR result"], "19": ["SINR RX0", "INT8", "1", "168", "8", "RX path 0 SINR value in db, range[-20, 40]"], "20": ["SINR RX1", "INT8", "1", "176", "8", "RX path 1 SINR value in db, range[-20, 40]"], "21": ["Reserved", "INT8", "1", "184", "8", ""], "22": ["AGC RSSI Rx0", "INT16", "1", "192", "16", "RX path 0 AGC RSSI value in db, range[-150, -30]"], "23": ["AGC RSSI Rx1", "INT16", "1", "208", "16", "RX path 1 AGC RSSI value in db, range[-150, -30]"], "24": ["AGC RSSI Rx2", "INT16", "1", "224", "16", "RX path 2 AGC RSSI value in db, range[-150, -30]"], "25": ["AGC RSSI Rx3", "INT16", "1", "240", "16", "RX path 3 AGC RSSI value in db, range[-150, -30]"]}, "Name": "Serving_Cell_Measurement_Record_V2"}, "Serving_Cell_Measurement_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell Measurement Records": "Number of Records"}, "Name": "Serving_Cell_Measurement_Info_V3", "Data": {"0": ["PCI", "UINT32", "1", "0", "9", "Physical Cell Identity"], "1": ["Carrier type", "UINT32", "1", "9", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "2": ["Reserved", "UINT32", "1", "12", "12", ""], "3": ["EARFCN", "UINT32", "1", "24", "17", "E-UTRA Absolute Radio Frequency Channel Number"], "4": ["Reserved", "UINT32", "1", "41", "10", ""], "5": ["Number of Records", "UINT32", "1", "51", "5", "range[0, 20]"], "6": ["Serving Cell Measurement Records", "Serving_Cell_Measurement_Record_V3", "N", "56", "VAR", "N := Number of Records"]}}, "Serving_Cell_Measurement_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the occurrence of serving cell measurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the occurrence of serving cell measurement."], "2": ["Is RRC Idle Mode", "UINT32", "1", "14", "1", "0: Connected mode, 1: Idle mode"], "3": ["priority", "UINT32", "1", "15", "3", "Cell reselection priority, range[0, 7]"], "4": ["Ant mask 0", "UINT32", "1", "18", "3", "Number to indicate which antenna measurement result is applied to RX path 0.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "5": ["Ant mask 1", "UINT32", "1", "21", "3", "Number to indicate which antenna measurement result is applied to RX path 1.\n0: antenna 0\n1: antenna 1\n2: antenna 2\n3: antenna 3\n4: None"], "6": ["Cell measurement BW", "UINT32", "1", "24", "3", "0:1.4, 1:3, 2:5, 3:10, 4:15, 5:20 MHz"], "7": ["Reserved", "UINT32", "1", "27", "5", ""], "8": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "9": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm, range[-150, -30]"], "10": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm, range[-150, -30]"], "11": ["RSRQ", "INT8", "1", "80", "8", "Maximum RSRQ value of two paths RSRQ result"], "12": ["RSRQ RX0", "INT8", "1", "88", "8", "RX path 0 RSRQ value in db, range[-40, 10]"], "13": ["RSRQ RX1", "INT8", "1", "96", "8", "RX path 1 RSRQ value in db, range[-40, 10]"], "14": ["Reserved", "INT8", "1", "104", "8", ""], "15": ["RSSI", "INT16", "1", "112", "16", "Maximum RSSI value of two paths RSSI result"], "16": ["RSSI Rx0", "INT16", "1", "128", "16", "RX path 0 RSSI value in dbm, range[-150, -10]"], "17": ["RSSI RX1", "INT16", "1", "144", "16", "RX path 1 RSSI value in dbm, range[-150, -10]"], "18": ["SINR", "INT8", "1", "160", "8", "Maximum SINR value of two paths SINR result"], "19": ["SINR RX0", "INT8", "1", "168", "8", "RX path 0 SINR value in db, range[-20, 40]"], "20": ["SINR RX1", "INT8", "1", "176", "8", "RX path 1 SINR value in db, range[-20, 40]"], "21": ["Reserved", "INT8", "1", "184", "8", ""], "22": ["AGC RSSI Rx0", "INT16", "1", "192", "16", "RX path 0 AGC RSSI value in db, range[-150, -30]"], "23": ["AGC RSSI Rx1", "INT16", "1", "208", "16", "RX path 1 AGC RSSI value in db, range[-150, -30]"], "24": ["AGC RSSI Rx2", "INT16", "1", "224", "16", "RX path 2 AGC RSSI value in db, range[-150, -30]"], "25": ["AGC RSSI Rx3", "INT16", "1", "240", "16", "RX path 3 AGC RSSI value in db, range[-150, -30]"]}, "Name": "Serving_Cell_Measurement_Record_V3"}}},
+ Public JSON end */
+// Checksum : [544323f891f6e42416b039e1fc2dc6c8]
diff --git a/mcu/interface/service/icd/el1/EL1_TAS_Information.h b/mcu/interface/service/icd/el1/EL1_TAS_Information.h
new file mode 100644
index 0000000..84fad25
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_TAS_Information.h
@@ -0,0 +1,58 @@
+// ICD Header Format v3
+// Name : EL1_TAS_Information
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7017
+// Version : V2.6
+
+#ifndef _EL1_TAS_INFORMATION_H
+#define _EL1_TAS_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_TAS_INFORMATION 0x7017
+
+#define ICD_EL1_TASINFO_V2 2
+
+#define ICD_TAS_INFORMATION_STRUCT_V2_MAX_SIZE 16
+
+typedef struct {
+ kal_uint16 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint16 tx_antenna:4; // Phy Antenna Index. range[1, 12]
+ kal_uint16 main_antenna_swapped:1; // 0: false, 1: true
+ kal_uint16 reserved:5;
+ kal_uint16 number_of_antenna_rsrp:3; // range[1, 5]
+ // This number determines the valid number of RSRP values listed below
+ kal_int16 rsrp0; // normal range is -140~-40, -255 indicates invalid
+ kal_int16 rsrp1; // normal range is -140~-40, -255 indicates invalid
+ kal_int16 rsrp2; // normal range is -140~-40, -255 indicates invalid
+ kal_int16 rsrp3; // normal range is -140~-40, -255 indicates invalid
+ kal_int16 rsrp4; // normal range is -140~-40, -255 indicates invalid
+} tasantennainfo_v2;
+
+typedef tasantennainfo_v2 tasantennainfo;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 status:1; // 0: disabled, 1: enabled
+ kal_uint32 force_tx_antenna_status:1; // 0: disabled, 1: enabled
+ kal_uint32 force_tx_antenna_index:4; // range[1, 12]
+ kal_uint32 reserved:18;
+ tasantennainfo antenna_infos;
+} icd_tas_information_struct_v2;
+
+typedef icd_tas_information_struct_v2 icd_tas_information_struct;
+
+
+#endif /* _EL1_TAS_INFORMATION_H */
+
+
+/* Public JSON start
+"EL1_TAS_Information": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7017", "Name": "EL1_TAS_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms.\n"}, "table": {"TAS_Information": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "TASInfo_Versions", "8", "8", "VAR", ""]}, "Name": "TAS_Information"}, "TASInfo_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "TASInfo_V1", ""], "1": ["2", "TASInfo_V2", ""]}, "Name": "TASInfo_Versions"}, "TASInfo_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "1", "0: disabled, 1: enabled"], "1": ["Force Tx Antenna Status", "UINT32", "1", "1", "1", "0: disabled, 1: enabled"], "2": ["Force Tx Antenna Index", "UINT32", "1", "2", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "5", "19", ""], "4": ["Antenna Infos", "TASAntennaInfo_V1", "1", "24", "96", ""]}, "Name": "TASInfo_V1"}, "TASAntennaInfo_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Serving Cell Index", "UINT16", "1", "0", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "1": ["Tx Antenna", "UINT16", "1", "3", "3", "0: Main\n1: Div1\n2: Main\n3: Div2\n4: Div3"], "2": ["Main Antenna Swapped", "UINT16", "1", "6", "1", "0: false, 1: true"], "3": ["Reserved", "UINT16", "1", "7", "6", ""], "4": ["Number of Antenna RSRP", "UINT16", "1", "13", "3", "range[1, 5]\nThis number determines the valid number of RSRP values listed below"], "5": ["RSRP0", "INT16", "1", "16", "16", "normal range is -140~-40, -255 indicates invalid"], "6": ["RSRP1", "INT16", "1", "32", "16", "normal range is -140~-40, -255 indicates invalid"], "7": ["RSRP2", "INT16", "1", "48", "16", "normal range is -140~-40, -255 indicates invalid"], "8": ["RSRP3", "INT16", "1", "64", "16", "normal range is -140~-40, -255 indicates invalid"], "9": ["RSRP4", "INT16", "1", "80", "16", "normal range is -140~-40, -255 indicates invalid"]}, "Name": "TASAntennaInfo_V1"}, "TASInfo_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "1", "0: disabled, 1: enabled"], "1": ["Force Tx Antenna Status", "UINT32", "1", "1", "1", "0: disabled, 1: enabled"], "2": ["Force Tx Antenna Index", "UINT32", "1", "2", "4", "range[1, 12]"], "3": ["Reserved", "UINT32", "1", "6", "18", ""], "4": ["Antenna Infos", "TASAntennaInfo_V2", "1", "24", "96", ""]}, "Name": "TASInfo_V2"}, "TASAntennaInfo_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Serving Cell Index", "UINT16", "1", "0", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "1": ["Tx Antenna", "UINT16", "1", "3", "4", "Phy Antenna Index. range[1, 12]"], "2": ["Main Antenna Swapped", "UINT16", "1", "7", "1", "0: false, 1: true"], "3": ["Reserved", "UINT16", "1", "8", "5", ""], "4": ["Number of Antenna RSRP", "UINT16", "1", "13", "3", "range[1, 5]\nThis number determines the valid number of RSRP values listed below"], "5": ["RSRP0", "INT16", "1", "16", "16", "normal range is -140~-40, -255 indicates invalid"], "6": ["RSRP1", "INT16", "1", "32", "16", "normal range is -140~-40, -255 indicates invalid"], "7": ["RSRP2", "INT16", "1", "48", "16", "normal range is -140~-40, -255 indicates invalid"], "8": ["RSRP3", "INT16", "1", "64", "16", "normal range is -140~-40, -255 indicates invalid"], "9": ["RSRP4", "INT16", "1", "80", "16", "normal range is -140~-40, -255 indicates invalid"]}, "Name": "TASAntennaInfo_V2"}}},
+ Public JSON end */
+// Checksum : [024a3b389996f2e2c034ecc80925f20d]
diff --git a/mcu/interface/service/icd/el1/EL1_TXPowerBackOff_Information.h b/mcu/interface/service/icd/el1/EL1_TXPowerBackOff_Information.h
new file mode 100644
index 0000000..d05c205
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_TXPowerBackOff_Information.h
@@ -0,0 +1,24 @@
+// ICD_EL1_TXPOWERBACKOFF_INFORMATION Definition
+// RECORD Code: 0x300F
+
+#ifndef _EL1_TXPOWERBACKOFF_INFORMATION_H
+#define _EL1_TXPOWERBACKOFF_INFORMATION_H
+
+#include "icd_codes.h"
+
+#define ICD_EL1_L1_TX_POWERBACKOFF_INFO_CONTENT_V1 1
+
+#define ICD_L1_TX_POWERBACKOFF_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record, range[0,9]
+ kal_uint32 reserved:10;
+ kal_uint32 tx_power_backoff:16; // TX power backoff gain, bit0~bit10: mantissa of backoff gain, bit11~bit15: exponent of backoff gain
+ kal_uint32 reserved_1:16;
+} icd_l1_tx_powerbackoff_info_struct_v1;
+
+
+#endif /* _EL1_TXPOWERBACKOFF_INFORMATION_H */
+
diff --git a/mcu/interface/service/icd/el1/EL1_TX_PDpower_Report.h b/mcu/interface/service/icd/el1/EL1_TX_PDpower_Report.h
new file mode 100644
index 0000000..7386a64
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_TX_PDpower_Report.h
@@ -0,0 +1,54 @@
+// ICD Header Format v3
+// Name : EL1_TX_PDpower_Report
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7019
+// Version : V2.4-85-gd565222
+
+#ifndef _EL1_TX_PDPOWER_REPORT_H
+#define _EL1_TX_PDPOWER_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_TX_PDPOWER_REPORT 0x7019
+
+#define ICD_EL1_TX_PDPOWER_REPORT_V2 2
+
+#define ICD_TX_PDPOWER_REPORT_STRUCT_V2_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
+ // Range [0,1023].
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record.
+ // Range [0,9].
+ kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_int16 target_pwr; // range [-50, 23]
+ // Target power for the Uplink Tx record for within 100 ms
+ kal_int16 pd_pwr; // range [-50, 23]
+ // PD power for the Uplink Tx record for within 100 ms
+ kal_uint32 rf_power_excess_count[3]; // range [0, 800]
+ // TPC RF power Exces Count for the Uplink Tx record for within 100 ms
+ kal_uint32 noise_detect_count:5; // range [0, 20]
+ // MML1 Noise detect count for the Uplink Tx record for within 100 ms
+ kal_uint32 reserved_1:27;
+ kal_int16 rf_pwr; // range [-50, 23]
+ // RF power for the Uplink Tx record for within 100 ms
+ kal_uint16 reserved_2;
+} icd_tx_pdpower_report_struct_v2;
+
+typedef icd_tx_pdpower_report_struct_v2 icd_tx_pdpower_report_struct;
+
+
+#endif /* _EL1_TX_PDPOWER_REPORT_H */
+
+
+/* Public JSON start
+"EL1_TX_PDpower_Report": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7019", "Name": "EL1_TX_PDpower_Report", "Type": "RECORD", "Desc": "This log is generated every 100 ms\n"}, "table": {"TX_PDpower_Report": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "TX_PDpower_Report_Versions", "1", "8", "VAR", ""]}, "Name": "TX_PDpower_Report"}, "TX_PDpower_Report_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "TX_PDpower_Report_V1", ""], "1": ["2", "TX_PDpower_Report_V2", ""]}, "Name": "TX_PDpower_Report_Versions"}, "TX_PDpower_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["Target Pwr", "INT16", "1", "24", "16", "range [-50, 23]\nTarget power for the Uplink Tx record for within 100 ms"], "5": ["PD Pwr", "INT16", "1", "40", "16", "range [-50, 23]\nPD power for the Uplink Tx record for within 100 ms"]}, "Name": "TX_PDpower_Report_V1"}, "TX_PDpower_Report_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["Target Pwr", "INT16", "1", "24", "16", "range [-50, 23]\nTarget power for the Uplink Tx record for within 100 ms"], "5": ["PD Pwr", "INT16", "1", "40", "16", "range [-50, 23]\nPD power for the Uplink Tx record for within 100 ms"], "6": ["rf power excess count", "UINT32", "3", "56", "96", "range [0, 800]\nTPC RF power Exces Count for the Uplink Tx record for within 100 ms"], "7": ["noise detect count", "UINT32", "1", "152", "5", "range [0, 20]\nMML1 Noise detect count for the Uplink Tx record for within 100 ms"], "8": ["Reserved", "UINT32", "1", "157", "27", ""], "9": ["Rf Pwr", "INT16", "1", "184", "16", "range [-50, 23]\nRF power for the Uplink Tx record for within 100 ms"], "10": ["Reserved", "UINT16", "1", "200", "16", ""]}, "Name": "TX_PDpower_Report_V2"}}},
+ Public JSON end */
+// Checksum : [4cc620f2f16e920cded8f59fcb0d5a0c]
diff --git a/mcu/interface/service/icd/el1/EL1_UL_Throughput.h b/mcu/interface/service/icd/el1/EL1_UL_Throughput.h
new file mode 100644
index 0000000..4b1b8dc
--- /dev/null
+++ b/mcu/interface/service/icd/el1/EL1_UL_Throughput.h
@@ -0,0 +1,48 @@
+// ICD Header Format v3
+// Name : EL1_UL_Throughput
+// Category : LTE
+// Layer : EL1
+// Type : RECORD
+// Code : 0x7003
+// Version : V2.6
+
+#ifndef _EL1_UL_THROUGHPUT_H
+#define _EL1_UL_THROUGHPUT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_UL_THROUGHPUT 0x7003
+
+#define ICD_EL1_UL_THROUGHPUT_CONTENT_V3 3
+
+#define ICD_UL_THROUGHPUT_STRUCT_V3_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record, range[0,9]
+ kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,
+ // 6:SCC6, 7:SCC7
+ kal_uint32 total_cc_number:4; // Total UL CC Number
+ kal_uint32 reserved:3;
+ kal_uint32 ul_throughput; // Uplink throughput(bps)
+ kal_uint32 ul_bler:7; // The uplink BLER within 1000ms, range[0,100]
+ kal_uint32 ul_ibler:7; // The uplink iBLER within 1000ms, range[0,100]
+ // iBLER: Initial Block Error Rate. The ratio of data blocks with
+ // initial transmission errors to all initial transmission data blocks.
+ kal_uint32 reserved_1:18;
+} icd_ul_throughput_struct_v3;
+
+typedef icd_ul_throughput_struct_v3 icd_ul_throughput_struct;
+
+
+#endif /* _EL1_UL_THROUGHPUT_H */
+
+
+/* Public JSON start
+"EL1_UL_Throughput": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7003", "Name": "EL1_UL_Throughput", "Type": "RECORD", "Desc": "The log is generated every 1000 ms.\n"}, "table": {"UL_Throughput": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "UL_Throughput_Content_Versions", "1", "8", "VAR", ""]}, "Name": "UL_Throughput"}, "UL_Throughput_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "UL_Throughput_Content_V1", ""], "1": ["2", "UL_Throughput_Content_V2", ""], "2": ["3", "UL_Throughput_Content_V3", ""]}, "Name": "UL_Throughput_Content_Versions"}, "UL_Throughput_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["UL throughput", "UINT32", "1", "24", "32", "Uplink throughput(bps)"]}, "Name": "UL_Throughput_Content_V1"}, "UL_Throughput_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["Total CC Number", "UINT32", "1", "17", "4", "Total UL CC Number"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["UL throughput", "UINT32", "1", "24", "32", "Uplink throughput(bps)"]}, "Name": "UL_Throughput_Content_V2"}, "UL_Throughput_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Serving Cell Index", "UINT32", "1", "14", "3", "Indicates this metric is reporting on which serving cell\n(not scell index configured by RRC). range[0, 7],\nValues: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5,\n6:SCC6, 7:SCC7"], "3": ["Total CC Number", "UINT32", "1", "17", "4", "Total UL CC Number"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["UL throughput", "UINT32", "1", "24", "32", "Uplink throughput(bps)"], "6": ["UL BLER", "UINT32", "1", "56", "7", "The uplink BLER within 1000ms, range[0,100]"], "7": ["UL iBLER", "UINT32", "1", "63", "7", "The uplink iBLER within 1000ms, range[0,100]\niBLER: Initial Block Error Rate. The ratio of data blocks with\ninitial transmission errors to all initial transmission data blocks."], "8": ["Reserved", "UINT32", "1", "70", "18", ""]}, "Name": "UL_Throughput_Content_V3"}}},
+ Public JSON end */
+// Checksum : [2625226889a568adb66f2a320e685a11]
diff --git a/mcu/interface/service/icd/el2/CM_IP_DL_STATS.h b/mcu/interface/service/icd/el2/CM_IP_DL_STATS.h
new file mode 100644
index 0000000..6e11845
--- /dev/null
+++ b/mcu/interface/service/icd/el2/CM_IP_DL_STATS.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : CM_IP_DL_STATS
+// Category : LTE
+// Layer : CM
+// Type : RECORD
+// Code : 0x7200
+// Version : V2.4-55-g2a86490
+
+#ifndef _CM_IP_DL_STATS_H
+#define _CM_IP_DL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_IP_DL_STATS 0x7200
+
+#define ICD_CM_CM_IP_DL_STATS_V1 1
+
+#define ICD_CM_IP_DL_STATS_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 rx_packet_num; // Total number of IP packets
+ // received among 2/3/4/5G
+ kal_uint32 max_packet_byte; // Maximum bytes of received
+ // IP packets among 2/3/4/5G
+} icd_cm_ip_dl_stats_struct_v1;
+
+typedef icd_cm_ip_dl_stats_struct_v1 icd_cm_ip_dl_stats_struct;
+
+
+#endif /* _CM_IP_DL_STATS_H */
+
+
+/* Public JSON start
+"CM_IP_DL_STATS": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7200", "Name": "CM_IP_DL_STATS", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"CM_IP_DL_STATS": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "CM_IP_DL_STATS_Versions", "1", "8", "VAR", ""]}, "Name": "CM_IP_DL_STATS"}, "CM_IP_DL_STATS_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_IP_DL_STATS_V1", ""]}, "Name": "CM_IP_DL_STATS_Versions"}, "CM_IP_DL_STATS_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["RX PACKET NUM", "UINT32", "1", "24", "32", "Total number of IP packets\nreceived among 2/3/4/5G"], "2": ["MAX PACKET BYTE", "UINT32", "1", "56", "32", "Maximum bytes of received\nIP packets among 2/3/4/5G"]}, "Name": "CM_IP_DL_STATS_V1"}}},
+ Public JSON end */
+// Checksum : [6b3876750f495154b683035dd66394e3]
diff --git a/mcu/interface/service/icd/el2/CM_IP_UL_STATS.h b/mcu/interface/service/icd/el2/CM_IP_UL_STATS.h
new file mode 100644
index 0000000..123c1f9
--- /dev/null
+++ b/mcu/interface/service/icd/el2/CM_IP_UL_STATS.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : CM_IP_UL_STATS
+// Category : LTE
+// Layer : CM
+// Type : RECORD
+// Code : 0x7201
+// Version : V2.4-55-g2a86490
+
+#ifndef _CM_IP_UL_STATS_H
+#define _CM_IP_UL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_IP_UL_STATS 0x7201
+
+#define ICD_CM_CM_IP_UL_STATS_V1 1
+
+#define ICD_CM_IP_UL_STATS_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 tx_packet_num; // Total number of IP packets
+ // transmitted among 2/3/4/5G
+ kal_uint32 max_packet_byte; // Maximum bytes of transmitted
+ // IP packets among 2/3/4/5G
+} icd_cm_ip_ul_stats_struct_v1;
+
+typedef icd_cm_ip_ul_stats_struct_v1 icd_cm_ip_ul_stats_struct;
+
+
+#endif /* _CM_IP_UL_STATS_H */
+
+
+/* Public JSON start
+"CM_IP_UL_STATS": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7201", "Name": "CM_IP_UL_STATS", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"CM_IP_UL_STATS": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "CM_IP_UL_STATS_Versions", "1", "8", "VAR", ""]}, "Name": "CM_IP_UL_STATS"}, "CM_IP_UL_STATS_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_IP_UL_STATS_V1", ""]}, "Name": "CM_IP_UL_STATS_Versions"}, "CM_IP_UL_STATS_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["TX PACKET NUM", "UINT32", "1", "24", "32", "Total number of IP packets\ntransmitted among 2/3/4/5G"], "2": ["MAX PACKET BYTE", "UINT32", "1", "56", "32", "Maximum bytes of transmitted\nIP packets among 2/3/4/5G"]}, "Name": "CM_IP_UL_STATS_V1"}}},
+ Public JSON end */
+// Checksum : [98d0d290ffa0da4500e5f0f1fb4e1389]
diff --git a/mcu/interface/service/icd/el2/EL2_IP_Throughput_DL.h b/mcu/interface/service/icd/el2/EL2_IP_Throughput_DL.h
new file mode 100644
index 0000000..b566f1c
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_IP_Throughput_DL.h
@@ -0,0 +1,35 @@
+// ICD Header Format v3
+// Name : EL2_IP_Throughput_DL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7090
+// Version : V2.6
+
+#ifndef _EL2_IP_THROUGHPUT_DL_H
+#define _EL2_IP_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_IP_THROUGHPUT_DL 0x7090
+
+#define ICD_EL2_EL2_IP_THROUGHPUT_DL_V1 1
+
+#define ICD_EL2_IP_THROUGHPUT_DL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 ip_throughput_dl; // Downlink throughput measured by the UE on the IP sub-layer(bps)
+} icd_el2_ip_throughput_dl_struct_v1;
+
+typedef icd_el2_ip_throughput_dl_struct_v1 icd_el2_ip_throughput_dl_struct;
+
+
+#endif /* _EL2_IP_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"EL2_IP_Throughput_DL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7090", "Name": "EL2_IP_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1s.\n"}, "table": {"EL2_IP_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "EL2_IP_Throughput_DL_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_IP_Throughput_DL"}, "EL2_IP_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_IP_Throughput_DL_V1", ""], "1": ["2", "EL2_IP_Throughput_DL_V2", ""]}, "Name": "EL2_IP_Throughput_DL_Versions"}, "EL2_IP_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["IP Throughput DL", "UINT32", "1", "0", "32", "Downlink throughput measured by the UE on the IP sub-layer(bps)"]}, "Name": "EL2_IP_Throughput_DL_V1"}, "EL2_IP_Throughput_DL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "32", ""], "1": ["IP Throughput DL", "UINT64", "1", "32", "64", "Downlink throughput measured by the UE on the IP sub-layer(bps)"]}, "Name": "EL2_IP_Throughput_DL_V2"}}},
+ Public JSON end */
+// Checksum : [fe939bb1affdf7129e14fb57d9ec8276]
diff --git a/mcu/interface/service/icd/el2/EL2_IP_Throughput_UL.h b/mcu/interface/service/icd/el2/EL2_IP_Throughput_UL.h
new file mode 100644
index 0000000..ad60f44
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_IP_Throughput_UL.h
@@ -0,0 +1,35 @@
+// ICD Header Format v3
+// Name : EL2_IP_Throughput_UL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7091
+// Version : V2.6
+
+#ifndef _EL2_IP_THROUGHPUT_UL_H
+#define _EL2_IP_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_IP_THROUGHPUT_UL 0x7091
+
+#define ICD_EL2_EL2_IP_THROUGHPUT_UL_V1 1
+
+#define ICD_EL2_IP_THROUGHPUT_UL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 ip_throughput_ul; // Uplink throughput measured by the UE on the IP sub-layer(bps)
+} icd_el2_ip_throughput_ul_struct_v1;
+
+typedef icd_el2_ip_throughput_ul_struct_v1 icd_el2_ip_throughput_ul_struct;
+
+
+#endif /* _EL2_IP_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"EL2_IP_Throughput_UL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7091", "Name": "EL2_IP_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1s.\n"}, "table": {"EL2_IP_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "EL2_IP_Throughput_UL_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_IP_Throughput_UL"}, "EL2_IP_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_IP_Throughput_UL_V1", ""]}, "Name": "EL2_IP_Throughput_UL_Versions"}, "EL2_IP_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["IP Throughput UL", "UINT32", "1", "0", "32", "Uplink throughput measured by the UE on the IP sub-layer(bps)"]}, "Name": "EL2_IP_Throughput_UL_V1"}}},
+ Public JSON end */
+// Checksum : [eba103f9f91e4e0e863977be52d678e4]
diff --git a/mcu/interface/service/icd/el2/EL2_MAC_DL_Transport_Block.h b/mcu/interface/service/icd/el2/EL2_MAC_DL_Transport_Block.h
new file mode 100644
index 0000000..8457858
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_MAC_DL_Transport_Block.h
@@ -0,0 +1,73 @@
+// ICD Header Format v3
+// Name : EL2_MAC_DL_Transport_Block
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7083
+// Version : V2.6
+
+#ifndef _EL2_MAC_DL_TRANSPORT_BLOCK_H
+#define _EL2_MAC_DL_TRANSPORT_BLOCK_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_DL_TRANSPORT_BLOCK 0x7083
+
+#define ICD_EL2_EL2_MAC_DL_TRANSPORT_BLOCK_INFO_V1 1
+
+#define MAX_ICD_EL2_MAC_DL_TRANSPORT_BLOCK_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_EL2_MAC_DL_TRANSPORT_BLOCK_STRUCT_V1_MAX_SIZE 964
+
+typedef struct {
+ kal_uint32 sfn:10; // System Frame Number
+ kal_uint32 subframe:4; // Subframe Number
+ kal_uint32 rnti_type:4; // 0: C-RNTI
+ // 1: SPS-C-RNTI
+ // 2: P-RNTI
+ // 3: RA-RNTI
+ // 4: TC-RNTI
+ // 5: SI-RNTI
+ // 6: TPC-PUSCH-RNTI
+ // 7: TPC-PUCCH-RNTI
+ // 8: MBMS-RNTI
+ kal_uint32 harq_id:4; // HARQ ID
+ kal_uint32 transport_channel:3; // 1: BCH
+ // 2: DL-SCH
+ // 3: PCH
+ // 4: MCH
+ // 5: UL-SCH
+ // 6: RACH
+ kal_uint32 reserved:7;
+ kal_uint32 num_padding_bytes; // Padding size
+ kal_uint32 tb; // Total transport block size assigned to the UE for data reception on the DL
+ kal_uint32 num_rlc_pdus:16; // Number of RLC PDUs
+ kal_uint32 mac_header_len:8; // Length of MAC header
+ kal_uint32 reserved_1:2;
+ kal_uint32 mac_pdu_data_len:6; // Logged MAC PDU Data length, max is 32
+ kal_uint8 mac_pdu_data[32]; // First 32 bytes of MAC PDU
+} el2_mac_dl_transport_block_record_v1;
+
+typedef el2_mac_dl_transport_block_record_v1 el2_mac_dl_transport_block_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 mac_release:6; // 3GPP release number (e.g. 13)
+ kal_uint32 mac_major_version:6; // Major version number
+ kal_uint32 mac_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ el2_mac_dl_transport_block_record dl_tb_records[MAX_ICD_EL2_MAC_DL_TRANSPORT_BLOCK_STRUCT_V1_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_el2_mac_dl_transport_block_struct_v1;
+
+typedef icd_el2_mac_dl_transport_block_struct_v1 icd_el2_mac_dl_transport_block_struct;
+
+
+#endif /* _EL2_MAC_DL_TRANSPORT_BLOCK_H */
+
+
+/* Public JSON start
+"EL2_MAC_DL_Transport_Block": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7083", "Name": "EL2_MAC_DL_Transport_Block", "Type": "RECORD", "Desc": "The log is generated once every 50ms or 20 records, whichever occurs first.\n"}, "table": {"EL2_MAC_DL_Transport_Block": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_MAC_DL_Transport_Block_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_DL_Transport_Block"}, "EL2_MAC_DL_Transport_Block_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_DL_Transport_Block_Info_V1", ""]}, "Name": "EL2_MAC_DL_Transport_Block_Versions"}, "EL2_MAC_DL_Transport_Block_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DL TB Records": "Number of Records"}, "Name": "EL2_MAC_DL_Transport_Block_Info_V1", "Data": {"0": ["MAC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 13)"], "1": ["MAC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["MAC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["DL TB Records", "EL2_MAC_DL_Transport_Block_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "EL2_MAC_DL_Transport_Block_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System Frame Number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe Number"], "2": ["RNTI Type", "UINT32", "1", "14", "4", "0: C-RNTI\n1: SPS-C-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI\n8: MBMS-RNTI"], "3": ["Harq ID", "UINT32", "1", "18", "4", "HARQ ID"], "4": ["Transport Channel", "UINT32", "1", "22", "3", "1: BCH\n2: DL-SCH\n3: PCH\n4: MCH\n5: UL-SCH\n6: RACH"], "5": ["Reserved", "UINT32", "1", "25", "7", ""], "6": ["Num Padding Bytes", "UINT32", "1", "32", "32", "Padding size"], "7": ["TB", "UINT32", "1", "64", "32", "Total transport block size assigned to the UE for data reception on the DL"], "8": ["Num RLC PDUs", "UINT32", "1", "96", "16", "Number of RLC PDUs"], "9": ["MAC Header Len", "UINT32", "1", "112", "8", "Length of MAC header"], "10": ["Reserved", "UINT32", "1", "120", "2", ""], "11": ["MAC PDU Data Len", "UINT32", "1", "122", "6", "Logged MAC PDU Data length, max is 32"], "12": ["MAC PDU Data", "UINT8", "32", "128", "256", "First 32 bytes of MAC PDU"]}, "Name": "EL2_MAC_DL_Transport_Block_Record_V1"}}},
+ Public JSON end */
+// Checksum : [c93bb641688a3fae390931fca0a28f10]
diff --git a/mcu/interface/service/icd/el2/EL2_MAC_RACH_Latency.h b/mcu/interface/service/icd/el2/EL2_MAC_RACH_Latency.h
new file mode 100644
index 0000000..04910b6
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_MAC_RACH_Latency.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : EL2_MAC_RACH_Latency
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7082
+// Version : V2.6
+
+#ifndef _EL2_MAC_RACH_LATENCY_H
+#define _EL2_MAC_RACH_LATENCY_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_RACH_LATENCY 0x7082
+
+#define ICD_EL2_EL2_MAC_RACH_LATENCY_V1 1
+
+#define ICD_EL2_MAC_RACH_LATENCY_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 msg2_latency; // Average time from 1st preamble to receive matched RAR in milliseconds
+ kal_uint32 rach_delay; // Average time from RA triggered to RA success in milliseconds
+} icd_el2_mac_rach_latency_struct_v1;
+
+typedef icd_el2_mac_rach_latency_struct_v1 icd_el2_mac_rach_latency_struct;
+
+
+#endif /* _EL2_MAC_RACH_LATENCY_H */
+
+
+/* Public JSON start
+"EL2_MAC_RACH_Latency": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7082", "Name": "EL2_MAC_RACH_Latency", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_MAC_RACH_Latency": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_MAC_RACH_Latency_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_RACH_Latency"}, "EL2_MAC_RACH_Latency_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_RACH_Latency_V1", ""]}, "Name": "EL2_MAC_RACH_Latency_Versions"}, "EL2_MAC_RACH_Latency_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["Msg2 Latency", "UINT32", "1", "24", "32", "Average time from 1st preamble to receive matched RAR in milliseconds"], "2": ["Rach Delay", "UINT32", "1", "56", "32", "Average time from RA triggered to RA success in milliseconds"]}, "Name": "EL2_MAC_RACH_Latency_V1"}}},
+ Public JSON end */
+// Checksum : [f80c7f1e35ba606033fd0a87e165fe3d]
diff --git a/mcu/interface/service/icd/el2/EL2_MAC_Throughput_DL.h b/mcu/interface/service/icd/el2/EL2_MAC_Throughput_DL.h
new file mode 100644
index 0000000..b2c4381
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_MAC_Throughput_DL.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Throughput_DL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7080
+// Version : V2.6
+
+#ifndef _EL2_MAC_THROUGHPUT_DL_H
+#define _EL2_MAC_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_THROUGHPUT_DL 0x7080
+
+#define ICD_EL2_EL2_MAC_THROUGHPUT_DL_V2 2
+
+#define ICD_EL2_MAC_THROUGHPUT_DL_STRUCT_V2_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 emac_throughput_dl; // Bits per second(padding included)
+ kal_uint32 emac_padding_throughput_dl; // Bits per second(padding only)
+} icd_el2_mac_throughput_dl_struct_v2;
+
+typedef icd_el2_mac_throughput_dl_struct_v2 icd_el2_mac_throughput_dl_struct;
+
+
+#endif /* _EL2_MAC_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"EL2_MAC_Throughput_DL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7080", "Name": "EL2_MAC_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_MAC_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_MAC_Throughput_DL_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Throughput_DL"}, "EL2_MAC_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Throughput_DL_V1", ""], "1": ["2", "EL2_MAC_Throughput_DL_V2", ""]}, "Name": "EL2_MAC_Throughput_DL_Versions"}, "EL2_MAC_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["EMAC Throughput DL", "UINT32", "1", "24", "32", "Bits per second"]}, "Name": "EL2_MAC_Throughput_DL_V1"}, "EL2_MAC_Throughput_DL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["EMAC Throughput DL", "UINT32", "1", "24", "32", "Bits per second(padding included)"], "2": ["EMAC Padding Throughput DL", "UINT32", "1", "56", "32", "Bits per second(padding only)"]}, "Name": "EL2_MAC_Throughput_DL_V2"}}},
+ Public JSON end */
+// Checksum : [7823f75442c650518463b64860d92786]
diff --git a/mcu/interface/service/icd/el2/EL2_MAC_Throughput_UL.h b/mcu/interface/service/icd/el2/EL2_MAC_Throughput_UL.h
new file mode 100644
index 0000000..37514cb
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_MAC_Throughput_UL.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Throughput_UL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7081
+// Version : V2.6
+
+#ifndef _EL2_MAC_THROUGHPUT_UL_H
+#define _EL2_MAC_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_THROUGHPUT_UL 0x7081
+
+#define ICD_EL2_EL2_MAC_THROUGHPUT_UL_V2 2
+
+#define ICD_EL2_MAC_THROUGHPUT_UL_STRUCT_V2_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 emac_throughput_ul; // Bits per second(padding included)
+ kal_uint32 emac_padding_throughput_ul; // Bits per second(padding only)
+} icd_el2_mac_throughput_ul_struct_v2;
+
+typedef icd_el2_mac_throughput_ul_struct_v2 icd_el2_mac_throughput_ul_struct;
+
+
+#endif /* _EL2_MAC_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"EL2_MAC_Throughput_UL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7081", "Name": "EL2_MAC_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_MAC_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_MAC_Throughput_UL_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Throughput_UL"}, "EL2_MAC_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Throughput_UL_V1", ""], "1": ["2", "EL2_MAC_Throughput_UL_V2", ""]}, "Name": "EL2_MAC_Throughput_UL_Versions"}, "EL2_MAC_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["EMAC Throughput UL", "UINT32", "1", "24", "32", "Bits per second"]}, "Name": "EL2_MAC_Throughput_UL_V1"}, "EL2_MAC_Throughput_UL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["EMAC Throughput UL", "UINT32", "1", "24", "32", "Bits per second(padding included)"], "2": ["EMAC Padding Throughput UL", "UINT32", "1", "56", "32", "Bits per second(padding only)"]}, "Name": "EL2_MAC_Throughput_UL_V2"}}},
+ Public JSON end */
+// Checksum : [1b78af005fc960ef3124bd93e4dd1638]
diff --git a/mcu/interface/service/icd/el2/EL2_MAC_UL_TX_Statistics.h b/mcu/interface/service/icd/el2/EL2_MAC_UL_TX_Statistics.h
new file mode 100644
index 0000000..b6d5506
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_MAC_UL_TX_Statistics.h
@@ -0,0 +1,42 @@
+// ICD Header Format v3
+// Name : EL2_MAC_UL_TX_Statistics
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7085
+// Version : V2.6
+
+#ifndef _EL2_MAC_UL_TX_STATISTICS_H
+#define _EL2_MAC_UL_TX_STATISTICS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_UL_TX_STATISTICS 0x7085
+
+#define ICD_EL2_EL2_MAC_UL_TX_STATISTICS_V1 1
+
+#define ICD_EL2_MAC_UL_TX_STATISTICS_STRUCT_V1_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 num_received_grants:12; // Number of received grants
+ kal_uint32 reserved:12;
+ kal_uint32 num_padding_bsr; // Padding BSR number
+ kal_uint32 num_normal_bsr; // Normal BSR number
+ kal_uint32 num_periodic_bsr; // Periodic BSR number
+ kal_uint32 num_cancelled_bsr; // 36.321 5.4.5 "All triggered BSRs shall be cancelled..."
+ kal_uint32 received_grant_bytes; // Total grant bytes received
+ kal_uint32 used_grant_bytes; // Total used bytes
+} icd_el2_mac_ul_tx_statistics_struct_v1;
+
+typedef icd_el2_mac_ul_tx_statistics_struct_v1 icd_el2_mac_ul_tx_statistics_struct;
+
+
+#endif /* _EL2_MAC_UL_TX_STATISTICS_H */
+
+
+/* Public JSON start
+"EL2_MAC_UL_TX_Statistics": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7085", "Name": "EL2_MAC_UL_TX_Statistics", "Type": "RECORD", "Desc": "It is reported every 100ms\n"}, "table": {"EL2_MAC_UL_TX_Statistics": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_MAC_UL_TX_Statistics_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_UL_TX_Statistics"}, "EL2_MAC_UL_TX_Statistics_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_UL_TX_Statistics_V1", ""]}, "Name": "EL2_MAC_UL_TX_Statistics_Versions"}, "EL2_MAC_UL_TX_Statistics_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num Received Grants", "UINT32", "1", "0", "12", "Number of received grants"], "1": ["Reserved", "UINT32", "1", "12", "12", ""], "2": ["Num Padding BSR", "UINT32", "1", "24", "32", "Padding BSR number"], "3": ["Num Normal BSR", "UINT32", "1", "56", "32", "Normal BSR number"], "4": ["Num Periodic BSR", "UINT32", "1", "88", "32", "Periodic BSR number"], "5": ["Num Cancelled BSR", "UINT32", "1", "120", "32", "36.321 5.4.5 \"All triggered BSRs shall be cancelled...\""], "6": ["Received Grant Bytes", "UINT32", "1", "152", "32", "Total grant bytes received"], "7": ["Used Grant Bytes", "UINT32", "1", "184", "32", "Total used bytes"]}, "Name": "EL2_MAC_UL_TX_Statistics_V1"}}},
+ Public JSON end */
+// Checksum : [29d7541ad5bc872112e0f1a3a6c2cea2]
diff --git a/mcu/interface/service/icd/el2/EL2_MAC_UL_Transport_Block.h b/mcu/interface/service/icd/el2/EL2_MAC_UL_Transport_Block.h
new file mode 100644
index 0000000..09cffbc
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_MAC_UL_Transport_Block.h
@@ -0,0 +1,86 @@
+// ICD Header Format v3
+// Name : EL2_MAC_UL_Transport_Block
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7084
+// Version : V2.6
+
+#ifndef _EL2_MAC_UL_TRANSPORT_BLOCK_H
+#define _EL2_MAC_UL_TRANSPORT_BLOCK_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_UL_TRANSPORT_BLOCK 0x7084
+
+#define ICD_EL2_EL2_MAC_UL_TRANSPORT_BLOCK_INFO_V1 1
+
+#define MAX_ICD_EL2_MAC_UL_TRANSPORT_BLOCK_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_EL2_MAC_UL_TRANSPORT_BLOCK_STRUCT_V1_MAX_SIZE 884
+
+typedef struct {
+ kal_uint32 sfn:10; // System Frame Number
+ kal_uint32 subframe:4; // Subframe Number
+ kal_uint32 rnti_type:4; // 0: C-RNTI
+ // 1: SPS-C-RNTI
+ // 2: P-RNTI
+ // 3: RA-RNTI
+ // 4: TC-RNTI
+ // 5: SI-RNTI
+ // 6: TPC-PUSCH-RNTI
+ // 7: TPC-PUCCH-RNTI
+ // 8: MBMS-RNTI
+ kal_uint32 harq_id:3; // (TX SFN * 10 + TX subframe) % 8
+ kal_uint32 bsr_type:3; // Values:
+ // 0: NoBsr
+ // 1: Cancelled
+ // 2: LongBsr
+ // 3: ShortBsr
+ // 4: PaddingLongBsr
+ // 5: PaddingShortBsr
+ // 6: PaddingTruncatedBsr
+ kal_uint32 bsr_trigger_cause:2; // Values:
+ // 0: Padding BSR included
+ // 1: periodicBSR-Timer expires
+ // 2: Regular BSR triggered because of higher priority data arrival
+ // 3: Regular BSR triggered because of retxBSR-Timer expires
+ kal_uint32 transport_channel:3; // 1: BCH
+ // 2: DL-SCH
+ // 3: PCH
+ // 4: MCH
+ // 5: UL-SCH
+ // 6: RACH
+ kal_uint32 reserved:3;
+ kal_uint32 ul_grant:16; // Uplink grant size in bytes
+ kal_uint32 num_rlc_pdus:16; // Number of RLC PDUs
+ kal_uint32 num_padding_bytes:16; // Padding size
+ kal_uint32 mac_header_len:8; // Length of MAC header
+ kal_uint32 reserved_1:2;
+ kal_uint32 mac_pdu_data_len:6; // Logged MAC PDU Data length, max is 32
+ kal_uint8 mac_pdu_data[32]; // First 32 bytes of MAC PDU
+} el2_mac_ul_transport_block_record_v1;
+
+typedef el2_mac_ul_transport_block_record_v1 el2_mac_ul_transport_block_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 mac_release:6; // 3GPP release number (e.g. 13)
+ kal_uint32 mac_major_version:6; // Major version number
+ kal_uint32 mac_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ el2_mac_ul_transport_block_record ul_tb_records[MAX_ICD_EL2_MAC_UL_TRANSPORT_BLOCK_STRUCT_V1_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_el2_mac_ul_transport_block_struct_v1;
+
+typedef icd_el2_mac_ul_transport_block_struct_v1 icd_el2_mac_ul_transport_block_struct;
+
+
+#endif /* _EL2_MAC_UL_TRANSPORT_BLOCK_H */
+
+
+/* Public JSON start
+"EL2_MAC_UL_Transport_Block": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7084", "Name": "EL2_MAC_UL_Transport_Block", "Type": "RECORD", "Desc": "The log is generated once every 50ms or 20 records, whichever occurs first.\n"}, "table": {"EL2_MAC_UL_Transport_Block": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_MAC_UL_Transport_Block_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_UL_Transport_Block"}, "EL2_MAC_UL_Transport_Block_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_UL_Transport_Block_Info_V1", ""]}, "Name": "EL2_MAC_UL_Transport_Block_Versions"}, "EL2_MAC_UL_Transport_Block_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"UL TB Records": "Number of Records"}, "Name": "EL2_MAC_UL_Transport_Block_Info_V1", "Data": {"0": ["MAC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 13)"], "1": ["MAC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["MAC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["UL TB Records", "EL2_MAC_UL_Transport_Block_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "EL2_MAC_UL_Transport_Block_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System Frame Number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe Number"], "2": ["RNTI Type", "UINT32", "1", "14", "4", "0: C-RNTI\n1: SPS-C-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI\n8: MBMS-RNTI"], "3": ["Harq ID", "UINT32", "1", "18", "3", "(TX SFN * 10 + TX subframe) % 8"], "4": ["BSR Type", "UINT32", "1", "21", "3", "Values:\n0: NoBsr\n1: Cancelled\n2: LongBsr\n3: ShortBsr\n4: PaddingLongBsr\n5: PaddingShortBsr\n6: PaddingTruncatedBsr"], "5": ["BSR Trigger cause", "UINT32", "1", "24", "2", "Values:\n0: Padding BSR included\n1: periodicBSR-Timer expires\n2: Regular BSR triggered because of higher priority data arrival\n3: Regular BSR triggered because of retxBSR-Timer expires"], "6": ["Transport Channel", "UINT32", "1", "26", "3", "1: BCH\n2: DL-SCH\n3: PCH\n4: MCH\n5: UL-SCH\n6: RACH"], "7": ["Reserved", "UINT32", "1", "29", "3", ""], "8": ["UL Grant", "UINT32", "1", "32", "16", "Uplink grant size in bytes"], "9": ["Num RLC PDUs", "UINT32", "1", "48", "16", "Number of RLC PDUs"], "10": ["Num Padding Bytes", "UINT32", "1", "64", "16", "Padding size"], "11": ["MAC Header Len", "UINT32", "1", "80", "8", "Length of MAC header"], "12": ["Reserved", "UINT32", "1", "88", "2", ""], "13": ["MAC PDU Data Len", "UINT32", "1", "90", "6", "Logged MAC PDU Data length, max is 32"], "14": ["MAC PDU Data", "UINT8", "32", "96", "256", "First 32 bytes of MAC PDU"]}, "Name": "EL2_MAC_UL_Transport_Block_Record_V1"}}},
+ Public JSON end */
+// Checksum : [ca1ce4a2ea63451e19f5a530c5913e24]
diff --git a/mcu/interface/service/icd/el2/EL2_PDCP_DL_Stats.h b/mcu/interface/service/icd/el2/EL2_PDCP_DL_Stats.h
new file mode 100644
index 0000000..5203436
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_PDCP_DL_Stats.h
@@ -0,0 +1,95 @@
+// ICD Header Format v3
+// Name : EL2_PDCP_DL_Stats
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x708D
+// Version : V2.6
+
+#ifndef _EL2_PDCP_DL_STATS_H
+#define _EL2_PDCP_DL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_PDCP_DL_STATS 0x708D
+
+#define ICD_EL2_EL2_PDCP_DL_STATS_INFO_V1 1
+
+#define MAX_ICD_EL2_PDCP_DL_STATS_STRUCT_V1_NUMBER_OF_RBS 20
+
+#define ICD_EL2_PDCP_DL_STATS_STRUCT_V1_MAX_SIZE 2728
+
+typedef struct {
+ kal_uint32 configuration_index; // Unique radio bearer configuration index
+ kal_uint32 rx_data_pdu_bytes; // Total bytes of PDCP Data PDUs received
+ kal_uint32 rx_ctrl_pdu_bytes; // Total bytes of PDCP Control PDUs received
+ kal_uint32 rohc_fail_num; // Total number of PDCP PDUs ROHC decompression failed
+ kal_uint32 integrity_fail_num; // Total number of PDCP PDUs integrity check failed
+ kal_uint32 miss_sdu_to_ul; // Total number of PDCP SDUs missing when delivered to upper
+ // layers
+ kal_uint32 miss_sdu_from_ll; // Total number of PDCP PDUs missing from lower layer (RLC)
+ kal_uint32 rx_dup_bytes; // Total bytes of duplicated PDCP PDUs received
+ kal_uint32 rx_invalid_bytes; // Total bytes of invalid PDCP PDUs received
+ kal_uint32 num_reest; // Total number of reestablishment
+ kal_uint32 rx_data_pdu_num; // Total number of PDCP Data PDUs received
+ kal_uint32 rx_ctrl_pdu_num; // Total number of PDCP Control PDUs received
+ kal_uint32 rx_status_pdu_num; // Total number of PDCP Status PDUs received
+ kal_uint32 rx_dup_num; // Total number of duplicated PDCP PDUs received
+ kal_uint32 rx_oow_num; // Total number of PDCP PDUs received that is out of
+ // reordering window
+ kal_uint32 rx_oow_bytes; // Total bytes of PDCP PDUs received that is out of
+ // reordering window
+ kal_uint32 rx_invalid_num; // Total number of invalid PDCP PDUs received
+ kal_uint32 rx_data_pdu_num_reest; // Total number of PDCP Data PDUs received since last
+ // reestablishment
+ kal_uint32 rx_data_pdu_bytes_reest; // Total bytes of PDCP Data PDUs received since last
+ // reestablishment
+ kal_uint32 rx_ctrl_pdu_num_reest; // Total number of PDCP Control PDUs received since last
+ // reestablishment
+ kal_uint32 rx_ctrl_pdu_bytes_reest; // Total bytes of PDCP Control PDUs received since last
+ // reestablishment
+ kal_uint32 rx_status_pdu_num_reest; // Total number of PDCP Status PDUs received since last
+ // reestablishment
+ kal_uint32 rohc_fail_num_reest; // Total number of PDCP Data PDUs ROHC decompression failed
+ // since last reestablishment
+ kal_uint32 integrity_fail_reest; // Total number of PDCP PDUs integrity check failed
+ // since last reestablishment
+ kal_uint32 miss_sdu_to_ul_reest; // Total number of PDCP SDUs missing when delivered to upper
+ // layers since last reestablishment
+ kal_uint32 miss_sdu_from_ll_reest; // Total number of PDCP PDUs missing from lower layer (RLC)
+ // since last reestablishment
+ kal_uint32 rx_dup_num_reest; // Total number of duplicated PDCP PDUs received since last
+ // reestablishment
+ kal_uint32 rx_dup_bytes_reest; // Total bytes of duplicated PDCP PDUs received since last
+ // reestablishment
+ kal_uint32 rx_oow_num_reest; // Total number of PDCP PDUs received that is out of
+ // reordering window since last reestablishment
+ kal_uint32 rx_oow_bytes_reest; // Total bytes of PDCP PDUs received that is out of
+ // reordering window since last reestablishment
+ kal_uint32 rx_invalid_num_reest; // Total number of invalid PDCP PDUs received since last
+ // reestablishment
+ kal_uint32 rx_invalid_bytes_reest; // Total bytes of invalid PDCP PDUs received since last
+ // reestablishment
+ kal_uint32 min_packet_byte; // Minimum bytes of received packet during this time
+ kal_uint32 max_packet_byte; // Maximum bytes of received packet during this time
+} el2_pdcp_dl_stats_v1;
+
+typedef el2_pdcp_dl_stats_v1 el2_pdcp_dl_stats;
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 number_of_rbs; // range[0, 20]
+ el2_pdcp_dl_stats rb_dl_statistics[MAX_ICD_EL2_PDCP_DL_STATS_STRUCT_V1_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_el2_pdcp_dl_stats_struct_v1;
+
+typedef icd_el2_pdcp_dl_stats_struct_v1 icd_el2_pdcp_dl_stats_struct;
+
+
+#endif /* _EL2_PDCP_DL_STATS_H */
+
+
+/* Public JSON start
+"EL2_PDCP_DL_Stats": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x708D", "Name": "EL2_PDCP_DL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_PDCP_DL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "EL2_PDCP_DL_Stats_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_PDCP_DL_Stats"}, "EL2_PDCP_DL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_PDCP_DL_Stats_Info_V1", ""]}, "Name": "EL2_PDCP_DL_Stats_Versions"}, "EL2_PDCP_DL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB DL Statistics": "Number of RBs"}, "Name": "EL2_PDCP_DL_Stats_Info_V1", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 20]"], "1": ["RB DL Statistics", "EL2_PDCP_DL_Stats_V1", "N", "32", "VAR", "N := Number of RBs"]}}, "EL2_PDCP_DL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Configuration Index", "UINT32", "1", "0", "32", "Unique radio bearer configuration index"], "1": ["Rx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs received"], "2": ["Rx Ctrl PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs received"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC decompression failed"], "4": ["Integrity Fail Num", "UINT32", "1", "128", "32", "Total number of PDCP PDUs integrity check failed"], "5": ["Miss SDU To UL", "UINT32", "1", "160", "32", "Total number of PDCP SDUs missing when delivered to upper\nlayers"], "6": ["Miss SDU From LL", "UINT32", "1", "192", "32", "Total number of PDCP PDUs missing from lower layer (RLC)"], "7": ["Rx Dup Bytes", "UINT32", "1", "224", "32", "Total bytes of duplicated PDCP PDUs received"], "8": ["Rx Invalid Bytes", "UINT32", "1", "256", "32", "Total bytes of invalid PDCP PDUs received"], "9": ["Num Reest", "UINT32", "1", "288", "32", "Total number of reestablishment"], "10": ["Rx Data PDU Num", "UINT32", "1", "320", "32", "Total number of PDCP Data PDUs received"], "11": ["Rx Ctrl PDU Num", "UINT32", "1", "352", "32", "Total number of PDCP Control PDUs received"], "12": ["Rx Status PDU Num", "UINT32", "1", "384", "32", "Total number of PDCP Status PDUs received"], "13": ["Rx Dup Num", "UINT32", "1", "416", "32", "Total number of duplicated PDCP PDUs received"], "14": ["Rx OOW Num", "UINT32", "1", "448", "32", "Total number of PDCP PDUs received that is out of\nreordering window"], "15": ["Rx OOW Bytes", "UINT32", "1", "480", "32", "Total bytes of PDCP PDUs received that is out of\nreordering window"], "16": ["Rx Invalid Num", "UINT32", "1", "512", "32", "Total number of invalid PDCP PDUs received"], "17": ["Rx Data PDU Num Reest", "UINT32", "1", "544", "32", "Total number of PDCP Data PDUs received since last\nreestablishment"], "18": ["Rx Data PDU Bytes Reest", "UINT32", "1", "576", "32", "Total bytes of PDCP Data PDUs received since last\nreestablishment"], "19": ["Rx Ctrl PDU Num Reest", "UINT32", "1", "608", "32", "Total number of PDCP Control PDUs received since last\nreestablishment"], "20": ["Rx Ctrl PDU Bytes Reest", "UINT32", "1", "640", "32", "Total bytes of PDCP Control PDUs received since last\nreestablishment"], "21": ["Rx Status PDU Num Reest", "UINT32", "1", "672", "32", "Total number of PDCP Status PDUs received since last\nreestablishment"], "22": ["Rohc Fail Num Reest", "UINT32", "1", "704", "32", "Total number of PDCP Data PDUs ROHC decompression failed\nsince last reestablishment"], "23": ["Integrity Fail Reest", "UINT32", "1", "736", "32", "Total number of PDCP PDUs integrity check failed\nsince last reestablishment"], "24": ["Miss SDU To UL Reest", "UINT32", "1", "768", "32", "Total number of PDCP SDUs missing when delivered to upper\nlayers since last reestablishment"], "25": ["Miss SDU From LL Reest", "UINT32", "1", "800", "32", "Total number of PDCP PDUs missing from lower layer (RLC)\nsince last reestablishment"], "26": ["Rx Dup Num Reest", "UINT32", "1", "832", "32", "Total number of duplicated PDCP PDUs received since last\nreestablishment"], "27": ["Rx Dup Bytes Reest", "UINT32", "1", "864", "32", "Total bytes of duplicated PDCP PDUs received since last\nreestablishment"], "28": ["Rx OOW Num Reest", "UINT32", "1", "896", "32", "Total number of PDCP PDUs received that is out of\nreordering window since last reestablishment"], "29": ["Rx OOW Bytes Reest", "UINT32", "1", "928", "32", "Total bytes of PDCP PDUs received that is out of\nreordering window since last reestablishment"], "30": ["Rx Invalid Num Reest", "UINT32", "1", "960", "32", "Total number of invalid PDCP PDUs received since last\nreestablishment"], "31": ["Rx Invalid Bytes Reest", "UINT32", "1", "992", "32", "Total bytes of invalid PDCP PDUs received since last\nreestablishment"], "32": ["Min Packet Byte", "UINT32", "1", "1024", "32", "Minimum bytes of received packet during this time"], "33": ["Max Packet Byte", "UINT32", "1", "1056", "32", "Maximum bytes of received packet during this time"]}, "Name": "EL2_PDCP_DL_Stats_V1"}}},
+ Public JSON end */
+// Checksum : [f93df3b76bb231ee2ef69b5f98d103d2]
diff --git a/mcu/interface/service/icd/el2/EL2_PDCP_OTA_Message.h b/mcu/interface/service/icd/el2/EL2_PDCP_OTA_Message.h
new file mode 100644
index 0000000..34d001d
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_PDCP_OTA_Message.h
@@ -0,0 +1,66 @@
+// ICD Header Format v3
+// Name : EL2_PDCP_OTA_Message
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x708F
+// Version : V2.6
+
+#ifndef _EL2_PDCP_OTA_MESSAGE_H
+#define _EL2_PDCP_OTA_MESSAGE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_PDCP_OTA_MESSAGE 0x708F
+
+#define ICD_EL2_EL2_PDCP_OTA_MESSAGE_INFO_V1 1
+
+#define MAX_ICD_EL2_PDCP_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_EL2_PDCP_OTA_MESSAGE_STRUCT_V1_MAX_SIZE 224
+
+typedef struct {
+ kal_uint8 radio_bearer_index:6; // Unique radio bearer configuration index
+ // 0~31: DRB1~DRB32
+ // 32~34: SRB0~SRB2
+ kal_uint8 radio_bearer_type:1; // drb:0 , srb:1
+ kal_uint8 direction:1; // up stream:0 , down stream:1
+ kal_uint8 rlc_mode:1; // am:0 , um:1
+ kal_uint8 reserved:6;
+ kal_uint8 message_type:1; // data pdu for drb/srb:0
+ // control pdu for drb:1
+ kal_uint8 ciphered:1; // ciphered: 0
+ // non-ciphered: 1
+ kal_uint8 pdcp_sn_bit:3; // null:0
+ // 7-bit:1
+ // 12-bit:2
+ // 15-bit:3
+ // 18-bit:4
+ kal_uint8 pdcp_header_length:4; // Indicate the length of "PDCP HDR" field
+ kal_uint8 pdcp_hdr[8]; // PDCP header raw data (record up to 8 bytes)
+} el2_pdcp_ota_message_record_v1;
+
+typedef el2_pdcp_ota_message_record_v1 el2_pdcp_ota_message_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pdcp_release:6; // 3GPP release number
+ // (e.g. 13 means Rel 13)
+ kal_uint32 pdcp_major_version:6; // Major version number
+ kal_uint32 pdcp_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ el2_pdcp_ota_message_record ota_records[MAX_ICD_EL2_PDCP_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_el2_pdcp_ota_message_struct_v1;
+
+typedef icd_el2_pdcp_ota_message_struct_v1 icd_el2_pdcp_ota_message_struct;
+
+
+#endif /* _EL2_PDCP_OTA_MESSAGE_H */
+
+
+/* Public JSON start
+"EL2_PDCP_OTA_Message": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x708F", "Name": "EL2_PDCP_OTA_Message", "Type": "RECORD", "Desc": "The log is generated once every 50 ms or 20 records, whichever occurs first.\n"}, "table": {"EL2_PDCP_OTA_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_PDCP_OTA_Message_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_PDCP_OTA_Message"}, "EL2_PDCP_OTA_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_PDCP_OTA_Message_Info_V1", ""]}, "Name": "EL2_PDCP_OTA_Message_Versions"}, "EL2_PDCP_OTA_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"OTA Records": "Number of Records"}, "Name": "EL2_PDCP_OTA_Message_Info_V1", "Data": {"0": ["PDCP Release", "UINT32", "1", "0", "6", "3GPP release number\n(e.g. 13 means Rel 13)"], "1": ["PDCP Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["PDCP Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["OTA Records", "EL2_PDCP_OTA_Message_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "EL2_PDCP_OTA_Message_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Radio Bearer Index", "UINT8", "1", "0", "6", "Unique radio bearer configuration index\n0~31: DRB1~DRB32\n32~34: SRB0~SRB2"], "1": ["Radio Bearer Type", "UINT8", "1", "6", "1", "drb:0 , srb:1"], "2": ["Direction", "UINT8", "1", "7", "1", "up stream:0 , down stream:1"], "3": ["RLC Mode", "UINT8", "1", "8", "1", "am:0 , um:1"], "4": ["Reserved", "UINT8", "1", "9", "6", ""], "5": ["Message Type", "UINT8", "1", "15", "1", "data pdu for drb/srb:0\ncontrol pdu for drb:1"], "6": ["Ciphered", "UINT8", "1", "16", "1", "ciphered: 0\nnon-ciphered: 1"], "7": ["PDCP SN Bit", "UINT8", "1", "17", "3", "null:0\n7-bit:1\n12-bit:2\n15-bit:3\n18-bit:4"], "8": ["PDCP Header Length", "UINT8", "1", "20", "4", "Indicate the length of \"PDCP HDR\" field"], "9": ["PDCP HDR", "UINT8", "8", "24", "64", "PDCP header raw data (record up to 8 bytes)"]}, "Name": "EL2_PDCP_OTA_Message_Record_V1"}}},
+ Public JSON end */
+// Checksum : [086f80b38eac0e5a3b8999928c37ffbe]
diff --git a/mcu/interface/service/icd/el2/EL2_PDCP_Throughput_DL.h b/mcu/interface/service/icd/el2/EL2_PDCP_Throughput_DL.h
new file mode 100644
index 0000000..031b201
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_PDCP_Throughput_DL.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : EL2_PDCP_Throughput_DL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x708B
+// Version : V2.6
+
+#ifndef _EL2_PDCP_THROUGHPUT_DL_H
+#define _EL2_PDCP_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_PDCP_THROUGHPUT_DL 0x708B
+
+#define ICD_EL2_EL2_PDCP_THROUGHPUT_DL_V2 2
+
+#define ICD_EL2_PDCP_THROUGHPUT_DL_STRUCT_V2_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 pdcp_throughput_dl; // PDCP overall downlink data throughput in bps,
+ // value is measured per 1000ms.
+ kal_uint32 throughput_value[5]; // PDCP overall downlink data throughput in bps,
+ // value in array is measured per 100ms.
+} icd_el2_pdcp_throughput_dl_struct_v2;
+
+typedef icd_el2_pdcp_throughput_dl_struct_v2 icd_el2_pdcp_throughput_dl_struct;
+
+
+#endif /* _EL2_PDCP_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"EL2_PDCP_Throughput_DL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x708B", "Name": "EL2_PDCP_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 500 ms.\n"}, "table": {"EL2_PDCP_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "EL2_PDCP_Throughput_DL_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_PDCP_Throughput_DL"}, "EL2_PDCP_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_PDCP_Throughput_DL_V1", ""]}, "Name": "EL2_PDCP_Throughput_DL_Versions"}, "EL2_PDCP_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDCP Throughput DL", "UINT32", "1", "0", "32", "PDCP overall downlink data throughput in bps"]}, "Name": "EL2_PDCP_Throughput_DL_V1"}}},
+ Public JSON end */
+// Checksum : [f5ac727c37ae5df221a237fc21d0f963]
diff --git a/mcu/interface/service/icd/el2/EL2_PDCP_Throughput_UL.h b/mcu/interface/service/icd/el2/EL2_PDCP_Throughput_UL.h
new file mode 100644
index 0000000..b006d62
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_PDCP_Throughput_UL.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : EL2_PDCP_Throughput_UL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x708C
+// Version : V2.6
+
+#ifndef _EL2_PDCP_THROUGHPUT_UL_H
+#define _EL2_PDCP_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_PDCP_THROUGHPUT_UL 0x708C
+
+#define ICD_EL2_EL2_PDCP_THROUGHPUT_UL_V2 2
+
+#define ICD_EL2_PDCP_THROUGHPUT_UL_STRUCT_V2_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 pdcp_throughput_ul; // PDCP overall uplink data throughput in bps,
+ // value is measured per 1000ms.
+ kal_uint32 throughput_value[5]; // PDCP overall uplink data throughput in bps,
+ // value in array is measured per 100ms.
+} icd_el2_pdcp_throughput_ul_struct_v2;
+
+typedef icd_el2_pdcp_throughput_ul_struct_v2 icd_el2_pdcp_throughput_ul_struct;
+
+
+#endif /* _EL2_PDCP_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"EL2_PDCP_Throughput_UL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x708C", "Name": "EL2_PDCP_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 500 ms.\n"}, "table": {"EL2_PDCP_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "EL2_PDCP_Throughput_UL_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_PDCP_Throughput_UL"}, "EL2_PDCP_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_PDCP_Throughput_UL_V1", ""]}, "Name": "EL2_PDCP_Throughput_UL_Versions"}, "EL2_PDCP_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDCP Throughput UL", "UINT32", "1", "0", "32", "PDCP overall uplink data throughput in bps"]}, "Name": "EL2_PDCP_Throughput_UL_V1"}}},
+ Public JSON end */
+// Checksum : [6c5367c860cb882f5ece5083dbb1d712]
diff --git a/mcu/interface/service/icd/el2/EL2_PDCP_UL_Stats.h b/mcu/interface/service/icd/el2/EL2_PDCP_UL_Stats.h
new file mode 100644
index 0000000..480f0ff
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_PDCP_UL_Stats.h
@@ -0,0 +1,120 @@
+// ICD Header Format v3
+// Name : EL2_PDCP_UL_Stats
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x708E
+// Version : V2.6
+
+#ifndef _EL2_PDCP_UL_STATS_H
+#define _EL2_PDCP_UL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_PDCP_UL_STATS 0x708E
+
+#define ICD_EL2_EL2_PDCP_UL_STATS_INFO_V4 4
+
+#define MAX_ICD_EL2_PDCP_UL_STATS_STRUCT_V4_NUMBER_OF_RBS 20
+
+#define ICD_EL2_PDCP_UL_STATS_STRUCT_V4_MAX_SIZE 2248
+
+typedef struct {
+ kal_uint32 configuration_index; // Unique radio bearer configuration index
+ // (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)
+ // Enum { 0: DRB1,
+ // 1: DRB2,
+ // 2: DRB3,
+ // 3: DRB4,
+ // 4: DRB5,
+ // 5: DRB6,
+ // 6: DRB7,
+ // 7: DRB8,
+ // 8: DRB9,
+ // 9: DRB10,
+ // 10: DRB11,
+ // 11: DRB12,
+ // 12: DRB13,
+ // 13: DRB14,
+ // 14: DRB15,
+ // 15: DRB16,
+ // 16: DRB17,
+ // 17: DRB18,
+ // 18: DRB19,
+ // 19: DRB20,
+ // 20: DRB21,
+ // 21: DRB22,
+ // 22: DRB23,
+ // 23: DRB24,
+ // 24: DRB25,
+ // 25: DRB26,
+ // 26: DRB27,
+ // 27: DRB28,
+ // 28: DRB29,
+ // 29: DRB30,
+ // 30: DRB31,
+ // 31: DRB32,
+ // 32: SRB0,
+ // 33: SRB1,
+ // 34: SRB2 }
+ kal_uint32 tx_data_pdu_bytes; // Total bytes of PDCP Data PDUs transmitted
+ kal_uint32 tx_control_pdu_bytes; // Total bytes of PDCP Control PDUs transmitted
+ kal_uint32 rohc_fail_num; // Total number of PDCP PDUs ROHC compresssion failed
+ kal_uint32 sdu_discard_bytes; // Total bytes of PDCP SDUs along with the corresponding PDCP Data
+ // PDUs discarded
+ kal_uint32 retx_pdu_bytes; // Total bytes of PDCP PDUs retransmitted
+ kal_uint32 num_reest; // Total number of reestablishment
+ kal_uint32 tx_data_pdu_num; // Total number of PDCP Data PDUs transmitted
+ kal_uint32 tx_ctrl_pdu_num; // Total number of PDCP Control PDUs transmitted
+ kal_uint32 tx_status_pdu_num; // Total number of PDCP Status PDUs transmitted
+ kal_uint32 sdu_discard_num; // Total number of PDCP SDUs along with the corresponding PDCP
+ // Data PDUs discarded
+ kal_uint32 ho_retx_num; // Total number of PDCP PDUs retransmitted during handover
+ kal_uint32 sdu_discard_num_reest; // Total number of PDCP SDUs along with the corresponding PDCP Data
+ // PDUs discarded since last reestablishment
+ kal_uint32 sdu_discard_bytes_reest; // Total bytes of PDCP SDUs along with the corresponding PDCP Data
+ // PDUs discarded since last reestablishment
+ kal_uint32 tx_data_pdu_num_reest; // Total number of PDCP Data PDUs transmitted since last
+ // reestablishment
+ kal_uint32 tx_data_pdu_bytes_reest; // Total bytes of PDCP Data PDUs transmitted since last
+ // reestablishment
+ kal_uint32 tx_ctrl_pdu_num_reest; // Total number of PDCP Control PDUs transmitted since
+ // last reestablishment
+ kal_uint32 tx_ctrl_pdu_bytes_reest; // Total bytes of PDCP Control PDUs transmitted since
+ // last reestablishment
+ kal_uint32 tx_status_pdu_num_reest; // Total number of PDCP Status PDUs transmitted since
+ // last reestablishment
+ kal_uint32 tx_status_pdu_bytes_reest; // Total bytes of PDCP Status PDUs transmitted since
+ // last reestablishment
+ kal_uint32 rohc_fail_num_reest; // Total number of PDCP PDUs ROHC compresssion failed
+ // since last reestablishment
+ kal_uint32 min_packet_byte; // Minimum bytes of transmitted packet during this time
+ kal_uint32 max_packet_byte; // Maximum bytes of transmitted packet during this time
+ kal_uint32 buffer_packet_number; // Total packet number store in PDCP buffer
+ kal_uint32 buffer_average_time; // The average time that the UL packet store in PDCP buffer during
+ // this report period, Unit:ms
+ kal_uint32 buffer_max_time; // The maximum time that the UL packet store in PDCP buffer during
+ // this report period, Unit:ms
+ kal_uint32 total_sdu_num; // Total PDCP SDU number in reporting period.
+ kal_uint32 uplink_data_volume_bytes; // Total bytes of PDCP Uplink data volume.
+} el2_pdcp_ul_stats_v4;
+
+typedef el2_pdcp_ul_stats_v4 el2_pdcp_ul_stats;
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 number_of_rbs; // range[0, 20]
+ el2_pdcp_ul_stats rb_ul_statistics[MAX_ICD_EL2_PDCP_UL_STATS_STRUCT_V4_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_el2_pdcp_ul_stats_struct_v4;
+
+typedef icd_el2_pdcp_ul_stats_struct_v4 icd_el2_pdcp_ul_stats_struct;
+
+
+#endif /* _EL2_PDCP_UL_STATS_H */
+
+
+/* Public JSON start
+"EL2_PDCP_UL_Stats": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x708E", "Name": "EL2_PDCP_UL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_PDCP_UL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "EL2_PDCP_UL_Stats_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_PDCP_UL_Stats"}, "EL2_PDCP_UL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_PDCP_UL_Stats_Info_V1", ""], "1": ["2", "EL2_PDCP_UL_Stats_Info_V2", ""]}, "Name": "EL2_PDCP_UL_Stats_Versions"}, "EL2_PDCP_UL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "EL2_PDCP_UL_Stats_Info_V1", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 20]"], "1": ["RB UL Statistics", "EL2_PDCP_UL_Stats_V1", "N", "32", "VAR", "N := Number of RBs"]}}, "EL2_PDCP_UL_Stats_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "EL2_PDCP_UL_Stats_Info_V2", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 20]"], "1": ["RB UL Statistics", "EL2_PDCP_UL_Stats_V2", "N", "32", "VAR", "N := Number of RBs"]}}, "EL2_PDCP_UL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Configuration Index", "UINT32", "1", "0", "32", "Unique radio bearer configuration index"], "1": ["Tx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs transmitted"], "2": ["Tx Control PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs transmitted"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC compresssion failed"], "4": ["SDU Discard Bytes", "UINT32", "1", "128", "32", "Total bytes of PDCP SDUs discarded"], "5": ["ReTx PDU Bytes", "UINT32", "1", "160", "32", "Total bytes of PDCP PDUs retransmitted"], "6": ["Num Reest", "UINT32", "1", "192", "32", "Total number of reestablishment"], "7": ["Tx Data PDU Num", "UINT32", "1", "224", "32", "Total number of PDCP Data PDUs transmitted"], "8": ["Tx Ctrl PDU Num", "UINT32", "1", "256", "32", "Total number of PDCP Control PDUs transmitted"], "9": ["Tx Status PDU Num", "UINT32", "1", "288", "32", "Total number of PDCP Status PDUs transmitted"], "10": ["SDU Discard Num", "UINT32", "1", "320", "32", "Total number of PDCP PDUs discarded"], "11": ["HO ReTx Num", "UINT32", "1", "352", "32", "Total number of PDCP PDUs retransmitted during handover"], "12": ["SDU Discard Num Reest", "UINT32", "1", "384", "32", "Total number of PDCP PDUs discarded since last\nreestablishment"], "13": ["SDU Discard Bytes Reest", "UINT32", "1", "416", "32", "Total bytes of PDCP PDUs discarded since last\nreestablishment"], "14": ["Tx Data PDU Num Reest", "UINT32", "1", "448", "32", "Total number of PDCP Data PDUs transmitted since last\nreestablishment"], "15": ["Tx Data PDU Bytes Reest", "UINT32", "1", "480", "32", "Total bytes of PDCP Data PDUs transmitted since last\nreestablishment"], "16": ["Tx Ctrl PDU Num Reest", "UINT32", "1", "512", "32", "Total number of PDCP Control PDUs transmitted since\nlast reestablishment"], "17": ["Tx Ctrl PDU Bytes Reest", "UINT32", "1", "544", "32", "Total bytes of PDCP Control PDUs transmitted since\nlast reestablishment"], "18": ["Tx Status PDU Num Reest", "UINT32", "1", "576", "32", "Total number of PDCP Status PDUs transmitted since\nlast reestablishment"], "19": ["Tx Status PDU Bytes Reest", "UINT32", "1", "608", "32", "Total bytes of PDCP Status PDUs transmitted since\nlast reestablishment"], "20": ["Rohc Fail Num Reest", "UINT32", "1", "640", "32", "Total number of PDCP PDUs ROHC compresssion failed\nsince last reestablishment"], "21": ["Min Packet Byte", "UINT32", "1", "672", "32", "Minimum bytes of transmitted packet during this time"], "22": ["Max Packet Byte", "UINT32", "1", "704", "32", "Maximum bytes of transmitted packet during this time"]}, "Name": "EL2_PDCP_UL_Stats_V1"}, "EL2_PDCP_UL_Stats_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Configuration Index", "UINT32", "1", "0", "32", "Unique radio bearer configuration index"], "1": ["Tx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs transmitted"], "2": ["Tx Control PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs transmitted"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC compresssion failed"], "4": ["SDU Discard Bytes", "UINT32", "1", "128", "32", "Total bytes of PDCP SDUs discarded"], "5": ["ReTx PDU Bytes", "UINT32", "1", "160", "32", "Total bytes of PDCP PDUs retransmitted"], "6": ["Num Reest", "UINT32", "1", "192", "32", "Total number of reestablishment"], "7": ["Tx Data PDU Num", "UINT32", "1", "224", "32", "Total number of PDCP Data PDUs transmitted"], "8": ["Tx Ctrl PDU Num", "UINT32", "1", "256", "32", "Total number of PDCP Control PDUs transmitted"], "9": ["Tx Status PDU Num", "UINT32", "1", "288", "32", "Total number of PDCP Status PDUs transmitted"], "10": ["SDU Discard Num", "UINT32", "1", "320", "32", "Total number of PDCP PDUs discarded"], "11": ["HO ReTx Num", "UINT32", "1", "352", "32", "Total number of PDCP PDUs retransmitted during handover"], "12": ["SDU Discard Num Reest", "UINT32", "1", "384", "32", "Total number of PDCP PDUs discarded since last\nreestablishment"], "13": ["SDU Discard Bytes Reest", "UINT32", "1", "416", "32", "Total bytes of PDCP PDUs discarded since last\nreestablishment"], "14": ["Tx Data PDU Num Reest", "UINT32", "1", "448", "32", "Total number of PDCP Data PDUs transmitted since last\nreestablishment"], "15": ["Tx Data PDU Bytes Reest", "UINT32", "1", "480", "32", "Total bytes of PDCP Data PDUs transmitted since last\nreestablishment"], "16": ["Tx Ctrl PDU Num Reest", "UINT32", "1", "512", "32", "Total number of PDCP Control PDUs transmitted since\nlast reestablishment"], "17": ["Tx Ctrl PDU Bytes Reest", "UINT32", "1", "544", "32", "Total bytes of PDCP Control PDUs transmitted since\nlast reestablishment"], "18": ["Tx Status PDU Num Reest", "UINT32", "1", "576", "32", "Total number of PDCP Status PDUs transmitted since\nlast reestablishment"], "19": ["Tx Status PDU Bytes Reest", "UINT32", "1", "608", "32", "Total bytes of PDCP Status PDUs transmitted since\nlast reestablishment"], "20": ["Rohc Fail Num Reest", "UINT32", "1", "640", "32", "Total number of PDCP PDUs ROHC compresssion failed\nsince last reestablishment"], "21": ["Min Packet Byte", "UINT32", "1", "672", "32", "Minimum bytes of transmitted packet during this time"], "22": ["Max Packet Byte", "UINT32", "1", "704", "32", "Maximum bytes of transmitted packet during this time"], "23": ["buffer packet number", "UINT32", "1", "736", "32", "Total packet number store in PDCP buffer"], "24": ["buffer average time", "UINT32", "1", "768", "32", "The average time that the UL packet store in PDCP buffer, Unit:ms"], "25": ["buffer max time", "UINT32", "1", "800", "32", "The maximum time that the UL packet store in PDCP bufferr, Unit:ms"]}, "Name": "EL2_PDCP_UL_Stats_V2"}}},
+ Public JSON end */
+// Checksum : [70db313eecc4aeaa04c142097aee53ce]
diff --git a/mcu/interface/service/icd/el2/EL2_RLC_DL_STATS.h b/mcu/interface/service/icd/el2/EL2_RLC_DL_STATS.h
new file mode 100644
index 0000000..b22282f
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_RLC_DL_STATS.h
@@ -0,0 +1,138 @@
+// ICD Header Format v3
+// Name : EL2_RLC_DL_Stats
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7088
+// Version : V2.4-162-gc91165c
+
+#ifndef _EL2_RLC_DL_STATS_H
+#define _EL2_RLC_DL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_DL_STATS 0x7088
+
+#define ICD_EL2_EL2_RLC_DL_STATS_INFO_V2 2
+
+#define MAX_ICD_EL2_RLC_DL_STATS_STRUCT_V2_NUMBER_OF_RBS 20
+
+#define ICD_EL2_RLC_DL_STATS_STRUCT_V2_MAX_SIZE 4408
+
+typedef struct {
+ kal_uint8 cfg_idx; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)
+ // Enum { 0: DRB1,
+ // 1: DRB2,
+ // 2: DRB3,
+ // 3: DRB4,
+ // 4: DRB5,
+ // 5: DRB6,
+ // 6: DRB7,
+ // 7: DRB8,
+ // 8: DRB9,
+ // 9: DRB10,
+ // 10: DRB11,
+ // 11: DRB12,
+ // 12: DRB13,
+ // 13: DRB14,
+ // 14: DRB15,
+ // 15: DRB16,
+ // 16: DRB17,
+ // 17: DRB18,
+ // 18: DRB19,
+ // 19: DRB20,
+ // 20: DRB21,
+ // 21: DRB22,
+ // 22: DRB23,
+ // 23: DRB24,
+ // 24: DRB25,
+ // 25: DRB26,
+ // 26: DRB27,
+ // 27: DRB28,
+ // 28: DRB29,
+ // 29: DRB30,
+ // 30: DRB31,
+ // 31: DRB32,
+ // 32: SRB0,
+ // 33: SRB1,
+ // 34: SRB2 }
+ kal_uint8 mode; // RLC mode (Enum {0: AM, 1: UM} )
+ kal_uint8 rb_id; // The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..2, DRB Range: 1..32) Range [1, 32]
+ kal_uint8 eps_bearer_id; // The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]
+ kal_uint8 lcid; // Identity of the logical channel to which this structure pertains (Range: 3..10) Range [3, 10]
+ kal_uint8 reserved[3];
+ kal_uint32 rx_pdu_cnt; // The number of RLC PDUs received on this RB
+ kal_uint32 reest_cnt; // Total count of RLC reestablishment
+ kal_uint32 rx_data_pdu_cnt; // Total count of RLC Data PDUs received
+ kal_uint32 rx_data_pdu_bytes; // Total count of RLC Data PDU received in bytes
+ kal_uint32 rx_ctrl_pdu_cnt; // Total count of RLC Control PDUs received
+ kal_uint32 rx_ctrl_pdu_bytes; // Total count of RLC Control PDU received in bytes
+ kal_uint32 rx_status_cnt; // Total count of valid RLC status PDU received
+ kal_uint32 rx_status_bytes; // Total count of valid RLC status PDU received in bytes
+ kal_uint32 pdu_invalid_cnt; // Total count of RLC PDUs invalid
+ kal_uint32 pdu_invalid_bytes; // Total count of RLC PDUs invalid in bytes
+ kal_uint32 pdu_retx_cnt; // Total count of RLC PDUs retransmitted from receiver perspective
+ kal_uint32 pdu_retx_bytes; // Total count of RLC PDUs retransmitted in bytes from receiver perspective
+ kal_uint32 pdu_dup_cnt; // Total count of RLC PDUs duplicated
+ kal_uint32 pdu_dup_bytes; // Total count of RLC PDUs duplicated in bytes
+ kal_uint32 pdu_dropped_cnt; // Total count of PDUs dropped excluding duplicated
+ kal_uint32 pdu_dropped_bytes; // Total count of PDUs dropped in bytes excluding duplicated
+ kal_uint32 tx_ctrl_pdu_cnt; // Total count of control PDUs sent
+ kal_uint32 tx_complete_nack_cnt; // Total count of complete RLC PDU NACKs sent
+ kal_uint32 tx_seg_nack_cnt; // Total count of RLC segments NACk sent
+ kal_uint32 missed_um_pdu_cnt; // Total count of UM PDUs missing on DL
+ kal_uint32 out_of_order_sdu_count; // Total count of out of order SDUs forwarded to PDCP during RLC reestablishment
+ kal_uint32 pdu_dropped_cnt_flow_ctrl; // Total count of PDUs dropped because of flow control
+ kal_uint32 pdu_dropped_bytes_flow_ctrl; // Total count of PDUs dropped in bytes because of flow control
+ kal_uint32 sdu_reassemb_cnt; // Total count of reassembled SDU
+ kal_uint32 sdu_reassemb_bytes; // Total count of reassembled SDU in bytes
+ kal_uint32 t_reordering_expiry_cnt; // Total count of t-reordering expiry
+ kal_uint32 t_reordering_start_cnt; // Total count of t-reordering start
+ kal_uint32 rx_data_pdu_cnt_reest; // Total count of RLC Data PDUs received since the last RLC re-establishment
+ kal_uint32 rx_data_pdu_bytes_reest; // Total count of RLC Data PDU received in bytes since the last RLC re-establishment
+ kal_uint32 rx_ctrl_pdu_cnt_reest; // Total count of RLC Control PDUs received since the last RLC re-establishment
+ kal_uint32 rx_ctrl_pdu_bytes_reest; // Total count of RLC Control PDU received in bytes since the last RLC re-establishment
+ kal_uint32 rx_status_num_reest; // Total count of valid RLC status PDU received since the last RLC re-establishment
+ kal_uint32 rx_status_bytes_reest; // Total count of valid RLC status PDU received in bytes since the last RLC re-establishment
+ kal_uint32 pdu_invalid_cnt_reest; // Total count of RLC PDUs invalid since the last RLC re-establishment
+ kal_uint32 pdu_invalid_bytes_reest; // Total count of RLC PDUs invalid in bytes since the last RLC re-establishment
+ kal_uint32 pdu_retx_cnt_reest; // Total count of RLC PDUs retransmitted from receiver perspective since the last RLC re-establishment
+ kal_uint32 pdu_retx_bytes_reest; // Total count of RLC PDUs retransmitted in bytes from receiver perspective since the last RLC re-establishment
+ kal_uint32 pdu_dup_cnt_reest; // Total count of RLC PDUs duplicated since the last RLC re-establishment
+ kal_uint32 pdu_dup_bytes_reest; // Total count of RLC PDUs duplicated in bytes since the last RLC re-establishment
+ kal_uint32 pdu_dropped_cnt_reest; // Total count of PDUs dropped excluding duplicated since the last RLC re-establishment
+ kal_uint32 pdu_dropped_bytes_reest; // Total count of PDUs dropped in bytes excluding duplicated since the last RLC re-establishment
+ kal_uint32 tx_ctrl_pdu_cnt_reest; // Total count of control PDUs sent since the last RLC re-establishment
+ kal_uint32 tx_complete_nack_cnt_reest; // Total count of complete RLC PDU NACKs sent since the last RLC re-establishment
+ kal_uint32 tx_seg_nack_cnt_reest; // Total count of RLC segments NACk sent since the last RLC re-establishment
+ kal_uint32 missed_um_pdu_cnt_reest; // Total count of UM PDUs missing on DL since the last RLC re-establishment
+ kal_uint32 out_of_order_sdu_cnt_reest; // Total count of out of order SDUs forwarded to PDCP during RLC reestablishment since the last RLC re-establishment
+ kal_uint32 pdu_dropped_cnt_flow_ctrl_reest; // Total count of PDUs dropped because of flow control since the last RLC re-establishment
+ kal_uint32 pdu_dropped_bytes_flow_ctrl_reest; // Total count of PDUs dropped in bytes because of flow control since the last RLC re-establishment
+ kal_uint32 sdu_reassemb_cnt_reest; // Total count of reassembled SDU since the last RLC re-establishment
+ kal_uint32 sdu_reassemb_bytes_reest; // Total count of reassembled SDU in bytes since the last RLC re-establishment
+ kal_uint32 t_reordering_expiry_cnt_reest; // Total count of t-reordering expiry since the last RLC re-establishment
+ kal_uint32 t_reordering_start_cnt_reest; // Total count of t-reordering start since the last RLC re-establishment
+ kal_uint32 zerodlduration; // Total time with no (0 bytes) Downlink activity, unit:ms
+} el2_rlc_dl_stats_v2;
+
+typedef el2_rlc_dl_stats_v2 el2_rlc_dl_stats;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_rbs:24; // range[0, 20]
+ kal_uint32 duration; // RLC downlink measurement period to which this metric pertains in milliseconds (mapping to iQi: dwRlcDlDuration)
+ el2_rlc_dl_stats rb_dl_statistics[MAX_ICD_EL2_RLC_DL_STATS_STRUCT_V2_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_el2_rlc_dl_stats_struct_v2;
+
+typedef icd_el2_rlc_dl_stats_struct_v2 icd_el2_rlc_dl_stats_struct;
+
+
+#endif /* _EL2_RLC_DL_STATS_H */
+
+
+/* Public JSON start
+"EL2_RLC_DL_Stats": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7088", "Name": "EL2_RLC_DL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_RLC_DL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_RLC_DL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_RLC_DL_Stats"}, "EL2_RLC_DL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_DL_Stats_Info_V1", ""], "1": ["2", "EL2_RLC_DL_Stats_Info_V2", ""]}, "Name": "EL2_RLC_DL_Stats_Versions"}, "EL2_RLC_DL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB DL Statistics": "Number of RBs"}, "Name": "EL2_RLC_DL_Stats_Info_V1", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "24", "range[0, 20]"], "1": ["Duration", "UINT32", "1", "24", "32", "RLC downlink measurement period to which this metric pertains in milliseconds (mapping to iQi: dwRlcDlDuration)"], "2": ["RB DL Statistics", "EL2_RLC_DL_Stats_V1", "N", "56", "VAR", "N := Number of RBs"]}}, "EL2_RLC_DL_Stats_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB DL Statistics": "Number of RBs"}, "Name": "EL2_RLC_DL_Stats_Info_V2", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "24", "range[0, 20]"], "1": ["Duration", "UINT32", "1", "24", "32", "RLC downlink measurement period to which this metric pertains in milliseconds (mapping to iQi: dwRlcDlDuration)"], "2": ["RB DL Statistics", "EL2_RLC_DL_Stats_V2", "N", "56", "VAR", "N := Number of RBs"]}}, "EL2_RLC_DL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)\nEnum { 0: DRB1,\n1: DRB2,\n2: DRB3,\n3: DRB4,\n4: DRB5,\n5: DRB6,\n6: DRB7,\n7: DRB8,\n8: DRB9,\n9: DRB10,\n10: DRB11,\n11: DRB12,\n12: DRB13,\n13: DRB14,\n14: DRB15,\n15: DRB16,\n16: DRB17,\n17: DRB18,\n18: DRB19,\n19: DRB20,\n20: DRB21,\n21: DRB22,\n22: DRB23,\n23: DRB24,\n24: DRB25,\n25: DRB26,\n26: DRB27,\n27: DRB28,\n28: DRB29,\n29: DRB30,\n30: DRB31,\n31: DRB32,\n32: SRB0,\n33: SRB1,\n34: SRB2 }"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode (Enum {0: AM, 1: UM} )"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..2, DRB Range: 1..32) Range [1, 32]"], "3": ["EPS Bearer ID", "UINT8", "1", "24", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]"], "4": ["LCID", "UINT8", "1", "32", "8", "Identity of the logical channel to which this structure pertains (Range: 3..10) Range [3, 10]"], "5": ["Reserved", "UINT8", "3", "40", "24", ""], "6": ["Rx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs received on this RB"], "7": ["Reest Cnt", "UINT32", "1", "96", "32", "Total count of RLC reestablishment"], "8": ["Rx Data PDU Cnt", "UINT32", "1", "128", "32", "Total count of RLC Data PDUs received"], "9": ["Rx Data PDU Bytes", "UINT32", "1", "160", "32", "Total count of RLC Data PDU received in bytes"], "10": ["Rx Ctrl PDU Cnt", "UINT32", "1", "192", "32", "Total count of RLC Control PDUs received"], "11": ["Rx Ctrl PDU Bytes", "UINT32", "1", "224", "32", "Total count of RLC Control PDU received in bytes"], "12": ["Rx Status Cnt", "UINT32", "1", "256", "32", "Total count of valid RLC status PDU received"], "13": ["Rx Status Bytes", "UINT32", "1", "288", "32", "Total count of valid RLC status PDU received in bytes"], "14": ["PDU Invalid Cnt", "UINT32", "1", "320", "32", "Total count of RLC PDUs invalid"], "15": ["PDU Invalid Bytes", "UINT32", "1", "352", "32", "Total count of RLC PDUs invalid in bytes"], "16": ["PDU Retx Cnt", "UINT32", "1", "384", "32", "Total count of RLC PDUs retransmitted from receiver perspective"], "17": ["PDU Retx Bytes", "UINT32", "1", "416", "32", "Total count of RLC PDUs retransmitted in bytes from receiver perspective"], "18": ["PDU Dup Cnt", "UINT32", "1", "448", "32", "Total count of RLC PDUs duplicated"], "19": ["PDU Dup Bytes", "UINT32", "1", "480", "32", "Total count of RLC PDUs duplicated in bytes"], "20": ["PDU Dropped Cnt", "UINT32", "1", "512", "32", "Total count of PDUs dropped excluding duplicated"], "21": ["PDU Dropped Bytes", "UINT32", "1", "544", "32", "Total count of PDUs dropped in bytes excluding duplicated"], "22": ["Tx Ctrl PDU Cnt", "UINT32", "1", "576", "32", "Total count of control PDUs sent"], "23": ["Tx Complete Nack Cnt", "UINT32", "1", "608", "32", "Total count of complete RLC PDU NACKs sent"], "24": ["Tx Seg Nack Cnt", "UINT32", "1", "640", "32", "Total count of RLC segments NACk sent"], "25": ["Missed Um PDU Cnt", "UINT32", "1", "672", "32", "Total count of UM PDUs missing on DL"], "26": ["Out of Order SDU Count", "UINT32", "1", "704", "32", "Total count of out of order SDUs forwarded to PDCP during RLC reestablishment"], "27": ["PDU Dropped Cnt Flow Ctrl", "UINT32", "1", "736", "32", "Total count of PDUs dropped because of flow control"], "28": ["PDU Dropped Bytes Flow Ctrl", "UINT32", "1", "768", "32", "Total count of PDUs dropped in bytes because of flow control"], "29": ["SDU Reassemb Cnt", "UINT32", "1", "800", "32", "Total count of reassembled SDU"], "30": ["SDU Reassemb Bytes", "UINT32", "1", "832", "32", "Total count of reassembled SDU in bytes"], "31": ["T Reordering Expiry Cnt", "UINT32", "1", "864", "32", "Total count of t-reordering expiry"], "32": ["T Reordering Start Cnt", "UINT32", "1", "896", "32", "Total count of t-reordering start"], "33": ["Rx Data PDU Cnt Reest", "UINT32", "1", "928", "32", "Total count of RLC Data PDUs received since the last RLC re-establishment"], "34": ["Rx Data PDU Bytes Reest", "UINT32", "1", "960", "32", "Total count of RLC Data PDU received in bytes since the last RLC re-establishment"], "35": ["Rx Ctrl PDU Cnt Reest", "UINT32", "1", "992", "32", "Total count of RLC Control PDUs received since the last RLC re-establishment"], "36": ["Rx Ctrl PDU Bytes Reest", "UINT32", "1", "1024", "32", "Total count of RLC Control PDU received in bytes since the last RLC re-establishment"], "37": ["Rx Status Num Reest", "UINT32", "1", "1056", "32", "Total count of valid RLC status PDU received since the last RLC re-establishment"], "38": ["Rx Status Bytes Reest", "UINT32", "1", "1088", "32", "Total count of valid RLC status PDU received in bytes since the last RLC re-establishment"], "39": ["PDU Invalid Cnt Reest", "UINT32", "1", "1120", "32", "Total count of RLC PDUs invalid since the last RLC re-establishment"], "40": ["PDU Invalid Bytes Reest", "UINT32", "1", "1152", "32", "Total count of RLC PDUs invalid in bytes since the last RLC re-establishment"], "41": ["PDU Retx Cnt Reest", "UINT32", "1", "1184", "32", "Total count of RLC PDUs retransmitted from receiver perspective since the last RLC re-establishment"], "42": ["PDu Retx Bytes Reest", "UINT32", "1", "1216", "32", "Total count of RLC PDUs retransmitted in bytes from receiver perspective since the last RLC re-establishment"], "43": ["PDU Dup Cnt Reest", "UINT32", "1", "1248", "32", "Total count of RLC PDUs duplicated since the last RLC re-establishment"], "44": ["PDU Dup Bytes Reest", "UINT32", "1", "1280", "32", "Total count of RLC PDUs duplicated in bytes since the last RLC re-establishment"], "45": ["PDU Dropped Cnt Reest", "UINT32", "1", "1312", "32", "Total count of PDUs dropped excluding duplicated since the last RLC re-establishment"], "46": ["PDU Dropped Bytes Reest", "UINT32", "1", "1344", "32", "Total count of PDUs dropped in bytes excluding duplicated since the last RLC re-establishment"], "47": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "1376", "32", "Total count of control PDUs sent since the last RLC re-establishment"], "48": ["Tx Complete Nack Cnt Reest", "UINT32", "1", "1408", "32", "Total count of complete RLC PDU NACKs sent since the last RLC re-establishment"], "49": ["Tx Seg Nack Cnt Reest", "UINT32", "1", "1440", "32", "Total count of RLC segments NACk sent since the last RLC re-establishment"], "50": ["Missed Um Pdu Cnt Reest", "UINT32", "1", "1472", "32", "Total count of UM PDUs missing on DL since the last RLC re-establishment"], "51": ["Out of Order SDU Cnt Reest", "UINT32", "1", "1504", "32", "Total count of out of order SDUs forwarded to PDCP during RLC reestablishment since the last RLC re-establishment"], "52": ["PDU Dropped Cnt Flow Ctrl Reest", "UINT32", "1", "1536", "32", "Total count of PDUs dropped because of flow control since the last RLC re-establishment"], "53": ["PDU Dropped Bytes Flow Ctrl Reest", "UINT32", "1", "1568", "32", "Total count of PDUs dropped in bytes because of flow control since the last RLC re-establishment"], "54": ["SDU Reassemb Cnt Reest", "UINT32", "1", "1600", "32", "Total count of reassembled SDU since the last RLC re-establishment"], "55": ["SDU Reassemb Bytes Reest", "UINT32", "1", "1632", "32", "Total count of reassembled SDU in bytes since the last RLC re-establishment"], "56": ["T Reordering Expiry Cnt Reest", "UINT32", "1", "1664", "32", "Total count of t-reordering expiry since the last RLC re-establishment"], "57": ["T Reordering Start Cnt Reest", "UINT32", "1", "1696", "32", "Total count of t-reordering start since the last RLC re-establishment"]}, "Name": "EL2_RLC_DL_Stats_V1"}, "EL2_RLC_DL_Stats_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)\nEnum { 0: DRB1,\n1: DRB2,\n2: DRB3,\n3: DRB4,\n4: DRB5,\n5: DRB6,\n6: DRB7,\n7: DRB8,\n8: DRB9,\n9: DRB10,\n10: DRB11,\n11: DRB12,\n12: DRB13,\n13: DRB14,\n14: DRB15,\n15: DRB16,\n16: DRB17,\n17: DRB18,\n18: DRB19,\n19: DRB20,\n20: DRB21,\n21: DRB22,\n22: DRB23,\n23: DRB24,\n24: DRB25,\n25: DRB26,\n26: DRB27,\n27: DRB28,\n28: DRB29,\n29: DRB30,\n30: DRB31,\n31: DRB32,\n32: SRB0,\n33: SRB1,\n34: SRB2 }"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode (Enum {0: AM, 1: UM} )"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..2, DRB Range: 1..32) Range [1, 32]"], "3": ["EPS Bearer ID", "UINT8", "1", "24", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]"], "4": ["LCID", "UINT8", "1", "32", "8", "Identity of the logical channel to which this structure pertains (Range: 3..10) Range [3, 10]"], "5": ["Reserved", "UINT8", "3", "40", "24", ""], "6": ["Rx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs received on this RB"], "7": ["Reest Cnt", "UINT32", "1", "96", "32", "Total count of RLC reestablishment"], "8": ["Rx Data PDU Cnt", "UINT32", "1", "128", "32", "Total count of RLC Data PDUs received"], "9": ["Rx Data PDU Bytes", "UINT32", "1", "160", "32", "Total count of RLC Data PDU received in bytes"], "10": ["Rx Ctrl PDU Cnt", "UINT32", "1", "192", "32", "Total count of RLC Control PDUs received"], "11": ["Rx Ctrl PDU Bytes", "UINT32", "1", "224", "32", "Total count of RLC Control PDU received in bytes"], "12": ["Rx Status Cnt", "UINT32", "1", "256", "32", "Total count of valid RLC status PDU received"], "13": ["Rx Status Bytes", "UINT32", "1", "288", "32", "Total count of valid RLC status PDU received in bytes"], "14": ["PDU Invalid Cnt", "UINT32", "1", "320", "32", "Total count of RLC PDUs invalid"], "15": ["PDU Invalid Bytes", "UINT32", "1", "352", "32", "Total count of RLC PDUs invalid in bytes"], "16": ["PDU Retx Cnt", "UINT32", "1", "384", "32", "Total count of RLC PDUs retransmitted from receiver perspective"], "17": ["PDU Retx Bytes", "UINT32", "1", "416", "32", "Total count of RLC PDUs retransmitted in bytes from receiver perspective"], "18": ["PDU Dup Cnt", "UINT32", "1", "448", "32", "Total count of RLC PDUs duplicated"], "19": ["PDU Dup Bytes", "UINT32", "1", "480", "32", "Total count of RLC PDUs duplicated in bytes"], "20": ["PDU Dropped Cnt", "UINT32", "1", "512", "32", "Total count of PDUs dropped excluding duplicated"], "21": ["PDU Dropped Bytes", "UINT32", "1", "544", "32", "Total count of PDUs dropped in bytes excluding duplicated"], "22": ["Tx Ctrl PDU Cnt", "UINT32", "1", "576", "32", "Total count of control PDUs sent"], "23": ["Tx Complete Nack Cnt", "UINT32", "1", "608", "32", "Total count of complete RLC PDU NACKs sent"], "24": ["Tx Seg Nack Cnt", "UINT32", "1", "640", "32", "Total count of RLC segments NACk sent"], "25": ["Missed Um PDU Cnt", "UINT32", "1", "672", "32", "Total count of UM PDUs missing on DL"], "26": ["Out of Order SDU Count", "UINT32", "1", "704", "32", "Total count of out of order SDUs forwarded to PDCP during RLC reestablishment"], "27": ["PDU Dropped Cnt Flow Ctrl", "UINT32", "1", "736", "32", "Total count of PDUs dropped because of flow control"], "28": ["PDU Dropped Bytes Flow Ctrl", "UINT32", "1", "768", "32", "Total count of PDUs dropped in bytes because of flow control"], "29": ["SDU Reassemb Cnt", "UINT32", "1", "800", "32", "Total count of reassembled SDU"], "30": ["SDU Reassemb Bytes", "UINT32", "1", "832", "32", "Total count of reassembled SDU in bytes"], "31": ["T Reordering Expiry Cnt", "UINT32", "1", "864", "32", "Total count of t-reordering expiry"], "32": ["T Reordering Start Cnt", "UINT32", "1", "896", "32", "Total count of t-reordering start"], "33": ["Rx Data PDU Cnt Reest", "UINT32", "1", "928", "32", "Total count of RLC Data PDUs received since the last RLC re-establishment"], "34": ["Rx Data PDU Bytes Reest", "UINT32", "1", "960", "32", "Total count of RLC Data PDU received in bytes since the last RLC re-establishment"], "35": ["Rx Ctrl PDU Cnt Reest", "UINT32", "1", "992", "32", "Total count of RLC Control PDUs received since the last RLC re-establishment"], "36": ["Rx Ctrl PDU Bytes Reest", "UINT32", "1", "1024", "32", "Total count of RLC Control PDU received in bytes since the last RLC re-establishment"], "37": ["Rx Status Num Reest", "UINT32", "1", "1056", "32", "Total count of valid RLC status PDU received since the last RLC re-establishment"], "38": ["Rx Status Bytes Reest", "UINT32", "1", "1088", "32", "Total count of valid RLC status PDU received in bytes since the last RLC re-establishment"], "39": ["PDU Invalid Cnt Reest", "UINT32", "1", "1120", "32", "Total count of RLC PDUs invalid since the last RLC re-establishment"], "40": ["PDU Invalid Bytes Reest", "UINT32", "1", "1152", "32", "Total count of RLC PDUs invalid in bytes since the last RLC re-establishment"], "41": ["PDU Retx Cnt Reest", "UINT32", "1", "1184", "32", "Total count of RLC PDUs retransmitted from receiver perspective since the last RLC re-establishment"], "42": ["PDu Retx Bytes Reest", "UINT32", "1", "1216", "32", "Total count of RLC PDUs retransmitted in bytes from receiver perspective since the last RLC re-establishment"], "43": ["PDU Dup Cnt Reest", "UINT32", "1", "1248", "32", "Total count of RLC PDUs duplicated since the last RLC re-establishment"], "44": ["PDU Dup Bytes Reest", "UINT32", "1", "1280", "32", "Total count of RLC PDUs duplicated in bytes since the last RLC re-establishment"], "45": ["PDU Dropped Cnt Reest", "UINT32", "1", "1312", "32", "Total count of PDUs dropped excluding duplicated since the last RLC re-establishment"], "46": ["PDU Dropped Bytes Reest", "UINT32", "1", "1344", "32", "Total count of PDUs dropped in bytes excluding duplicated since the last RLC re-establishment"], "47": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "1376", "32", "Total count of control PDUs sent since the last RLC re-establishment"], "48": ["Tx Complete Nack Cnt Reest", "UINT32", "1", "1408", "32", "Total count of complete RLC PDU NACKs sent since the last RLC re-establishment"], "49": ["Tx Seg Nack Cnt Reest", "UINT32", "1", "1440", "32", "Total count of RLC segments NACk sent since the last RLC re-establishment"], "50": ["Missed Um Pdu Cnt Reest", "UINT32", "1", "1472", "32", "Total count of UM PDUs missing on DL since the last RLC re-establishment"], "51": ["Out of Order SDU Cnt Reest", "UINT32", "1", "1504", "32", "Total count of out of order SDUs forwarded to PDCP during RLC reestablishment since the last RLC re-establishment"], "52": ["PDU Dropped Cnt Flow Ctrl Reest", "UINT32", "1", "1536", "32", "Total count of PDUs dropped because of flow control since the last RLC re-establishment"], "53": ["PDU Dropped Bytes Flow Ctrl Reest", "UINT32", "1", "1568", "32", "Total count of PDUs dropped in bytes because of flow control since the last RLC re-establishment"], "54": ["SDU Reassemb Cnt Reest", "UINT32", "1", "1600", "32", "Total count of reassembled SDU since the last RLC re-establishment"], "55": ["SDU Reassemb Bytes Reest", "UINT32", "1", "1632", "32", "Total count of reassembled SDU in bytes since the last RLC re-establishment"], "56": ["T Reordering Expiry Cnt Reest", "UINT32", "1", "1664", "32", "Total count of t-reordering expiry since the last RLC re-establishment"], "57": ["T Reordering Start Cnt Reest", "UINT32", "1", "1696", "32", "Total count of t-reordering start since the last RLC re-establishment"], "58": ["ZeroDlDuration", "UINT32", "1", "1728", "32", "Total time with no (0 bytes) Downlink activity, unit:ms"]}, "Name": "EL2_RLC_DL_Stats_V2"}}},
+ Public JSON end */
+// Checksum : [b3d7b03f0eea7f184fc262c7295687f9]
diff --git a/mcu/interface/service/icd/el2/EL2_RLC_OTA_Messages.h b/mcu/interface/service/icd/el2/EL2_RLC_OTA_Messages.h
new file mode 100644
index 0000000..3934f5c
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_RLC_OTA_Messages.h
@@ -0,0 +1,94 @@
+// ICD Header Format v3
+// Name : EL2_RLC_OTA_Messages
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7089
+// Version : V2.6
+
+#ifndef _EL2_RLC_OTA_MESSAGES_H
+#define _EL2_RLC_OTA_MESSAGES_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_OTA_MESSAGES 0x7089
+
+#define ICD_EL2_EL2_RLC_OTA_MESSAGE_INFO_V1 1
+
+#define MAX_ICD_EL2_RLC_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_EL2_RLC_OTA_MESSAGE_STRUCT_V1_MAX_SIZE 564
+
+typedef struct {
+ kal_uint32 direction:1; // Transmission direction (0: UL, 1: DL)
+ kal_uint32 msg_type:1; // RLC message type (0: data, 1: control)
+ kal_uint32 cfg_idx:6; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)
+ kal_uint32 rlc_mode:1; // RLC mode (0: AM, 1: UM)
+ kal_uint32 sn_len:1; // SN field length (0: 5bit, 1: 10bit)
+ kal_uint32 li_field:1; // Indicate LI field exist or not (0: not exist, 1: exist)
+ kal_uint32 li_len:4; // Indicate LI length (11: 11-bit LI, 15: 15-bit LI)
+ kal_uint32 fi:2; // FI, Bit 0 is the Least Significant Bit
+ // Bit 0, First byte of the Data Field croresponds to the first byte of a RLC SDU (0: Yes, 1: No)
+ // Bit 1, Last byte of the Data field corresponds to the last byte of a RLC SDU (0: Yes, 1: No)
+ kal_uint32 pdu_status:3; // Indicate RLC PDU status
+ // 0: PDU Data
+ // 1: PDU Control
+ // 2: PDU Invalid
+ // 3: PDU Dropped
+ // 4: UM PDU Discarded
+ kal_uint32 reserved:12;
+ kal_uint16 log_mask; // logMask, indicate types of logging PDU
+ // Bit 0 is the Least Significant Bit
+ // For DL direction:
+ // Bit 0, resevred
+ // Bit 1, RLCDL config log
+ // Bit 2, RLCDL AM all PDU log
+ // Bit 3, RLCDL control PDU log
+ // Bit 4, RLCDL polling log
+ // Bit 5, RLCDL signaling log
+ // Bit 6, RLCDL UM data PDU log
+ // Bit 7, RLCDL statistics log
+ // Bit 8, RLCDL AM state log
+ // Bit 9, RLCDL UM state log
+ // Bit 10 to Bit 15, reserved
+ // For UL direction:
+ // Bit 0, reserved
+ // Bit 1, RLCUL config log
+ // Bit 2, RLCUL AM all PDU log
+ // Bit 3, RLCUL control PDU log
+ // Bit 4, RLCUL polling log
+ // Bit 5, RLCUL signaling log
+ // Bit 6, RLCUL UM data PDU log
+ // Bit 7, RLCUL statistics log
+ // Bit 8, RLCUL AM state log
+ // Bit 9, RLCUL UM state log
+ // Bit 10 to Bit 15, reserved
+ kal_uint16 pdu_size; // Raw PDU size in bytes
+ kal_uint16 reserved_1;
+ kal_uint16 rlc_hdr_len; // Indicate length of RLC header raw data (range[0, 16])
+ kal_uint8 rlc_hdr[16]; // For data PDU, logging RLC PDU header raw data. For control PDU, logging RLC PDU raw data, max 16bytes
+} el2_rlc_ota_message_record_v1;
+
+typedef el2_rlc_ota_message_record_v1 el2_rlc_ota_message_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 rlc_release:6; // 3GPP release number (e.g. 13)
+ kal_uint32 rlc_major_version:6; // Major version number
+ kal_uint32 rlc_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ el2_rlc_ota_message_record data_pdu_records[MAX_ICD_EL2_RLC_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_el2_rlc_ota_message_struct_v1;
+
+typedef icd_el2_rlc_ota_message_struct_v1 icd_el2_rlc_ota_message_struct;
+
+
+#endif /* _EL2_RLC_OTA_MESSAGES_H */
+
+
+/* Public JSON start
+"EL2_RLC_OTA_Messages": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7089", "Name": "EL2_RLC_OTA_Messages", "Type": "RECORD", "Desc": "The log is generated once every 50 ms or 20 records, whichever occurs first.\n"}, "table": {"EL2_RLC_OTA_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_RLC_OTA_Message_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_RLC_OTA_Message"}, "EL2_RLC_OTA_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_OTA_Message_Info_V1", ""]}, "Name": "EL2_RLC_OTA_Message_Versions"}, "EL2_RLC_OTA_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Data PDU Records": "Number of Records"}, "Name": "EL2_RLC_OTA_Message_Info_V1", "Data": {"0": ["RLC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 13)"], "1": ["RLC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["RLC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["Data PDU Records", "EL2_RLC_OTA_Message_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "EL2_RLC_OTA_Message_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Direction", "UINT32", "1", "0", "1", "Transmission direction (0: UL, 1: DL)"], "1": ["Msg Type", "UINT32", "1", "1", "1", "RLC message type (0: data, 1: control)"], "2": ["Cfg Idx", "UINT32", "1", "2", "6", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)"], "3": ["RLC Mode", "UINT32", "1", "8", "1", "RLC mode (0: AM, 1: UM)"], "4": ["SN Len", "UINT32", "1", "9", "1", "SN field length (0: 5bit, 1: 10bit)"], "5": ["LI Field", "UINT32", "1", "10", "1", "Indicate LI field exist or not (0: not exist, 1: exist)"], "6": ["LI Len", "UINT32", "1", "11", "4", "Indicate LI length (11: 11-bit LI, 15: 15-bit LI)"], "7": ["FI", "UINT32", "1", "15", "2", "FI, Bit 0 is the Least Significant Bit\nBit 0, First byte of the Data Field croresponds to the first byte of a RLC SDU (0: Yes, 1: No)\nBit 1, Last byte of the Data field corresponds to the last byte of a RLC SDU (0: Yes, 1: No)"], "8": ["PDU Status", "UINT32", "1", "17", "3", "Indicate RLC PDU status\n0: PDU Data\n1: PDU Control\n2: PDU Invalid\n3: PDU Dropped\n4: UM PDU Discarded"], "9": ["Reserved", "UINT32", "1", "20", "12", ""], "10": ["Log Mask", "UINT16", "1", "32", "16", "logMask, indicate types of logging PDU\nBit 0 is the Least Significant Bit\nFor DL direction:\nBit 0, resevred\nBit 1, RLCDL config log\nBit 2, RLCDL AM all PDU log\nBit 3, RLCDL control PDU log\nBit 4, RLCDL polling log\nBit 5, RLCDL signaling log\nBit 6, RLCDL UM data PDU log\nBit 7, RLCDL statistics log\nBit 8, RLCDL AM state log\nBit 9, RLCDL UM state log\nBit 10 to Bit 15, reserved\nFor UL direction:\nBit 0, reserved\nBit 1, RLCUL config log\nBit 2, RLCUL AM all PDU log\nBit 3, RLCUL control PDU log\nBit 4, RLCUL polling log\nBit 5, RLCUL signaling log\nBit 6, RLCUL UM data PDU log\nBit 7, RLCUL statistics log\nBit 8, RLCUL AM state log\nBit 9, RLCUL UM state log\nBit 10 to Bit 15, reserved"], "11": ["PDU Size", "UINT16", "1", "48", "16", "Raw PDU size in bytes"], "12": ["Reserved", "UINT16", "1", "64", "16", ""], "13": ["RLC Hdr Len", "UINT16", "1", "80", "16", "Indicate length of RLC header raw data (range[0, 16])"], "14": ["RLC Hdr", "UINT8", "16", "96", "128", "For data PDU, logging RLC PDU header raw data. For control PDU, logging RLC PDU raw data, max 16bytes"]}, "Name": "EL2_RLC_OTA_Message_Record_V1"}}},
+ Public JSON end */
+// Checksum : [98276436e2edad658c8c1aee58cdc693]
diff --git a/mcu/interface/service/icd/el2/EL2_RLC_Throughput_DL.h b/mcu/interface/service/icd/el2/EL2_RLC_Throughput_DL.h
new file mode 100644
index 0000000..d072209
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_RLC_Throughput_DL.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : EL2_RLC_Throughput_DL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7086
+// Version : V2.6
+
+#ifndef _EL2_RLC_THROUGHPUT_DL_H
+#define _EL2_RLC_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_THROUGHPUT_DL 0x7086
+
+#define ICD_EL2_EL2_RLC_THROUGHPUT_DL_V1 1
+
+#define ICD_EL2_RLC_THROUGHPUT_DL_STRUCT_V1_MAX_SIZE 16
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 dl_rb_rcv_bits; // Recieved bits per second on all SRBs and DRBs (bps)
+ kal_uint32 dl_mcch_rcv_bits; // Received bits per second on MCCH (bps)
+ kal_uint32 dl_mrb_rcv_bits; // Received bits per second on MTCH (bps)
+} icd_el2_rlc_throughput_dl_struct_v1;
+
+typedef icd_el2_rlc_throughput_dl_struct_v1 icd_el2_rlc_throughput_dl_struct;
+
+
+#endif /* _EL2_RLC_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"EL2_RLC_Throughput_DL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7086", "Name": "EL2_RLC_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_RLC_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_RLC_Throughput_DL_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_RLC_Throughput_DL"}, "EL2_RLC_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_Throughput_DL_V1", ""]}, "Name": "EL2_RLC_Throughput_DL_Versions"}, "EL2_RLC_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["DL RB Rcv Bits", "UINT32", "1", "24", "32", "Recieved bits per second on all SRBs and DRBs (bps)"], "2": ["DL MCCH Rcv Bits", "UINT32", "1", "56", "32", "Received bits per second on MCCH (bps)"], "3": ["DL Mrb Rcv Bits", "UINT32", "1", "88", "32", "Received bits per second on MTCH (bps)"]}, "Name": "EL2_RLC_Throughput_DL_V1"}}},
+ Public JSON end */
+// Checksum : [15dac3bf52a48fa9f0eebfffbc298668]
diff --git a/mcu/interface/service/icd/el2/EL2_RLC_Throughput_UL.h b/mcu/interface/service/icd/el2/EL2_RLC_Throughput_UL.h
new file mode 100644
index 0000000..dac95f5
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_RLC_Throughput_UL.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : EL2_RLC_Throughput_UL
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x7087
+// Version : V2.6
+
+#ifndef _EL2_RLC_THROUGHPUT_UL_H
+#define _EL2_RLC_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_THROUGHPUT_UL 0x7087
+
+#define ICD_EL2_EL2_RLC_THROUGHPUT_UL_V1 1
+
+#define ICD_EL2_RLC_THROUGHPUT_UL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 ul_rb_tx_bits; // Transmitted bits per second on all RBs (bps)
+} icd_el2_rlc_throughput_ul_struct_v1;
+
+typedef icd_el2_rlc_throughput_ul_struct_v1 icd_el2_rlc_throughput_ul_struct;
+
+
+#endif /* _EL2_RLC_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"EL2_RLC_Throughput_UL": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7087", "Name": "EL2_RLC_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_RLC_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_RLC_Throughput_UL_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_RLC_Throughput_UL"}, "EL2_RLC_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_Throughput_UL_V1", ""]}, "Name": "EL2_RLC_Throughput_UL_Versions"}, "EL2_RLC_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["UL RB Tx Bits", "UINT32", "1", "24", "32", "Transmitted bits per second on all RBs (bps)"]}, "Name": "EL2_RLC_Throughput_UL_V1"}}},
+ Public JSON end */
+// Checksum : [768225c20efbe4b1ab3df43612542465]
diff --git a/mcu/interface/service/icd/el2/EL2_RLC_UL_STATS.h b/mcu/interface/service/icd/el2/EL2_RLC_UL_STATS.h
new file mode 100644
index 0000000..6aae5f9
--- /dev/null
+++ b/mcu/interface/service/icd/el2/EL2_RLC_UL_STATS.h
@@ -0,0 +1,117 @@
+// ICD Header Format v3
+// Name : EL2_RLC_UL_Stats
+// Category : LTE
+// Layer : EL2
+// Type : RECORD
+// Code : 0x708A
+// Version : V2.4-162-gc91165c
+
+#ifndef _EL2_RLC_UL_STATS_H
+#define _EL2_RLC_UL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_UL_STATS 0x708A
+
+#define ICD_EL2_EL2_RLC_UL_STATS_INFO_V2 1
+
+#define MAX_ICD_EL2_RLC_UL_STATS_STRUCT_V1_NUMBER_OF_RBS 20
+
+#define ICD_EL2_RLC_UL_STATS_STRUCT_V1_MAX_SIZE 2572
+
+typedef struct {
+ kal_uint8 cfg_idx; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)
+ // Enum { 0: DRB1,
+ // 1: DRB2,
+ // 2: DRB3,
+ // 3: DRB4,
+ // 4: DRB5,
+ // 5: DRB6,
+ // 6: DRB7,
+ // 7: DRB8,
+ // 8: DRB9,
+ // 9: DRB10,
+ // 10: DRB11,
+ // 11: DRB12,
+ // 12: DRB13,
+ // 13: DRB14,
+ // 14: DRB15,
+ // 15: DRB16,
+ // 16: DRB17,
+ // 17: DRB18,
+ // 18: DRB19,
+ // 19: DRB20,
+ // 20: DRB21,
+ // 21: DRB22,
+ // 22: DRB23,
+ // 23: DRB24,
+ // 24: DRB25,
+ // 25: DRB26,
+ // 26: DRB27,
+ // 27: DRB28,
+ // 28: DRB29,
+ // 29: DRB30,
+ // 30: DRB31,
+ // 31: DRB32,
+ // 32: SRB0,
+ // 33: SRB1,
+ // 34: SRB2 }
+ kal_uint8 mode; // RLC mode (Enum {0: AM, 1: UM})
+ kal_uint8 rb_id; // The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..2, DRB Range [1, 32])
+ kal_uint8 eps_bearer_id; // The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]
+ kal_uint8 lcid; // Identity of the logical channel to which this structure pertains (Range: 3..10) Range [3, 10]
+ kal_uint8 num_reest; // Total count of RLC reestablishment
+ kal_uint16 reserved;
+ kal_uint32 tx_pdu_cnt; // The number of RLC PDUs transmitted on this RB
+ kal_uint32 tx_data_pdu_cnt; // Total count of New Data PDU transmitted
+ kal_uint32 tx_data_pdu_bytes; // Total count of New Data PDU transmitted in bytes including RLC headers
+ kal_uint32 tx_sdu_cnt; // Total count of RLC SDUs transmitted
+ kal_uint32 tx_sdu_bytes; // Total count of RLC SDU in bytes transmitted
+ kal_uint32 tx_ctrl_pdu_cnt; // Total count of RLC control PDU transmitted
+ kal_uint32 tx_ctrl_pdu_bytes; // Total count of RLC Control PDU transmitted in bytes
+ kal_uint32 pdu_retx_cnt; // Total count of RLC PDUs retransmitted
+ kal_uint32 pdu_retx_bytes; // Total count of RLC PDUs retransmitted in bytes
+ kal_uint32 rx_ctrl_pdu_cnt; // Total count of RLC Control PDUs received
+ kal_uint32 rx_complete_nack_cnt; // Total count of Complete RLC PDU NACKs received
+ kal_uint32 rx_seg_nack_cnt; // Total count of NACKs for RLC Segments received
+ kal_uint32 rx_invalid_ctrl_pdu_cnt; // Total count of invalid control PDU received
+ kal_uint32 num_poll; // Total count of polling
+ kal_uint32 num_tpollretx_expiry; // Total count of tPollRetransmit timer expiry
+ kal_uint32 tx_data_pdu_cnt_reest; // Total count of New Data PDU transmitted since last RLC re-establishemnet
+ kal_uint32 tx_data_pdu_bytes_reest; // Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet
+ kal_uint32 tx_sdu_cnt_reest; // Total count of RLC SDUs transmitted since last RLC re-establishemnet
+ kal_uint32 tx_sdu_bytes_reest; // Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet
+ kal_uint32 tx_ctrl_pdu_cnt_reest; // Total count of RLC control PDU transmitted since last RLC re-establishemnet
+ kal_uint32 tx_ctrl_pdu_bytes_reest; // Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet
+ kal_uint32 pdu_retx_cnt_reest; // Total count of RLC PDUs retransmitted since last RLC re-establishemnet
+ kal_uint32 pdu_retx_bytes_reest; // Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet
+ kal_uint32 rx_ctrl_pdu_cnt_reest; // Total count of RLC Control PDUs received since last RLC re-establishemnet
+ kal_uint32 rx_complete_nack_cnt_reest; // Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet
+ kal_uint32 rx_seg_nack_cnt_reest; // Total count of NACKs for RLC Segments received since last RLC re-establishemnet
+ kal_uint32 rx_invalid_ctrl_pdu_cnt_reest; // Total count of invalid control PDU received since last RLC re-establishemnet
+ kal_uint32 num_poll_reest; // Total count of polling since last RLC re-establishemnet
+ kal_uint32 num_tpollretx_expiry_reest; // Total count of tPollRetransmit timer expiry since last RLC re-establishemnet
+ kal_uint32 zeroulduration; // Total time with no (0 bytes) uplink activity, unit: ms
+} el2_rlc_ul_stats_v2;
+
+typedef el2_rlc_ul_stats_v2 el2_rlc_ul_stats;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 rlc_ul_unrecoverable_error_num:24; // RLC is in ""AM"" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred
+ kal_uint32 number_of_rbs; // range[0, 20]
+ kal_uint32 duration; // RLC uplink measurement period to which this metric pertains in milliseconds (mapping to iQi: dwRlcUlDuration)
+ el2_rlc_ul_stats rb_ul_statistics[MAX_ICD_EL2_RLC_UL_STATS_STRUCT_V1_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_el2_rlc_ul_stats_struct_v1;
+
+typedef icd_el2_rlc_ul_stats_struct_v1 icd_el2_rlc_ul_stats_struct;
+
+
+#endif /* _EL2_RLC_UL_STATS_H */
+
+
+/* Public JSON start
+"EL2_RLC_UL_Stats": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x708A", "Name": "EL2_RLC_UL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"EL2_RLC_UL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_RLC_UL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_RLC_UL_Stats"}, "EL2_RLC_UL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_UL_Stats_Info_V1", ""], "1": ["1", "EL2_RLC_UL_Stats_Info_V2", ""]}, "Name": "EL2_RLC_UL_Stats_Versions"}, "EL2_RLC_UL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "EL2_RLC_UL_Stats_Info_V1", "Data": {"0": ["RLC UL Unrecoverable Error Num", "UINT32", "1", "0", "24", "RLC is in \"\"AM\"\" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred"], "1": ["Number of RBs", "UINT32", "1", "24", "32", "range[0, 20]"], "2": ["Duration", "UINT32", "1", "56", "32", "RLC uplink measurement period to which this metric pertains in milliseconds (mapping to iQi: dwRlcUlDuration)"], "3": ["RB UL Statistics", "EL2_RLC_UL_Stats_V1", "N", "88", "VAR", "N := Number of RBs"]}}, "EL2_RLC_UL_Stats_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "EL2_RLC_UL_Stats_Info_V2", "Data": {"0": ["RLC UL Unrecoverable Error Num", "UINT32", "1", "0", "24", "RLC is in \"\"AM\"\" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred"], "1": ["Number of RBs", "UINT32", "1", "24", "32", "range[0, 20]"], "2": ["Duration", "UINT32", "1", "56", "32", "RLC uplink measurement period to which this metric pertains in milliseconds (mapping to iQi: dwRlcUlDuration)"], "3": ["RB UL Statistics", "EL2_RLC_UL_Stats_V2", "N", "88", "VAR", "N := Number of RBs"]}}, "EL2_RLC_UL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)\nEnum { 0: DRB1,\n1: DRB2,\n2: DRB3,\n3: DRB4,\n4: DRB5,\n5: DRB6,\n6: DRB7,\n7: DRB8,\n8: DRB9,\n9: DRB10,\n10: DRB11,\n11: DRB12,\n12: DRB13,\n13: DRB14,\n14: DRB15,\n15: DRB16,\n16: DRB17,\n17: DRB18,\n18: DRB19,\n19: DRB20,\n20: DRB21,\n21: DRB22,\n22: DRB23,\n23: DRB24,\n24: DRB25,\n25: DRB26,\n26: DRB27,\n27: DRB28,\n28: DRB29,\n29: DRB30,\n30: DRB31,\n31: DRB32,\n32: SRB0,\n33: SRB1,\n34: SRB2 }"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode (Enum {0: AM, 1: UM})"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..2, DRB Range [1, 32])"], "3": ["EPS Bearer ID", "UINT8", "1", "24", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]"], "4": ["LCID", "UINT8", "1", "32", "8", "Identity of the logical channel to which this structure pertains (Range: 3..10) Range [3, 10]"], "5": ["Num Reest", "UINT8", "1", "40", "8", "Total count of RLC reestablishment"], "6": ["Reserved", "UINT16", "1", "48", "16", ""], "7": ["Tx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs transmitted on this RB"], "8": ["Tx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of New Data PDU transmitted"], "9": ["Tx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of New Data PDU transmitted in bytes including RLC headers"], "10": ["Tx SDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC SDUs transmitted"], "11": ["Tx SDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC SDU in bytes transmitted"], "12": ["Tx Ctrl PDU Cnt", "UINT32", "1", "224", "32", "Total count of RLC control PDU transmitted"], "13": ["Tx Ctrl PDU Bytes", "UINT32", "1", "256", "32", "Total count of RLC Control PDU transmitted in bytes"], "14": ["PDU Retx Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs retransmitted"], "15": ["PDU Retx Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs retransmitted in bytes"], "16": ["Rx Ctrl PDU Cnt", "UINT32", "1", "352", "32", "Total count of RLC Control PDUs received"], "17": ["Rx Complete Nack Cnt", "UINT32", "1", "384", "32", "Total count of Complete RLC PDU NACKs received"], "18": ["Rx Seg Nack Cnt", "UINT32", "1", "416", "32", "Total count of NACKs for RLC Segments received"], "19": ["Rx Invalid Ctrl PDU Cnt", "UINT32", "1", "448", "32", "Total count of invalid control PDU received"], "20": ["Num Poll", "UINT32", "1", "480", "32", "Total count of polling"], "21": ["Num Tpollretx Expiry", "UINT32", "1", "512", "32", "Total count of tPollRetransmit timer expiry"], "22": ["Tx Data PDU Cnt Reest", "UINT32", "1", "544", "32", "Total count of New Data PDU transmitted since last RLC re-establishemnet"], "23": ["Tx Data PDU Bytes Reest", "UINT32", "1", "576", "32", "Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet"], "24": ["Tx SDU Cnt Reest", "UINT32", "1", "608", "32", "Total count of RLC SDUs transmitted since last RLC re-establishemnet"], "25": ["Tx SDU Bytes Reest", "UINT32", "1", "640", "32", "Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet"], "26": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "672", "32", "Total count of RLC control PDU transmitted since last RLC re-establishemnet"], "27": ["Tx Ctrl PDU Bytes Reest", "UINT32", "1", "704", "32", "Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet"], "28": ["PDU Retx Cnt Reest", "UINT32", "1", "736", "32", "Total count of RLC PDUs retransmitted since last RLC re-establishemnet"], "29": ["PDU Retx Bytes Reest", "UINT32", "1", "768", "32", "Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet"], "30": ["Rx Ctrl Pdu Cnt Reest", "UINT32", "1", "800", "32", "Total count of RLC Control PDUs received since last RLC re-establishemnet"], "31": ["Rx Complete Nack Cnt Reest", "UINT32", "1", "832", "32", "Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet"], "32": ["Rx Seg Nack Cnt Reest", "UINT32", "1", "864", "32", "Total count of NACKs for RLC Segments received since last RLC re-establishemnet"], "33": ["Rx Invalid Ctrl PDU Cnt Reest", "UINT32", "1", "896", "32", "Total count of invalid control PDU received since last RLC re-establishemnet"], "34": ["Num Poll Reest", "UINT32", "1", "928", "32", "Total count of polling since last RLC re-establishemnet"], "35": ["Num Tpollretx Expiry Reest", "UINT32", "1", "960", "32", "Total count of tPollRetransmit timer expiry since last RLC re-establishemnet"]}, "Name": "EL2_RLC_UL_Stats_V1"}, "EL2_RLC_UL_Stats_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2)\nEnum { 0: DRB1,\n1: DRB2,\n2: DRB3,\n3: DRB4,\n4: DRB5,\n5: DRB6,\n6: DRB7,\n7: DRB8,\n8: DRB9,\n9: DRB10,\n10: DRB11,\n11: DRB12,\n12: DRB13,\n13: DRB14,\n14: DRB15,\n15: DRB16,\n16: DRB17,\n17: DRB18,\n18: DRB19,\n19: DRB20,\n20: DRB21,\n21: DRB22,\n22: DRB23,\n23: DRB24,\n24: DRB25,\n25: DRB26,\n26: DRB27,\n27: DRB28,\n28: DRB29,\n29: DRB30,\n30: DRB31,\n31: DRB32,\n32: SRB0,\n33: SRB1,\n34: SRB2 }"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode (Enum {0: AM, 1: UM})"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..2, DRB Range [1, 32])"], "3": ["EPS Bearer ID", "UINT8", "1", "24", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]"], "4": ["LCID", "UINT8", "1", "32", "8", "Identity of the logical channel to which this structure pertains (Range: 3..10) Range [3, 10]"], "5": ["Num Reest", "UINT8", "1", "40", "8", "Total count of RLC reestablishment"], "6": ["Reserved", "UINT16", "1", "48", "16", ""], "7": ["Tx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs transmitted on this RB"], "8": ["Tx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of New Data PDU transmitted"], "9": ["Tx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of New Data PDU transmitted in bytes including RLC headers"], "10": ["Tx SDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC SDUs transmitted"], "11": ["Tx SDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC SDU in bytes transmitted"], "12": ["Tx Ctrl PDU Cnt", "UINT32", "1", "224", "32", "Total count of RLC control PDU transmitted"], "13": ["Tx Ctrl PDU Bytes", "UINT32", "1", "256", "32", "Total count of RLC Control PDU transmitted in bytes"], "14": ["PDU Retx Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs retransmitted"], "15": ["PDU Retx Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs retransmitted in bytes"], "16": ["Rx Ctrl PDU Cnt", "UINT32", "1", "352", "32", "Total count of RLC Control PDUs received"], "17": ["Rx Complete Nack Cnt", "UINT32", "1", "384", "32", "Total count of Complete RLC PDU NACKs received"], "18": ["Rx Seg Nack Cnt", "UINT32", "1", "416", "32", "Total count of NACKs for RLC Segments received"], "19": ["Rx Invalid Ctrl PDU Cnt", "UINT32", "1", "448", "32", "Total count of invalid control PDU received"], "20": ["Num Poll", "UINT32", "1", "480", "32", "Total count of polling"], "21": ["Num Tpollretx Expiry", "UINT32", "1", "512", "32", "Total count of tPollRetransmit timer expiry"], "22": ["Tx Data PDU Cnt Reest", "UINT32", "1", "544", "32", "Total count of New Data PDU transmitted since last RLC re-establishemnet"], "23": ["Tx Data PDU Bytes Reest", "UINT32", "1", "576", "32", "Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet"], "24": ["Tx SDU Cnt Reest", "UINT32", "1", "608", "32", "Total count of RLC SDUs transmitted since last RLC re-establishemnet"], "25": ["Tx SDU Bytes Reest", "UINT32", "1", "640", "32", "Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet"], "26": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "672", "32", "Total count of RLC control PDU transmitted since last RLC re-establishemnet"], "27": ["Tx Ctrl PDU Bytes Reest", "UINT32", "1", "704", "32", "Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet"], "28": ["PDU Retx Cnt Reest", "UINT32", "1", "736", "32", "Total count of RLC PDUs retransmitted since last RLC re-establishemnet"], "29": ["PDU Retx Bytes Reest", "UINT32", "1", "768", "32", "Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet"], "30": ["Rx Ctrl Pdu Cnt Reest", "UINT32", "1", "800", "32", "Total count of RLC Control PDUs received since last RLC re-establishemnet"], "31": ["Rx Complete Nack Cnt Reest", "UINT32", "1", "832", "32", "Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet"], "32": ["Rx Seg Nack Cnt Reest", "UINT32", "1", "864", "32", "Total count of NACKs for RLC Segments received since last RLC re-establishemnet"], "33": ["Rx Invalid Ctrl PDU Cnt Reest", "UINT32", "1", "896", "32", "Total count of invalid control PDU received since last RLC re-establishemnet"], "34": ["Num Poll Reest", "UINT32", "1", "928", "32", "Total count of polling since last RLC re-establishemnet"], "35": ["Num Tpollretx Expiry Reest", "UINT32", "1", "960", "32", "Total count of tPollRetransmit timer expiry since last RLC re-establishemnet"], "36": ["ZeroUlDuration", "UINT32", "1", "992", "32", "Total time with no (0 bytes) uplink activity, unit: ms"]}, "Name": "EL2_RLC_UL_Stats_V2"}}},
+ Public JSON end */
+// Checksum : [d7ac807901ee499d1b15d38aa29ae355]
diff --git a/mcu/interface/service/icd/enas/ENAS_OTA_Message.h b/mcu/interface/service/icd/enas/ENAS_OTA_Message.h
new file mode 100644
index 0000000..7876e07
--- /dev/null
+++ b/mcu/interface/service/icd/enas/ENAS_OTA_Message.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : ENAS_OTA_Message
+// Category : LTE
+// Layer : ENAS
+// Type : RECORD
+// Code : 0x7180
+// Version : V2.6
+
+#ifndef _ENAS_OTA_MESSAGE_H
+#define _ENAS_OTA_MESSAGE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_OTA_MESSAGE 0x7180
+
+#define ICD_ENAS_ENAS_OTA_MESSAGE_V1 1
+
+#define MAX_ICD_ENAS_OTA_MESSAGE_STRUCT_V1_NUM_OF_PAYLOAD_LEN 8192
+
+#define ICD_ENAS_OTA_MESSAGE_STRUCT_V1_MAX_SIZE 8200
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 nas_release_number; // 3gpp release number (e.g. 13)
+ // majorVersion is 13
+ kal_uint8 nas_release_version; // 3gpp version number, left 4 bits are for
+ // x, right 4 bits are for y. (e.g. 01100001
+ // -> 6.1)
+ // minorVersion is x.y
+ // 3gppVersion is majorVersion.minorVersion
+ kal_uint8 ota_message_direction; // upstream (1)
+ // downstream (2)
+ kal_uint8 message_type; // esm (1)
+ // emm (2)
+ kal_uint8 ciphered; // BOOLEAN
+ kal_uint16 num_of_payload_len; // Length of the ASN.1 encoded message.
+ // range[0, 8192]
+ kal_uint8 payload[FLEXIBLE_ARRAY_SIZE]; // N := Num of Payload len
+ // nasPayload OCTET STRING(SIZE (1..8192))
+ // ASN.1 encoded message
+} icd_enas_ota_message_struct_v1;
+
+typedef icd_enas_ota_message_struct_v1 icd_enas_ota_message_struct;
+
+
+#endif /* _ENAS_OTA_MESSAGE_H */
+
+
+/* Public JSON start
+"ENAS_OTA_Message": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7180", "Name": "ENAS_OTA_Message", "Type": "RECORD", "Desc": "The log is generated when there is ENSA air messages.\n"}, "table": {"ENAS_Ota_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ENAS_Ota_Message_Versions", "1", "8", "VAR", ""]}, "Name": "ENAS_Ota_Message"}, "ENAS_Ota_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ENAS_Ota_Message_V1", ""]}, "Name": "ENAS_Ota_Message_Versions"}, "ENAS_Ota_Message_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Payload": "Num of Payload len"}, "Name": "ENAS_Ota_Message_V1", "Data": {"0": ["NAS Release Number", "UINT8", "1", "0", "8", "3gpp release number (e.g. 13)\nmajorVersion is 13"], "1": ["NAS Release Version", "UINT8", "1", "8", "8", "3gpp version number, left 4 bits are for\nx, right 4 bits are for y. (e.g. 01100001\n-> 6.1)\nminorVersion is x.y\n3gppVersion is majorVersion.minorVersion"], "2": ["Ota Message Direction", "UINT8", "1", "16", "8", "upstream (1)\ndownstream (2)"], "3": ["Message Type", "UINT8", "1", "24", "8", "esm (1)\nemm (2)"], "4": ["Ciphered", "UINT8", "1", "32", "8", "BOOLEAN"], "5": ["Num of Payload len", "UINT16", "1", "40", "16", "Length of the ASN.1 encoded message.\nrange[0, 8192]"], "6": ["Payload", "UINT8", "N", "56", "VAR", "N := Num of Payload len\nnasPayload OCTET STRING(SIZE (1..8192))\nASN.1 encoded message"]}}}},
+ Public JSON end */
+// Checksum : [61eea644ac339e9aae2fcaaf97152813]
diff --git a/mcu/interface/service/icd/errc/ERRC_AC_Bar_EVENT.h b/mcu/interface/service/icd/errc/ERRC_AC_Bar_EVENT.h
new file mode 100644
index 0000000..08bc8f5
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_AC_Bar_EVENT.h
@@ -0,0 +1,79 @@
+// ICD Header Format v3
+// Name : ERRC_AC_Bar_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7615
+// Version : V2.6
+
+#ifndef _ERRC_AC_BAR_EVENT_H
+#define _ERRC_AC_BAR_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_AC_BAR_EVENT 0x7615
+
+#define ICD_ERRC_ERRC_AC_BAR_INFO_V1 1
+
+#define ICD_ERRC_AC_BAR_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 ac_barringfactor; // AC barring factor brought
+ // in SIB2.
+ // 0: p00
+ // 1: p05
+ // 2: p10
+ // 3: p15
+ // 4: p20
+ // 5: p25
+ // 6: p30
+ // 7: p40
+ // 8: p50
+ // 9: p60
+ // 10: p70
+ // 11: p75
+ // 12: p80
+ // 13: p85
+ // 14: p90
+ // 15: p95
+ kal_uint8 ac_barringtime; // AC barring time brought
+ // in SIB2.
+ // 0: s4
+ // 1: s8
+ // 2: s16
+ // 3: s32
+ // 4: s64
+ // 5: s128
+ // 6: s256
+ // 7: s512
+ kal_uint8 establish_type; // RRC conection establish type
+ // 0: MO signalling
+ // 1: MO calls
+ // 2: MT calls
+ // 3: Emergency calls
+ // 4: MO CS fallback
+ // 5: MO MMTEL voice calls
+ // 6: MO MMTEL video calls
+ // 7: MO SMS
+ kal_uint8 ac_bar_type; // AC barring type applied
+ // 0: ac-BarringForEmergency
+ // 1: ac-BarringForMO-Signalling
+ // 2: ac-BarringForMO-Data
+ // 3: ac-BarringForCSFB-r10
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ kal_uint32 bar_time; // Actual AC Barring time
+} icd_errc_ac_bar_info_struct_v1;
+
+typedef icd_errc_ac_bar_info_struct_v1 icd_errc_ac_bar_info_struct;
+
+
+#endif /* _ERRC_AC_BAR_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_AC_Bar_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7615", "Name": "ERRC_AC_Bar_Event", "Type": "EVENT", "Desc": "The event is generated when AC barring happens.\n"}, "table": {"ERRC_AC_Bar_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_AC_Bar_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_AC_Bar_Info"}, "ERRC_AC_Bar_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_AC_Bar_Info_V1", ""], "1": ["2", "ERRC_AC_Bar_Info_V2", ""]}, "Name": "ERRC_AC_Bar_Info_Versions"}, "ERRC_AC_Bar_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ac-BarringFactor", "UINT8", "1", "0", "8", "AC barring factor brought\nin SIB2.\n0: p00\n1: p05\n2: p10\n3: p15\n4: p20\n5: p25\n6: p30\n7: p40\n8: p50\n9: p60\n10: p70\n11: p75\n12: p80\n13: p85\n14: p90\n15: p95"], "1": ["ac-BarringTime", "UINT8", "1", "8", "8", "AC barring time brought\nin SIB2.\n0: s4\n1: s8\n2: s16\n3: s32\n4: s64\n5: s128\n6: s256\n7: s512"], "2": ["Establish Type", "UINT8", "1", "16", "8", "RRC conection establish type\n0: MO signalling\n1: MO calls\n2: MT calls\n3: Emergency calls\n4: MO CS fallback\n5: MO MMTEL voice calls\n6: MO MMTEL video calls\n7: MO SMS"], "3": ["AC Bar Type", "UINT8", "1", "24", "8", "AC barring type applied\n0: ac-BarringForEmergency\n1: ac-BarringForMO-Signalling\n2: ac-BarringForMO-Data\n3: ac-BarringForCSFB-r10"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Reserved", "UINT16", "1", "40", "16", ""], "6": ["Bar Time", "UINT32", "1", "56", "32", "Actual AC Barring time"]}, "Name": "ERRC_AC_Bar_Info_V1"}, "ERRC_AC_Bar_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Barring Info Set": "Number of Barring Info Set"}, "Name": "ERRC_AC_Bar_Info_V2", "Data": {"0": ["is_AC_BAR", "UINT8", "1", "0", "8", "Indication of this AC bar type\n0: SIB barring info\n1: AC bar\nWhen is_ac_bar is 1,\nbarring_type do not use\nWhen is_ac_bar is 0, is_barred do not\nuse"], "1": ["Number of Barring Info Set", "UINT8", "1", "8", "8", "range[0, 4]. according to AC Bar Type"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Barring Info Set", "ERRC_Barring_Info_V1", "N", "24", "VAR", "N := Number of Barring Info Set\nIf is_AC_BAR is 1. N is 1\nIn IDLE state, this Barring Info would\nreport common parameter instead of\nparameter in selected plmn info"]}}, "ERRC_Barring_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ac-BarringFactor", "UINT8", "1", "0", "8", "AC barring factor brought\nin SIB2.\n0: p00\n1: p05\n2: p10\n3: p15\n4: p20\n5: p25\n6: p30\n7: p40\n8: p50\n9: p60\n10: p70\n11: p75\n12: p80\n13: p85\n14: p90\n15: p95"], "1": ["ac-BarringTime", "UINT8", "1", "8", "8", "AC barring time brought\nin SIB2.\n0: s4\n1: s8\n2: s16\n3: s32\n4: s64\n5: s128\n6: s256\n7: s512"], "2": ["Establish Type", "UINT8", "1", "16", "8", "RRC conection establish type\n0: MO signalling\n1: MO calls\n2: MT calls\n3: Emergency calls\n4: MO CS fallback\n5: MO MMTEL voice calls\n6: MO MMTEL video calls\n7: MO SMS\n8: MO DATA"], "3": ["AC Bar Type", "UINT8", "1", "24", "8", "AC barring type applied\n0: ac-BarringForEmergency\n1: ac-BarringForMO-Signalling\n2: ac-BarringForMO-Data\n3: ac-BarringForCSFB-r10"], "4": ["Barring type", "UINT8", "1", "32", "8", "0: None.\n1: Conditional\n2: Unconditional"], "5": ["Is Barred", "UINT8", "1", "40", "8", "0: Not bar\n1: bar"], "6": ["Reserved", "UINT16", "1", "48", "16", ""], "7": ["Bar Time", "UINT32", "1", "64", "32", "Actual AC Barring time\nunit: s"]}, "Name": "ERRC_Barring_Info_V1"}}},
+ Public JSON end */
+// Checksum : [c6cf770fcb6b1c7c3b097514763147cf]
diff --git a/mcu/interface/service/icd/errc/ERRC_IR_C2K_MEAS_RESULT_INFO.h b/mcu/interface/service/icd/errc/ERRC_IR_C2K_MEAS_RESULT_INFO.h
new file mode 100644
index 0000000..6ce14a3
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_IR_C2K_MEAS_RESULT_INFO.h
@@ -0,0 +1,69 @@
+// ICD Header Format v3
+// Name : ERRC_IR_C2K_MEAS_Result_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7108
+// Version : V2.6
+
+#ifndef _ERRC_IR_C2K_MEAS_RESULT_INFO_H
+#define _ERRC_IR_C2K_MEAS_RESULT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_IR_C2K_MEAS_RESULT_INFO 0x7108
+
+#define ICD_ERRC_ERRC_IR_C2K_MEAS_RESULT_INFO_V1 1
+
+#define ICD_ERRC_IR_C2K_MEAS_RESULT_INFO_STRUCT_V1_MAX_SIZE 13144
+
+typedef struct {
+ kal_uint16 pn; // PN
+ kal_int16 phase; // Pilot Pn Phase
+ kal_uint8 strength; // CDMA2000 Pilot Strength
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} errc_ccell_meas_info_v1;
+
+typedef errc_ccell_meas_info_v1 errc_ccell_meas_info;
+
+typedef struct {
+ kal_uint8 num_of_c2k_cell; // Number of C2K neighbor measurements on this frequency,
+ // range[0, 40]
+ kal_uint8 valid_for_search_size; // 0: search win size not valid, 1: search win size is valid
+ kal_uint8 search_win_size; // Search window size from SIB8
+ kal_uint8 reserved;
+ kal_uint32 carfn; // Carfcn of neighbor cell
+ errc_ccell_meas_info ccell_measurement[40]; // Number of C2K neighbor measurements
+} errc_c2k_meas_result_info_v1;
+
+typedef errc_c2k_meas_result_info_v1 errc_c2k_meas_result_info;
+
+typedef struct {
+ kal_uint8 num_of_c2k_freq; // Number of C2K frequency for neighbor measurements,
+ // range[0, 8]
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ errc_c2k_meas_result_info c2k_freq_meas[8]; // Array of C2K frequency neighbor measurements
+} errc_c2k_band_result_info_v1;
+
+typedef errc_c2k_band_result_info_v1 errc_c2k_band_result_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 num_of_c2k_band; // Number of C2K Band for neighbor measurements, range[0, 5]
+ kal_uint16 reserved;
+ errc_c2k_band_result_info c2k_band_meas[5]; // Array of C2K frequency neighbor measurements
+} icd_errc_ir_c2k_meas_result_info_struct_v1;
+
+typedef icd_errc_ir_c2k_meas_result_info_struct_v1 icd_errc_ir_c2k_meas_result_info_struct;
+
+
+#endif /* _ERRC_IR_C2K_MEAS_RESULT_INFO_H */
+
+
+/* Public JSON start
+"ERRC_IR_C2K_MEAS_Result_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7108", "Name": "ERRC_IR_C2K_MEAS_Result_Info", "Type": "RECORD", "Desc": "The log is generated when the interRAT C2K measurement result sent to ERRC (every 300ms or L1 measurement reporting interval of C2K ).\nNote : Report interval of this message should not less than 300ms, and L1 measurement reporting interval depends on the interRAT C2K measurement scheduling\n"}, "table": {"ERRC_IR_C2K_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_IR_C2K_Meas_Result_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IR_C2K_Meas_Result_Info"}, "ERRC_IR_C2K_Meas_Result_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IR_C2K_Meas_Result_Info_V1", ""]}, "Name": "ERRC_IR_C2K_Meas_Result_Info_Versions"}, "ERRC_IR_C2K_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of C2K Band", "UINT8", "1", "0", "8", "Number of C2K Band for neighbor measurements, range[0, 5]"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["C2K Band Meas", "ERRC_C2K_Band_Result_Info_V1", "5", "24", "105120", "Array of C2K frequency neighbor measurements"]}, "Name": "ERRC_IR_C2K_Meas_Result_Info_V1"}, "ERRC_C2K_Band_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of C2K Freq", "UINT8", "1", "0", "8", "Number of C2K frequency for neighbor measurements,\nrange[0, 8]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["C2K Freq Meas", "ERRC_C2K_Meas_Result_Info_V1", "8", "32", "20992", "Array of C2K frequency neighbor measurements"]}, "Name": "ERRC_C2K_Band_Result_Info_V1"}, "ERRC_C2K_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of C2K Cell", "UINT8", "1", "0", "8", "Number of C2K neighbor measurements on this frequency,\nrange[0, 40]"], "1": ["Valid for search size", "UINT8", "1", "8", "8", "0: search win size not valid, 1: search win size is valid"], "2": ["Search win size", "UINT8", "1", "16", "8", "Search window size from SIB8"], "3": ["Reserved", "UINT8", "1", "24", "8", ""], "4": ["Carfn", "UINT32", "1", "32", "32", "Carfcn of neighbor cell"], "5": ["CCell Measurement", "ERRC_CCell_Meas_Info_V1", "40", "64", "2560", "Number of C2K neighbor measurements"]}, "Name": "ERRC_C2K_Meas_Result_Info_V1"}, "ERRC_CCell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PN", "UINT16", "1", "0", "16", "PN"], "1": ["Phase", "INT16", "1", "16", "16", "Pilot Pn Phase"], "2": ["Strength", "UINT8", "1", "32", "8", "CDMA2000 Pilot Strength"], "3": ["Reserved", "UINT8", "1", "40", "8", ""], "4": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_CCell_Meas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [9ff103b50b2729779964d304a20ccc6c]
diff --git a/mcu/interface/service/icd/errc/ERRC_IR_GERAN_MEAS_RESULT_INFO.h b/mcu/interface/service/icd/errc/ERRC_IR_GERAN_MEAS_RESULT_INFO.h
new file mode 100644
index 0000000..df7aa96
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_IR_GERAN_MEAS_RESULT_INFO.h
@@ -0,0 +1,46 @@
+// ICD Header Format v3
+// Name : ERRC_IR_GERAN_MEAS_Result_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7107
+// Version : V2.6
+
+#ifndef _ERRC_IR_GERAN_MEAS_RESULT_INFO_H
+#define _ERRC_IR_GERAN_MEAS_RESULT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_IR_GERAN_MEAS_RESULT_INFO 0x7107
+
+#define ICD_ERRC_ERRC_IR_GERAN_MEAS_RESULT_INFO_V1 1
+
+#define ICD_ERRC_IR_GERAN_MEAS_RESULT_INFO_STRUCT_V1_MAX_SIZE 52
+
+typedef struct {
+ kal_uint8 bsic; // BSIC of neighbor cell
+ kal_uint8 reserved;
+ kal_uint16 arfcn; // Arfcn of neighbor cell
+ kal_int32 rssi; // Received Signal Strength Indicator of neighbor cell
+} errc_gcell_meas_info_v1;
+
+typedef errc_gcell_meas_info_v1 errc_gcell_meas_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 num_of_geran_cell; // Number of GERAN neighbor measurements, range[0, 6]
+ kal_uint16 reserved;
+ errc_gcell_meas_info gcell_measurement[6]; // Number of GERAN neighbor measurements
+} icd_errc_ir_geran_meas_result_info_struct_v1;
+
+typedef icd_errc_ir_geran_meas_result_info_struct_v1 icd_errc_ir_geran_meas_result_info_struct;
+
+
+#endif /* _ERRC_IR_GERAN_MEAS_RESULT_INFO_H */
+
+
+/* Public JSON start
+"ERRC_IR_GERAN_MEAS_Result_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7107", "Name": "ERRC_IR_GERAN_MEAS_Result_Info", "Type": "RECORD", "Desc": "The log is generated when the interRAT GERAN measurement result sent to ERRC (every 300ms or L1 measurement reporting interval of GERAN).\nNote : Report interval of this message should not less than 300ms, and L1 measurement reporting interval depends on the InterRAT GERAN measurement scheduling\n"}, "table": {"ERRC_IR_GERAN_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_IR_GERAN_Meas_Result_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IR_GERAN_Meas_Result_Info"}, "ERRC_IR_GERAN_Meas_Result_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IR_GERAN_Meas_Result_Info_V1", ""]}, "Name": "ERRC_IR_GERAN_Meas_Result_Info_Versions"}, "ERRC_IR_GERAN_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of GERAN Cell", "UINT8", "1", "0", "8", "Number of GERAN neighbor measurements, range[0, 6]"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["GCell Measurement", "ERRC_GCell_Meas_Info_V1", "6", "24", "384", "Number of GERAN neighbor measurements"]}, "Name": "ERRC_IR_GERAN_Meas_Result_Info_V1"}, "ERRC_GCell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BSIC", "UINT8", "1", "0", "8", "BSIC of neighbor cell"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Arfcn", "UINT16", "1", "16", "16", "Arfcn of neighbor cell"], "3": ["RSSI", "INT32", "1", "32", "32", "Received Signal Strength Indicator of neighbor cell"]}, "Name": "ERRC_GCell_Meas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [7c59a48af65191fb9c633924263c19ce]
diff --git a/mcu/interface/service/icd/errc/ERRC_IR_NR_MEAS_RESULT_INFO.h b/mcu/interface/service/icd/errc/ERRC_IR_NR_MEAS_RESULT_INFO.h
new file mode 100644
index 0000000..b18dc40
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_IR_NR_MEAS_RESULT_INFO.h
@@ -0,0 +1,102 @@
+// ICD Header Format v3
+// Name : ERRC_IR_NR_Meas_Result_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7109
+// Version : V2.4-88-g8e4314c
+
+#ifndef _ERRC_IR_NR_MEAS_RESULT_INFO_H
+#define _ERRC_IR_NR_MEAS_RESULT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_IR_NR_MEAS_RESULT_INFO 0x7109
+
+#define ICD_ERRC_ERRC_IR_NR_MEAS_RESULT_INFO_V2 2
+
+#define ICD_ERRC_IR_NR_MEAS_RESULT_INFO_STRUCT_V2_MAX_SIZE 848
+
+typedef struct {
+ kal_uint8 ssb_index; // SSB index with the best beam measurement result.
+ // range [0, 63]
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ kal_int32 rsrp; // RSRP of NR neighbor cell
+ // Unit: qdBm
+ kal_int32 rsrq; // RSRQ of NR neighbor cell
+ // Unit: qdB
+} errc_nr_best_beam_meas_info_v1;
+
+typedef errc_nr_best_beam_meas_info_v1 errc_nr_best_beam_meas_info;
+
+typedef struct {
+ kal_uint8 is_meas_valid; // Indicates if the B1 related measurement results
+ // are valid. The following info are invalid when
+ // this field is invalid.
+ // 0: Inavlid, 1: Valid
+ kal_uint8 reserved;
+ kal_uint16 pci; // PCI of NR neighbor cell
+ // range [0, 1007]
+ kal_uint32 narfcn; // Arfcn of NR neighbor cell
+ // range [0, 3279165]
+ kal_int32 rsrp; // RSRP of NR neighbor cell
+ // Unit: qdBm
+ kal_int32 rsrq; // RSRQ of NR neighbor cell
+ // Unit: qdB
+ errc_nr_best_beam_meas_info best_beam_info; // Information of the beam that with the best
+ // measurement result.
+} errc_nr_best_b1_meas_freq_info_v1;
+
+typedef errc_nr_best_b1_meas_freq_info_v1 errc_nr_best_b1_meas_freq_info;
+
+typedef struct {
+ kal_uint16 pci; // PCI of NR neighbor cell
+ // range [0, 1007]
+ kal_uint16 reserved;
+ kal_int32 rsrp; // RSRP of NR neighbor cell
+ // Unit: qdBm
+ kal_int32 rsrq; // RSRQ of NR neighbor cell
+ // Unit: qdB
+ kal_int32 sinr; // SINR of NR neighbor cell
+ // Unit: qdB
+} errc_nr_cell_meas_info_v1;
+
+typedef errc_nr_cell_meas_info_v1 errc_nr_cell_meas_info;
+
+typedef struct {
+ kal_uint32 narfcn; // Arfcn of NR neighbor cell
+ // range [0, 3279165]
+ kal_uint8 ssb_scs; // 1: 15kHz
+ // 2: 30kHz
+ // 3: 120kHz
+ // 4: 240kHz
+ kal_uint8 num_of_nr_cell; // Array of NR Cell measurements, range[0, 8]
+ kal_uint16 reserved;
+ errc_nr_cell_meas_info nr_cell_measurement[8]; // Number of NR neighbor measurements
+} errc_nr_freq_result_info_v1;
+
+typedef errc_nr_freq_result_info_v1 errc_nr_freq_result_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 is_nr_cell_measured; // 0: No NR cell measured
+ // 1: NR cell measured
+ kal_uint8 num_of_nr_freq; // Number of NR frequency measurements, range[0, 6]
+ kal_uint8 reserved;
+ errc_nr_freq_result_info nr_freq_meas[6]; // Array of NR frequency measurements
+ errc_nr_best_b1_meas_freq_info nr_best_b1_freq_meas; // The best measurement result among all frequencies when
+ // there exist measurement results associated with B1 report.
+} icd_errc_ir_nr_meas_result_info_struct_v2;
+
+typedef icd_errc_ir_nr_meas_result_info_struct_v2 icd_errc_ir_nr_meas_result_info_struct;
+
+
+#endif /* _ERRC_IR_NR_MEAS_RESULT_INFO_H */
+
+
+/* Public JSON start
+"ERRC_IR_NR_Meas_Result_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7109", "Name": "ERRC_IR_NR_Meas_Result_Info", "Type": "RECORD", "Desc": "The log is generated when the interRAT NR measurement result sent to ERRC (every L1 measurement reporting interval of NR).\nNote : L1 measurement reporting interval depends on the interRAT NR measurement scheduling.\n"}, "table": {"ERRC_IR_NR_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_IR_NR_Meas_Result_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IR_NR_Meas_Result_Info"}, "ERRC_IR_NR_Meas_Result_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IR_NR_Meas_Result_Info_V1", ""], "1": ["2", "ERRC_IR_NR_Meas_Result_Info_V2", ""]}, "Name": "ERRC_IR_NR_Meas_Result_Info_Versions"}, "ERRC_IR_NR_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Is NR Cell Measured", "UINT8", "1", "0", "8", "0: No NR cell measured\n1: NR cell measured"], "1": ["Num of NR Freq", "UINT8", "1", "8", "8", "Number of NR frequency measurements, range[0, 6]"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["NR Freq Meas", "ERRC_NR_Freq_Result_Info_V1", "6", "24", "6528", "Array of NR frequency measurements"]}, "Name": "ERRC_IR_NR_Meas_Result_Info_V1"}, "ERRC_IR_NR_Meas_Result_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Is NR Cell Measured", "UINT8", "1", "0", "8", "0: No NR cell measured\n1: NR cell measured"], "1": ["Num of NR Freq", "UINT8", "1", "8", "8", "Number of NR frequency measurements, range[0, 6]"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["NR Freq Meas", "ERRC_NR_Freq_Result_Info_V1", "6", "24", "6528", "Array of NR frequency measurements"], "4": ["NR Best B1 Freq Meas", "ERRC_NR_Best_B1_Meas_Freq_Info_V1", "1", "6552", "224", "The best measurement result among all frequencies when\nthere exist measurement results associated with B1 report."]}, "Name": "ERRC_IR_NR_Meas_Result_Info_V2"}, "ERRC_NR_Freq_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["NARFCN", "UINT32", "1", "0", "32", "Arfcn of NR neighbor cell\nrange [0, 3279165]"], "1": ["SSB SCS", "UINT8", "1", "32", "8", "1: 15kHz\n2: 30kHz\n3: 120kHz\n4: 240kHz"], "2": ["Num of NR Cell", "UINT8", "1", "40", "8", "Array of NR Cell measurements, range[0, 8]"], "3": ["Reserved", "UINT16", "1", "48", "16", ""], "4": ["NR Cell Measurement", "ERRC_NR_Cell_Meas_Info_V1", "8", "64", "1024", "Number of NR neighbor measurements"]}, "Name": "ERRC_NR_Freq_Result_Info_V1"}, "ERRC_NR_Cell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PCI", "UINT16", "1", "0", "16", "PCI of NR neighbor cell\nrange [0, 1007]"], "1": ["Reserved", "UINT16", "1", "16", "16", ""], "2": ["RSRP", "INT32", "1", "32", "32", "RSRP of NR neighbor cell\nUnit: qdBm"], "3": ["RSRQ", "INT32", "1", "64", "32", "RSRQ of NR neighbor cell\nUnit: qdB"], "4": ["SINR", "INT32", "1", "96", "32", "SINR of NR neighbor cell\nUnit: qdB"]}, "Name": "ERRC_NR_Cell_Meas_Info_V1"}, "ERRC_NR_Best_B1_Meas_Freq_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Is Meas Valid", "UINT8", "1", "0", "8", "Indicates if the B1 related measurement results\nare valid. The following info are invalid when\nthis field is invalid.\n0: Inavlid, 1: Valid"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["PCI", "UINT16", "1", "16", "16", "PCI of NR neighbor cell\nrange [0, 1007]"], "3": ["NARFCN", "UINT32", "1", "32", "32", "Arfcn of NR neighbor cell\nrange [0, 3279165]"], "4": ["RSRP", "INT32", "1", "64", "32", "RSRP of NR neighbor cell\nUnit: qdBm"], "5": ["RSRQ", "INT32", "1", "96", "32", "RSRQ of NR neighbor cell\nUnit: qdB"], "6": ["Best Beam Info", "ERRC_NR_Best_Beam_Meas_Info_V1", "1", "128", "96", "Information of the beam that with the best\nmeasurement result."]}, "Name": "ERRC_NR_Best_B1_Meas_Freq_Info_V1"}, "ERRC_NR_Best_Beam_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SSB Index", "UINT8", "1", "0", "8", "SSB index with the best beam measurement result.\nrange [0, 63]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["RSRP", "INT32", "1", "32", "32", "RSRP of NR neighbor cell\nUnit: qdBm"], "4": ["RSRQ", "INT32", "1", "64", "32", "RSRQ of NR neighbor cell\nUnit: qdB"]}, "Name": "ERRC_NR_Best_Beam_Meas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [697ed7cd19e62904acf6fa074c732436]
diff --git a/mcu/interface/service/icd/errc/ERRC_IR_UTRAN_MEAS_RESULT_INFO.h b/mcu/interface/service/icd/errc/ERRC_IR_UTRAN_MEAS_RESULT_INFO.h
new file mode 100644
index 0000000..f5108c7
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_IR_UTRAN_MEAS_RESULT_INFO.h
@@ -0,0 +1,59 @@
+// ICD Header Format v3
+// Name : ERRC_IR_UTRAN_MEAS_Result_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7106
+// Version : V2.6
+
+#ifndef _ERRC_IR_UTRAN_MEAS_RESULT_INFO_H
+#define _ERRC_IR_UTRAN_MEAS_RESULT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_IR_UTRAN_MEAS_RESULT_INFO 0x7106
+
+#define ICD_ERRC_ERRC_IR_UTRAN_MEAS_RESULT_INFO_V1 1
+
+#define ICD_ERRC_IR_UTRAN_MEAS_RESULT_INFO_STRUCT_V1_MAX_SIZE 1284
+
+typedef struct {
+ kal_uint16 psc; // Primary Scrambling Code
+ kal_uint16 reserved;
+ kal_int32 neighbor_rscp; // Received signal code power
+ kal_int32 neighbor_ecn0; // Received energy per chip divided by the power
+ // density in the band
+} errc_ucell_meas_info_v1;
+
+typedef errc_ucell_meas_info_v1 errc_ucell_meas_info;
+
+typedef struct {
+ kal_uint8 num_of_utran_cell; // Number of UTRAN neighbor measurements on this frequency,
+ // range[0, 6]
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ kal_uint32 uarfcn; // Uarfcn of neighbor cell
+ errc_ucell_meas_info ucell_measurement[6]; // Number of UTRAN neighbor measurements
+} errc_utran_meas_result_info_v1;
+
+typedef errc_utran_meas_result_info_v1 errc_utran_meas_result_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 num_of_utran_freq; // Number of UTRAN frequency for neighbor measurements,
+ // range[0, 16]
+ kal_uint16 reserved;
+ errc_utran_meas_result_info utran_freq_meas[16]; // Array of UTRAN frequency neighbor measurements
+} icd_errc_ir_utran_meas_result_info_struct_v1;
+
+typedef icd_errc_ir_utran_meas_result_info_struct_v1 icd_errc_ir_utran_meas_result_info_struct;
+
+
+#endif /* _ERRC_IR_UTRAN_MEAS_RESULT_INFO_H */
+
+
+/* Public JSON start
+"ERRC_IR_UTRAN_MEAS_Result_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7106", "Name": "ERRC_IR_UTRAN_MEAS_Result_Info", "Type": "RECORD", "Desc": "The log is generated when the interRAT UTRAN measurement result sent to ERRC (every L1 measurement reporting interval of UTRAN).\nNote : L1 measurement reporting interval depends on the interRAT UTRAN measurement scheduling\n"}, "table": {"ERRC_IR_UTRAN_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_IR_UTRAN_Meas_Result_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IR_UTRAN_Meas_Result_Info"}, "ERRC_IR_UTRAN_Meas_Result_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IR_UTRAN_Meas_Result_Info_V1", ""]}, "Name": "ERRC_IR_UTRAN_Meas_Result_Info_Versions"}, "ERRC_IR_UTRAN_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of UTRAN Freq", "UINT8", "1", "0", "8", "Number of UTRAN frequency for neighbor measurements,\nrange[0, 16]"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["UTRAN Freq Meas", "ERRC_UTRAN_Meas_Result_Info_V1", "16", "24", "10240", "Array of UTRAN frequency neighbor measurements"]}, "Name": "ERRC_IR_UTRAN_Meas_Result_Info_V1"}, "ERRC_UTRAN_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of UTRAN Cell", "UINT8", "1", "0", "8", "Number of UTRAN neighbor measurements on this frequency,\nrange[0, 6]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Uarfcn", "UINT32", "1", "32", "32", "Uarfcn of neighbor cell"], "4": ["UCell Measurement", "ERRC_UCell_Meas_Info_V1", "6", "64", "576", "Number of UTRAN neighbor measurements"]}, "Name": "ERRC_UTRAN_Meas_Result_Info_V1"}, "ERRC_UCell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PSC", "UINT16", "1", "0", "16", "Primary Scrambling Code"], "1": ["Reserved", "UINT16", "1", "16", "16", ""], "2": ["Neighbor Rscp", "INT32", "1", "32", "32", "Received signal code power"], "3": ["Neighbor EcN0", "INT32", "1", "64", "32", "Received energy per chip divided by the power\ndensity in the band"]}, "Name": "ERRC_UCell_Meas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [6aff7db4a931d36c672bbb2cfad6e6de]
diff --git a/mcu/interface/service/icd/errc/ERRC_MBMS_Config_Info_EVENT.h b/mcu/interface/service/icd/errc/ERRC_MBMS_Config_Info_EVENT.h
new file mode 100644
index 0000000..bbbaec9
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_MBMS_Config_Info_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : ERRC_MBMS_Config_Info_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x760F
+// Version : V2.6
+
+#ifndef _ERRC_MBMS_CONFIG_INFO_EVENT_H
+#define _ERRC_MBMS_CONFIG_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_MBMS_CONFIG_INFO_EVENT 0x760F
+
+#define ICD_ERRC_ERRC_MBMS_CONFIG_INFO_V1 1
+
+#define ICD_ERRC_MBMS_CONFIG_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pmch_id; // The identity of PMCH
+ kal_uint8 lcid; // Logical channel identifier
+ kal_uint8 enabled; // 0: Trun off, 1: Trun on
+ kal_uint8 tmgi[6]; // Temporary Mobile Group Identity
+ kal_uint16 reserved;
+} icd_errc_mbms_config_info_struct_v1;
+
+typedef icd_errc_mbms_config_info_struct_v1 icd_errc_mbms_config_info_struct;
+
+
+#endif /* _ERRC_MBMS_CONFIG_INFO_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_MBMS_Config_Info_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x760F", "Name": "ERRC_MBMS_Config_Info_Event", "Type": "EVENT", "Desc": "The event is generated when UE configure MBMS info.\n"}, "table": {"ERRC_MBMS_Config_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_MBMS_Config_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_MBMS_Config_Info"}, "ERRC_MBMS_Config_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_MBMS_Config_Info_V1", ""]}, "Name": "ERRC_MBMS_Config_Info_Versions"}, "ERRC_MBMS_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PMCH ID", "UINT8", "1", "0", "8", "The identity of PMCH"], "1": ["LCID", "UINT8", "1", "8", "8", "Logical channel identifier"], "2": ["Enabled", "UINT8", "1", "16", "8", "0: Trun off, 1: Trun on"], "3": ["TMGI", "UINT8", "6", "24", "48", "Temporary Mobile Group Identity"], "4": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "ERRC_MBMS_Config_Info_V1"}}},
+ Public JSON end */
+// Checksum : [e0aed39aa1dd2fbfd4fd828ba66cfe58]
diff --git a/mcu/interface/service/icd/errc/ERRC_MEAS_RESULT_INFO.h b/mcu/interface/service/icd/errc/ERRC_MEAS_RESULT_INFO.h
new file mode 100644
index 0000000..46798fb
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_MEAS_RESULT_INFO.h
@@ -0,0 +1,94 @@
+// ICD Header Format v3
+// Name : ERRC_MEAS_Result_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7101
+// Version : V2.6
+
+#ifndef _ERRC_MEAS_RESULT_INFO_H
+#define _ERRC_MEAS_RESULT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_MEAS_RESULT_INFO 0x7101
+
+#define ICD_ERRC_ERRC_MEAS_RESULT_INFO_V2 2
+
+#define MAX_ICD_ERRC_MEAS_RESULT_INFO_STRUCT_V2_NUM_OF_INTRA_CELL 16
+
+#define ICD_ERRC_MEAS_RESULT_INFO_STRUCT_V2_MAX_SIZE 436
+
+typedef struct {
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint8 neighbor_rsrp; // RSRP of neighbor cell over last measurement period
+ kal_uint8 neighbor_rsrq; // RSRQ of neighbor cell over last measurement period
+ kal_uint8 is_detected_cell; // Indicate cell to fulfill S-criteria in idle mode
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} errc_cell_meas_info_v2;
+
+typedef errc_cell_meas_info_v2 errc_cell_meas_info;
+
+typedef struct {
+ kal_uint8 num_of_inter_cell; // Number of inter frequency neighbor measurements on this
+ // frequency, range[0, 6]
+ kal_uint8 is_black_list_present_for_inter; // Indicate inter-freq black list exists
+ kal_uint16 reserved;
+ kal_uint32 earfcn; // Earfcn of neighbor cell
+ errc_cell_meas_info inter_cell_measurement[6]; // Number of inter frequency neighbor measurements
+} errc_inter_meas_result_info_v2;
+
+typedef errc_inter_meas_result_info_v2 errc_inter_meas_result_info;
+
+typedef struct {
+ kal_uint8 num_of_inter_freq; // Number of inter frequency for neighbor measurements,
+ // range[0, 4]
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ errc_inter_meas_result_info inter_freq_meas[4]; // Array of inter frequency neighbor measurements
+} errc_neighbor_meas_result_info_v2;
+
+typedef errc_neighbor_meas_result_info_v2 errc_neighbor_meas_result_info;
+
+typedef struct {
+ kal_uint16 barred_cell_id; // Physical cell identity
+ kal_uint16 reserved;
+} errc_barred_cell_info_v2;
+
+typedef errc_barred_cell_info_v2 errc_barred_cell_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 servindex; // Indicates whether this metric is reporting on Primary
+ // Component Carrier(PCC) or Secondary Component Carriers
+ // (SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint32 serv_earfcn; // Serving earfcn
+ kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
+ kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
+ kal_uint8 serv_rssnr; // RSSNR of serving cell over last measurement period
+ kal_uint8 num_of_barred_cells; // Number of Barred cells, range[0, 16]
+ kal_uint8 valid_for_meas_array; // Check if the result of meas array is valid.
+ // No duplicated data reported on SCell.(i.e. ServIndex > 0)
+ kal_uint8 num_of_intra_cell; // Number of intra frequency neighbor measurements,
+ // range[0, 16]
+ kal_uint8 is_black_list_present_for_intra; // Indicate intra-freq black list exists
+ kal_uint8 reserved;
+ errc_barred_cell_info barred_cells[16]; // Array of barred cells
+ errc_neighbor_meas_result_info inter_neighbor_meas_result; // Array of inter neighbor measurement result
+ errc_cell_meas_info intra_cell_measurement[FLEXIBLE_ARRAY_SIZE]; // N := Num of Intra Cell
+ // Number of intra frequency neighbor measurements
+} icd_errc_meas_result_info_struct_v2;
+
+typedef icd_errc_meas_result_info_struct_v2 icd_errc_meas_result_info_struct;
+
+
+#endif /* _ERRC_MEAS_RESULT_INFO_H */
+
+
+/* Public JSON start
+"ERRC_MEAS_Result_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7101", "Name": "ERRC_MEAS_Result_Info", "Type": "RECORD", "Desc": "The log is generated when the measurement result received or every interval defined in the following\nIdle mode: every drx cycle if configured, or 640ms otherwise.\nConnected mode: every report interval if periodical report configured, or 400ms otherwise\n"}, "table": {"ERRC_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_Meas_Result_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_Meas_Result_Info"}, "ERRC_Meas_Result_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_Meas_Result_Info_V1", ""], "1": ["2", "ERRC_Meas_Result_Info_V2", ""], "2": ["3", "ERRC_Meas_Result_Info_V3", ""], "3": ["4", "ERRC_Meas_Result_Info_V4", ""]}, "Name": "ERRC_Meas_Result_Info_Versions"}, "ERRC_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Intra Cell Measurement": "Num of Intra Cell"}, "Name": "ERRC_Meas_Result_Info_V1", "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["Serv Rsrp", "UINT8", "1", "56", "8", "RSRP of serving cell over last measurement period"], "4": ["Serv Rsrq", "UINT8", "1", "64", "8", "RSRQ of serving cell over last measurement period"], "5": ["Serv RSSNR", "UINT8", "1", "72", "8", "RSSNR of serving cell over last measurement period"], "6": ["Meas RAT Type", "UINT8", "1", "80", "8", "EUTRA(0),\nUTRA(1),\nGERAN(2),\nCDMA(3),\nInvalid(255)"], "7": ["Num of Barred Cells", "UINT8", "1", "88", "8", "Number of Barred cells, range[0, 16]"], "8": ["Valid for Meas Array", "UINT8", "1", "96", "8", "Check if the result of meas array is valid.\nNo duplicated data reported on SCell.(i.e. ServIndex > 0)"], "9": ["Num of Intra Cell", "UINT8", "1", "104", "8", "Number of intra frequency neighbor measurements,\nrange[0, 16]"], "10": ["Is Black List Present for Intra", "UINT8", "1", "112", "8", "Indicate intra-freq black list exists"], "11": ["Barred Cells", "ERRC_Barred_Cell_info_V1", "16", "120", "512", "Array of barred cells"], "12": ["Inter Neighbor Meas Result", "ERRC_Neighbor_Meas_Result_Info_V1", "1", "632", "1824", "Array of inter neighbor measurement result"], "13": ["Intra Cell Measurement", "ERRC_Cell_Meas_Info_V1", "N", "2456", "VAR", "N := Num of Intra Cell\nNumber of intra frequency neighbor measurements"]}}, "ERRC_Barred_Cell_info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Barred Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "ERRC_Barred_Cell_info_V1"}, "ERRC_Neighbor_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Freq", "UINT8", "1", "0", "8", "Number of inter frequency for neighbor measurements,\nrange[0, 4]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Inter Freq Meas", "ERRC_Inter_Meas_Result_Info_V1", "4", "32", "1792", "Array of inter frequency neighbor measurements"]}, "Name": "ERRC_Neighbor_Meas_Result_Info_V1"}, "ERRC_Inter_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Cell", "UINT8", "1", "0", "8", "Number of inter frequency neighbor measurements on this\nfrequency, range[0, 6]"], "1": ["Is Black List Present for Inter", "UINT8", "1", "8", "8", "Indicate inter-freq black list exists"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Earfcn", "UINT32", "1", "32", "32", "Earfcn of neighbor cell"], "4": ["Inter Cell Measurement", "ERRC_Cell_Meas_Info_V1", "6", "64", "384", "Number of inter frequency neighbor measurements"]}, "Name": "ERRC_Inter_Meas_Result_Info_V1"}, "ERRC_Cell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Neighbor Rsrp", "UINT8", "1", "16", "8", "RSRP of neighbor cell over last measurement period"], "2": ["Neighbor Rsrq", "UINT8", "1", "24", "8", "RSRQ of neighbor cell over last measurement period"], "3": ["Is Detected Cell", "UINT8", "1", "32", "8", "Indicate cell to fulfill S-criteria in idle mode"], "4": ["Reserved", "UINT8", "1", "40", "8", ""], "5": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_Cell_Meas_Info_V1"}, "ERRC_Meas_Result_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Intra Cell Measurement": "Num of Intra Cell"}, "Name": "ERRC_Meas_Result_Info_V2", "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["Serv Rsrp", "UINT8", "1", "56", "8", "RSRP of serving cell over last measurement period"], "4": ["Serv Rsrq", "UINT8", "1", "64", "8", "RSRQ of serving cell over last measurement period"], "5": ["Serv RSSNR", "UINT8", "1", "72", "8", "RSSNR of serving cell over last measurement period"], "6": ["Num of Barred Cells", "UINT8", "1", "80", "8", "Number of Barred cells, range[0, 16]"], "7": ["Valid for Meas Array", "UINT8", "1", "88", "8", "Check if the result of meas array is valid.\nNo duplicated data reported on SCell.(i.e. ServIndex > 0)"], "8": ["Num of Intra Cell", "UINT8", "1", "96", "8", "Number of intra frequency neighbor measurements,\nrange[0, 16]"], "9": ["Is Black List Present for Intra", "UINT8", "1", "104", "8", "Indicate intra-freq black list exists"], "10": ["Reserved", "UINT8", "1", "112", "8", ""], "11": ["Barred Cells", "ERRC_Barred_Cell_info_V2", "16", "120", "512", "Array of barred cells"], "12": ["Inter Neighbor Meas Result", "ERRC_Neighbor_Meas_Result_Info_V2", "1", "632", "1824", "Array of inter neighbor measurement result"], "13": ["Intra Cell Measurement", "ERRC_Cell_Meas_Info_V2", "N", "2456", "VAR", "N := Num of Intra Cell\nNumber of intra frequency neighbor measurements"]}}, "ERRC_Barred_Cell_info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Barred Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "ERRC_Barred_Cell_info_V2"}, "ERRC_Neighbor_Meas_Result_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Freq", "UINT8", "1", "0", "8", "Number of inter frequency for neighbor measurements,\nrange[0, 4]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Inter Freq Meas", "ERRC_Inter_Meas_Result_Info_V2", "4", "32", "1792", "Array of inter frequency neighbor measurements"]}, "Name": "ERRC_Neighbor_Meas_Result_Info_V2"}, "ERRC_Inter_Meas_Result_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Cell", "UINT8", "1", "0", "8", "Number of inter frequency neighbor measurements on this\nfrequency, range[0, 6]"], "1": ["Is Black List Present for Inter", "UINT8", "1", "8", "8", "Indicate inter-freq black list exists"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Earfcn", "UINT32", "1", "32", "32", "Earfcn of neighbor cell"], "4": ["Inter Cell Measurement", "ERRC_Cell_Meas_Info_V2", "6", "64", "384", "Number of inter frequency neighbor measurements"]}, "Name": "ERRC_Inter_Meas_Result_Info_V2"}, "ERRC_Cell_Meas_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Neighbor Rsrp", "UINT8", "1", "16", "8", "RSRP of neighbor cell over last measurement period"], "2": ["Neighbor Rsrq", "UINT8", "1", "24", "8", "RSRQ of neighbor cell over last measurement period"], "3": ["Is Detected Cell", "UINT8", "1", "32", "8", "Indicate cell to fulfill S-criteria in idle mode"], "4": ["Reserved", "UINT8", "1", "40", "8", ""], "5": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_Cell_Meas_Info_V2"}, "ERRC_Meas_Result_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Intra Cell Measurement": "Num of Intra Cell"}, "Name": "ERRC_Meas_Result_Info_V3", "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["Serv Rsrp", "UINT8", "1", "56", "8", "RSRP of serving cell over last measurement period.\nReport value as defined in TS 36.133 Table 9.1.4-1.\nrange[0, 97]"], "4": ["Serv Rsrq", "INT8", "1", "64", "8", "RSRQ of serving cell over last measurement period.\nReport value as defined in TS 36.133 Table 9.1.7-1.\nrange[-30, 46]"], "5": ["Serv RSSNR", "UINT8", "1", "72", "8", "RSSNR of serving cell over last measurement period.\nReport value as defined in TS 36.133 Table 9.1.17.1-1.\nrange[0, 127]"], "6": ["Num of Barred Cells", "UINT8", "1", "80", "8", "Number of Barred cells, range[0, 16]"], "7": ["Valid for Meas Array", "UINT8", "1", "88", "8", "Check if the result of meas array is valid.\nNo duplicated data reported on SCell.(i.e. ServIndex > 0)"], "8": ["Num of Intra Cell", "UINT8", "1", "96", "8", "Number of intra frequency neighbor measurements,\nrange[0, 16]"], "9": ["Is Black List Present for Intra", "UINT8", "1", "104", "8", "Indicate intra-freq black list exists"], "10": ["Reserved", "UINT8", "1", "112", "8", ""], "11": ["Barred Cells", "ERRC_Barred_Cell_info_V2", "16", "120", "512", "Array of barred cells"], "12": ["Inter Neighbor Meas Result", "ERRC_Neighbor_Meas_Result_Info_V3", "1", "632", "1824", "Array of inter neighbor measurement result"], "13": ["Intra Cell Measurement", "ERRC_Cell_Meas_Info_V3", "N", "2456", "VAR", "N := Num of Intra Cell\nNumber of intra frequency neighbor measurements"]}}, "ERRC_Neighbor_Meas_Result_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Freq", "UINT8", "1", "0", "8", "Number of inter frequency for neighbor measurements,\nrange[0, 4]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Inter Freq Meas", "ERRC_Inter_Meas_Result_Info_V3", "4", "32", "1792", "Array of inter frequency neighbor measurements"]}, "Name": "ERRC_Neighbor_Meas_Result_Info_V3"}, "ERRC_Inter_Meas_Result_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Cell", "UINT8", "1", "0", "8", "Number of inter frequency neighbor measurements on this\nfrequency, range[0, 6]"], "1": ["Is Black List Present for Inter", "UINT8", "1", "8", "8", "Indicate inter-freq black list exists"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Earfcn", "UINT32", "1", "32", "32", "Earfcn of neighbor cell"], "4": ["Inter Cell Measurement", "ERRC_Cell_Meas_Info_V3", "6", "64", "384", "Number of inter frequency neighbor measurements"]}, "Name": "ERRC_Inter_Meas_Result_Info_V3"}, "ERRC_Cell_Meas_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Neighbor Rsrp", "UINT8", "1", "16", "8", "RSRP of neighbor cell over last measurement period\nrange[0, 97]"], "2": ["Neighbor Rsrq", "INT8", "1", "24", "8", "RSRQ of neighbor cell over last measurement period\nrange[-30, 46]"], "3": ["Is Detected Cell", "UINT8", "1", "32", "8", "Indicate cell to fulfill S-criteria in idle mode"], "4": ["Reserved", "UINT8", "1", "40", "8", ""], "5": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_Cell_Meas_Info_V3"}, "ERRC_Meas_Result_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Intra Cell Measurement": "Num of Intra Cell"}, "Name": "ERRC_Meas_Result_Info_V4", "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["Serv Rsrp", "UINT8", "1", "56", "8", "RSRP of serving cell over last measurement period.\nReport value as defined in TS 36.133 Table 9.1.4-1.\nrange[0, 97]"], "4": ["Serv Rsrq", "INT8", "1", "64", "8", "RSRQ of serving cell over last measurement period.\nReport value as defined in TS 36.133 Table 9.1.7-1.\nrange[-30, 46]"], "5": ["Serv RSSNR", "UINT8", "1", "72", "8", "RSSNR of serving cell over last measurement period.\nReport value as defined in TS 36.133 Table 9.1.17.1-1.\nrange[0, 127]"], "6": ["Num of Barred Cells", "UINT8", "1", "80", "8", "Number of Barred cells, range[0, 16]"], "7": ["Valid for Meas Array", "UINT8", "1", "88", "8", "Check if the result of meas array is valid.\nNo duplicated data reported on SCell.(i.e. ServIndex > 0)"], "8": ["Num of Intra Cell", "UINT8", "1", "96", "8", "Number of intra frequency neighbor measurements,\nrange[0, 16]"], "9": ["Is Black List Present for Intra", "UINT8", "1", "104", "8", "Indicate intra-freq black list exists"], "10": ["Reserved", "UINT8", "1", "112", "8", ""], "11": ["Barred Cells", "ERRC_Barred_Cell_info_V2", "16", "120", "512", "Array of barred cells"], "12": ["Inter Neighbor Meas Result", "ERRC_Neighbor_Meas_Result_Info_V4", "1", "632", "1824", "Array of inter neighbor measurement result"], "13": ["Intra Cell Measurement", "ERRC_Cell_Meas_Info_V4", "N", "2456", "VAR", "N := Num of Intra Cell\nNumber of intra frequency neighbor measurements"]}}, "ERRC_Neighbor_Meas_Result_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Freq", "UINT8", "1", "0", "8", "Number of inter frequency for neighbor measurements,\nrange[0, 4]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Inter Freq Meas", "ERRC_Inter_Meas_Result_Info_V4", "4", "32", "1792", "Array of inter frequency neighbor measurements"]}, "Name": "ERRC_Neighbor_Meas_Result_Info_V4"}, "ERRC_Inter_Meas_Result_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Cell", "UINT8", "1", "0", "8", "Number of inter frequency neighbor measurements on this\nfrequency, range[0, 6]"], "1": ["Is Black List Present for Inter", "UINT8", "1", "8", "8", "Indicate inter-freq black list exists"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Earfcn", "UINT32", "1", "32", "32", "Earfcn of neighbor cell"], "4": ["Inter Cell Measurement", "ERRC_Cell_Meas_Info_V4", "6", "64", "384", "Number of inter frequency neighbor measurements"]}, "Name": "ERRC_Inter_Meas_Result_Info_V4"}, "ERRC_Cell_Meas_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Neighbor Rsrp", "UINT8", "1", "16", "8", "RSRP of neighbor cell over last measurement period\nrange[0, 97], value mapping is defined in TS 36.133"], "2": ["Neighbor Rsrq", "INT8", "1", "24", "8", "RSRQ of neighbor cell over last measurement period\nrange[-30, 46], value mapping is defined in TS 36.133"], "3": ["Neighbor RS-Sinr", "UINT8", "1", "32", "8", "RS-SINR of neighbor cell over last measurement period\nrange[0, 127], value mapping is defined in TS 36.133"], "4": ["Is Detected Cell", "UINT8", "1", "40", "8", "Indicate cell to fulfill S-criteria in idle mode"], "5": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_Cell_Meas_Info_V4"}}},
+ Public JSON end */
+// Checksum : [abc9cec3541ede4f2463278a7fb6cfe6]
diff --git a/mcu/interface/service/icd/errc/ERRC_SERVING_CELL_INFO.h b/mcu/interface/service/icd/errc/ERRC_SERVING_CELL_INFO.h
new file mode 100644
index 0000000..3da923a
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_SERVING_CELL_INFO.h
@@ -0,0 +1,56 @@
+// ICD Header Format v3
+// Name : ERRC_Serving_Cell_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7100
+// Version : V2.6
+
+#ifndef _ERRC_SERVING_CELL_INFO_H
+#define _ERRC_SERVING_CELL_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_SERVING_CELL_INFO 0x7100
+
+#define ICD_ERRC_ERRC_SERVING_CELL_INFO_V3 3
+
+#define ICD_ERRC_SERVING_CELL_INFO_STRUCT_V3_MAX_SIZE 32
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 servindex; // Indicates whether this metric is reporting on Primary
+ // Component Carrier(PCC) or Secondary Component Carriers
+ // (SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint32 serv_earfcn; // Serving earfcn
+ kal_uint16 mcc; // MCC part of PLMN
+ kal_uint16 mnc; // MNC part of PLMN
+ kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
+ kal_uint8 dl_bandwidth; // Downlink Bandwidth
+ // Unit: 100KHz
+ kal_uint8 ul_bandwidth; // Uplink Bandwidth
+ // Unit: 100KHz
+ kal_uint8 upper_layer_indication; // Indicates if upperLayerIndication-r15 is in SIB2.
+ // 0: False 1: True
+ kal_uint8 upper_layer_indication_for_selected_plmn; // Indicates if upperLayerIndication-r15 of selected
+ // PLMN is in SIB2.
+ // 0: False 1: True
+ kal_uint8 reserved;
+ kal_uint16 tracking_area_code; // Track area code
+ kal_uint32 dl_frequency; // Downlink EARFCN
+ kal_uint32 ul_frequency; // Uplink EARFCN
+ kal_uint32 cell_id; // Cell identity
+} icd_errc_serving_cell_info_struct_v3;
+
+typedef icd_errc_serving_cell_info_struct_v3 icd_errc_serving_cell_info_struct;
+
+
+#endif /* _ERRC_SERVING_CELL_INFO_H */
+
+
+/* Public JSON start
+"ERRC_Serving_Cell_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7100", "Name": "ERRC_Serving_Cell_Info", "Type": "RECORD", "Desc": "The log is generated when the serving cell changes.\n"}, "table": {"ERRC_Serving_Cell_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_Serving_Cell_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_Serving_Cell_Info"}, "ERRC_Serving_Cell_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_Serving_Cell_Info_V1", ""], "1": ["2", "ERRC_Serving_Cell_Info_V2", ""], "2": ["3", "ERRC_Serving_Cell_Info_V3", ""]}, "Name": "ERRC_Serving_Cell_Info_Versions"}, "ERRC_Serving_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Freq Band Indicator", "UINT16", "1", "8", "16", "Frequency band indicator"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["MCC", "UINT16", "1", "56", "16", "MCC part of PLMN"], "4": ["MNC", "UINT16", "1", "72", "16", "MNC part of PLMN"], "5": ["NUM of MNC Digits", "UINT8", "1", "88", "8", "Number of digits in MNC (e.g.2/3)"], "6": ["DL Bandwidth", "UINT8", "1", "96", "8", "Downlink Bandwidth\nUnit: 100KHz"], "7": ["UL Bandwidth", "UINT8", "1", "104", "8", "Uplink Bandwidth\nUnit: 100KHz"], "8": ["Reserved", "UINT8", "1", "112", "8", ""], "9": ["Reserved", "UINT16", "1", "120", "16", ""], "10": ["Tracking Area Code", "UINT16", "1", "136", "16", "Track area code"], "11": ["DL Frequency", "UINT32", "1", "152", "32", "Downlink EARFCN"], "12": ["UL Frequency", "UINT32", "1", "184", "32", "Uplink EARFCN"], "13": ["Cell ID", "UINT32", "1", "216", "32", "Cell identity"]}, "Name": "ERRC_Serving_Cell_Info_V1"}, "ERRC_Serving_Cell_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Freq Band Indicator", "UINT16", "1", "8", "16", "Frequency band indicator"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["MCC", "UINT16", "1", "56", "16", "MCC part of PLMN"], "4": ["MNC", "UINT16", "1", "72", "16", "MNC part of PLMN"], "5": ["NUM of MNC Digits", "UINT8", "1", "88", "8", "Number of digits in MNC (e.g.2/3)"], "6": ["DL Bandwidth", "UINT8", "1", "96", "8", "Downlink Bandwidth\nUnit: 100KHz"], "7": ["UL Bandwidth", "UINT8", "1", "104", "8", "Uplink Bandwidth\nUnit: 100KHz"], "8": ["Upper Layer Indication", "UINT8", "1", "112", "8", "Indicates if upperLayerIndication-r15 is in SIB2.\n0: False 1: True"], "9": ["Reserved", "UINT16", "1", "120", "16", ""], "10": ["Tracking Area Code", "UINT16", "1", "136", "16", "Track area code"], "11": ["DL Frequency", "UINT32", "1", "152", "32", "Downlink EARFCN"], "12": ["UL Frequency", "UINT32", "1", "184", "32", "Uplink EARFCN"], "13": ["Cell ID", "UINT32", "1", "216", "32", "Cell identity"]}, "Name": "ERRC_Serving_Cell_Info_V2"}, "ERRC_Serving_Cell_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Freq Band Indicator", "UINT16", "1", "8", "16", "Frequency band indicator"], "2": ["Serv Earfcn", "UINT32", "1", "24", "32", "Serving earfcn"], "3": ["MCC", "UINT16", "1", "56", "16", "MCC part of PLMN"], "4": ["MNC", "UINT16", "1", "72", "16", "MNC part of PLMN"], "5": ["NUM of MNC Digits", "UINT8", "1", "88", "8", "Number of digits in MNC (e.g.2/3)"], "6": ["DL Bandwidth", "UINT8", "1", "96", "8", "Downlink Bandwidth\nUnit: 100KHz"], "7": ["UL Bandwidth", "UINT8", "1", "104", "8", "Uplink Bandwidth\nUnit: 100KHz"], "8": ["Upper Layer Indication", "UINT8", "1", "112", "8", "Indicates if upperLayerIndication-r15 is in SIB2.\n0: False 1: True"], "9": ["Upper Layer Indication for Selected PLMN", "UINT8", "1", "120", "8", "Indicates if upperLayerIndication-r15 of selected\nPLMN is in SIB2.\n0: False 1: True"], "10": ["Reserved", "UINT8", "1", "128", "8", ""], "11": ["Tracking Area Code", "UINT16", "1", "136", "16", "Track area code"], "12": ["DL Frequency", "UINT32", "1", "152", "32", "Downlink EARFCN"], "13": ["UL Frequency", "UINT32", "1", "184", "32", "Uplink EARFCN"], "14": ["Cell ID", "UINT32", "1", "216", "32", "Cell identity"]}, "Name": "ERRC_Serving_Cell_Info_V3"}}},
+ Public JSON end */
+// Checksum : [352c57c68e05e64e6af0025309fda6c9]
diff --git a/mcu/interface/service/icd/errc/ERRC_SIB_READ_INFO.h b/mcu/interface/service/icd/errc/ERRC_SIB_READ_INFO.h
new file mode 100644
index 0000000..ba5f5de
--- /dev/null
+++ b/mcu/interface/service/icd/errc/ERRC_SIB_READ_INFO.h
@@ -0,0 +1,77 @@
+// ICD Header Format v3
+// Name : ERRC_SIB_Read_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7104
+// Version : V2.6
+
+#ifndef _ERRC_SIB_READ_INFO_H
+#define _ERRC_SIB_READ_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_SIB_READ_INFO 0x7104
+
+#define ICD_ERRC_ERRC_MIBSIB_READ_INFO_V1 1
+
+#define ICD_ERRC_MIBSIB_READ_INFO_STRUCT_V1_MAX_SIZE 24
+
+typedef struct {
+ kal_uint32 sibmask; // Bit mask for one or more SIB types which were
+ // successfully read (Bit 0 for SIB1, Bit 1 for
+ // SIB 2, ...).
+ // For example, if SibMask=11, the binary format
+ // is 1011, which means SIB1, SIB2, SIB4 were
+ // read.
+ kal_uint32 system_info_mask; // List of SIB types mapped to systeminformation
+ // message, refer to "SIB-MappingInfo" in 3GPP
+ // TS 36.331.
+ // Bit mask for one or more SIB types. (Bit 0 for
+ // SIB1, Bit 1 for SIB 2, ...). Only applicable
+ // to SIB1 message, for all other SIB messages,
+ // report a SEQUENCE with no element.
+ kal_uint8 system_info_msg; // Total number of different SIBs received by UE
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} sib_content_info_v1;
+
+typedef sib_content_info_v1 sib_content_info;
+
+typedef struct {
+ kal_uint8 antennas; // Number of TX antennas detected
+ kal_uint8 bandwidth; // DL bandwidth
+ // 1: Bandwidth 1.4Mhz
+ // 2: Bandwidth 3Mhz
+ // 3: Bandwidth 5Mhz
+ // 4: Bandwidth 10Mhz
+ // 5: Bandwidth 15Mhz
+ // 6: Bandwidth 20Mhz
+ kal_uint16 reserved;
+} mib_content_info_v1;
+
+typedef mib_content_info_v1 mib_content_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 mibsib_read_result; // 0: Read Success
+ // 1: Read Fail, content will be 0.
+ kal_uint16 physical_cell_id; // Physical Cell ID
+ kal_uint32 freq; // Earfcn
+ mib_content_info mib_content; // MIB Content, MIB is not available
+ // when MIB content is 0.
+ sib_content_info sib_content; // SIB Content, SIB is not available
+ // when SIB content is 0.
+} icd_errc_mibsib_read_info_struct_v1;
+
+typedef icd_errc_mibsib_read_info_struct_v1 icd_errc_mibsib_read_info_struct;
+
+
+#endif /* _ERRC_SIB_READ_INFO_H */
+
+
+/* Public JSON start
+"ERRC_SIB_Read_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7104", "Name": "ERRC_SIB_Read_Info", "Type": "RECORD", "Desc": "The log is generated when indicated MIB and SIBs has been read successfully or failed.\n"}, "table": {"ERRC_MIBSIB_Read_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_MIBSIB_Read_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_MIBSIB_Read_Info"}, "ERRC_MIBSIB_Read_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_MIBSIB_Read_Info_V1", ""]}, "Name": "ERRC_MIBSIB_Read_Info_Versions"}, "ERRC_MIBSIB_Read_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MIBSIB Read Result", "UINT8", "1", "0", "8", "0: Read Success\n1: Read Fail, content will be 0."], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical Cell ID"], "2": ["Freq", "UINT32", "1", "24", "32", "Earfcn"], "3": ["MIB Content", "MIB_Content_Info_V1", "1", "56", "32", "MIB Content, MIB is not available\nwhen MIB content is 0."], "4": ["SIB Content", "SIB_Content_Info_V1", "1", "88", "96", "SIB Content, SIB is not available\nwhen SIB content is 0."]}, "Name": "ERRC_MIBSIB_Read_Info_V1"}, "MIB_Content_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Antennas", "UINT8", "1", "0", "8", "Number of TX antennas detected"], "1": ["Bandwidth", "UINT8", "1", "8", "8", "DL bandwidth\n1: Bandwidth 1.4Mhz\n2: Bandwidth 3Mhz\n3: Bandwidth 5Mhz\n4: Bandwidth 10Mhz\n5: Bandwidth 15Mhz\n6: Bandwidth 20Mhz"], "2": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "MIB_Content_Info_V1"}, "SIB_Content_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SibMask", "UINT32", "1", "0", "32", "Bit mask for one or more SIB types which were\nsuccessfully read (Bit 0 for SIB1, Bit 1 for\nSIB 2, ...).\nFor example, if SibMask=11, the binary format\nis 1011, which means SIB1, SIB2, SIB4 were\nread."], "1": ["System Info Mask", "UINT32", "1", "32", "32", "List of SIB types mapped to systeminformation\nmessage, refer to \"SIB-MappingInfo\" in 3GPP\nTS 36.331.\nBit mask for one or more SIB types. (Bit 0 for\nSIB1, Bit 1 for SIB 2, ...). Only applicable\nto SIB1 message, for all other SIB messages,\nreport a SEQUENCE with no element."], "2": ["System Info Msg", "UINT8", "1", "64", "8", "Total number of different SIBs received by UE"], "3": ["Reserved", "UINT8", "1", "72", "8", ""], "4": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "SIB_Content_Info_V1"}}},
+ Public JSON end */
+// Checksum : [531fd78459a85f3c2177427db3a5c00a]
diff --git a/mcu/interface/service/icd/errc/errc_ca_config_info.h b/mcu/interface/service/icd/errc/errc_ca_config_info.h
new file mode 100644
index 0000000..d9e74dd
--- /dev/null
+++ b/mcu/interface/service/icd/errc/errc_ca_config_info.h
@@ -0,0 +1,91 @@
+// ICD Header Format v3
+// Name : ERRC_CA_Config_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7105
+// Version : V2.6
+
+#ifndef _ERRC_CA_CONFIG_INFO_H
+#define _ERRC_CA_CONFIG_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_CA_CONFIG_INFO 0x7105
+
+#define ICD_ERRC_ERRC_CA_CONFIG_INFO_V2 2
+
+#define MAX_ICD_ERRC_CA_CONFIG_INFO_STRUCT_V2_NUM_OF_SCELLS 7
+
+#define ICD_ERRC_CA_CONFIG_INFO_STRUCT_V2_MAX_SIZE 160
+
+typedef struct {
+ kal_uint32 earfcn; // DL Earfcn of Secondary cell
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint8 dl_bandwidth; // Downlink Bandwidth Note: This field shall be set
+ // to 0xFF if unavailable
+ kal_uint8 dl_state; // The status of the secondary serving cell in DL.
+ // 0: Deactivated, 1: Activated
+ kal_uint8 ul_state; // The status of the secondary serving cell in UL.
+ // 0: Deactivated, 1: Activated
+ kal_uint8 reserved;
+ kal_uint8 ul_bandwidth; // Uplink Bandwidth Note: This field shall be set
+ // to 0xFF if unavailable
+ kal_uint8 max_layers_mimo; // 0: twoLayers
+ // 1: fourLayers
+ // 2: eightLayers
+ // 255: Invalid
+ kal_uint16 reserved_1;
+ kal_uint32 ul_earfcn; // UL Earfcn of Secondary Cell
+} errc_scc_config_info_v2;
+
+typedef errc_scc_config_info_v2 errc_scc_config_info;
+
+typedef struct {
+ kal_uint32 earfcn; // DL Earfcn of Primary Cell
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint8 dl_bandwidth; // Downlink Bandwidth Note: This field shall be set
+ // to 0xFF if unavailable
+ kal_uint8 ul_bandwidth; // Uplink Bandwidth Note: This field shall be set
+ // to 0xFF if unavailable
+ kal_uint8 max_layers_mimo; // 0: twoLayers
+ // 1: fourLayers
+ // 2: eightLayers
+ // 255: Invalid
+ kal_uint8 reserved;
+ kal_uint32 ul_earfcn; // UL Earfcn of Primary Cell
+} errc_pcc_config_info_v2;
+
+typedef errc_pcc_config_info_v2 errc_pcc_config_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 enable; // CA configuration is enabled
+ kal_uint8 event; // CA event (e.g. configuration, activation, handover, etc.)
+ // 0: have been configured
+ // 1: have been de-configured
+ // 2: have been activated
+ // 3: have been deactivated
+ // 4: have been activated after radio link failure
+ // 5: have been de-activated after radio link failure
+ // 6: have been de-activated after RRC connection release
+ // 7: have been configured due to handover
+ kal_uint8 num_of_scells; // The number of secondary serving cells. range[0, 7]
+ errc_pcc_config_info pcc_config; // The primary serving cell of structure
+ errc_scc_config_info scc_config[FLEXIBLE_ARRAY_SIZE]; // N := Num of SCells
+ // An array of secondary service cell structures
+} icd_errc_ca_config_info_struct_v2;
+
+typedef icd_errc_ca_config_info_struct_v2 icd_errc_ca_config_info_struct;
+
+
+#endif /* _ERRC_CA_CONFIG_INFO_H */
+
+
+/* Public JSON start
+"ERRC_CA_Config_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7105", "Name": "ERRC_CA_Config_Info", "Type": "RECORD", "Desc": "The log is generated when carrier aggregation event occurs and any of the contents changes.\n"}, "table": {"ERRC_CA_Config_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_CA_Config_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_CA_Config_Info"}, "ERRC_CA_Config_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_CA_Config_Info_V1", ""], "1": ["2", "ERRC_CA_Config_Info_V2", ""]}, "Name": "ERRC_CA_Config_Info_Versions"}, "ERRC_CA_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SCC Config": "Num of SCells"}, "Name": "ERRC_CA_Config_Info_V1", "Data": {"0": ["Enable", "UINT8", "1", "0", "8", "CA configuration is enabled"], "1": ["Event", "UINT8", "1", "8", "8", "CA event (e.g. configuration, activation, handover, etc.)\n0: have been configured\n1: have been de-configured\n2: have been activated\n3: have been deactivated\n4: have been activated after radio link failure\n5: have been de-activated after radio link failure\n6: have been de-activated after RRC connection release\n7: have been configured due to handover"], "2": ["Num of SCells", "UINT8", "1", "16", "8", "The number of secondary serving cells. range[0, 7]"], "3": ["PCC Config", "ERRC_PCC_Config_Info_V1", "1", "24", "96", "The primary serving cell of structure"], "4": ["SCC Config", "ERRC_SCC_Config_Info_V1", "N", "120", "VAR", "N := Num of SCells\nAn array of secondary service cell structures"]}}, "ERRC_CA_Config_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SCC Config": "Num of SCells"}, "Name": "ERRC_CA_Config_Info_V2", "Data": {"0": ["Enable", "UINT8", "1", "0", "8", "CA configuration is enabled"], "1": ["Event", "UINT8", "1", "8", "8", "CA event (e.g. configuration, activation, handover, etc.)\n0: have been configured\n1: have been de-configured\n2: have been activated\n3: have been deactivated\n4: have been activated after radio link failure\n5: have been de-activated after radio link failure\n6: have been de-activated after RRC connection release\n7: have been configured due to handover"], "2": ["Num of SCells", "UINT8", "1", "16", "8", "The number of secondary serving cells. range[0, 7]"], "3": ["PCC Config", "ERRC_PCC_Config_Info_V2", "1", "24", "128", "The primary serving cell of structure"], "4": ["SCC Config", "ERRC_SCC_Config_Info_V2", "N", "152", "VAR", "N := Num of SCells\nAn array of secondary service cell structures"]}}, "ERRC_PCC_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "DL Earfcn of Primary Cell"], "1": ["Physical Cell ID", "UINT16", "1", "32", "16", "Physical cell identity"], "2": ["Freq Band Indicator", "UINT16", "1", "48", "16", "Frequency band indicator"], "3": ["DL Bandwidth", "UINT8", "1", "64", "8", "Downlink Bandwidth Note: This field shall be set\nto 0xFF if unavailable"], "4": ["Reserved", "UINT8", "1", "72", "8", ""], "5": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "ERRC_PCC_Config_Info_V1"}, "ERRC_PCC_Config_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "DL Earfcn of Primary Cell"], "1": ["Physical Cell ID", "UINT16", "1", "32", "16", "Physical cell identity"], "2": ["Freq Band Indicator", "UINT16", "1", "48", "16", "Frequency band indicator"], "3": ["DL Bandwidth", "UINT8", "1", "64", "8", "Downlink Bandwidth Note: This field shall be set\nto 0xFF if unavailable"], "4": ["UL Bandwidth", "UINT8", "1", "72", "8", "Uplink Bandwidth Note: This field shall be set\nto 0xFF if unavailable"], "5": ["Max Layers MIMO", "UINT8", "1", "80", "8", "0: twoLayers\n1: fourLayers\n2: eightLayers\n255: Invalid"], "6": ["Reserved", "UINT8", "1", "88", "8", ""], "7": ["UL Earfcn", "UINT32", "1", "96", "32", "UL Earfcn of Primary Cell"]}, "Name": "ERRC_PCC_Config_Info_V2"}, "ERRC_SCC_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "DL Earfcn of Secondary cell"], "1": ["Physical Cell ID", "UINT16", "1", "32", "16", "Physical cell identity"], "2": ["Freq Band Indicator", "UINT16", "1", "48", "16", "Frequency band indicator"], "3": ["DL Bandwidth", "UINT8", "1", "64", "8", "Downlink Bandwidth Note: This field shall be set\nto 0xFF if unavailable"], "4": ["DL State", "UINT8", "1", "72", "8", "The status of the secondary serving cell in DL.\n0: Deactivated, 1: Activated"], "5": ["UL State", "UINT8", "1", "80", "8", "The status of the secondary serving cell in UL.\n0: Deactivated, 1: Activated"], "6": ["Reserved", "UINT8", "1", "88", "8", ""]}, "Name": "ERRC_SCC_Config_Info_V1"}, "ERRC_SCC_Config_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "DL Earfcn of Secondary cell"], "1": ["Physical Cell ID", "UINT16", "1", "32", "16", "Physical cell identity"], "2": ["Freq Band Indicator", "UINT16", "1", "48", "16", "Frequency band indicator"], "3": ["DL Bandwidth", "UINT8", "1", "64", "8", "Downlink Bandwidth Note: This field shall be set\nto 0xFF if unavailable"], "4": ["DL State", "UINT8", "1", "72", "8", "The status of the secondary serving cell in DL.\n0: Deactivated, 1: Activated"], "5": ["UL State", "UINT8", "1", "80", "8", "The status of the secondary serving cell in UL.\n0: Deactivated, 1: Activated"], "6": ["Reserved", "UINT8", "1", "88", "8", ""], "7": ["UL Bandwidth", "UINT8", "1", "96", "8", "Uplink Bandwidth Note: This field shall be set\nto 0xFF if unavailable"], "8": ["Max Layers MIMO", "UINT8", "1", "104", "8", "0: twoLayers\n1: fourLayers\n2: eightLayers\n255: Invalid"], "9": ["Reserved", "UINT16", "1", "112", "16", ""], "10": ["UL Earfcn", "UINT32", "1", "128", "32", "UL Earfcn of Secondary Cell"]}, "Name": "ERRC_SCC_Config_Info_V2"}}},
+ Public JSON end */
+// Checksum : [6594a04a8882542313debc0158a58121]
diff --git a/mcu/interface/service/icd/errc/errc_embms_oos_info.h b/mcu/interface/service/icd/errc/errc_embms_oos_info.h
new file mode 100644
index 0000000..b4206a8
--- /dev/null
+++ b/mcu/interface/service/icd/errc/errc_embms_oos_info.h
@@ -0,0 +1,57 @@
+// ICD Header Format v3
+// Name : ERRC_EMBMS_OOS_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7103
+// Version : V2.6
+
+#ifndef _ERRC_EMBMS_OOS_INFO_H
+#define _ERRC_EMBMS_OOS_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_EMBMS_OOS_INFO 0x7103
+
+#define ICD_ERRC_ERRC_EMBMS_OOS_INFO_V1 1
+
+#define ICD_ERRC_EMBMS_OOS_INFO_STRUCT_V1_MAX_SIZE 108
+
+typedef struct {
+ kal_uint8 mbsfn_area_id; // Contains up to 8 entries of the following elements of which only entries are valid
+} affected_mbsfn_areas_info_v1;
+
+typedef affected_mbsfn_areas_info_v1 affected_mbsfn_areas_info;
+
+typedef struct {
+ kal_uint32 plmn_id; // PLMN ID in TMGI
+ kal_uint32 service_id; // Service ID in TMGI
+ kal_uint8 session_id_present; // Sesion ID is present or not
+ kal_uint8 session_id; // Session ID in eMBMS session info(valid only when session ID is present)
+ kal_uint16 reserved;
+} affected_session_info_list_info_v1;
+
+typedef affected_session_info_list_info_v1 affected_session_info_list_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 num_of_affected_sessions; // Number of affected service. range[0, 8]
+ kal_uint8 num_of_affected_areas; // Number of affected areas. range[0, 8]
+ kal_uint8 reserved;
+ affected_session_info_list_info affected_session_info_list[8]; // Contains up to 8 entries of
+ // the affected services
+ affected_mbsfn_areas_info affected_mbsfn_areas[8]; // Contains up to 8 entries of
+ // the affected areas
+} icd_errc_embms_oos_info_struct_v1;
+
+typedef icd_errc_embms_oos_info_struct_v1 icd_errc_embms_oos_info_struct;
+
+
+#endif /* _ERRC_EMBMS_OOS_INFO_H */
+
+
+/* Public JSON start
+"ERRC_EMBMS_OOS_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7103", "Name": "ERRC_EMBMS_OOS_Info", "Type": "RECORD", "Desc": "The log is generated when UE detects out of service eMBMS area and services are unavailable.\n"}, "table": {"ERRC_EMBMS_OOS_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_EMBMS_OOS_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_EMBMS_OOS_Info"}, "ERRC_EMBMS_OOS_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_EMBMS_OOS_Info_V1", ""]}, "Name": "ERRC_EMBMS_OOS_Info_Versions"}, "ERRC_EMBMS_OOS_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Affected Sessions", "UINT8", "1", "0", "8", "Number of affected service. range[0, 8]"], "1": ["Num of Affected Areas", "UINT8", "1", "8", "8", "Number of affected areas. range[0, 8]"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Affected Session Info List", "Affected_Session_Info_List_Info_V1", "8", "24", "768", "Contains up to 8 entries of\nthe affected services"], "4": ["Affected MBSFN Areas", "Affected_MBSFN_Areas_Info_V1", "8", "792", "64", "Contains up to 8 entries of\nthe affected areas"]}, "Name": "ERRC_EMBMS_OOS_Info_V1"}, "Affected_Session_Info_List_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PLMN ID", "UINT32", "1", "0", "32", "PLMN ID in TMGI"], "1": ["Service ID", "UINT32", "1", "32", "32", "Service ID in TMGI"], "2": ["Session ID Present", "UINT8", "1", "64", "8", "Sesion ID is present or not"], "3": ["Session ID", "UINT8", "1", "72", "8", "Session ID in eMBMS session info(valid only when session ID is present)"], "4": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "Affected_Session_Info_List_Info_V1"}, "Affected_MBSFN_Areas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MBSFN Area ID", "UINT8", "1", "0", "8", "Contains up to 8 entries of the following elements of which only entries are valid"]}, "Name": "Affected_MBSFN_Areas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [143ed99b4435115b7c3cb8ea75ebaebe]
diff --git a/mcu/interface/service/icd/errc/errc_ota_message_info.h b/mcu/interface/service/icd/errc/errc_ota_message_info.h
new file mode 100644
index 0000000..382bae3
--- /dev/null
+++ b/mcu/interface/service/icd/errc/errc_ota_message_info.h
@@ -0,0 +1,52 @@
+// ICD Header Format v3
+// Name : ERRC_OTA_Message_Info
+// Category : LTE
+// Layer : ERRC
+// Type : RECORD
+// Code : 0x7102
+// Version : V2.6
+
+#ifndef _ERRC_OTA_MESSAGE_INFO_H
+#define _ERRC_OTA_MESSAGE_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_OTA_MESSAGE_INFO 0x7102
+
+#define ICD_ERRC_ERRC_OTA_MESSAGE_INFO_V1 1
+
+#define MAX_ICD_ERRC_OTA_MESSAGE_INFO_STRUCT_V1_NUM_OF_PAYLOAD_LEN 8192
+
+#define ICD_ERRC_OTA_MESSAGE_INFO_STRUCT_V1_MAX_SIZE 8200
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 rrc_release; // release number (e.g. 13)
+ kal_uint8 rrc_version; // version number, left 4 bits are for x, right 4 bits are for y. (e.g. 01100001 -> 6.1)
+ // Hence, it is 13.6.1
+ kal_uint8 pdu_num; // pcch (1)
+ // dlCcch (2)
+ // dlDcch (3)
+ // ulCcch (4)
+ // ulDcch (5)
+ // mcch (6)
+ // bcchDlSch (7)
+ // bcch_bch (8)
+ kal_uint8 msg_type; // Message enum
+ kal_uint8 reserved;
+ kal_uint16 num_of_payload_len; // Length of the ASN.1 uplink/downloink encoded message. range[0, 8192]
+ kal_uint8 rrc_payload[FLEXIBLE_ARRAY_SIZE]; // N := Num of Payload len
+ // ASN.1 uplink/downloink encoded message
+} icd_errc_ota_message_info_struct_v1;
+
+typedef icd_errc_ota_message_info_struct_v1 icd_errc_ota_message_info_struct;
+
+
+#endif /* _ERRC_OTA_MESSAGE_INFO_H */
+
+
+/* Public JSON start
+"ERRC_OTA_Message_Info": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7102", "Name": "ERRC_OTA_Message_Info", "Type": "RECORD", "Desc": "RRC OTA Message from 3GPP 36.331.\n"}, "table": {"ERRC_OTA_Message_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "ERRC_OTA_Message_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_OTA_Message_Info"}, "ERRC_OTA_Message_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_OTA_Message_Info_V1", ""]}, "Name": "ERRC_OTA_Message_Info_Versions"}, "ERRC_OTA_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RRC Payload": "Num of Payload len"}, "Name": "ERRC_OTA_Message_Info_V1", "Data": {"0": ["RRC release", "UINT8", "1", "0", "8", "release number (e.g. 13)"], "1": ["RRC Version", "UINT8", "1", "8", "8", "version number, left 4 bits are for x, right 4 bits are for y. (e.g. 01100001 -> 6.1)\nHence, it is 13.6.1"], "2": ["PDU Num", "UINT8", "1", "16", "8", "pcch (1)\ndlCcch (2)\ndlDcch (3)\nulCcch (4)\nulDcch (5)\nmcch (6)\nbcchDlSch (7)\nbcch_bch (8)"], "3": ["Msg Type", "UINT8", "1", "24", "8", "Message enum"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Num of Payload len", "UINT16", "1", "40", "16", "Length of the ASN.1 uplink/downloink encoded message. range[0, 8192]"], "6": ["RRC Payload", "UINT8", "N", "56", "VAR", "N := Num of Payload len\nASN.1 uplink/downloink encoded message"]}}}},
+ Public JSON end */
+// Checksum : [5e30f7413d99da4461b695915fc96ddc]
diff --git a/mcu/interface/service/icd/event/cm/CM_EPS_FALLBACK_STATUS_EVENT.h b/mcu/interface/service/icd/event/cm/CM_EPS_FALLBACK_STATUS_EVENT.h
new file mode 100644
index 0000000..836bb8e
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_EPS_FALLBACK_STATUS_EVENT.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : CM_EPS_FALLBACK_STATUS_EVENT
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7705
+// Version : V2.6
+
+#ifndef _CM_EPS_FALLBACK_STATUS_EVENT_H
+#define _CM_EPS_FALLBACK_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_EPS_FALLBACK_STATUS_EVENT 0x7705
+
+#define ICD_CM_CM_EPS_FALLBACK_STATUS_V1 1
+
+#define ICD_CM_EPS_FALLBACK_STATUS_STRUCT_V1_MAX_SIZE 3
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 stat; // indicates the EPS fallback (EPSFB) status when MO/MT
+ // call is initated in 5GS.
+ // 0: 5GS to EPS fallback started or redirection
+ // is indicated by lower layers)
+ // 1: 5GS to EPS fallback successful
+ // 2: 5GS to EPS fallback failure
+ kal_uint8 type; // indicates the EPSFB type.
+ // 0: Handover
+ // 1: Redirection
+} icd_cm_eps_fallback_status_struct_v1;
+
+typedef icd_cm_eps_fallback_status_struct_v1 icd_cm_eps_fallback_status_struct;
+
+
+#endif /* _CM_EPS_FALLBACK_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"CM_EPS_FALLBACK_STATUS_EVENT": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7705", "Name": "CM_EPS_FALLBACK_STATUS_EVENT", "Type": "EVENT", "Desc": "The event is generated when EPS fallback happened.\n"}, "table": {"CM_EPS_FALLBACK_STATUS": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_EPS_FALLBACK_STATUS_Versions", "1", "8", "VAR", ""]}, "Name": "CM_EPS_FALLBACK_STATUS"}, "CM_EPS_FALLBACK_STATUS_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_EPS_FALLBACK_STATUS_V1", ""]}, "Name": "CM_EPS_FALLBACK_STATUS_Versions"}, "CM_EPS_FALLBACK_STATUS_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["STAT", "UINT8", "1", "0", "8", "indicates the EPS fallback (EPSFB) status when MO/MT\ncall is initated in 5GS.\n0: 5GS to EPS fallback started or redirection\nis indicated by lower layers)\n1: 5GS to EPS fallback successful\n2: 5GS to EPS fallback failure"], "1": ["TYPE", "UINT8", "1", "8", "8", "indicates the EPSFB type.\n0: Handover\n1: Redirection"]}, "Name": "CM_EPS_FALLBACK_STATUS_V1"}}},
+ Public JSON end */
+// Checksum : [d3c1b506e6eb4b5d7664faea354e1374]
diff --git a/mcu/interface/service/icd/event/cm/CM_MSPM_GEMINI_MODE_EVENT.h b/mcu/interface/service/icd/event/cm/CM_MSPM_GEMINI_MODE_EVENT.h
new file mode 100644
index 0000000..a539a09
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_MSPM_GEMINI_MODE_EVENT.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : CM_MSPM_GEMINI_MODE_EVENT
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7708
+// Version : V2.4-56-g6601685
+
+#ifndef _CM_MSPM_GEMINI_MODE_EVENT_H
+#define _CM_MSPM_GEMINI_MODE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_MSPM_GEMINI_MODE_EVENT 0x7708
+
+#define ICD_CM_CM_MSPM_GEMINI_MODE_V1 1
+
+#define ICD_CM_MSPM_GEMINI_MODE_STRUCT_V1_MAX_SIZE 3
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 gemini_mode; // 0: DSDS
+ // 1: DR_DSDS
+ // 2: DSDA
+ kal_uint8 reserved;
+} icd_cm_mspm_gemini_mode_struct_v1;
+
+typedef icd_cm_mspm_gemini_mode_struct_v1 icd_cm_mspm_gemini_mode_struct;
+
+
+#endif /* _CM_MSPM_GEMINI_MODE_EVENT_H */
+
+
+/* Internal JSON start
+"CM_MSPM_GEMINI_MODE_EVENT": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7708", "Name": "CM_MSPM_GEMINI_MODE_EVENT", "Type": "EVENT", "Desc": "The event is generated when when MSPM GEMINI mode changed.\n"}, "table": {"CM_MSPM_GEMINI_MODE": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_MSPM_GEMINI_MODE_Versions", "1", "8", "VAR", ""]}, "Name": "CM_MSPM_GEMINI_MODE"}, "CM_MSPM_GEMINI_MODE_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_MSPM_GEMINI_MODE_V1", ""]}, "Name": "CM_MSPM_GEMINI_MODE_Versions"}, "CM_MSPM_GEMINI_MODE_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["GEMINI_MODE", "UINT8", "1", "0", "8", "0: DSDS\n1: DR_DSDS\n2: DSDA"], "1": ["Reserved", "UINT8", "1", "8", "8", ""]}, "Name": "CM_MSPM_GEMINI_MODE_V1"}}},
+ Internal JSON end */
+// Checksum : [ce64db2cc885d66f0fe9ed88a12e9a8e]
diff --git a/mcu/interface/service/icd/event/cm/CM_MSPM_GEMINI_STATUS_EVENT.h b/mcu/interface/service/icd/event/cm/CM_MSPM_GEMINI_STATUS_EVENT.h
new file mode 100644
index 0000000..5639bbb
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_MSPM_GEMINI_STATUS_EVENT.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : CM_MSPM_GEMINI_STATUS_EVENT
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7707
+// Version : V2.6
+
+#ifndef _CM_MSPM_GEMINI_STATUS_EVENT_H
+#define _CM_MSPM_GEMINI_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_MSPM_GEMINI_STATUS_EVENT 0x7707
+
+#define ICD_CM_CM_MSPM_GEMINI_STATUS_V1 1
+
+#define ICD_CM_MSPM_GEMINI_STATUS_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ kal_uint8 genimi_state[4]; // For Dual-SIM project. gemini_state[0] present SIM1,
+ // gemini_state[1] present SIM2, gemini_stat[2]
+ // present C2K, gemini_state[3] will be 0
+ // For TSTS projectm gemini_state[0] present SIM1,
+ // gemini_state[1] present SIM2, gemini_stat[2]
+ // present SIM3, gemini_state[3] present C2K
+ // 0 : RSVAS_SIM_INVALID
+ // 1 : RSVAS_SIM_CONNECTED
+ // 2 : RSVAS_SIM_LIMITED_CONNECTED
+ // 3 : RSVAS_SIM_VIRTUAL_CONNECTED
+ // 4 : RSVAS_SIM_IDLE_WITH_SERVICE
+ // 5 : RSVAS_SIM_IDLE
+ // 6 : RSVAS_SIM_VIRTUAL
+ // 7 : RSVAS_SIM_LIMITED_VIRTUAL
+ // 8 : RSVAS_SIM_SUSPENDED
+} icd_cm_mspm_gemini_status_struct_v1;
+
+typedef icd_cm_mspm_gemini_status_struct_v1 icd_cm_mspm_gemini_status_struct;
+
+
+#endif /* _CM_MSPM_GEMINI_STATUS_EVENT_H */
+
+
+/* Internal JSON start
+"CM_MSPM_GEMINI_STATUS_EVENT": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7707", "Name": "CM_MSPM_GEMINI_STATUS_EVENT", "Type": "EVENT", "Desc": "The event is generated when MSPM GEMINI status changed.\n"}, "table": {"CM_MSPM_GEMINI_STATUS": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_MSPM_GEMINI_STATUS_Versions", "1", "8", "VAR", ""]}, "Name": "CM_MSPM_GEMINI_STATUS"}, "CM_MSPM_GEMINI_STATUS_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_MSPM_GEMINI_STATUS_V1", ""]}, "Name": "CM_MSPM_GEMINI_STATUS_Versions"}, "CM_MSPM_GEMINI_STATUS_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["GENIMI_STATE", "UINT8", "4", "24", "32", "For Dual-SIM project. gemini_state[0] present SIM1,\ngemini_state[1] present SIM2, gemini_stat[2]\npresent C2K, gemini_state[3] will be 0\nFor TSTS projectm gemini_state[0] present SIM1,\ngemini_state[1] present SIM2, gemini_stat[2]\npresent SIM3, gemini_state[3] present C2K\n0 : RSVAS_SIM_INVALID\n1 : RSVAS_SIM_CONNECTED\n2 : RSVAS_SIM_LIMITED_CONNECTED\n3 : RSVAS_SIM_VIRTUAL_CONNECTED\n4 : RSVAS_SIM_IDLE_WITH_SERVICE\n5 : RSVAS_SIM_IDLE\n6 : RSVAS_SIM_VIRTUAL\n7 : RSVAS_SIM_LIMITED_VIRTUAL\n8 : RSVAS_SIM_SUSPENDED"]}, "Name": "CM_MSPM_GEMINI_STATUS_V1"}}},
+ Internal JSON end */
+// Checksum : [6036346f78f9f586c66f6f45a9b8ce8d]
diff --git a/mcu/interface/service/icd/event/cm/CM_MSPM_ONGOING_PROCEDURE_EVENT.h b/mcu/interface/service/icd/event/cm/CM_MSPM_ONGOING_PROCEDURE_EVENT.h
new file mode 100644
index 0000000..8b8d1ab
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_MSPM_ONGOING_PROCEDURE_EVENT.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : CM_MSPM_ONGOING_PROCEDURE_EVENT
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7706
+// Version : V2.6
+
+#ifndef _CM_MSPM_ONGOING_PROCEDURE_EVENT_H
+#define _CM_MSPM_ONGOING_PROCEDURE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_MSPM_ONGOING_PROCEDURE_EVENT 0x7706
+
+#define ICD_CM_CM_MSPM_ONGOING_PROCEDURE_V1 1
+
+#define ICD_CM_MSPM_ONGOING_PROCEDURE_STRUCT_V1_MAX_SIZE 108
+
+typedef struct {
+ kal_uint8 proc_num; // indicates the amount of ongoing procedures
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ kal_uint16 procedure[16]; // casting from mspm procedure
+ kal_uint8 priority[16]; // indicates the priority of procedure n
+} cm_mspm_ongoing_procedure_info_v1;
+
+typedef cm_mspm_ongoing_procedure_info_v1 cm_mspm_ongoing_procedure_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ cm_mspm_ongoing_procedure_info mspm_ongoing_procedure_info[2];
+} icd_cm_mspm_ongoing_procedure_struct_v1;
+
+typedef icd_cm_mspm_ongoing_procedure_struct_v1 icd_cm_mspm_ongoing_procedure_struct;
+
+
+#endif /* _CM_MSPM_ONGOING_PROCEDURE_EVENT_H */
+
+
+/* Internal JSON start
+"CM_MSPM_ONGOING_PROCEDURE_EVENT": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7706", "Name": "CM_MSPM_ONGOING_PROCEDURE_EVENT", "Type": "EVENT", "Desc": "The event is generated when MSPM PROCEDURE happened.\n"}, "table": {"CM_MSPM_ONGOING_PROCEDURE": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_MSPM_ONGOING_PROCEDURE_Versions", "1", "8", "VAR", ""]}, "Name": "CM_MSPM_ONGOING_PROCEDURE"}, "CM_MSPM_ONGOING_PROCEDURE_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_MSPM_ONGOING_PROCEDURE_V1", ""]}, "Name": "CM_MSPM_ONGOING_PROCEDURE_Versions"}, "CM_MSPM_ONGOING_PROCEDURE_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["MSPM_ONGOING_PROCEDURE_INFO", "CM_MSPM_ONGOING_PROCEDURE_INFO_V1", "2", "24", "832", ""]}, "Name": "CM_MSPM_ONGOING_PROCEDURE_V1"}, "CM_MSPM_ONGOING_PROCEDURE_INFO_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PROC_NUM", "UINT8", "1", "0", "8", "indicates the amount of ongoing procedures"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["PROCEDURE", "UINT16", "16", "32", "256", "casting from mspm procedure"], "4": ["PRIORITY", "UINT8", "16", "288", "128", "indicates the priority of procedure n"]}, "Name": "CM_MSPM_ONGOING_PROCEDURE_INFO_V1"}}},
+ Internal JSON end */
+// Checksum : [16488b13ef0a3d17db12a22cd19224ec]
diff --git a/mcu/interface/service/icd/event/cm/CM_MSPM_PREEMPTION_STATUS_EVENT.h b/mcu/interface/service/icd/event/cm/CM_MSPM_PREEMPTION_STATUS_EVENT.h
new file mode 100644
index 0000000..1eef010
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_MSPM_PREEMPTION_STATUS_EVENT.h
@@ -0,0 +1,87 @@
+// ICD Header Format v3
+// Name : CM_MSPM_PREEMPTION_STATUS_EVENT
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7704
+// Version : V2.6
+
+#ifndef _CM_MSPM_PREEMPTION_STATUS_EVENT_H
+#define _CM_MSPM_PREEMPTION_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_MSPM_PREEMPTION_STATUS_EVENT 0x7704
+
+#define ICD_CM_CM_MSPM_PREEMPTION_STATUS_V1 1
+
+#define ICD_CM_MSPM_PREEMPTION_STATUS_STRUCT_V1_MAX_SIZE 16
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 preemption_status; // 0: preemption is started, and the following
+ // procedure, priority, gemini_state info
+ // are valid
+ // 1: preemption is ended, and the following
+ // procedure, priority, gemini_state info
+ // are invalid
+ kal_uint8 is_c2k_preemption; // 0: data sim is not preempted by C2K
+ // 1: data sim is preempted by C2K
+ kal_uint8 reserved;
+ kal_uint32 procedure[2]; // procedure[0] denotes data sim's highest
+ // procedure bitmap when preemption starts
+ // procedure[1] denotes preemption sim's highest
+ // procedure bitmap when preemption starts
+ // procedure bit definition:
+ // bit1: Others
+ // bit2: SMS
+ // bit3: MMS
+ // bit4: Call session
+ // bit5: AFR
+ // bit6: IMS_REGISTRATION
+ // bit7: IMS_SUBSCRIPTION
+ // bit8: C2K_REGISTRATION
+ // bit9: PAGING
+ // bit10: 23G_ATTACH
+ // bit11: 4G_ATTACH
+ // bit12: 5G_ATTACH
+ // bit13: 23G_DETACH
+ // bit14: 4G_DETACH
+ // bit15: 5G_DETACH
+ // bit16: 23G_RAU
+ // bit17: 23G_LU
+ // bit18: 4G_TAU
+ // bit19: 5G_MRU
+ // e.g. procedure[0] = bit5 & bit1 => AFR and
+ // others procedure are preempted in data SIM
+ // procedure[1] = bit4 & bit1 => Call session and
+ // others procedure preempt in peer SIM
+ kal_uint8 priority[2]; // priority[0] denotes data sim's highest
+ // priority value when preemption starts
+ // priority[1] denotes preemption sim's
+ // highest priority value when preemption starts
+ // Value definition: range 0~32, highest
+ // priority with smallest value
+ kal_uint8 gemini_state[2]; // gemini_state[0] denotes data sim's gemini state
+ // after preemption starts
+ // gemini_state[1] denotes preemption sim's gemini
+ // state after preemption starts
+ // Value definition:
+ // 0: GEMINI_CONNECTED
+ // 1: GEMINI_VIRTUAL_CONNECTED
+ // 2: GEMINI_IDLE
+ // 3: GEMINI_VIRTUAL_IDLE
+ // 4: GEMINI_SUSPENDED
+} icd_cm_mspm_preemption_status_struct_v1;
+
+typedef icd_cm_mspm_preemption_status_struct_v1 icd_cm_mspm_preemption_status_struct;
+
+
+#endif /* _CM_MSPM_PREEMPTION_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"CM_MSPM_PREEMPTION_STATUS_EVENT": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7704", "Name": "CM_MSPM_PREEMPTION_STATUS_EVENT", "Type": "EVENT", "Desc": "The event is generated when Preemption happened.\n"}, "table": {"CM_MSPM_PREEMPTION_STATUS": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_MSPM_PREEMPTION_STATUS_Versions", "1", "8", "VAR", ""]}, "Name": "CM_MSPM_PREEMPTION_STATUS"}, "CM_MSPM_PREEMPTION_STATUS_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_MSPM_PREEMPTION_STATUS_V1", ""]}, "Name": "CM_MSPM_PREEMPTION_STATUS_Versions"}, "CM_MSPM_PREEMPTION_STATUS_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PREEMPTION STATUS", "UINT8", "1", "0", "8", "0: preemption is started, and the following\nprocedure, priority, gemini_state info\nare valid\n1: preemption is ended, and the following\nprocedure, priority, gemini_state info\nare invalid"], "1": ["IS C2K PREEMPTION", "UINT8", "1", "8", "8", "0: data sim is not preempted by C2K\n1: data sim is preempted by C2K"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["PROCEDURE", "UINT32", "2", "24", "64", "procedure[0] denotes data sim's highest\nprocedure bitmap when preemption starts\nprocedure[1] denotes preemption sim's highest\nprocedure bitmap when preemption starts\nprocedure bit definition:\nbit1: Others\nbit2: SMS\nbit3: MMS\nbit4: Call session\nbit5: AFR\nbit6: IMS_REGISTRATION\nbit7: IMS_SUBSCRIPTION\nbit8: C2K_REGISTRATION\nbit9: PAGING\nbit10: 23G_ATTACH\nbit11: 4G_ATTACH\nbit12: 5G_ATTACH\nbit13: 23G_DETACH\nbit14: 4G_DETACH\nbit15: 5G_DETACH\nbit16: 23G_RAU\nbit17: 23G_LU\nbit18: 4G_TAU\nbit19: 5G_MRU\ne.g. procedure[0] = bit5 & bit1 => AFR and\nothers procedure are preempted in data SIM\nprocedure[1] = bit4 & bit1 => Call session and\nothers procedure preempt in peer SIM"], "4": ["PRIORITY", "UINT8", "2", "88", "16", "priority[0] denotes data sim's highest\npriority value when preemption starts\npriority[1] denotes preemption sim's\nhighest priority value when preemption starts\nValue definition: range 0~32, highest\npriority with smallest value"], "5": ["GEMINI STATE", "UINT8", "2", "104", "16", "gemini_state[0] denotes data sim's gemini state\nafter preemption starts\ngemini_state[1] denotes preemption sim's gemini\nstate after preemption starts\nValue definition:\n0: GEMINI_CONNECTED\n1: GEMINI_VIRTUAL_CONNECTED\n2: GEMINI_IDLE\n3: GEMINI_VIRTUAL_IDLE\n4: GEMINI_SUSPENDED"]}, "Name": "CM_MSPM_PREEMPTION_STATUS_V1"}}},
+ Public JSON end */
+// Checksum : [da2e2f3275d1488edb24ee57998e29e3]
diff --git a/mcu/interface/service/icd/event/cm/CM_PLMN_Search_Info.h b/mcu/interface/service/icd/event/cm/CM_PLMN_Search_Info.h
new file mode 100644
index 0000000..2310d85
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_PLMN_Search_Info.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : CM_PLMN_SEARCH_INFO
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7701
+// Version : V2.6
+
+#ifndef _CM_PLMN_SEARCH_INFO_H
+#define _CM_PLMN_SEARCH_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_PLMN_SEARCH_INFO 0x7701
+
+#define ICD_CM_CM_PLMN_SEARCH_INFO_V1 1
+
+#define ICD_CM_PLMN_SEARCH_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 select_mode; // Automatic Network Selection Mode(0)
+ // Manual Network Selection Mode(1)
+ kal_uint8 search_status; // Not Found (0)
+ // Found (1)
+ // Cannot Process (2)
+ kal_uint8 rat; // GSM (1)
+ // WCDMA (2)
+ // LTE (4)
+ // NR (8)
+} icd_cm_plmn_search_info_struct_v1;
+
+typedef icd_cm_plmn_search_info_struct_v1 icd_cm_plmn_search_info_struct;
+
+
+#endif /* _CM_PLMN_SEARCH_INFO_H */
+
+
+/* Public JSON start
+"CM_PLMN_SEARCH_INFO": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7701", "Name": "CM_PLMN_SEARCH_INFO", "Type": "EVENT", "Desc": "The event is generated when 3GPP PLMN search if finished.\n"}, "table": {"CM_PLMN_Search_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_PLMN_Search_Info_Versions", "1", "8", "VAR", ""]}, "Name": "CM_PLMN_Search_Info"}, "CM_PLMN_Search_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_PLMN_Search_Info_V1", ""]}, "Name": "CM_PLMN_Search_Info_Versions"}, "CM_PLMN_Search_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Select Mode", "UINT8", "1", "0", "8", "Automatic Network Selection Mode(0)\nManual Network Selection Mode(1)"], "1": ["Search Status", "UINT8", "1", "8", "8", "Not Found (0)\nFound (1)\nCannot Process (2)"], "2": ["RAT", "UINT8", "1", "16", "8", "GSM (1)\nWCDMA (2)\nLTE (4)\nNR (8)"]}, "Name": "CM_PLMN_Search_Info_V1"}}},
+ Public JSON end */
+// Checksum : [2d071fee853bf23d447d0ec8760fdb40]
diff --git a/mcu/interface/service/icd/event/cm/CM_System_Service_Info.h b/mcu/interface/service/icd/event/cm/CM_System_Service_Info.h
new file mode 100644
index 0000000..2d35715
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_System_Service_Info.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : CM_SYSTEM_SERVICE_INFO
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x7700
+// Version : V2.6
+
+#ifndef _CM_SYSTEM_SERVICE_INFO_H
+#define _CM_SYSTEM_SERVICE_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_SYSTEM_SERVICE_INFO 0x7700
+
+#define ICD_CM_CM_SYSTEM_SERVICE_INFO_V2 2
+
+#define ICD_CM_SYSTEM_SERVICE_INFO_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 event; // Out Of Service(0)
+ // In Service (1)
+ kal_uint8 rat; // Loss RAT if Event is Out Of Service
+ // In service RAT if event is In Service
+ // GSM (1)
+ // WCDMA (2)
+ // LTE (4)
+ // NR (128)
+ kal_uint8 roaming_status; // Roaming status if Event is In Service
+ // Roaming (0)
+ // Home (1)
+} icd_cm_system_service_info_struct_v2;
+
+typedef icd_cm_system_service_info_struct_v2 icd_cm_system_service_info_struct;
+
+
+#endif /* _CM_SYSTEM_SERVICE_INFO_H */
+
+
+/* Public JSON start
+"CM_SYSTEM_SERVICE_INFO": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x7700", "Name": "CM_SYSTEM_SERVICE_INFO", "Type": "EVENT", "Desc": "The event is generated when system service is changed.\n"}, "table": {"CM_SYSTEM_SERVICE_INFO": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_System_Service_Info_Versions", "1", "8", "VAR", ""]}, "Name": "CM_SYSTEM_SERVICE_INFO"}, "CM_System_Service_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_System_Service_Info_V1", ""], "1": ["2", "CM_System_Service_Info_V2", ""]}, "Name": "CM_System_Service_Info_Versions"}, "CM_System_Service_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Event", "UINT8", "1", "0", "8", "Out Of Service(0)"], "1": ["RAT", "UINT8", "1", "8", "8", "Loss RAT if Event is Out Of Service\nGSM (1)\nWCDMA (2)\nLTE (4)\nNR (128)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "CM_System_Service_Info_V1"}, "CM_System_Service_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Event", "UINT8", "1", "0", "8", "Out Of Service(0)\nIn Service (1)"], "1": ["RAT", "UINT8", "1", "8", "8", "Loss RAT if Event is Out Of Service\nIn service RAT if event is In Service\nGSM (1)\nWCDMA (2)\nLTE (4)\nNR (128)"], "2": ["Roaming Status", "UINT8", "1", "16", "8", "Roaming status if Event is In Service\nRoaming (0)\nHome (1)"]}, "Name": "CM_System_Service_Info_V2"}}},
+ Public JSON end */
+// Checksum : [edff344f5de65fcb0922a17c3ab11ee5]
diff --git a/mcu/interface/service/icd/event/cm/CM_UE_CAPABILITY_INFO.h b/mcu/interface/service/icd/event/cm/CM_UE_CAPABILITY_INFO.h
new file mode 100644
index 0000000..8b5f8b7
--- /dev/null
+++ b/mcu/interface/service/icd/event/cm/CM_UE_CAPABILITY_INFO.h
@@ -0,0 +1,175 @@
+// ICD Header Format v3
+// Name : CM_UE_CAPABILITY_INFO
+// Category : LTE
+// Layer : CM
+// Type : EVENT
+// Code : 0x770B
+// Version : V2.4-136-g76b6efc
+
+#ifndef _CM_UE_CAPABILITY_INFO_H
+#define _CM_UE_CAPABILITY_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_CM_UE_CAPABILITY_INFO 0x770B
+
+#define ICD_CM_CM_UE_CAPABILITY_INFO_V1 1
+
+#define ICD_CM_UE_CAPABILITY_INFO_STRUCT_V1_MAX_SIZE 20
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cell_type; // Cell type of serving PLMN
+ // Enum {
+ // 0: Suitable cell,
+ // 1: Acceptable cell,
+ // 2: Camp not allowed cell,
+ // 3: Cell not available
+ // }
+ kal_uint16 mcc; // MCC of serving PLMN
+ kal_uint16 mnc; // MNC of serving PLMN
+ kal_uint8 s1_capability_status; // S1 capability status
+ // Enum {
+ // 0: Disabled,
+ // 1: Enabled
+ // }
+ kal_uint8 s1_disable_reason; // S1 disable reason
+ // Enum {
+ // 0: REASON_NONE,
+ // 1: GPRS_FPLMN,
+ // 2: ESM_FPLMN,
+ // 3: CUSTOM_EUTRA0N_DISABLE,
+ // 4: CUSTOM_N1_DISABLE,
+ // 5: CUSTOM_ENDC_DISABLE,
+ // 6: ATNT_BACKOFF,
+ // 7: REJ_42,
+ // 8: VZW_HVOLTE_IMS_NOT_ROAMING_CS_18,
+ // 9: ATNT_DISABLE_LTE,
+ // 10: CS_PS_CAUSE,
+ // 11: DATA_OFF_IMS_OFF,
+ // 12: DATA_ROAMING_OFF_IMS_OFF,
+ // 13: ROAMING_NOT_ALLOW,
+ // 14: VOICE_CENTRIC_S1_DISABLED,
+ // 15: 5G_SA_OPTION_2_NOT_ENABLED,
+ // 16: RAT_IS_NOT_ENABLED,
+ // 17: CANNOT_HAVE_PS_NORMAL_SERVICE,
+ // 18: NWSEL_DISABLE_PLMN_BASE_TIMER_RUNNING,
+ // 19: DISABLE_TIMER_REASON_REJ_42,
+ // 20: DISABLE_TIMER_ATNT_BACKOFF,
+ // 21: DISABLE_TIMER_NO_SUITABLE,
+ // 22: DISABLE_TIMER_NO_PDN_AVAILABLE,
+ // 23: DISABLE_TIMER_EUTRAN_VZW_BARRING,
+ // 24: DISABLE_TIMER_EUTRAN_ABNORMAL,
+ // 25: DISABLE_TIMER_EUTRAN_VOICE_NOT_POSSIABLE,
+ // 26: DISABLE_TIMER_N1_NOT_ALLOW,
+ // 27: DISABLE_TIMER_N1_ABNORMAL,
+ // 28: DISABLE_TIMER_N1_VOICE_NOT_POSSIABLE,
+ // 29: DISABLE_TIMER_5GNRSA_VZW_BARRING,
+ // 30: DISABLE_TIMER_EUTRAN_HPLMN_REJ_14,
+ // 31: NAS_NOT_ALLOW_NO_PDN,
+ // 32: NAS_NOT_ALLOW_T3402,
+ // 33: NAS_NOT_ALLOW_THROTTLING_APN,
+ // 34: NAS_NOT_ALLOW_EMC_BS,
+ // 35: NAS_NOT_ALLOW_VZW_VGMM_T3502,
+ // 36: NAS_NOT_ALLOW_VZW_VGMM_T3525,
+ // 37: NAS_NOT_ALLOW_VZW_VGMM_SR_THROTTLING
+ // }
+ kal_uint32 s1_volte_events; // VoLTE events happened in S1 mode which might
+ // affect S1 capability. (bit mask)
+ // Enum {
+ // 0: NO_EVENT,
+ // 256: IMS_VOPS_NOT_SUPPORT,
+ // 512: IMS_UNREGISTERED,
+ // 1024: REJ_CAUSE_PS_ABNORMAL,
+ // 1032: REJ_CAUSE_ABNORMAL,
+ // 1280: IMS_VOPS_AND_PS_ABN,
+ // 1536: IMS_UNR_AND_PS_ABN,
+ // 2048: T_IMS_EST_EXPIRE,
+ // 4096: PCO_FF00H_5_FAIL,
+ // 8012: SSAC_BAR_VOLTE,
+ // 16384: IMS_ROAMING_DISABLE,
+ // 16640: IMS_VOPS_AND_ROAMING_DISABLE
+ // }
+ kal_uint8 s1_csfb_events; // CSFB events happened in S1 mode which might
+ // affect S1 capability. (bit mask)
+ // Enum {
+ // 0: NO_EVENT,
+ // 1: ACC_CS_NOT_AVAILABLE,
+ // 2: ACC_CAUSE_16_17,
+ // 4: ACC_CAUSE_18,
+ // 8: REJ_CAUSE_CS_ABNORMAL,
+ // 16: CSFB_NOT_SCHEDULED,
+ // 32: ACC_CAUSE_2
+ // }
+ kal_uint8 n1_capability_status; // N1 capability status
+ // Enum {
+ // 0: Disabled,
+ // 1: Enabled
+ // }
+ kal_uint8 n1_disable_reason; // N1 disable reason
+ // Enum {
+ // 0: REASON_NONE,
+ // 1: GPRS_FPLMN,
+ // 2: ESM_FPLMN,
+ // 3: CUSTOM_EUTRA0N_DISABLE,
+ // 4: CUSTOM_N1_DISABLE,
+ // 5: CUSTOM_ENDC_DISABLE,
+ // 6: ATNT_BACKOFF,
+ // 7: REJ_42,
+ // 8: VZW_HVOLTE_IMS_NOT_ROAMING_CS_18,
+ // 9: ATNT_DISABLE_LTE,
+ // 10: CS_PS_CAUSE,
+ // 11: DATA_OFF_IMS_OFF,
+ // 12: DATA_ROAMING_OFF_IMS_OFF,
+ // 13: ROAMING_NOT_ALLOW,
+ // 14: VOICE_CENTRIC_S1_DISABLED,
+ // 15: 5G_SA_OPTION_2_NOT_ENABLED,
+ // 16: RAT_IS_NOT_ENABLED,
+ // 17: CANNOT_HAVE_PS_NORMAL_SERVICE,
+ // 18: NWSEL_DISABLE_PLMN_BASE_TIMER_RUNNING,
+ // 19: DISABLE_TIMER_REASON_REJ_42,
+ // 20: DISABLE_TIMER_ATNT_BACKOFF,
+ // 21: DISABLE_TIMER_NO_SUITABLE,
+ // 22: DISABLE_TIMER_NO_PDN_AVAILABLE,
+ // 23: DISABLE_TIMER_EUTRAN_VZW_BARRING,
+ // 24: DISABLE_TIMER_EUTRAN_ABNORMAL,
+ // 25: DISABLE_TIMER_EUTRAN_VOICE_NOT_POSSIABLE,
+ // 26: DISABLE_TIMER_N1_NOT_ALLOW,
+ // 27: DISABLE_TIMER_N1_ABNORMAL,
+ // 28: DISABLE_TIMER_N1_VOICE_NOT_POSSIABLE,
+ // 29: DISABLE_TIMER_5GNRSA_VZW_BARRING,
+ // 30: DISABLE_TIMER_EUTRAN_HPLMN_REJ_14,
+ // 31: NAS_NOT_ALLOW_NO_PDN,
+ // 32: NAS_NOT_ALLOW_T3402,
+ // 33: NAS_NOT_ALLOW_THROTTLING_APN,
+ // 34: NAS_NOT_ALLOW_EMC_BS,
+ // 35: NAS_NOT_ALLOW_VZW_VGMM_T3502,
+ // 36: NAS_NOT_ALLOW_VZW_VGMM_T3525,
+ // 37: NAS_NOT_ALLOW_VZW_VGMM_SR_THROTTLING
+ // }
+ kal_uint8 reserved;
+ kal_uint16 n1_events; // Events happened in N1 mode which might affect
+ // N1 capability. (bit mask)
+ // Enum {
+ // 0: NO_EVENT,
+ // 256: IMS_VOPS_NOT_SUPPORT,
+ // 512: IMS_UNREGISTERED,
+ // 1024: REJ_CAUSE_PS_ABNORMAL,
+ // 1032: REJ_CAUSE_ABNORMAL,
+ // 2048: T_IMS_EST_EXPIRE,
+ // 4096: PCO_FF00H_5_FAIL
+ // }
+ kal_uint8 reserved_1[2];
+} icd_cm_ue_capability_info_struct_v1;
+
+typedef icd_cm_ue_capability_info_struct_v1 icd_cm_ue_capability_info_struct;
+
+
+#endif /* _CM_UE_CAPABILITY_INFO_H */
+
+
+/* Internal JSON start
+"CM_UE_CAPABILITY_INFO": {"info": {"Category": "LTE", "Layer": "CM", "Code": "0x770B", "Name": "CM_UE_CAPABILITY_INFO", "Type": "EVENT", "Desc": "This event is generated when UE capability updated.\n"}, "table": {"CM_UE_CAPABILITY_INFO": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "CM_UE_CAPABILITY_INFO_Versions", "1", "8", "VAR", ""]}, "Name": "CM_UE_CAPABILITY_INFO"}, "CM_UE_CAPABILITY_INFO_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "CM_UE_CAPABILITY_INFO_V1", ""]}, "Name": "CM_UE_CAPABILITY_INFO_Versions"}, "CM_UE_CAPABILITY_INFO_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell Type", "UINT8", "1", "0", "8", "Cell type of serving PLMN\nEnum {\n0: Suitable cell,\n1: Acceptable cell,\n2: Camp not allowed cell,\n3: Cell not available\n}"], "1": ["MCC", "UINT16", "1", "8", "16", "MCC of serving PLMN"], "2": ["MNC", "UINT16", "1", "24", "16", "MNC of serving PLMN"], "3": ["S1 capability status", "UINT8", "1", "40", "8", "S1 capability status\nEnum {\n0: Disabled,\n1: Enabled\n}"], "4": ["S1 disable reason", "UINT8", "1", "48", "8", "S1 disable reason\nEnum {\n0: REASON_NONE,\n1: GPRS_FPLMN,\n2: ESM_FPLMN,\n3: CUSTOM_EUTRA0N_DISABLE,\n4: CUSTOM_N1_DISABLE,\n5: CUSTOM_ENDC_DISABLE,\n6: ATNT_BACKOFF,\n7: REJ_42,\n8: VZW_HVOLTE_IMS_NOT_ROAMING_CS_18,\n9: ATNT_DISABLE_LTE,\n10: CS_PS_CAUSE,\n11: DATA_OFF_IMS_OFF,\n12: DATA_ROAMING_OFF_IMS_OFF,\n13: ROAMING_NOT_ALLOW,\n14: VOICE_CENTRIC_S1_DISABLED,\n15: 5G_SA_OPTION_2_NOT_ENABLED,\n16: RAT_IS_NOT_ENABLED,\n17: CANNOT_HAVE_PS_NORMAL_SERVICE,\n18: NWSEL_DISABLE_PLMN_BASE_TIMER_RUNNING,\n19: DISABLE_TIMER_REASON_REJ_42,\n20: DISABLE_TIMER_ATNT_BACKOFF,\n21: DISABLE_TIMER_NO_SUITABLE,\n22: DISABLE_TIMER_NO_PDN_AVAILABLE,\n23: DISABLE_TIMER_EUTRAN_VZW_BARRING,\n24: DISABLE_TIMER_EUTRAN_ABNORMAL,\n25: DISABLE_TIMER_EUTRAN_VOICE_NOT_POSSIABLE,\n26: DISABLE_TIMER_N1_NOT_ALLOW,\n27: DISABLE_TIMER_N1_ABNORMAL,\n28: DISABLE_TIMER_N1_VOICE_NOT_POSSIABLE,\n29: DISABLE_TIMER_5GNRSA_VZW_BARRING,\n30: DISABLE_TIMER_EUTRAN_HPLMN_REJ_14,\n31: NAS_NOT_ALLOW_NO_PDN,\n32: NAS_NOT_ALLOW_T3402,\n33: NAS_NOT_ALLOW_THROTTLING_APN,\n34: NAS_NOT_ALLOW_EMC_BS,\n35: NAS_NOT_ALLOW_VZW_VGMM_T3502,\n36: NAS_NOT_ALLOW_VZW_VGMM_T3525,\n37: NAS_NOT_ALLOW_VZW_VGMM_SR_THROTTLING\n}"], "5": ["S1 VoLTE events", "UINT32", "1", "56", "32", "VoLTE events happened in S1 mode which might\naffect S1 capability. (bit mask)\nEnum {\n0: NO_EVENT,\n256: IMS_VOPS_NOT_SUPPORT,\n512: IMS_UNREGISTERED,\n1024: REJ_CAUSE_PS_ABNORMAL,\n1032: REJ_CAUSE_ABNORMAL,\n1280: IMS_VOPS_AND_PS_ABN,\n1536: IMS_UNR_AND_PS_ABN,\n2048: T_IMS_EST_EXPIRE,\n4096: PCO_FF00H_5_FAIL,\n8012: SSAC_BAR_VOLTE,\n16384: IMS_ROAMING_DISABLE,\n16640: IMS_VOPS_AND_ROAMING_DISABLE\n}"], "6": ["S1 CSFB events", "UINT8", "1", "88", "8", "CSFB events happened in S1 mode which might\naffect S1 capability. (bit mask)\nEnum {\n0: NO_EVENT,\n1: ACC_CS_NOT_AVAILABLE,\n2: ACC_CAUSE_16_17,\n4: ACC_CAUSE_18,\n8: REJ_CAUSE_CS_ABNORMAL,\n16: CSFB_NOT_SCHEDULED,\n32: ACC_CAUSE_2\n}"], "7": ["N1 capability status", "UINT8", "1", "96", "8", "N1 capability status\nEnum {\n0: Disabled,\n1: Enabled\n}"], "8": ["N1 disable reason", "UINT8", "1", "104", "8", "N1 disable reason\nEnum {\n0: REASON_NONE,\n1: GPRS_FPLMN,\n2: ESM_FPLMN,\n3: CUSTOM_EUTRA0N_DISABLE,\n4: CUSTOM_N1_DISABLE,\n5: CUSTOM_ENDC_DISABLE,\n6: ATNT_BACKOFF,\n7: REJ_42,\n8: VZW_HVOLTE_IMS_NOT_ROAMING_CS_18,\n9: ATNT_DISABLE_LTE,\n10: CS_PS_CAUSE,\n11: DATA_OFF_IMS_OFF,\n12: DATA_ROAMING_OFF_IMS_OFF,\n13: ROAMING_NOT_ALLOW,\n14: VOICE_CENTRIC_S1_DISABLED,\n15: 5G_SA_OPTION_2_NOT_ENABLED,\n16: RAT_IS_NOT_ENABLED,\n17: CANNOT_HAVE_PS_NORMAL_SERVICE,\n18: NWSEL_DISABLE_PLMN_BASE_TIMER_RUNNING,\n19: DISABLE_TIMER_REASON_REJ_42,\n20: DISABLE_TIMER_ATNT_BACKOFF,\n21: DISABLE_TIMER_NO_SUITABLE,\n22: DISABLE_TIMER_NO_PDN_AVAILABLE,\n23: DISABLE_TIMER_EUTRAN_VZW_BARRING,\n24: DISABLE_TIMER_EUTRAN_ABNORMAL,\n25: DISABLE_TIMER_EUTRAN_VOICE_NOT_POSSIABLE,\n26: DISABLE_TIMER_N1_NOT_ALLOW,\n27: DISABLE_TIMER_N1_ABNORMAL,\n28: DISABLE_TIMER_N1_VOICE_NOT_POSSIABLE,\n29: DISABLE_TIMER_5GNRSA_VZW_BARRING,\n30: DISABLE_TIMER_EUTRAN_HPLMN_REJ_14,\n31: NAS_NOT_ALLOW_NO_PDN,\n32: NAS_NOT_ALLOW_T3402,\n33: NAS_NOT_ALLOW_THROTTLING_APN,\n34: NAS_NOT_ALLOW_EMC_BS,\n35: NAS_NOT_ALLOW_VZW_VGMM_T3502,\n36: NAS_NOT_ALLOW_VZW_VGMM_T3525,\n37: NAS_NOT_ALLOW_VZW_VGMM_SR_THROTTLING\n}"], "9": ["Reserved", "UINT8", "1", "112", "8", ""], "10": ["N1 events", "UINT16", "1", "120", "16", "Events happened in N1 mode which might affect\nN1 capability. (bit mask)\nEnum {\n0: NO_EVENT,\n256: IMS_VOPS_NOT_SUPPORT,\n512: IMS_UNREGISTERED,\n1024: REJ_CAUSE_PS_ABNORMAL,\n1032: REJ_CAUSE_ABNORMAL,\n2048: T_IMS_EST_EXPIRE,\n4096: PCO_FF00H_5_FAIL\n}"], "11": ["Reserved", "UINT8", "2", "136", "16", ""]}, "Name": "CM_UE_CAPABILITY_INFO_V1"}}},
+ Internal JSON end */
+// Checksum : [a8f72717f613e5fa8fd7f79a0ae77424]
diff --git a/mcu/interface/service/icd/event/el1/EL1_LAA_Scellact_Event.h b/mcu/interface/service/icd/event/el1/EL1_LAA_Scellact_Event.h
new file mode 100644
index 0000000..3edef32
--- /dev/null
+++ b/mcu/interface/service/icd/event/el1/EL1_LAA_Scellact_Event.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : EL1_LAA_Scellact_Event
+// Category : LTE
+// Layer : EL1
+// Type : EVENT
+// Code : 0x7504
+// Version : V2.6
+
+#ifndef _EL1_LAA_SCELLACT_EVENT_H
+#define _EL1_LAA_SCELLACT_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_LAA_SCELLACT_EVENT 0x7504
+
+#define ICD_EL1_LAA_SCELLACT_EVENT_V1 1
+
+#define ICD_LAA_SCELLACT_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the event
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the event
+ // range[0, 9]
+ kal_uint32 laa_scell1_status:2; // This is the the LAA SCC1 active/deactive status
+ // 1:deactivate, 2:activate
+ kal_uint32 laa_scell2_status:2; // This is the the LAA SCC2 active/deactive status
+ // 1:deactivate, 2:activate
+ kal_uint32 laa_scell3_status:2; // This is the the LAA SCC3 active/deactive status
+ // 1:deactivate, 2:activate
+ kal_uint32 laa_scell4_status:2; // This is the the LAA SCC4 active/deactive status
+ // 1:deactivate, 2:activate
+ kal_uint32 reserved:2;
+} icd_laa_scellact_event_struct_v1;
+
+typedef icd_laa_scellact_event_struct_v1 icd_laa_scellact_event_struct;
+
+
+#endif /* _EL1_LAA_SCELLACT_EVENT_H */
+
+
+/* Public JSON start
+"EL1_LAA_Scellact_Event": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7504", "Name": "EL1_LAA_Scellact_Event", "Type": "EVENT", "Desc": "This event is reported when LAA Scell is configured\n"}, "table": {"LAA_Scellact_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "LAA_Scellact_Event_Versions", "1", "8", "VAR", ""]}, "Name": "LAA_Scellact_Event"}, "LAA_Scellact_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "LAA_Scellact_Event_V1", ""]}, "Name": "LAA_Scellact_Event_Versions"}, "LAA_Scellact_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["Laa Scell1 Status", "UINT32", "1", "14", "2", "This is the the LAA SCC1 active/deactive status\n1:deactivate, 2:activate"], "3": ["Laa Scell2 Status", "UINT32", "1", "16", "2", "This is the the LAA SCC2 active/deactive status\n1:deactivate, 2:activate"], "4": ["Laa Scell3 Status", "UINT32", "1", "18", "2", "This is the the LAA SCC3 active/deactive status\n1:deactivate, 2:activate"], "5": ["Laa Scell4 Status", "UINT32", "1", "20", "2", "This is the the LAA SCC4 active/deactive status\n1:deactivate, 2:activate"], "6": ["Reserved", "UINT32", "1", "22", "2", ""]}, "Name": "LAA_Scellact_Event_V1"}}},
+ Public JSON end */
+// Checksum : [62eee73c986118dcbbd428257f05990f]
diff --git a/mcu/interface/service/icd/event/el1/EL1_OTDOA_Event.h b/mcu/interface/service/icd/event/el1/EL1_OTDOA_Event.h
new file mode 100644
index 0000000..d5f58f0
--- /dev/null
+++ b/mcu/interface/service/icd/event/el1/EL1_OTDOA_Event.h
@@ -0,0 +1,55 @@
+// ICD Header Format v3
+// Name : EL1_OTDOA_Event
+// Category : LTE
+// Layer : EL1
+// Type : EVENT
+// Code : 0x7503
+// Version : V2.6
+
+#ifndef _EL1_OTDOA_EVENT_H
+#define _EL1_OTDOA_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_OTDOA_EVENT 0x7503
+
+#define ICD_EL1_OTDOA_EVENT_V3 3
+
+#define MAX_ICD_OTDOA_EVENT_STRUCT_V3_NUMBER_OF_MEASURED_CELLS 72
+
+#define ICD_OTDOA_EVENT_STRUCT_V3_MAX_SIZE 580
+
+typedef struct {
+ kal_uint32 cellid:9; // range[0, 503]
+ kal_uint32 earfcn:17; // E-UTRA Absolute Radio Frequency Channel Number
+ kal_uint32 reserved:6;
+ kal_uint32 rstd_value:14; // range[0, 12711]. Refer to 36.133 table 9.1.10.3-1 RSTD
+ // report mapping table
+ kal_uint32 reserved_1:18;
+} measured_cell_otdoa_info_v3;
+
+typedef measured_cell_otdoa_info_v3 measured_cell_otdoa_info;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the event
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the event
+ // range[0, 9]
+ kal_uint32 reserved:3;
+ kal_uint32 number_of_measured_cells:7; // Number of measured neighbor cells
+ // range[0, 72]
+ measured_cell_otdoa_info measured_cell_otdoa_info[FLEXIBLE_ARRAY_SIZE]; // N := Number of measured cells
+} icd_otdoa_event_struct_v3;
+
+typedef icd_otdoa_event_struct_v3 icd_otdoa_event_struct;
+
+
+#endif /* _EL1_OTDOA_EVENT_H */
+
+
+/* Public JSON start
+"EL1_OTDOA_Event": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7503", "Name": "EL1_OTDOA_Event", "Type": "EVENT", "Desc": "The event is reported when every OTDOA report triggered.\n"}, "table": {"Otdoa_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "OtdoaEvent_Versions", "1", "8", "VAR", ""]}, "Name": "Otdoa_Event"}, "OtdoaEvent_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "Otdoa_Event_V1", ""], "1": ["2", "Otdoa_Event_V2", ""], "2": ["3", "Otdoa_Event_V3", ""]}, "Name": "OtdoaEvent_Versions"}, "Otdoa_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["RSTD Value", "UINT32", "1", "24", "14", "range[0, 12711]. Refer to 36.133 table 9.1.10.3-1 RSTD\nreport mapping table"], "4": ["Reserved", "UINT32", "1", "38", "18", ""]}, "Name": "Otdoa_Event_V1"}, "Otdoa_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Measured Cell OTDOA Info": "Number of measured cells"}, "Name": "Otdoa_Event_V2", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["Reserved", "UINT32", "1", "14", "3", ""], "3": ["Number of measured cells", "UINT32", "1", "17", "7", "Number of measured neighbor cells\nrange[0, 72]"], "4": ["Measured Cell OTDOA Info", "Measured_Cell_OTDOA_Info_V2", "N", "24", "VAR", "N := Number of measured cells"]}}, "Measured_Cell_OTDOA_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CellID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["EARFCN", "UINT32", "1", "9", "16", "E-UTRA Absolute Radio Frequency Channel Number"], "2": ["Reserved", "UINT32", "1", "25", "7", ""], "3": ["RSTD Value", "UINT32", "1", "32", "14", "range[0, 12711]. Refer to 36.133 table 9.1.10.3-1 RSTD\nreport mapping table"], "4": ["Reserved", "UINT32", "1", "46", "18", ""]}, "Name": "Measured_Cell_OTDOA_Info_V2"}, "Otdoa_Event_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Measured Cell OTDOA Info": "Number of measured cells"}, "Name": "Otdoa_Event_V3", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["Reserved", "UINT32", "1", "14", "3", ""], "3": ["Number of measured cells", "UINT32", "1", "17", "7", "Number of measured neighbor cells\nrange[0, 72]"], "4": ["Measured Cell OTDOA Info", "Measured_Cell_OTDOA_Info_V3", "N", "24", "VAR", "N := Number of measured cells"]}}, "Measured_Cell_OTDOA_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CellID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["EARFCN", "UINT32", "1", "9", "17", "E-UTRA Absolute Radio Frequency Channel Number"], "2": ["Reserved", "UINT32", "1", "26", "6", ""], "3": ["RSTD Value", "UINT32", "1", "32", "14", "range[0, 12711]. Refer to 36.133 table 9.1.10.3-1 RSTD\nreport mapping table"], "4": ["Reserved", "UINT32", "1", "46", "18", ""]}, "Name": "Measured_Cell_OTDOA_Info_V3"}}},
+ Public JSON end */
+// Checksum : [9520a9694fa273a5a17eb2ea952a1cb0]
diff --git a/mcu/interface/service/icd/event/el1/EL1_Paging_DRX_Event.h b/mcu/interface/service/icd/event/el1/EL1_Paging_DRX_Event.h
new file mode 100644
index 0000000..2463278
--- /dev/null
+++ b/mcu/interface/service/icd/event/el1/EL1_Paging_DRX_Event.h
@@ -0,0 +1,56 @@
+// ICD Header Format v3
+// Name : EL1_Paging_DRX_Event
+// Category : LTE
+// Layer : EL1
+// Type : EVENT
+// Code : 0x7501
+// Version : V2.6
+
+#ifndef _EL1_PAGING_DRX_EVENT_H
+#define _EL1_PAGING_DRX_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_PAGING_DRX_EVENT 0x7501
+
+#define ICD_EL1_PAGING_CONFIG_EVENT_V2 2
+
+#define ICD_L1_PAGING_DRX_EVENT_INFO_STRUCT_V2_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 sfn:10; // range[0, 1023]
+ kal_uint32 subframe:4; // range[0, 9]
+ kal_uint32 pci:9; // range[0, 503]
+ kal_uint32 reserved:1;
+ kal_uint32 earfcn:17;
+ kal_uint32 paging_cycle:4; // 0 - 320 ms
+ // 1 - 640 ms
+ // 2 - 1280 ms
+ // 3 - 2560 ms
+ kal_uint32 nb:8; // 0 - fourT
+ // 1 - twoT
+ // 2 - oneT
+ // 3 - halfT
+ // 4 - quarterT
+ // 5 - oneEighthT
+ // 6 - oneSixteenthT
+ // 7 - oneThirtySecondT
+ kal_uint32 reserved_1:3;
+ kal_uint32 ue_id:10; // range[0, 1023]
+ kal_uint32 drx_system_frame_num_offset:10; // range[0, 1023]
+ kal_uint32 drx_subframe_num_offset:4; // range[0, 9]
+ kal_uint32 reserved_2:8;
+} icd_l1_paging_drx_event_info_struct_v2;
+
+typedef icd_l1_paging_drx_event_info_struct_v2 icd_l1_paging_drx_event_info_struct;
+
+
+#endif /* _EL1_PAGING_DRX_EVENT_H */
+
+
+/* Public JSON start
+"EL1_Paging_DRX_Event": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7501", "Name": "EL1_Paging_DRX_Event", "Type": "EVENT", "Desc": "The log is generated when receiving DRX configuration from RRC.\n"}, "table": {"L1_Paging_DRX_Event_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL1_Paging_DRX_Event_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "L1_Paging_DRX_Event_Info"}, "EL1_Paging_DRX_Event_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "Paging_Config_Event_V1", ""], "1": ["2", "Paging_Config_Event_V2", ""]}, "Name": "EL1_Paging_DRX_Event_Info_Content_Versions"}, "Paging_Config_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "range[0, 9]"], "2": ["PCI", "UINT32", "1", "14", "9", "range[0, 503]"], "3": ["Reserved", "UINT32", "1", "23", "1", ""], "4": ["EARFCN", "UINT32", "1", "24", "16", ""], "5": ["Paging Cycle", "UINT32", "1", "40", "4", "0 - 320 ms\n1 - 640 ms\n2 - 1280 ms\n3 - 2560 ms"], "6": ["Nb", "UINT32", "1", "44", "8", "0 - fourT\n1 - twoT\n2 - oneT\n3 - halfT\n4 - quarterT\n5 - oneEighthT\n6 - oneSixteenthT\n7 - oneThirtySecondT"], "7": ["Reserved", "UINT32", "1", "52", "4", ""], "8": ["UE ID", "UINT32", "1", "56", "10", "range[0, 1023]"], "9": ["DRX System Frame Num Offset", "UINT32", "1", "66", "10", "range[0, 1023]"], "10": ["DRX Subframe Num Offset", "UINT32", "1", "76", "4", "range[0, 9]"], "11": ["Reserved", "UINT32", "1", "80", "8", ""]}, "Name": "Paging_Config_Event_V1"}, "Paging_Config_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "range[0, 9]"], "2": ["PCI", "UINT32", "1", "14", "9", "range[0, 503]"], "3": ["Reserved", "UINT32", "1", "23", "1", ""], "4": ["EARFCN", "UINT32", "1", "24", "17", ""], "5": ["Paging Cycle", "UINT32", "1", "41", "4", "0 - 320 ms\n1 - 640 ms\n2 - 1280 ms\n3 - 2560 ms"], "6": ["Nb", "UINT32", "1", "45", "8", "0 - fourT\n1 - twoT\n2 - oneT\n3 - halfT\n4 - quarterT\n5 - oneEighthT\n6 - oneSixteenthT\n7 - oneThirtySecondT"], "7": ["Reserved", "UINT32", "1", "53", "3", ""], "8": ["UE ID", "UINT32", "1", "56", "10", "range[0, 1023]"], "9": ["DRX System Frame Num Offset", "UINT32", "1", "66", "10", "range[0, 1023]"], "10": ["DRX Subframe Num Offset", "UINT32", "1", "76", "4", "range[0, 9]"], "11": ["Reserved", "UINT32", "1", "80", "8", ""]}, "Name": "Paging_Config_Event_V2"}}},
+ Public JSON end */
+// Checksum : [09459354b14f1f63c8f375b301726a3e]
diff --git a/mcu/interface/service/icd/event/el1/EL1_Radio_Link_Monitoring.h b/mcu/interface/service/icd/event/el1/EL1_Radio_Link_Monitoring.h
new file mode 100644
index 0000000..b83ed26
--- /dev/null
+++ b/mcu/interface/service/icd/event/el1/EL1_Radio_Link_Monitoring.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : EL1_Radio_Link_Monitoring
+// Category : LTE
+// Layer : EL1
+// Type : EVENT
+// Code : 0x7502
+// Version : V2.6
+
+#ifndef _EL1_RADIO_LINK_MONITORING_H
+#define _EL1_RADIO_LINK_MONITORING_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_RADIO_LINK_MONITORING 0x7502
+
+#define ICD_EL1_RADIO_LINK_STATUS_V2 2
+
+#define ICD_RADIO_LINK_MONITORING_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the event
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the event
+ // range[0, 9]
+ kal_uint32 t310_timer_status:2; // 0: stopped
+ // 1: started
+ // 2: expired
+ // 3: unknown
+ kal_uint32 in_sync_count:8; // range[0, 255]
+ kal_uint32 out_sync_count:8; // range[0, 255]
+ kal_uint32 reserved:24;
+} icd_radio_link_monitoring_struct_v2;
+
+typedef icd_radio_link_monitoring_struct_v2 icd_radio_link_monitoring_struct;
+
+
+#endif /* _EL1_RADIO_LINK_MONITORING_H */
+
+
+/* Public JSON start
+"EL1_Radio_Link_Monitoring": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7502", "Name": "EL1_Radio_Link_Monitoring", "Type": "EVENT", "Desc": "The event is reported when every radio link changed.\n"}, "table": {"Radio_Link_Monitoring": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "RadioLinkStatus_Versions", "1", "8", "VAR", ""]}, "Name": "Radio_Link_Monitoring"}, "RadioLinkStatus_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "Radio_Link_Status_V1", ""], "1": ["2", "Radio_Link_Status_V2", ""]}, "Name": "RadioLinkStatus_Versions"}, "Radio_Link_Status_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["T310 Timer Status", "UINT32", "1", "14", "2", "0: stopped\n1: started\n2: expired\n3: unknown"], "3": ["Reserved", "UINT32", "1", "16", "8", ""]}, "Name": "Radio_Link_Status_V1"}, "Radio_Link_Status_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["T310 Timer Status", "UINT32", "1", "14", "2", "0: stopped\n1: started\n2: expired\n3: unknown"], "3": ["In Sync Count", "UINT32", "1", "16", "8", "range[0, 255]"], "4": ["Out Sync Count", "UINT32", "1", "24", "8", "range[0, 255]"], "5": ["Reserved", "UINT32", "1", "32", "24", ""]}, "Name": "Radio_Link_Status_V2"}}},
+ Public JSON end */
+// Checksum : [86b9f905c1755cead2a018c154496149]
diff --git a/mcu/interface/service/icd/event/el1/EL1_txPower_Headroom_Event.h b/mcu/interface/service/icd/event/el1/EL1_txPower_Headroom_Event.h
new file mode 100644
index 0000000..3ecab8a
--- /dev/null
+++ b/mcu/interface/service/icd/event/el1/EL1_txPower_Headroom_Event.h
@@ -0,0 +1,40 @@
+// ICD Header Format v3
+// Name : EL1_txPower_Headroom_Event
+// Category : LTE
+// Layer : EL1
+// Type : EVENT
+// Code : 0x7500
+// Version : V2.6
+
+#ifndef _EL1_TXPOWER_HEADROOM_EVENT_H
+#define _EL1_TXPOWER_HEADROOM_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL1_TXPOWER_HEADROOM_EVENT 0x7500
+
+#define ICD_EL1_TXPOWER_HEADROOM_EVENT_CONTENT_V1 1
+
+#define ICD_TXPOWER_HEADROOM_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_int8 tx_power_headroom; // range[-23, 40]
+ kal_uint16 sfn:10; // This is the SFN based on the occurrence of the event
+ // range[0, 1023]
+ kal_uint16 subframe:4; // This is the SF based on the occurrence of the event
+ // range[0, 9]
+ kal_uint16 reserved:2;
+} icd_txpower_headroom_event_struct_v1;
+
+typedef icd_txpower_headroom_event_struct_v1 icd_txpower_headroom_event_struct;
+
+
+#endif /* _EL1_TXPOWER_HEADROOM_EVENT_H */
+
+
+/* Public JSON start
+"EL1_txPower_Headroom_Event": {"info": {"Category": "LTE", "Layer": "L1", "Code": "0x7500", "Name": "EL1_txPower_Headroom_Event", "Type": "EVENT", "Desc": "The event is generated every 20 ms.\n"}, "table": {"TxPower_Headroom_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "TxPower_Headroom_Event_Content_Versions", "1", "8", "VAR", ""]}, "Name": "TxPower_Headroom_Event"}, "TxPower_Headroom_Event_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "TxPower_Headroom_Event_Content_V1", ""]}, "Name": "TxPower_Headroom_Event_Content_Versions"}, "TxPower_Headroom_Event_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["TX power headroom", "INT8", "1", "0", "8", "range[-23, 40]"], "1": ["SFN", "UINT16", "1", "8", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "2": ["Subframe", "UINT16", "1", "18", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "3": ["Reserved", "UINT16", "1", "22", "2", ""]}, "Name": "TxPower_Headroom_Event_Content_V1"}}},
+ Public JSON end */
+// Checksum : [e39c47d8b62da398aa23e138a77bd9ca]
diff --git a/mcu/interface/service/icd/event/el2/EL2_EMBMS_MTCH_Report_Event.h b/mcu/interface/service/icd/event/el2/EL2_EMBMS_MTCH_Report_Event.h
new file mode 100644
index 0000000..dd0861a
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_EMBMS_MTCH_Report_Event.h
@@ -0,0 +1,52 @@
+// ICD Header Format v3
+// Name : EL2_EMBMS_MTCH_Report_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x758A
+// Version : V2.6
+
+#ifndef _EL2_EMBMS_MTCH_REPORT_EVENT_H
+#define _EL2_EMBMS_MTCH_REPORT_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_EMBMS_MTCH_REPORT_EVENT 0x758A
+
+#define ICD_EL2_EL2_EMBMS_MTCH_REPORT_INFO_V2 2
+
+#define MAX_ICD_EL2_EMBMS_MTCH_REPORT_STRUCT_V2_NUMBER_OF_RECORDS 63
+
+#define ICD_EL2_EMBMS_MTCH_REPORT_STRUCT_V2_MAX_SIZE 760
+
+typedef struct {
+ kal_uint32 pmch_id:4; // ID of the PMCH, range[0,15]
+ kal_uint32 lcid:5; // LCID of the MTCH
+ kal_uint32 data_size:14; // Received MTCH data size in bytes
+ kal_uint32 reserved:9;
+ kal_uint8 tmgi[6]; // TMGI
+ kal_uint16 reserved_1;
+} el2_embms_mtch_record_v2;
+
+typedef el2_embms_mtch_record_v2 el2_embms_mtch_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // System frame number
+ kal_uint32 subframe:4; // Subframe number
+ kal_uint32 number_of_records:6; // range[1, 63]
+ kal_uint32 reserved:4;
+ el2_embms_mtch_record mtch_records[MAX_ICD_EL2_EMBMS_MTCH_REPORT_STRUCT_V2_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_el2_embms_mtch_report_struct_v2;
+
+typedef icd_el2_embms_mtch_report_struct_v2 icd_el2_embms_mtch_report_struct;
+
+
+#endif /* _EL2_EMBMS_MTCH_REPORT_EVENT_H */
+
+
+/* Public JSON start
+"EL2_EMBMS_MTCH_Report_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x758A", "Name": "EL2_EMBMS_MTCH_Report_Event", "Type": "EVENT", "Desc": "The log is generated when MTCHs in a subframe is decoded successfully\n"}, "table": {"EL2_EMBMS_MTCH_Report": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "EL2_EMBMS_MTCH_Report_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_EMBMS_MTCH_Report"}, "EL2_EMBMS_MTCH_Report_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_EMBMS_MTCH_Report_Info_V1", ""], "1": ["2", "EL2_EMBMS_MTCH_Report_Info_V2", ""]}, "Name": "EL2_EMBMS_MTCH_Report_Versions"}, "EL2_EMBMS_MTCH_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"MTCH Records": "Number of Records"}, "Name": "EL2_EMBMS_MTCH_Report_Info_V1", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System frame number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe number"], "2": ["Number of Records", "UINT32", "1", "14", "6", "range[1, 63]"], "3": ["Reserved", "UINT32", "1", "20", "4", ""], "4": ["MTCH Records", "EL2_EMBMS_MTCH_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "EL2_EMBMS_MTCH_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PMCH ID", "UINT32", "1", "0", "4", "ID of the PMCH, range[0,15]"], "1": ["LCID", "UINT32", "1", "4", "5", "LCID of the MTCH"], "2": ["Data Size", "UINT32", "1", "9", "14", "Received MTCH data size in bytes"], "3": ["Reserved", "UINT32", "1", "23", "9", ""]}, "Name": "EL2_EMBMS_MTCH_Record_V1"}, "EL2_EMBMS_MTCH_Report_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"MTCH Records": "Number of Records"}, "Name": "EL2_EMBMS_MTCH_Report_Info_V2", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System frame number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe number"], "2": ["Number of Records", "UINT32", "1", "14", "6", "range[1, 63]"], "3": ["Reserved", "UINT32", "1", "20", "4", ""], "4": ["MTCH Records", "EL2_EMBMS_MTCH_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "EL2_EMBMS_MTCH_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PMCH ID", "UINT32", "1", "0", "4", "ID of the PMCH, range[0,15]"], "1": ["LCID", "UINT32", "1", "4", "5", "LCID of the MTCH"], "2": ["Data Size", "UINT32", "1", "9", "14", "Received MTCH data size in bytes"], "3": ["Reserved", "UINT32", "1", "23", "9", ""], "4": ["TMGI", "UINT8", "6", "32", "48", "TMGI"], "5": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "EL2_EMBMS_MTCH_Record_V2"}}},
+ Public JSON end */
+// Checksum : [d796ce666c8f455a6fb5c7ed63471116]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_BSR_And_SR_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_BSR_And_SR_Event.h
new file mode 100644
index 0000000..4d480b5
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_BSR_And_SR_Event.h
@@ -0,0 +1,41 @@
+// ICD Header Format v3
+// Name : EL2_MAC_BSR_And_SR_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7589
+// Version : V2.6
+
+#ifndef _EL2_MAC_BSR_AND_SR_EVENT_H
+#define _EL2_MAC_BSR_AND_SR_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_BSR_AND_SR_EVENT 0x7589
+
+#define ICD_EL2_EL2_MAC_BSR_AND_SR_EVENT_V1 1
+
+#define ICD_EL2_MAC_BSR_AND_SR_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 bsr_and_sr_event:8; // Bitmask of BSR / SR status:
+ // Bit 0: periodicBSR-Timer expires
+ // Bit 1: Higher priority data available
+ // Bit 2: retxBSR-Timer expires
+ // Bit 3: Padding BSR is triggered
+ // Bit 4: SR is triggered
+ kal_uint32 reserved:16;
+} icd_el2_mac_bsr_and_sr_event_struct_v1;
+
+typedef icd_el2_mac_bsr_and_sr_event_struct_v1 icd_el2_mac_bsr_and_sr_event_struct;
+
+
+#endif /* _EL2_MAC_BSR_AND_SR_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_BSR_And_SR_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7589", "Name": "EL2_MAC_BSR_And_SR_Event", "Type": "EVENT", "Desc": "It is event trigger, report when any of the BSR or SR event listed below happens.\n"}, "table": {"EL2_MAC_BSR_AND_SR_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_BSR_AND_SR_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_BSR_AND_SR_Event"}, "EL2_MAC_BSR_AND_SR_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_BSR_AND_SR_Event_V1", ""]}, "Name": "EL2_MAC_BSR_AND_SR_Event_Versions"}, "EL2_MAC_BSR_AND_SR_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BSR And SR Event", "UINT32", "1", "0", "8", "Bitmask of BSR / SR status:\nBit 0: periodicBSR-Timer expires\nBit 1: Higher priority data available\nBit 2: retxBSR-Timer expires\nBit 3: Padding BSR is triggered\nBit 4: SR is triggered"], "1": ["Reserved", "UINT32", "1", "8", "16", ""]}, "Name": "EL2_MAC_BSR_AND_SR_Event_V1"}}},
+ Public JSON end */
+// Checksum : [03c29c06c1a2d3b676541330bc3b3a3d]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_Carrier_Aggregation_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_Carrier_Aggregation_Event.h
new file mode 100644
index 0000000..adeb452
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_Carrier_Aggregation_Event.h
@@ -0,0 +1,44 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Carrier_Aggregation_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x758F
+// Version : V2.6
+
+#ifndef _EL2_MAC_CARRIER_AGGREGATION_EVENT_H
+#define _EL2_MAC_CARRIER_AGGREGATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_CARRIER_AGGREGATION_EVENT 0x758F
+
+#define ICD_EL2_EL2_MAC_CARRIER_AGGREGATION_EVENT_V1 1
+
+#define ICD_EL2_MAC_CARRIER_AGGREGATION_EVENT_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 ca:1; // 0: No CA activation.
+ // 1: CA activation on NR.
+ kal_uint32 num_ca:23; // Number of activated Scell.
+ kal_uint32 cell_index_bitmap; // Cell Index bitmap:
+ // Bitmap LSB (bit-0) is reserved for SpCell (not been used)
+ // bit i is set 1 means the ith Scell is activate.
+ // bit i is set 0 means the ith Scell is deactivate.
+ // NOTICE: bit i is not Scell index configured by RRC, but could
+ // be used to get scell config via checking Carrier Index of
+ // PHY_Config of EL1_Physical_Configuration.
+} icd_el2_mac_carrier_aggregation_event_struct_v1;
+
+typedef icd_el2_mac_carrier_aggregation_event_struct_v1 icd_el2_mac_carrier_aggregation_event_struct;
+
+
+#endif /* _EL2_MAC_CARRIER_AGGREGATION_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_Carrier_Aggregation_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x758F", "Name": "EL2_MAC_Carrier_Aggregation_Event", "Type": "EVENT", "Desc": "This event is generated whenever the SCell Activation/Deactivation control element or SCell deactivation timer timeout is received.\n"}, "table": {"EL2_MAC_Carrier_Aggregation_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_Carrier_Aggregation_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Carrier_Aggregation_Event"}, "EL2_MAC_Carrier_Aggregation_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Carrier_Aggregation_Event_V1", ""]}, "Name": "EL2_MAC_Carrier_Aggregation_Event_Versions"}, "EL2_MAC_Carrier_Aggregation_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CA", "UINT32", "1", "0", "1", "0: No CA activation.\n1: CA activation on NR."], "1": ["Num CA", "UINT32", "1", "1", "23", "Number of activated Scell."], "2": ["Cell Index bitmap", "UINT32", "1", "24", "32", "Cell Index bitmap:\nBitmap LSB (bit-0) is reserved for SpCell (not been used)\nbit i is set 1 means the ith Scell is activate.\nbit i is set 0 means the ith Scell is deactivate.\nNOTICE: bit i is not Scell index configured by RRC, but could\nbe used to get scell config via checking Carrier Index of\nPHY_Config of EL1_Physical_Configuration."]}, "Name": "EL2_MAC_Carrier_Aggregation_Event_V1"}}},
+ Public JSON end */
+// Checksum : [5e9da066e1deb6ba6d00bec1675367c4]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_Configuration_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_Configuration_Event.h
new file mode 100644
index 0000000..8028d26
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_Configuration_Event.h
@@ -0,0 +1,90 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Configuration_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7584
+// Version : V2.6
+
+#ifndef _EL2_MAC_CONFIGURATION_EVENT_H
+#define _EL2_MAC_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_CONFIGURATION_EVENT 0x7584
+
+#define ICD_EL2_EL2_MAC_CONFIGURATION_EVENT_V2 2
+
+#define ICD_EL2_MAC_CONFIGURATION_EVENT_STRUCT_V2_MAX_SIZE 20
+
+typedef struct {
+ kal_uint32 drx_config_present:1; // Indicating whether general DRX configuration is configured.
+ // Value 1 means configured.
+ // Value 0 means not configured..
+ // When the valid bit toggle ( ie. From 0 to 1, or 1 to 0)
+ // means the presentation of configuration has changed
+ kal_uint32 short_drx_config_present:1; // Indicating whether short DRX configuration is configured.
+ // Value 1 means configured.
+ // Value 0 means not configured..
+ // When the valid bit toggle ( ie. From 0 to 1, or 1 to 0)
+ // means the presentation of configuration has changed
+ kal_uint32 reserved:6;
+ kal_uint32 long_drx_cycle_length:12; // This field is valid if and only if field
+ // Drx Config Present is 1. LongDRX-Cycle part in
+ // longDRX-CycleStartOffset, value in number of subframe
+ kal_uint32 drx_cycle_start_offset:12; // This field is valid if and only if field
+ // Drx Config Present is 1. Start Offset part in
+ // longDRX-CycleStartOffset, value in number of subframe
+ kal_uint32 onduration_timer:11; // This field is valid if and only if field
+ // Drx Config Present is 1. length of on duration timer,
+ // value in number of PDCCH sub-frames
+ kal_uint32 drx_inactivity_timer:12; // This field is valid if and only if field
+ // Drx Config Present is 1. length of drx inactivity timer,
+ // value in number of PDCCH sub-frames
+ kal_uint32 drx_retransmission_timer:9; // This field is valid if and only if field
+ // Drx Config Present is 1.
+ // length of DL drx retransmission timer,
+ // value in number of PDCCH sub-frames
+ kal_uint32 short_drx_cycle_length:10; // This field is valid if and only if field
+ // Short Drx Config Present is 1.
+ // shortDRX-Cycle, value in number of subframe
+ kal_uint32 short_drx_cycle_timer:14; // This field is valid if and only if field
+ // Short Drx Config Present is 1.
+ // length of DRX short cycle timer,value in number of subframe
+ kal_uint32 reserved_1:8;
+} el2_mac_drx_config_v1;
+
+typedef el2_mac_drx_config_v1 el2_mac_drx_config;
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 mac_configuration_cause:2; // 0: Normal
+ // 1: HO
+ // 2: Release
+ // 3: RLF
+ // If the Field MAC
+ // Configuration Cause
+ // is Release, or RLF,
+ // the other fields are
+ // invalid value
+ kal_uint32 ta_timer:14; // TA timer length,
+ // units:ms, 0=INF
+ kal_uint32 reserved:8;
+ kal_uint32 scell_deactivation_timer:11; // sCellDeactivationTimer
+ // length, units:ms,
+ // Value 0 = invalid.
+ kal_uint32 reserved_1:21;
+ el2_mac_drx_config drx_config;
+} icd_el2_mac_configuration_event_struct_v2;
+
+typedef icd_el2_mac_configuration_event_struct_v2 icd_el2_mac_configuration_event_struct;
+
+
+#endif /* _EL2_MAC_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_Configuration_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7584", "Name": "EL2_MAC_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when MAC is configured or reset.\nIf the Field MAC Configuration Cause is Release, or RLF, the other fields are invalid value.\n"}, "table": {"EL2_MAC_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_Configuration_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Configuration_Event"}, "EL2_MAC_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Configuration_Event_V1", ""], "1": ["2", "EL2_MAC_Configuration_Event_V2", ""]}, "Name": "EL2_MAC_Configuration_Event_Versions"}, "EL2_MAC_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MAC Configuration Cause", "UINT32", "1", "0", "2", "0: Normal\n1: HO\n2: Release\n3: RLF"], "1": ["TA Timer", "UINT32", "1", "2", "14", "TA timer length, 0=INF"], "2": ["Reserved", "UINT32", "1", "16", "8", ""]}, "Name": "EL2_MAC_Configuration_Event_V1"}, "EL2_MAC_Configuration_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MAC Configuration Cause", "UINT32", "1", "0", "2", "0: Normal\n1: HO\n2: Release\n3: RLF\nIf the Field MAC\nConfiguration Cause\nis Release, or RLF,\nthe other fields are\ninvalid value"], "1": ["TA Timer", "UINT32", "1", "2", "14", "TA timer length,\nunits:ms, 0=INF"], "2": ["Reserved", "UINT32", "1", "16", "8", ""], "3": ["Scell Deactivation Timer", "UINT32", "1", "24", "11", "sCellDeactivationTimer\nlength, units:ms,\nValue 0 = invalid."], "4": ["Reserved", "UINT32", "1", "35", "21", ""], "5": ["DRX Config", "EL2_MAC_DRX_Config_V1", "1", "56", "96", ""]}, "Name": "EL2_MAC_Configuration_Event_V2"}, "EL2_MAC_DRX_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Drx Config Present", "UINT32", "1", "0", "1", "Indicating whether general DRX configuration is configured.\nValue 1 means configured.\nValue 0 means not configured..\nWhen the valid bit toggle ( ie. From 0 to 1, or 1 to 0)\nmeans the presentation of configuration has changed"], "1": ["Short Drx Config Present", "UINT32", "1", "1", "1", "Indicating whether short DRX configuration is configured.\nValue 1 means configured.\nValue 0 means not configured..\nWhen the valid bit toggle ( ie. From 0 to 1, or 1 to 0)\nmeans the presentation of configuration has changed"], "2": ["Reserved", "UINT32", "1", "2", "6", ""], "3": ["Long Drx Cycle Length", "UINT32", "1", "8", "12", "This field is valid if and only if field\nDrx Config Present is 1. LongDRX-Cycle part in\nlongDRX-CycleStartOffset, value in number of subframe"], "4": ["Drx Cycle Start Offset", "UINT32", "1", "20", "12", "This field is valid if and only if field\nDrx Config Present is 1. Start Offset part in\nlongDRX-CycleStartOffset, value in number of subframe"], "5": ["OnDuration Timer", "UINT32", "1", "32", "11", "This field is valid if and only if field\nDrx Config Present is 1. length of on duration timer,\nvalue in number of PDCCH sub-frames"], "6": ["Drx Inactivity Timer", "UINT32", "1", "43", "12", "This field is valid if and only if field\nDrx Config Present is 1. length of drx inactivity timer,\nvalue in number of PDCCH sub-frames"], "7": ["Drx Retransmission Timer", "UINT32", "1", "55", "9", "This field is valid if and only if field\nDrx Config Present is 1.\nlength of DL drx retransmission timer,\nvalue in number of PDCCH sub-frames"], "8": ["Short Drx Cycle Length", "UINT32", "1", "64", "10", "This field is valid if and only if field\nShort Drx Config Present is 1.\nshortDRX-Cycle, value in number of subframe"], "9": ["Short Drx Cycle Timer", "UINT32", "1", "74", "14", "This field is valid if and only if field\nShort Drx Config Present is 1.\nlength of DRX short cycle timer,value in number of subframe"], "10": ["Reserved", "UINT32", "1", "88", "8", ""]}, "Name": "EL2_MAC_DRX_Config_V1"}}},
+ Public JSON end */
+// Checksum : [4867448a4d1b38da47ba5cfdbeb0fd5e]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_DRX_Status_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_DRX_Status_Event.h
new file mode 100644
index 0000000..32b0cbc
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_DRX_Status_Event.h
@@ -0,0 +1,71 @@
+// ICD Header Format v3
+// Name : EL2_MAC_DRX_Status_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7592
+// Version : V2.6
+
+#ifndef _EL2_MAC_DRX_STATUS_EVENT_H
+#define _EL2_MAC_DRX_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_DRX_STATUS_EVENT 0x7592
+
+#define ICD_EL2_EL2_MAC_DRX_STATUS_EVENT_V1 1
+
+#define ICD_EL2_MAC_DRX_STATUS_EVENT_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 cell_group_id:1; // 0: MCG, 1:SCG
+ kal_uint32 event_sfn:10; // This is the SFN based on the occurrence of
+ // the event.range[0, 1023]
+ kal_uint32 event_subframe:4; // This is the SF based on the occurrence of
+ // the event.range[0, 9]
+ kal_uint32 reserved:9;
+ kal_uint32 drx_status_valid:1; // Values:
+ // 0: DRX status unchange
+ // 1: DRX status change
+ kal_uint32 drx_status:1; // Valid when DRX status valid = 1.
+ // Values:
+ // 0: Inactive
+ // 1: Active
+ kal_uint32 next_on_time_sfn:10; // Valid if DRX status valid = 1.
+ // This is the SFN based on the next on time.
+ // range[0, 1023]
+ kal_uint32 next_on_time_subframe:4; // Valid if DRX status valid = 1.
+ // This is the SF based on the next on time.
+ // range[0, 9]
+ kal_uint32 cycle_type_valid:1; // Values:
+ // 0: Cycle type unchange
+ // 1: Cycle type change
+ kal_uint32 cycle_type:1; // Valid when Cycle type valid = 1
+ // Values:
+ // 0: Short cycle
+ // 1: Long cycle
+ kal_uint32 inactivity_timer_status_valid:1; // Values:
+ // 0: Inactivity timer status unchange
+ // 1: Inactivity timer status change
+ kal_uint32 inactivity_timer_status:1; // Valid when Inactivity timer status valid = 1.
+ // Values:
+ // 0: Inactivity timer starts
+ // 1: Inactivity timer expires
+ // Note: Inactivity timer restarts is not
+ // included in the timer status update to reduce
+ // system overhead.
+ kal_uint32 reserved_1:12;
+} icd_el2_mac_drx_status_event_struct_v1;
+
+typedef icd_el2_mac_drx_status_event_struct_v1 icd_el2_mac_drx_status_event_struct;
+
+
+#endif /* _EL2_MAC_DRX_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_DRX_Status_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7592", "Name": "EL2_MAC_DRX_Status_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when DRX status or cycle change.\n"}, "table": {"EL2_MAC_DRX_Status_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_DRX_Status_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_DRX_Status_Event"}, "EL2_MAC_DRX_Status_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_DRX_Status_Event_V1", ""]}, "Name": "EL2_MAC_DRX_Status_Event_Versions"}, "EL2_MAC_DRX_Status_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Event SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of\nthe event.range[0, 1023]"], "2": ["Event Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of\nthe event.range[0, 9]"], "3": ["Reserved", "UINT32", "1", "15", "9", ""], "4": ["DRX status valid", "UINT32", "1", "24", "1", "Values:\n0: DRX status unchange\n1: DRX status change"], "5": ["DRX status", "UINT32", "1", "25", "1", "Valid when DRX status valid = 1.\nValues:\n0: Inactive\n1: Active"], "6": ["Next On Time SFN", "UINT32", "1", "26", "10", "Valid if DRX status valid = 1.\nThis is the SFN based on the next on time.\nrange[0, 1023]"], "7": ["Next On Time Subframe", "UINT32", "1", "36", "4", "Valid if DRX status valid = 1.\nThis is the SF based on the next on time.\nrange[0, 9]"], "8": ["Cycle type valid", "UINT32", "1", "40", "1", "Values:\n0: Cycle type unchange\n1: Cycle type change"], "9": ["Cycle type", "UINT32", "1", "41", "1", "Valid when Cycle type valid = 1\nValues:\n0: Short cycle\n1: Long cycle"], "10": ["Inactivity timer status valid", "UINT32", "1", "42", "1", "Values:\n0: Inactivity timer status unchange\n1: Inactivity timer status change"], "11": ["Inactivity timer status", "UINT32", "1", "43", "1", "Valid when Inactivity timer status valid = 1.\nValues:\n0: Inactivity timer starts\n1: Inactivity timer expires\nNote: Inactivity timer restarts is not\nincluded in the timer status update to reduce\nsystem overhead."], "12": ["Reserved", "UINT32", "1", "44", "12", ""]}, "Name": "EL2_MAC_DRX_Status_Event_V1"}}},
+ Public JSON end */
+// Checksum : [ea9d064846aef32540c40e5a0ca20e92]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_PHY_Configuration_Info_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_PHY_Configuration_Info_Event.h
new file mode 100644
index 0000000..d055dfe
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_PHY_Configuration_Info_Event.h
@@ -0,0 +1,80 @@
+// ICD Header Format v3
+// Name : EL2_MAC_PHY_Configuration_Info_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x758D
+// Version : V2.6
+
+#ifndef _EL2_MAC_PHY_CONFIGURATION_INFO_EVENT_H
+#define _EL2_MAC_PHY_CONFIGURATION_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_PHY_CONFIGURATION_INFO_EVENT 0x758D
+
+#define ICD_EL2_EL2_MAC_PHY_CONFIGURATION_INFO_EVENT_V1 1
+
+#define ICD_EL2_MAC_PHY_CONFIGURATION_INFO_EVENT_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 sps_ul_config_present:1; // Indicate whether SPS UL configuration is configured.
+ // Value 1 means configured.
+ // Value 0 means not configured.
+ // When the valid bit toggle(ie. From 0 to 1, or 1 to 0)
+ // means the presentation of configuration has changed.
+ kal_uint32 sps_interval_ul:10; // This field is valid if and only if field
+ // SPS UL Config Present is 1.
+ // semiPersistSchedIntervalUL, value in number of
+ // subframe.
+ kal_uint32 implicit_release_after:4; // This field is valid if and only if field
+ // SPS UL Config Present is 1.
+ kal_uint32 two_interval_config:1; // This field is valid if and only if field
+ // SPS UL Config Present is 1.
+ // Value 1 means True.
+ // Value 0 means False.
+ kal_uint32 reserved:16;
+} el2_emac_sps_ul_config_v1;
+
+typedef el2_emac_sps_ul_config_v1 el2_emac_sps_ul_config;
+
+typedef struct {
+ kal_uint32 sps_dl_config_present:1; // Indicate whether SPS DL configuration is configured.
+ // Value 1 means configured.
+ // Value 0 means not configured.
+ // When the valid bit toggle(ie. From 0 to 1, or 1 to 0)
+ // means the presentation of configuration has changed.
+ kal_uint32 sps_interval_dl:10; // This field is valid if and only if field
+ // SPS DL Config Present is 1.
+ // semiPersistSchedIntervalDL, value in number of
+ // subframe.
+ kal_uint32 sps_dl_harq_number:4; // This field is valid if and only if field
+ // SPS DL Config Present is 1.
+ kal_uint32 reserved:17;
+} el2_emac_sps_dl_config_v1;
+
+typedef el2_emac_sps_dl_config_v1 el2_emac_sps_dl_config;
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 phy_configuration_present:1; // Indicating whether corresponding configuration exist.
+ // Value 0 means invalid.
+ // Value 1 means valid.
+ // When the valid bit toggle(ie. From 0 to 1, or 1 to 0)
+ // means the presentation of configuration has changed.
+ kal_uint32 reserved:23;
+ el2_emac_sps_dl_config sps_dl_config; // Invalid if the field PHY Configuration Present is 0.
+ el2_emac_sps_ul_config sps_ul_config; // Invalid if the field PHY Configuration Present is 0.
+} icd_el2_mac_phy_configuration_info_event_struct_v1;
+
+typedef icd_el2_mac_phy_configuration_info_event_struct_v1 icd_el2_mac_phy_configuration_info_event_struct;
+
+
+#endif /* _EL2_MAC_PHY_CONFIGURATION_INFO_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_PHY_Configuration_Info_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x758D", "Name": "EL2_MAC_PHY_Configuration_Info_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when corresponoding MAC configuration is configured, or reset.\nIf the field PHY Configuration Present is 0 which indicating invalid, the other fields are all invalid.\n"}, "table": {"EL2_MAC_PHY_Configuration_Info_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_PHY_Configuration_Info_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_PHY_Configuration_Info_Event"}, "EL2_MAC_PHY_Configuration_Info_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_PHY_Configuration_Info_Event_V1", ""]}, "Name": "EL2_MAC_PHY_Configuration_Info_Event_Versions"}, "EL2_MAC_PHY_Configuration_Info_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PHY Configuration Present", "UINT32", "1", "0", "1", "Indicating whether corresponding configuration exist.\nValue 0 means invalid.\nValue 1 means valid.\nWhen the valid bit toggle(ie. From 0 to 1, or 1 to 0)\nmeans the presentation of configuration has changed."], "1": ["Reserved", "UINT32", "1", "1", "23", ""], "2": ["SPS DL Config", "EL2_EMAC_SPS_DL_CONFIG_V1", "1", "24", "32", "Invalid if the field PHY Configuration Present is 0."], "3": ["SPS UL Config", "EL2_EMAC_SPS_UL_CONFIG_V1", "1", "56", "32", "Invalid if the field PHY Configuration Present is 0."]}, "Name": "EL2_MAC_PHY_Configuration_Info_Event_V1"}, "EL2_EMAC_SPS_DL_CONFIG_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SPS DL Config Present", "UINT32", "1", "0", "1", "Indicate whether SPS DL configuration is configured.\nValue 1 means configured.\nValue 0 means not configured.\nWhen the valid bit toggle(ie. From 0 to 1, or 1 to 0)\nmeans the presentation of configuration has changed."], "1": ["SPS interval DL", "UINT32", "1", "1", "10", "This field is valid if and only if field\nSPS DL Config Present is 1.\nsemiPersistSchedIntervalDL, value in number of\nsubframe."], "2": ["SPS DL HARQ number", "UINT32", "1", "11", "4", "This field is valid if and only if field\nSPS DL Config Present is 1."], "3": ["Reserved", "UINT32", "1", "15", "17", ""]}, "Name": "EL2_EMAC_SPS_DL_CONFIG_V1"}, "EL2_EMAC_SPS_UL_CONFIG_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SPS UL Config Present", "UINT32", "1", "0", "1", "Indicate whether SPS UL configuration is configured.\nValue 1 means configured.\nValue 0 means not configured.\nWhen the valid bit toggle(ie. From 0 to 1, or 1 to 0)\nmeans the presentation of configuration has changed."], "1": ["SPS interval UL", "UINT32", "1", "1", "10", "This field is valid if and only if field\nSPS UL Config Present is 1.\nsemiPersistSchedIntervalUL, value in number of\nsubframe."], "2": ["Implicit Release After", "UINT32", "1", "11", "4", "This field is valid if and only if field\nSPS UL Config Present is 1."], "3": ["Two Interval Config", "UINT32", "1", "15", "1", "This field is valid if and only if field\nSPS UL Config Present is 1.\nValue 1 means True.\nValue 0 means False."], "4": ["Reserved", "UINT32", "1", "16", "16", ""]}, "Name": "EL2_EMAC_SPS_UL_CONFIG_V1"}}},
+ Public JSON end */
+// Checksum : [d8107ed296434148cd1af1a20de361e1]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_RACH_Attempt_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_RACH_Attempt_Event.h
new file mode 100644
index 0000000..5521fbd
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_RACH_Attempt_Event.h
@@ -0,0 +1,64 @@
+// ICD Header Format v3
+// Name : EL2_MAC_RACH_Attempt_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7581
+// Version : V2.6
+
+#ifndef _EL2_MAC_RACH_ATTEMPT_EVENT_H
+#define _EL2_MAC_RACH_ATTEMPT_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_RACH_ATTEMPT_EVENT 0x7581
+
+#define ICD_EL2_EL2_MAC_RACH_ATTEMPT_EVENT_V1 1
+
+#define ICD_EL2_MAC_RACH_ATTEMPT_EVENT_STRUCT_V1_MAX_SIZE 32
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 rach_attempt_counter:8; // Preamble TX try count
+ kal_uint32 rach_result:3; // 0: Success
+ // 1: Failed at RAR
+ // 2: Failed at CR timer expired
+ // 3: Failed at CR fail
+ // 4: Aborted
+ kal_uint32 contention_based:1; // Is contention based
+ kal_uint32 rach_message:2; // 0: Msg1 TXed
+ // 1: Received Msg2
+ // 2: Msg3 TXed
+ kal_uint32 preamble_index:6; // Preamble index
+ kal_uint32 reserved:1;
+ kal_uint32 harq_id:3; // (TX SFN * 10 + TX subframe) % 8
+ kal_uint32 msg3_grant:20; // UL grant field in RAR
+ kal_uint32 ta_value:11; // TA value in RAR
+ kal_uint32 rar_success:1; // RAR reception success
+ kal_uint32 temporary_crnti:16; // TC-RNTI received in RAR
+ kal_uint32 physical_cell_id:16; // Cell ID
+ kal_uint32 earfcn:16; // EARFCN
+ kal_uint32 backoff_time:10; // RA backoff time
+ kal_uint32 ra_rnti:6; // RA-RNTI used
+ kal_uint32 preamble_power_offset:8; // Preamble power offset
+ kal_uint32 last_tx_power:6; // Last preamble TX power headroom
+ // level for PHR.
+ // it's the difference between
+ // PCMAX(dBm) and the PRACH Tx power
+ // (dBm). Range:0..63
+ kal_uint32 reserved_1:18;
+ kal_uint8 msg3_mac_pdu[10]; // First 10 bytes of Msg3
+ kal_uint16 msg3_grant_size; // Grant size in bytes
+} icd_el2_mac_rach_attempt_event_struct_v1;
+
+typedef icd_el2_mac_rach_attempt_event_struct_v1 icd_el2_mac_rach_attempt_event_struct;
+
+
+#endif /* _EL2_MAC_RACH_ATTEMPT_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_RACH_Attempt_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7581", "Name": "EL2_MAC_RACH_Attempt_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when RACH finish.\n"}, "table": {"EL2_MAC_RACH_Attempt_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_RACH_Attempt_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_RACH_Attempt_Event"}, "EL2_MAC_RACH_Attempt_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_RACH_Attempt_Event_V1", ""]}, "Name": "EL2_MAC_RACH_Attempt_Event_Versions"}, "EL2_MAC_RACH_Attempt_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Rach Attempt Counter", "UINT32", "1", "0", "8", "Preamble TX try count"], "1": ["Rach Result", "UINT32", "1", "8", "3", "0: Success\n1: Failed at RAR\n2: Failed at CR timer expired\n3: Failed at CR fail\n4: Aborted"], "2": ["Contention Based", "UINT32", "1", "11", "1", "Is contention based"], "3": ["Rach Message", "UINT32", "1", "12", "2", "0: Msg1 TXed\n1: Received Msg2\n2: Msg3 TXed"], "4": ["Preamble Index", "UINT32", "1", "14", "6", "Preamble index"], "5": ["Reserved", "UINT32", "1", "20", "1", ""], "6": ["Harq ID", "UINT32", "1", "21", "3", "(TX SFN * 10 + TX subframe) % 8"], "7": ["Msg3 Grant", "UINT32", "1", "24", "20", "UL grant field in RAR"], "8": ["TA Value", "UINT32", "1", "44", "11", "TA value in RAR"], "9": ["RAR Success", "UINT32", "1", "55", "1", "RAR reception success"], "10": ["Temporary CRNTI", "UINT32", "1", "56", "16", "TC-RNTI received in RAR"], "11": ["Physical Cell ID", "UINT32", "1", "72", "16", "Cell ID"], "12": ["Earfcn", "UINT32", "1", "88", "16", "EARFCN"], "13": ["Backoff Time", "UINT32", "1", "104", "10", "RA backoff time"], "14": ["RA RNTI", "UINT32", "1", "114", "6", "RA-RNTI used"], "15": ["Preamble Power Offset", "UINT32", "1", "120", "8", "Preamble power offset"], "16": ["Last TX Power", "UINT32", "1", "128", "6", "Last preamble TX power headroom\nlevel for PHR.\nit's the difference between\nPCMAX(dBm) and the PRACH Tx power\n(dBm). Range:0..63"], "17": ["Reserved", "UINT32", "1", "134", "18", ""], "18": ["Msg3 Mac PDU", "UINT8", "10", "152", "80", "First 10 bytes of Msg3"], "19": ["Msg3 Grant Size", "UINT16", "1", "232", "16", "Grant size in bytes"]}, "Name": "EL2_MAC_RACH_Attempt_Event_V1"}}},
+ Public JSON end */
+// Checksum : [61b5e6d95ae66d4d1072020df2583210]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_RACH_Attempt_Reason_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_RACH_Attempt_Reason_Event.h
new file mode 100644
index 0000000..31c5783
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_RACH_Attempt_Reason_Event.h
@@ -0,0 +1,49 @@
+// ICD Header Format v3
+// Name : EL2_MAC_RACH_Attempt_Reason_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7582
+// Version : V2.6
+
+#ifndef _EL2_MAC_RACH_ATTEMPT_REASON_EVENT_H
+#define _EL2_MAC_RACH_ATTEMPT_REASON_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_RACH_ATTEMPT_REASON_EVENT 0x7582
+
+#define ICD_EL2_EL2_MAC_RACH_ATTEMPT_REASON_EVENT_V1 1
+
+#define ICD_EL2_MAC_RACH_ATTEMPT_REASON_EVENT_STRUCT_V1_MAX_SIZE 16
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 ue_crnti:16; // UE C-RNTI MAC CE
+ kal_uint32 preamble_ra_index:4; // ra-PRACH-MaskIndex
+ kal_uint32 reason:3; // 0: Connection request
+ // 1: RLF
+ // 2: UL Data arrival
+ // 3: PDCCH order
+ // 4: HO
+ kal_uint32 contention:1; // 0: Contention free
+ // 1: Contention based
+ kal_uint16 msg3_size; // Potential size of Msg3 used in 36.321 5.1.2
+ // Set to 0 for contention free RA
+ kal_uint8 ue_id[6]; // UE CRID
+ kal_uint32 preamble_group_chosen:1; // 0: Group A
+ // 1: Group B
+ kal_uint32 reserved:31;
+} icd_el2_mac_rach_attempt_reason_event_struct_v1;
+
+typedef icd_el2_mac_rach_attempt_reason_event_struct_v1 icd_el2_mac_rach_attempt_reason_event_struct;
+
+
+#endif /* _EL2_MAC_RACH_ATTEMPT_REASON_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_RACH_Attempt_Reason_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7582", "Name": "EL2_MAC_RACH_Attempt_Reason_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when Rach begin.\n"}, "table": {"EL2_MAC_RACH_Attempt_Reason_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_RACH_Attempt_Reason_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_RACH_Attempt_Reason_Event"}, "EL2_MAC_RACH_Attempt_Reason_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_RACH_Attempt_Reason_Event_V1", ""]}, "Name": "EL2_MAC_RACH_Attempt_Reason_Event_Versions"}, "EL2_MAC_RACH_Attempt_Reason_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE CRNTI", "UINT32", "1", "0", "16", "UE C-RNTI MAC CE"], "1": ["Preamble RA Index", "UINT32", "1", "16", "4", "ra-PRACH-MaskIndex"], "2": ["Reason", "UINT32", "1", "20", "3", "0: Connection request\n1: RLF\n2: UL Data arrival\n3: PDCCH order\n4: HO"], "3": ["Contention", "UINT32", "1", "23", "1", "0: Contention free\n1: Contention based"], "4": ["Msg3 Size", "UINT16", "1", "24", "16", "Potential size of Msg3 used in 36.321 5.1.2\nSet to 0 for contention free RA"], "5": ["UE ID", "UINT8", "6", "40", "48", "UE CRID"], "6": ["Preamble Group Chosen", "UINT32", "1", "88", "1", "0: Group A\n1: Group B"], "7": ["Reserved", "UINT32", "1", "89", "31", ""]}, "Name": "EL2_MAC_RACH_Attempt_Reason_Event_V1"}}},
+ Public JSON end */
+// Checksum : [ab2b3d16d71aaab4978acabcd36f4f09]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_Rach_Configuration_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_Rach_Configuration_Event.h
new file mode 100644
index 0000000..160e89c
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_Rach_Configuration_Event.h
@@ -0,0 +1,49 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Rach_Configuration_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7585
+// Version : V2.6
+
+#ifndef _EL2_MAC_RACH_CONFIGURATION_EVENT_H
+#define _EL2_MAC_RACH_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_RACH_CONFIGURATION_EVENT 0x7585
+
+#define ICD_EL2_EL2_MAC_RACH_CONFIGURATION_EVENT_V2 2
+
+#define ICD_EL2_MAC_RACH_CONFIGURATION_EVENT_STRUCT_V2_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 pmax:8; // Max TX power
+ kal_uint32 step_power:8; // powerRampingStep
+ kal_uint32 max_preamble_attempts:8; // preambleTransMax
+ kal_int8 preamble_initial_power; // preambleInitialReceivedTargetPower
+ kal_uint8 delta_preamble_power_msg_3; // deltaPreambleMsg3
+ kal_uint16 contention_resolution_timer_value:7; // mac-ContentionResolutionTimer
+ kal_uint16 group_b_power_offset:5; // messagePowerOffsetGroupB [0, 18],
+ // when set to 31 means negative
+ // infinity (-Inf)
+ kal_uint16 max_retx_msg3:4; // maxHARQ-Msg3Tx
+ kal_uint32 group_a_preamble_index:6; // sizeOfRA-PreamblesGroupA
+ kal_uint32 group_b_preamble_index:6; // numberOfRA-Preambles - groupAsize
+ kal_uint32 group_a_preamble_selection_threshold:6; // messageSizeGroupA
+ kal_uint32 rar_window_size:4; // ra-ResponseWindowSize
+ kal_uint32 reserved:10;
+} icd_el2_mac_rach_configuration_event_struct_v2;
+
+typedef icd_el2_mac_rach_configuration_event_struct_v2 icd_el2_mac_rach_configuration_event_struct;
+
+
+#endif /* _EL2_MAC_RACH_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_Rach_Configuration_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7585", "Name": "EL2_MAC_Rach_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when MAC is configured or reset.\n"}, "table": {"EL2_MAC_Rach_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_Rach_Configuration_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Rach_Configuration_Event"}, "EL2_MAC_Rach_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Rach_Configuration_Event_V1", ""], "1": ["2", "EL2_MAC_Rach_Configuration_Event_V2", ""]}, "Name": "EL2_MAC_Rach_Configuration_Event_Versions"}, "EL2_MAC_Rach_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Preamble Initial Power", "UINT32", "1", "0", "8", "preambleInitialReceivedTargetPower"], "1": ["Step Power", "UINT32", "1", "8", "8", "powerRampingStep"], "2": ["Max Preamble Attempts", "UINT32", "1", "16", "8", "preambleTransMax"], "3": ["Pmax", "UINT32", "1", "24", "8", "Max TX power"], "4": ["Delta Preamble Power Msg 3", "UINT32", "1", "32", "8", "deltaPreambleMsg3"], "5": ["Contention Resolution Timer Value", "UINT32", "1", "40", "7", "mac-ContentionResolutionTimer"], "6": ["Group B Power Offset", "UINT32", "1", "47", "5", "messagePowerOffsetGroupB [0, 18],\nwhen set to 31 means negative\ninfinity (-Inf)"], "7": ["Max Retx Msg3", "UINT32", "1", "52", "4", "maxHARQ-Msg3Tx"], "8": ["Group A Preamble Index", "UINT32", "1", "56", "6", "sizeOfRA-PreamblesGroupA"], "9": ["Group B Preamble Index", "UINT32", "1", "62", "6", "numberOfRA-Preambles - groupAsize"], "10": ["Group A Preamble Selection Threshold", "UINT32", "1", "68", "6", "messageSizeGroupA"], "11": ["Rar Window Size", "UINT32", "1", "74", "4", "ra-ResponseWindowSize"], "12": ["Reserved", "UINT32", "1", "78", "10", ""]}, "Name": "EL2_MAC_Rach_Configuration_Event_V1"}, "EL2_MAC_Rach_Configuration_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Pmax", "UINT32", "1", "0", "8", "Max TX power"], "1": ["Step Power", "UINT32", "1", "8", "8", "powerRampingStep"], "2": ["Max Preamble Attempts", "UINT32", "1", "16", "8", "preambleTransMax"], "3": ["Preamble Initial Power", "INT8", "1", "24", "8", "preambleInitialReceivedTargetPower"], "4": ["Delta Preamble Power Msg 3", "UINT8", "1", "32", "8", "deltaPreambleMsg3"], "5": ["Contention Resolution Timer Value", "UINT16", "1", "40", "7", "mac-ContentionResolutionTimer"], "6": ["Group B Power Offset", "UINT16", "1", "47", "5", "messagePowerOffsetGroupB [0, 18],\nwhen set to 31 means negative\ninfinity (-Inf)"], "7": ["Max Retx Msg3", "UINT16", "1", "52", "4", "maxHARQ-Msg3Tx"], "8": ["Group A Preamble Index", "UINT32", "1", "56", "6", "sizeOfRA-PreamblesGroupA"], "9": ["Group B Preamble Index", "UINT32", "1", "62", "6", "numberOfRA-Preambles - groupAsize"], "10": ["Group A Preamble Selection Threshold", "UINT32", "1", "68", "6", "messageSizeGroupA"], "11": ["Rar Window Size", "UINT32", "1", "74", "4", "ra-ResponseWindowSize"], "12": ["Reserved", "UINT32", "1", "78", "10", ""]}, "Name": "EL2_MAC_Rach_Configuration_Event_V2"}}},
+ Public JSON end */
+// Checksum : [577b2dd6d9462264f4babf3efda9e788]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_Reset_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_Reset_Event.h
new file mode 100644
index 0000000..112541a
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_Reset_Event.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Reset_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7583
+// Version : V2.6
+
+#ifndef _EL2_MAC_RESET_EVENT_H
+#define _EL2_MAC_RESET_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_RESET_EVENT 0x7583
+
+#define ICD_EL2_EL2_MAC_RESET_EVENT_V1 1
+
+#define ICD_EL2_MAC_RESET_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 mac_reset_cause:2; // 0: Others
+ // 1: Release
+ // 2: HO
+ // 3: RLF
+ kal_uint32 reserved:22;
+} icd_el2_mac_reset_event_struct_v1;
+
+typedef icd_el2_mac_reset_event_struct_v1 icd_el2_mac_reset_event_struct;
+
+
+#endif /* _EL2_MAC_RESET_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_Reset_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7583", "Name": "EL2_MAC_Reset_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when MAC is reset.\n"}, "table": {"EL2_MAC_Reset_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_Reset_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Reset_Event"}, "EL2_MAC_Reset_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Reset_Event_V1", ""]}, "Name": "EL2_MAC_Reset_Event_Versions"}, "EL2_MAC_Reset_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MAC Reset Cause", "UINT32", "1", "0", "2", "0: Others\n1: Release\n2: HO\n3: RLF"], "1": ["Reserved", "UINT32", "1", "2", "22", ""]}, "Name": "EL2_MAC_Reset_Event_V1"}}},
+ Public JSON end */
+// Checksum : [f87ce693347b94468d249e75d26027c1]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_SR_MAX_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_SR_MAX_Event.h
new file mode 100644
index 0000000..380c5ec
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_SR_MAX_Event.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : EL2_MAC_SR_MAX_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7590
+// Version : V2.6
+
+#ifndef _EL2_MAC_SR_MAX_EVENT_H
+#define _EL2_MAC_SR_MAX_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_SR_MAX_EVENT 0x7590
+
+#define ICD_EL2_EL2_MAC_SR_MAX_EVENT_V1 1
+
+#define ICD_EL2_MAC_SR_MAX_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 sr_tx_count; // SR max tx count
+ kal_uint8 reserved[2];
+} icd_el2_mac_sr_max_event_struct_v1;
+
+typedef icd_el2_mac_sr_max_event_struct_v1 icd_el2_mac_sr_max_event_struct;
+
+
+#endif /* _EL2_MAC_SR_MAX_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_SR_MAX_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7590", "Name": "EL2_MAC_SR_MAX_Event", "Type": "EVENT", "Desc": "This event is triggered whenever the SR tx max event is happened.\n"}, "table": {"EL2_MAC_SR_MAX_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_SR_MAX_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_SR_MAX_Event"}, "EL2_MAC_SR_MAX_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_SR_MAX_Event_V1", ""]}, "Name": "EL2_MAC_SR_MAX_Event_Versions"}, "EL2_MAC_SR_MAX_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR tx count", "UINT8", "1", "0", "8", "SR max tx count"], "1": ["Reserved", "UINT8", "2", "8", "16", ""]}, "Name": "EL2_MAC_SR_MAX_Event_V1"}}},
+ Public JSON end */
+// Checksum : [581f47bccae2d599681c568ccc9ed659]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_SR_Period_Change_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_SR_Period_Change_Event.h
new file mode 100644
index 0000000..a4fd7fc
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_SR_Period_Change_Event.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : EL2_MAC_SR_Period_Change_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7580
+// Version : V2.6
+
+#ifndef _EL2_MAC_SR_PERIOD_CHANGE_EVENT_H
+#define _EL2_MAC_SR_PERIOD_CHANGE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_SR_PERIOD_CHANGE_EVENT 0x7580
+
+#define ICD_EL2_EL2_MAC_SR_PERIOD_CHANGE_EVENT_V1 1
+
+#define ICD_EL2_MAC_SR_PERIOD_CHANGE_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 sr_period:8; // Scheduling resource period value, 0 if not present
+ kal_uint32 reserved:16;
+} icd_el2_mac_sr_period_change_event_struct_v1;
+
+typedef icd_el2_mac_sr_period_change_event_struct_v1 icd_el2_mac_sr_period_change_event_struct;
+
+
+#endif /* _EL2_MAC_SR_PERIOD_CHANGE_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_SR_Period_Change_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7580", "Name": "EL2_MAC_SR_Period_Change_Event", "Type": "EVENT", "Desc": "It is event trigger, report when SR period is added, changed, or removed\n"}, "table": {"EL2_MAC_SR_Period_Change_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_SR_Period_Change_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_SR_Period_Change_Event"}, "EL2_MAC_SR_Period_Change_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_SR_Period_Change_Event_V1", ""]}, "Name": "EL2_MAC_SR_Period_Change_Event_Versions"}, "EL2_MAC_SR_Period_Change_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR Period", "UINT32", "1", "0", "8", "Scheduling resource period value, 0 if not present"], "1": ["Reserved", "UINT32", "1", "8", "16", ""]}, "Name": "EL2_MAC_SR_Period_Change_Event_V1"}}},
+ Public JSON end */
+// Checksum : [9de07816c04e4188a982b4c0cea408af]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_SR_Tx_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_SR_Tx_Event.h
new file mode 100644
index 0000000..222a527
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_SR_Tx_Event.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : EL2_MAC_SR_Tx_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7591
+// Version : V2.6
+
+#ifndef _EL2_MAC_SR_TX_EVENT_H
+#define _EL2_MAC_SR_TX_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_SR_TX_EVENT 0x7591
+
+#define ICD_EL2_EL2_MAC_SR_TX_EVENT_V1 1
+
+#define ICD_EL2_MAC_SR_TX_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 sr_transmax; // The Maxinum transmission of SR configuration.
+ kal_uint8 sr_tx_count; // Number of SR tx count.
+ kal_uint8 reserved;
+} icd_el2_mac_sr_tx_event_struct_v1;
+
+typedef icd_el2_mac_sr_tx_event_struct_v1 icd_el2_mac_sr_tx_event_struct;
+
+
+#endif /* _EL2_MAC_SR_TX_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_SR_Tx_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7591", "Name": "EL2_MAC_SR_Tx_Event", "Type": "EVENT", "Desc": "This event is triggered whenever the SR tx event is happened.\n"}, "table": {"EL2_MAC_SR_Tx_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_SR_Tx_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_SR_Tx_Event"}, "EL2_MAC_SR_Tx_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_SR_Tx_Event_V1", ""]}, "Name": "EL2_MAC_SR_Tx_Event_Versions"}, "EL2_MAC_SR_Tx_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR TransMax", "UINT8", "1", "0", "8", "The Maxinum transmission of SR configuration."], "1": ["SR Tx Count", "UINT8", "1", "8", "8", "Number of SR tx count."], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "EL2_MAC_SR_Tx_Event_V1"}}},
+ Public JSON end */
+// Checksum : [00e98f3f1e874bf7895fdde228ad7979]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_Timer_Status_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_Timer_Status_Event.h
new file mode 100644
index 0000000..e7d125a
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_Timer_Status_Event.h
@@ -0,0 +1,44 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Timer_Status_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7587
+// Version : V2.6
+
+#ifndef _EL2_MAC_TIMER_STATUS_EVENT_H
+#define _EL2_MAC_TIMER_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_TIMER_STATUS_EVENT 0x7587
+
+#define ICD_EL2_EL2_MAC_TIMER_STATUS_EVENT_V1 1
+
+#define ICD_EL2_MAC_TIMER_STATUS_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 mac_timer_name:2; // Values:
+ // 0: TA
+ // 1: RAR Window
+ // 2: RA CR
+ // 3: RA Backoff
+ kal_uint32 timer_status:2; // Values:
+ // 0: Started
+ // 1: Stopped
+ // 2: Expired
+ kal_uint32 reserved:20;
+} icd_el2_mac_timer_status_event_struct_v1;
+
+typedef icd_el2_mac_timer_status_event_struct_v1 icd_el2_mac_timer_status_event_struct;
+
+
+#endif /* _EL2_MAC_TIMER_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_Timer_Status_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7587", "Name": "EL2_MAC_Timer_Status_Event", "Type": "EVENT", "Desc": "It is event trigger, report when any of the MAC timer's state is changed\n"}, "table": {"EL2_MAC_Timer_Status_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_Timer_Status_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Timer_Status_Event"}, "EL2_MAC_Timer_Status_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Timer_Status_Event_V1", ""]}, "Name": "EL2_MAC_Timer_Status_Event_Versions"}, "EL2_MAC_Timer_Status_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MAC Timer Name", "UINT32", "1", "0", "2", "Values:\n0: TA\n1: RAR Window\n2: RA CR\n3: RA Backoff"], "1": ["Timer Status", "UINT32", "1", "2", "2", "Values:\n0: Started\n1: Stopped\n2: Expired"], "2": ["Reserved", "UINT32", "1", "4", "20", ""]}, "Name": "EL2_MAC_Timer_Status_Event_V1"}}},
+ Public JSON end */
+// Checksum : [176e62dff5c57ff207753f6100231517]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_Timing_Advance_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_Timing_Advance_Event.h
new file mode 100644
index 0000000..30590ce
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_Timing_Advance_Event.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : EL2_MAC_Timing_Advance_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7588
+// Version : V2.6
+
+#ifndef _EL2_MAC_TIMING_ADVANCE_EVENT_H
+#define _EL2_MAC_TIMING_ADVANCE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_TIMING_ADVANCE_EVENT 0x7588
+
+#define ICD_EL2_EL2_MAC_TIMING_ADVANCE_EVENT_V1 1
+
+#define ICD_EL2_MAC_TIMING_ADVANCE_EVENT_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 timer_value:14; // TA timer length, 0=INF
+ kal_uint32 timing_advance:6; // The value of MAC CE TA command
+ kal_uint32 subframe:4; // The subframe number when the TA is received
+ kal_uint32 sfn:10; // The SFN when the TA is received
+ kal_uint32 reserved:22;
+} icd_el2_mac_timing_advance_event_struct_v1;
+
+typedef icd_el2_mac_timing_advance_event_struct_v1 icd_el2_mac_timing_advance_event_struct;
+
+
+#endif /* _EL2_MAC_TIMING_ADVANCE_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_Timing_Advance_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7588", "Name": "EL2_MAC_Timing_Advance_Event", "Type": "EVENT", "Desc": "This event is generated whenever the timing advance control element is received.\n"}, "table": {"EL2_MAC_Timing_Advance_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_Timing_Advance_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_Timing_Advance_Event"}, "EL2_MAC_Timing_Advance_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_Timing_Advance_Event_V1", ""]}, "Name": "EL2_MAC_Timing_Advance_Event_Versions"}, "EL2_MAC_Timing_Advance_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer Value", "UINT32", "1", "0", "14", "TA timer length, 0=INF"], "1": ["Timing Advance", "UINT32", "1", "14", "6", "The value of MAC CE TA command"], "2": ["Subframe", "UINT32", "1", "20", "4", "The subframe number when the TA is received"], "3": ["SFN", "UINT32", "1", "24", "10", "The SFN when the TA is received"], "4": ["Reserved", "UINT32", "1", "34", "22", ""]}, "Name": "EL2_MAC_Timing_Advance_Event_V1"}}},
+ Public JSON end */
+// Checksum : [fe6d480922e5184a3093b7e232bac0ea]
diff --git a/mcu/interface/service/icd/event/el2/EL2_MAC_UL_Configuration_Event.h b/mcu/interface/service/icd/event/el2/EL2_MAC_UL_Configuration_Event.h
new file mode 100644
index 0000000..44f5403
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_MAC_UL_Configuration_Event.h
@@ -0,0 +1,46 @@
+// ICD Header Format v3
+// Name : EL2_MAC_UL_Configuration_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x7586
+// Version : V2.6
+
+#ifndef _EL2_MAC_UL_CONFIGURATION_EVENT_H
+#define _EL2_MAC_UL_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_MAC_UL_CONFIGURATION_EVENT 0x7586
+
+#define ICD_EL2_EL2_MAC_UL_CONFIGURATION_EVENT_V2 2
+
+#define ICD_EL2_MAC_UL_CONFIGURATION_EVENT_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 sr_period_present:1; // Scheduling resource valid
+ kal_uint32 max_ul_harq_transmission:5; // maxHARQ-Tx, Maximum number of UL HARQ transmissions.
+ // Value 0 means invalid (no configuration)
+ kal_uint32 tti_bundling:1; // Indicates whether TTI bundling is enabled. 0 or 1
+ kal_uint32 enhanced_tti_bundling:1; // Indicates whether enhanced TTI bundling
+ // ( i.e. e-HARQ-Pattern-r12) is enabled. 0 or 1
+ kal_uint32 reserved:16;
+ kal_uint32 periodic_bsr_timer:16; // Periodic BSR timer value.
+ // Value 0xFFFF means infinity.
+ // Value 0 means invalid (no configuration).
+ kal_uint32 retx_bsr_timer:16; // ReTX BSR timer value.
+ // Value 0 means invalid (no configuration)
+} icd_el2_mac_ul_configuration_event_struct_v2;
+
+typedef icd_el2_mac_ul_configuration_event_struct_v2 icd_el2_mac_ul_configuration_event_struct;
+
+
+#endif /* _EL2_MAC_UL_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"EL2_MAC_UL_Configuration_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x7586", "Name": "EL2_MAC_UL_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when MAC is configured, or reset.\n"}, "table": {"EL2_MAC_UL_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_MAC_UL_Configuration_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_MAC_UL_Configuration_Event"}, "EL2_MAC_UL_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_MAC_UL_Configuration_Event_V1", ""], "1": ["2", "EL2_MAC_UL_Configuration_Event_V2", ""]}, "Name": "EL2_MAC_UL_Configuration_Event_Versions"}, "EL2_MAC_UL_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR Period Present", "UINT32", "1", "0", "1", "Scheduling resource valid"], "1": ["Reserved", "UINT32", "1", "1", "23", ""], "2": ["Periodic BSR Timer", "UINT32", "1", "24", "16", "Periodic BSR timer value"], "3": ["Retx BSR Timer", "UINT32", "1", "40", "16", "ReTX BSR timer value"]}, "Name": "EL2_MAC_UL_Configuration_Event_V1"}, "EL2_MAC_UL_Configuration_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR Period Present", "UINT32", "1", "0", "1", "Scheduling resource valid"], "1": ["Max UL HARQ Transmission", "UINT32", "1", "1", "5", "maxHARQ-Tx, Maximum number of UL HARQ transmissions.\nValue 0 means invalid (no configuration)"], "2": ["TTI Bundling", "UINT32", "1", "6", "1", "Indicates whether TTI bundling is enabled. 0 or 1"], "3": ["Enhanced TTI bundling", "UINT32", "1", "7", "1", "Indicates whether enhanced TTI bundling\n( i.e. e-HARQ-Pattern-r12) is enabled. 0 or 1"], "4": ["Reserved", "UINT32", "1", "8", "16", ""], "5": ["Periodic BSR Timer", "UINT32", "1", "24", "16", "Periodic BSR timer value.\nValue 0xFFFF means infinity.\nValue 0 means invalid (no configuration)."], "6": ["Retx BSR Timer", "UINT32", "1", "40", "16", "ReTX BSR timer value.\nValue 0 means invalid (no configuration)"]}, "Name": "EL2_MAC_UL_Configuration_Event_V2"}}},
+ Public JSON end */
+// Checksum : [b56325a7e6b7dd11696dc97ebe8e1f0c]
diff --git a/mcu/interface/service/icd/event/el2/EL2_PDCP_Configuration_Event.h b/mcu/interface/service/icd/event/el2/EL2_PDCP_Configuration_Event.h
new file mode 100644
index 0000000..8481a7e
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_PDCP_Configuration_Event.h
@@ -0,0 +1,70 @@
+// ICD Header Format v3
+// Name : EL2_PDCP_Configuration_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x758C
+// Version : V2.6
+
+#ifndef _EL2_PDCP_CONFIGURATION_EVENT_H
+#define _EL2_PDCP_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_PDCP_CONFIGURATION_EVENT 0x758C
+
+#define ICD_EL2_EL2_PDCP_CONFIGURATION_EVENT_V2 2
+
+#define MAX_ICD_EL2_PDCP_CONFIGURATION_EVENT_STRUCT_V2_NUMBER_OF_RBS 37
+
+#define ICD_EL2_PDCP_CONFIGURATION_EVENT_STRUCT_V2_MAX_SIZE 1192
+
+typedef struct {
+ kal_uint8 rb_cfg_idx; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint8 rreestablishment_triggered; // PDCP Rreestablishment configuration
+ // 0: no triggered
+ // 1: triggered
+ kal_uint8 uplink_sn_size; // Uplink PDCP SN length
+ kal_uint8 downlink_sn_size; // Downlink PDCP SN length
+ kal_uint8 cipher_algorithm; // Cipher Algorithm configuration
+ // 0: EEA0 or NEA0
+ // 1: EEA1 or NEA1
+ // 2: EEA2 or NEA2
+ // 3: EEA3 or NEA3
+ kal_uint8 itntegrity_algorithm; // Integrity Algorithm configuration
+ // 0: EIA0 or NIA0
+ // 1: EIA1 or NIA1
+ // 2: EIA2 or NIA2
+ // 3: EIA3 or NIA3
+ kal_uint16 discardtimer; // timer value of discardTimer, if discardTimer is not available, the value is 0
+ kal_uint8 rohc_status; // Header compression configuration
+ // 0: disable
+ // 1: Uplink and Downlink enable
+ // 2: Uplink only enalbe
+ kal_uint8 max_cid; // the maximum CID value that can be used, it's only valid on ROHC is enabled
+ kal_uint8 number_of_profiles; // range[0, 9]
+ kal_uint8 reserved;
+ kal_uint16 rohc_profiles[9];
+ kal_uint8 eps_bearer_id; // The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15)
+ kal_uint8 reserved_1;
+} el2_pdcp_rb_entity_info_v2;
+
+typedef el2_pdcp_rb_entity_info_v2 el2_pdcp_rb_entity_info;
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint32 number_of_rbs; // range[0, 37]
+ el2_pdcp_rb_entity_info rb_entity_info[MAX_ICD_EL2_PDCP_CONFIGURATION_EVENT_STRUCT_V2_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_el2_pdcp_configuration_event_struct_v2;
+
+typedef icd_el2_pdcp_configuration_event_struct_v2 icd_el2_pdcp_configuration_event_struct;
+
+
+#endif /* _EL2_PDCP_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"EL2_PDCP_Configuration_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x758C", "Name": "EL2_PDCP_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when PDCP configuration is changed\n"}, "table": {"EL2_PDCP_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "EL2_PDCP_Configuration_Event_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_PDCP_Configuration_Event"}, "EL2_PDCP_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_PDCP_Configuration_Event_V1", ""], "1": ["2", "EL2_PDCP_Configuration_Event_V2", ""]}, "Name": "EL2_PDCP_Configuration_Event_Versions"}, "EL2_PDCP_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB Entity Info": "Number of RBs"}, "Name": "EL2_PDCP_Configuration_Event_V1", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 37]"], "1": ["RB Entity Info", "EL2_PDCP_RB_Entity_Info_V1", "N", "32", "VAR", "N := Number of RBs"]}}, "EL2_PDCP_Configuration_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB Entity Info": "Number of RBs"}, "Name": "EL2_PDCP_Configuration_Event_V2", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 37]"], "1": ["RB Entity Info", "EL2_PDCP_RB_Entity_Info_V2", "N", "32", "VAR", "N := Number of RBs"]}}, "EL2_PDCP_RB_Entity_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Rreestablishment triggered", "UINT8", "1", "8", "8", "PDCP Rreestablishment configuration\n0: no triggered\n1: triggered"], "2": ["Uplink SN size", "UINT8", "1", "16", "8", "Uplink PDCP SN length"], "3": ["Downlink SN size", "UINT8", "1", "24", "8", "Downlink PDCP SN length"], "4": ["Cipher Algorithm", "UINT8", "1", "32", "8", "Cipher Algorithm configuration\n0: EEA0 or NEA0\n1: EEA1 or NEA1\n2: EEA2 or NEA2\n3: EEA3 or NEA3"], "5": ["Itntegrity Algorithm", "UINT8", "1", "40", "8", "Integrity Algorithm configuration\n0: EIA0 or NIA0\n1: EIA1 or NIA1\n2: EIA2 or NIA2\n3: EIA3 or NIA3"], "6": ["discardTimer", "UINT16", "1", "48", "16", "timer value of discardTimer, if discardTimer is not available, the value is 0"], "7": ["ROHC status", "UINT8", "1", "64", "8", "Header compression configuration\n0: disable\n1: Uplink and Downlink enable\n2: Uplink only enalbe"], "8": ["Max CID", "UINT8", "1", "72", "8", "the maximum CID value that can be used, it's only valid on ROHC is enabled"], "9": ["Number of profiles", "UINT8", "1", "80", "8", "range[0, 9]"], "10": ["Reserved", "UINT8", "1", "88", "8", ""], "11": ["Rohc profiles", "UINT16", "9", "96", "144", ""], "12": ["Reserved", "UINT16", "1", "240", "16", ""]}, "Name": "EL2_PDCP_RB_Entity_Info_V1"}, "EL2_PDCP_RB_Entity_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Rreestablishment triggered", "UINT8", "1", "8", "8", "PDCP Rreestablishment configuration\n0: no triggered\n1: triggered"], "2": ["Uplink SN size", "UINT8", "1", "16", "8", "Uplink PDCP SN length"], "3": ["Downlink SN size", "UINT8", "1", "24", "8", "Downlink PDCP SN length"], "4": ["Cipher Algorithm", "UINT8", "1", "32", "8", "Cipher Algorithm configuration\n0: EEA0 or NEA0\n1: EEA1 or NEA1\n2: EEA2 or NEA2\n3: EEA3 or NEA3"], "5": ["Itntegrity Algorithm", "UINT8", "1", "40", "8", "Integrity Algorithm configuration\n0: EIA0 or NIA0\n1: EIA1 or NIA1\n2: EIA2 or NIA2\n3: EIA3 or NIA3"], "6": ["discardTimer", "UINT16", "1", "48", "16", "timer value of discardTimer, if discardTimer is not available, the value is 0"], "7": ["ROHC status", "UINT8", "1", "64", "8", "Header compression configuration\n0: disable\n1: Uplink and Downlink enable\n2: Uplink only enalbe"], "8": ["Max CID", "UINT8", "1", "72", "8", "the maximum CID value that can be used, it's only valid on ROHC is enabled"], "9": ["Number of profiles", "UINT8", "1", "80", "8", "range[0, 9]"], "10": ["Reserved", "UINT8", "1", "88", "8", ""], "11": ["Rohc profiles", "UINT16", "9", "96", "144", ""], "12": ["EPS Bearer ID", "UINT8", "1", "240", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15)"], "13": ["Reserved", "UINT8", "1", "248", "8", ""]}, "Name": "EL2_PDCP_RB_Entity_Info_V2"}}},
+ Public JSON end */
+// Checksum : [59c042960670149ff3a1112ada989a21]
diff --git a/mcu/interface/service/icd/event/el2/EL2_RLC_Configuration_Event.h b/mcu/interface/service/icd/event/el2/EL2_RLC_Configuration_Event.h
new file mode 100644
index 0000000..4ce330a
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_RLC_Configuration_Event.h
@@ -0,0 +1,66 @@
+// ICD Header Format v3
+// Name : EL2_RLC_Configuration_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x758E
+// Version : V2.6
+
+#ifndef _EL2_RLC_CONFIGURATION_EVENT_H
+#define _EL2_RLC_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_CONFIGURATION_EVENT 0x758E
+
+#define ICD_EL2_EL2_RLC_CONFIGURATION_EVENT_V1 1
+
+#define MAX_ICD_EL2_RLC_CONFIGURATION_EVENT_STRUCT_V1_NUMBER_OF_RBS 37
+
+#define ICD_EL2_RLC_CONFIGURATION_EVENT_STRUCT_V1_MAX_SIZE 748
+
+typedef struct {
+ kal_uint8 rb_cfg_idx; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 33: SRB1, 34: SRB2).
+ kal_uint8 rlc_mode; // 0: AM
+ // 1: UM bidirectional
+ // 2: UM unidirectional UL
+ // 3: UM unidirectional DL
+ kal_uint8 maxretxthreshold; // The maxinum number of AMD PDU retransmissions.
+ kal_uint8 reserved;
+ kal_uint32 pollpdu; // Trigger a poll for every pollPDU PDUs.(Unit: PDUs)
+ // Value range: 4 - 256, Infinity (4294967295).
+ kal_uint32 pollbyte; // Trigger a poll for every pollByte bytes.(Unit: Kilobytes)
+ // Value range:25 - 3000, Infinity (4294967295).
+ kal_uint8 dl_sn_field_length; // Valid only when RLC mode is 0, 1 or 3.(Unit: Bits)
+ // When RLC mode is AM: 10, 16
+ // When RLC mode is UM: 5, 10
+ kal_uint8 ul_sn_field_length; // Valid only when RLC mode is 0, 1 or 2.(Unit: Bits)
+ // When RLC mode is AM: 10, 16
+ // When RLC mode is UM: 5, 10
+ kal_uint16 t_pollretransmit; // This timer is used by the transmitting side of an AM RLC entity in order to retransmit a poll
+ // (Unit: ms).
+ kal_uint16 t_reordering; // This timer is used by the receiving side of an AM RLC entity and receiving UM RLC entity in order to
+ // detect loss of RLC PDUs at lower layer Integrity Algorithm configuration(Unit: ms).
+ kal_uint16 t_statusprohibit; // This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of
+ // a STATUS PDU(Unit: ms).
+} el2_rlc_config_info_v1;
+
+typedef el2_rlc_config_info_v1 el2_rlc_config_info;
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint32 number_of_rbs; // range[0, 37]
+ el2_rlc_config_info rlc_config_info[MAX_ICD_EL2_RLC_CONFIGURATION_EVENT_STRUCT_V1_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_el2_rlc_configuration_event_struct_v1;
+
+typedef icd_el2_rlc_configuration_event_struct_v1 icd_el2_rlc_configuration_event_struct;
+
+
+#endif /* _EL2_RLC_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"EL2_RLC_Configuration_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x758E", "Name": "EL2_RLC_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when RLC configuration is changed\n"}, "table": {"EL2_RLC_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "EL2_RLC_Configuration_Event_Versions", "1", "32", "VAR", ""]}, "Name": "EL2_RLC_Configuration_Event"}, "EL2_RLC_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_Configuration_Event_V1", ""]}, "Name": "EL2_RLC_Configuration_Event_Versions"}, "EL2_RLC_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RLC Config Info": "Number of RBs"}, "Name": "EL2_RLC_Configuration_Event_V1", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 37]"], "1": ["RLC Config Info", "EL2_RLC_Config_Info_V1", "N", "32", "VAR", "N := Number of RBs"]}}, "EL2_RLC_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 33: SRB1, 34: SRB2)."], "1": ["RLC mode", "UINT8", "1", "8", "8", "0: AM\n1: UM bidirectional\n2: UM unidirectional UL\n3: UM unidirectional DL"], "2": ["maxRetxThreshold", "UINT8", "1", "16", "8", "The maxinum number of AMD PDU retransmissions."], "3": ["Reserved", "UINT8", "1", "24", "8", ""], "4": ["pollPDU", "UINT32", "1", "32", "32", "Trigger a poll for every pollPDU PDUs.(Unit: PDUs)\nValue range: 4 - 256, Infinity (4294967295)."], "5": ["pollByte", "UINT32", "1", "64", "32", "Trigger a poll for every pollByte bytes.(Unit: Kilobytes)\nValue range:25 - 3000, Infinity (4294967295)."], "6": ["DL SN field length", "UINT8", "1", "96", "8", "Valid only when RLC mode is 0, 1 or 3.(Unit: Bits)\nWhen RLC mode is AM: 10, 16\nWhen RLC mode is UM: 5, 10"], "7": ["UL SN field length", "UINT8", "1", "104", "8", "Valid only when RLC mode is 0, 1 or 2.(Unit: Bits)\nWhen RLC mode is AM: 10, 16\nWhen RLC mode is UM: 5, 10"], "8": ["t-PollRetransmit", "UINT16", "1", "112", "16", "This timer is used by the transmitting side of an AM RLC entity in order to retransmit a poll\n(Unit: ms)."], "9": ["t-Reordering", "UINT16", "1", "128", "16", "This timer is used by the receiving side of an AM RLC entity and receiving UM RLC entity in order to\ndetect loss of RLC PDUs at lower layer Integrity Algorithm configuration(Unit: ms)."], "10": ["t-StatusProhibit", "UINT16", "1", "144", "16", "This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of\na STATUS PDU(Unit: ms)."]}, "Name": "EL2_RLC_Config_Info_V1"}}},
+ Public JSON end */
+// Checksum : [85d1c1315745d97a1681e46c928161cc]
diff --git a/mcu/interface/service/icd/event/el2/EL2_RLC_Data_Stall_Event.h b/mcu/interface/service/icd/event/el2/EL2_RLC_Data_Stall_Event.h
new file mode 100644
index 0000000..70aee77
--- /dev/null
+++ b/mcu/interface/service/icd/event/el2/EL2_RLC_Data_Stall_Event.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : EL2_RLC_Data_Stall_Event
+// Category : LTE
+// Layer : EL2
+// Type : EVENT
+// Code : 0x758B
+// Version : V2.6
+
+#ifndef _EL2_RLC_DATA_STALL_EVENT_H
+#define _EL2_RLC_DATA_STALL_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_EL2_RLC_DATA_STALL_EVENT 0x758B
+
+#define ICD_EL2_EL2_RLC_DATA_STALL_EVENT_V1 1
+
+#define ICD_EL2_RLC_DATA_STALL_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 data_stall_cause:2; // 0: Data pause or recoverable data stall
+ // 1: Non-recoverable data stall
+ kal_uint32 reserved:22;
+} icd_el2_rlc_data_stall_event_struct_v1;
+
+typedef icd_el2_rlc_data_stall_event_struct_v1 icd_el2_rlc_data_stall_event_struct;
+
+
+#endif /* _EL2_RLC_DATA_STALL_EVENT_H */
+
+
+/* Public JSON start
+"EL2_RLC_Data_Stall_Event": {"info": {"Category": "LTE", "Layer": "L2", "Code": "0x758B", "Name": "EL2_RLC_Data_Stall_Event", "Type": "EVENT", "Desc": "The event, Data pause or recoverable data stall, is triggered when a data session pauses and resumes; if RLC state variables do not change for 5 secs, and VT(A)!=VT(S) in UL or VR(R)!=VR(H) in DL, then the event can be triggered\nThe event, Non-recoverable data stall, is triggered when a data session stalls and does not resume; if RLC state variables do not change for 30 secs, and VT(A)!=VT(S) in UL or VR(R)!=VR(H) in DL, then the event can be triggered\n"}, "table": {"EL2_RLC_Data_Stall_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EL2_RLC_Data_Stall_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EL2_RLC_Data_Stall_Event"}, "EL2_RLC_Data_Stall_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EL2_RLC_Data_Stall_Event_V1", ""]}, "Name": "EL2_RLC_Data_Stall_Event_Versions"}, "EL2_RLC_Data_Stall_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Data Stall Cause", "UINT32", "1", "0", "2", "0: Data pause or recoverable data stall\n1: Non-recoverable data stall"], "1": ["Reserved", "UINT32", "1", "2", "22", ""]}, "Name": "EL2_RLC_Data_Stall_Event_V1"}}},
+ Public JSON end */
+// Checksum : [90d372e11c17197e61b431aab15f978f]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_EMM_Context_Info.h b/mcu/interface/service/icd/event/enas/ENAS_EMM_Context_Info.h
new file mode 100644
index 0000000..2c4220f
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_EMM_Context_Info.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : ENAS_EMM_Context_Info
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7690
+// Version : V2.6
+
+#ifndef _ENAS_EMM_CONTEXT_INFO_H
+#define _ENAS_EMM_CONTEXT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_EMM_CONTEXT_INFO 0x7690
+
+#define ICD_ENAS_EMM_CONTEXT_INFO_V1 1
+
+#define ICD_ENAS_EMM_CONTEXT_INFO_STRUCT_V1_MAX_SIZE 7
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 dcnr; // UE will send DCNR capability in attach request or tracking area
+ // request.
+ // For detailed definition, please refer to 3GPP 24.301 UE network
+ // capability.
+ kal_uint8 n1_mode; // UE will send N1 Mode capability in attach request or tracking
+ // area request.
+ // For detailed definition, please refer to 3GPP 24.301 UE network
+ // capability.
+ kal_uint8 restrictdcnr; // UE will receive RestrictDCNR from network's attach accept or
+ // tracking area accept.
+ // For detailed definition, please refer to 3GPP 24.301 EPS network
+ // feature support.
+ kal_uint8 iwkn26; // UE will receive IWKN26 capability from network's attach accept or
+ // tracking area accept.
+ // For detailed definition, please refer to 3GPP 24.301 EPS network
+ // feature support.
+ kal_uint8 reserved[2];
+} icd_enas_emm_context_info_struct_v1;
+
+typedef icd_enas_emm_context_info_struct_v1 icd_enas_emm_context_info_struct;
+
+
+#endif /* _ENAS_EMM_CONTEXT_INFO_H */
+
+
+/* Public JSON start
+"ENAS_EMM_Context_Info": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7690", "Name": "ENAS_EMM_Context_Info", "Type": "EVENT", "Desc": "The event is generated when EMM context changes.\n"}, "table": {"ENAS_EMM_Context_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EMM_Context_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ENAS_EMM_Context_Info"}, "EMM_Context_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EMM_Context_Info_V1", ""]}, "Name": "EMM_Context_Info_Versions"}, "EMM_Context_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DCNR", "UINT8", "1", "0", "8", "UE will send DCNR capability in attach request or tracking area\nrequest.\nFor detailed definition, please refer to 3GPP 24.301 UE network\ncapability."], "1": ["N1 Mode", "UINT8", "1", "8", "8", "UE will send N1 Mode capability in attach request or tracking\narea request.\nFor detailed definition, please refer to 3GPP 24.301 UE network\ncapability."], "2": ["RestrictDCNR", "UINT8", "1", "16", "8", "UE will receive RestrictDCNR from network's attach accept or\ntracking area accept.\nFor detailed definition, please refer to 3GPP 24.301 EPS network\nfeature support."], "3": ["IWKN26", "UINT8", "1", "24", "8", "UE will receive IWKN26 capability from network's attach accept or\ntracking area accept.\nFor detailed definition, please refer to 3GPP 24.301 EPS network\nfeature support."], "4": ["Reserved", "UINT8", "2", "32", "16", ""]}, "Name": "EMM_Context_Info_V1"}}},
+ Public JSON end */
+// Checksum : [c2dd9078f7a9943bf441236aab002298]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_EMM_Failure_Event_Cause.h b/mcu/interface/service/icd/event/enas/ENAS_EMM_Failure_Event_Cause.h
new file mode 100644
index 0000000..c1973a6
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_EMM_Failure_Event_Cause.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : ENAS_EMM_Failure_Event_Cause
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7689
+// Version : V2.6
+
+#ifndef _ENAS_EMM_FAILURE_EVENT_CAUSE_H
+#define _ENAS_EMM_FAILURE_EVENT_CAUSE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_EMM_FAILURE_EVENT_CAUSE 0x7689
+
+#define ICD_ENAS_EMM_FAILURE_EVENT_V1 1
+
+#define ICD_ENAS_EMM_FAILURE_EVENT_CAUSE_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 cause; // For detailed enumeration of EMM Causes, please refer to 3GPP 24.301
+ kal_uint16 event; // For detailed enumeration of EMM Causes, please refer to 3GPP 24.301
+ // Attach Reject (0x0044)
+ // Tracking Area Update Reject (0x004b)
+ // (Extended) Service Reject (0x004d)
+ // Authentication Failure (0x005c)
+ // Security Mode Reject (0x005f)
+ kal_uint8 reserved_1[2];
+} icd_enas_emm_failure_event_cause_struct_v1;
+
+typedef icd_enas_emm_failure_event_cause_struct_v1 icd_enas_emm_failure_event_cause_struct;
+
+
+#endif /* _ENAS_EMM_FAILURE_EVENT_CAUSE_H */
+
+
+/* Public JSON start
+"ENAS_EMM_Failure_Event_Cause": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7689", "Name": "ENAS_EMM_Failure_Event_Cause", "Type": "EVENT", "Desc": "The event is generated when EMM procedure failured.\n"}, "table": {"ENAS_EMM_Failure_Event_Cause": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EMM_Failure_Event_Versions", "1", "8", "VAR", ""]}, "Name": "ENAS_EMM_Failure_Event_Cause"}, "EMM_Failure_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EMM_Failure_Event_V1", ""]}, "Name": "EMM_Failure_Event_Versions"}, "EMM_Failure_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Cause", "UINT16", "1", "8", "16", "For detailed enumeration of EMM Causes, please refer to 3GPP 24.301"], "2": ["Event", "UINT16", "1", "24", "16", "For detailed enumeration of EMM Causes, please refer to 3GPP 24.301\nAttach Reject (0x0044)\nTracking Area Update Reject (0x004b)\n(Extended) Service Reject (0x004d)\nAuthentication Failure (0x005c)\nSecurity Mode Reject (0x005f)"], "3": ["Reserved", "UINT8", "2", "40", "16", ""]}, "Name": "EMM_Failure_Event_V1"}}},
+ Public JSON end */
+// Checksum : [4ec1361e5f07bb191afb271a2f2916ee]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_EMM_Ota_Event.h b/mcu/interface/service/icd/event/enas/ENAS_EMM_Ota_Event.h
new file mode 100644
index 0000000..fa332fa
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_EMM_Ota_Event.h
@@ -0,0 +1,67 @@
+// ICD Header Format v3
+// Name : ENAS_EMM_OTA_Event
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7686
+// Version : V2.6
+
+#ifndef _ENAS_EMM_OTA_EVENT_H
+#define _ENAS_EMM_OTA_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_EMM_OTA_EVENT 0x7686
+
+#define ICD_ENAS_EMM_OTA_EVENT_V1 1
+
+#define ICD_EMM_OTA_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 event; // For detailed enumeration of EMM Causes, please refer to 3GPP 24.301
+ // Attach Request (0x0041)
+ // Attach Accept (0x0042)
+ // Attach Complete (0x0043)
+ // Attach Reject (0x0044)
+ // Detach Request (0x0045)
+ // Detach Accept (0x0046)
+ // Tracking Area Update Request (0x0048)
+ // Tracking Area Update Accept (0x0049)
+ // Tracking Area Update Complete (0x004a)
+ // Tracking Area Update Reject (0x004b)
+ // Extended Service Request (0x004c)
+ // (Extended) Service Reject (0x004d)
+ // Service Request (0xF000)
+ // GUTI Reallocation Command (0x0050)
+ // GUTI Reallocation Complete (0x0051)
+ // Authentication Request (0x0052)
+ // Authentication Response (0x0053)
+ // Authentication Reject (0x0054)
+ // Authentication Failure (0x005c)
+ // Identity Request (0x0055)
+ // Identity Response (0x0056)
+ // Security Mode Command (0x005d)
+ // Security Mode Complete (0x005e)
+ // Security Mode Reject (0x005f)
+ // EMM Status (0x0060)
+ // EMM Information (0x0061)
+ // DL NAS Transport (0x0062)
+ // UL NAS Transport (0x0063)
+ // CS Service Notification (0x0064)
+ // DL Generic NAS Transport (0x0068)
+ // UL Generic NAS Transport (0x0069)
+} icd_emm_ota_event_struct_v1;
+
+typedef icd_emm_ota_event_struct_v1 icd_emm_ota_event_struct;
+
+
+#endif /* _ENAS_EMM_OTA_EVENT_H */
+
+
+/* Public JSON start
+"ENAS_EMM_OTA_Event": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7686", "Name": "ENAS_EMM_OTA_Event", "Type": "EVENT", "Desc": "The event is generated when EMM sends/receives OTA message.\n"}, "table": {"EMM_Ota_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EMM_Ota_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EMM_Ota_Event"}, "EMM_Ota_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EMM_Ota_Event_V1", ""]}, "Name": "EMM_Ota_Event_Versions"}, "EMM_Ota_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Event", "UINT16", "1", "8", "16", "For detailed enumeration of EMM Causes, please refer to 3GPP 24.301\nAttach Request (0x0041)\nAttach Accept (0x0042)\nAttach Complete (0x0043)\nAttach Reject (0x0044)\nDetach Request (0x0045)\nDetach Accept (0x0046)\nTracking Area Update Request (0x0048)\nTracking Area Update Accept (0x0049)\nTracking Area Update Complete (0x004a)\nTracking Area Update Reject (0x004b)\nExtended Service Request (0x004c)\n(Extended) Service Reject (0x004d)\nService Request (0xF000)\nGUTI Reallocation Command (0x0050)\nGUTI Reallocation Complete (0x0051)\nAuthentication Request (0x0052)\nAuthentication Response (0x0053)\nAuthentication Reject (0x0054)\nAuthentication Failure (0x005c)\nIdentity Request (0x0055)\nIdentity Response (0x0056)\nSecurity Mode Command (0x005d)\nSecurity Mode Complete (0x005e)\nSecurity Mode Reject (0x005f)\nEMM Status (0x0060)\nEMM Information (0x0061)\nDL NAS Transport (0x0062)\nUL NAS Transport (0x0063)\nCS Service Notification (0x0064)\nDL Generic NAS Transport (0x0068)\nUL Generic NAS Transport (0x0069)"]}, "Name": "EMM_Ota_Event_V1"}}},
+ Public JSON end */
+// Checksum : [0ac5ec1ef0ec525a4c45b474bb51354e]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_EMM_State_Value.h b/mcu/interface/service/icd/event/enas/ENAS_EMM_State_Value.h
new file mode 100644
index 0000000..3da5f3c
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_EMM_State_Value.h
@@ -0,0 +1,60 @@
+// ICD Header Format v3
+// Name : ENAS_EMM_State_Value
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7685
+// Version : V2.6
+
+#ifndef _ENAS_EMM_STATE_VALUE_H
+#define _ENAS_EMM_STATE_VALUE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_EMM_STATE_VALUE 0x7685
+
+#define ICD_ENAS_EMM_INFO_V1 1
+
+#define ICD_EMM_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 emm_state_type; // EmmNull (1),
+ // EmmDeregistered (2),
+ // EmmRegisteredInitiated (3),
+ // EmmRegistered (4),
+ // EmmTrackingAreaUpdatingInitiated (5),
+ // EmmServiceRequestInitiated (6),
+ // EmmDeregisteredInitiated (7)
+ kal_uint8 emm_substate_type; // If EMM state is EmmDeregistered(2), EMM sub-state
+ // EmmDeregisteredNoImsi(1)
+ // EmmDeregisteredPlmnSearch(2)
+ // EmmDeregisteredAttachNeeded(3)
+ // EmmDeregisteredNoCellAvailable(4)
+ // EmmDeregisteredAttemptingToAttach(5)
+ // EmmDeregisteredNormalService(6)
+ // EmmDeregisteredLimitedService(7)
+ // If EMM state is EmmRegistered(4), EMM sub-state
+ // EmmRegisteredNormalService(1)
+ // EmmRegisteredUpdateNeeded(2)
+ // EmmRegisteredAttemptingToUpdate(3)
+ // EmmRegisteredNoCellAvailable(4)
+ // EmmRegisteredPlmnSearch(5)
+ // EmmRegisteredLimitedService(6)
+ // EmmRegisteredImsiDetachInitiated(7)
+ // EmmRegisteredAttemptingToUpdateMm(8)
+ // Others use invalid EMM Substate value (0)
+ kal_uint8 reserved;
+} icd_emm_info_struct_v1;
+
+typedef icd_emm_info_struct_v1 icd_emm_info_struct;
+
+
+#endif /* _ENAS_EMM_STATE_VALUE_H */
+
+
+/* Public JSON start
+"ENAS_EMM_State_Value": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7685", "Name": "ENAS_EMM_State_Value", "Type": "EVENT", "Desc": "The event is generated when ENAS state changes.\n"}, "table": {"EMM_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EMM_Info_Versions", "1", "8", "VAR", ""]}, "Name": "EMM_Info"}, "EMM_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EMM_Info_V1", ""]}, "Name": "EMM_Info_Versions"}, "EMM_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["EMM State Type", "UINT8", "1", "0", "8", "EmmNull (1),\nEmmDeregistered (2),\nEmmRegisteredInitiated (3),\nEmmRegistered (4),\nEmmTrackingAreaUpdatingInitiated (5),\nEmmServiceRequestInitiated (6),\nEmmDeregisteredInitiated (7)"], "1": ["EMM Substate Type", "UINT8", "1", "8", "8", "If EMM state is EmmDeregistered(2), EMM sub-state\nEmmDeregisteredNoImsi(1)\nEmmDeregisteredPlmnSearch(2)\nEmmDeregisteredAttachNeeded(3)\nEmmDeregisteredNoCellAvailable(4)\nEmmDeregisteredAttemptingToAttach(5)\nEmmDeregisteredNormalService(6)\nEmmDeregisteredLimitedService(7)\nIf EMM state is EmmRegistered(4), EMM sub-state\nEmmRegisteredNormalService(1)\nEmmRegisteredUpdateNeeded(2)\nEmmRegisteredAttemptingToUpdate(3)\nEmmRegisteredNoCellAvailable(4)\nEmmRegisteredPlmnSearch(5)\nEmmRegisteredLimitedService(6)\nEmmRegisteredImsiDetachInitiated(7)\nEmmRegisteredAttemptingToUpdateMm(8)\nOthers use invalid EMM Substate value (0)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "EMM_Info_V1"}}},
+ Public JSON end */
+// Checksum : [77e0483dbdea2469ab2511be7f6b6ed9]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_EMM_Timer_Expiry_Event.h b/mcu/interface/service/icd/event/enas/ENAS_EMM_Timer_Expiry_Event.h
new file mode 100644
index 0000000..7a05c88
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_EMM_Timer_Expiry_Event.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : ENAS_EMM_Timer_Expiry_Event
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7688
+// Version : V2.6
+
+#ifndef _ENAS_EMM_TIMER_EXPIRY_EVENT_H
+#define _ENAS_EMM_TIMER_EXPIRY_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_EMM_TIMER_EXPIRY_EVENT 0x7688
+
+#define ICD_ENAS_EMM_TIMER_EXPIRY_V1 1
+
+#define ICD_EMM_TIMER_EXPIRY_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 timer_id; // This event is triggered when timer started.
+ // T3324 (1)
+ // T3346 (2)
+ // T3402 (3)
+ // T3410 (4)
+ // T3411 (5)
+ // T3412 (6)
+ // T3416 (7)
+ // T3417 (8)
+ // T3417_EXT (9)
+ // T3418 (10)
+ // T3420 (11)
+ // T3421 (12)
+ // T3423 (13)
+ // T3430 (14)
+ // T3440 (15)
+ // T3442 (16)
+ // T_DETACH (17)
+ kal_uint8 reserved[2];
+} icd_emm_timer_expiry_struct_v1;
+
+typedef icd_emm_timer_expiry_struct_v1 icd_emm_timer_expiry_struct;
+
+
+#endif /* _ENAS_EMM_TIMER_EXPIRY_EVENT_H */
+
+
+/* Public JSON start
+"ENAS_EMM_Timer_Expiry_Event": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7688", "Name": "ENAS_EMM_Timer_Expiry_Event", "Type": "EVENT", "Desc": "The event is generated when EMM timer expired.\n"}, "table": {"EMM_Timer_Expiry": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EMM_Timer_Expiry_Versions", "1", "8", "VAR", ""]}, "Name": "EMM_Timer_Expiry"}, "EMM_Timer_Expiry_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EMM_Timer_Expiry_V1", ""]}, "Name": "EMM_Timer_Expiry_Versions"}, "EMM_Timer_Expiry_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer started.\nT3324 (1)\nT3346 (2)\nT3402 (3)\nT3410 (4)\nT3411 (5)\nT3412 (6)\nT3416 (7)\nT3417 (8)\nT3417_EXT (9)\nT3418 (10)\nT3420 (11)\nT3421 (12)\nT3423 (13)\nT3430 (14)\nT3440 (15)\nT3442 (16)\nT_DETACH (17)"], "1": ["Reserved", "UINT8", "2", "8", "16", ""]}, "Name": "EMM_Timer_Expiry_V1"}}},
+ Public JSON end */
+// Checksum : [b8f1052c20d7697cb38c2921b693e6f3]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_EMM_Timer_Start_Event.h b/mcu/interface/service/icd/event/enas/ENAS_EMM_Timer_Start_Event.h
new file mode 100644
index 0000000..21690fb
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_EMM_Timer_Start_Event.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : ENAS_EMM_Timer_Start_Event
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7687
+// Version : V2.6
+
+#ifndef _ENAS_EMM_TIMER_START_EVENT_H
+#define _ENAS_EMM_TIMER_START_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_EMM_TIMER_START_EVENT 0x7687
+
+#define ICD_ENAS_EMM_TIMER_START_EVENT_V1 1
+
+#define ICD_EMM_TIMER_START_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 timer_id; // This event is triggered when timer started.
+ // T3324 (1)
+ // T3346 (2)
+ // T3402 (3)
+ // T3410 (4)
+ // T3411 (5)
+ // T3412 (6)
+ // T3416 (7)
+ // T3417 (8)
+ // T3417_EXT (9)
+ // T3418 (10)
+ // T3420 (11)
+ // T3421 (12)
+ // T3423 (13)
+ // T3430 (14)
+ // T3440 (15)
+ // T3442 (16)
+ // T_DETACH (17)
+ kal_uint8 reserved[2];
+} icd_emm_timer_start_event_struct_v1;
+
+typedef icd_emm_timer_start_event_struct_v1 icd_emm_timer_start_event_struct;
+
+
+#endif /* _ENAS_EMM_TIMER_START_EVENT_H */
+
+
+/* Public JSON start
+"ENAS_EMM_Timer_Start_Event": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7687", "Name": "ENAS_EMM_Timer_Start_Event", "Type": "EVENT", "Desc": "The event is generated when EMM timer starts.\n"}, "table": {"EMM_Timer_Start_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "EMM_Timer_Start_Event_Versions", "1", "8", "VAR", ""]}, "Name": "EMM_Timer_Start_Event"}, "EMM_Timer_Start_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EMM_Timer_Start_Event_V1", ""]}, "Name": "EMM_Timer_Start_Event_Versions"}, "EMM_Timer_Start_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer started.\nT3324 (1)\nT3346 (2)\nT3402 (3)\nT3410 (4)\nT3411 (5)\nT3412 (6)\nT3416 (7)\nT3417 (8)\nT3417_EXT (9)\nT3418 (10)\nT3420 (11)\nT3421 (12)\nT3423 (13)\nT3430 (14)\nT3440 (15)\nT3442 (16)\nT_DETACH (17)"], "1": ["Reserved", "UINT8", "2", "8", "16", ""]}, "Name": "EMM_Timer_Start_Event_V1"}}},
+ Public JSON end */
+// Checksum : [9648453a173d2c8b3641680de4eedfa7]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_ESM_Context_Info.h b/mcu/interface/service/icd/event/enas/ENAS_ESM_Context_Info.h
new file mode 100644
index 0000000..19fd4f0
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_ESM_Context_Info.h
@@ -0,0 +1,86 @@
+// ICD Header Format v3
+// Name : ENAS_ESM_Context_Info
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7680
+// Version : V2.6
+
+#ifndef _ENAS_ESM_CONTEXT_INFO_H
+#define _ENAS_ESM_CONTEXT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_ESM_CONTEXT_INFO 0x7680
+
+#define ICD_ENAS_ESM_INFO_V4 4
+
+#define ICD_ESM_INFO_STRUCT_V4_MAX_SIZE 184
+
+typedef struct {
+ kal_uint8 ipv4_address_present; // Present if True
+ kal_uint8 ipv4_address[4]; // IPV4 address
+ kal_uint8 ipv6_interface_id_present; // Present if True
+ kal_uint8 ipv6_interface_id[8]; // IPV6 interface ID
+ kal_uint8 reserved[2];
+} esm_info_ip_address_struct_v1;
+
+typedef esm_info_ip_address_struct_v1 esm_info_ip_address_struct;
+
+typedef struct {
+ kal_uint8 apn_length; // Length of the ASN.1 encoded message. range[1, 100]
+ kal_uint8 apn[100]; // APN (Access Point Name) in ASC.I
+ kal_uint8 reserved[3];
+} esm_info_apn_struct_v1;
+
+typedef esm_info_apn_struct_v1 esm_info_apn_struct;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 eps_bearer_type; // default bearer (0),
+ // dedicated bearer(1)
+ kal_uint8 bearer_id; // ID of the bearer context
+ kal_uint8 linked_eps_bearer_id; // The ID of default bearer established along with the PDN
+ // connection
+ kal_uint8 connection_id; // The same as Bearer ID
+ kal_uint8 bearer_state; // null (0)
+ // activeWaiting (1)
+ // active (2)
+ // modifying (3)
+ kal_uint8 radio_bearer_id; // Radio bearer ID corresponding to EPS Bearer ID of the context
+ kal_uint8 qci; // QoS Class Identifier (Refer to definition of TS 23.203 for
+ // details)
+ kal_uint64 max_ul_bit_rate; // Maximum Uplink bit rate in kbps
+ kal_uint64 max_dl_bit_rate; // Maximum downlink bit rate in kbps
+ kal_uint64 ul_gbr; // Uplink guarantee bit rate in kbps
+ kal_uint64 dl_gbr; // Downlink guarantee bit rate in kbps
+ kal_uint64 apn_ambr_ul; // Uplink APN-AMBR in kbps (APN aggregated maximum bit rate)
+ // (APN-AMBR is described in TS 23.401)
+ kal_uint64 apn_ambr_dl; // Downlink APN-AMBR in kbps (APN aggregated maximum bit rate)
+ // (APN-AMBR is described in TS 23.401)
+ kal_uint8 service_date_flow_id; // Packet Flow Identifier IE defined in TS 24.301 8.3.3.6
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint8 pdu_session_id; // PDU Session ID for the Default EPS Bearer represented by
+ // Linked Bearer ID
+ kal_uint8 reserved;
+ esm_info_apn_struct apn; // Access Point Name of the Default EPS Bearer represented by
+ // Linked Bearer ID, according to TS 24.008 chapter 10.5.6.1
+ esm_info_ip_address_struct ip_address; // Address allocated by NW for the Default EPS Bearer
+ // represented by Linked Bearer ID
+ kal_uint8 reserved_1[4];
+} icd_esm_info_struct_v4;
+
+typedef icd_esm_info_struct_v4 icd_esm_info_struct;
+
+
+#endif /* _ENAS_ESM_CONTEXT_INFO_H */
+
+
+/* Public JSON start
+"ENAS_ESM_Context_Info": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7680", "Name": "ENAS_ESM_Context_Info", "Type": "EVENT", "Desc": "The event is generated when ENAS bearer state changes.\n"}, "table": {"ESM_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ESM_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ESM_Info"}, "ESM_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ESM_Info_V1", ""], "1": ["2", "ESM_Info_V2", "Extend Bit Rate size from 32-bit to 64-bit"], "2": ["3", "ESM_Info_V3", "Add APN AMBR UL/DL"], "3": ["4", "ESM_Info_V4", ""]}, "Name": "ESM_Info_Versions"}, "ESM_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ESM Context Type", "UINT8", "1", "0", "8", "default (0),\ndedicated (1)"], "1": ["Bearer ID", "UINT8", "1", "8", "8", "ID of the bearer context"], "2": ["Linked EPS Bearer ID", "UINT8", "1", "16", "8", "according to 3gpp spec"], "3": ["Connection ID", "UINT8", "1", "24", "8", "according to 3gpp spec"], "4": ["Bearer State", "UINT8", "1", "32", "8", "null (0)\nactiveWaiting (1)\nactive (2)\nmodifying (3)"], "5": ["Radio Bearer ID", "UINT8", "1", "40", "8", "Radio bearer ID corresponding to EPS Bearer ID of the context"], "6": ["QCI", "UINT8", "1", "48", "8", "QoS Class Identifier (TS 23.203)"], "7": ["Max UL Bit Rate", "UINT32", "1", "56", "32", "according to 3gpp spec"], "8": ["Max DL Bit Rate", "UINT32", "1", "88", "32", "according to 3gpp spec"], "9": ["UL GBR", "UINT32", "1", "120", "32", "according to 3gpp spec"], "10": ["DL GBR", "UINT32", "1", "152", "32", "according to 3gpp spec"], "11": ["Service Date Flow ID", "UINT8", "1", "184", "8", "according to 3gpp spec"], "12": ["App Type", "UINT8", "1", "192", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "13": ["Reserved", "UINT8", "2", "200", "16", ""]}, "Name": "ESM_Info_V1"}, "ESM_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ESM Context Type", "UINT8", "1", "0", "8", "default (0),\ndedicated (1)"], "1": ["Bearer ID", "UINT8", "1", "8", "8", "ID of the bearer context"], "2": ["Linked EPS Bearer ID", "UINT8", "1", "16", "8", "according to 3gpp spec"], "3": ["Connection ID", "UINT8", "1", "24", "8", "according to 3gpp spec"], "4": ["Bearer State", "UINT8", "1", "32", "8", "null (0)\nactiveWaiting (1)\nactive (2)\nmodifying (3)"], "5": ["Radio Bearer ID", "UINT8", "1", "40", "8", "Radio bearer ID corresponding to EPS Bearer ID of the context"], "6": ["QCI", "UINT8", "1", "48", "8", "QoS Class Identifier (TS 23.203)"], "7": ["Max UL Bit Rate", "UINT64", "1", "56", "64", "according to 3gpp spec"], "8": ["Max DL Bit Rate", "UINT64", "1", "120", "64", "according to 3gpp spec"], "9": ["UL GBR", "UINT64", "1", "184", "64", "according to 3gpp spec"], "10": ["DL GBR", "UINT64", "1", "248", "64", "according to 3gpp spec"], "11": ["Service Date Flow ID", "UINT8", "1", "312", "8", "according to 3gpp spec"], "12": ["App Type", "UINT8", "1", "320", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "13": ["Reserved", "UINT8", "6", "328", "48", ""]}, "Name": "ESM_Info_V2"}, "ESM_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ESM Context Type", "UINT8", "1", "0", "8", "default (0),\ndedicated (1)"], "1": ["Bearer ID", "UINT8", "1", "8", "8", "ID of the bearer context"], "2": ["Linked EPS Bearer ID", "UINT8", "1", "16", "8", "according to 3gpp spec"], "3": ["Connection ID", "UINT8", "1", "24", "8", "according to 3gpp spec"], "4": ["Bearer State", "UINT8", "1", "32", "8", "null (0)\nactiveWaiting (1)\nactive (2)\nmodifying (3)"], "5": ["Radio Bearer ID", "UINT8", "1", "40", "8", "Radio bearer ID corresponding to EPS Bearer ID of the context"], "6": ["QCI", "UINT8", "1", "48", "8", "QoS Class Identifier (TS 23.203)"], "7": ["Max UL Bit Rate", "UINT64", "1", "56", "64", "according to 3gpp spec"], "8": ["Max DL Bit Rate", "UINT64", "1", "120", "64", "according to 3gpp spec"], "9": ["UL GBR", "UINT64", "1", "184", "64", "according to 3gpp spec"], "10": ["DL GBR", "UINT64", "1", "248", "64", "according to 3gpp spec"], "11": ["APN AMBR UL", "UINT64", "1", "312", "64", "according to 3gpp spec"], "12": ["APN AMBR DL", "UINT64", "1", "376", "64", "according to 3gpp spec"], "13": ["Service Date Flow ID", "UINT8", "1", "440", "8", "according to 3gpp spec"], "14": ["App Type", "UINT8", "1", "448", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "15": ["Reserved", "UINT8", "6", "456", "48", ""]}, "Name": "ESM_Info_V3"}, "ESM_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["EPS Bearer Type", "UINT8", "1", "0", "8", "default bearer (0),\ndedicated bearer(1)"], "1": ["Bearer ID", "UINT8", "1", "8", "8", "ID of the bearer context"], "2": ["Linked EPS Bearer ID", "UINT8", "1", "16", "8", "The ID of default bearer established along with the PDN\nconnection"], "3": ["Connection ID", "UINT8", "1", "24", "8", "The same as Bearer ID"], "4": ["Bearer State", "UINT8", "1", "32", "8", "null (0)\nactiveWaiting (1)\nactive (2)\nmodifying (3)"], "5": ["Radio Bearer ID", "UINT8", "1", "40", "8", "Radio bearer ID corresponding to EPS Bearer ID of the context"], "6": ["QCI", "UINT8", "1", "48", "8", "QoS Class Identifier (Refer to definition of TS 23.203 for\ndetails)"], "7": ["Max UL Bit Rate", "UINT64", "1", "56", "64", "Maximum Uplink bit rate in kbps"], "8": ["Max DL Bit Rate", "UINT64", "1", "120", "64", "Maximum downlink bit rate in kbps"], "9": ["UL GBR", "UINT64", "1", "184", "64", "Uplink guarantee bit rate in kbps"], "10": ["DL GBR", "UINT64", "1", "248", "64", "Downlink guarantee bit rate in kbps"], "11": ["APN AMBR UL", "UINT64", "1", "312", "64", "Uplink APN-AMBR in kbps (APN aggregated maximum bit rate)\n(APN-AMBR is described in TS 23.401)"], "12": ["APN AMBR DL", "UINT64", "1", "376", "64", "Downlink APN-AMBR in kbps (APN aggregated maximum bit rate)\n(APN-AMBR is described in TS 23.401)"], "13": ["Service Date Flow ID", "UINT8", "1", "440", "8", "Packet Flow Identifier IE defined in TS 24.301 8.3.3.6"], "14": ["App Type", "UINT8", "1", "448", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "15": ["PDU Session ID", "UINT8", "1", "456", "8", "PDU Session ID for the Default EPS Bearer represented by\nLinked Bearer ID"], "16": ["Reserved", "UINT8", "1", "464", "8", ""], "17": ["APN", "ESM_Info_APN_Struct_V1", "1", "472", "832", "Access Point Name of the Default EPS Bearer represented by\nLinked Bearer ID, according to TS 24.008 chapter 10.5.6.1"], "18": ["IP Address", "ESM_Info_IP_Address_Struct_V1", "1", "1304", "128", "Address allocated by NW for the Default EPS Bearer\nrepresented by Linked Bearer ID"], "19": ["Reserved", "UINT8", "4", "1432", "32", ""]}, "Name": "ESM_Info_V4"}, "ESM_Info_APN_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["APN Length", "UINT8", "1", "0", "8", "Length of the ASN.1 encoded message. range[1, 100]"], "1": ["APN", "UINT8", "100", "8", "800", "APN (Access Point Name) in ASC.I"], "2": ["Reserved", "UINT8", "3", "808", "24", ""]}, "Name": "ESM_Info_APN_Struct_V1"}, "ESM_Info_IP_Address_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["IPV4 Address Present", "UINT8", "1", "0", "8", "Present if True"], "1": ["IPV4 Address", "UINT8", "4", "8", "32", "IPV4 address"], "2": ["IPV6 Interface ID Present", "UINT8", "1", "40", "8", "Present if True"], "3": ["IPV6 Interface ID", "UINT8", "8", "48", "64", "IPV6 interface ID"], "4": ["Reserved", "UINT8", "2", "112", "16", ""]}, "Name": "ESM_Info_IP_Address_Struct_V1"}}},
+ Public JSON end */
+// Checksum : [047599dd60988a75313f82e54da3c70b]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_ESM_Failure_Event_Cause.h b/mcu/interface/service/icd/event/enas/ENAS_ESM_Failure_Event_Cause.h
new file mode 100644
index 0000000..9dde831
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_ESM_Failure_Event_Cause.h
@@ -0,0 +1,52 @@
+// ICD Header Format v3
+// Name : ENAS_ESM_Failure_Event_Cause
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7684
+// Version : V2.6
+
+#ifndef _ENAS_ESM_FAILURE_EVENT_CAUSE_H
+#define _ENAS_ESM_FAILURE_EVENT_CAUSE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_ESM_FAILURE_EVENT_CAUSE 0x7684
+
+#define ICD_ENAS_ESM_FAILURE_EVENT_V2 2
+
+#define ICD_ESM_FAILURE_EVENT_CAUSE_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint16 cause; // For detailed enumeration of ESM Causes, please refer to 3GPP 24.301
+ kal_uint16 event; // For detailed enumeration of ESM event, please refer to 3GPP 24.301
+ // Activate Default EPS Bearer Context Reject (0x00c3)
+ // Activate Dedicated EPS Bearer Context Reject (0x00c7)
+ // Modify EPS Bearer Context Reject (0x00cb)
+ // Deactivate EPS Bearer Context Request (0x00cd)
+ // PDN Connectivity Reject (0x00d1)
+ // PDN Disconnect Reject (0x00d3)
+ // Bearer Resource Allocation Reject (0x00d5)
+ // Bearer Resource Modification Reject (0x00d7)
+ kal_uint8 bearer_id; // The EPS bearer identity and its use to identify a message flow are
+ // defined in 3GPP TS 24.007 [12].
+ kal_uint8 pti; // Procedure Transaction Identity which uniquely identifies an UE
+ // requested ESM Procedure.
+} icd_esm_failure_event_cause_struct_v2;
+
+typedef icd_esm_failure_event_cause_struct_v2 icd_esm_failure_event_cause_struct;
+
+
+#endif /* _ENAS_ESM_FAILURE_EVENT_CAUSE_H */
+
+
+/* Public JSON start
+"ENAS_ESM_Failure_Event_Cause": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7684", "Name": "ENAS_ESM_Failure_Event_Cause", "Type": "EVENT", "Desc": "The event is generated when ESM procedure failured.\n"}, "table": {"ESM_Failure_Event_Cause": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ESM_Failure_Event_Versions", "1", "8", "VAR", ""]}, "Name": "ESM_Failure_Event_Cause"}, "ESM_Failure_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ESM_Failure_Event_V1", ""], "1": ["2", "ESM_Failure_Event_V2", ""]}, "Name": "ESM_Failure_Event_Versions"}, "ESM_Failure_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["App Type", "UINT8", "1", "0", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "1": ["Cause", "UINT16", "1", "8", "16", "For detailed enumeration of ESM Causes, please refer to 3GPP 24.301"], "2": ["Reserved", "UINT8", "2", "24", "16", ""], "3": ["Event", "UINT16", "1", "40", "16", "For detailed enumeration of ESM event, please refer to 3GPP 24.301\nActivate Default EPS Bearer Context Reject (0x00c3)\nActivate Dedicated EPS Bearer Context Reject (0x00c7)\nModify EPS Bearer Context Reject (0x00cb)\nDeactivate EPS Bearer Context Request (0x00cd)\nPDN Connectivity Reject (0x00d1)\nPDN Disconnect Reject (0x00d3)\nBearer Resource Allocation Reject (0x00d5)\nBearer Resource Modification Reject (0x00d7)"]}, "Name": "ESM_Failure_Event_V1"}, "ESM_Failure_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["App Type", "UINT8", "1", "0", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "1": ["Cause", "UINT16", "1", "8", "16", "For detailed enumeration of ESM Causes, please refer to 3GPP 24.301"], "2": ["Event", "UINT16", "1", "24", "16", "For detailed enumeration of ESM event, please refer to 3GPP 24.301\nActivate Default EPS Bearer Context Reject (0x00c3)\nActivate Dedicated EPS Bearer Context Reject (0x00c7)\nModify EPS Bearer Context Reject (0x00cb)\nDeactivate EPS Bearer Context Request (0x00cd)\nPDN Connectivity Reject (0x00d1)\nPDN Disconnect Reject (0x00d3)\nBearer Resource Allocation Reject (0x00d5)\nBearer Resource Modification Reject (0x00d7)"], "3": ["Bearer ID", "UINT8", "1", "40", "8", "The EPS bearer identity and its use to identify a message flow are\ndefined in 3GPP TS 24.007 [12]."], "4": ["PTI", "UINT8", "1", "48", "8", "Procedure Transaction Identity which uniquely identifies an UE\nrequested ESM Procedure."]}, "Name": "ESM_Failure_Event_V2"}}},
+ Public JSON end */
+// Checksum : [5a8886fa5e3d483d3ba55942df262014]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_ESM_Ota_Event.h b/mcu/interface/service/icd/event/enas/ENAS_ESM_Ota_Event.h
new file mode 100644
index 0000000..726c9b4
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_ESM_Ota_Event.h
@@ -0,0 +1,68 @@
+// ICD Header Format v3
+// Name : ENAS_ESM_OTA_Event
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7681
+// Version : V2.6
+
+#ifndef _ENAS_ESM_OTA_EVENT_H
+#define _ENAS_ESM_OTA_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_ESM_OTA_EVENT 0x7681
+
+#define ICD_ENAS_ESM_OTA_EVENT_V2 2
+
+#define ICD_ESM_OTA_EVENT_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint16 event; // For detailed enumeration of ESM event, please refer to 3GPP 24.301
+ // Activate Default EPS Bearer Context Request (0x00c1)
+ // Activate Default EPS Bearer Context Accept (0x00c2)
+ // Activate Default EPS Bearer Context Reject (0x00c3)
+ // Activate Dedicated EPS Bearer Context Request (0x00c5)
+ // Activate Dedicated EPS Bearer Context Accept (0x00c6)
+ // Activate Dedicated EPS Bearer Context Reject (0x00c7)
+ // Modify EPS Bearer Context Request (0x00c9)
+ // Modify EPS Bearer Context Accept (0x00ca)
+ // Modify EPS Bearer Context Reject (0x00cb)
+ // Deactivate EPS Bearer Context Request (0x00cd)
+ // Deactivate EPS Bearer Context Accept (0x00ce)
+ // PDN Connectivity Request (0x00d0)
+ // PDN Connectivity Reject (0x00d1)
+ // PDN Disconnect Request (0x00d2)
+ // PDN Disconnect Reject (0x00d3)
+ // Bearer Resource Allocation Request (0x00d4)
+ // Bearer Resource Allocation Reject (0x00d5)
+ // Bearer Resource Modification Request (0x00d6)
+ // Bearer Resource Modification Reject (0x00d7)
+ // ESM Information Request (0x00d9)
+ // ESM Information Response (0x00da)
+ // ESM Notification (0x00db)
+ // ESM Status (0x00e8)
+ kal_uint8 bearer_id; // The EPS bearer identity and its use to identify a message flow are
+ // defined in 3GPP TS 24.007 [12].
+ kal_uint8 linked_eps_bearer_id; // according to 3gpp spec TS 24.007
+ kal_uint8 pti; // Procedure Transaction Identity which uniquely identifies an UE
+ // requested ESM Procedure.
+ kal_uint8 reserved;
+} icd_esm_ota_event_struct_v2;
+
+typedef icd_esm_ota_event_struct_v2 icd_esm_ota_event_struct;
+
+
+#endif /* _ENAS_ESM_OTA_EVENT_H */
+
+
+/* Public JSON start
+"ENAS_ESM_OTA_Event": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7681", "Name": "ENAS_ESM_OTA_Event", "Type": "EVENT", "Desc": "The event is generated when ESM sends/receives OTA message.\n"}, "table": {"ESM_Ota_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ESM_Ota_Event_Versions", "1", "8", "VAR", ""]}, "Name": "ESM_Ota_Event"}, "ESM_Ota_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ESM_Ota_Event_V1", ""], "1": ["2", "ESM_Ota_Event_V2", ""]}, "Name": "ESM_Ota_Event_Versions"}, "ESM_Ota_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["App Type", "UINT8", "1", "0", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "1": ["Event", "UINT16", "1", "8", "16", "For detailed enumeration of ESM event, please refer to 3GPP 24.301\nActivate Default EPS Bearer Context Request (0x00c1)\nActivate Default EPS Bearer Context Accept (0x00c2)\nActivate Default EPS Bearer Context Reject (0x00c3)\nActivate Dedicated EPS Bearer Context Request (0x00c5)\nActivate Dedicated EPS Bearer Context Accept (0x00c6)\nActivate Dedicated EPS Bearer Context Reject (0x00c7)\nModify EPS Bearer Context Request (0x00c9)\nModify EPS Bearer Context Accept (0x00ca)\nModify EPS Bearer Context Reject (0x00cb)\nDeactivate EPS Bearer Context Request (0x00cd)\nDeactivate EPS Bearer Context Accept (0x00ce)\nPDN Connectivity Request (0x00d0)\nPDN Connectivity Reject (0x00d1)\nPDN Disconnect Request (0x00d2)\nPDN Disconnect Reject (0x00d3)\nBearer Resource Allocation Request (0x00d4)\nBearer Resource Allocation Reject (0x00d5)\nBearer Resource Modification Request (0x00d6)\nBearer Resource Modification Reject (0x00d7)\nESM Information Request (0x00d9)\nESM Information Response (0x00da)\nESM Notification (0x00db)\nESM Status (0x00e8)"]}, "Name": "ESM_Ota_Event_V1"}, "ESM_Ota_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["App Type", "UINT8", "1", "0", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "1": ["Event", "UINT16", "1", "8", "16", "For detailed enumeration of ESM event, please refer to 3GPP 24.301\nActivate Default EPS Bearer Context Request (0x00c1)\nActivate Default EPS Bearer Context Accept (0x00c2)\nActivate Default EPS Bearer Context Reject (0x00c3)\nActivate Dedicated EPS Bearer Context Request (0x00c5)\nActivate Dedicated EPS Bearer Context Accept (0x00c6)\nActivate Dedicated EPS Bearer Context Reject (0x00c7)\nModify EPS Bearer Context Request (0x00c9)\nModify EPS Bearer Context Accept (0x00ca)\nModify EPS Bearer Context Reject (0x00cb)\nDeactivate EPS Bearer Context Request (0x00cd)\nDeactivate EPS Bearer Context Accept (0x00ce)\nPDN Connectivity Request (0x00d0)\nPDN Connectivity Reject (0x00d1)\nPDN Disconnect Request (0x00d2)\nPDN Disconnect Reject (0x00d3)\nBearer Resource Allocation Request (0x00d4)\nBearer Resource Allocation Reject (0x00d5)\nBearer Resource Modification Request (0x00d6)\nBearer Resource Modification Reject (0x00d7)\nESM Information Request (0x00d9)\nESM Information Response (0x00da)\nESM Notification (0x00db)\nESM Status (0x00e8)"], "2": ["Bearer ID", "UINT8", "1", "24", "8", "The EPS bearer identity and its use to identify a message flow are\ndefined in 3GPP TS 24.007 [12]."], "3": ["Linked EPS Bearer ID", "UINT8", "1", "32", "8", "according to 3gpp spec TS 24.007"], "4": ["PTI", "UINT8", "1", "40", "8", "Procedure Transaction Identity which uniquely identifies an UE\nrequested ESM Procedure."], "5": ["Reserved", "UINT8", "1", "48", "8", ""]}, "Name": "ESM_Ota_Event_V2"}}},
+ Public JSON end */
+// Checksum : [1e207fb2c1a4725f3f45230e291934ea]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_ESM_Timer_Expiry_Event.h b/mcu/interface/service/icd/event/enas/ENAS_ESM_Timer_Expiry_Event.h
new file mode 100644
index 0000000..d51c421
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_ESM_Timer_Expiry_Event.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : ENAS_ESM_Timer_Expiry_Event
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7683
+// Version : V2.6
+
+#ifndef _ENAS_ESM_TIMER_EXPIRY_EVENT_H
+#define _ENAS_ESM_TIMER_EXPIRY_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_ESM_TIMER_EXPIRY_EVENT 0x7683
+
+#define ICD_ENAS_ESM_TIMER_EXPIRY_V2 2
+
+#define ICD_ESM_TIMER_EXPIRY_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pti; // Procedure Transaction ID
+ kal_uint8 timer_id; // This event is triggered when timer expired.
+ // T3480(1)
+ // T3482(2)
+ // T3481(3)
+ // T3492(4)
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint8 count; // The count of timer expiry for the same procedure (identified
+ // by PTI)
+ kal_uint8 reserved[3];
+} icd_esm_timer_expiry_struct_v2;
+
+typedef icd_esm_timer_expiry_struct_v2 icd_esm_timer_expiry_struct;
+
+
+#endif /* _ENAS_ESM_TIMER_EXPIRY_EVENT_H */
+
+
+/* Public JSON start
+"ENAS_ESM_Timer_Expiry_Event": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7683", "Name": "ENAS_ESM_Timer_Expiry_Event", "Type": "EVENT", "Desc": "The event is generated when ESM timer expired.\n"}, "table": {"ESM_Timer_Expiry": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ESM_Timer_Expiry_Versions", "1", "8", "VAR", ""]}, "Name": "ESM_Timer_Expiry"}, "ESM_Timer_Expiry_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ESM_Timer_Expiry_V1", ""], "1": ["2", "ESM_Timer_Expiry_V2", ""]}, "Name": "ESM_Timer_Expiry_Versions"}, "ESM_Timer_Expiry_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer expired.\nT3480(1)\nT3482(2)\nT3481(3)\nT3492(4)"], "1": ["App Type", "UINT8", "1", "8", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "ESM_Timer_Expiry_V1"}, "ESM_Timer_Expiry_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PTI", "UINT8", "1", "0", "8", "Procedure Transaction ID"], "1": ["Timer ID", "UINT8", "1", "8", "8", "This event is triggered when timer expired.\nT3480(1)\nT3482(2)\nT3481(3)\nT3492(4)"], "2": ["App Type", "UINT8", "1", "16", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "3": ["Count", "UINT8", "1", "24", "8", "The count of timer expiry for the same procedure (identified\nby PTI)"], "4": ["Reserved", "UINT8", "3", "32", "24", ""]}, "Name": "ESM_Timer_Expiry_V2"}}},
+ Public JSON end */
+// Checksum : [17aa404a85fc18f65173651b2c3f69ff]
diff --git a/mcu/interface/service/icd/event/enas/ENAS_ESM_Timer_Start_Event.h b/mcu/interface/service/icd/event/enas/ENAS_ESM_Timer_Start_Event.h
new file mode 100644
index 0000000..757cad7
--- /dev/null
+++ b/mcu/interface/service/icd/event/enas/ENAS_ESM_Timer_Start_Event.h
@@ -0,0 +1,52 @@
+// ICD Header Format v3
+// Name : ENAS_ESM_Timer_Start_Event
+// Category : LTE
+// Layer : ENAS
+// Type : EVENT
+// Code : 0x7682
+// Version : V2.6
+
+#ifndef _ENAS_ESM_TIMER_START_EVENT_H
+#define _ENAS_ESM_TIMER_START_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ENAS_ESM_TIMER_START_EVENT 0x7682
+
+#define ICD_ENAS_ESM_TIMER_START_V2 2
+
+#define ICD_ESM_TIMER_START_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pti; // Procedure Transaction Identity which uniquely identifies an
+ // UE requested ESM Procedure.
+ kal_uint8 timer_id; // This event is triggered when timer started.
+ // T3480(1)
+ // T3482(2)
+ // T3481(3)
+ // T3492(4)
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint8 bearer_id; // The EPS bearer identity IE or Linked EPS bearer identity IE
+ // used in:
+ // BEARER RESOURCE ALLOCATION REQUEST (Linked EBI , use timer T3480)
+ // BEARER RESOURCE MODIFICATION REQUEST (EBI, use timer T3481)
+ // PDN CONNECTIVITY REQUEST (EBI, use timer T3482)
+ // PDN DISCONNECT REQUEST (Linked EBI, use timer T3492)
+ kal_uint8 reserved[3];
+} icd_esm_timer_start_struct_v2;
+
+typedef icd_esm_timer_start_struct_v2 icd_esm_timer_start_struct;
+
+
+#endif /* _ENAS_ESM_TIMER_START_EVENT_H */
+
+
+/* Public JSON start
+"ENAS_ESM_Timer_Start_Event": {"info": {"Category": "LTE", "Layer": "NAS", "Code": "0x7682", "Name": "ENAS_ESM_Timer_Start_Event", "Type": "EVENT", "Desc": "The event is generated when ESM timer expired.\n"}, "table": {"ESM_Timer_Start": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ESM_Timer_Start_Versions", "1", "8", "VAR", ""]}, "Name": "ESM_Timer_Start"}, "ESM_Timer_Start_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ESM_Timer_Start_V1", ""], "1": ["2", "ESM_Timer_Start_V2", ""]}, "Name": "ESM_Timer_Start_Versions"}, "ESM_Timer_Start_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer started.\nT3480(1)\nT3482(2)\nT3481(3)\nT3492(4)"], "1": ["App Type", "UINT8", "1", "8", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "ESM_Timer_Start_V1"}, "ESM_Timer_Start_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PTI", "UINT8", "1", "0", "8", "Procedure Transaction Identity which uniquely identifies an\nUE requested ESM Procedure."], "1": ["Timer ID", "UINT8", "1", "8", "8", "This event is triggered when timer started.\nT3480(1)\nT3482(2)\nT3481(3)\nT3492(4)"], "2": ["App Type", "UINT8", "1", "16", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "3": ["Bearer ID", "UINT8", "1", "24", "8", "The EPS bearer identity IE or Linked EPS bearer identity IE\nused in:\nBEARER RESOURCE ALLOCATION REQUEST (Linked EBI , use timer T3480)\nBEARER RESOURCE MODIFICATION REQUEST (EBI, use timer T3481)\nPDN CONNECTIVITY REQUEST (EBI, use timer T3482)\nPDN DISCONNECT REQUEST (Linked EBI, use timer T3492)"], "4": ["Reserved", "UINT8", "3", "32", "24", ""]}, "Name": "ESM_Timer_Start_V2"}}},
+ Public JSON end */
+// Checksum : [2abb68c017f341c0fd0ae93bda2b013a]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_Cell_Black_List_Event.h b/mcu/interface/service/icd/event/errc/ERRC_Cell_Black_List_Event.h
new file mode 100644
index 0000000..065332b
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_Cell_Black_List_Event.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : ERRC_Cell_Black_List_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7605
+// Version : V2.6
+
+#ifndef _ERRC_CELL_BLACK_LIST_EVENT_H
+#define _ERRC_CELL_BLACK_LIST_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_CELL_BLACK_LIST_EVENT 0x7605
+
+#define ICD_ERRC_ERRC_CELL_BLACK_LIST_INFO_V1 1
+
+#define ICD_ERRC_CELL_BLACK_LIST_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 physical_cell_id; // Physical Cell Identity of target cell
+ kal_uint32 dl_freq; // Downlink arfcn of target cell
+} icd_errc_cell_black_list_info_struct_v1;
+
+typedef icd_errc_cell_black_list_info_struct_v1 icd_errc_cell_black_list_info_struct;
+
+
+#endif /* _ERRC_CELL_BLACK_LIST_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_Cell_Black_List_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7605", "Name": "ERRC_Cell_Black_List_Event", "Type": "EVENT", "Desc": "The event is generated when UE black lists a cell.\n"}, "table": {"ERRC_Cell_Black_List_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_Cell_Black_List_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_Cell_Black_List_Info"}, "ERRC_Cell_Black_List_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_Cell_Black_List_Info_V1", ""]}, "Name": "ERRC_Cell_Black_List_Info_Versions"}, "ERRC_Cell_Black_List_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical Cell Identity of target cell"], "2": ["DL Freq", "UINT32", "1", "24", "32", "Downlink arfcn of target cell"]}, "Name": "ERRC_Cell_Black_List_Info_V1"}}},
+ Public JSON end */
+// Checksum : [a4e17c4316f5c7c0cff0aa50568ae540]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_EUTRA_Capability_Info_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_EUTRA_Capability_Info_EVENT.h
new file mode 100644
index 0000000..20d7097
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_EUTRA_Capability_Info_EVENT.h
@@ -0,0 +1,41 @@
+// ICD Header Format v3
+// Name : ERRC_EUTRA_Capability_Info_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7614
+// Version : V2.6
+
+#ifndef _ERRC_EUTRA_CAPABILITY_INFO_EVENT_H
+#define _ERRC_EUTRA_CAPABILITY_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_EUTRA_CAPABILITY_INFO_EVENT 0x7614
+
+#define ICD_ERRC_ERRC_EUTRA_CAP_INFO_V1 1
+
+#define ICD_ERRC_EUTRA_CAPABILITY_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 is_laa_support; // Indicates LAA support status.
+ // 0: Not Support
+ // 1: Support
+ kal_uint8 is_lte_u_support; // Indicates LTE-U support status.
+ // 0: Not Support
+ // 1: Support
+ kal_uint8 reserved;
+} icd_errc_eutra_capability_info_struct_v1;
+
+typedef icd_errc_eutra_capability_info_struct_v1 icd_errc_eutra_capability_info_struct;
+
+
+#endif /* _ERRC_EUTRA_CAPABILITY_INFO_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_EUTRA_Capability_Info_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7614", "Name": "ERRC_EUTRA_Capability_Info_Event", "Type": "EVENT", "Desc": "The event is generated when UE is building EUTRA capability.\n"}, "table": {"ERRC_EUTRA_Capability_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_Eutra_Cap_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_EUTRA_Capability_Info"}, "ERRC_Eutra_Cap_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_Eutra_Cap_Info_V1", ""]}, "Name": "ERRC_Eutra_Cap_Info_Versions"}, "ERRC_Eutra_Cap_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Is LAA Support", "UINT8", "1", "0", "8", "Indicates LAA support status.\n0: Not Support\n1: Support"], "1": ["Is LTE U Support", "UINT8", "1", "8", "8", "Indicates LTE-U support status.\n0: Not Support\n1: Support"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "ERRC_Eutra_Cap_Info_V1"}}},
+ Public JSON end */
+// Checksum : [468b9adb190a5a79f4e07668606d8df0]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Cell_Change_Order_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Cell_Change_Order_EVENT.h
new file mode 100644
index 0000000..f01c973
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Cell_Change_Order_EVENT.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : ERRC_InterRAT_Cell_Change_Order_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x760D
+// Version : V2.6
+
+#ifndef _ERRC_INTERRAT_CELL_CHANGE_ORDER_EVENT_H
+#define _ERRC_INTERRAT_CELL_CHANGE_ORDER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTERRAT_CELL_CHANGE_ORDER_EVENT 0x760D
+
+#define ICD_ERRC_ERRC_INTERRAT_CELL_CHANGE_ORDER_INFO_V1 1
+
+#define ICD_ERRC_INTERRAT_CELL_CHANGE_ORDER_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null,
+ // 1:Protocol_error,
+ // 2:Configuration_error,
+ // 3:Physical_channel_error,
+ // 4:Invalid_frequency,
+ // 5:Invalid_messaged,
+ // 6:Other
+ kal_uint8 reserved;
+} icd_errc_interrat_cell_change_order_info_struct_v1;
+
+typedef icd_errc_interrat_cell_change_order_info_struct_v1 icd_errc_interrat_cell_change_order_info_struct;
+
+
+#endif /* _ERRC_INTERRAT_CELL_CHANGE_ORDER_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_InterRAT_Cell_Change_Order_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x760D", "Name": "ERRC_InterRAT_Cell_Change_Order_Event", "Type": "EVENT", "Desc": "The event is generated when inter-RAT cell change order procedure status changes.\n"}, "table": {"ERRC_InterRAT_Cell_Change_Order_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_InterRAT_Cell_Change_Order_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_InterRAT_Cell_Change_Order_Info"}, "ERRC_InterRAT_Cell_Change_Order_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_InterRAT_Cell_Change_Order_Info_V1", ""]}, "Name": "ERRC_InterRAT_Cell_Change_Order_Info_Versions"}, "ERRC_InterRAT_Cell_Change_Order_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "1": ["Failure Cause", "UINT8", "1", "8", "8", "Indicates procedure failure cause\n0:Null,\n1:Protocol_error,\n2:Configuration_error,\n3:Physical_channel_error,\n4:Invalid_frequency,\n5:Invalid_messaged,\n6:Other"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "ERRC_InterRAT_Cell_Change_Order_Info_V1"}}},
+ Public JSON end */
+// Checksum : [cb6e7903d0d2d17a35d85a0146ef9096]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Handover_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Handover_EVENT.h
new file mode 100644
index 0000000..7763e2d
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Handover_EVENT.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : ERRC_InterRAT_Handover_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x760A
+// Version : V2.6
+
+#ifndef _ERRC_INTERRAT_HANDOVER_EVENT_H
+#define _ERRC_INTERRAT_HANDOVER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTERRAT_HANDOVER_EVENT 0x760A
+
+#define ICD_ERRC_ERRC_INTERRAT_HANDOVER_INFO_V1 1
+
+#define ICD_ERRC_INTERRAT_HANDOVER_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rat; // Radio access technology
+ // 0:GSM
+ // 1:WCDMA
+ // 2:TD-SCDMA
+ // 3:NR
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null,
+ // 1:Protocol_error,
+ // 2:Configuration_error,
+ // 3:Physical_channel_error,
+ // 4:Invalid_frequency,
+ // 5:Invalid_messaged,
+ // 6:Other
+} icd_errc_interrat_handover_info_struct_v1;
+
+typedef icd_errc_interrat_handover_info_struct_v1 icd_errc_interrat_handover_info_struct;
+
+
+#endif /* _ERRC_INTERRAT_HANDOVER_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_InterRAT_Handover_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x760A", "Name": "ERRC_InterRAT_Handover_Event", "Type": "EVENT", "Desc": "The event is generated when inter-RAT handover procedure status changes.\n"}, "table": {"ERRC_InterRAT_Handover_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_InterRAT_Handover_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_InterRAT_Handover_Info"}, "ERRC_InterRAT_Handover_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_InterRAT_Handover_Info_V1", ""]}, "Name": "ERRC_InterRAT_Handover_Info_Versions"}, "ERRC_InterRAT_Handover_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:GSM\n1:WCDMA\n2:TD-SCDMA\n3:NR"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:Null,\n1:Protocol_error,\n2:Configuration_error,\n3:Physical_channel_error,\n4:Invalid_frequency,\n5:Invalid_messaged,\n6:Other"]}, "Name": "ERRC_InterRAT_Handover_Info_V1"}}},
+ Public JSON end */
+// Checksum : [dc1af9a0276d4fc0bbf8b01cce76a71b]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Redirection_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Redirection_EVENT.h
new file mode 100644
index 0000000..fc5c270
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Redirection_EVENT.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : ERRC_InterRAT_Redirection_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x760C
+// Version : V2.6
+
+#ifndef _ERRC_INTERRAT_REDIRECTION_EVENT_H
+#define _ERRC_INTERRAT_REDIRECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTERRAT_REDIRECTION_EVENT 0x760C
+
+#define ICD_ERRC_ERRC_INTERRAT_REDIRECTION_INFO_V1 1
+
+#define ICD_ERRC_INTERRAT_REDIRECTION_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rat; // Radio access technology
+ // 0:GSM
+ // 1:WCDMA
+ // 2:TD-SCDMA
+ // 3:NR
+ // 4:C2K
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null,
+ // 1:Cell barred,
+ // 2:Freq barred,
+ // 3:PLMN mismatched,
+ // 4:LA not allowed,
+ // 5:TA not allowed,
+ // 6:CSG not allowed,
+ // 7:Others
+} icd_errc_interrat_redirection_info_struct_v1;
+
+typedef icd_errc_interrat_redirection_info_struct_v1 icd_errc_interrat_redirection_info_struct;
+
+
+#endif /* _ERRC_INTERRAT_REDIRECTION_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_InterRAT_Redirection_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x760C", "Name": "ERRC_InterRAT_Redirection_Event", "Type": "EVENT", "Desc": "The event is generated when inter-RAT redirection procedure status changes.\n"}, "table": {"ERRC_InterRAT_Redirection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_InterRAT_Redirection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_InterRAT_Redirection_Info"}, "ERRC_InterRAT_Redirection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_InterRAT_Redirection_Info_V1", ""]}, "Name": "ERRC_InterRAT_Redirection_Info_Versions"}, "ERRC_InterRAT_Redirection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:GSM\n1:WCDMA\n2:TD-SCDMA\n3:NR\n4:C2K"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:Null,\n1:Cell barred,\n2:Freq barred,\n3:PLMN mismatched,\n4:LA not allowed,\n5:TA not allowed,\n6:CSG not allowed,\n7:Others"]}, "Name": "ERRC_InterRAT_Redirection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [7bdf87056053fedcd21e3c4be97002f8]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Reselection_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Reselection_EVENT.h
new file mode 100644
index 0000000..f467248
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_InterRAT_Reselection_EVENT.h
@@ -0,0 +1,56 @@
+// ICD Header Format v3
+// Name : ERRC_InterRAT_Reselection_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x760B
+// Version : V2.6
+
+#ifndef _ERRC_INTERRAT_RESELECTION_EVENT_H
+#define _ERRC_INTERRAT_RESELECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTERRAT_RESELECTION_EVENT 0x760B
+
+#define ICD_ERRC_ERRC_INTERRAT_RESELECTION_INFO_V1 1
+
+#define ICD_ERRC_INTERRAT_RESELECTION_INFO_STRUCT_V1_MAX_SIZE 10
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rat; // Radio access technology
+ // 0:GSM
+ // 1:WCDMA
+ // 2:TD-SCDMA
+ // 3:NR
+ // 4:C2K
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null,
+ // 1:Cell barred,
+ // 2:Freq barred,
+ // 3:PLMN mismatched,
+ // 4:LA not allowed,
+ // 5:TA not allowed,
+ // 6:CSG not barred,
+ // 7:Others
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint16 frequency; // DL ARFCN
+ kal_uint16 cell_id; // Physical cell identitfy scrambling code(WCDMA) or BSIC ID (GSM)
+} icd_errc_interrat_reselection_info_struct_v1;
+
+typedef icd_errc_interrat_reselection_info_struct_v1 icd_errc_interrat_reselection_info_struct;
+
+
+#endif /* _ERRC_INTERRAT_RESELECTION_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_InterRAT_Reselection_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x760B", "Name": "ERRC_InterRAT_Reselection_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT reselection procedure status changes.\n"}, "table": {"ERRC_InterRAT_Reselection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_InterRAT_Reselection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_InterRAT_Reselection_Info"}, "ERRC_InterRAT_Reselection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_InterRAT_Reselection_Info_V1", ""]}, "Name": "ERRC_InterRAT_Reselection_Info_Versions"}, "ERRC_InterRAT_Reselection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:GSM\n1:WCDMA\n2:TD-SCDMA\n3:NR\n4:C2K"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:Null,\n1:Cell barred,\n2:Freq barred,\n3:PLMN mismatched,\n4:LA not allowed,\n5:TA not allowed,\n6:CSG not barred,\n7:Others"], "3": ["Freq Band Indicator", "UINT16", "1", "24", "16", "Frequency band indicator"], "4": ["Frequency", "UINT16", "1", "40", "16", "DL ARFCN"], "5": ["Cell ID", "UINT16", "1", "56", "16", "Physical cell identitfy scrambling code(WCDMA) or BSIC ID (GSM)"]}, "Name": "ERRC_InterRAT_Reselection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [b4903bdfa7329c75566fbe870e1bafc8]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Handover_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Handover_EVENT.h
new file mode 100644
index 0000000..dc466f9
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Handover_EVENT.h
@@ -0,0 +1,69 @@
+// ICD Header Format v3
+// Name : ERRC_IntraRAT_Handover_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7607
+// Version : V2.6
+
+#ifndef _ERRC_INTRARAT_HANDOVER_EVENT_H
+#define _ERRC_INTRARAT_HANDOVER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTRARAT_HANDOVER_EVENT 0x7607
+
+#define ICD_ERRC_ERRC_INTRARAT_HANDOVER_INFO_V1 1
+
+#define ICD_ERRC_INTRARAT_HANDOVER_INFO_STRUCT_V1_MAX_SIZE 24
+
+typedef struct {
+ kal_uint32 earfcn; // Earfcn
+ kal_uint32 cell_id; // Cell identity
+} source_cell_info_v1;
+
+typedef source_cell_info_v1 source_cell_info;
+
+typedef struct {
+ kal_uint32 earfcn; // Earfcn
+ kal_int32 rsrp; // Target cell RSRP in dBm
+ kal_uint16 physical_cell_id; // Physical cell ID
+ kal_uint16 reserved;
+} target_cell_info_v1;
+
+typedef target_cell_info_v1 target_cell_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 type; // Bitmask of handover type (with bit0 being the least significant bit)
+ // Bit0:Intra Cell handover
+ // Bit1:Intra Frequency handover
+ // Bit2:Inter Frequency handover
+ // Bit3:Inter Band handover
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null, -- Success case
+ // 1:Other, -- Other reason instead of reason below
+ // 2:InvalidCfg, -- Validation failure
+ // 3:PhysicalFailure, -- Physical layer failure on the target cell
+ // 4:Rach, -- T304 expiry due to RACH failure on target cell
+ // 5:RachMeasConfigIncluded -- T304 expiry due to RACH failure on target cell when MeasCon
+ // fig IE was included
+ source_cell_info source_cell; // Source cell info
+ target_cell_info target_cell; // Target cell info
+} icd_errc_intrarat_handover_info_struct_v1;
+
+typedef icd_errc_intrarat_handover_info_struct_v1 icd_errc_intrarat_handover_info_struct;
+
+
+#endif /* _ERRC_INTRARAT_HANDOVER_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_IntraRAT_Handover_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7607", "Name": "ERRC_IntraRAT_Handover_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT handover procedure status changes.\n"}, "table": {"ERRC_IntraRAT_Handover_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_IntraRAT_Handover_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IntraRAT_Handover_Info"}, "ERRC_IntraRAT_Handover_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IntraRAT_Handover_Info_V1", ""]}, "Name": "ERRC_IntraRAT_Handover_Info_Versions"}, "ERRC_IntraRAT_Handover_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Type", "UINT8", "1", "0", "8", "Bitmask of handover type (with bit0 being the least significant bit)\nBit0:Intra Cell handover\nBit1:Intra Frequency handover\nBit2:Inter Frequency handover\nBit3:Inter Band handover"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:Null, -- Success case\n1:Other, -- Other reason instead of reason below\n2:InvalidCfg, -- Validation failure\n3:PhysicalFailure, -- Physical layer failure on the target cell\n4:Rach, -- T304 expiry due to RACH failure on target cell\n5:RachMeasConfigIncluded -- T304 expiry due to RACH failure on target cell when MeasCon\nfig IE was included"], "3": ["Source Cell", "Source_Cell_Info_V1", "1", "24", "64", "Source cell info"], "4": ["Target Cell", "Target_Cell_Info_V1", "1", "88", "96", "Target cell info"]}, "Name": "ERRC_IntraRAT_Handover_Info_V1"}, "Target_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "Earfcn"], "1": ["RSRP", "INT32", "1", "32", "32", "Target cell RSRP in dBm"], "2": ["Physical Cell ID", "UINT16", "1", "64", "16", "Physical cell ID"], "3": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "Target_Cell_Info_V1"}, "Source_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "Earfcn"], "1": ["Cell ID", "UINT32", "1", "32", "32", "Cell identity"]}, "Name": "Source_Cell_Info_V1"}}},
+ Public JSON end */
+// Checksum : [bc37f2622a29eab14ef2495d7ba5354d]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Redirection_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Redirection_EVENT.h
new file mode 100644
index 0000000..b99f68b
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Redirection_EVENT.h
@@ -0,0 +1,44 @@
+// ICD Header Format v3
+// Name : ERRC_IntraRAT_Redirection_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7609
+// Version : V2.6
+
+#ifndef _ERRC_INTRARAT_REDIRECTION_EVENT_H
+#define _ERRC_INTRARAT_REDIRECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTRARAT_REDIRECTION_EVENT 0x7609
+
+#define ICD_ERRC_ERRC_INTRARAT_REDIRECTION_INFO_V1 1
+
+#define ICD_ERRC_INTRARAT_REDIRECTION_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null,
+ // 1:Failed,
+ // 2:Rejected by upper layer,
+ // 3:Others,
+ kal_uint8 reserved;
+} icd_errc_intrarat_redirection_info_struct_v1;
+
+typedef icd_errc_intrarat_redirection_info_struct_v1 icd_errc_intrarat_redirection_info_struct;
+
+
+#endif /* _ERRC_INTRARAT_REDIRECTION_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_IntraRAT_Redirection_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7609", "Name": "ERRC_IntraRAT_Redirection_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT redirection procedure status changes.\n"}, "table": {"ERRC_IntraRAT_Redirection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_IntraRAT_Redirection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IntraRAT_Redirection_Info"}, "ERRC_IntraRAT_Redirection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IntraRAT_Redirection_Info_V1", ""]}, "Name": "ERRC_IntraRAT_Redirection_Info_Versions"}, "ERRC_IntraRAT_Redirection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "1": ["Failure Cause", "UINT8", "1", "8", "8", "Indicates procedure failure cause\n0:Null,\n1:Failed,\n2:Rejected by upper layer,\n3:Others,"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "ERRC_IntraRAT_Redirection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [3c706a835b10d672f5df5006af212a55]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Reselection_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Reselection_EVENT.h
new file mode 100644
index 0000000..5b9aba5
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_IntraRAT_Reselection_EVENT.h
@@ -0,0 +1,54 @@
+// ICD Header Format v3
+// Name : ERRC_IntraRAT_Reselection_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7608
+// Version : V2.6
+
+#ifndef _ERRC_INTRARAT_RESELECTION_EVENT_H
+#define _ERRC_INTRARAT_RESELECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_INTRARAT_RESELECTION_EVENT 0x7608
+
+#define ICD_ERRC_ERRC_INTRARAT_RESELECTION_INFO_V1 1
+
+#define ICD_ERRC_INTRARAT_RESELECTION_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Fail
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:Null,
+ // 1:S-Failure,
+ // 2:Sib-Read-Failure,
+ // 3:Weak-Downlink-Indicator,
+ // 4:Cell-Barred,
+ // 5:Non-Valid-Plmn,
+ // 6:Forbidden-Tracking-Area,
+ // 7:Aborted,
+ // 8:Forbidden-CSG-Id,
+ // 9:IRAT-Reselection-Failure,
+ // 10:Frequency-Barred
+ kal_uint8 reserved;
+ kal_uint32 dl_arfcn; // Target Downlink Earfcn
+ kal_uint16 physical_cell_id; // Target Physical cell Identity
+ kal_uint16 reserved_1;
+} icd_errc_intrarat_reselection_info_struct_v1;
+
+typedef icd_errc_intrarat_reselection_info_struct_v1 icd_errc_intrarat_reselection_info_struct;
+
+
+#endif /* _ERRC_INTRARAT_RESELECTION_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_IntraRAT_Reselection_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7608", "Name": "ERRC_IntraRAT_Reselection_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT reselection procedure status changes.\n"}, "table": {"ERRC_IntraRAT_Reselection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_IntraRAT_Reselection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_IntraRAT_Reselection_Info"}, "ERRC_IntraRAT_Reselection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_IntraRAT_Reselection_Info_V1", ""]}, "Name": "ERRC_IntraRAT_Reselection_Info_Versions"}, "ERRC_IntraRAT_Reselection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Fail"], "1": ["Failure Cause", "UINT8", "1", "8", "8", "Indicates procedure failure cause\n0:Null,\n1:S-Failure,\n2:Sib-Read-Failure,\n3:Weak-Downlink-Indicator,\n4:Cell-Barred,\n5:Non-Valid-Plmn,\n6:Forbidden-Tracking-Area,\n7:Aborted,\n8:Forbidden-CSG-Id,\n9:IRAT-Reselection-Failure,\n10:Frequency-Barred"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["DL Arfcn", "UINT32", "1", "24", "32", "Target Downlink Earfcn"], "4": ["Physical Cell ID", "UINT16", "1", "56", "16", "Target Physical cell Identity"], "5": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "ERRC_IntraRAT_Reselection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [f20b0861aafcbf51a1483fc370097319]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_MEAS_Config_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_MEAS_Config_EVENT.h
new file mode 100644
index 0000000..3917b81
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_MEAS_Config_EVENT.h
@@ -0,0 +1,121 @@
+// ICD Header Format v3
+// Name : ERRC_MEAS_Config_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7616
+// Version : V2.6
+
+#ifndef _ERRC_MEAS_CONFIG_EVENT_H
+#define _ERRC_MEAS_CONFIG_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_MEAS_CONFIG_EVENT 0x7616
+
+#define ICD_ERRC_ERRC_MEAS_CONFIG_INFO_V2 2
+
+#define MAX_ICD_ERRC_MEAS_CONFIG_INFO_STRUCT_V2_NUM_OF_MEAS_ID 64
+
+#define ICD_ERRC_MEAS_CONFIG_INFO_STRUCT_V2_MAX_SIZE 1796
+
+typedef struct {
+ kal_uint8 th_meas_rat; // Radio access technology of Threshold
+ // 0: GERAN
+ // 1: UTRA
+ // 2: CDMA
+ // 3: EUTRA
+ // 4: NR
+ kal_uint8 th_meas_qty; // Indicates meas quantity when Th Meas
+ // RAT supports more than one quantity.
+ // 0: INVALID
+ // 1: RSRP (EUTRA), RSCP (UTRA),
+ // RSSI(GERAN) or RSRP (NR)
+ // 2: RSRQ (EUTRA), EcN0 (UTRA),
+ // or RSRQ (NR)
+ // 3: RS-SINR (NR)
+ kal_int16 th_value; // Threshold value of report config
+} errc_meas_config_thres_info_v1;
+
+typedef errc_meas_config_thres_info_v1 errc_meas_config_thres_info;
+
+typedef struct {
+ kal_uint8 meas_id; // Measurement ID
+ kal_uint8 trigger_type; // periodical (1)
+ // event (2)
+ kal_uint8 periodic_purpose; // Purpose for this periodic report. Valid
+ // only when Trigger Type is periodical.
+ // 0: reportStrongestCells
+ // 1: reportCGI
+ kal_uint8 event_type; // Report Config Type. Valid only when
+ // Trigger Type is event.
+ // A1 (1)
+ // A2 (2)
+ // A3 (3)
+ // A4 (4)
+ // A5 (5)
+ // A6 (6)
+ // B1 (7)
+ // B2 (8)
+ kal_uint8 rat; // Radio access technology of Meas Object
+ // 0: GERAN
+ // 1: UTRA
+ // 2: CDMA
+ // 3: EUTRA
+ // 4: NR
+ kal_uint8 hysteresis; // Hysteresis parameter. Valid only when
+ // Trigger Type is event.
+ kal_uint16 time_to_trigger; // TimeToTrigger Parameter. Valid only
+ // when Trigger Type is event.
+ // Unit: ms
+ kal_uint32 arfcn; // ARFCN of Meas object
+ kal_uint8 meas_trigger_qty; // The quantity used to evaluate the
+ // triggering condition for the event.
+ // 0: Invalid
+ // 1: RSRP
+ // 2: RSRQ
+ // 3: SINR
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ errc_meas_config_thres_info threshold_1; // Threshold or Threshold1 based on
+ // the event definition.
+ // Valid only when Trigger Type is event
+ // and the corresponding Event Type
+ // defines threshold or threshold1.
+ // (e.g. A1)
+ errc_meas_config_thres_info threshold_2; // Threshold2.
+ // Valid only when Trigger Type is event
+ // and the corresponding Event Type
+ // defines threshold2. (e.g. A5)
+ kal_int8 offset; // Offset.
+ // Valid only when Trigger Type is event
+ // and the corresponding Event Type
+ // defines offset. (e.g. A3)
+ kal_uint8 reserved_2;
+ kal_uint16 reserved_3;
+} errc_meas_id_info_v2;
+
+typedef errc_meas_id_info_v2 errc_meas_id_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 num_of_meas_id; // Number of Meas ID
+ // Range[0, 64]
+ kal_uint8 s_measure; // s-Measure value of Meas config
+ // Range[0, 97]
+ kal_uint8 reserved;
+ errc_meas_id_info meas_id_configured[FLEXIBLE_ARRAY_SIZE]; // N := Num of Meas ID
+ // Latest Measurement Config
+} icd_errc_meas_config_info_struct_v2;
+
+typedef icd_errc_meas_config_info_struct_v2 icd_errc_meas_config_info_struct;
+
+
+#endif /* _ERRC_MEAS_CONFIG_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_MEAS_Config_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7616", "Name": "ERRC_MEAS_Config_Event", "Type": "EVENT", "Desc": "The event is generated when measurement configuration is updated in UE.\n"}, "table": {"ERRC_MEAS_Config_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_MEAS_Config_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_MEAS_Config_Info"}, "ERRC_MEAS_Config_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_MEAS_Config_Info_V1", ""], "1": ["2", "ERRC_MEAS_Config_Info_V2", ""]}, "Name": "ERRC_MEAS_Config_Info_Versions"}, "ERRC_MEAS_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Meas ID Configured": "Num of Meas ID"}, "Name": "ERRC_MEAS_Config_Info_V1", "Data": {"0": ["Num of Meas ID", "UINT8", "1", "0", "8", "Number of Meas ID\nRange[0, 64]"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["Meas ID Configured", "ERRC_Meas_Id_Info_V1", "N", "24", "VAR", "N := Num of Meas ID\nLatest Measurement Config"]}}, "ERRC_MEAS_Config_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Meas ID Configured": "Num of Meas ID"}, "Name": "ERRC_MEAS_Config_Info_V2", "Data": {"0": ["Num of Meas ID", "UINT8", "1", "0", "8", "Number of Meas ID\nRange[0, 64]"], "1": ["s-Measure", "UINT8", "1", "8", "8", "s-Measure value of Meas config\nRange[0, 97]"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Meas ID Configured", "ERRC_Meas_Id_Info_V2", "N", "24", "VAR", "N := Num of Meas ID\nLatest Measurement Config"]}}, "ERRC_Meas_Id_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Meas ID", "UINT8", "1", "0", "8", "Measurement ID"], "1": ["Trigger Type", "UINT8", "1", "8", "8", "periodical (1)\nevent (2)"], "2": ["Periodic Purpose", "UINT8", "1", "16", "8", "Purpose for this periodic report.Valid\nonly when Trigger Type is periodical.\n0: reportStrongestCells\n1: reportCGI"], "3": ["Event Type", "UINT8", "1", "24", "8", "Report Config Type. Valid only when\nTrigger Type is event.\nA1 (1)\nA2 (2)\nA3 (3)\nA4 (4)\nA5 (5)\nA6 (6)\nB1 (7)\nB2 (8)"], "4": ["RAT", "UINT8", "1", "32", "8", "Radio access technology of Meas Object\n0: GERAN\n1: UTRA\n2: CDMA\n3: EUTRA\n4: NR"], "5": ["Reserved", "UINT8", "1", "40", "8", ""], "6": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_Meas_Id_Info_V1"}, "ERRC_Meas_Id_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Meas ID", "UINT8", "1", "0", "8", "Measurement ID"], "1": ["Trigger Type", "UINT8", "1", "8", "8", "periodical (1)\nevent (2)"], "2": ["Periodic Purpose", "UINT8", "1", "16", "8", "Purpose for this periodic report. Valid\nonly when Trigger Type is periodical.\n0: reportStrongestCells\n1: reportCGI"], "3": ["Event Type", "UINT8", "1", "24", "8", "Report Config Type. Valid only when\nTrigger Type is event.\nA1 (1)\nA2 (2)\nA3 (3)\nA4 (4)\nA5 (5)\nA6 (6)\nB1 (7)\nB2 (8)"], "4": ["RAT", "UINT8", "1", "32", "8", "Radio access technology of Meas Object\n0: GERAN\n1: UTRA\n2: CDMA\n3: EUTRA\n4: NR"], "5": ["Hysteresis", "UINT8", "1", "40", "8", "Hysteresis parameter. Valid only when\nTrigger Type is event."], "6": ["Time to Trigger", "UINT16", "1", "48", "16", "TimeToTrigger Parameter. Valid only\nwhen Trigger Type is event.\nUnit: ms"], "7": ["ARFCN", "UINT32", "1", "64", "32", "ARFCN of Meas object"], "8": ["Meas Trigger Qty", "UINT8", "1", "96", "8", "The quantity used to evaluate the\ntriggering condition for the event.\n0: Invalid\n1: RSRP\n2: RSRQ\n3: SINR"], "9": ["Reserved", "UINT8", "1", "104", "8", ""], "10": ["Reserved", "UINT16", "1", "112", "16", ""], "11": ["Threshold 1", "ERRC_Meas_Config_Thres_Info_V1", "1", "128", "32", "Threshold or Threshold1 based on\nthe event definition.\nValid only when Trigger Type is event\nand the corresponding Event Type\ndefines threshold or threshold1.\n(e.g. A1)"], "12": ["Threshold 2", "ERRC_Meas_Config_Thres_Info_V1", "1", "160", "32", "Threshold2.\nValid only when Trigger Type is event\nand the corresponding Event Type\ndefines threshold2. (e.g. A5)"], "13": ["Offset", "INT8", "1", "192", "8", "Offset.\nValid only when Trigger Type is event\nand the corresponding Event Type\ndefines offset. (e.g. A3)"], "14": ["Reserved", "UINT8", "1", "200", "8", ""], "15": ["Reserved", "UINT16", "1", "208", "16", ""]}, "Name": "ERRC_Meas_Id_Info_V2"}, "ERRC_Meas_Config_Thres_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Th Meas RAT", "UINT8", "1", "0", "8", "Radio access technology of Threshold\n0: GERAN\n1: UTRA\n2: CDMA\n3: EUTRA\n4: NR"], "1": ["Th Meas Qty", "UINT8", "1", "8", "8", "Indicates meas quantity when Th Meas\nRAT supports more than one quantity.\n0: INVALID\n1: RSRP (EUTRA), RSCP (UTRA),\nRSSI(GERAN) or RSRP (NR)\n2: RSRQ (EUTRA), EcN0 (UTRA),\nor RSRQ (NR)\n3: RS-SINR (NR)"], "2": ["Th Value", "INT16", "1", "16", "16", "Threshold value of report config"]}, "Name": "ERRC_Meas_Config_Thres_Info_V1"}}},
+ Public JSON end */
+// Checksum : [49cc72aa21f020ac4255e4286da87e5b]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_MEAS_REPORT_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_MEAS_REPORT_EVENT.h
new file mode 100644
index 0000000..26f81ed
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_MEAS_REPORT_EVENT.h
@@ -0,0 +1,69 @@
+// ICD Header Format v3
+// Name : ERRC_MEAS_Report_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7612
+// Version : V2.6
+
+#ifndef _ERRC_MEAS_REPORT_EVENT_H
+#define _ERRC_MEAS_REPORT_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_MEAS_REPORT_EVENT 0x7612
+
+#define ICD_ERRC_EERRC_MEAS_REPORT_INFO_V1 1
+
+#define MAX_ICD_ERRC_MEAS_REPORT_INFO_STRUCT_V1_NUM_OF_REPORTED_CELL 16
+
+#define ICD_ERRC_MEAS_REPORT_INFO_STRUCT_V1_MAX_SIZE 136
+
+typedef struct {
+ kal_uint32 freq; // Arfcn
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint16 reserved;
+} errc_reported_cell_meas_info_v1;
+
+typedef errc_reported_cell_meas_info_v1 errc_reported_cell_meas_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 meas_id; // Measurement ID
+ kal_uint8 trigger_type; // periodical (1)
+ // event (2)
+ kal_uint8 periodic_purpose; // Purpose for this periodic report
+ // 0: reportStrongestCells
+ // 1: reportCGI
+ kal_uint8 event_type; // Valid only when Trigger Type is event.
+ // A1 (1)
+ // A2 (2)
+ // A3 (3)
+ // A4 (4)
+ // A5 (5)
+ // A6 (6)
+ // B1 (7)
+ // B2 (8)
+ kal_uint8 rat; // Radio access technology
+ // 0: GERAN
+ // 1: UTRA
+ // 2: CDMA
+ // 3: EUTRA
+ // 4: NR
+ kal_uint8 reserved;
+ kal_uint8 num_of_reported_cell; // Number of reported cell, range[0, 16]
+ errc_reported_cell_meas_info reported_cell[FLEXIBLE_ARRAY_SIZE]; // N := Num of Reported Cell
+ // Information of reported cell
+} icd_errc_meas_report_info_struct_v1;
+
+typedef icd_errc_meas_report_info_struct_v1 icd_errc_meas_report_info_struct;
+
+
+#endif /* _ERRC_MEAS_REPORT_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_MEAS_Report_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7612", "Name": "ERRC_MEAS_Report_Event", "Type": "EVENT", "Desc": "The event is generated when UE sends a measurement report to NW.\n"}, "table": {"ERRC_MEAS_Report_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_MEAS_Report_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_MEAS_Report_Info"}, "ERRC_MEAS_Report_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "EERRC_MEAS_Report_Info_V1", ""]}, "Name": "ERRC_MEAS_Report_Info_Versions"}, "EERRC_MEAS_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Reported Cell": "Num of Reported Cell"}, "Name": "EERRC_MEAS_Report_Info_V1", "Data": {"0": ["Meas ID", "UINT8", "1", "0", "8", "Measurement ID"], "1": ["Trigger Type", "UINT8", "1", "8", "8", "periodical (1)\nevent (2)"], "2": ["Periodic Purpose", "UINT8", "1", "16", "8", "Purpose for this periodic report\n0: reportStrongestCells\n1: reportCGI"], "3": ["Event Type", "UINT8", "1", "24", "8", "Valid only when Trigger Type is event.\nA1 (1)\nA2 (2)\nA3 (3)\nA4 (4)\nA5 (5)\nA6 (6)\nB1 (7)\nB2 (8)"], "4": ["RAT", "UINT8", "1", "32", "8", "Radio access technology\n0: GERAN\n1: UTRA\n2: CDMA\n3: EUTRA\n4: NR"], "5": ["Reserved", "UINT8", "1", "40", "8", ""], "6": ["Num of Reported Cell", "UINT8", "1", "48", "8", "Number of reported cell, range[0, 16]"], "7": ["Reported Cell", "ERRC_Reported_Cell_Meas_Info_V1", "N", "56", "VAR", "N := Num of Reported Cell\nInformation of reported cell"]}}, "ERRC_Reported_Cell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Freq", "UINT32", "1", "0", "32", "Arfcn"], "1": ["Physical Cell ID", "UINT16", "1", "32", "16", "Physical cell identity"], "2": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "ERRC_Reported_Cell_Meas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [a501da3697502a23baa7209b8256ebde]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_NEW_CELL_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_NEW_CELL_EVENT.h
new file mode 100644
index 0000000..51a6d54
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_NEW_CELL_EVENT.h
@@ -0,0 +1,44 @@
+// ICD Header Format v3
+// Name : ERRC_New_Cell_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7601
+// Version : V2.6
+
+#ifndef _ERRC_NEW_CELL_EVENT_H
+#define _ERRC_NEW_CELL_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_NEW_CELL_EVENT 0x7601
+
+#define ICD_ERRC_ERRC_NEW_CELL_INFO_V1 1
+
+#define ICD_ERRC_NEW_CELL_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cause; // cellSelection (1)
+ // cellReselection (2)
+ // handover (3)
+ // redirection (4)
+ kal_uint8 camped_status; // suitable (1)
+ // acceptable (2)
+ kal_uint8 reserved;
+ kal_uint32 freq; // Arfcn
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint16 reserved_1;
+} icd_errc_new_cell_info_struct_v1;
+
+typedef icd_errc_new_cell_info_struct_v1 icd_errc_new_cell_info_struct;
+
+
+#endif /* _ERRC_NEW_CELL_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_New_Cell_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7601", "Name": "ERRC_New_Cell_Event", "Type": "EVENT", "Desc": "The event is generated when UE transition to a new cell.\n"}, "table": {"ERRC_New_Cell_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_New_Cell_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_New_Cell_Info"}, "ERRC_New_Cell_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_New_Cell_Info_V1", ""]}, "Name": "ERRC_New_Cell_Info_Versions"}, "ERRC_New_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cause", "UINT8", "1", "0", "8", "cellSelection (1)\ncellReselection (2)\nhandover (3)\nredirection (4)"], "1": ["Camped Status", "UINT8", "1", "8", "8", "suitable (1)\nacceptable (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Freq", "UINT32", "1", "24", "32", "Arfcn"], "4": ["Physical Cell ID", "UINT16", "1", "56", "16", "Physical cell identity"], "5": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "ERRC_New_Cell_Info_V1"}}},
+ Public JSON end */
+// Checksum : [186186013d297fd6b27af602fcfa2631]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_NSA_Reconfiguration_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_NSA_Reconfiguration_EVENT.h
new file mode 100644
index 0000000..8f2f779
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_NSA_Reconfiguration_EVENT.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : ERRC_NSA_Reconfiguration_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7611
+// Version : V2.6
+
+#ifndef _ERRC_NSA_RECONFIGURATION_EVENT_H
+#define _ERRC_NSA_RECONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_NSA_RECONFIGURATION_EVENT 0x7611
+
+#define ICD_ERRC_ERRC_NSA_RECONFIGURATION_V1 1
+
+#define ICD_ERRC_NSA_RECONFIGURATION_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 nsa_reconfiguration_status; // Indicates the reconfiguration status:
+ // 0: NRRC SCG Reconfiguration included
+ // 255: Invalild
+ kal_uint16 reserved;
+} icd_errc_nsa_reconfiguration_struct_v1;
+
+typedef icd_errc_nsa_reconfiguration_struct_v1 icd_errc_nsa_reconfiguration_struct;
+
+
+#endif /* _ERRC_NSA_RECONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_NSA_Reconfiguration_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7611", "Name": "ERRC_NSA_Reconfiguration_Event", "Type": "EVENT", "Desc": "The event is generated when NSA reconfiguration is changed to update the status.\n"}, "table": {"ERRC_NSA_Reconfiguration": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_NSA_Reconfiguration_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_NSA_Reconfiguration"}, "ERRC_NSA_Reconfiguration_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_NSA_Reconfiguration_V1", ""]}, "Name": "ERRC_NSA_Reconfiguration_Versions"}, "ERRC_NSA_Reconfiguration_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["NSA Reconfiguration Status", "UINT8", "1", "0", "8", "Indicates the reconfiguration status:\n0: NRRC SCG Reconfiguration included\n255: Invalild"], "1": ["Reserved", "UINT16", "1", "8", "16", ""]}, "Name": "ERRC_NSA_Reconfiguration_V1"}}},
+ Public JSON end */
+// Checksum : [288eb979fcbee84a3a67d3188ca0e95f]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_OOS_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_OOS_EVENT.h
new file mode 100644
index 0000000..957a035
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_OOS_EVENT.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : ERRC_OOS_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7603
+// Version : V2.6
+
+#ifndef _ERRC_OOS_EVENT_H
+#define _ERRC_OOS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_OOS_EVENT 0x7603
+
+#define ICD_ERRC_ERRC_OOS_INFO_V1 1
+
+#define ICD_ERRC_OOS_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 counter; // Indicate how many times UE has gone OOS
+} icd_errc_oos_info_struct_v1;
+
+typedef icd_errc_oos_info_struct_v1 icd_errc_oos_info_struct;
+
+
+#endif /* _ERRC_OOS_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_OOS_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7603", "Name": "ERRC_OOS_Event", "Type": "EVENT", "Desc": "The event is generated when UE detects out of service area.\n"}, "table": {"ERRC_OOS_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_OOS_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_OOS_Info"}, "ERRC_OOS_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_OOS_Info_V1", ""]}, "Name": "ERRC_OOS_Info_Versions"}, "ERRC_OOS_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Counter", "UINT16", "1", "8", "16", "Indicate how many times UE has gone OOS"]}, "Name": "ERRC_OOS_Info_V1"}}},
+ Public JSON end */
+// Checksum : [1e5e8158f0622eda03f2cf0f8d689003]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_Paging_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_Paging_EVENT.h
new file mode 100644
index 0000000..ba85f13
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_Paging_EVENT.h
@@ -0,0 +1,75 @@
+// ICD Header Format v3
+// Name : ERRC_Paging_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7613
+// Version : V2.6
+
+#ifndef _ERRC_PAGING_EVENT_H
+#define _ERRC_PAGING_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_PAGING_EVENT 0x7613
+
+#define ICD_ERRC_ERRC_PAGING_INFO_V1 1
+
+#define MAX_ICD_ERRC_PAGING_INFO_STRUCT_V1_NUM_OF_MATCH_RECORD 16
+
+#define ICD_ERRC_PAGING_INFO_STRUCT_V1_MAX_SIZE 72
+
+typedef struct {
+ kal_uint8 cn_domain; // Indicates the CN domain of this Paging Record.
+ // 0: PS
+ // 1: CS
+ kal_uint8 paging_ue_identity; // Indicates the CN domain of this Paging Record.
+ // 1: S-TMSI
+ // 2: IMSI
+ kal_uint16 reserved;
+} errc_match_paging_record_info_v1;
+
+typedef errc_match_paging_record_info_v1 errc_match_paging_record_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 si_modification; // Indicates whether SI modification is
+ // included in the Paging message.
+ // 0: Not included
+ // 1: Included
+ kal_uint8 etws_indication; // Indicates whether ETWS indication is
+ // included in the Paging message.
+ // 0: Not included
+ // 1: Included
+ kal_uint8 cmas_indication; // Indicates whether CMAS indication is
+ // included in the Paging message.
+ // 0: Not included
+ // 1: Included
+ kal_uint8 eab_modification; // Indicates whether EAB parameter
+ // modification included in the Paging
+ // message.
+ // 0: Not included
+ // 1: Included
+ kal_uint8 reserved;
+ kal_uint8 paging_record_match; // Indicates whether UE identity is
+ // matched with the PagingRecord in the
+ // Paging message.
+ // 0: Not matched
+ // 1: Matched
+ kal_uint8 num_of_match_record; // Number of matched record.
+ // Range[0, 16]
+ errc_match_paging_record_info match_record[FLEXIBLE_ARRAY_SIZE]; // N := Num of Match Record
+ // Array of matched PagingRecord.
+} icd_errc_paging_info_struct_v1;
+
+typedef icd_errc_paging_info_struct_v1 icd_errc_paging_info_struct;
+
+
+#endif /* _ERRC_PAGING_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_Paging_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7613", "Name": "ERRC_Paging_Event", "Type": "EVENT", "Desc": "The event is generated when there is a Paging message for the UE.\n"}, "table": {"ERRC_Paging_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_Paging_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_Paging_Info"}, "ERRC_Paging_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_Paging_Info_V1", ""]}, "Name": "ERRC_Paging_Info_Versions"}, "ERRC_Paging_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Match Record": "Num of Match Record"}, "Name": "ERRC_Paging_Info_V1", "Data": {"0": ["SI Modification", "UINT8", "1", "0", "8", "Indicates whether SI modification is\nincluded in the Paging message.\n0: Not included\n1: Included"], "1": ["ETWS Indication", "UINT8", "1", "8", "8", "Indicates whether ETWS indication is\nincluded in the Paging message.\n0: Not included\n1: Included"], "2": ["CMAS Indication", "UINT8", "1", "16", "8", "Indicates whether CMAS indication is\nincluded in the Paging message.\n0: Not included\n1: Included"], "3": ["EAB Modification", "UINT8", "1", "24", "8", "Indicates whether EAB parameter\nmodification included in the Paging\nmessage.\n0: Not included\n1: Included"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Paging Record Match", "UINT8", "1", "40", "8", "Indicates whether UE identity is\nmatched with the PagingRecord in the\nPaging message.\n0: Not matched\n1: Matched"], "6": ["Num of Match Record", "UINT8", "1", "48", "8", "Number of matched record.\nRange[0, 16]"], "7": ["Match Record", "ERRC_Match_Paging_Record_Info_V1", "N", "56", "VAR", "N := Num of Match Record\nArray of matched PagingRecord."]}}, "ERRC_Match_Paging_Record_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CN Domain", "UINT8", "1", "0", "8", "Indicates the CN domain of this Paging Record.\n0: PS\n1: CS"], "1": ["Paging UE Identity", "UINT8", "1", "8", "8", "Indicates the CN domain of this Paging Record.\n1: S-TMSI\n2: IMSI"], "2": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "ERRC_Match_Paging_Record_Info_V1"}}},
+ Public JSON end */
+// Checksum : [d248e5e3774a6e21638e14cbdfea3f85]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_SIB_READ_FAILURE_EVENT.h b/mcu/interface/service/icd/event/errc/ERRC_SIB_READ_FAILURE_EVENT.h
new file mode 100644
index 0000000..5face4c
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_SIB_READ_FAILURE_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : ERRC_SIB_Read_Failure_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7604
+// Version : V2.6
+
+#ifndef _ERRC_SIB_READ_FAILURE_EVENT_H
+#define _ERRC_SIB_READ_FAILURE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_SIB_READ_FAILURE_EVENT 0x7604
+
+#define ICD_ERRC_ERRC_SIB_READ_FAILURE_INFO_V1 1
+
+#define ICD_ERRC_SIB_READ_FAILURE_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint32 frequency; // Downlink arfcn
+ kal_uint16 rxed_sibs_mask; // Bitmask of SIBs received. LSB0 is MIB, LSB1 is SIB1,..
+ kal_uint16 reserved_1;
+} icd_errc_sib_read_failure_info_struct_v1;
+
+typedef icd_errc_sib_read_failure_info_struct_v1 icd_errc_sib_read_failure_info_struct;
+
+
+#endif /* _ERRC_SIB_READ_FAILURE_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_SIB_Read_Failure_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7604", "Name": "ERRC_SIB_Read_Failure_Event", "Type": "EVENT", "Desc": "The event is generated when SIB reading fails\nsibReadFailureEvent.\n"}, "table": {"ERRC_SIB_Read_Failure_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_SIB_Read_Failure_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_SIB_Read_Failure_Info"}, "ERRC_SIB_Read_Failure_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_SIB_Read_Failure_Info_V1", ""]}, "Name": "ERRC_SIB_Read_Failure_Info_Versions"}, "ERRC_SIB_Read_Failure_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Frequency", "UINT32", "1", "24", "32", "Downlink arfcn"], "3": ["RXed SIBs mask", "UINT16", "1", "56", "16", "Bitmask of SIBs received. LSB0 is MIB, LSB1 is SIB1,.."], "4": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "ERRC_SIB_Read_Failure_Info_V1"}}},
+ Public JSON end */
+// Checksum : [2872d81642de592c60a17cb40943c266]
diff --git a/mcu/interface/service/icd/event/errc/ERRC_SRVCC_BSIC_Info_Event.h b/mcu/interface/service/icd/event/errc/ERRC_SRVCC_BSIC_Info_Event.h
new file mode 100644
index 0000000..58407b0
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/ERRC_SRVCC_BSIC_Info_Event.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : ERRC_SRVCC_BSIC_Info_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x760E
+// Version : V2.6
+
+#ifndef _ERRC_SRVCC_BSIC_INFO_EVENT_H
+#define _ERRC_SRVCC_BSIC_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_SRVCC_BSIC_INFO_EVENT 0x760E
+
+#define ICD_ERRC_ERRC_SRVCC_BSIC_INFO_V1 1
+
+#define ICD_ERRC_SRVCC_BSIC_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 bsic; // BSIC of target cell
+ kal_uint16 arfcn; // Arfcn of target cell
+} icd_errc_srvcc_bsic_info_struct_v1;
+
+typedef icd_errc_srvcc_bsic_info_struct_v1 icd_errc_srvcc_bsic_info_struct;
+
+
+#endif /* _ERRC_SRVCC_BSIC_INFO_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_SRVCC_BSIC_Info_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x760E", "Name": "ERRC_SRVCC_BSIC_Info_Event", "Type": "EVENT", "Desc": "The event is generated when UE happen SRVCC to 2G.\n"}, "table": {"ERRC_SRVCC_BSIC_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_SRVCC_BSIC_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_SRVCC_BSIC_Info"}, "ERRC_SRVCC_BSIC_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_SRVCC_BSIC_Info_V1", ""]}, "Name": "ERRC_SRVCC_BSIC_Info_Versions"}, "ERRC_SRVCC_BSIC_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BSIC", "UINT8", "1", "0", "8", "BSIC of target cell"], "1": ["Arfcn", "UINT16", "1", "8", "16", "Arfcn of target cell"]}, "Name": "ERRC_SRVCC_BSIC_Info_V1"}}},
+ Public JSON end */
+// Checksum : [51b9d6cf0442b9d8ef974903df8dbcf7]
diff --git a/mcu/interface/service/icd/event/errc/errc_rlf_event.h b/mcu/interface/service/icd/event/errc/errc_rlf_event.h
new file mode 100644
index 0000000..dc59008
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/errc_rlf_event.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : ERRC_RLF_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7600
+// Version : V2.6
+
+#ifndef _ERRC_RLF_EVENT_H
+#define _ERRC_RLF_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_RLF_EVENT 0x7600
+
+#define ICD_ERRC_ERRC_RLF_INFO_V1 1
+
+#define ICD_ERRC_RLF_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rlf_count; // Counter
+ kal_uint8 rlf_cause; // configurationFailue(0),
+ // handoverFailue(1),
+ // rachFailue(2),
+ // maxRetransmission(3),
+ // ipCheckFailure(4),
+ // sibReadingFailure(5),
+ // mibChange(6),
+ // other(7),
+ kal_uint8 rlf_causeother; // RLF cause other only valid
+ // when RLF Cause = 7
+} icd_errc_rlf_info_struct_v1;
+
+typedef icd_errc_rlf_info_struct_v1 icd_errc_rlf_info_struct;
+
+
+#endif /* _ERRC_RLF_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_RLF_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7600", "Name": "ERRC_RLF_Event", "Type": "EVENT", "Desc": "The event is generated when the RLF occur (Failure event occur).\n"}, "table": {"ERRC_RLF_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_RLF_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_RLF_Info"}, "ERRC_RLF_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_RLF_Info_V1", ""]}, "Name": "ERRC_RLF_Info_Versions"}, "ERRC_RLF_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RLF Count", "UINT8", "1", "0", "8", "Counter"], "1": ["RLF Cause", "UINT8", "1", "8", "8", "configurationFailue(0),\nhandoverFailue(1),\nrachFailue(2),\nmaxRetransmission(3),\nipCheckFailure(4),\nsibReadingFailure(5),\nmibChange(6),\nother(7),"], "2": ["RLF CauseOther", "UINT8", "1", "16", "8", "RLF cause other only valid\nwhen RLF Cause = 7"]}, "Name": "ERRC_RLF_Info_V1"}}},
+ Public JSON end */
+// Checksum : [b1d965f757005c54d55ad9a48c5b9b5a]
diff --git a/mcu/interface/service/icd/event/errc/errc_state_change_event.h b/mcu/interface/service/icd/event/errc/errc_state_change_event.h
new file mode 100644
index 0000000..8e11c38
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/errc_state_change_event.h
@@ -0,0 +1,77 @@
+// ICD Header Format v3
+// Name : ERRC_State_Change_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7602
+// Version : V2.6
+
+#ifndef _ERRC_STATE_CHANGE_EVENT_H
+#define _ERRC_STATE_CHANGE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_STATE_CHANGE_EVENT 0x7602
+
+#define ICD_ERRC_ERRC_STATE_CHANGE_INFO_V1 1
+
+#define ICD_ERRC_STATE_CHANGE_INFO_STRUCT_V1_MAX_SIZE 3
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rrc_state; // null(0),
+ // idleCampedOnAnyCell(1),
+ // idleCampedNormally(2),
+ // idlConnecting(3),
+ // connectedNormally(4),
+ // releasing(5),
+ // atmptOutbndMobility(6),
+ // atmptInbndMobility(7)
+ kal_uint8 rrc_state_change_cause; // 0:INACTIVE_TRIGGER_OTHER
+ // 1:CAMPED_NO_SERVICE
+ // 2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED
+ // 3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY
+ // 4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT
+ // 5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL
+ // 6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED
+ // 7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER
+ // 8:CAMPED_TRIGGER_OTHER
+ // 9:CAMPED_NORMAL
+ // 10:CONNECTING_TRIGGER_EMERGENCY
+ // 11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS
+ // 12:CONNECTING_TRIGGER_MT_ACESS
+ // 13:CONNECTING_TRIGGER_MO_SIGNALING
+ // 14:CONNECTING_TRIGGER_MO_DATA
+ // 15:CONNECTING_TRIGGER_MO_CALL
+ // 16:CONNECTING_VOLTE_CALL
+ // 17:CONNECTED_TRIGGER_REEST_RECFG_FAILURE
+ // 18:CONNECTED_TRIGGER_REEST_HO_FAILURE
+ // 19:CONNECTED_TRIGGER_REEST_OTHER_FAILURE
+ // 20:REL_TRIGGER_SUCC_MOB_FROM_EUTRAN
+ // 21:REL_TRIGGER_T310_EXPIRY
+ // 22:REL_TRIGGER_RND_ACC
+ // 23:REL_TRIGGER_MAX_RLC_RETRANS
+ // 24:REL_TRIGGER_T311_EXPIRY
+ // 25:REL_TRIGGER_T301_EXPIRY
+ // 26:REL_TRIGGER_REJECT
+ // 27:REL_TRIGGER_LOAD_BALANCE
+ // 28:REL_TRIGGER_OTHER
+ // 29:REL_TRIGGER_CONN_ABORT
+ // 30:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS
+ // 31:REL_TRIGGER_CSFB_HIGH
+ // 32:CONNECTED_NORMAL_SUCCESS
+ // 33:CONNECTED_REEST_SUCCESS
+ // 255:CAUSE_NA
+} icd_errc_state_change_info_struct_v1;
+
+typedef icd_errc_state_change_info_struct_v1 icd_errc_state_change_info_struct;
+
+
+#endif /* _ERRC_STATE_CHANGE_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_State_Change_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7602", "Name": "ERRC_State_Change_Event", "Type": "EVENT", "Desc": "The event is generated when ERRC state changes.\n"}, "table": {"ERRC_State_Change_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_State_Change_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_State_Change_Info"}, "ERRC_State_Change_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_State_Change_Info_V1", ""]}, "Name": "ERRC_State_Change_Info_Versions"}, "ERRC_State_Change_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RRC State", "UINT8", "1", "0", "8", "null(0),\nidleCampedOnAnyCell(1),\nidleCampedNormally(2),\nidlConnecting(3),\nconnectedNormally(4),\nreleasing(5),\natmptOutbndMobility(6),\natmptInbndMobility(7)"], "1": ["RRC State Change Cause", "UINT8", "1", "8", "8", "0:INACTIVE_TRIGGER_OTHER\n1:CAMPED_NO_SERVICE\n2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED\n3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY\n4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT\n5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL\n6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED\n7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER\n8:CAMPED_TRIGGER_OTHER\n9:CAMPED_NORMAL\n10:CONNECTING_TRIGGER_EMERGENCY\n11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS\n12:CONNECTING_TRIGGER_MT_ACESS\n13:CONNECTING_TRIGGER_MO_SIGNALING\n14:CONNECTING_TRIGGER_MO_DATA\n15:CONNECTING_TRIGGER_MO_CALL\n16:CONNECTING_VOLTE_CALL\n17:CONNECTED_TRIGGER_REEST_RECFG_FAILURE\n18:CONNECTED_TRIGGER_REEST_HO_FAILURE\n19:CONNECTED_TRIGGER_REEST_OTHER_FAILURE\n20:REL_TRIGGER_SUCC_MOB_FROM_EUTRAN\n21:REL_TRIGGER_T310_EXPIRY\n22:REL_TRIGGER_RND_ACC\n23:REL_TRIGGER_MAX_RLC_RETRANS\n24:REL_TRIGGER_T311_EXPIRY\n25:REL_TRIGGER_T301_EXPIRY\n26:REL_TRIGGER_REJECT\n27:REL_TRIGGER_LOAD_BALANCE\n28:REL_TRIGGER_OTHER\n29:REL_TRIGGER_CONN_ABORT\n30:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS\n31:REL_TRIGGER_CSFB_HIGH\n32:CONNECTED_NORMAL_SUCCESS\n33:CONNECTED_REEST_SUCCESS\n255:CAUSE_NA"]}, "Name": "ERRC_State_Change_Info_V1"}}},
+ Public JSON end */
+// Checksum : [8e85f41b731d602613f3ef4d8a7551f8]
diff --git a/mcu/interface/service/icd/event/errc/errc_timer_status_event.h b/mcu/interface/service/icd/event/errc/errc_timer_status_event.h
new file mode 100644
index 0000000..07b3a75
--- /dev/null
+++ b/mcu/interface/service/icd/event/errc/errc_timer_status_event.h
@@ -0,0 +1,52 @@
+// ICD Header Format v3
+// Name : ERRC_Timer_Status_Event
+// Category : LTE
+// Layer : ERRC
+// Type : EVENT
+// Code : 0x7606
+// Version : V2.6
+
+#ifndef _ERRC_TIMER_STATUS_EVENT_H
+#define _ERRC_TIMER_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_ERRC_TIMER_STATUS_EVENT 0x7606
+
+#define ICD_ERRC_ERRC_TIMER_STATUS_INFO_V1 1
+
+#define ICD_ERRC_TIMER_STATUS_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 timer_name; // T300(0)
+ // T301(1)
+ // T302(2)
+ // T303(3)
+ // T304(4)
+ // T305(5)
+ // T306(6)
+ // T311(7)
+ // T320(8)
+ // T321(9)
+ // T325(10)
+ // T330(11)
+ // T350(12)
+ kal_uint8 timer_status; // Started(0),
+ // Stopped(1),
+ // Expired(2)
+ kal_uint8 reserved;
+ kal_uint32 timer_value; // indicateing the remaining timer in milliseconds
+} icd_errc_timer_status_info_struct_v1;
+
+typedef icd_errc_timer_status_info_struct_v1 icd_errc_timer_status_info_struct;
+
+
+#endif /* _ERRC_TIMER_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"ERRC_Timer_Status_Event": {"info": {"Category": "LTE", "Layer": "RRC", "Code": "0x7606", "Name": "ERRC_Timer_Status_Event", "Type": "EVENT", "Desc": "The event is generated whenever a status change related to a RRC timer occurs.\n"}, "table": {"ERRC_Timer_Status_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "ERRC_Timer_Status_Info_Versions", "1", "8", "VAR", ""]}, "Name": "ERRC_Timer_Status_Info"}, "ERRC_Timer_Status_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "ERRC_Timer_Status_Info_V1", ""]}, "Name": "ERRC_Timer_Status_Info_Versions"}, "ERRC_Timer_Status_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer Name", "UINT8", "1", "0", "8", "T300(0)\nT301(1)\nT302(2)\nT303(3)\nT304(4)\nT305(5)\nT306(6)\nT311(7)\nT320(8)\nT321(9)\nT325(10)\nT330(11)\nT350(12)"], "1": ["Timer Status", "UINT8", "1", "8", "8", "Started(0),\nStopped(1),\nExpired(2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Timer Value", "UINT32", "1", "24", "32", "indicateing the remaining timer in milliseconds"]}, "Name": "ERRC_Timer_Status_Info_V1"}}},
+ Public JSON end */
+// Checksum : [6a2319a4fdf2e838cd63bd12a9a48fc5]
diff --git a/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_Handover_Event.h b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_Handover_Event.h
new file mode 100644
index 0000000..8dd0358
--- /dev/null
+++ b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_Handover_Event.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : N3GPP_Offload_Handover_Event
+// Category : IMS
+// Layer : N3GPP
+// Type : EVENT
+// Code : 0x2240
+// Version : V1.1rc1
+
+#ifndef _N3GPP_OFFLOAD_HANDOVER_EVENT_H
+#define _N3GPP_OFFLOAD_HANDOVER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_N3GPP_OFFLOAD_HANDOVER_EVENT 0x2240
+
+#define ICD_N3GPP_HANDOVER_INFO_V1 1
+
+#define ICD_HANDOVER_INFO_STRUCT_V1_MAX_SIZE 136
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_int8 apn[100]; // Indicates the Access Point Name
+ kal_uint8 event_type; // Indicates Handover Type
+ // 0: Start to handover
+ // 1: End of Handover
+ kal_uint8 source_rat; // Indicates the Handover Source RAT
+ // 0: Invalid
+ // 1: Cellular Network (2/3/4/5G)
+ // 2: WiFi
+ kal_uint8 destination_rat; // Indicates the Handover Destination RAT
+ // 0: Invalid
+ // 1: Cellular Network (2/3/4/5G)
+ // 2: WiFi
+ kal_uint8 result; // Indicates Handover result
+ // 0: Success
+ // 1: Fail
+ kal_uint32 cellular_error_cause; // Indicates PDN Handover Failure Cause, only valid if destination RAT is Cellular
+ kal_uint32 ikev2_error_notify_type; // Indicates PDN Handover Failure Cause, only valid if destination RAT is WiFi
+ // 1: UNSUPPORTED_CRITICAL_PAYLOAD
+ // 4: INVALID_IKE_SPI
+ // 24: AUTHENTICATION_FAILED
+ // 43: TEMPORARY_FAILURE
+ kal_int8 epdg_ip[16]; // Indicates ePDG IP Address
+ kal_int8 epdg_ip_family; // Indicates the family of ePDG IP Address
+ // 0: IPv4
+ // 1: IPv6
+ kal_uint8 call_active; // Indicates If IMS Call is Active
+ // 0: Idle
+ // 1: Active
+ kal_int8 reserved[2];
+} icd_handover_info_struct_v1;
+
+typedef icd_handover_info_struct_v1 icd_handover_info_struct;
+
+
+#endif /* _N3GPP_OFFLOAD_HANDOVER_EVENT_H */
+
+
+/* Public JSON start
+"N3GPP_Offload_Handover_Event": {"info": {"Category": "IMS", "Layer": "N3GPP", "Code": "0x2240", "Name": "N3GPP_Offload_Handover_Event", "Type": "EVENT", "Desc": "The event is generated when a handover(LTE to WiFi or WiFi to LTE) attempt or response occurs during a call.\n"}, "table": {"Handover_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "Handover_Info_Versions", "1", "32", "VAR", ""]}, "Name": "Handover_Info"}, "Handover_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "Handover_Info_V1", ""]}, "Name": "Handover_Info_Versions"}, "Handover_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["APN", "INT8", "100", "0", "800", "Indicates the Access Point Name"], "1": ["Event Type", "UINT8", "1", "800", "8", "Indicates Handover Type\n0: Start to handover\n1: End of Handover"], "2": ["Source RAT", "UINT8", "1", "808", "8", "Indicates the Handover Source RAT\n0: Invalid\n1: Cellular Network (2/3/4/5G)\n2: WiFi"], "3": ["Destination RAT", "UINT8", "1", "816", "8", "Indicates the Handover Destination RAT\n0: Invalid\n1: Cellular Network (2/3/4/5G)\n2: WiFi"], "4": ["Result", "UINT8", "1", "824", "8", "Indicates Handover result\n0: Success\n1: Fail"], "5": ["Cellular Error Cause", "UINT32", "1", "832", "32", "Indicates PDN Handover Failure Cause, only valid if destination RAT is Cellular"], "6": ["IKEv2 Error Notify Type", "UINT32", "1", "864", "32", "Indicates PDN Handover Failure Cause, only valid if destination RAT is WiFi\n1: UNSUPPORTED_CRITICAL_PAYLOAD\n4: INVALID_IKE_SPI\n24: AUTHENTICATION_FAILED\n43: TEMPORARY_FAILURE"], "7": ["ePDG IP", "INT8", "16", "896", "128", "Indicates ePDG IP Address"], "8": ["ePDG IP Family", "INT8", "1", "1024", "8", "Indicates the family of ePDG IP Address\n0: IPv4\n1: IPv6"], "9": ["Call Active", "UINT8", "1", "1032", "8", "Indicates If IMS Call is Active\n0: Idle\n1: Active"], "10": ["Reserved", "INT8", "2", "1040", "16", ""]}, "Name": "Handover_Info_V1"}}},
+ Public JSON end */
+// Checksum : [98b5211385619c9b6e8c95d88a3ef819]
diff --git a/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Dead_Peer_Detection_Event.h b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Dead_Peer_Detection_Event.h
new file mode 100644
index 0000000..6c048a1
--- /dev/null
+++ b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Dead_Peer_Detection_Event.h
@@ -0,0 +1,40 @@
+// ICD Header Format v3
+// Name : N3GPP_Offload_IKEv2_Dead_Peer_Detection_Event
+// Category : IMS
+// Layer : N3GPP
+// Type : EVENT
+// Code : 0x2241
+// Version : V1.1rc1
+
+#ifndef _N3GPP_OFFLOAD_IKEV2_DEAD_PEER_DETECTION_EVENT_H
+#define _N3GPP_OFFLOAD_IKEV2_DEAD_PEER_DETECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_N3GPP_OFFLOAD_IKEV2_DEAD_PEER_DETECTION_EVENT 0x2241
+
+#define ICD_N3GPP_IKEV2_DEAD_PEER_DETECTION_INFO_V1 1
+
+#define ICD_IKEV2_DEAD_PEER_DETECTION_INFO_STRUCT_V1_MAX_SIZE 32
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint32 interval; // Dead peer detection interval, in seconds
+ kal_uint64 spi_i; // Initiator SPI
+ kal_uint64 spi_r; // Responder SPI
+ kal_uint8 is_request; // 1 (True): is a DPD request
+ // 1 (False): is a DPD response
+ kal_uint8 reserved[7];
+} icd_ikev2_dead_peer_detection_info_struct_v1;
+
+typedef icd_ikev2_dead_peer_detection_info_struct_v1 icd_ikev2_dead_peer_detection_info_struct;
+
+
+#endif /* _N3GPP_OFFLOAD_IKEV2_DEAD_PEER_DETECTION_EVENT_H */
+
+
+/* Public JSON start
+"N3GPP_Offload_IKEv2_Dead_Peer_Detection_Event": {"info": {"Category": "IMS", "Layer": "N3GPP", "Code": "0x2241", "Name": "N3GPP_Offload_IKEv2_Dead_Peer_Detection_Event", "Type": "EVENT", "Desc": "This event is generated every time when there is a DPD message sent between ePDG and UE\n"}, "table": {"IKEv2_Dead_Peer_Detection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "IKEv2_Dead_Peer_Detection_Info_Versions", "1", "32", "VAR", ""]}, "Name": "IKEv2_Dead_Peer_Detection_Info"}, "IKEv2_Dead_Peer_Detection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IKEv2_Dead_Peer_Detection_Info_V1", ""]}, "Name": "IKEv2_Dead_Peer_Detection_Info_Versions"}, "IKEv2_Dead_Peer_Detection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Interval", "UINT32", "1", "0", "32", "Dead peer detection interval, in seconds"], "1": ["SPI_i", "UINT64", "1", "32", "64", "Initiator SPI"], "2": ["SPI_r", "UINT64", "1", "96", "64", "Responder SPI"], "3": ["Is Request", "UINT8", "1", "160", "8", "1 (True): is a DPD request\n1 (False): is a DPD response"], "4": ["Reserved", "UINT8", "7", "168", "56", ""]}, "Name": "IKEv2_Dead_Peer_Detection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [ebd6989637d5a579edfe2db3238563c8]
diff --git a/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Decryption_Key_Add_Event.h b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Decryption_Key_Add_Event.h
new file mode 100644
index 0000000..f9dbcb8
--- /dev/null
+++ b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Decryption_Key_Add_Event.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : N3GPP_Offload_IKEv2_Decryption_Key_Add_Event
+// Category : IMS
+// Layer : N3GPP
+// Type : EVENT
+// Code : 0x2242
+// Version : V1.1rc1
+
+#ifndef _N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_ADD_EVENT_H
+#define _N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_ADD_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_ADD_EVENT 0x2242
+
+#define ICD_N3GPP_IKEV2_DECRYPTION_KEY_ADD_INFO_V1 1
+
+#define ICD_IKEV2_DECRYPTION_KEY_ADD_EVENT_STRUCT_V1_MAX_SIZE 1064
+
+typedef struct {
+ kal_uint64 version; // Log event structure ID
+ kal_uint64 spi_i; // Initiator SPI
+ kal_uint64 spi_r; // Responder SPI
+ kal_uint32 encryption_key_length; // Encryption Key Length (Bits)
+ kal_uint32 authentication_key_length; // Authentication Key Length (Bits)
+ kal_uint8 sk_ei[256]; // Initiator Encryption Key
+ kal_uint8 sk_er[256]; // Responder Encryption Key
+ kal_uint8 sk_ai[256]; // Initiator Authentication Key
+ kal_uint8 sk_ar[256]; // Responder Authentication Key
+ kal_uint16 encryption_algorithm; // Encryption Algorithm
+ // The type number is same as
+ // "Transform Type 1" table in RFC7296
+ // "3.3.2. Transform Substructure"
+ kal_uint16 authentication_algorithm; // Authentication Algorithm
+ // The type number is same as
+ // "Transform Type 3" table" in RFC7296
+ // "3.3.2. Transform Substructure"
+ kal_uint32 reserved;
+} icd_ikev2_decryption_key_add_event_struct_v1;
+
+typedef icd_ikev2_decryption_key_add_event_struct_v1 icd_ikev2_decryption_key_add_event_struct;
+
+
+#endif /* _N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_ADD_EVENT_H */
+
+
+/* Public JSON start
+"N3GPP_Offload_IKEv2_Decryption_Key_Add_Event": {"info": {"Category": "IMS", "Layer": "N3GPP", "Code": "0x2242", "Name": "N3GPP_Offload_IKEv2_Decryption_Key_Add_Event", "Type": "EVENT", "Desc": "This event is generated every time when IKEv2 SA is created successfully.\n"}, "table": {"IKEv2_Decryption_Key_Add_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT64", "1", "0", "64", "Log event structure ID"], "1": ["Versions", "IKEv2_Decryption_Key_Add_Info_Versions", "1", "64", "VAR", ""]}, "Name": "IKEv2_Decryption_Key_Add_Event"}, "IKEv2_Decryption_Key_Add_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IKEv2_Decryption_Key_Add_Info_V1", ""]}, "Name": "IKEv2_Decryption_Key_Add_Info_Versions"}, "IKEv2_Decryption_Key_Add_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SPI_i", "UINT64", "1", "0", "64", "Initiator SPI"], "1": ["SPI_r", "UINT64", "1", "64", "64", "Responder SPI"], "2": ["Encryption Key Length", "UINT32", "1", "128", "32", "Encryption Key Length (Bits)"], "3": ["Authentication Key Length", "UINT32", "1", "160", "32", "Authentication Key Length (Bits)"], "4": ["SK_ei", "UINT8", "256", "192", "2048", "Initiator Encryption Key"], "5": ["SK_er", "UINT8", "256", "2240", "2048", "Responder Encryption Key"], "6": ["SK_ai", "UINT8", "256", "4288", "2048", "Initiator Authentication Key"], "7": ["SK_ar", "UINT8", "256", "6336", "2048", "Responder Authentication Key"], "8": ["Encryption Algorithm", "UINT16", "1", "8384", "16", "Encryption Algorithm\nThe type number is same as\n\"Transform Type 1\" table in RFC7296\n\"3.3.2. Transform Substructure\""], "9": ["Authentication Algorithm", "UINT16", "1", "8400", "16", "Authentication Algorithm\nThe type number is same as\n\"Transform Type 3\" table\" in RFC7296\n\"3.3.2. Transform Substructure\""], "10": ["Reserved", "UINT32", "1", "8416", "32", ""]}, "Name": "IKEv2_Decryption_Key_Add_Info_V1"}}},
+ Public JSON end */
+// Checksum : [ec83f774f6cfcf0e5561b09da89186fe]
diff --git a/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Decryption_Key_Delete_Event.h b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Decryption_Key_Delete_Event.h
new file mode 100644
index 0000000..98c41c6
--- /dev/null
+++ b/mcu/interface/service/icd/event/n3gpp_offload/N3GPP_Offload_IKEv2_Decryption_Key_Delete_Event.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : N3GPP_Offload_IKEv2_Decryption_Key_Delete_Event
+// Category : IMS
+// Layer : N3GPP
+// Type : EVENT
+// Code : 0x2243
+// Version : V1.1rc1
+
+#ifndef _N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_DELETE_EVENT_H
+#define _N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_DELETE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_DELETE_EVENT 0x2243
+
+#define ICD_N3GPP_IKEV2_DECRYPTION_KEY_DELETE_INFO_V1 1
+
+#define ICD_IKEV2_DECRYPTION_KEY_DELETE_EVENT_STRUCT_V1_MAX_SIZE 24
+
+typedef struct {
+ kal_uint64 version; // Log event structure ID
+ kal_uint64 spi_i; // Initiator SPI
+ kal_uint64 spi_r; // Responder SPI
+} icd_ikev2_decryption_key_delete_event_struct_v1;
+
+typedef icd_ikev2_decryption_key_delete_event_struct_v1 icd_ikev2_decryption_key_delete_event_struct;
+
+
+#endif /* _N3GPP_OFFLOAD_IKEV2_DECRYPTION_KEY_DELETE_EVENT_H */
+
+
+/* Public JSON start
+"N3GPP_Offload_IKEv2_Decryption_Key_Delete_Event": {"info": {"Category": "IMS", "Layer": "N3GPP", "Code": "0x2243", "Name": "N3GPP_Offload_IKEv2_Decryption_Key_Delete_Event", "Type": "EVENT", "Desc": "This event is generated every time when IKEv2 SA is deleted\n"}, "table": {"IKEv2_Decryption_Key_Delete_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT64", "1", "0", "64", "Log event structure ID"], "1": ["Versions", "IKEv2_Decryption_Key_Delete_Info_Versions", "1", "64", "VAR", ""]}, "Name": "IKEv2_Decryption_Key_Delete_Event"}, "IKEv2_Decryption_Key_Delete_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IKEv2_Decryption_Key_Delete_Info_V1", ""]}, "Name": "IKEv2_Decryption_Key_Delete_Info_Versions"}, "IKEv2_Decryption_Key_Delete_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SPI_i", "UINT64", "1", "0", "64", "Initiator SPI"], "1": ["SPI_r", "UINT64", "1", "64", "64", "Responder SPI"]}, "Name": "IKEv2_Decryption_Key_Delete_Info_V1"}}},
+ Public JSON end */
+// Checksum : [1c47ac8f17156c9bc783c45eb8c1efe9]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_AWV_Tracked_List_Update.h b/mcu/interface/service/icd/event/nl1/NL1_AWV_Tracked_List_Update.h
new file mode 100644
index 0000000..888bad0
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_AWV_Tracked_List_Update.h
@@ -0,0 +1,48 @@
+// ICD Header Format v3
+// Name : NL1_AWV_Tracked_List_Update
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9508
+// Version : V1.3
+
+#ifndef _NL1_AWV_TRACKED_LIST_UPDATE_H
+#define _NL1_AWV_TRACKED_LIST_UPDATE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_AWV_TRACKED_LIST_UPDATE 0x9508
+
+#define ICD_NL1_NL1_AWV_TRACKED_LIST_UPDATE_EVENT_V1 1
+
+#define MAX_ICD_NL1_AWV_TRACKED_LIST_UPDATE_EVENT_STRUCT_V1_NUMBER_OF_BEAMS 64
+
+#define ICD_NL1_AWV_TRACKED_LIST_UPDATE_EVENT_STRUCT_V1_MAX_SIZE 260
+
+typedef struct {
+ kal_uint32 beam_type:2; // 0: SSB, 1: TRS, 2: CSI-RS
+ kal_uint32 beam_identifier:6; // range[1, 63]
+ kal_uint32 reserved:24;
+} nl1_awv_tracked_beam_v1;
+
+typedef nl1_awv_tracked_beam_v1 nl1_awv_tracked_beam;
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 active_head_id:2; // range[0, 2]
+ kal_uint32 number_of_beams:7; // range[1, 64]
+ kal_uint32 reserved:15;
+ nl1_awv_tracked_beam beam_list[FLEXIBLE_ARRAY_SIZE]; // N := Number of Beams
+} icd_nl1_awv_tracked_list_update_event_struct_v1;
+
+typedef icd_nl1_awv_tracked_list_update_event_struct_v1 icd_nl1_awv_tracked_list_update_event_struct;
+
+
+#endif /* _NL1_AWV_TRACKED_LIST_UPDATE_H */
+
+
+/* Internal JSON start
+"NL1_AWV_Tracked_List_Update": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9508", "Name": "NL1_AWV_Tracked_List_Update", "Type": "EVENT", "Desc": "The event is generated when AWV tracked list updates.\n"}, "table": {"NL1_AWV_Tracked_List_Update_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_AWV_Tracked_List_Update_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_AWV_Tracked_List_Update_Event"}, "NL1_AWV_Tracked_List_Update_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_AWV_Tracked_List_Update_Event_V1", ""]}, "Name": "NL1_AWV_Tracked_List_Update_Event_Versions"}, "NL1_AWV_Tracked_List_Update_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Beam List": "Number of Beams"}, "Name": "NL1_AWV_Tracked_List_Update_Event_V1", "Data": {"0": ["Active Head Id", "UINT32", "1", "0", "2", "range[0, 2]"], "1": ["Number of Beams", "UINT32", "1", "2", "7", "range[1, 64]"], "2": ["Reserved", "UINT32", "1", "9", "15", ""], "3": ["Beam List", "NL1_AWV_Tracked_Beam_V1", "N", "24", "VAR", "N := Number of Beams"]}}, "NL1_AWV_Tracked_Beam_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Beam Type", "UINT32", "1", "0", "2", "0: SSB, 1: TRS, 2: CSI-RS"], "1": ["Beam Identifier", "UINT32", "1", "2", "6", "range[1, 63]"], "2": ["Reserved", "UINT32", "1", "8", "24", ""]}, "Name": "NL1_AWV_Tracked_Beam_V1"}}},
+ Internal JSON end */
+// Checksum : [0be7dea14f2ef8bfbfea7e4a01f4b211]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_Beam_Failure_Indication.h b/mcu/interface/service/icd/event/nl1/NL1_Beam_Failure_Indication.h
new file mode 100644
index 0000000..591caa8
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_Beam_Failure_Indication.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : NL1_Beam_Failure_Indication
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9505
+// Version : V1.3
+
+#ifndef _NL1_BEAM_FAILURE_INDICATION_H
+#define _NL1_BEAM_FAILURE_INDICATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_BEAM_FAILURE_INDICATION 0x9505
+
+#define ICD_NL1_NL1_BFI_NTF_V1 1
+
+#define ICD_NL1_BEAM_FAILURE_INDICATION_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 bfi_counter:4; // range[1, 10]
+ kal_uint32 bfi_max_count:4; // range[1, 10]
+ kal_uint32 reserved:16;
+} icd_nl1_beam_failure_indication_struct_v1;
+
+typedef icd_nl1_beam_failure_indication_struct_v1 icd_nl1_beam_failure_indication_struct;
+
+
+#endif /* _NL1_BEAM_FAILURE_INDICATION_H */
+
+
+/* Public JSON start
+"NL1_Beam_Failure_Indication": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9505", "Name": "NL1_Beam_Failure_Indication", "Type": "EVENT", "Desc": "The event is generated when beam failure event occurs.\n"}, "table": {"NL1_Beam_Failure_Indication": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_BFI_Ntf_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Beam_Failure_Indication"}, "NL1_BFI_Ntf_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_BFI_Ntf_V1", ""]}, "Name": "NL1_BFI_Ntf_Versions"}, "NL1_BFI_Ntf_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BFI Counter", "UINT32", "1", "0", "4", "range[1, 10]"], "1": ["BFI Max Count", "UINT32", "1", "4", "4", "range[1, 10]"], "2": ["Reserved", "UINT32", "1", "8", "16", ""]}, "Name": "NL1_BFI_Ntf_V1"}}},
+ Public JSON end */
+// Checksum : [431e8b3520356c07763a83c017bb279f]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_FBRx_Event.h b/mcu/interface/service/icd/event/nl1/NL1_FBRx_Event.h
new file mode 100644
index 0000000..e15f323
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_FBRx_Event.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : NL1_FBRx_Event
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9503
+// Version : V1.3
+
+#ifndef _NL1_FBRX_EVENT_H
+#define _NL1_FBRX_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_FBRX_EVENT 0x9503
+
+#define ICD_NL1_NL1_FBRX_EVENT_CONTENT_V1 1
+
+#define ICD_NL1_FBRX_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 band:9; // Operating band info
+ kal_uint32 reserved:15;
+} icd_nl1_fbrx_event_struct_v1;
+
+typedef icd_nl1_fbrx_event_struct_v1 icd_nl1_fbrx_event_struct;
+
+
+#endif /* _NL1_FBRX_EVENT_H */
+
+
+/* Public JSON start
+"NL1_FBRx_Event": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9503", "Name": "NL1_FBRx_Event", "Type": "EVENT", "Desc": "The event is generated when FBRx error is more than 6dB for 20 ms .\n"}, "table": {"NL1_FBRx_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_FBRx_Event_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_FBRx_Event"}, "NL1_FBRx_Event_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_FBRx_Event_Content_V1", ""]}, "Name": "NL1_FBRx_Event_Content_Versions"}, "NL1_FBRx_Event_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["band", "UINT32", "1", "0", "9", "Operating band info"], "1": ["Reserved", "UINT32", "1", "9", "15", ""]}, "Name": "NL1_FBRx_Event_Content_V1"}}},
+ Public JSON end */
+// Checksum : [7c543608ab121e8aaabbdf2bb817f724]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_PCH_Decoding_Error_Event.h b/mcu/interface/service/icd/event/nl1/NL1_PCH_Decoding_Error_Event.h
new file mode 100644
index 0000000..50e45a8
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_PCH_Decoding_Error_Event.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NL1_PCH_Decoding_Error_Event
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9507
+// Version : V1.3
+
+#ifndef _NL1_PCH_DECODING_ERROR_EVENT_H
+#define _NL1_PCH_DECODING_ERROR_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PCH_DECODING_ERROR_EVENT 0x9507
+
+#define ICD_NL1_NL1_PCH_DECODING_ERR_EVT_V1 1
+
+#define ICD_NL1_PCH_DECODING_ERROR_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 sfn:10; // range[0, 1023] This is the SFN based on the occurrence.
+ kal_uint32 subframe:4; // range[0, 9] This is the subframe based on the occurrence.
+ kal_uint32 slot:3; // range[0, 7] This is the slot based on the occurrence.
+ kal_uint32 cell_index:4;
+ kal_uint32 reserved:3;
+} icd_nl1_pch_decoding_error_event_struct_v1;
+
+typedef icd_nl1_pch_decoding_error_event_struct_v1 icd_nl1_pch_decoding_error_event_struct;
+
+
+#endif /* _NL1_PCH_DECODING_ERROR_EVENT_H */
+
+
+/* Public JSON start
+"NL1_PCH_Decoding_Error_Event": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9507", "Name": "NL1_PCH_Decoding_Error_Event", "Type": "EVENT", "Desc": "The event is generated when beam failure event occurs.\n"}, "table": {"NL1_PCH_Decoding_Error_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_PCH_Decoding_Err_Evt_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PCH_Decoding_Error_Event"}, "NL1_PCH_Decoding_Err_Evt_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PCH_Decoding_Err_Evt_V1", ""]}, "Name": "NL1_PCH_Decoding_Err_Evt_Versions"}, "NL1_PCH_Decoding_Err_Evt_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "range[0, 1023] This is the SFN based on the occurrence."], "1": ["Subframe", "UINT32", "1", "10", "4", "range[0, 9] This is the subframe based on the occurrence."], "2": ["Slot", "UINT32", "1", "14", "3", "range[0, 7] This is the slot based on the occurrence."], "3": ["Cell Index", "UINT32", "1", "17", "4", ""], "4": ["Reserved", "UINT32", "1", "21", "3", ""]}, "Name": "NL1_PCH_Decoding_Err_Evt_V1"}}},
+ Public JSON end */
+// Checksum : [7ab93bc012fd7890b8cfaddefb597513]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_Radio_Link_Monitoring.h b/mcu/interface/service/icd/event/nl1/NL1_Radio_Link_Monitoring.h
new file mode 100644
index 0000000..0aae8e2
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_Radio_Link_Monitoring.h
@@ -0,0 +1,46 @@
+// ICD Header Format v3
+// Name : NL1_Radio_Link_Monitoring
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9502
+// Version : V1.3
+
+#ifndef _NL1_RADIO_LINK_MONITORING_H
+#define _NL1_RADIO_LINK_MONITORING_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_RADIO_LINK_MONITORING 0x9502
+
+#define ICD_NL1_NL1_RADIO_LINK_STATUS_V2 2
+
+#define ICD_NL1_RADIO_LINK_MONITORING_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the event
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the event
+ // range[0, 9]
+ kal_uint32 t310_timer_status:2; // 0: invalid
+ // 1: started
+ // 2: stopped
+ // 3: expired
+ kal_uint32 in_sync_count:4; // range[0, 10]
+ kal_uint32 reserved:4;
+ kal_uint32 out_of_sync_count:5; // range[0, 20]
+ kal_uint32 reserved_1:27;
+} icd_nl1_radio_link_monitoring_struct_v2;
+
+typedef icd_nl1_radio_link_monitoring_struct_v2 icd_nl1_radio_link_monitoring_struct;
+
+
+#endif /* _NL1_RADIO_LINK_MONITORING_H */
+
+
+/* Public JSON start
+"NL1_Radio_Link_Monitoring": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9502", "Name": "NL1_Radio_Link_Monitoring", "Type": "EVENT", "Desc": "The event is reported when every radio link changed.\n"}, "table": {"NL1_Radio_Link_Monitoring": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Radio_Link_Status_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Radio_Link_Monitoring"}, "NL1_Radio_Link_Status_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Radio_Link_Status_V1", ""], "1": ["2", "NL1_Radio_Link_Status_V2", ""]}, "Name": "NL1_Radio_Link_Status_Versions"}, "NL1_Radio_Link_Status_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["T310 Timer Status", "UINT32", "1", "14", "2", "0: stopped\n1: started\n2: expired\n3: unknown"], "3": ["Reserved", "UINT32", "1", "16", "8", ""]}, "Name": "NL1_Radio_Link_Status_V1"}, "NL1_Radio_Link_Status_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "2": ["T310 Timer Status", "UINT32", "1", "14", "2", "0: invalid\n1: started\n2: stopped\n3: expired"], "3": ["In-sync Count", "UINT32", "1", "16", "4", "range[0, 10]"], "4": ["Reserved", "UINT32", "1", "20", "4", ""], "5": ["Out-of-sync Count", "UINT32", "1", "24", "5", "range[0, 20]"], "6": ["Reserved", "UINT32", "1", "29", "27", ""]}, "Name": "NL1_Radio_Link_Status_V2"}}},
+ Public JSON end */
+// Checksum : [80ed43cdfbbe04dc2dbfacb95d110b3d]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_SFI_Config_Event.h b/mcu/interface/service/icd/event/nl1/NL1_SFI_Config_Event.h
new file mode 100644
index 0000000..8206bff
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_SFI_Config_Event.h
@@ -0,0 +1,40 @@
+// ICD Header Format v3
+// Name : NL1_SFI_Config_Event
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9504
+// Version : V1.3
+
+#ifndef _NL1_SFI_CONFIG_EVENT_H
+#define _NL1_SFI_CONFIG_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SFI_CONFIG_EVENT 0x9504
+
+#define ICD_NL1_NL1_SFI_CONFIG_EVENT_V1 1
+
+#define MAX_ICD_NL1_SFI_CONFIG_EVENT_STRUCT_V1_NUM_OF_SLOT_FORMAT 256
+
+#define ICD_NL1_SFI_CONFIG_EVENT_STRUCT_V1_MAX_SIZE 260
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 config_id:9; // range[0, 511]
+ kal_uint32 reserved:6; // range[0, 255]
+ kal_uint32 num_of_slot_format:9; // range[1, 256]
+ kal_uint8 slot_format_list[FLEXIBLE_ARRAY_SIZE]; // N := Num of Slot Format
+} icd_nl1_sfi_config_event_struct_v1;
+
+typedef icd_nl1_sfi_config_event_struct_v1 icd_nl1_sfi_config_event_struct;
+
+
+#endif /* _NL1_SFI_CONFIG_EVENT_H */
+
+
+/* Public JSON start
+"NL1_SFI_Config_Event": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9504", "Name": "NL1_SFI_Config_Event", "Type": "EVENT", "Desc": "The event is generated when DCI format 2_0(SFI-Index) is received\n"}, "table": {"NL1_SFI_Config_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_SFI_Config_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_SFI_Config_Event"}, "NL1_SFI_Config_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_SFI_Config_Event_V1", ""]}, "Name": "NL1_SFI_Config_Event_Versions"}, "NL1_SFI_Config_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Slot Format List": "Num of Slot Format"}, "Name": "NL1_SFI_Config_Event_V1", "Data": {"0": ["Config ID", "UINT32", "1", "0", "9", "range[0, 511]"], "1": ["Reserved", "UINT32", "1", "9", "6", "range[0, 255]"], "2": ["Num of Slot Format", "UINT32", "1", "15", "9", "range[1, 256]"], "3": ["Slot Format List", "UINT8", "N", "24", "VAR", "N := Num of Slot Format"]}}}},
+ Public JSON end */
+// Checksum : [db648618f22bf482c4f1324f6be8806c]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_Timing_Update_Event.h b/mcu/interface/service/icd/event/nl1/NL1_Timing_Update_Event.h
new file mode 100644
index 0000000..4e085cf
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_Timing_Update_Event.h
@@ -0,0 +1,42 @@
+// ICD Header Format v3
+// Name : NL1_Timing_Update_Event
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9506
+// Version : V1.3
+
+#ifndef _NL1_TIMING_UPDATE_EVENT_H
+#define _NL1_TIMING_UPDATE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_TIMING_UPDATE_EVENT 0x9506
+
+#define ICD_NL1_NL1_TIMING_UPDATE_V1 1
+
+#define ICD_NL1_TIMING_UPDATE_EVENT_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 tag_id:2; // range[0, 3]
+ kal_uint32 sfn:10; // range[0, 1023], the applied time of this NTA
+ kal_uint32 subframe:4; // range[0, 9], the applied time of this NTA
+ kal_uint32 slot:3; // range[0, 7], the applied time of this NTA
+ kal_uint32 reference_ul_scs:2; // 0: 15KHz, 1: 30KHz, 2: 60KHz, 3: 120KHz
+ kal_uint32 reserved:3;
+ kal_uint32 nta:22;
+ kal_uint32 reserved_1:10;
+} icd_nl1_timing_update_event_struct_v1;
+
+typedef icd_nl1_timing_update_event_struct_v1 icd_nl1_timing_update_event_struct;
+
+
+#endif /* _NL1_TIMING_UPDATE_EVENT_H */
+
+
+/* Public JSON start
+"NL1_Timing_Update_Event": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9506", "Name": "NL1_Timing_Update_Event", "Type": "EVENT", "Desc": "The event is generated when the TA offset of a TAG is updated\n"}, "table": {"NL1_Timing_Update_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_Timing_Update_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Timing_Update_Event"}, "NL1_Timing_Update_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Timing_Update_V1", ""], "1": ["2", "NL1_Timing_Update_V2", ""]}, "Name": "NL1_Timing_Update_Versions"}, "NL1_Timing_Update_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["TAG ID", "UINT32", "1", "0", "2", "range[0, 3]"], "1": ["SFN", "UINT32", "1", "2", "10", "range[0, 1023], the applied time of this NTA"], "2": ["Subframe", "UINT32", "1", "12", "4", "range[0, 9], the applied time of this NTA"], "3": ["Slot", "UINT32", "1", "16", "3", "range[0, 7], the applied time of this NTA"], "4": ["Reference UL SCS", "UINT32", "1", "19", "2", "0: 15KHz, 1: 30KHz, 2: 60KHz, 3: 120KHz"], "5": ["Reserved", "UINT32", "1", "21", "3", ""], "6": ["NTA", "UINT32", "1", "24", "22", ""], "7": ["Reserved", "UINT32", "1", "46", "10", ""]}, "Name": "NL1_Timing_Update_V1"}, "NL1_Timing_Update_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["TAG ID", "UINT32", "1", "0", "2", "range[0, 3]"], "1": ["SFN", "UINT32", "1", "2", "10", "range[0, 1023], the applied time of this NTA"], "2": ["Subframe", "UINT32", "1", "12", "4", "range[0, 9], the applied time of this NTA"], "3": ["Slot", "UINT32", "1", "16", "3", "range[0, 7], the applied time of this NTA"], "4": ["Reference UL SCS", "UINT32", "1", "19", "2", "0: 15KHz, 1: 30KHz, 2: 60KHz, 3: 120KHz"], "5": ["Reserved", "UINT32", "1", "21", "3", ""], "6": ["NTA", "INT32", "1", "24", "32", ""]}, "Name": "NL1_Timing_Update_V2"}}},
+ Public JSON end */
+// Checksum : [429b7e378d9f93e89391e0926fae88f7]
diff --git a/mcu/interface/service/icd/event/nl1/NL1_txPower_Headroom_Event.h b/mcu/interface/service/icd/event/nl1/NL1_txPower_Headroom_Event.h
new file mode 100644
index 0000000..1105421
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl1/NL1_txPower_Headroom_Event.h
@@ -0,0 +1,41 @@
+// ICD Header Format v3
+// Name : NL1_txPower_Headroom_Event
+// Category : NR
+// Layer : NL1
+// Type : EVENT
+// Code : 0x9500
+// Version : V1.3
+
+#ifndef _NL1_TXPOWER_HEADROOM_EVENT_H
+#define _NL1_TXPOWER_HEADROOM_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_TXPOWER_HEADROOM_EVENT 0x9500
+
+#define ICD_NL1_NL1_TXPOWER_HEADROOM_EVENT_CONTENT_V1 1
+
+#define ICD_NL1_TXPOWER_HEADROOM_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_int8 tx_power_headroom; // range[-32, 40]
+ kal_uint16 sfn:10; // This is the SFN based on the occurrence of the event
+ // range[0, 1023]
+ kal_uint16 subframe:4; // This is the SF based on the occurrence of the event
+ // range[0, 9]
+ kal_uint16 slot_index:2; // Slot index within this SF.
+ // range[0, 3]
+} icd_nl1_txpower_headroom_event_struct_v1;
+
+typedef icd_nl1_txpower_headroom_event_struct_v1 icd_nl1_txpower_headroom_event_struct;
+
+
+#endif /* _NL1_TXPOWER_HEADROOM_EVENT_H */
+
+
+/* Public JSON start
+"NL1_txPower_Headroom_Event": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9500", "Name": "NL1_txPower_Headroom_Event", "Type": "EVENT", "Desc": "The event is generated every 20 ms.\n"}, "table": {"NL1_TxPower_Headroom_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL1_TxPower_Headroom_Event_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_TxPower_Headroom_Event"}, "NL1_TxPower_Headroom_Event_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_TxPower_Headroom_Event_Content_V1", ""]}, "Name": "NL1_TxPower_Headroom_Event_Content_Versions"}, "NL1_TxPower_Headroom_Event_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["TX power headroom", "INT8", "1", "0", "8", "range[-32, 40]"], "1": ["SFN", "UINT16", "1", "8", "10", "This is the SFN based on the occurrence of the event\nrange[0, 1023]"], "2": ["Subframe", "UINT16", "1", "18", "4", "This is the SF based on the occurrence of the event\nrange[0, 9]"], "3": ["Slot index", "UINT16", "1", "22", "2", "Slot index within this SF.\nrange[0, 3]"]}, "Name": "NL1_TxPower_Headroom_Event_Content_V1"}}},
+ Public JSON end */
+// Checksum : [85b9ee1051cabd6e636f754b4db7725d]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_BSR_And_SR_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_BSR_And_SR_Event.h
new file mode 100644
index 0000000..667bd69
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_BSR_And_SR_Event.h
@@ -0,0 +1,41 @@
+// ICD Header Format v3
+// Name : NL2_MAC_BSR_And_SR_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9585
+// Version : V1.3
+
+#ifndef _NL2_MAC_BSR_AND_SR_EVENT_H
+#define _NL2_MAC_BSR_AND_SR_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_BSR_AND_SR_EVENT 0x9585
+
+#define ICD_NL2_NL2_MAC_BSR_AND_SR_EVENT_V1 1
+
+#define ICD_NL2_MAC_BSR_AND_SR_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 bsr_and_sr_event:8; // Bitmask of BSR / SR status:
+ // Bit 0: periodicBSR-Timer expires
+ // Bit 1: Higher priority data available
+ // Bit 2: retxBSR-Timer expires
+ // Bit 3: BSR is triggered
+ // Bit 4: SR is triggered
+ kal_uint32 reserved:16;
+} icd_nl2_mac_bsr_and_sr_event_struct_v1;
+
+typedef icd_nl2_mac_bsr_and_sr_event_struct_v1 icd_nl2_mac_bsr_and_sr_event_struct;
+
+
+#endif /* _NL2_MAC_BSR_AND_SR_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_BSR_And_SR_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9585", "Name": "NL2_MAC_BSR_And_SR_Event", "Type": "EVENT", "Desc": "It is event trigger, report when any of the BSR or SR event listed below happens\n"}, "table": {"NL2_MAC_BSR_AND_SR_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_BSR_AND_SR_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_BSR_AND_SR_Event"}, "NL2_MAC_BSR_AND_SR_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_BSR_AND_SR_Event_V1", ""], "1": ["2", "NL2_MAC_BSR_AND_SR_Event_V2", ""]}, "Name": "NL2_MAC_BSR_AND_SR_Event_Versions"}, "NL2_MAC_BSR_AND_SR_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BSR And SR Event", "UINT32", "1", "0", "8", "Bitmask of BSR / SR status:\nBit 0: periodicBSR-Timer expires\nBit 1: Higher priority data available\nBit 2: retxBSR-Timer expires\nBit 3: BSR is triggered\nBit 4: SR is triggered"], "1": ["Reserved", "UINT32", "1", "8", "16", ""]}, "Name": "NL2_MAC_BSR_AND_SR_Event_V1"}, "NL2_MAC_BSR_AND_SR_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["BSR And SR Event", "UINT32", "1", "1", "8", "Bitmask of BSR / SR status:\nBit 0: periodicBSR-Timer expires\nBit 1: Higher priority data available\nBit 2: retxBSR-Timer expires\nBit 3: BSR is triggered\nBit 4: SR is triggered"], "2": ["Reserved", "UINT32", "1", "9", "15", ""]}, "Name": "NL2_MAC_BSR_AND_SR_Event_V2"}}},
+ Public JSON end */
+// Checksum : [569f1c2501af861728111f1490bbbef0]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_Carrier_Aggregation_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_Carrier_Aggregation_Event.h
new file mode 100644
index 0000000..94b2513
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_Carrier_Aggregation_Event.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Carrier_Aggregation_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9586
+// Version : V1.3
+
+#ifndef _NL2_MAC_CARRIER_AGGREGATION_EVENT_H
+#define _NL2_MAC_CARRIER_AGGREGATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_CARRIER_AGGREGATION_EVENT 0x9586
+
+#define ICD_NL2_NL2_MAC_CARRIER_AGGREGATION_EVENT_V2 2
+
+#define ICD_NL2_MAC_CARRIER_AGGREGATION_EVENT_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 cell_group_id:1; // 0: MCG, 1:SCG
+ kal_uint32 ca:1; // 0: No CA activation.
+ // 1: CA activation on NR.
+ kal_uint32 num_ca:22; // Number of activated Scell.
+ kal_uint32 cell_index_bitmap; // Cell Index bitmap:
+ // Bitmap LSB (bit-0) is reserved for SpCell (not been used)
+ // bit i is set 1 means the ith Scell is activate.
+ // bit i is set 0 means the ith Scell is deactivate.
+ // NOTICE: bit i is not SCellIndex, but could be used to get
+ // scell config via checking Cell Index of NL1_Scell_Config of
+ // NL1_Physical_Configuration.
+} icd_nl2_mac_carrier_aggregation_event_struct_v2;
+
+typedef icd_nl2_mac_carrier_aggregation_event_struct_v2 icd_nl2_mac_carrier_aggregation_event_struct;
+
+
+#endif /* _NL2_MAC_CARRIER_AGGREGATION_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_Carrier_Aggregation_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9586", "Name": "NL2_MAC_Carrier_Aggregation_Event", "Type": "EVENT", "Desc": "This event is generated whenever the SCell Activation/Deactivation control element or SCell deactivation timer timeout is received.\n"}, "table": {"NL2_MAC_Carrier_Aggregation_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_Carrier_Aggregation_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Carrier_Aggregation_Event"}, "NL2_MAC_Carrier_Aggregation_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Carrier_Aggregation_Event_V1", ""], "1": ["2", "NL2_MAC_Carrier_Aggregation_Event_V2", ""]}, "Name": "NL2_MAC_Carrier_Aggregation_Event_Versions"}, "NL2_MAC_Carrier_Aggregation_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CA", "UINT32", "1", "0", "1", "0: No CA activation\n1: CA activation on NR"], "1": ["Num CA", "UINT32", "1", "1", "23", "Number of Carrier Aggregation"]}, "Name": "NL2_MAC_Carrier_Aggregation_Event_V1"}, "NL2_MAC_Carrier_Aggregation_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["CA", "UINT32", "1", "1", "1", "0: No CA activation.\n1: CA activation on NR."], "2": ["Num CA", "UINT32", "1", "2", "22", "Number of activated Scell."], "3": ["Cell Index bitmap", "UINT32", "1", "24", "32", "Cell Index bitmap:\nBitmap LSB (bit-0) is reserved for SpCell (not been used)\nbit i is set 1 means the ith Scell is activate.\nbit i is set 0 means the ith Scell is deactivate.\nNOTICE: bit i is not SCellIndex, but could be used to get\nscell config via checking Cell Index of NL1_Scell_Config of\nNL1_Physical_Configuration."]}, "Name": "NL2_MAC_Carrier_Aggregation_Event_V2"}}},
+ Public JSON end */
+// Checksum : [0fb4e7c3a47c8fc4e6f69a9f1018ecd5]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_Cell_Group_Configuration_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_Cell_Group_Configuration_Event.h
new file mode 100644
index 0000000..2db6e1e
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_Cell_Group_Configuration_Event.h
@@ -0,0 +1,151 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Cell_Group_Configuration_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9587
+// Version : V1.3
+
+#ifndef _NL2_MAC_CELL_GROUP_CONFIGURATION_EVENT_H
+#define _NL2_MAC_CELL_GROUP_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_CELL_GROUP_CONFIGURATION_EVENT 0x9587
+
+#define ICD_NL2_NL2_MAC_CELL_GROUP_CONFIGURATION_EVENT_V1 1
+
+#define ICD_NL2_MAC_CELL_GROUP_CONFIGURATION_EVENT_STRUCT_V1_MAX_SIZE 112
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 datainactivitytimer; // Value range: 1 - 180. Unit: seconds
+ kal_uint16 reserved;
+} nl2_mac_datainactivitytimer_config_v1;
+
+typedef nl2_mac_datainactivitytimer_config_v1 nl2_mac_datainactivitytimer_config;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 multiplephr; // 0: Not configured, 1: Configured
+ kal_uint8 phr_tx_powerfactorchang; // Value range: 1 - 6, Infinity (255). Unit: dB
+ kal_uint8 phr_type2othercell; // 0: Not configured, 1: Configured
+ kal_uint16 phr_periodictimer; // Value range: 10 - 1000, Infinity (65535)
+ // Unit: subframes
+ kal_uint16 phr_prohibittimer; // Value range: 0 - 1000. Unit: subframes
+ kal_uint8 phr_modeothercg; // 0: Real, 1: Virtual
+ kal_uint8 reserved[3];
+} nl2_mac_phr_config_v1;
+
+typedef nl2_mac_phr_config_v1 nl2_mac_phr_config;
+
+typedef struct {
+ kal_uint8 tag_id; // Value range: 0 - 3
+ kal_uint8 reserved; // Value range: 1 - 4
+ kal_uint16 timealignmenttimer; // Value range: 500 - 10240, Infinity (65535).
+ // Unit: ms
+} nl2_mac_tag_config_v1;
+
+typedef nl2_mac_tag_config_v1 nl2_mac_tag_config;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 number_of_tag_configurations; // Value range: 1 - 4
+ kal_uint16 reserved;
+ nl2_mac_tag_config tag_configuration[4];
+} nl2_mac_tag_config_list_v1;
+
+typedef nl2_mac_tag_config_list_v1 nl2_mac_tag_config_list;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 logicalchannelsr_delaytimer_valid; // 0: Not valid, 1: Valid
+ kal_uint16 logicalchannelsr_delaytimer; // Value range: 20 - 2560. Unit: subframes
+ kal_uint16 periodicbsr_timer; // Value range: 1 - 2560, Infinity (65535).
+ // Unit: subframes
+ kal_uint16 retxbsr_timer; // Value range: 10 - 10240. Unit: subframes
+} nl2_mac_bsr_config_v1;
+
+typedef nl2_mac_bsr_config_v1 nl2_mac_bsr_config;
+
+typedef struct {
+ kal_uint8 scheduling_request_id; // Value range: 0 - 7
+ kal_uint8 sr_prohibittimer; // Value range: 0 - 128. Unit: ms
+ kal_uint8 sr_transmax; // Value range: 4 - 64. Unit: SR transmissions
+ kal_uint8 reserved;
+} nl2_mac_scheduling_request_config_v1;
+
+typedef nl2_mac_scheduling_request_config_v1 nl2_mac_scheduling_request_config;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 number_of_scheduling_request_configurations; // Value range: 1 - 8
+ kal_uint16 reserved;
+ nl2_mac_scheduling_request_config scheduling_request_configuration[8];
+} nl2_mac_scheduling_request_config_list_v1;
+
+typedef nl2_mac_scheduling_request_config_list_v1 nl2_mac_scheduling_request_config_list;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 drx_shortcycletimer; // Value range: 1 - 16. Unit: short DRX cycles
+ kal_uint16 drx_shortcycle; // Value range: 2 - 640. Unit: ms
+} nl2_mac_drx_short_cycle_config_v1;
+
+typedef nl2_mac_drx_short_cycle_config_v1 nl2_mac_drx_short_cycle_config;
+
+typedef struct {
+ kal_uint8 drx_ondurationtimer_unit; // 0: 1/32ms, 1: ms
+ kal_uint8 reserved;
+ kal_uint16 drx_ondurationtimer; // Value range when drx-OnDurationTimer unit is 1: 1 - 1600
+ // Value range when drx-OnDurationTimer unit is 0: 1 - 31
+} nl2_mac_drx_ondurationtimer_config_v1;
+
+typedef nl2_mac_drx_ondurationtimer_config_v1 nl2_mac_drx_ondurationtimer_config;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 drx_harq_rtt_timerdl; // Value range: 0 - 56. Unit: symbols
+ kal_uint8 drx_harq_rtt_timerul; // Value range: 0 - 56. Unit: symbols
+ kal_uint8 drx_slotoffset; // Value range: 0 - 31. Unit: 1/32ms
+ nl2_mac_drx_ondurationtimer_config drx_ondurationtimer_config;
+ nl2_mac_drx_short_cycle_config drx_short_cycle_config;
+ kal_uint16 drx_inactivitytimer; // Value range: 0 - 2560. Unit: ms
+ kal_uint16 drx_retransmissiontimerdl; // Value range: 0 - 320. Unit: slots
+ kal_uint16 drx_retransmissiontimerul; // Value range: 0 - 320. Unit: slots
+ kal_uint16 drx_longcycle; // Value range: 10 - 10240. Unit: ms
+ kal_uint16 drx_startoffset; // Parameter for RLC UM, Uplink RLC SN field size
+ kal_uint16 reserved; // Value range: 0 - 10239. Unit: ms
+} nl2_mac_drx_config_v1;
+
+typedef nl2_mac_drx_config_v1 nl2_mac_drx_config;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cell_group_id; // 0: MCG, 1:SCG
+ kal_uint8 cause; // 0: Normal
+ // 1: Reconfiguration with sync (HO; PSCell add/change)
+ // 2: RRC connection release
+ // 3: RRC connection re-establishment
+ kal_uint8 skip_uplink_tx_dynamic; // 0: Disabled, 1: Enabled
+ kal_uint8 csi_mask; // 0: Not setup, 1: Setup
+ kal_uint8 reserved[3];
+ nl2_mac_drx_config drx_config;
+ nl2_mac_scheduling_request_config_list scheduling_request_config;
+ nl2_mac_bsr_config bsr_config;
+ nl2_mac_tag_config_list tag_config;
+ nl2_mac_phr_config phr_config;
+ nl2_mac_datainactivitytimer_config datainactivitytimer_config;
+} icd_nl2_mac_cell_group_configuration_event_struct_v1;
+
+typedef icd_nl2_mac_cell_group_configuration_event_struct_v1 icd_nl2_mac_cell_group_configuration_event_struct;
+
+
+#endif /* _NL2_MAC_CELL_GROUP_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_Cell_Group_Configuration_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9587", "Name": "NL2_MAC_Cell_Group_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when MAC configuration is changed\n"}, "table": {"NL2_MAC_Cell_Group_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_Cell_Group_Configuration_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Cell_Group_Configuration_Event"}, "NL2_MAC_Cell_Group_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Cell_Group_Configuration_Event_V1", ""]}, "Name": "NL2_MAC_Cell_Group_Configuration_Event_Versions"}, "NL2_MAC_Cell_Group_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1:SCG"], "1": ["Cause", "UINT8", "1", "8", "8", "0: Normal\n1: Reconfiguration with sync (HO; PSCell add/change)\n2: RRC connection release\n3: RRC connection re-establishment"], "2": ["Skip uplink TX dynamic", "UINT8", "1", "16", "8", "0: Disabled, 1: Enabled"], "3": ["CSI mask", "UINT8", "1", "24", "8", "0: Not setup, 1: Setup"], "4": ["Reserved", "UINT8", "3", "32", "24", ""], "5": ["DRX config", "NL2_MAC_DRX_Config_V1", "1", "56", "192", ""], "6": ["Scheduling Request config", "NL2_MAC_Scheduling_Request_Config_List_V1", "1", "248", "288", ""], "7": ["BSR config", "NL2_MAC_BSR_Config_V1", "1", "536", "64", ""], "8": ["TAG config", "NL2_MAC_TAG_Config_List_V1", "1", "600", "160", ""], "9": ["PHR config", "NL2_MAC_PHR_Config_V1", "1", "760", "96", ""], "10": ["DataInactivityTimer config", "NL2_MAC_DataInactivityTimer_Config_V1", "1", "856", "32", ""]}, "Name": "NL2_MAC_Cell_Group_Configuration_Event_V1"}, "NL2_MAC_DRX_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["drx-HARQ-RTT-TimerDL", "UINT8", "1", "8", "8", "Value range: 0 - 56. Unit: symbols"], "2": ["drx-HARQ-RTT-TimerUL", "UINT8", "1", "16", "8", "Value range: 0 - 56. Unit: symbols"], "3": ["drx-SlotOffset", "UINT8", "1", "24", "8", "Value range: 0 - 31. Unit: 1/32ms"], "4": ["drx-OnDurationTimer config", "NL2_MAC_drx_OnDurationTimer_Config_V1", "1", "32", "32", ""], "5": ["DRX short cycle config", "NL2_MAC_DRX_Short_Cycle_Config_V1", "1", "64", "32", ""], "6": ["drx-InactivityTimer", "UINT16", "1", "96", "16", "Value range: 0 - 2560. Unit: ms"], "7": ["drx-RetransmissionTimerDL", "UINT16", "1", "112", "16", "Value range: 0 - 320. Unit: slots"], "8": ["drx-RetransmissionTimerUL", "UINT16", "1", "128", "16", "Value range: 0 - 320. Unit: slots"], "9": ["drx-LongCycle", "UINT16", "1", "144", "16", "Value range: 10 - 10240. Unit: ms"], "10": ["drx-StartOffset", "UINT16", "1", "160", "16", "Parameter for RLC UM, Uplink RLC SN field size"], "11": ["Reserved", "UINT16", "1", "176", "16", "Value range: 0 - 10239. Unit: ms"]}, "Name": "NL2_MAC_DRX_Config_V1"}, "NL2_MAC_drx_OnDurationTimer_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["drx-OnDurationTimer unit", "UINT8", "1", "0", "8", "0: 1/32ms, 1: ms"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["drx-OnDurationTimer", "UINT16", "1", "16", "16", "Value range when drx-OnDurationTimer unit is 1: 1 - 1600\nValue range when drx-OnDurationTimer unit is 0: 1 - 31"]}, "Name": "NL2_MAC_drx_OnDurationTimer_Config_V1"}, "NL2_MAC_DRX_Short_Cycle_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["drx-ShortCycleTimer", "UINT8", "1", "8", "8", "Value range: 1 - 16. Unit: short DRX cycles"], "2": ["drx-ShortCycle", "UINT16", "1", "16", "16", "Value range: 2 - 640. Unit: ms"]}, "Name": "NL2_MAC_DRX_Short_Cycle_Config_V1"}, "NL2_MAC_Scheduling_Request_Config_List_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["Number of scheduling request configurations", "UINT8", "1", "8", "8", "Value range: 1 - 8"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Scheduling request configuration", "NL2_MAC_Scheduling_Request_Config_V1", "8", "32", "256", ""]}, "Name": "NL2_MAC_Scheduling_Request_Config_List_V1"}, "NL2_MAC_Scheduling_Request_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Scheduling request ID", "UINT8", "1", "0", "8", "Value range: 0 - 7"], "1": ["sr-ProhibitTimer", "UINT8", "1", "8", "8", "Value range: 0 - 128. Unit: ms"], "2": ["sr-TransMax", "UINT8", "1", "16", "8", "Value range: 4 - 64. Unit: SR transmissions"], "3": ["Reserved", "UINT8", "1", "24", "8", ""]}, "Name": "NL2_MAC_Scheduling_Request_Config_V1"}, "NL2_MAC_BSR_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["logicalChannelSR-DelayTimer valid", "UINT8", "1", "8", "8", "0: Not valid, 1: Valid"], "2": ["logicalChannelSR-DelayTimer", "UINT16", "1", "16", "16", "Value range: 20 - 2560. Unit: subframes"], "3": ["periodicBSR-Timer", "UINT16", "1", "32", "16", "Value range: 1 - 2560, Infinity (65535).\nUnit: subframes"], "4": ["retxBSR-Timer", "UINT16", "1", "48", "16", "Value range: 10 - 10240. Unit: subframes"]}, "Name": "NL2_MAC_BSR_Config_V1"}, "NL2_MAC_TAG_Config_List_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["Number of TAG configurations", "UINT8", "1", "8", "8", "Value range: 1 - 4"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["TAG configuration", "NL2_MAC_TAG_Config_V1", "4", "32", "128", ""]}, "Name": "NL2_MAC_TAG_Config_List_V1"}, "NL2_MAC_TAG_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["TAG ID", "UINT8", "1", "0", "8", "Value range: 0 - 3"], "1": ["Reserved", "UINT8", "1", "8", "8", "Value range: 1 - 4"], "2": ["timeAlignmentTimer", "UINT16", "1", "16", "16", "Value range: 500 - 10240, Infinity (65535).\nUnit: ms"]}, "Name": "NL2_MAC_TAG_Config_V1"}, "NL2_MAC_PHR_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["multiplePHR", "UINT8", "1", "8", "8", "0: Not configured, 1: Configured"], "2": ["phr-Tx-PowerFactorChang", "UINT8", "1", "16", "8", "Value range: 1 - 6, Infinity (255). Unit: dB"], "3": ["phr-Type2OtherCell", "UINT8", "1", "24", "8", "0: Not configured, 1: Configured"], "4": ["phr-PeriodicTimer", "UINT16", "1", "32", "16", "Value range: 10 - 1000, Infinity (65535)\nUnit: subframes"], "5": ["phr-ProhibitTimer", "UINT16", "1", "48", "16", "Value range: 0 - 1000. Unit: subframes"], "6": ["phr-ModeOtherCG", "UINT8", "1", "64", "8", "0: Real, 1: Virtual"], "7": ["Reserved", "UINT8", "3", "72", "24", ""]}, "Name": "NL2_MAC_PHR_Config_V1"}, "NL2_MAC_DataInactivityTimer_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["dataInactivityTimer", "UINT8", "1", "8", "8", "Value range: 1 - 180. Unit: seconds"], "2": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "NL2_MAC_DataInactivityTimer_Config_V1"}}},
+ Public JSON end */
+// Checksum : [16612bf68147b62caadee591a947e0e0]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_DRX_Status_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_DRX_Status_Event.h
new file mode 100644
index 0000000..7ba27a5
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_DRX_Status_Event.h
@@ -0,0 +1,117 @@
+// ICD Header Format v3
+// Name : NL2_MAC_DRX_Status_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9588
+// Version : V1.3
+
+#ifndef _NL2_MAC_DRX_STATUS_EVENT_H
+#define _NL2_MAC_DRX_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_DRX_STATUS_EVENT 0x9588
+
+#define ICD_NL2_NL2_MAC_DRX_STATUS_EVENT_V5 5
+
+#define ICD_NL2_MAC_DRX_STATUS_EVENT_STRUCT_V5_MAX_SIZE 32
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 drx_shortcycletimer; // Value range: 1 - 16. Unit: short DRX cycles
+ kal_uint16 drx_shortcycle; // Value range: 2 - 640. Unit: ms
+} nl2_mac_drx_short_cycle_configure_v1;
+
+typedef nl2_mac_drx_short_cycle_configure_v1 nl2_mac_drx_short_cycle_configure;
+
+typedef struct {
+ kal_uint8 drx_ondurationtimer_unit; // 0: 1/32ms, 1: ms
+ kal_uint8 reserved;
+ kal_uint16 drx_ondurationtimer; // Value range when drx-OnDurationTimer unit is 1: 1 - 1600
+ // Value range when drx-OnDurationTimer unit is 0: 1 - 31
+} nl2_mac_drx_ondurationtimer_configure_v1;
+
+typedef nl2_mac_drx_ondurationtimer_configure_v1 nl2_mac_drx_ondurationtimer_configure;
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 drx_harq_rtt_timerdl; // Value range: 0 - 56. Unit: symbols
+ kal_uint8 drx_harq_rtt_timerul; // Value range: 0 - 56. Unit: symbols
+ kal_uint8 drx_slotoffset; // Value range: 0 - 31. Unit: 1/32ms
+ nl2_mac_drx_ondurationtimer_configure drx_ondurationtimer_config;
+ nl2_mac_drx_short_cycle_configure drx_short_cycle_config;
+ kal_uint16 drx_inactivitytimer; // Value range: 0 - 2560. Unit: ms
+ kal_uint16 drx_retransmissiontimerdl; // Value range: 0 - 320. Unit: slots
+ kal_uint16 drx_retransmissiontimerul; // Value range: 0 - 320. Unit: slots
+ kal_uint16 drx_longcycle; // Value range: 10 - 10240. Unit: ms
+ kal_uint16 drx_startoffset; // Parameter for RLC UM, Uplink RLC SN field size
+ kal_uint16 reserved; // Value range: 0 - 10239. Unit: ms
+} nl2_mac_drx_configure_v1;
+
+typedef nl2_mac_drx_configure_v1 nl2_mac_drx_configure;
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 cell_group_id:1; // 0: MCG, 1:SCG
+ kal_uint32 event_sfn:10; // This is the SFN based on the occurrence of
+ // the event.range[0, 1023]
+ kal_uint32 event_subframe:4; // This is the SF based on the occurrence of
+ // the event.range[0, 9]
+ kal_uint32 event_slot_index:3; // Slot index within this SF.range[0, 7]
+ kal_uint32 reserved:6;
+ kal_uint32 drx_status_valid:1; // Values:
+ // 0: DRX status unchange
+ // 1: DRX status change
+ kal_uint32 drx_status:1; // Valid when DRX status valid = 1.
+ // Values:
+ // 0: Inactive
+ // 1: Active
+ kal_uint32 next_on_time_sfn:10; // Valid if DRX status valid = 1.
+ // This is the SFN based on the next on time.
+ // range[0, 1023]
+ kal_uint32 next_on_time_subframe:4; // Valid if DRX status valid = 1.
+ // This is the SF based on the next on time.
+ // range[0, 9]
+ kal_uint32 next_on_time_slot_index:3; // Valid if DRX status valid = 1.
+ // Slot index within this SF.
+ // range[0, 7]
+ kal_uint32 cycle_type_valid:1; // Values:
+ // 0: Cycle type unchange
+ // 1: Cycle type change
+ kal_uint32 cycle_type:1; // Valid when Cycle type valid = 1
+ // Values:
+ // 0: Short cycle
+ // 1: Long cycle
+ kal_uint32 inactivity_timer_status_valid:1; // Values:
+ // 0: Inactivity timer status unchange
+ // 1: Inactivity timer status change
+ kal_uint32 inactivity_timer_status:1; // Valid when Inactivity timer status valid = 1.
+ // Values:
+ // 0: Inactivity timer starts
+ // 1: Inactivity timer expires
+ // Note: Inactivity timer restarts is not
+ // included in the timer status update to reduce
+ // system overhead.
+ kal_uint32 slot_time_unit:3; // Slot time unit of DRX ICD time is
+ // based on this scs field.
+ // Values:
+ // 0: 15kHz(1ms)
+ // 1: 30kHz(0.5ms)
+ // 2: 60 kHz(0.25ms)
+ // 3: 120kHz (0.125ms)
+ kal_uint32 reserved_1:6;
+ nl2_mac_drx_configure drx_config;
+} icd_nl2_mac_drx_status_event_struct_v5;
+
+typedef icd_nl2_mac_drx_status_event_struct_v5 icd_nl2_mac_drx_status_event_struct;
+
+
+#endif /* _NL2_MAC_DRX_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_DRX_Status_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9588", "Name": "NL2_MAC_DRX_Status_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when DRX status or cycle change.\n"}, "table": {"NL2_MAC_DRX_Status_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_DRX_Status_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_DRX_Status_Event"}, "NL2_MAC_DRX_Status_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_DRX_Status_Event_V1", ""], "1": ["2", "NL2_MAC_DRX_Status_Event_V2", "Adding DRX configuration"], "2": ["3", "NL2_MAC_DRX_Status_Event_V3", "Adding DRX configuration"], "3": ["4", "NL2_MAC_DRX_Status_Event_V4", "Rename NL2_MAC_DRX_Config_V1 to NL2_MAC_DRX_Configure_V1"], "4": ["5", "NL2_MAC_DRX_Status_Event_V5", "Add DRX Inactivity Timer"]}, "Name": "NL2_MAC_DRX_Status_Event_Versions"}, "NL2_MAC_DRX_Status_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Event SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of\nthe event.range[0, 1023]"], "1": ["Event Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of\nthe event.range[0, 9]"], "2": ["Event Slot index", "UINT32", "1", "14", "3", "Slot index within this SF.range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["DRX status valid", "UINT32", "1", "24", "1", "Values:\n0: DRX status unchange\n1: DRX status change"], "5": ["DRX status", "UINT32", "1", "25", "1", "Valid when DRX status valid = 1.\nValues:\n0: Inactive\n1: Active"], "6": ["Next On Time SFN", "UINT32", "1", "26", "10", "Valid if DRX status valid = 1.\nThis is the SFN based on the next on time.\nrange[0, 1023]"], "7": ["Next On Time Subframe", "UINT32", "1", "36", "4", "Valid if DRX status valid = 1.\nThis is the SF based on the next on time.\nrange[0, 9]"], "8": ["Next On Time Slot index", "UINT32", "1", "40", "3", "Valid if DRX status valid = 1.\nSlot index within this SF.\nrange[0, 7]"], "9": ["Cycle type valid", "UINT32", "1", "43", "1", "Values:\n0: Cycle type unchange\n1: Cycle type change"], "10": ["Cycle type", "UINT32", "1", "44", "1", "Valid when Cycle type valid = 1\nValues:\n0: Short cycle\n1: Long cycle"], "11": ["Reserved", "UINT32", "1", "45", "11", ""]}, "Name": "NL2_MAC_DRX_Status_Event_V1"}, "NL2_MAC_DRX_Status_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Event SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of\nthe event.range[0, 1023]"], "1": ["Event Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of\nthe event.range[0, 9]"], "2": ["Event Slot index", "UINT32", "1", "14", "3", "Slot index within this SF.range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["DRX status valid", "UINT32", "1", "24", "1", "Values:\n0: DRX status unchange\n1: DRX status change"], "5": ["DRX status", "UINT32", "1", "25", "1", "Valid when DRX status valid = 1.\nValues:\n0: Inactive\n1: Active"], "6": ["Next On Time SFN", "UINT32", "1", "26", "10", "Valid if DRX status valid = 1.\nThis is the SFN based on the next on time.\nrange[0, 1023]"], "7": ["Next On Time Subframe", "UINT32", "1", "36", "4", "Valid if DRX status valid = 1.\nThis is the SF based on the next on time.\nrange[0, 9]"], "8": ["Next On Time Slot index", "UINT32", "1", "40", "3", "Valid if DRX status valid = 1.\nSlot index within this SF.\nrange[0, 7]"], "9": ["Cycle type valid", "UINT32", "1", "43", "1", "Values:\n0: Cycle type unchange\n1: Cycle type change"], "10": ["Cycle type", "UINT32", "1", "44", "1", "Valid when Cycle type valid = 1\nValues:\n0: Short cycle\n1: Long cycle"], "11": ["Reserved", "UINT32", "1", "45", "11", ""], "12": ["DRX config", "NL2_MAC_DRX_Config_V1", "1", "56", "192", ""]}, "Name": "NL2_MAC_DRX_Status_Event_V2"}, "NL2_MAC_DRX_Status_Event_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Event SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of\nthe event.range[0, 1023]"], "2": ["Event Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of\nthe event.range[0, 9]"], "3": ["Event Slot index", "UINT32", "1", "15", "3", "Slot index within this SF.range[0, 7]"], "4": ["Reserved", "UINT32", "1", "18", "6", ""], "5": ["DRX status valid", "UINT32", "1", "24", "1", "Values:\n0: DRX status unchange\n1: DRX status change"], "6": ["DRX status", "UINT32", "1", "25", "1", "Valid when DRX status valid = 1.\nValues:\n0: Inactive\n1: Active"], "7": ["Next On Time SFN", "UINT32", "1", "26", "10", "Valid if DRX status valid = 1.\nThis is the SFN based on the next on time.\nrange[0, 1023]"], "8": ["Next On Time Subframe", "UINT32", "1", "36", "4", "Valid if DRX status valid = 1.\nThis is the SF based on the next on time.\nrange[0, 9]"], "9": ["Next On Time Slot index", "UINT32", "1", "40", "3", "Valid if DRX status valid = 1.\nSlot index within this SF.\nrange[0, 7]"], "10": ["Cycle type valid", "UINT32", "1", "43", "1", "Values:\n0: Cycle type unchange\n1: Cycle type change"], "11": ["Cycle type", "UINT32", "1", "44", "1", "Valid when Cycle type valid = 1\nValues:\n0: Short cycle\n1: Long cycle"], "12": ["Reserved", "UINT32", "1", "45", "11", ""], "13": ["DRX config", "NL2_MAC_DRX_Config_V1", "1", "56", "192", ""]}, "Name": "NL2_MAC_DRX_Status_Event_V3"}, "NL2_MAC_DRX_Status_Event_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Event SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of\nthe event.range[0, 1023]"], "2": ["Event Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of\nthe event.range[0, 9]"], "3": ["Event Slot index", "UINT32", "1", "15", "3", "Slot index within this SF.range[0, 7]"], "4": ["Reserved", "UINT32", "1", "18", "6", ""], "5": ["DRX status valid", "UINT32", "1", "24", "1", "Values:\n0: DRX status unchange\n1: DRX status change"], "6": ["DRX status", "UINT32", "1", "25", "1", "Valid when DRX status valid = 1.\nValues:\n0: Inactive\n1: Active"], "7": ["Next On Time SFN", "UINT32", "1", "26", "10", "Valid if DRX status valid = 1.\nThis is the SFN based on the next on time.\nrange[0, 1023]"], "8": ["Next On Time Subframe", "UINT32", "1", "36", "4", "Valid if DRX status valid = 1.\nThis is the SF based on the next on time.\nrange[0, 9]"], "9": ["Next On Time Slot index", "UINT32", "1", "40", "3", "Valid if DRX status valid = 1.\nSlot index within this SF.\nrange[0, 7]"], "10": ["Cycle type valid", "UINT32", "1", "43", "1", "Values:\n0: Cycle type unchange\n1: Cycle type change"], "11": ["Cycle type", "UINT32", "1", "44", "1", "Valid when Cycle type valid = 1\nValues:\n0: Short cycle\n1: Long cycle"], "12": ["Reserved", "UINT32", "1", "45", "11", ""], "13": ["DRX config", "NL2_MAC_DRX_Configure_V1", "1", "56", "192", ""]}, "Name": "NL2_MAC_DRX_Status_Event_V4"}, "NL2_MAC_DRX_Status_Event_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Event SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of\nthe event.range[0, 1023]"], "2": ["Event Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of\nthe event.range[0, 9]"], "3": ["Event Slot index", "UINT32", "1", "15", "3", "Slot index within this SF.range[0, 7]"], "4": ["Reserved", "UINT32", "1", "18", "6", ""], "5": ["DRX status valid", "UINT32", "1", "24", "1", "Values:\n0: DRX status unchange\n1: DRX status change"], "6": ["DRX status", "UINT32", "1", "25", "1", "Valid when DRX status valid = 1.\nValues:\n0: Inactive\n1: Active"], "7": ["Next On Time SFN", "UINT32", "1", "26", "10", "Valid if DRX status valid = 1.\nThis is the SFN based on the next on time.\nrange[0, 1023]"], "8": ["Next On Time Subframe", "UINT32", "1", "36", "4", "Valid if DRX status valid = 1.\nThis is the SF based on the next on time.\nrange[0, 9]"], "9": ["Next On Time Slot index", "UINT32", "1", "40", "3", "Valid if DRX status valid = 1.\nSlot index within this SF.\nrange[0, 7]"], "10": ["Cycle type valid", "UINT32", "1", "43", "1", "Values:\n0: Cycle type unchange\n1: Cycle type change"], "11": ["Cycle type", "UINT32", "1", "44", "1", "Valid when Cycle type valid = 1\nValues:\n0: Short cycle\n1: Long cycle"], "12": ["Inactivity timer status valid", "UINT32", "1", "45", "1", "Values:\n0: Inactivity timer status unchange\n1: Inactivity timer status change"], "13": ["Inactivity timer status", "UINT32", "1", "46", "1", "Valid when Inactivity timer status valid = 1.\nValues:\n0: Inactivity timer starts\n1: Inactivity timer expires\nNote: Inactivity timer restarts is not\nincluded in the timer status update to reduce\nsystem overhead."], "14": ["Slot time unit", "UINT32", "1", "47", "3", "Slot time unit of DRX ICD time is\nbased on this scs field.\nValues:\n0: 15kHz(1ms)\n1: 30kHz(0.5ms)\n2: 60 kHz(0.25ms)\n3: 120kHz (0.125ms)"], "15": ["Reserved", "UINT32", "1", "50", "6", ""], "16": ["DRX config", "NL2_MAC_DRX_Configure_V1", "1", "56", "192", ""]}, "Name": "NL2_MAC_DRX_Status_Event_V5"}, "NL2_MAC_DRX_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["drx-HARQ-RTT-TimerDL", "UINT8", "1", "8", "8", "Value range: 0 - 56. Unit: symbols"], "2": ["drx-HARQ-RTT-TimerUL", "UINT8", "1", "16", "8", "Value range: 0 - 56. Unit: symbols"], "3": ["drx-SlotOffset", "UINT8", "1", "24", "8", "Value range: 0 - 31. Unit: 1/32ms"], "4": ["drx-OnDurationTimer config", "NL2_MAC_drx_OnDurationTimer_Config_V1", "1", "32", "32", ""], "5": ["DRX short cycle config", "NL2_MAC_DRX_Short_Cycle_Config_V1", "1", "64", "32", ""], "6": ["drx-InactivityTimer", "UINT16", "1", "96", "16", "Value range: 0 - 2560. Unit: ms"], "7": ["drx-RetransmissionTimerDL", "UINT16", "1", "112", "16", "Value range: 0 - 320. Unit: slots"], "8": ["drx-RetransmissionTimerUL", "UINT16", "1", "128", "16", "Value range: 0 - 320. Unit: slots"], "9": ["drx-LongCycle", "UINT16", "1", "144", "16", "Value range: 10 - 10240. Unit: ms"], "10": ["drx-StartOffset", "UINT16", "1", "160", "16", "Parameter for RLC UM, Uplink RLC SN field size"], "11": ["Reserved", "UINT16", "1", "176", "16", "Value range: 0 - 10239. Unit: ms"]}, "Name": "NL2_MAC_DRX_Config_V1"}, "NL2_MAC_DRX_Configure_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["drx-HARQ-RTT-TimerDL", "UINT8", "1", "8", "8", "Value range: 0 - 56. Unit: symbols"], "2": ["drx-HARQ-RTT-TimerUL", "UINT8", "1", "16", "8", "Value range: 0 - 56. Unit: symbols"], "3": ["drx-SlotOffset", "UINT8", "1", "24", "8", "Value range: 0 - 31. Unit: 1/32ms"], "4": ["drx-OnDurationTimer config", "NL2_MAC_drx_OnDurationTimer_Configure_V1", "1", "32", "32", ""], "5": ["DRX short cycle config", "NL2_MAC_DRX_Short_Cycle_Configure_V1", "1", "64", "32", ""], "6": ["drx-InactivityTimer", "UINT16", "1", "96", "16", "Value range: 0 - 2560. Unit: ms"], "7": ["drx-RetransmissionTimerDL", "UINT16", "1", "112", "16", "Value range: 0 - 320. Unit: slots"], "8": ["drx-RetransmissionTimerUL", "UINT16", "1", "128", "16", "Value range: 0 - 320. Unit: slots"], "9": ["drx-LongCycle", "UINT16", "1", "144", "16", "Value range: 10 - 10240. Unit: ms"], "10": ["drx-StartOffset", "UINT16", "1", "160", "16", "Parameter for RLC UM, Uplink RLC SN field size"], "11": ["Reserved", "UINT16", "1", "176", "16", "Value range: 0 - 10239. Unit: ms"]}, "Name": "NL2_MAC_DRX_Configure_V1"}, "NL2_MAC_drx_OnDurationTimer_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["drx-OnDurationTimer unit", "UINT8", "1", "0", "8", "0: 1/32ms, 1: ms"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["drx-OnDurationTimer", "UINT16", "1", "16", "16", "Value range when drx-OnDurationTimer unit is 1: 1 - 1600\nValue range when drx-OnDurationTimer unit is 0: 1 - 31"]}, "Name": "NL2_MAC_drx_OnDurationTimer_Config_V1"}, "NL2_MAC_DRX_Short_Cycle_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["drx-ShortCycleTimer", "UINT8", "1", "8", "8", "Value range: 1 - 16. Unit: short DRX cycles"], "2": ["drx-ShortCycle", "UINT16", "1", "16", "16", "Value range: 2 - 640. Unit: ms"]}, "Name": "NL2_MAC_DRX_Short_Cycle_Config_V1"}, "NL2_MAC_drx_OnDurationTimer_Configure_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["drx-OnDurationTimer unit", "UINT8", "1", "0", "8", "0: 1/32ms, 1: ms"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["drx-OnDurationTimer", "UINT16", "1", "16", "16", "Value range when drx-OnDurationTimer unit is 1: 1 - 1600\nValue range when drx-OnDurationTimer unit is 0: 1 - 31"]}, "Name": "NL2_MAC_drx_OnDurationTimer_Configure_V1"}, "NL2_MAC_DRX_Short_Cycle_Configure_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["drx-ShortCycleTimer", "UINT8", "1", "8", "8", "Value range: 1 - 16. Unit: short DRX cycles"], "2": ["drx-ShortCycle", "UINT16", "1", "16", "16", "Value range: 2 - 640. Unit: ms"]}, "Name": "NL2_MAC_DRX_Short_Cycle_Configure_V1"}}},
+ Public JSON end */
+// Checksum : [5495f66bfc739b1d25cdde89c9c15d88]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_Erroneous_Protocol_Data_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_Erroneous_Protocol_Data_Event.h
new file mode 100644
index 0000000..10283fc
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_Erroneous_Protocol_Data_Event.h
@@ -0,0 +1,40 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Erroneous_Protocol_Data_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9591
+// Version : V1.3
+
+#ifndef _NL2_MAC_ERRONEOUS_PROTOCOL_DATA_EVENT_H
+#define _NL2_MAC_ERRONEOUS_PROTOCOL_DATA_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_ERRONEOUS_PROTOCOL_DATA_EVENT 0x9591
+
+#define ICD_NL2_NL2_MAC_ERRONEOUS_PROTOCOL_DATA_EVENT_V1 1
+
+#define ICD_NL2_MAC_ERRONEOUS_PROTOCOL_DATA_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cell_group_id:1; // 0: MCG, 1:SCG
+ kal_uint8 reserved:7;
+ kal_uint8 erroneous_bitmap; // 0x1 : DL assignment with Reserved or not support LCID is received.
+ // 0x2 : DL assignment with not configured LCID is received.
+ // Other bits are reserved for future.
+ kal_uint8 reserved_1;
+} icd_nl2_mac_erroneous_protocol_data_event_struct_v1;
+
+typedef icd_nl2_mac_erroneous_protocol_data_event_struct_v1 icd_nl2_mac_erroneous_protocol_data_event_struct;
+
+
+#endif /* _NL2_MAC_ERRONEOUS_PROTOCOL_DATA_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_Erroneous_Protocol_Data_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9591", "Name": "NL2_MAC_Erroneous_Protocol_Data_Event", "Type": "EVENT", "Desc": "This event is triggered whenever MAC entity receives a MAC PDU for the MAC entity's C-RNTI or MCS-C-RNTI or\nCS-RNTI, or by the configured downlink assignment, containing a Reserved LCID value, or\nan LCID value the MAC Entity does not support\n"}, "table": {"NL2_MAC_Erroneous_Protocol_Data_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_Erroneous_Protocol_Data_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Erroneous_Protocol_Data_Event"}, "NL2_MAC_Erroneous_Protocol_Data_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Erroneous_Protocol_Data_Event_V1", ""]}, "Name": "NL2_MAC_Erroneous_Protocol_Data_Event_Versions"}, "NL2_MAC_Erroneous_Protocol_Data_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Reserved", "UINT8", "1", "1", "7", ""], "2": ["Erroneous bitmap", "UINT8", "1", "8", "8", "0x1 : DL assignment with Reserved or not support LCID is received.\n0x2 : DL assignment with not configured LCID is received.\nOther bits are reserved for future."], "3": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NL2_MAC_Erroneous_Protocol_Data_Event_V1"}}},
+ Public JSON end */
+// Checksum : [5f5ddb37d575d76f75d2cf54f35e6bc6]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_RACH_Attempt_Complete_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_RACH_Attempt_Complete_Event.h
new file mode 100644
index 0000000..472cbed
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_RACH_Attempt_Complete_Event.h
@@ -0,0 +1,67 @@
+// ICD Header Format v3
+// Name : NL2_MAC_RACH_Attempt_Complete_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9581
+// Version : V1.3
+
+#ifndef _NL2_MAC_RACH_ATTEMPT_COMPLETE_EVENT_H
+#define _NL2_MAC_RACH_ATTEMPT_COMPLETE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_RACH_ATTEMPT_COMPLETE_EVENT 0x9581
+
+#define ICD_NL2_NL2_MAC_RACH_ATTEMPT_COMPLETE_EVENT_V1 1
+
+#define ICD_NL2_MAC_RACH_ATTEMPT_COMPLETE_EVENT_STRUCT_V1_MAX_SIZE 36
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 rach_attempt_counter:8; // Preamble TX try count
+ kal_uint32 rach_result:3; // 0: Success
+ // 1: Failed at RAR
+ // 2: Failed at CR timer expired
+ // 3: Failed at CR fail
+ // 4: Aborted
+ kal_uint32 contention_based:1; // Is contention based
+ kal_uint32 rach_message:2; // 0: Msg1 TXed
+ // 1: Received Msg2
+ // 2: Msg3 TXed
+ kal_uint32 preamble_index:6; // Preamble index
+ kal_uint32 reserved:4;
+ kal_uint32 msg3_grant:27; // UL grant field in RAR
+ kal_uint32 reserved_1:5;
+ kal_uint32 ta_value:11; // TA value in RAR
+ kal_uint32 rar_success:1; // RAR reception success
+ kal_uint32 temporary_crnti:16; // TC-RNTI received in RAR
+ kal_uint32 reserved_2:4;
+ kal_uint32 nr_arfcn; // NR-ARFCN
+ kal_uint32 physical_cell_id:16; // Cell ID
+ kal_uint32 backoff_time:11; // RA backoff time value, Unit:ms
+ kal_uint32 reserved_3:5;
+ kal_uint32 ra_rnti:16; // RA-RNTI used
+ kal_uint32 preamble_power_offset:8; // Preamble power offset
+ kal_uint32 last_tx_power:6; // Last preamble TX power headroom
+ // level for PHR.
+ // it's the difference between
+ // PCMAX(dBm) and the PRACH Tx power
+ // (dBm). Range:0..63
+ kal_uint32 reserved_4:2;
+ kal_uint8 msg3_mac_subpdu[10]; // First 10 bytes of MAC subPDUs
+ // (CCCH data or MAC CE )
+ kal_uint16 msg3_grant_size; // Grant size in bytes
+} icd_nl2_mac_rach_attempt_complete_event_struct_v1;
+
+typedef icd_nl2_mac_rach_attempt_complete_event_struct_v1 icd_nl2_mac_rach_attempt_complete_event_struct;
+
+
+#endif /* _NL2_MAC_RACH_ATTEMPT_COMPLETE_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_RACH_Attempt_Complete_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9581", "Name": "NL2_MAC_RACH_Attempt_Complete_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when RACH finish.\n"}, "table": {"NL2_MAC_RACH_Attempt_Complete_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_RACH_Attempt_Complete_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_RACH_Attempt_Complete_Event"}, "NL2_MAC_RACH_Attempt_Complete_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_RACH_Attempt_Complete_Event_V1", ""], "1": ["2", "NL2_MAC_RACH_Attempt_Complete_Event_V2", ""]}, "Name": "NL2_MAC_RACH_Attempt_Complete_Event_Versions"}, "NL2_MAC_RACH_Attempt_Complete_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Rach Attempt Counter", "UINT32", "1", "0", "8", "Preamble TX try count"], "1": ["Rach Result", "UINT32", "1", "8", "3", "0: Success\n1: Failed at RAR\n2: Failed at CR timer expired\n3: Failed at CR fail\n4: Aborted"], "2": ["Contention Based", "UINT32", "1", "11", "1", "Is contention based"], "3": ["Rach Message", "UINT32", "1", "12", "2", "0: Msg1 TXed\n1: Received Msg2\n2: Msg3 TXed"], "4": ["Preamble Index", "UINT32", "1", "14", "6", "Preamble index"], "5": ["Reserved", "UINT32", "1", "20", "4", ""], "6": ["Msg3 Grant", "UINT32", "1", "24", "27", "UL grant field in RAR"], "7": ["Reserved", "UINT32", "1", "51", "5", ""], "8": ["TA Value", "UINT32", "1", "56", "11", "TA value in RAR"], "9": ["RAR Success", "UINT32", "1", "67", "1", "RAR reception success"], "10": ["Temporary CRNTI", "UINT32", "1", "68", "16", "TC-RNTI received in RAR"], "11": ["Reserved", "UINT32", "1", "84", "4", ""], "12": ["NR arfcn", "UINT32", "1", "88", "32", "NR-ARFCN"], "13": ["Physical Cell ID", "UINT32", "1", "120", "16", "Cell ID"], "14": ["Backoff Time", "UINT32", "1", "136", "11", "RA backoff time value, Unit:ms"], "15": ["Reserved", "UINT32", "1", "147", "5", ""], "16": ["RA RNTI", "UINT32", "1", "152", "16", "RA-RNTI used"], "17": ["Preamble Power Offset", "UINT32", "1", "168", "8", "Preamble power offset"], "18": ["Last TX Power", "UINT32", "1", "176", "6", "Last preamble TX power headroom\nlevel for PHR.\nit's the difference between\nPCMAX(dBm) and the PRACH Tx power\n(dBm). Range:0..63"], "19": ["Reserved", "UINT32", "1", "182", "2", ""], "20": ["Msg3 MAC subPDU", "UINT8", "10", "184", "80", "First 10 bytes of MAC subPDUs\n(CCCH data or MAC CE )"], "21": ["Msg3 Grant Size", "UINT16", "1", "264", "16", "Grant size in bytes"]}, "Name": "NL2_MAC_RACH_Attempt_Complete_Event_V1"}, "NL2_MAC_RACH_Attempt_Complete_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Rach Attempt Counter", "UINT32", "1", "1", "8", "Preamble TX try count"], "2": ["Rach Result", "UINT32", "1", "9", "3", "0: Success\n1: Failed at RAR\n2: Failed at CR timer expired\n3: Failed at CR fail\n4: Aborted"], "3": ["Contention Based", "UINT32", "1", "12", "1", "Is contention based"], "4": ["Rach Message", "UINT32", "1", "13", "2", "0: Msg1 TXed\n1: Received Msg2\n2: Msg3 TXed"], "5": ["Preamble Index", "UINT32", "1", "15", "6", "Preamble index"], "6": ["Reserved", "UINT32", "1", "21", "3", ""], "7": ["Msg3 Grant", "UINT32", "1", "24", "27", "UL grant field in RAR"], "8": ["Reserved", "UINT32", "1", "51", "5", ""], "9": ["TA Value", "UINT32", "1", "56", "11", "TA value in RAR"], "10": ["RAR Success", "UINT32", "1", "67", "1", "RAR reception success"], "11": ["Temporary CRNTI", "UINT32", "1", "68", "16", "TC-RNTI received in RAR"], "12": ["Reserved", "UINT32", "1", "84", "4", ""], "13": ["NR arfcn", "UINT32", "1", "88", "32", "NR-ARFCN"], "14": ["Physical Cell ID", "UINT32", "1", "120", "16", "Cell ID"], "15": ["Backoff Time", "UINT32", "1", "136", "11", "RA backoff time value, Unit:ms"], "16": ["Reserved", "UINT32", "1", "147", "5", ""], "17": ["RA RNTI", "UINT32", "1", "152", "16", "RA-RNTI used"], "18": ["Preamble Power Offset", "UINT32", "1", "168", "8", "Preamble power offset"], "19": ["Last TX Power", "UINT32", "1", "176", "6", "Last preamble TX power headroom\nlevel for PHR.\nit's the difference between\nPCMAX(dBm) and the PRACH Tx power\n(dBm). Range:0..63"], "20": ["Reserved", "UINT32", "1", "182", "2", ""], "21": ["Msg3 MAC subPDU", "UINT8", "10", "184", "80", "First 10 bytes of MAC subPDUs\n(CCCH data or MAC CE )"], "22": ["Msg3 Grant Size", "UINT16", "1", "264", "16", "Grant size in bytes"]}, "Name": "NL2_MAC_RACH_Attempt_Complete_Event_V2"}}},
+ Public JSON end */
+// Checksum : [7e09c4aecf6f08e4b4430194229f60ed]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_RACH_Attempt_Start_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_RACH_Attempt_Start_Event.h
new file mode 100644
index 0000000..da44806
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_RACH_Attempt_Start_Event.h
@@ -0,0 +1,61 @@
+// ICD Header Format v3
+// Name : NL2_MAC_RACH_Attempt_Start_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9580
+// Version : V1.3
+
+#ifndef _NL2_MAC_RACH_ATTEMPT_START_EVENT_H
+#define _NL2_MAC_RACH_ATTEMPT_START_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_RACH_ATTEMPT_START_EVENT 0x9580
+
+#define ICD_NL2_NL2_MAC_RACH_ATTEMPT_START_EVENT_V2 2
+
+#define ICD_NL2_MAC_RACH_ATTEMPT_START_EVENT_STRUCT_V2_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 ue_crnti:16; // UE C-RNTI MAC CE
+ kal_uint32 preamble_ra_mask_index:4; // ra-PRACH-MaskIndex
+ kal_uint32 reason:3; // 0: Connection request
+ // 1: SCG modification
+ // 2: UL Data arrival
+ // 3: PDCCH order
+ // 4: Beam failure recover
+ // 5: SI request
+ kal_uint32 contention:1; // 0: Contention free
+ // 1: Contention based
+ kal_uint16 msg3_size; // Potential size of Msg3 used in 38.321 5.1.2
+ // Set to 0 for contention free RA
+ kal_uint8 ue_id[6]; // UE CRID
+ kal_uint8 preamble_group_chosen; // 0: Group A
+ // 1: Group B
+ kal_uint8 step_power; // powerRampingStep
+ kal_int16 preamble_initial_power; // preambleInitialReceivedTargetPower
+ kal_uint8 max_preamble_attempts; // preambleTransMax
+ kal_uint8 pmax; // Max TX power
+ kal_uint8 delta_preamble_power_msg_3; // deltaPreambleMsg3
+ kal_uint8 contention_resolution_timer_value; // mac-ContentionResolutionTimer
+ kal_uint8 group_b_power_offset; // messagePowerOffsetGroupB
+ kal_uint8 group_a_preamble_index; // sizeOfRA-PreamblesGroupA
+ kal_uint8 group_b_preamble_index; // numberOfRA-Preambles - groupAsize
+ kal_uint8 group_a_preamble_selection_threshold; // messageSizeGroupA
+ kal_uint8 rar_window_size; // ra-ResponseWindowSize
+ kal_uint8 reserved[3];
+} icd_nl2_mac_rach_attempt_start_event_struct_v2;
+
+typedef icd_nl2_mac_rach_attempt_start_event_struct_v2 icd_nl2_mac_rach_attempt_start_event_struct;
+
+
+#endif /* _NL2_MAC_RACH_ATTEMPT_START_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_RACH_Attempt_Start_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9580", "Name": "NL2_MAC_RACH_Attempt_Start_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when Rach begin.\n"}, "table": {"NL2_MAC_RACH_Attempt_Start_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_RACH_Attempt_Start_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_RACH_Attempt_Start_Event"}, "NL2_MAC_RACH_Attempt_Start_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_RACH_Attempt_Start_Event_V1", ""], "1": ["2", "NL2_MAC_RACH_Attempt_Start_Event_V2", ""], "2": ["3", "NL2_MAC_RACH_Attempt_Start_Event_V3", ""]}, "Name": "NL2_MAC_RACH_Attempt_Start_Event_Versions"}, "NL2_MAC_RACH_Attempt_Start_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE CRNTI", "UINT32", "1", "0", "16", "UE C-RNTI MAC CE"], "1": ["Preamble RA Mask Index", "UINT32", "1", "16", "4", "ra-PRACH-MaskIndex"], "2": ["Reason", "UINT32", "1", "20", "3", "0: Connection request\n1: SCG modification\n2: UL Data arrival\n3: PDCCH order\n4: Beam failure recover\n5: SI request"], "3": ["Contention", "UINT32", "1", "23", "1", "0: Contention free\n1: Contention based"], "4": ["Msg3 Size", "UINT16", "1", "24", "16", "Potential size of Msg3 used in 38.321 5.1.2\nSet to 0 for contention free RA"], "5": ["UE ID", "UINT8", "6", "40", "48", "UE CRID"], "6": ["Preamble Group Chosen", "UINT8", "1", "88", "8", "0: Group A\n1: Group B"], "7": ["Preamble Initial Power", "INT8", "1", "96", "8", "preambleInitialReceivedTargetPower"], "8": ["Step Power", "UINT8", "1", "104", "8", "powerRampingStep"], "9": ["Max Preamble Attempts", "UINT8", "1", "112", "8", "preambleTransMax"], "10": ["Pmax", "UINT8", "1", "120", "8", "Max TX power"], "11": ["Delta Preamble Power Msg 3", "UINT8", "1", "128", "8", "deltaPreambleMsg3"], "12": ["Contention Resolution Timer Value", "UINT8", "1", "136", "8", "mac-ContentionResolutionTimer"], "13": ["Group B Power Offset", "UINT8", "1", "144", "8", "messagePowerOffsetGroupB"], "14": ["Group A Preamble Index", "UINT8", "1", "152", "8", "sizeOfRA-PreamblesGroupA"], "15": ["Group B Preamble Index", "UINT8", "1", "160", "8", "numberOfRA-Preambles - groupAsize"], "16": ["Group A Preamble Selection Threshold", "UINT8", "1", "168", "8", "messageSizeGroupA"], "17": ["Rar Window Size", "UINT8", "1", "176", "8", "ra-ResponseWindowSize"]}, "Name": "NL2_MAC_RACH_Attempt_Start_Event_V1"}, "NL2_MAC_RACH_Attempt_Start_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE CRNTI", "UINT32", "1", "0", "16", "UE C-RNTI MAC CE"], "1": ["Preamble RA Mask Index", "UINT32", "1", "16", "4", "ra-PRACH-MaskIndex"], "2": ["Reason", "UINT32", "1", "20", "3", "0: Connection request\n1: SCG modification\n2: UL Data arrival\n3: PDCCH order\n4: Beam failure recover\n5: SI request"], "3": ["Contention", "UINT32", "1", "23", "1", "0: Contention free\n1: Contention based"], "4": ["Msg3 Size", "UINT16", "1", "24", "16", "Potential size of Msg3 used in 38.321 5.1.2\nSet to 0 for contention free RA"], "5": ["UE ID", "UINT8", "6", "40", "48", "UE CRID"], "6": ["Preamble Group Chosen", "UINT8", "1", "88", "8", "0: Group A\n1: Group B"], "7": ["Step Power", "UINT8", "1", "96", "8", "powerRampingStep"], "8": ["Preamble Initial Power", "INT16", "1", "104", "16", "preambleInitialReceivedTargetPower"], "9": ["Max Preamble Attempts", "UINT8", "1", "120", "8", "preambleTransMax"], "10": ["Pmax", "UINT8", "1", "128", "8", "Max TX power"], "11": ["Delta Preamble Power Msg 3", "UINT8", "1", "136", "8", "deltaPreambleMsg3"], "12": ["Contention Resolution Timer Value", "UINT8", "1", "144", "8", "mac-ContentionResolutionTimer"], "13": ["Group B Power Offset", "UINT8", "1", "152", "8", "messagePowerOffsetGroupB"], "14": ["Group A Preamble Index", "UINT8", "1", "160", "8", "sizeOfRA-PreamblesGroupA"], "15": ["Group B Preamble Index", "UINT8", "1", "168", "8", "numberOfRA-Preambles - groupAsize"], "16": ["Group A Preamble Selection Threshold", "UINT8", "1", "176", "8", "messageSizeGroupA"], "17": ["Rar Window Size", "UINT8", "1", "184", "8", "ra-ResponseWindowSize"], "18": ["Reserved", "UINT8", "3", "192", "24", ""]}, "Name": "NL2_MAC_RACH_Attempt_Start_Event_V2"}, "NL2_MAC_RACH_Attempt_Start_Event_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["UE CRNTI", "UINT32", "1", "1", "16", "UE C-RNTI MAC CE"], "2": ["Preamble RA Mask Index", "UINT32", "1", "17", "4", "ra-PRACH-MaskIndex"], "3": ["Reason", "UINT32", "1", "21", "3", "0: Connection request\n1: SCG modification\n2: UL Data arrival\n3: PDCCH order\n4: Beam failure recover\n5: SI request"], "4": ["Contention", "UINT16", "1", "24", "1", "0: Contention free\n1: Contention based"], "5": ["Reserved", "UINT16", "1", "25", "15", ""], "6": ["Msg3 Size", "UINT16", "1", "40", "16", "Potential size of Msg3 used in 38.321 5.1.2\nSet to 0 for contention free RA"], "7": ["UE ID", "UINT8", "6", "56", "48", "UE CRID"], "8": ["Preamble Group Chosen", "UINT8", "1", "104", "8", "0: Group A\n1: Group B"], "9": ["Step Power", "UINT8", "1", "112", "8", "powerRampingStep"], "10": ["Preamble Initial Power", "INT16", "1", "120", "16", "preambleInitialReceivedTargetPower"], "11": ["Max Preamble Attempts", "UINT8", "1", "136", "8", "preambleTransMax"], "12": ["Pmax", "UINT8", "1", "144", "8", "Max TX power"], "13": ["Delta Preamble Power Msg 3", "UINT8", "1", "152", "8", "deltaPreambleMsg3"], "14": ["Contention Resolution Timer Value", "UINT8", "1", "160", "8", "mac-ContentionResolutionTimer"], "15": ["Group B Power Offset", "UINT8", "1", "168", "8", "messagePowerOffsetGroupB"], "16": ["Group A Preamble Index", "UINT8", "1", "176", "8", "sizeOfRA-PreamblesGroupA"], "17": ["Group B Preamble Index", "UINT8", "1", "184", "8", "numberOfRA-Preambles - groupAsize"], "18": ["Group A Preamble Selection Threshold", "UINT8", "1", "192", "8", "messageSizeGroupA"], "19": ["Rar Window Size", "UINT8", "1", "200", "8", "ra-ResponseWindowSize"], "20": ["Reserved", "UINT8", "1", "208", "8", ""]}, "Name": "NL2_MAC_RACH_Attempt_Start_Event_V3"}}},
+ Public JSON end */
+// Checksum : [040a1349c58bd1f2c08d7edb83d56373]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_Reset_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_Reset_Event.h
new file mode 100644
index 0000000..c0691a8
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_Reset_Event.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Reset_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9582
+// Version : V1.3
+
+#ifndef _NL2_MAC_RESET_EVENT_H
+#define _NL2_MAC_RESET_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_RESET_EVENT 0x9582
+
+#define ICD_NL2_NL2_MAC_RESET_EVENT_V1 1
+
+#define ICD_NL2_MAC_RESET_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 mac_reset_cause:2; // 0: Others
+ // 1: Release
+ // 2: HO
+ // 3: RE-EST
+ kal_uint32 reserved:22;
+} icd_nl2_mac_reset_event_struct_v1;
+
+typedef icd_nl2_mac_reset_event_struct_v1 icd_nl2_mac_reset_event_struct;
+
+
+#endif /* _NL2_MAC_RESET_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_Reset_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9582", "Name": "NL2_MAC_Reset_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when MAC is reset.\n"}, "table": {"NL2_MAC_Reset_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_Reset_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Reset_Event"}, "NL2_MAC_Reset_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Reset_Event_V1", ""], "1": ["2", "NL2_MAC_Reset_Event_V2", ""]}, "Name": "NL2_MAC_Reset_Event_Versions"}, "NL2_MAC_Reset_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MAC Reset Cause", "UINT32", "1", "0", "2", "0: Others\n1: Release\n2: HO\n3: RE-EST"], "1": ["Reserved", "UINT32", "1", "2", "22", ""]}, "Name": "NL2_MAC_Reset_Event_V1"}, "NL2_MAC_Reset_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["MAC Reset Cause", "UINT32", "1", "1", "2", "0: Others\n1: Release\n2: HO\n3: RE-EST"], "2": ["Reserved", "UINT32", "1", "3", "21", ""]}, "Name": "NL2_MAC_Reset_Event_V2"}}},
+ Public JSON end */
+// Checksum : [60506257281731cf444b35b5ae6db06e]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_SR_MAX_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_SR_MAX_Event.h
new file mode 100644
index 0000000..753d3eb
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_SR_MAX_Event.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : NL2_MAC_SR_MAX_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9589
+// Version : V1.3
+
+#ifndef _NL2_MAC_SR_MAX_EVENT_H
+#define _NL2_MAC_SR_MAX_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_SR_MAX_EVENT 0x9589
+
+#define ICD_NL2_NL2_MAC_SR_MAX_EVENT_V1 1
+
+#define ICD_NL2_MAC_SR_MAX_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 sr_index; // SR configuration index
+ kal_uint8 sr_tx_count; // SR max tx count
+ kal_uint8 reserved;
+} icd_nl2_mac_sr_max_event_struct_v1;
+
+typedef icd_nl2_mac_sr_max_event_struct_v1 icd_nl2_mac_sr_max_event_struct;
+
+
+#endif /* _NL2_MAC_SR_MAX_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_SR_MAX_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9589", "Name": "NL2_MAC_SR_MAX_Event", "Type": "EVENT", "Desc": "This event is triggered whenever the SR tx max event is happened.\n"}, "table": {"NL2_MAC_SR_MAX_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_SR_MAX_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_SR_MAX_Event"}, "NL2_MAC_SR_MAX_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_SR_MAX_Event_V1", ""], "1": ["2", "NL2_MAC_SR_MAX_Event_V2", ""]}, "Name": "NL2_MAC_SR_MAX_Event_Versions"}, "NL2_MAC_SR_MAX_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR index", "UINT8", "1", "0", "8", "SR configuration index"], "1": ["SR tx count", "UINT8", "1", "8", "8", "SR max tx count"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NL2_MAC_SR_MAX_Event_V1"}, "NL2_MAC_SR_MAX_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Reserved", "UINT8", "1", "1", "7", ""], "2": ["SR index", "UINT8", "1", "8", "8", "SR configuration index"], "3": ["SR tx count", "UINT8", "1", "16", "8", "SR max tx count"]}, "Name": "NL2_MAC_SR_MAX_Event_V2"}}},
+ Public JSON end */
+// Checksum : [b29d34d4bcd860ddc59e353b591987f2]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_SR_Tx_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_SR_Tx_Event.h
new file mode 100644
index 0000000..46c1559
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_SR_Tx_Event.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : NL2_MAC_SR_Tx_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9590
+// Version : V1.3
+
+#ifndef _NL2_MAC_SR_TX_EVENT_H
+#define _NL2_MAC_SR_TX_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_SR_TX_EVENT 0x9590
+
+#define ICD_NL2_NL2_MAC_SR_TX_EVENT_V2 2
+
+#define ICD_NL2_MAC_SR_TX_EVENT_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cell_group_id:1; // 0: MCG, 1:SCG
+ kal_uint8 reserved:7;
+ kal_uint8 sr_index; // SR configuration index
+ kal_uint8 sr_tx_count; // Number of SR tx count
+} icd_nl2_mac_sr_tx_event_struct_v2;
+
+typedef icd_nl2_mac_sr_tx_event_struct_v2 icd_nl2_mac_sr_tx_event_struct;
+
+
+#endif /* _NL2_MAC_SR_TX_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_SR_Tx_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9590", "Name": "NL2_MAC_SR_Tx_Event", "Type": "EVENT", "Desc": "This event is triggered whenever the SR tx event is happened.\n"}, "table": {"NL2_MAC_SR_Tx_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_SR_Tx_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_SR_Tx_Event"}, "NL2_MAC_SR_Tx_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_SR_Tx_Event_V1", ""], "1": ["2", "NL2_MAC_SR_Tx_Event_V2", ""]}, "Name": "NL2_MAC_SR_Tx_Event_Versions"}, "NL2_MAC_SR_Tx_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SR index", "UINT8", "1", "0", "8", "SR configuration index"], "1": ["SR tx count", "UINT8", "1", "8", "8", "Number of SR tx count"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NL2_MAC_SR_Tx_Event_V1"}, "NL2_MAC_SR_Tx_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Reserved", "UINT8", "1", "1", "7", ""], "2": ["SR index", "UINT8", "1", "8", "8", "SR configuration index"], "3": ["SR tx count", "UINT8", "1", "16", "8", "Number of SR tx count"]}, "Name": "NL2_MAC_SR_Tx_Event_V2"}}},
+ Public JSON end */
+// Checksum : [b6ca93c2e62f7fc35585ace5aa07bacc]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_Timer_Status_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_Timer_Status_Event.h
new file mode 100644
index 0000000..39cab56
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_Timer_Status_Event.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Timer_Status_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9583
+// Version : V1.3
+
+#ifndef _NL2_MAC_TIMER_STATUS_EVENT_H
+#define _NL2_MAC_TIMER_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_TIMER_STATUS_EVENT 0x9583
+
+#define ICD_NL2_NL2_MAC_TIMER_STATUS_EVENT_V1 1
+
+#define ICD_NL2_MAC_TIMER_STATUS_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 mac_timer_name:3; // Values:
+ // 0: TA
+ // 1: RAR Window
+ // 2: RA CR
+ // 3: RA Backoff
+ // 4: Beam failure recovery
+ kal_uint32 timer_status:2; // Values:
+ // 0: Started
+ // 1: Stopped
+ // 2: Expired
+ kal_uint32 reserved:19;
+} icd_nl2_mac_timer_status_event_struct_v1;
+
+typedef icd_nl2_mac_timer_status_event_struct_v1 icd_nl2_mac_timer_status_event_struct;
+
+
+#endif /* _NL2_MAC_TIMER_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_Timer_Status_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9583", "Name": "NL2_MAC_Timer_Status_Event", "Type": "EVENT", "Desc": "It is event trigger, report when any of the MAC timer's state is changed\n"}, "table": {"NL2_MAC_Timer_Status_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_Timer_Status_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Timer_Status_Event"}, "NL2_MAC_Timer_Status_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Timer_Status_Event_V1", ""], "1": ["2", "NL2_MAC_Timer_Status_Event_V2", ""]}, "Name": "NL2_MAC_Timer_Status_Event_Versions"}, "NL2_MAC_Timer_Status_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MAC Timer Name", "UINT32", "1", "0", "3", "Values:\n0: TA\n1: RAR Window\n2: RA CR\n3: RA Backoff\n4: Beam failure recovery"], "1": ["Timer Status", "UINT32", "1", "3", "2", "Values:\n0: Started\n1: Stopped\n2: Expired"], "2": ["Reserved", "UINT32", "1", "5", "19", ""]}, "Name": "NL2_MAC_Timer_Status_Event_V1"}, "NL2_MAC_Timer_Status_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["MAC Timer Name", "UINT32", "1", "1", "3", "Values:\n0: TA\n1: RAR Window\n2: RA CR\n3: RA Backoff\n4: Beam failure recovery"], "2": ["Timer Status", "UINT32", "1", "4", "2", "Values:\n0: Started\n1: Stopped\n2: Expired"], "3": ["Reserved", "UINT32", "1", "6", "18", ""]}, "Name": "NL2_MAC_Timer_Status_Event_V2"}}},
+ Public JSON end */
+// Checksum : [339423ae8e017dbdfa1acbadc18eb099]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_MAC_Timing_Advance_Event.h b/mcu/interface/service/icd/event/nl2/NL2_MAC_Timing_Advance_Event.h
new file mode 100644
index 0000000..a316f46
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_MAC_Timing_Advance_Event.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Timing_Advance_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x9584
+// Version : V1.3
+
+#ifndef _NL2_MAC_TIMING_ADVANCE_EVENT_H
+#define _NL2_MAC_TIMING_ADVANCE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_TIMING_ADVANCE_EVENT 0x9584
+
+#define ICD_NL2_NL2_MAC_TIMING_ADVANCE_EVENT_V1 1
+
+#define ICD_NL2_MAC_TIMING_ADVANCE_EVENT_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 timer_value:14; // TA timer length, 0=INF
+ kal_uint32 timing_advance:6; // The value of MAC CE TA command
+ kal_uint32 subframe:4; // The subframe number when the TA is received
+ kal_uint32 sfn:10; // The SFN when the TA is received
+ kal_uint32 reserved:22;
+} icd_nl2_mac_timing_advance_event_struct_v1;
+
+typedef icd_nl2_mac_timing_advance_event_struct_v1 icd_nl2_mac_timing_advance_event_struct;
+
+
+#endif /* _NL2_MAC_TIMING_ADVANCE_EVENT_H */
+
+
+/* Public JSON start
+"NL2_MAC_Timing_Advance_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9584", "Name": "NL2_MAC_Timing_Advance_Event", "Type": "EVENT", "Desc": "This event is generated whenever the timing advance control element is received.\n"}, "table": {"NL2_MAC_Timing_Advance_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_MAC_Timing_Advance_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Timing_Advance_Event"}, "NL2_MAC_Timing_Advance_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Timing_Advance_Event_V1", ""], "1": ["2", "NL2_MAC_Timing_Advance_Event_V2", ""]}, "Name": "NL2_MAC_Timing_Advance_Event_Versions"}, "NL2_MAC_Timing_Advance_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer Value", "UINT32", "1", "0", "14", "TA timer length, 0=INF"], "1": ["Timing Advance", "UINT32", "1", "14", "6", "The value of MAC CE TA command"], "2": ["Subframe", "UINT32", "1", "20", "4", "The subframe number when the TA is received"], "3": ["SFN", "UINT32", "1", "24", "10", "The SFN when the TA is received"], "4": ["Reserved", "UINT32", "1", "34", "22", ""]}, "Name": "NL2_MAC_Timing_Advance_Event_V1"}, "NL2_MAC_Timing_Advance_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Timer Value", "UINT32", "1", "1", "14", "TA timer length, 0=INF"], "2": ["Timing Advance", "UINT32", "1", "15", "6", "The value of MAC CE TA command"], "3": ["Reserved", "UINT32", "1", "21", "3", ""], "4": ["Subframe", "UINT32", "1", "24", "4", "The subframe number when the TA is received"], "5": ["SFN", "UINT32", "1", "28", "10", "The SFN when the TA is received"], "6": ["Reserved", "UINT32", "1", "38", "18", ""]}, "Name": "NL2_MAC_Timing_Advance_Event_V2"}}},
+ Public JSON end */
+// Checksum : [552fb6d5cab6aa0ff2acbeab1498d696]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_PDCP_Configuration_Event.h b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Configuration_Event.h
new file mode 100644
index 0000000..2317e2a
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Configuration_Event.h
@@ -0,0 +1,101 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Configuration_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x95D4
+// Version : V1.3
+
+#ifndef _NL2_PDCP_CONFIGURATION_EVENT_H
+#define _NL2_PDCP_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_CONFIGURATION_EVENT 0x95D4
+
+#define ICD_NL2_NL2_PDCP_CONFIGURATION_EVENT_V3 3
+
+#define MAX_ICD_NL2_PDCP_CONFIGURATION_EVENT_STRUCT_V3_NUMBER_OF_RBS 37
+
+#define ICD_NL2_PDCP_CONFIGURATION_EVENT_STRUCT_V3_MAX_SIZE 1784
+
+typedef struct {
+ kal_uint32 rb_cfg_idx:8; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint32 t_reordering:16; // timer value of t-Reordering, if t-Reordering is not available, the value is 0
+ kal_uint32 rreestablishment_triggered:1; // PDCP Rreestablishment configuration
+ // 0: no triggered
+ // 1: triggered
+ kal_uint32 data_recovery_triggered:1; // PDCP Data recovery configuration
+ // 0: no triggered
+ // 1: triggered
+ kal_uint32 outoforderdelivery:1; // out of order deliver configuration
+ // 0: no configured
+ // 1: configured
+ kal_uint32 cfg_rlc_entity:2; // Configured RLC entity:
+ // 0: LTE RLC
+ // 1: NR RLC
+ // 2: Both
+ kal_uint32 primary_rlc_entity:1; // Primary RLC entity configure
+ // 0: LTE RLC
+ // 1: NR RLC
+ kal_uint32 ul_duplication_allowed:1; // Uplink duplication configuration, it is only available when the "cfg RLC entity" is Both
+ // 0: not allowed
+ // 1: allowed
+ kal_uint32 reserved:1;
+ kal_uint32 ul_datasplitthreshold; // Uplink data split threshold, it is only available when the "cfg RLC entity" is Both
+ kal_uint8 uplink_sn_size; // Uplink PDCP SN length
+ kal_uint8 downlink_sn_size; // Downlink PDCP SN length
+ kal_uint8 cipher_algorithm; // Cipher Algorithm configuration
+ // 0: EEA0 or NEA0
+ // 1: EEA1 or NEA1
+ // 2: EEA2 or NEA2
+ // 3: EEA3 or NEA3
+ kal_uint8 itntegrity_algorithm; // Integrity Algorithm configuration
+ // 0: EIA0 or NIA0
+ // 1: EIA1 or NIA1
+ // 2: EIA2 or NIA2
+ // 3: EIA3 or NIA3
+ kal_uint8 rohc_status; // Header compression configuration
+ // 0: disable
+ // 1: Uplink and Downlink enable
+ // 2: Uplink only enalbe
+ kal_uint8 max_cid; // the maximum CID value that can be used, it's only valid on ROHC is enabled
+ kal_uint8 number_of_profiles; // range[0, 9]
+ kal_uint8 reserved_1;
+ kal_uint16 rohc_profiles[9];
+ kal_uint16 discardtimer; // timer value of discardTimer, if discardTimer is not available, the value is 0
+ kal_uint32 eps_bearer_id:8; // The identity of EPS bearer to which this structure pertains (Range: 0, 5..15)
+ // 0: No EPS bearer identity assigned.
+ // 1~4 : Reserved
+ // 5~15: EPS bearer identity
+ kal_uint32 pdu_session_id:8; // The identity of PDU session to which this structure pertains (Range: 0, 1..15)
+ // 0: No PDU session identity assigned.
+ // 1~15: PDU session identity
+ kal_uint32 is_default_drb:1; // NW configure this RB is defualt DRB or not
+ // 0: this RB isn't defualt DRB
+ // 1: this RB is defualt DRB
+ kal_uint32 reserved_2:15;
+ kal_uint64 qfi_bitmap; // QoS flow identity bitmap
+ // the bit-X is set 0 means the QoS Flow ID X isn't mapping to this RB.
+ // the bit-X is set 1 means the QoS Flow ID X is mapping to this RB.
+} nl2_pdcp_rb_entity_info_v3;
+
+typedef nl2_pdcp_rb_entity_info_v3 nl2_pdcp_rb_entity_info;
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint32 number_of_rbs; // range[0, 37]
+ nl2_pdcp_rb_entity_info rb_entity_info[MAX_ICD_NL2_PDCP_CONFIGURATION_EVENT_STRUCT_V3_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_nl2_pdcp_configuration_event_struct_v3;
+
+typedef icd_nl2_pdcp_configuration_event_struct_v3 icd_nl2_pdcp_configuration_event_struct;
+
+
+#endif /* _NL2_PDCP_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Configuration_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x95D4", "Name": "NL2_PDCP_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when PDCP configuration is changed\n"}, "table": {"NL2_PDCP_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "NL2_PDCP_Configuration_Event_Versions", "1", "32", "VAR", ""]}, "Name": "NL2_PDCP_Configuration_Event"}, "NL2_PDCP_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Configuration_Event_V1", ""], "1": ["2", "NL2_PDCP_Configuration_Event_V2", ""], "2": ["3", "NL2_PDCP_Configuration_Event_V3", ""]}, "Name": "NL2_PDCP_Configuration_Event_Versions"}, "NL2_PDCP_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB Entity Info": "Number of RBs"}, "Name": "NL2_PDCP_Configuration_Event_V1", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 37]"], "1": ["RB Entity Info", "NL2_PDCP_RB_Entity_Info_V1", "N", "32", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_Configuration_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB Entity Info": "Number of RBs"}, "Name": "NL2_PDCP_Configuration_Event_V2", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 37]"], "1": ["RB Entity Info", "NL2_PDCP_RB_Entity_Info_V2", "N", "32", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_Configuration_Event_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB Entity Info": "Number of RBs"}, "Name": "NL2_PDCP_Configuration_Event_V3", "Data": {"0": ["Number of RBs", "UINT32", "1", "0", "32", "range[0, 37]"], "1": ["RB Entity Info", "NL2_PDCP_RB_Entity_Info_V3", "N", "32", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_RB_Entity_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["t-Reordering", "UINT32", "1", "8", "16", "timer value of t-Reordering, if t-Reordering is not available, the value is 0"], "2": ["Rreestablishment triggered", "UINT32", "1", "24", "1", "PDCP Rreestablishment configuration\n0: no triggered\n1: triggered"], "3": ["Data recovery triggered", "UINT32", "1", "25", "1", "PDCP Data recovery configuration\n0: no triggered\n1: triggered"], "4": ["outOfOrderDelivery", "UINT32", "1", "26", "1", "out of order deliver configuration\n0: no configured\n1: configured"], "5": ["cfg RLC entity", "UINT32", "1", "27", "2", "Configured RLC entity:\n0: LTE RLC\n1: NR RLC\n2: Both"], "6": ["Primary RLC entity", "UINT32", "1", "29", "1", "Primary RLC entity configure\n0: LTE RLC\n1: NR RLC"], "7": ["UL duplication allowed", "UINT32", "1", "30", "1", "Uplink duplication configuration, it is only available when the \"cfg RLC entity\" is Both\n0: not allowed\n1: allowed"], "8": ["Reserved", "UINT32", "1", "31", "1", ""], "9": ["UL DataSplitThreshold", "UINT32", "1", "32", "32", "Uplink data split threshold, it is only available when the \"cfg RLC entity\" is Both"], "10": ["Uplink SN size", "UINT8", "1", "64", "8", "Uplink PDCP SN length"], "11": ["Downlink SN size", "UINT8", "1", "72", "8", "Downlink PDCP SN length"], "12": ["Cipher Algorithm", "UINT8", "1", "80", "8", "Cipher Algorithm configuration\n0: EEA0 or NEA0\n1: EEA1 or NEA1\n2: EEA2 or NEA2\n3: EEA3 or NEA3"], "13": ["Itntegrity Algorithm", "UINT8", "1", "88", "8", "Integrity Algorithm configuration\n0: EIA0 or NIA0\n1: EIA1 or NIA1\n2: EIA2 or NIA2\n3: EIA3 or NIA3"], "14": ["ROHC status", "UINT8", "1", "96", "8", "Header compression configuration\n0: disable\n1: Uplink and Downlink enable\n2: Uplink only enalbe"], "15": ["Max CID", "UINT8", "1", "104", "8", "the maximum CID value that can be used, it's only valid on ROHC is enabled"], "16": ["Number of profiles", "UINT8", "1", "112", "8", "range[0, 9]"], "17": ["Reserved", "UINT8", "1", "120", "8", ""], "18": ["Rohc profiles", "UINT16", "9", "128", "144", ""], "19": ["Reserved", "UINT16", "1", "272", "16", ""]}, "Name": "NL2_PDCP_RB_Entity_Info_V1"}, "NL2_PDCP_RB_Entity_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["t-Reordering", "UINT32", "1", "8", "16", "timer value of t-Reordering, if t-Reordering is not available, the value is 0"], "2": ["Rreestablishment triggered", "UINT32", "1", "24", "1", "PDCP Rreestablishment configuration\n0: no triggered\n1: triggered"], "3": ["Data recovery triggered", "UINT32", "1", "25", "1", "PDCP Data recovery configuration\n0: no triggered\n1: triggered"], "4": ["outOfOrderDelivery", "UINT32", "1", "26", "1", "out of order deliver configuration\n0: no configured\n1: configured"], "5": ["cfg RLC entity", "UINT32", "1", "27", "2", "Configured RLC entity:\n0: LTE RLC\n1: NR RLC\n2: Both"], "6": ["Primary RLC entity", "UINT32", "1", "29", "1", "Primary RLC entity configure\n0: LTE RLC\n1: NR RLC"], "7": ["UL duplication allowed", "UINT32", "1", "30", "1", "Uplink duplication configuration, it is only available when the \"cfg RLC entity\" is Both\n0: not allowed\n1: allowed"], "8": ["Reserved", "UINT32", "1", "31", "1", ""], "9": ["UL DataSplitThreshold", "UINT32", "1", "32", "32", "Uplink data split threshold, it is only available when the \"cfg RLC entity\" is Both"], "10": ["Uplink SN size", "UINT8", "1", "64", "8", "Uplink PDCP SN length"], "11": ["Downlink SN size", "UINT8", "1", "72", "8", "Downlink PDCP SN length"], "12": ["Cipher Algorithm", "UINT8", "1", "80", "8", "Cipher Algorithm configuration\n0: EEA0 or NEA0\n1: EEA1 or NEA1\n2: EEA2 or NEA2\n3: EEA3 or NEA3"], "13": ["Itntegrity Algorithm", "UINT8", "1", "88", "8", "Integrity Algorithm configuration\n0: EIA0 or NIA0\n1: EIA1 or NIA1\n2: EIA2 or NIA2\n3: EIA3 or NIA3"], "14": ["ROHC status", "UINT8", "1", "96", "8", "Header compression configuration\n0: disable\n1: Uplink and Downlink enable\n2: Uplink only enalbe"], "15": ["Max CID", "UINT8", "1", "104", "8", "the maximum CID value that can be used, it's only valid on ROHC is enabled"], "16": ["Number of profiles", "UINT8", "1", "112", "8", "range[0, 9]"], "17": ["Reserved", "UINT8", "1", "120", "8", ""], "18": ["Rohc profiles", "UINT16", "9", "128", "144", ""], "19": ["discardTimer", "UINT16", "1", "272", "16", "timer value of discardTimer, if discardTimer is not available, the value is 0"]}, "Name": "NL2_PDCP_RB_Entity_Info_V2"}, "NL2_PDCP_RB_Entity_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["t-Reordering", "UINT32", "1", "8", "16", "timer value of t-Reordering, if t-Reordering is not available, the value is 0"], "2": ["Rreestablishment triggered", "UINT32", "1", "24", "1", "PDCP Rreestablishment configuration\n0: no triggered\n1: triggered"], "3": ["Data recovery triggered", "UINT32", "1", "25", "1", "PDCP Data recovery configuration\n0: no triggered\n1: triggered"], "4": ["outOfOrderDelivery", "UINT32", "1", "26", "1", "out of order deliver configuration\n0: no configured\n1: configured"], "5": ["cfg RLC entity", "UINT32", "1", "27", "2", "Configured RLC entity:\n0: LTE RLC\n1: NR RLC\n2: Both"], "6": ["Primary RLC entity", "UINT32", "1", "29", "1", "Primary RLC entity configure\n0: LTE RLC\n1: NR RLC"], "7": ["UL duplication allowed", "UINT32", "1", "30", "1", "Uplink duplication configuration, it is only available when the \"cfg RLC entity\" is Both\n0: not allowed\n1: allowed"], "8": ["Reserved", "UINT32", "1", "31", "1", ""], "9": ["UL DataSplitThreshold", "UINT32", "1", "32", "32", "Uplink data split threshold, it is only available when the \"cfg RLC entity\" is Both"], "10": ["Uplink SN size", "UINT8", "1", "64", "8", "Uplink PDCP SN length"], "11": ["Downlink SN size", "UINT8", "1", "72", "8", "Downlink PDCP SN length"], "12": ["Cipher Algorithm", "UINT8", "1", "80", "8", "Cipher Algorithm configuration\n0: EEA0 or NEA0\n1: EEA1 or NEA1\n2: EEA2 or NEA2\n3: EEA3 or NEA3"], "13": ["Itntegrity Algorithm", "UINT8", "1", "88", "8", "Integrity Algorithm configuration\n0: EIA0 or NIA0\n1: EIA1 or NIA1\n2: EIA2 or NIA2\n3: EIA3 or NIA3"], "14": ["ROHC status", "UINT8", "1", "96", "8", "Header compression configuration\n0: disable\n1: Uplink and Downlink enable\n2: Uplink only enalbe"], "15": ["Max CID", "UINT8", "1", "104", "8", "the maximum CID value that can be used, it's only valid on ROHC is enabled"], "16": ["Number of profiles", "UINT8", "1", "112", "8", "range[0, 9]"], "17": ["Reserved", "UINT8", "1", "120", "8", ""], "18": ["Rohc profiles", "UINT16", "9", "128", "144", ""], "19": ["discardTimer", "UINT16", "1", "272", "16", "timer value of discardTimer, if discardTimer is not available, the value is 0"], "20": ["EPS Bearer ID", "UINT32", "1", "288", "8", "The identity of EPS bearer to which this structure pertains (Range: 0, 5..15)\n0: No EPS bearer identity assigned.\n1~4 : Reserved\n5~15: EPS bearer identity"], "21": ["PDU Session ID", "UINT32", "1", "296", "8", "The identity of PDU session to which this structure pertains (Range: 0, 1..15)\n0: No PDU session identity assigned.\n1~15: PDU session identity"], "22": ["Is default DRB", "UINT32", "1", "304", "1", "NW configure this RB is defualt DRB or not\n0: this RB isn't defualt DRB\n1: this RB is defualt DRB"], "23": ["Reserved", "UINT32", "1", "305", "15", ""], "24": ["QFI bitmap", "UINT64", "1", "320", "64", "QoS flow identity bitmap\nthe bit-X is set 0 means the QoS Flow ID X isn't mapping to this RB.\nthe bit-X is set 1 means the QoS Flow ID X is mapping to this RB."]}, "Name": "NL2_PDCP_RB_Entity_Info_V3"}}},
+ Public JSON end */
+// Checksum : [2ca4c63e316e9dcfc721503fc9b80d01]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_PDCP_Context_Info_Event.h b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Context_Info_Event.h
new file mode 100644
index 0000000..5fd5abc
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Context_Info_Event.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Context_Info_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x95D8
+// Version : V1.3
+
+#ifndef _NL2_PDCP_CONTEXT_INFO_EVENT_H
+#define _NL2_PDCP_CONTEXT_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_CONTEXT_INFO_EVENT 0x95D8
+
+#define ICD_NL2_NL2_PDCP_CONTEXT_INFO_EVENT_V2 2
+
+#define ICD_NL2_PDCP_CONTEXT_INFO_EVENT_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 ul_data_split_path; // vaue:
+ // 0: LTE only
+ // 1: NR only
+ // 2: NR and LTE
+ kal_uint8 dl_data_split_path; // vaue:
+ // 0: LTE only
+ // 1: NR only
+ // 2: NR and LTE
+ kal_uint8 voice_rb_index; // Voice RB index
+} icd_nl2_pdcp_context_info_event_struct_v2;
+
+typedef icd_nl2_pdcp_context_info_event_struct_v2 icd_nl2_pdcp_context_info_event_struct;
+
+
+#endif /* _NL2_PDCP_CONTEXT_INFO_EVENT_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Context_Info_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x95D8", "Name": "NL2_PDCP_Context_Info_Event", "Type": "EVENT", "Desc": "This event is triggered whenever the PDCP context info is changed.\n"}, "table": {"NL2_PDCP_Context_Info_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_PDCP_Context_Info_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_Context_Info_Event"}, "NL2_PDCP_Context_Info_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Context_Info_Event_V1", ""], "1": ["2", "NL2_PDCP_Context_Info_Event_V2", ""]}, "Name": "NL2_PDCP_Context_Info_Event_Versions"}, "NL2_PDCP_Context_Info_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Data Split Path", "UINT8", "1", "0", "8", "vaue:\n0: LTE only\n1: NR only\n2: NR and LTE"], "1": ["DL Data Split Path", "UINT8", "1", "8", "8", "vaue:\n0: LTE only\n1: NR only\n2: NR and LTE"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NL2_PDCP_Context_Info_Event_V1"}, "NL2_PDCP_Context_Info_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Data Split Path", "UINT8", "1", "0", "8", "vaue:\n0: LTE only\n1: NR only\n2: NR and LTE"], "1": ["DL Data Split Path", "UINT8", "1", "8", "8", "vaue:\n0: LTE only\n1: NR only\n2: NR and LTE"], "2": ["Voice RB Index", "UINT8", "1", "16", "8", "Voice RB index"]}, "Name": "NL2_PDCP_Context_Info_Event_V2"}}},
+ Public JSON end */
+// Checksum : [d940cdbeca3bfb5dd8e79bf530c35124]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_PDCP_Data_Recovery_Info_Event.h b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Data_Recovery_Info_Event.h
new file mode 100644
index 0000000..6412a69
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Data_Recovery_Info_Event.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Data_Recovery_Info_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x95D7
+// Version : V1.3
+
+#ifndef _NL2_PDCP_DATA_RECOVERY_INFO_EVENT_H
+#define _NL2_PDCP_DATA_RECOVERY_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_DATA_RECOVERY_INFO_EVENT 0x95D7
+
+#define ICD_NL2_NL2_PDCP_DATA_RECOVERY_INFO_EVENT_V2 2
+
+#define MAX_ICD_NL2_PDCP_DATA_RECOVERY_INFO_EVENT_STRUCT_V2_NUMBER_OF_RETX_SNS 100
+
+#define ICD_NL2_PDCP_DATA_RECOVERY_INFO_EVENT_STRUCT_V2_MAX_SIZE 428
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 re_tx_pdu_num:16; // Number of retransmission PDU
+ kal_uint32 number_of_retx_sns:8; // range[0, 100]
+ kal_uint32 first_retx_sn; // First SN in retransmission PDU
+ kal_uint32 pdu_length; // length of PDCP status PDU(Bytes), range[0, 16]
+ kal_uint8 status_pdu[16]; // PDCP status PDU(raw data)
+ kal_uint32 retx_sn_list[FLEXIBLE_ARRAY_SIZE]; // N := Number of ReTx_SNs
+ // The max ReTx SN List size is 100
+} icd_nl2_pdcp_data_recovery_info_event_struct_v2;
+
+typedef icd_nl2_pdcp_data_recovery_info_event_struct_v2 icd_nl2_pdcp_data_recovery_info_event_struct;
+
+
+#endif /* _NL2_PDCP_DATA_RECOVERY_INFO_EVENT_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Data_Recovery_Info_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x95D7", "Name": "NL2_PDCP_Data_Recovery_Info_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when the PDCP data recovery is triggered.\n"}, "table": {"NL2_PDCP_Data_Recovery_Info_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_PDCP_Data_Recovery_Info_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_Data_Recovery_Info_Event"}, "NL2_PDCP_Data_Recovery_Info_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Data_Recovery_Info_Event_V1", ""], "1": ["2", "NL2_PDCP_Data_Recovery_Info_Event_V2", ""]}, "Name": "NL2_PDCP_Data_Recovery_Info_Event_Versions"}, "NL2_PDCP_Data_Recovery_Info_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Re Tx PDU Num", "UINT32", "1", "0", "16", "Number of retransmission PDU"], "1": ["Reserved", "UINT32", "1", "16", "8", ""], "2": ["First ReTx SN", "UINT32", "1", "24", "32", "First SN in retransmission PDU"], "3": ["PDU length", "UINT32", "1", "56", "32", "length of PDCP status PDU(Bytes), range[0, 16]"], "4": ["Status PDU", "UINT8", "16", "88", "128", "PDCP status PDU(raw data)"]}, "Name": "NL2_PDCP_Data_Recovery_Info_Event_V1"}, "NL2_PDCP_Data_Recovery_Info_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"ReTx SN List": "Number of ReTx_SNs"}, "Name": "NL2_PDCP_Data_Recovery_Info_Event_V2", "Data": {"0": ["Re Tx PDU Num", "UINT32", "1", "0", "16", "Number of retransmission PDU"], "1": ["Number of ReTx_SNs", "UINT32", "1", "16", "8", "range[0, 100]"], "2": ["First ReTx SN", "UINT32", "1", "24", "32", "First SN in retransmission PDU"], "3": ["PDU length", "UINT32", "1", "56", "32", "length of PDCP status PDU(Bytes), range[0, 16]"], "4": ["Status PDU", "UINT8", "16", "88", "128", "PDCP status PDU(raw data)"], "5": ["ReTx SN List", "UINT32", "N", "216", "VAR", "N := Number of ReTx_SNs\nThe max ReTx SN List size is 100"]}}}},
+ Public JSON end */
+// Checksum : [7d408e5b781ab2fa2ec0b61bc6dcbbe4]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_PDCP_Status_PDU_Event.h b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Status_PDU_Event.h
new file mode 100644
index 0000000..44520f3
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_PDCP_Status_PDU_Event.h
@@ -0,0 +1,40 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Status_PDU_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x95D9
+// Version : V1.3
+
+#ifndef _NL2_PDCP_STATUS_PDU_EVENT_H
+#define _NL2_PDCP_STATUS_PDU_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_STATUS_PDU_EVENT 0x95D9
+
+#define ICD_NL2_NL2_PDCP_STATUS_PDU_EVENT_V1 1
+
+#define ICD_NL2_PDCP_STATUS_PDU_EVENT_STRUCT_V1_MAX_SIZE 20
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 rb_cfg_idx:8; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint32 direction:1; // 0: Uplink
+ // 1: DownLink
+ kal_uint32 pdu_length:8; // length of PDCP status PDU(Bytes), range[0, 16]
+ kal_uint32 reserved:7;
+ kal_uint8 status_pdu[16]; // PDCP status PDU(raw data).
+} icd_nl2_pdcp_status_pdu_event_struct_v1;
+
+typedef icd_nl2_pdcp_status_pdu_event_struct_v1 icd_nl2_pdcp_status_pdu_event_struct;
+
+
+#endif /* _NL2_PDCP_STATUS_PDU_EVENT_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Status_PDU_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x95D9", "Name": "NL2_PDCP_Status_PDU_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when the PDCP status PDU is triggered.\n"}, "table": {"NL2_PDCP_Status_PDU_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_PDCP_Status_PDU_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_Status_PDU_Event"}, "NL2_PDCP_Status_PDU_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Status_PDU_Event_V1", ""]}, "Name": "NL2_PDCP_Status_PDU_Event_Versions"}, "NL2_PDCP_Status_PDU_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Direction", "UINT32", "1", "8", "1", "0: Uplink\n1: DownLink"], "2": ["PDU length", "UINT32", "1", "9", "8", "length of PDCP status PDU(Bytes), range[0, 16]"], "3": ["Reserved", "UINT32", "1", "17", "7", ""], "4": ["Status PDU", "UINT8", "16", "24", "128", "PDCP status PDU(raw data)."]}, "Name": "NL2_PDCP_Status_PDU_Event_V1"}}},
+ Public JSON end */
+// Checksum : [629b3af1d3d68fcf1921eda6a208fe92]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_PDCP_tReordering_Status_Event.h b/mcu/interface/service/icd/event/nl2/NL2_PDCP_tReordering_Status_Event.h
new file mode 100644
index 0000000..5b12355
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_PDCP_tReordering_Status_Event.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_tReordering_Status_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x95D6
+// Version : V1.3
+
+#ifndef _NL2_PDCP_TREORDERING_STATUS_EVENT_H
+#define _NL2_PDCP_TREORDERING_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_TREORDERING_STATUS_EVENT 0x95D6
+
+#define ICD_NL2_NL2_PDCP_TREORDERING_STATUS_EVENT_V1 1
+
+#define ICD_NL2_PDCP_TREORDERING_STATUS_EVENT_STRUCT_V1_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version:8; // Log event structure ID
+ kal_uint32 timer_status:4; // Values:
+ // 0: timer is reconfigured
+ // 1: started
+ // 2: expired
+ // 3: stopped
+ kal_uint32 rbid:8; // Value range: 1 - 32
+ kal_uint32 reserved:12;
+ kal_uint32 rx_next_old; // The RX_NEXT value before t-Reordering is changed
+ kal_uint32 rx_deliv_old; // The RX_DELIV value before t-Reordering is changed
+ kal_uint32 rx_reord_old; // The RX_REORD value before t-Reordering is changed
+ kal_uint32 rx_next; // The RX_NEXT value after t-Reordering is changed
+ kal_uint32 rx_deliv; // The RX_DELIV value after t-Reordering is changed
+ kal_uint32 rx_reord; // The RX_REORD value after t-Reordering is changed
+} icd_nl2_pdcp_treordering_status_event_struct_v1;
+
+typedef icd_nl2_pdcp_treordering_status_event_struct_v1 icd_nl2_pdcp_treordering_status_event_struct;
+
+
+#endif /* _NL2_PDCP_TREORDERING_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"NL2_PDCP_tReordering_Status_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x95D6", "Name": "NL2_PDCP_tReordering_Status_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when the PDCP t-Reordering status is changed\n"}, "table": {"NL2_PDCP_tReordering_Status_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_PDCP_tReordering_Status_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_tReordering_Status_Event"}, "NL2_PDCP_tReordering_Status_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_tReordering_Status_Event_V1", ""]}, "Name": "NL2_PDCP_tReordering_Status_Event_Versions"}, "NL2_PDCP_tReordering_Status_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer Status", "UINT32", "1", "0", "4", "Values:\n0: timer is reconfigured\n1: started\n2: expired\n3: stopped"], "1": ["RBID", "UINT32", "1", "4", "8", "Value range: 1 - 32"], "2": ["Reserved", "UINT32", "1", "12", "12", ""], "3": ["RX_NEXT_OLD", "UINT32", "1", "24", "32", "The RX_NEXT value before t-Reordering is changed"], "4": ["RX_DELIV_OLD", "UINT32", "1", "56", "32", "The RX_DELIV value before t-Reordering is changed"], "5": ["RX_REORD_OLD", "UINT32", "1", "88", "32", "The RX_REORD value before t-Reordering is changed"], "6": ["RX_NEXT", "UINT32", "1", "120", "32", "The RX_NEXT value after t-Reordering is changed"], "7": ["RX_DELIV", "UINT32", "1", "152", "32", "The RX_DELIV value after t-Reordering is changed"], "8": ["RX_REORD", "UINT32", "1", "184", "32", "The RX_REORD value after t-Reordering is changed"]}, "Name": "NL2_PDCP_tReordering_Status_Event_V1"}}},
+ Public JSON end */
+// Checksum : [1b592dbc53a3f4c855966ca05a94d392]
diff --git a/mcu/interface/service/icd/event/nl2/NL2_RLC_Bearer_Configuration_Event.h b/mcu/interface/service/icd/event/nl2/NL2_RLC_Bearer_Configuration_Event.h
new file mode 100644
index 0000000..274fd94
--- /dev/null
+++ b/mcu/interface/service/icd/event/nl2/NL2_RLC_Bearer_Configuration_Event.h
@@ -0,0 +1,113 @@
+// ICD Header Format v3
+// Name : NL2_RLC_Bearer_Configuration_Event
+// Category : NR
+// Layer : NL2
+// Type : EVENT
+// Code : 0x95AA
+// Version : V1.3
+
+#ifndef _NL2_RLC_BEARER_CONFIGURATION_EVENT_H
+#define _NL2_RLC_BEARER_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_RLC_BEARER_CONFIGURATION_EVENT 0x95AA
+
+#define ICD_NL2_NL2_RLC_BEARER_CONFIGURATION_EVENT_V1 1
+
+#define MAX_ICD_NL2_RLC_BEARER_CONFIGURATION_EVENT_STRUCT_V1_NUMBER_OF_RLC_BEARERS 64
+
+#define ICD_NL2_RLC_BEARER_CONFIGURATION_EVENT_STRUCT_V1_MAX_SIZE 5380
+
+typedef struct {
+ kal_uint8 valid; // 0: Not valid, 1: Valid
+ kal_uint8 priority; // Value range: 1 - 16
+ kal_uint16 bucketsizeduration; // Value range: 5 - 1000. (Unit: ms)
+ kal_uint32 prioritisedbitrate; // Value range: 0 - 65536, Infinity: 4294967295. (Unit: Kilobytes/s)
+ kal_uint8 allowed_serving_cells_valid; // 0: Not valid, 1: Valid
+ kal_uint8 number_of_allowed_serving_cells; // Value range: 1 - 31
+ kal_uint8 allowed_serving_cell[31]; // Value indicates ServCellIndex. Value range: 0 - 31
+ kal_uint8 allowed_scs_valid; // 0: Not valid, 1: Valid
+ kal_uint8 number_of_allowed_scs; // Value range: 1 - 5
+ kal_uint8 allowed_scs[5]; // Value range: 15, 30, 60, 120, 240. (Unit: kHz)
+ kal_uint8 max_pusch_duration_valid; // 0: Not valid, 1: Valid
+ kal_uint8 max_pusch_duration; // 0: 0.02ms, 1: 0.04ms, 2: 0.0625ms, 3: 0.125ms, 4: 0.25ms, 5: 0.5ms
+ kal_uint8 configuredgranttype1allowed; // 0: Not allowed, 1: Allowed
+ kal_uint8 logicalchannelgroup_valid; // 0: Not valid, 1: Valid
+ kal_uint8 logicalchannelgroup; // Value range: 0 - 7
+ kal_uint8 scheduling_request_id_valid; // 0: Not valid, 1: Valid
+ kal_uint8 scheduling_request_id; // Value range: 0 - 7
+ kal_uint8 logicalchannelsr_mask; // 0: Not configured, 1: Configured
+ kal_uint8 logicalchannelsr_delay; // 0: logicalChannelSR-DelayTimer not applied
+ // 1: logicalChannelSR-DelayTimer applied
+ kal_uint8 bitratequeryprohibittimer_valid; // 0: Not valid, 1: Valid
+ kal_uint8 bitratequeryprohibittimer; // 0: 0 seconds
+ // 1: 0.4 seconds
+ // 2: 0.8 seconds
+ // 3: 1.6 seconds
+ // 4: 3 seconds
+ // 5: 6 seconds
+ // 6: 12 seconds
+ // 7: 30 seconds
+ kal_uint8 reserved;
+} nl2_rlc_bearer_mac_logical_channel_config_v1;
+
+typedef nl2_rlc_bearer_mac_logical_channel_config_v1 nl2_rlc_bearer_mac_logical_channel_config;
+
+typedef struct {
+ kal_uint8 rlc_mode; // 0: AM,
+ // 1: UM bidirectional
+ // 2: UM unidirectional UL
+ // 3: UM unidirectional DL
+ kal_uint8 dl_sn_field_length; // Valid only when RLC mode is 0, 1 or 3.(Unit: Bits)
+ // when RLC mode is AM: 12, 18
+ // when RLC mode is UM: 6, 12
+ kal_uint8 ul_sn_field_length; // Valid only when RLC mode is 0, 1 or 2.(Unit: Bits)
+ // when RLC mode is AM: 12, 18
+ // when RLC mode is UM: 6, 12
+ kal_uint8 t_reassembly; // Valid only when RLC mode is 0, 1 or 3.(Unit: ms)
+ // Value range: 0 - 200.
+ kal_uint16 t_statusprohibit; // Valid only when RLC mode is 0 (Unit: ms)
+ // Value range: 0 - 2400.
+ kal_uint16 t_pollretransmit; // Valid only when RLC mode is 0 (Unit: ms)
+ // Value range: 5 - 4000.
+ kal_uint32 pollpdu; // Valid only when RLC mode is 0 (Unit: PDU's )
+ // Value range: 4 - 65536, Infinity (4294967295).
+ kal_uint32 pollbyte; // Valid only when RLC mode is 0 (Unit: Kilobytes)
+ // Value range:1 - 40000, Infinity (4294967295).
+ kal_uint8 maxretxthreshold; // Valid only when RLC mode is 0 (Unit: Retransmissions)
+ // Value range: 1 - 32. Unit: retransmissions
+ kal_uint8 reserved[3];
+} nl2_rlc_bearer_rlc_config_v1;
+
+typedef nl2_rlc_bearer_rlc_config_v1 nl2_rlc_bearer_rlc_config;
+
+typedef struct {
+ kal_uint8 cell_group_id; // 0: MCG, 1: SCG
+ kal_uint8 lcid; // Value range: 1 - 32
+ kal_uint8 served_rb_type; // 0: SRB, 1: DRB
+ kal_uint8 served_rbid; // Value range: 1 - 32
+ nl2_rlc_bearer_rlc_config rlc_config;
+ nl2_rlc_bearer_mac_logical_channel_config mac_logical_channel_config;
+} nl2_rlc_bearer_config_v1;
+
+typedef nl2_rlc_bearer_config_v1 nl2_rlc_bearer_config;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 number_of_rlc_bearers; // Range[0, 64], 0: All bearers are released.
+ kal_uint16 reserved;
+ nl2_rlc_bearer_config rlc_bearer_config[FLEXIBLE_ARRAY_SIZE]; // N := Number of RLC bearers
+} icd_nl2_rlc_bearer_configuration_event_struct_v1;
+
+typedef icd_nl2_rlc_bearer_configuration_event_struct_v1 icd_nl2_rlc_bearer_configuration_event_struct;
+
+
+#endif /* _NL2_RLC_BEARER_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"NL2_RLC_Bearer_Configuration_Event": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x95AA", "Name": "NL2_RLC_Bearer_Configuration_Event", "Type": "EVENT", "Desc": "It is event trigger, only report when RLC configuration is changed\n"}, "table": {"NL2_RLC_Bearer_Configuration_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_RLC_Bearer_Configuration_Event_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_RLC_Bearer_Configuration_Event"}, "NL2_RLC_Bearer_Configuration_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_RLC_Bearer_Configuration_Event_V1", ""]}, "Name": "NL2_RLC_Bearer_Configuration_Event_Versions"}, "NL2_RLC_Bearer_Configuration_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RLC bearer config": "Number of RLC bearers"}, "Name": "NL2_RLC_Bearer_Configuration_Event_V1", "Data": {"0": ["Number of RLC bearers", "UINT8", "1", "0", "8", "Range[0, 64], 0: All bearers are released."], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["RLC bearer config", "NL2_RLC_Bearer_Config_V1", "N", "24", "VAR", "N := Number of RLC bearers"]}}, "NL2_RLC_Bearer_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1: SCG"], "1": ["LCID", "UINT8", "1", "8", "8", "Value range: 1 - 32"], "2": ["Served RB type", "UINT8", "1", "16", "8", "0: SRB, 1: DRB"], "3": ["Served RBID", "UINT8", "1", "24", "8", "Value range: 1 - 32"], "4": ["RLC config", "NL2_RLC_Bearer_RLC_Config_V1", "1", "32", "160", ""], "5": ["MAC logical channel config", "NL2_RLC_Bearer_MAC_Logical_Channel_Config_V1", "1", "192", "480", ""]}, "Name": "NL2_RLC_Bearer_Config_V1"}, "NL2_RLC_Bearer_RLC_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RLC mode", "UINT8", "1", "0", "8", "0: AM,\n1: UM bidirectional\n2: UM unidirectional UL\n3: UM unidirectional DL"], "1": ["DL SN field length", "UINT8", "1", "8", "8", "Valid only when RLC mode is 0, 1 or 3.(Unit: Bits)\nwhen RLC mode is AM: 12, 18\nwhen RLC mode is UM: 6, 12"], "2": ["UL SN field length", "UINT8", "1", "16", "8", "Valid only when RLC mode is 0, 1 or 2.(Unit: Bits)\nwhen RLC mode is AM: 12, 18\nwhen RLC mode is UM: 6, 12"], "3": ["t-Reassembly", "UINT8", "1", "24", "8", "Valid only when RLC mode is 0, 1 or 3.(Unit: ms)\nValue range: 0 - 200."], "4": ["t-StatusProhibit", "UINT16", "1", "32", "16", "Valid only when RLC mode is 0 (Unit: ms)\nValue range: 0 - 2400."], "5": ["t-PollRetransmit", "UINT16", "1", "48", "16", "Valid only when RLC mode is 0 (Unit: ms)\nValue range: 5 - 4000."], "6": ["pollPDU", "UINT32", "1", "64", "32", "Valid only when RLC mode is 0 (Unit: PDU's )\nValue range: 4 - 65536, Infinity (4294967295)."], "7": ["pollByte", "UINT32", "1", "96", "32", "Valid only when RLC mode is 0 (Unit: Kilobytes)\nValue range:1 - 40000, Infinity (4294967295)."], "8": ["maxRetxThreshold", "UINT8", "1", "128", "8", "Valid only when RLC mode is 0 (Unit: Retransmissions)\nValue range: 1 - 32. Unit: retransmissions"], "9": ["Reserved", "UINT8", "3", "136", "24", ""]}, "Name": "NL2_RLC_Bearer_RLC_Config_V1"}, "NL2_RLC_Bearer_MAC_Logical_Channel_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT8", "1", "0", "8", "0: Not valid, 1: Valid"], "1": ["Priority", "UINT8", "1", "8", "8", "Value range: 1 - 16"], "2": ["BucketSizeDuration", "UINT16", "1", "16", "16", "Value range: 5 - 1000. (Unit: ms)"], "3": ["PrioritisedBitRate", "UINT32", "1", "32", "32", "Value range: 0 - 65536, Infinity: 4294967295. (Unit: Kilobytes/s)"], "4": ["Allowed serving cells valid", "UINT8", "1", "64", "8", "0: Not valid, 1: Valid"], "5": ["Number of allowed serving cells", "UINT8", "1", "72", "8", "Value range: 1 - 31"], "6": ["Allowed serving cell", "UINT8", "31", "80", "248", "Value indicates ServCellIndex. Value range: 0 - 31"], "7": ["Allowed SCS valid", "UINT8", "1", "328", "8", "0: Not valid, 1: Valid"], "8": ["Number of allowed SCS", "UINT8", "1", "336", "8", "Value range: 1 - 5"], "9": ["Allowed SCS", "UINT8", "5", "344", "40", "Value range: 15, 30, 60, 120, 240. (Unit: kHz)"], "10": ["Max PUSCH duration valid", "UINT8", "1", "384", "8", "0: Not valid, 1: Valid"], "11": ["Max PUSCH duration", "UINT8", "1", "392", "8", "0: 0.02ms, 1: 0.04ms, 2: 0.0625ms, 3: 0.125ms, 4: 0.25ms, 5: 0.5ms"], "12": ["configuredGrantType1Allowed", "UINT8", "1", "400", "8", "0: Not allowed, 1: Allowed"], "13": ["logicalChannelGroup valid", "UINT8", "1", "408", "8", "0: Not valid, 1: Valid"], "14": ["logicalChannelGroup", "UINT8", "1", "416", "8", "Value range: 0 - 7"], "15": ["Scheduling request ID valid", "UINT8", "1", "424", "8", "0: Not valid, 1: Valid"], "16": ["Scheduling request ID", "UINT8", "1", "432", "8", "Value range: 0 - 7"], "17": ["logicalChannelSR-Mask", "UINT8", "1", "440", "8", "0: Not configured, 1: Configured"], "18": ["logicalChannelSR-Delay", "UINT8", "1", "448", "8", "0: logicalChannelSR-DelayTimer not applied\n1: logicalChannelSR-DelayTimer applied"], "19": ["bitRateQueryProhibitTimer valid", "UINT8", "1", "456", "8", "0: Not valid, 1: Valid"], "20": ["bitRateQueryProhibitTimer", "UINT8", "1", "464", "8", "0: 0 seconds\n1: 0.4 seconds\n2: 0.8 seconds\n3: 1.6 seconds\n4: 3 seconds\n5: 6 seconds\n6: 12 seconds\n7: 30 seconds"], "21": ["Reserved", "UINT8", "1", "472", "8", ""]}, "Name": "NL2_RLC_Bearer_MAC_Logical_Channel_Config_V1"}}},
+ Public JSON end */
+// Checksum : [be70b227de713a20f7e2ad14d69f1601]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_AC_BAR_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_AC_BAR_EVENT.h
new file mode 100644
index 0000000..4d1cfa4
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_AC_BAR_EVENT.h
@@ -0,0 +1,77 @@
+// ICD Header Format v3
+// Name : NRRC_AC_BAR_EVENT
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x961C
+// Version : V1.3
+
+#ifndef _NRRC_AC_BAR_EVENT_H
+#define _NRRC_AC_BAR_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_AC_BAR_EVENT 0x961C
+
+#define ICD_NRRC_NRRC_AC_BAR_INFO_V1 1
+
+#define MAX_ICD_NRRC_AC_BAR_INFO_STRUCT_V1_NUMBER_OF_ACCESS_CATEGORY_INFO 63
+
+#define ICD_NRRC_AC_BAR_INFO_STRUCT_V1_MAX_SIZE 508
+
+typedef struct {
+ kal_uint8 access_category; // Access category number
+ kal_uint8 ac_barringfactor; // AC barring factor brought in SIB1.
+ // 0: p00
+ // 1: p05
+ // 2: p10
+ // 3: p15
+ // 4: p20
+ // 5: p25
+ // 6: p30
+ // 7: p40
+ // 8: p50
+ // 9: p60
+ // 10: p70
+ // 11: p75
+ // 12: p80
+ // 13: p85
+ // 14: p90
+ // 15: p95
+ kal_uint8 ac_barringtime; // AC barring time brought in SIB1.
+ // 0: s4
+ // 1: s8
+ // 2: s16
+ // 3: s32
+ // 4: s64
+ // 5: s128
+ // 6: s256
+ // 7: s512
+ kal_uint8 barring_type; // 0: None, 1: Conditional, 2: Unconditional
+ kal_uint8 is_barred; // 0: Not barred, 1: Barred
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} ac_info_v1;
+
+typedef ac_info_v1 ac_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 number_of_access_category_info; // Number of applied barring categories. range[0, 63]
+ kal_uint16 reserved;
+ ac_info access_category_info[FLEXIBLE_ARRAY_SIZE]; // N := Number of Access Category Info
+ // Info of each applied AC w/ barring status for this
+ // barring info set
+} icd_nrrc_ac_bar_info_struct_v1;
+
+typedef icd_nrrc_ac_bar_info_struct_v1 icd_nrrc_ac_bar_info_struct;
+
+
+#endif /* _NRRC_AC_BAR_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_AC_BAR_EVENT": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x961C", "Name": "NRRC_AC_BAR_EVENT", "Type": "EVENT", "Desc": "Access barring related SIB1 information and barring status.\n"}, "table": {"NRRC_AC_BAR_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_AC_BAR_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_AC_BAR_Info"}, "NRRC_AC_BAR_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_AC_BAR_Info_V1", ""]}, "Name": "NRRC_AC_BAR_Info_Versions"}, "NRRC_AC_BAR_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Access Category Info": "Number of Access Category Info"}, "Name": "NRRC_AC_BAR_Info_V1", "Data": {"0": ["Number of Access Category Info", "UINT8", "1", "0", "8", "Number of applied barring categories. range[0, 63]"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["Access Category Info", "AC_Info_V1", "N", "24", "VAR", "N := Number of Access Category Info\nInfo of each applied AC w/ barring status for this\nbarring info set"]}}, "AC_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Access Category", "UINT8", "1", "0", "8", "Access category number"], "1": ["ac-BarringFactor", "UINT8", "1", "8", "8", "AC barring factor brought in SIB1.\n0: p00\n1: p05\n2: p10\n3: p15\n4: p20\n5: p25\n6: p30\n7: p40\n8: p50\n9: p60\n10: p70\n11: p75\n12: p80\n13: p85\n14: p90\n15: p95"], "2": ["ac-BarringTime", "UINT8", "1", "16", "8", "AC barring time brought in SIB1.\n0: s4\n1: s8\n2: s16\n3: s32\n4: s64\n5: s128\n6: s256\n7: s512"], "3": ["Barring type", "UINT8", "1", "24", "8", "0: None, 1: Conditional, 2: Unconditional"], "4": ["Is Barred", "UINT8", "1", "32", "8", "0: Not barred, 1: Barred"], "5": ["Reserved", "UINT8", "1", "40", "8", ""], "6": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "AC_Info_V1"}}},
+ Public JSON end */
+// Checksum : [3157e6005d633b39e8ae62547d500ef3]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_CAPABILITY_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_CAPABILITY_EVENT.h
new file mode 100644
index 0000000..d3573d1
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_CAPABILITY_EVENT.h
@@ -0,0 +1,36 @@
+// ICD Header Format v3
+// Name : NRRC_CAPABILITY_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9611
+// Version : V1.3
+
+#ifndef _NRRC_CAPABILITY_EVENT_H
+#define _NRRC_CAPABILITY_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_CAPABILITY_EVENT 0x9611
+
+#define ICD_NRRC_NRRC_CAPABILITY_INFO_V1 1
+
+#define ICD_NRRC_CAPABILITY_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 ue_support_endc_capability; // Indicated if UE supports ENDC capability. 0:False, 1:True.
+ kal_uint16 reserved;
+} icd_nrrc_capability_info_struct_v1;
+
+typedef icd_nrrc_capability_info_struct_v1 icd_nrrc_capability_info_struct;
+
+
+#endif /* _NRRC_CAPABILITY_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_CAPABILITY_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9611", "Name": "NRRC_CAPABILITY_Event", "Type": "EVENT", "Desc": "RRC related UE capability information.\n"}, "table": {"NRRC_CAPABILITY_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_CAPABILITY_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_CAPABILITY_Info"}, "NRRC_CAPABILITY_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_CAPABILITY_Info_V1", ""]}, "Name": "NRRC_CAPABILITY_Info_Versions"}, "NRRC_CAPABILITY_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Support ENDC capability", "UINT8", "1", "0", "8", "Indicated if UE supports ENDC capability. 0:False, 1:True."], "1": ["Reserved", "UINT16", "1", "8", "16", ""]}, "Name": "NRRC_CAPABILITY_Info_V1"}}},
+ Public JSON end */
+// Checksum : [d06821d8885c6f35977146b7a06aee15]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_CELL_EXCLUDE_LIST_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_CELL_EXCLUDE_LIST_EVENT.h
new file mode 100644
index 0000000..0d0da1c
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_CELL_EXCLUDE_LIST_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NRRC_Cell_Exclude_List_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9605
+// Version : V1.3
+
+#ifndef _NRRC_CELL_EXCLUDE_LIST_EVENT_H
+#define _NRRC_CELL_EXCLUDE_LIST_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_CELL_EXCLUDE_LIST_EVENT 0x9605
+
+#define ICD_NRRC_NRRC_CELL_EXCLUDE_LIST_INFO_V1 1
+
+#define ICD_NRRC_CELL_EXCLUDE_LIST_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rat; // Radio access technology
+ // 0:LTE
+ // 1:NR
+ kal_uint16 physical_cell_id; // Physical Cell Identity of target cell
+ kal_uint32 dl_freq; // Downlink arfcn of target cell
+} icd_nrrc_cell_exclude_list_info_struct_v1;
+
+typedef icd_nrrc_cell_exclude_list_info_struct_v1 icd_nrrc_cell_exclude_list_info_struct;
+
+
+#endif /* _NRRC_CELL_EXCLUDE_LIST_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_Cell_Exclude_List_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9605", "Name": "NRRC_Cell_Exclude_List_Event", "Type": "EVENT", "Desc": "The event is generated when UE excludes a cell.\n"}, "table": {"NRRC_Cell_Exclude_List_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_Cell_Exclude_List_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_Cell_Exclude_List_Info"}, "NRRC_Cell_Exclude_List_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_Cell_Exclude_List_Info_V1", ""]}, "Name": "NRRC_Cell_Exclude_List_Info_Versions"}, "NRRC_Cell_Exclude_List_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:LTE\n1:NR"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical Cell Identity of target cell"], "2": ["DL Freq", "UINT32", "1", "24", "32", "Downlink arfcn of target cell"]}, "Name": "NRRC_Cell_Exclude_List_Info_V1"}}},
+ Public JSON end */
+// Checksum : [646cd59293d23f9a7b958cba80dc9a7f]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT.h
new file mode 100644
index 0000000..1812139
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT.h
@@ -0,0 +1,44 @@
+// ICD Header Format v3
+// Name : NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9613
+// Version : V1.3
+
+#ifndef _NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT_H
+#define _NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT 0x9613
+
+#define ICD_NRRC_NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_INFO_V1 1
+
+#define ICD_NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 dl_frequency_band; // Serving cell DL band, value range [1, 1024],
+ // 0xFFFF means not applicable.
+ kal_uint32 dl_nrarfcn; // Serving cell DL NRArfcn, value range [0, 3279165],
+ // 0xFFFFFFFF means not applicable.
+ kal_uint16 physical_cell_id; // Serving cell physical cell ID
+ kal_uint8 dss_enabled; // Indicates DSS enable status
+ // 0:Disable
+ // 1:Enable
+ kal_uint8 reserved_1;
+} icd_nrrc_dynamic_spectrum_sharing_configuration_info_struct_v1;
+
+typedef icd_nrrc_dynamic_spectrum_sharing_configuration_info_struct_v1 icd_nrrc_dynamic_spectrum_sharing_configuration_info_struct;
+
+
+#endif /* _NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9613", "Name": "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Event", "Type": "EVENT", "Desc": "The event is generated to inform dynamic spectrum sharing configuration status in IE's.\n"}, "table": {"NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info"}, "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_V1", ""], "1": ["2", "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_V2", ""]}, "Name": "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_Versions"}, "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["DL Frequency band", "UINT16", "1", "8", "16", "Serving cell DL band, value range [1, 1024],\n0xFFFF means not applicable."], "2": ["DL NRarfcn", "UINT32", "1", "24", "32", "Serving cell DL NRArfcn, value range [0, 3279165],\n0xFFFFFFFF means not applicable."], "3": ["Physical Cell ID", "UINT16", "1", "56", "16", "Serving cell physical cell ID"], "4": ["DSS enabled", "UINT8", "1", "72", "8", "Indicates DSS enable status\n0:Disable\n1:Enable"], "5": ["Reserved", "UINT8", "1", "80", "8", ""]}, "Name": "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_V1"}, "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["DL Frequency band", "UINT16", "1", "8", "16", "Serving cell DL band, value range [1, 1024],\n0xFFFF means not applicable."], "2": ["DL NRarfcn", "UINT32", "1", "24", "32", "Serving cell DL NRArfcn, value range [0, 3279165],\n0xFFFFFFFF means not applicable."], "3": ["Physical Cell ID", "UINT16", "1", "56", "16", "Serving cell physical cell ID"], "4": ["DSS enabled", "UINT8", "1", "72", "8", "Indicates DSS enable status\n0:Disable\n1:Enable"], "5": ["Reserved", "UINT8", "1", "80", "8", ""], "6": ["DSS Config Info", "DSS_Config_Info_V1", "1", "88", "VAR", "Valid if DSS is enabled"]}, "Name": "NRRC_DYNAMIC_SPECTRUM_SHARING_CONFIGURATION_Info_V2"}, "DSS_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"MBSFN Subframe Config list": "Number of MBSFN Subframe Config"}, "Name": "DSS_Config_Info_V1", "Data": {"0": ["Carrier Freq Bandwidth DL", "UINT8", "1", "0", "8", "0: n6\n1: n15\n2: n25\n3: n50\n4: n75\n5: n100"], "1": ["Number of CRS Ports", "UINT8", "1", "8", "8", "0: n1\n1: n2\n2: n4"], "2": ["Carrier Freq DL for LTE", "UINT16", "1", "16", "16", "LTE carrier DL ARFCN, value range [0, 16383]."], "3": ["Reserved", "UINT16", "1", "32", "16", ""], "4": ["V Shift", "UINT8", "1", "48", "8", "0: n0\n1: n1\n2: n2\n3: n3\n4: n4\n5: n5"], "5": ["Number of MBSFN Subframe Config", "UINT8", "1", "56", "8", "Number of MBSFN subframe configurations. range[0, 8]"], "6": ["MBSFN Subframe Config list", "MBSFN_Subframe_Config_Info_V1", "N", "64", "VAR", "N := Number of MBSFN Subframe Config\nInfo of each MBSFN subframe configuration"]}}, "MBSFN_Subframe_Config_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Radio Frame Allocation Period", "UINT8", "1", "0", "8", "0: n1\n1: n2\n2: n4\n3: n8\n4: n16\n5: n32"], "1": ["Radio Frame Allocation Offset", "UINT8", "1", "8", "8", "value range [0, 7]"], "2": ["Subframe Allocation 1 format", "UINT8", "1", "16", "8", "0: oneframe\n1: fourframes"], "3": ["Subframe Allocation 2 format", "UINT8", "1", "24", "8", "0: oneframe\n1: fourframes"], "4": ["Subframe Allocation 1", "UINT32", "1", "32", "24", "Bitstring: bit 0~5 valid for oneframe format,\nbit 0~23 valid for fourframes format"], "5": ["Subframe Allocation 2", "UINT32", "1", "56", "8", "Bitstring: bit 0~1 valid for oneframe format,\nbit 0~7 valid for fourframes format"]}, "Name": "MBSFN_Subframe_Config_Info_V1"}}},
+ Public JSON end */
+// Checksum : [d38ea9d16f7f8a33e0113bd56513a477]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Handover_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Handover_EVENT.h
new file mode 100644
index 0000000..38a4187
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Handover_EVENT.h
@@ -0,0 +1,48 @@
+// ICD Header Format v3
+// Name : NRRC_InterRAT_Handover_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x960A
+// Version : V1.3
+
+#ifndef _NRRC_INTERRAT_HANDOVER_EVENT_H
+#define _NRRC_INTERRAT_HANDOVER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_INTERRAT_HANDOVER_EVENT 0x960A
+
+#define ICD_NRRC_NRRC_INTERRAT_HANDOVER_INFO_V1 1
+
+#define ICD_NRRC_INTERRAT_HANDOVER_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 target_rat; // Radio access technology
+ // 0:LTE
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA - Success case,
+ // 1:Protocol_error,
+ // 2:Configuration_error,
+ // 3:Physical_channel_error,
+ // 4:Invalid_frequency,
+ // 5:Invalid_message,
+ // 6:Other
+} icd_nrrc_interrat_handover_info_struct_v1;
+
+typedef icd_nrrc_interrat_handover_info_struct_v1 icd_nrrc_interrat_handover_info_struct;
+
+
+#endif /* _NRRC_INTERRAT_HANDOVER_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_InterRAT_Handover_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960A", "Name": "NRRC_InterRAT_Handover_Event", "Type": "EVENT", "Desc": "The event is generated when inter-RAT handover procedure status changes.\n"}, "table": {"NRRC_InterRAT_Handover_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_InterRAT_Handover_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_InterRAT_Handover_Info"}, "NRRC_InterRAT_Handover_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_InterRAT_Handover_Info_V1", ""]}, "Name": "NRRC_InterRAT_Handover_Info_Versions"}, "NRRC_InterRAT_Handover_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Target RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:LTE"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:NA - Success case,\n1:Protocol_error,\n2:Configuration_error,\n3:Physical_channel_error,\n4:Invalid_frequency,\n5:Invalid_message,\n6:Other"]}, "Name": "NRRC_InterRAT_Handover_Info_V1"}}},
+ Public JSON end */
+// Checksum : [4d8a2e27397d23631a1752d301312fd9]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Redirection_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Redirection_EVENT.h
new file mode 100644
index 0000000..50f4753
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Redirection_EVENT.h
@@ -0,0 +1,48 @@
+// ICD Header Format v3
+// Name : NRRC_InterRAT_Redirection_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x960C
+// Version : V1.3
+
+#ifndef _NRRC_INTERRAT_REDIRECTION_EVENT_H
+#define _NRRC_INTERRAT_REDIRECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_INTERRAT_REDIRECTION_EVENT 0x960C
+
+#define ICD_NRRC_NRRC_INTERRAT_REDIRECTION_INFO_V1 1
+
+#define ICD_NRRC_INTERRAT_REDIRECTION_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rat; // Radio access technology
+ // 0:LTE
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA - Success case,
+ // 1:Cell barred,
+ // 2:Freq barred,
+ // 3:PLMN mismatch,
+ // 4:TA not allowed,
+ // 5:CSG not allowed,
+ // 6:Others
+} icd_nrrc_interrat_redirection_info_struct_v1;
+
+typedef icd_nrrc_interrat_redirection_info_struct_v1 icd_nrrc_interrat_redirection_info_struct;
+
+
+#endif /* _NRRC_INTERRAT_REDIRECTION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_InterRAT_Redirection_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960C", "Name": "NRRC_InterRAT_Redirection_Event", "Type": "EVENT", "Desc": "The event is generated when inter-RAT redirection procedure status changes.\n"}, "table": {"NRRC_InterRAT_Redirection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_InterRAT_Redirection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_InterRAT_Redirection_Info"}, "NRRC_InterRAT_Redirection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_InterRAT_Redirection_Info_V1", ""]}, "Name": "NRRC_InterRAT_Redirection_Info_Versions"}, "NRRC_InterRAT_Redirection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:LTE"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:NA - Success case,\n1:Cell barred,\n2:Freq barred,\n3:PLMN mismatch,\n4:TA not allowed,\n5:CSG not allowed,\n6:Others"]}, "Name": "NRRC_InterRAT_Redirection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [d894bc140d8f46d115710dd81e84bcb1]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Reselection_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Reselection_EVENT.h
new file mode 100644
index 0000000..878d910
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_InterRAT_Reselection_EVENT.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : NRRC_InterRAT_Reselection_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x960B
+// Version : V1.3
+
+#ifndef _NRRC_INTERRAT_RESELECTION_EVENT_H
+#define _NRRC_INTERRAT_RESELECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_INTERRAT_RESELECTION_EVENT 0x960B
+
+#define ICD_NRRC_NRRC_INTERRAT_RESELECTION_INFO_V1 1
+
+#define ICD_NRRC_INTERRAT_RESELECTION_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 target_rat; // Radio access technology
+ // 0:LTE
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA - Success case,
+ // 1:Cell barred,
+ // 2:Freq barred,
+ // 3:PLMN mismatch,
+ // 4:TA not allowed,
+ // 5:CSG not barred,
+ // 6:Others
+ kal_uint32 frequency; // DL ARFCN
+ kal_uint16 physical_cell_id; // Physical cell identitfy
+ kal_uint16 reserved;
+} icd_nrrc_interrat_reselection_info_struct_v1;
+
+typedef icd_nrrc_interrat_reselection_info_struct_v1 icd_nrrc_interrat_reselection_info_struct;
+
+
+#endif /* _NRRC_INTERRAT_RESELECTION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_InterRAT_Reselection_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960B", "Name": "NRRC_InterRAT_Reselection_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT reselection procedure status changes.\n"}, "table": {"NRRC_InterRAT_Reselection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_InterRAT_Reselection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_InterRAT_Reselection_Info"}, "NRRC_InterRAT_Reselection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_InterRAT_Reselection_Info_V1", ""]}, "Name": "NRRC_InterRAT_Reselection_Info_Versions"}, "NRRC_InterRAT_Reselection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Target RAT", "UINT8", "1", "0", "8", "Radio access technology\n0:LTE"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:NA - Success case,\n1:Cell barred,\n2:Freq barred,\n3:PLMN mismatch,\n4:TA not allowed,\n5:CSG not barred,\n6:Others"], "3": ["Frequency", "UINT32", "1", "24", "32", "DL ARFCN"], "4": ["Physical Cell ID", "UINT16", "1", "56", "16", "Physical cell identitfy"], "5": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "NRRC_InterRAT_Reselection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [830858d68fe7a4846132f8cfe1e54472]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Handover_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Handover_EVENT.h
new file mode 100644
index 0000000..b68fe9f
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Handover_EVENT.h
@@ -0,0 +1,56 @@
+// ICD Header Format v3
+// Name : NRRC_IntraRAT_Handover_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9607
+// Version : V1.3
+
+#ifndef _NRRC_INTRARAT_HANDOVER_EVENT_H
+#define _NRRC_INTRARAT_HANDOVER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_INTRARAT_HANDOVER_EVENT 0x9607
+
+#define ICD_NRRC_NRRC_INTRARAT_HANDOVER_INFO_V1 1
+
+#define ICD_NRRC_INTRARAT_HANDOVER_INFO_STRUCT_V1_MAX_SIZE 20
+
+typedef struct {
+ kal_uint32 dl_nrarfcn; // Pcell DL NRArfcn, value range [0, 3279165].
+ kal_uint16 dl_frequency_band; // PCell DL band, value range [1, 1024].
+ kal_uint16 physical_cell_id; // Pcell physical cell ID
+} ho_pcell_info_v1;
+
+typedef ho_pcell_info_v1 ho_pcell_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 type; // Indicates handover type
+ // 0:Intra Cell handover
+ // 1:Inter Cell handover
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA, -- Success case
+ // 1:Other, -- Other reason instead of reason below
+ // 2:Invalid configuration,
+ // 3:T304 expiry,
+ ho_pcell_info source_cell; // Source Pcell info
+ ho_pcell_info target_cell; // Target Pcell info
+} icd_nrrc_intrarat_handover_info_struct_v1;
+
+typedef icd_nrrc_intrarat_handover_info_struct_v1 icd_nrrc_intrarat_handover_info_struct;
+
+
+#endif /* _NRRC_INTRARAT_HANDOVER_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_IntraRAT_Handover_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9607", "Name": "NRRC_IntraRAT_Handover_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT handover procedure status changes.\n"}, "table": {"NRRC_IntraRAT_Handover_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_IntraRAT_Handover_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_IntraRAT_Handover_Info"}, "NRRC_IntraRAT_Handover_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_IntraRAT_Handover_Info_V1", ""]}, "Name": "NRRC_IntraRAT_Handover_Info_Versions"}, "NRRC_IntraRAT_Handover_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Type", "UINT8", "1", "0", "8", "Indicates handover type\n0:Intra Cell handover\n1:Inter Cell handover"], "1": ["Status", "UINT8", "1", "8", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure"], "2": ["Failure Cause", "UINT8", "1", "16", "8", "Indicates procedure failure cause\n0:NA, -- Success case\n1:Other, -- Other reason instead of reason below\n2:Invalid configuration,\n3:T304 expiry,"], "3": ["Source Cell", "HO_Pcell_Info_V1", "1", "24", "64", "Source Pcell info"], "4": ["Target Cell", "HO_Pcell_Info_V1", "1", "88", "64", "Target Pcell info"]}, "Name": "NRRC_IntraRAT_Handover_Info_V1"}, "HO_Pcell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL NRarfcn", "UINT32", "1", "0", "32", "Pcell DL NRArfcn, value range [0, 3279165]."], "1": ["DL Frequency band", "UINT16", "1", "32", "16", "PCell DL band, value range [1, 1024]."], "2": ["Physical Cell ID", "UINT16", "1", "48", "16", "Pcell physical cell ID"]}, "Name": "HO_Pcell_Info_V1"}}},
+ Public JSON end */
+// Checksum : [02355f304b80c510c306a3fca3a26faf]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Redirection_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Redirection_EVENT.h
new file mode 100644
index 0000000..dfeba0d
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Redirection_EVENT.h
@@ -0,0 +1,42 @@
+// ICD Header Format v3
+// Name : NRRC_IntraRAT_Redirection_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9609
+// Version : V1.3
+
+#ifndef _NRRC_INTRARAT_REDIRECTION_EVENT_H
+#define _NRRC_INTRARAT_REDIRECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_INTRARAT_REDIRECTION_EVENT 0x9609
+
+#define ICD_NRRC_NRRC_INTRARAT_REDIRECTION_INFO_V1 1
+
+#define ICD_NRRC_INTRARAT_REDIRECTION_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA - Success case,
+ // 1:Failed,
+ kal_uint8 reserved;
+} icd_nrrc_intrarat_redirection_info_struct_v1;
+
+typedef icd_nrrc_intrarat_redirection_info_struct_v1 icd_nrrc_intrarat_redirection_info_struct;
+
+
+#endif /* _NRRC_INTRARAT_REDIRECTION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_IntraRAT_Redirection_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9609", "Name": "NRRC_IntraRAT_Redirection_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT redirection procedure status changes.\n"}, "table": {"NRRC_IntraRAT_Redirection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_IntraRAT_Redirection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_IntraRAT_Redirection_Info"}, "NRRC_IntraRAT_Redirection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_IntraRAT_Redirection_Info_V1", ""]}, "Name": "NRRC_IntraRAT_Redirection_Info_Versions"}, "NRRC_IntraRAT_Redirection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure"], "1": ["Failure Cause", "UINT8", "1", "8", "8", "Indicates procedure failure cause\n0:NA - Success case,\n1:Failed,"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_IntraRAT_Redirection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [16ec00744180d1a0bf8b42ceab36a595]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Reselection_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Reselection_EVENT.h
new file mode 100644
index 0000000..a989f7d
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_IntraRAT_Reselection_EVENT.h
@@ -0,0 +1,54 @@
+// ICD Header Format v3
+// Name : NRRC_IntraRAT_Reselection_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9608
+// Version : V1.3
+
+#ifndef _NRRC_INTRARAT_RESELECTION_EVENT_H
+#define _NRRC_INTRARAT_RESELECTION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_INTRARAT_RESELECTION_EVENT 0x9608
+
+#define ICD_NRRC_NRRC_INTRARAT_RESELECTION_INFO_V1 1
+
+#define ICD_NRRC_INTRARAT_RESELECTION_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA - Success case,
+ // 1:S-Failure,
+ // 2:Sib-Read-Failure,
+ // 3:Weak-Downlink-Indicator,
+ // 4:Cell-Barred,
+ // 5:Non-Valid-Plmn,
+ // 6:Forbidden-Tracking-Area,
+ // 7:Aborted,
+ // 8:Forbidden-CSG-Id,
+ // 9:IRAT-Reselection-Failure,
+ // 10:Frequency-Barred
+ kal_uint8 reserved;
+ kal_uint32 dl_arfcn; // Target Downlink NR arfcn
+ kal_uint16 physical_cell_id; // Target Physical cell Identity
+ kal_uint16 reserved_1;
+} icd_nrrc_intrarat_reselection_info_struct_v1;
+
+typedef icd_nrrc_intrarat_reselection_info_struct_v1 icd_nrrc_intrarat_reselection_info_struct;
+
+
+#endif /* _NRRC_INTRARAT_RESELECTION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_IntraRAT_Reselection_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9608", "Name": "NRRC_IntraRAT_Reselection_Event", "Type": "EVENT", "Desc": "The event is generated when intra-RAT reselection procedure status changes.\n"}, "table": {"NRRC_IntraRAT_Reselection_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_IntraRAT_Reselection_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_IntraRAT_Reselection_Info"}, "NRRC_IntraRAT_Reselection_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_IntraRAT_Reselection_Info_V1", ""]}, "Name": "NRRC_IntraRAT_Reselection_Info_Versions"}, "NRRC_IntraRAT_Reselection_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure"], "1": ["Failure Cause", "UINT8", "1", "8", "8", "Indicates procedure failure cause\n0:NA - Success case,\n1:S-Failure,\n2:Sib-Read-Failure,\n3:Weak-Downlink-Indicator,\n4:Cell-Barred,\n5:Non-Valid-Plmn,\n6:Forbidden-Tracking-Area,\n7:Aborted,\n8:Forbidden-CSG-Id,\n9:IRAT-Reselection-Failure,\n10:Frequency-Barred"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["DL Arfcn", "UINT32", "1", "24", "32", "Target Downlink NR arfcn"], "4": ["Physical Cell ID", "UINT16", "1", "56", "16", "Target Physical cell Identity"], "5": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "NRRC_IntraRAT_Reselection_Info_V1"}}},
+ Public JSON end */
+// Checksum : [08308bfd0f018d90c71c3eacd21fe2db]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_OOS_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_OOS_EVENT.h
new file mode 100644
index 0000000..e6dc904
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_OOS_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NRRC_OOS_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9603
+// Version : V1.3
+
+#ifndef _NRRC_OOS_EVENT_H
+#define _NRRC_OOS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_OOS_EVENT 0x9603
+
+#define ICD_NRRC_NRRC_OOS_INFO_V2 2
+
+#define ICD_NRRC_OOS_INFO_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cause; // bar cell(0),
+ // RA fail(1),
+ // MIB SIB fail(2),
+ // weak signal(3),
+ kal_uint16 counter; // Indicate how many times UE has gone OOS
+} icd_nrrc_oos_info_struct_v2;
+
+typedef icd_nrrc_oos_info_struct_v2 icd_nrrc_oos_info_struct;
+
+
+#endif /* _NRRC_OOS_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_OOS_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9603", "Name": "NRRC_OOS_Event", "Type": "EVENT", "Desc": "The event is generated when UE detects out of service area.\n"}, "table": {"NRRC_OOS_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_OOS_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_OOS_Info"}, "NRRC_OOS_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_OOS_Info_V1", ""], "1": ["2", "NRRC_OOS_Info_V2", ""]}, "Name": "NRRC_OOS_Info_Versions"}, "NRRC_OOS_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Counter", "UINT16", "1", "8", "16", "Indicate how many times UE has gone OOS"]}, "Name": "NRRC_OOS_Info_V1"}, "NRRC_OOS_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cause", "UINT8", "1", "0", "8", "bar cell(0),\nRA fail(1),\nMIB SIB fail(2),\nweak signal(3),"], "1": ["Counter", "UINT16", "1", "8", "16", "Indicate how many times UE has gone OOS"]}, "Name": "NRRC_OOS_Info_V2"}}},
+ Public JSON end */
+// Checksum : [cebbdf6058edf09fe2f477193f43ee43]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_PAGING_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_PAGING_EVENT.h
new file mode 100644
index 0000000..3f60f7c
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_PAGING_EVENT.h
@@ -0,0 +1,55 @@
+// ICD Header Format v3
+// Name : NRRC_PAGING_EVENT
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9617
+// Version : V1.3
+
+#ifndef _NRRC_PAGING_EVENT_H
+#define _NRRC_PAGING_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_PAGING_EVENT 0x9617
+
+#define ICD_NRRC_NRRC_PAGING_INFO_V1 1
+
+#define MAX_ICD_NRRC_PAGING_INFO_STRUCT_V1_NUM_OF_MATCH_RECORD 32
+
+#define ICD_NRRC_PAGING_INFO_STRUCT_V1_MAX_SIZE 132
+
+typedef struct {
+ kal_uint8 paging_ue_identity; // Indicates the UE identity type of this Paging Record.
+ // 0: NG-5G-S-TMSI
+ // 1: I-RNTI-Value
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} nrrc_match_paging_record_info_v1;
+
+typedef nrrc_match_paging_record_info_v1 nrrc_match_paging_record_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 paging_record_match; // Indicates whether UE identity is matched with
+ // the PagingRecord in the Paging message.
+ // 0: Not matched
+ // 1: Matched
+ kal_uint8 num_of_match_record; // Number of matched record.
+ // Range[0, 32]
+ kal_uint8 reserved;
+ nrrc_match_paging_record_info match_record[FLEXIBLE_ARRAY_SIZE]; // N := Num of Match Record
+ // Array of matched PagingRecord.
+} icd_nrrc_paging_info_struct_v1;
+
+typedef icd_nrrc_paging_info_struct_v1 icd_nrrc_paging_info_struct;
+
+
+#endif /* _NRRC_PAGING_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_PAGING_EVENT": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9617", "Name": "NRRC_PAGING_EVENT", "Type": "EVENT", "Desc": "The event is generated when there is a Paging message for the UE.\n"}, "table": {"NRRC_PAGING_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_PAGING_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_PAGING_Info"}, "NRRC_PAGING_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_PAGING_Info_V1", ""]}, "Name": "NRRC_PAGING_Info_Versions"}, "NRRC_PAGING_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Match Record": "Num of Match Record"}, "Name": "NRRC_PAGING_Info_V1", "Data": {"0": ["Paging Record Match", "UINT8", "1", "0", "8", "Indicates whether UE identity is matched with\nthe PagingRecord in the Paging message.\n0: Not matched\n1: Matched"], "1": ["Num of Match Record", "UINT8", "1", "8", "8", "Number of matched record.\nRange[0, 32]"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Match Record", "NRRC_Match_Paging_Record_Info_V1", "N", "24", "VAR", "N := Num of Match Record\nArray of matched PagingRecord."]}}, "NRRC_Match_Paging_Record_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Paging UE Identity", "UINT8", "1", "0", "8", "Indicates the UE identity type of this Paging Record.\n0: NG-5G-S-TMSI\n1: I-RNTI-Value"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "NRRC_Match_Paging_Record_Info_V1"}}},
+ Public JSON end */
+// Checksum : [5c21c681b25f2cb3ec6a45e16562f57f]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_PDU_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_PDU_EVENT.h
new file mode 100644
index 0000000..b120891
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_PDU_EVENT.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : NRRC_PDU_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x960D
+// Version : V1.3
+
+#ifndef _NRRC_PDU_EVENT_H
+#define _NRRC_PDU_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_PDU_EVENT 0x960D
+
+#define ICD_NRRC_NRRC_PDU_INFO_V1 1
+
+#define MAX_ICD_NRRC_PDU_INFO_STRUCT_V1_RRC_PDU_LENGTH 9000
+
+#define ICD_NRRC_PDU_INFO_STRUCT_V1_MAX_SIZE 9008
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 rrc_release; // RRC specification release (e.g. 15), UE ASN.1 compliancy for this RRC PDU.
+ kal_uint8 rrc_version; // RRC specification version number (e.g. 15.6.1 -> this represents number 6),
+ // UE ASN.1 compliancy for this RRC PDU.
+ kal_uint8 rrc_sub_version; // RRC specification editorial version number (e.g. 15.6.1 -> this represents number 1),
+ // UE ASN.1 compliancy for this RRC PDU.
+ kal_uint8 rrc_pdu_type; // PCCH (1)
+ // DL CCCH (2)
+ // DL DCCH (3)
+ // UL CCCH (4)
+ // UL DCCH (5)
+ // UL CCCH1 (6)
+ // BCCH DL-SCH (7)
+ // BCCH BCH (8)
+ kal_uint8 msg_type; // Message enum
+ kal_uint16 rrc_pdu_length; // Length of ASN.1 encoded uplink/downlink RRC PDU. range[0, 9000]
+ kal_uint8 rrc_pdu[FLEXIBLE_ARRAY_SIZE]; // N := RRC PDU length
+ // ASN.1 encoded uplink/downlink RRC PDU.
+} icd_nrrc_pdu_info_struct_v1;
+
+typedef icd_nrrc_pdu_info_struct_v1 icd_nrrc_pdu_info_struct;
+
+
+#endif /* _NRRC_PDU_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_PDU_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960D", "Name": "NRRC_PDU_Event", "Type": "EVENT", "Desc": "RRC OTA Message from 3GPP 38.331.\n"}, "table": {"NRRC_PDU_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_PDU_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_PDU_Info"}, "NRRC_PDU_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_PDU_Info_V1", ""]}, "Name": "NRRC_PDU_Info_Versions"}, "NRRC_PDU_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RRC PDU": "RRC PDU length"}, "Name": "NRRC_PDU_Info_V1", "Data": {"0": ["RRC release", "UINT8", "1", "0", "8", "RRC specification release (e.g. 15), UE ASN.1 compliancy for this RRC PDU."], "1": ["RRC Version", "UINT8", "1", "8", "8", "RRC specification version number (e.g. 15.6.1 -> this represents number 6),\nUE ASN.1 compliancy for this RRC PDU."], "2": ["RRC Sub-Version", "UINT8", "1", "16", "8", "RRC specification editorial version number (e.g. 15.6.1 -> this represents number 1),\nUE ASN.1 compliancy for this RRC PDU."], "3": ["RRC PDU type", "UINT8", "1", "24", "8", "PCCH (1)\nDL CCCH (2)\nDL DCCH (3)\nUL CCCH (4)\nUL DCCH (5)\nUL CCCH1 (6)\nBCCH DL-SCH (7)\nBCCH BCH (8)"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["RRC PDU length", "UINT16", "1", "40", "16", "Length of ASN.1 encoded uplink/downlink RRC PDU. range[0, 9000]"], "6": ["RRC PDU", "UINT8", "N", "56", "VAR", "N := RRC PDU length\nASN.1 encoded uplink/downlink RRC PDU."]}}}},
+ Public JSON end */
+// Checksum : [4071cc3ece5d7ecf065ed008d93af504]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_PROCEDURE_DURATION_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_PROCEDURE_DURATION_EVENT.h
new file mode 100644
index 0000000..9a5870d
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_PROCEDURE_DURATION_EVENT.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : NRRC_PROCEDURE_DURATION_EVENT
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x961B
+// Version : t-internal-nr-icd-draft3RC1-244-g393eb40
+
+#ifndef _NRRC_PROCEDURE_DURATION_EVENT_H
+#define _NRRC_PROCEDURE_DURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_PROCEDURE_DURATION_EVENT 0x961B
+
+#define ICD_NRRC_NRRC_PROCEDURE_DURATION_INFO_V1 1
+
+#define ICD_NRRC_PROCEDURE_DURATION_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 procedure; // RRCSetupRequest to RRCReconfigurationComplete (0),
+ // RRCResumeRequest to RRCResume (1),
+ kal_uint16 reserved;
+ kal_uint32 duration; // Procedure duration in microseconds.
+} icd_nrrc_procedure_duration_info_struct_v1;
+
+typedef icd_nrrc_procedure_duration_info_struct_v1 icd_nrrc_procedure_duration_info_struct;
+
+
+#endif /* _NRRC_PROCEDURE_DURATION_EVENT_H */
+
+
+/* Internal JSON start
+"NRRC_PROCEDURE_DURATION_EVENT": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x961B", "Name": "NRRC_PROCEDURE_DURATION_EVENT", "Type": "EVENT", "Desc": "The event is generated when a specified RRC procedure (sequence of events) occurs.\n"}, "table": {"NRRC_PROCEDURE_DURATION_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_PROCEDURE_DURATION_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_PROCEDURE_DURATION_Info"}, "NRRC_PROCEDURE_DURATION_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_PROCEDURE_DURATION_Info_V1", ""]}, "Name": "NRRC_PROCEDURE_DURATION_Info_Versions"}, "NRRC_PROCEDURE_DURATION_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Procedure", "UINT8", "1", "0", "8", "RRCSetupRequest to RRCReconfigurationComplete (0),\nRRCResumeRequest to RRCResume (1),"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["Duration", "UINT32", "1", "24", "32", "Procedure duration in microseconds."]}, "Name": "NRRC_PROCEDURE_DURATION_Info_V1"}}},
+ Internal JSON end */
+// Checksum : [710c985f1f01979c079edc966da232b6]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_RLF_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_RLF_EVENT.h
new file mode 100644
index 0000000..309d89f
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_RLF_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NRRC_RLF_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9600
+// Version : V1.3
+
+#ifndef _NRRC_RLF_EVENT_H
+#define _NRRC_RLF_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_RLF_EVENT 0x9600
+
+#define ICD_NRRC_NRRC_RLF_INFO_V1 1
+
+#define ICD_NRRC_RLF_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cell_group_id; // 0: MCG, 1: SCG
+ kal_uint8 rlf_cause; // Physical layer problem(0),
+ // RA problem(1),
+ // Maximum RLC re-transmissions(2),
+ kal_uint8 reserved;
+} icd_nrrc_rlf_info_struct_v1;
+
+typedef icd_nrrc_rlf_info_struct_v1 icd_nrrc_rlf_info_struct;
+
+
+#endif /* _NRRC_RLF_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_RLF_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9600", "Name": "NRRC_RLF_Event", "Type": "EVENT", "Desc": "The event is generated when the RLF occur (Failure event occur).\n"}, "table": {"NRRC_RLF_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_RLF_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_RLF_Info"}, "NRRC_RLF_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_RLF_Info_V1", ""]}, "Name": "NRRC_RLF_Info_Versions"}, "NRRC_RLF_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1: SCG"], "1": ["RLF Cause", "UINT8", "1", "8", "8", "Physical layer problem(0),\nRA problem(1),\nMaximum RLC re-transmissions(2),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_RLF_Info_V1"}}},
+ Public JSON end */
+// Checksum : [a89c774e7f6dcdc1b8f91cdcf137a9d9]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT.h
new file mode 100644
index 0000000..e965946
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9616
+// Version : V1.3
+
+#ifndef _NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT_H
+#define _NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT 0x9616
+
+#define ICD_NRRC_NRRC_RLF_PARAMETERS_CONFIGURATION_INFO_V1 1
+
+#define ICD_NRRC_RLF_PARAMETERS_CONFIGURATION_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 cell_group_id; // 0: MCG, 1: SCG
+ kal_uint8 n310; // Configured n310 value
+ kal_uint8 n311; // Configured n311 value
+ kal_uint32 t310; // Configured t310 value by ms
+ kal_uint32 t311; // Configured t311 value by ms
+} icd_nrrc_rlf_parameters_configuration_info_struct_v1;
+
+typedef icd_nrrc_rlf_parameters_configuration_info_struct_v1 icd_nrrc_rlf_parameters_configuration_info_struct;
+
+
+#endif /* _NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9616", "Name": "NRRC_RLF_PARAMETERS_CONFIGURATION_EVENT", "Type": "EVENT", "Desc": "The event is generated to inform RLF related configuration in IE's.\n"}, "table": {"NRRC_RLF_PARAMETERS_CONFIGURATION_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_RLF_PARAMETERS_CONFIGURATION_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_RLF_PARAMETERS_CONFIGURATION_Info"}, "NRRC_RLF_PARAMETERS_CONFIGURATION_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_RLF_PARAMETERS_CONFIGURATION_Info_V1", ""]}, "Name": "NRRC_RLF_PARAMETERS_CONFIGURATION_Info_Versions"}, "NRRC_RLF_PARAMETERS_CONFIGURATION_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1: SCG"], "1": ["n310", "UINT8", "1", "8", "8", "Configured n310 value"], "2": ["n311", "UINT8", "1", "16", "8", "Configured n311 value"], "3": ["t310", "UINT32", "1", "24", "32", "Configured t310 value by ms"], "4": ["t311", "UINT32", "1", "56", "32", "Configured t311 value by ms"]}, "Name": "NRRC_RLF_PARAMETERS_CONFIGURATION_Info_V1"}}},
+ Public JSON end */
+// Checksum : [72c83c24a3e723e7ac02010b973230a7]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT.h
new file mode 100644
index 0000000..54186ed
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x960E
+// Version : V1.3
+
+#ifndef _NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT_H
+#define _NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT 0x960E
+
+#define ICD_NRRC_NRRC_RRC_CONNECTION_REESTABLISHMENT_INFO_V2 2
+
+#define ICD_NRRC_RRC_CONNECTION_REESTABLISHMENT_INFO_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Begin(0),
+ // RRCReestablishment received(1),
+ // RRCSetup received(2),
+ // Failure(3),
+ kal_uint8 reestablishment_cause; // The value is valid only when Status = Begin
+ // Radio link failure(0),
+ // Re-configuration with sync failure(1),
+ // Mobility from NR failure(2),
+ // Integrity check failure(3),
+ // Reconfiguration failure(4),
+ kal_uint8 reserved;
+} icd_nrrc_rrc_connection_reestablishment_info_struct_v2;
+
+typedef icd_nrrc_rrc_connection_reestablishment_info_struct_v2 icd_nrrc_rrc_connection_reestablishment_info_struct;
+
+
+#endif /* _NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960E", "Name": "NRRC_RRC_CONNECTION_REESTABLISHMENT_EVENT", "Type": "EVENT", "Desc": "The event is generated when RRC connection reestablishment related events occurs.\n"}, "table": {"NRRC_RRC_CONNECTION_REESTABLISHMENT_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info"}, "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_V1", ""], "1": ["2", "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_V2", ""]}, "Name": "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_Versions"}, "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reestablishment Cause", "UINT8", "1", "0", "8", "Radio link failure(0),\nRe-configuration with sync failure(1),\nMobility from NR failure(2),\nIntegrity check failure(3),\nReconfiguration failure(4),"], "1": ["Reserved", "UINT16", "1", "8", "16", ""]}, "Name": "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_V1"}, "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Begin(0),\nRRCReestablishment received(1),\nRRCSetup received(2),\nFailure(3),"], "1": ["Reestablishment Cause", "UINT8", "1", "8", "8", "The value is valid only when Status = Begin\nRadio link failure(0),\nRe-configuration with sync failure(1),\nMobility from NR failure(2),\nIntegrity check failure(3),\nReconfiguration failure(4),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_RRC_CONNECTION_REESTABLISHMENT_Info_V2"}}},
+ Public JSON end */
+// Checksum : [c33288ea1dbd8a52c9e1f71235674784]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_RRC_CONNECTION_RESUME_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_RRC_CONNECTION_RESUME_EVENT.h
new file mode 100644
index 0000000..6f7541b
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_RRC_CONNECTION_RESUME_EVENT.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : NRRC_RRC_CONNECTION_RESUME_EVENT
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9615
+// Version : V1.3
+
+#ifndef _NRRC_RRC_CONNECTION_RESUME_EVENT_H
+#define _NRRC_RRC_CONNECTION_RESUME_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_RRC_CONNECTION_RESUME_EVENT 0x9615
+
+#define ICD_NRRC_NRRC_RRC_RESUME_INFO_V1 1
+
+#define ICD_NRRC_RRC_RESUME_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Begin(0),
+ // RRCResume received(1),
+ // RRCSetup received(2),
+ // Failure(3),
+ kal_uint8 resume_cause; // The value is valid only when Status = Begin
+ // emergency(0),
+ // highPriorityAccess(1),
+ // mt-Access(2),
+ // mo-Signalling(3),
+ // mo-Data(4),
+ // mo-VoiceCall(5),
+ // mo-VideoCall(6),
+ // mo-SMS(7),
+ // rna-Update(8),
+ // mps-PriorityAccess(9),
+ // mcs-PriorityAccess(10),
+ kal_uint8 reserved;
+} icd_nrrc_rrc_resume_info_struct_v1;
+
+typedef icd_nrrc_rrc_resume_info_struct_v1 icd_nrrc_rrc_resume_info_struct;
+
+
+#endif /* _NRRC_RRC_CONNECTION_RESUME_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_RRC_CONNECTION_RESUME_EVENT": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9615", "Name": "NRRC_RRC_CONNECTION_RESUME_EVENT", "Type": "EVENT", "Desc": "The event is generated when RRC resume related events occurs.\n"}, "table": {"NRRC_RRC_RESUME_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_RRC_RESUME_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_RRC_RESUME_Info"}, "NRRC_RRC_RESUME_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_RRC_RESUME_Info_V1", ""]}, "Name": "NRRC_RRC_RESUME_Info_Versions"}, "NRRC_RRC_RESUME_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Begin(0),\nRRCResume received(1),\nRRCSetup received(2),\nFailure(3),"], "1": ["Resume Cause", "UINT8", "1", "8", "8", "The value is valid only when Status = Begin\nemergency(0),\nhighPriorityAccess(1),\nmt-Access(2),\nmo-Signalling(3),\nmo-Data(4),\nmo-VoiceCall(5),\nmo-VideoCall(6),\nmo-SMS(7),\nrna-Update(8),\nmps-PriorityAccess(9),\nmcs-PriorityAccess(10),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_RRC_RESUME_Info_V1"}}},
+ Public JSON end */
+// Checksum : [b0dc3c372efd68390ad59dc7ee4f2516]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SCG_FAILURE_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SCG_FAILURE_EVENT.h
new file mode 100644
index 0000000..5d1b95d
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SCG_FAILURE_EVENT.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : NRRC_SCG_FAILURE_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x960F
+// Version : V1.3
+
+#ifndef _NRRC_SCG_FAILURE_EVENT_H
+#define _NRRC_SCG_FAILURE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SCG_FAILURE_EVENT 0x960F
+
+#define ICD_NRRC_NRRC_SCG_FAILURE_INFO_V3 3
+
+#define ICD_NRRC_SCG_FAILURE_INFO_STRUCT_V3_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 scg_failure_count;
+ kal_uint8 scg_failure_type; // t310-Expiry(0),
+ // randomAccessProblem(1),
+ // rlc-MaxNumRetx(2),
+ // synchReconfigFailure-SCG(3),
+ // scg-reconfigFailure(4),
+ // srb3-IntegrityFailure(5),
+ kal_uint8 scg_failure_scenario; // lowerLayerFailure(0),
+ // initialScgConfigure(1),
+ // scg-Reconfigure(2),
+ // scg-ReconfigureWithMcgChange(3),
+ kal_uint8 fake_scg_failure; // false(0)
+ // true(1),
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} icd_nrrc_scg_failure_info_struct_v3;
+
+typedef icd_nrrc_scg_failure_info_struct_v3 icd_nrrc_scg_failure_info_struct;
+
+
+#endif /* _NRRC_SCG_FAILURE_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_SCG_FAILURE_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960F", "Name": "NRRC_SCG_FAILURE_Event", "Type": "EVENT", "Desc": "The event is generated when SCG failure occurs.\n"}, "table": {"NRRC_SCG_FAILURE_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_SCG_FAILURE_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SCG_FAILURE_Info"}, "NRRC_SCG_FAILURE_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SCG_FAILURE_Info_V1", ""], "1": ["2", "NRRC_SCG_FAILURE_Info_V2", ""], "2": ["3", "NRRC_SCG_FAILURE_Info_V3", ""]}, "Name": "NRRC_SCG_FAILURE_Info_Versions"}, "NRRC_SCG_FAILURE_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Failure Count", "UINT8", "1", "0", "8", ""], "1": ["SCG Failure Cause", "UINT8", "1", "8", "8", "t310-Expiry(0),\nrandomAccessProblem(1),\nrlc-MaxNumRetx(2),\nsynchReconfigFailure-SCG(3),\nscg-reconfigFailure(4),\nsrb3-IntegrityFailure(5),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_SCG_FAILURE_Info_V1"}, "NRRC_SCG_FAILURE_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Failure Count", "UINT8", "1", "0", "8", ""], "1": ["SCG Failure Cause", "UINT8", "1", "8", "8", "scg-FailureCauseNone(0),\nt310-Expiry(1),\nrandomAccessProblem(2),\nrlc-MaxNumRetx(3),\nsynchReconfigFailure-SCG(4),\nscg-reconfigFailure(5),\nsrb3-IntegrityFailure(6),"], "2": ["SCG Failure Status", "UINT8", "1", "16", "8", "scg-FailureSatusNone(0),\nlowerLayerFailure(1),\ninitialScgConfigure(2),\nscg-Reconfigure(3),\nscg-ReconfigureWithMcgChange(4),"], "3": ["Reserved", "UINT8", "1", "24", "8", ""], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Reserved", "UINT16", "1", "40", "16", ""]}, "Name": "NRRC_SCG_FAILURE_Info_V2"}, "NRRC_SCG_FAILURE_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Failure Count", "UINT8", "1", "0", "8", ""], "1": ["SCG Failure Type", "UINT8", "1", "8", "8", "t310-Expiry(0),\nrandomAccessProblem(1),\nrlc-MaxNumRetx(2),\nsynchReconfigFailure-SCG(3),\nscg-reconfigFailure(4),\nsrb3-IntegrityFailure(5),"], "2": ["SCG Failure Scenario", "UINT8", "1", "16", "8", "lowerLayerFailure(0),\ninitialScgConfigure(1),\nscg-Reconfigure(2),\nscg-ReconfigureWithMcgChange(3),"], "3": ["Reserved", "UINT8", "1", "24", "8", ""], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Reserved", "UINT16", "1", "40", "16", ""]}, "Name": "NRRC_SCG_FAILURE_Info_V3"}}},
+ Public JSON end */
+
+/* Internal JSON start
+"NRRC_SCG_FAILURE_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x960F", "Name": "NRRC_SCG_FAILURE_Event", "Type": "EVENT", "Desc": "The event is generated when SCG failure occurs.\n"}, "table": {"NRRC_SCG_FAILURE_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_SCG_FAILURE_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SCG_FAILURE_Info"}, "NRRC_SCG_FAILURE_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SCG_FAILURE_Info_V1", ""], "1": ["2", "NRRC_SCG_FAILURE_Info_V2", ""], "2": ["3", "NRRC_SCG_FAILURE_Info_V3", ""]}, "Name": "NRRC_SCG_FAILURE_Info_Versions"}, "NRRC_SCG_FAILURE_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Failure Count", "UINT8", "1", "0", "8", ""], "1": ["SCG Failure Cause", "UINT8", "1", "8", "8", "t310-Expiry(0),\nrandomAccessProblem(1),\nrlc-MaxNumRetx(2),\nsynchReconfigFailure-SCG(3),\nscg-reconfigFailure(4),\nsrb3-IntegrityFailure(5),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_SCG_FAILURE_Info_V1"}, "NRRC_SCG_FAILURE_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Failure Count", "UINT8", "1", "0", "8", ""], "1": ["SCG Failure Cause", "UINT8", "1", "8", "8", "scg-FailureCauseNone(0),\nt310-Expiry(1),\nrandomAccessProblem(2),\nrlc-MaxNumRetx(3),\nsynchReconfigFailure-SCG(4),\nscg-reconfigFailure(5),\nsrb3-IntegrityFailure(6),"], "2": ["SCG Failure Status", "UINT8", "1", "16", "8", "scg-FailureSatusNone(0),\nlowerLayerFailure(1),\ninitialScgConfigure(2),\nscg-Reconfigure(3),\nscg-ReconfigureWithMcgChange(4),"], "3": ["Fake SCG Failure", "UINT8", "1", "24", "8", "false(0)\ntrue(1),"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Reserved", "UINT16", "1", "40", "16", ""]}, "Name": "NRRC_SCG_FAILURE_Info_V2"}, "NRRC_SCG_FAILURE_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Failure Count", "UINT8", "1", "0", "8", ""], "1": ["SCG Failure Type", "UINT8", "1", "8", "8", "t310-Expiry(0),\nrandomAccessProblem(1),\nrlc-MaxNumRetx(2),\nsynchReconfigFailure-SCG(3),\nscg-reconfigFailure(4),\nsrb3-IntegrityFailure(5),"], "2": ["SCG Failure Scenario", "UINT8", "1", "16", "8", "lowerLayerFailure(0),\ninitialScgConfigure(1),\nscg-Reconfigure(2),\nscg-ReconfigureWithMcgChange(3),"], "3": ["Fake SCG Failure", "UINT8", "1", "24", "8", "false(0)\ntrue(1),"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Reserved", "UINT16", "1", "40", "16", ""]}, "Name": "NRRC_SCG_FAILURE_Info_V3"}}},
+ Internal JSON end */
+// Checksum : [bc7a5e5a8f450e7b1b854d8af2e0a067]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SCG_RECONFIGURATION_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SCG_RECONFIGURATION_EVENT.h
new file mode 100644
index 0000000..eb6e44f
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SCG_RECONFIGURATION_EVENT.h
@@ -0,0 +1,70 @@
+// ICD Header Format v3
+// Name : NRRC_SCG_Reconfiguration_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9610
+// Version : V1.3
+
+#ifndef _NRRC_SCG_RECONFIGURATION_EVENT_H
+#define _NRRC_SCG_RECONFIGURATION_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SCG_RECONFIGURATION_EVENT 0x9610
+
+#define ICD_NRRC_NRRC_SCG_RECONFIGURATION_INFO_V2 2
+
+#define ICD_NRRC_SCG_RECONFIGURATION_INFO_STRUCT_V2_MAX_SIZE 24
+
+typedef struct {
+ kal_uint32 dl_nrarfcn; // PScell DL NRArfcn, value range [0, 3279165].
+ kal_uint16 dl_frequency_band; // PScell DL band, value range [1, 1024].
+ kal_uint16 physical_cell_id; // PScell physical cell ID
+} pscell_info_v1;
+
+typedef pscell_info_v1 pscell_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 source_rb; // 0:SRB1
+ // 1:SRB3
+ kal_uint8 reconfiguration_type; // Bitmask of reconfiguration type (with bit0 being the least significant bit)
+ // Bit0: SCG addition
+ // Bit1: SCG release
+ // Bit2: Intra-cell reconfiguration with sync
+ // Bit3: Inter-cell reconfiguration with sync
+ // Bit4: Normal
+ kal_uint8 procedure_status; // Indicates procedure status
+ // 0:Begin
+ // 1:Success
+ // 2:Failure
+ // 3:Cancel
+ kal_uint8 failure_cause; // Indicates procedure failure cause
+ // 0:NA, -- Success case
+ // 1:Other, -- Other reason instead of reason below
+ // 2:Invalid configuration,
+ // 3:T304 expiry,
+ // 4:RA problem
+ kal_uint8 srb3_configuration_status; // Indicates current SRB3 configuration status
+ // 0:Not configured
+ // 1:Configured
+ kal_uint8 source_pscell_valid; // 0:Invalid
+ // 1:Valid
+ kal_uint8 target_pscell_valid; // 0:Invalid
+ // 1:Valid
+ pscell_info source_pscell; // Source PScell info
+ pscell_info target_pscell; // Target PScell info
+} icd_nrrc_scg_reconfiguration_info_struct_v2;
+
+typedef icd_nrrc_scg_reconfiguration_info_struct_v2 icd_nrrc_scg_reconfiguration_info_struct;
+
+
+#endif /* _NRRC_SCG_RECONFIGURATION_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_SCG_Reconfiguration_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9610", "Name": "NRRC_SCG_Reconfiguration_Event", "Type": "EVENT", "Desc": "The event is generated when SCG reconfiguration procedure status changes.\n"}, "table": {"NRRC_SCG_Reconfiguration_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_SCG_Reconfiguration_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SCG_Reconfiguration_Info"}, "NRRC_SCG_Reconfiguration_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SCG_Reconfiguration_Info_V1", ""], "1": ["2", "NRRC_SCG_Reconfiguration_Info_V2", ""]}, "Name": "NRRC_SCG_Reconfiguration_Info_Versions"}, "NRRC_SCG_Reconfiguration_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Source RB", "UINT8", "1", "0", "8", "0:SRB1\n1:SRB3"], "1": ["Reconfiguration type", "UINT8", "1", "8", "8", "Bitmask of reconfiguration type (with bit0 being the least significant bit)\nBit0: SCG addition\nBit1: SCG release\nBit2: Intra-cell reconfiguration with sync\nBit3: Inter-cell reconfiguration with sync\nBit4: Normal"], "2": ["Procedure status", "UINT8", "1", "16", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure\n3:Cancel"], "3": ["Failure Cause", "UINT8", "1", "24", "8", "Indicates procedure failure cause\n0:NA, -- Success case\n1:Other, -- Other reason instead of reason below\n2:Invalid configuration,\n3:T304 expiry,\n4:RA problem"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Source PSCell valid", "UINT8", "1", "40", "8", "0:Invalid\n1:Valid"], "6": ["Target PSCell valid", "UINT8", "1", "48", "8", "0:Invalid\n1:Valid"], "7": ["Source PScell", "PScell_Info_V1", "1", "56", "64", "Source PScell info"], "8": ["Target PScell", "PScell_Info_V1", "1", "120", "64", "Target PScell info"]}, "Name": "NRRC_SCG_Reconfiguration_Info_V1"}, "PScell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL NRarfcn", "UINT32", "1", "0", "32", "PScell DL NRArfcn, value range [0, 3279165]."], "1": ["DL Frequency band", "UINT16", "1", "32", "16", "PScell DL band, value range [1, 1024]."], "2": ["Physical Cell ID", "UINT16", "1", "48", "16", "PScell physical cell ID"]}, "Name": "PScell_Info_V1"}, "NRRC_SCG_Reconfiguration_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Source RB", "UINT8", "1", "0", "8", "0:SRB1\n1:SRB3"], "1": ["Reconfiguration type", "UINT8", "1", "8", "8", "Bitmask of reconfiguration type (with bit0 being the least significant bit)\nBit0: SCG addition\nBit1: SCG release\nBit2: Intra-cell reconfiguration with sync\nBit3: Inter-cell reconfiguration with sync\nBit4: Normal"], "2": ["Procedure status", "UINT8", "1", "16", "8", "Indicates procedure status\n0:Begin\n1:Success\n2:Failure\n3:Cancel"], "3": ["Failure Cause", "UINT8", "1", "24", "8", "Indicates procedure failure cause\n0:NA, -- Success case\n1:Other, -- Other reason instead of reason below\n2:Invalid configuration,\n3:T304 expiry,\n4:RA problem"], "4": ["SRB3 configuration status", "UINT8", "1", "32", "8", "Indicates current SRB3 configuration status\n0:Not configured\n1:Configured"], "5": ["Source PSCell valid", "UINT8", "1", "40", "8", "0:Invalid\n1:Valid"], "6": ["Target PSCell valid", "UINT8", "1", "48", "8", "0:Invalid\n1:Valid"], "7": ["Source PScell", "PScell_Info_V1", "1", "56", "64", "Source PScell info"], "8": ["Target PScell", "PScell_Info_V1", "1", "120", "64", "Target PScell info"]}, "Name": "NRRC_SCG_Reconfiguration_Info_V2"}}},
+ Public JSON end */
+// Checksum : [cd6e902c2df14e7ae9e0e0410ba04dae]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SCG_RELEASE_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SCG_RELEASE_EVENT.h
new file mode 100644
index 0000000..eac5af8
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SCG_RELEASE_EVENT.h
@@ -0,0 +1,40 @@
+// ICD Header Format v3
+// Name : NRRC_SCG_RELEASE_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9618
+// Version : V1.3
+
+#ifndef _NRRC_SCG_RELEASE_EVENT_H
+#define _NRRC_SCG_RELEASE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SCG_RELEASE_EVENT 0x9618
+
+#define ICD_NRRC_NRRC_SCG_RELEASE_INFO_V2 2
+
+#define ICD_NRRC_SCG_RELEASE_INFO_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 scg_release_type; // scg-Release(0),
+ kal_uint8 scg_release_scenario; // scg-Reconfigure(0),
+ // scg-ReconfigureWithMcgChange(1),
+ // lteRelease(2),
+ // lteReestablishment(3),
+ kal_uint8 reserved;
+} icd_nrrc_scg_release_info_struct_v2;
+
+typedef icd_nrrc_scg_release_info_struct_v2 icd_nrrc_scg_release_info_struct;
+
+
+#endif /* _NRRC_SCG_RELEASE_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_SCG_RELEASE_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9618", "Name": "NRRC_SCG_RELEASE_Event", "Type": "EVENT", "Desc": "The event is generated when SCG release occurs.\n"}, "table": {"NRRC_SCG_RELEASE_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_SCG_RELEASE_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SCG_RELEASE_Info"}, "NRRC_SCG_RELEASE_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SCG_RELEASE_Info_V1", ""], "1": ["2", "NRRC_SCG_RELEASE_Info_V2", ""]}, "Name": "NRRC_SCG_RELEASE_Info_Versions"}, "NRRC_SCG_RELEASE_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Release Cause", "UINT8", "1", "0", "8", "scg-ReleaseCauseNone(0),\nscg-Release(1),"], "1": ["SCG Release Status", "UINT8", "1", "8", "8", "scg-ReleaseSatusNone(0),\nscg-Reconfigure(1),\nscg-ReconfigureWithMcgChange(2),\nlteRelease(3),\nlteReestablishment(4),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_SCG_RELEASE_Info_V1"}, "NRRC_SCG_RELEASE_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SCG Release Type", "UINT8", "1", "0", "8", "scg-Release(0),"], "1": ["SCG Release Scenario", "UINT8", "1", "8", "8", "scg-Reconfigure(0),\nscg-ReconfigureWithMcgChange(1),\nlteRelease(2),\nlteReestablishment(3),"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_SCG_RELEASE_Info_V2"}}},
+ Public JSON end */
+// Checksum : [882d85714660fb48517b23e8b47b85f8]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SEARCHING_INFO_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SEARCHING_INFO_EVENT.h
new file mode 100644
index 0000000..43fc1fe
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SEARCHING_INFO_EVENT.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : NRRC_SEARCHING_INFO_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9614
+// Version : V1.3
+
+#ifndef _NRRC_SEARCHING_INFO_EVENT_H
+#define _NRRC_SEARCHING_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SEARCHING_INFO_EVENT 0x9614
+
+#define ICD_NRRC_NRRC_SEARCHING_INFO_V1 1
+
+#define ICD_NRRC_SEARCHING_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 search_command; // Indicated if UE starts or stops cell search procedure.
+ // 0:Start,
+ // 1:Stop.
+ kal_uint16 reserved;
+} icd_nrrc_searching_info_struct_v1;
+
+typedef icd_nrrc_searching_info_struct_v1 icd_nrrc_searching_info_struct;
+
+
+#endif /* _NRRC_SEARCHING_INFO_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_SEARCHING_INFO_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9614", "Name": "NRRC_SEARCHING_INFO_Event", "Type": "EVENT", "Desc": "RRC related cell search information.\n"}, "table": {"NRRC_SEARCHING_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_SEARCHING_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SEARCHING_Info"}, "NRRC_SEARCHING_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SEARCHING_Info_V1", ""]}, "Name": "NRRC_SEARCHING_Info_Versions"}, "NRRC_SEARCHING_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Search command", "UINT8", "1", "0", "8", "Indicated if UE starts or stops cell search procedure.\n0:Start,\n1:Stop."], "1": ["Reserved", "UINT16", "1", "8", "16", ""]}, "Name": "NRRC_SEARCHING_Info_V1"}}},
+ Public JSON end */
+// Checksum : [ffd51588957969f9d5ae4f536fd7f7ca]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SERVING_CELL_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SERVING_CELL_EVENT.h
new file mode 100644
index 0000000..3c8c1b2
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SERVING_CELL_EVENT.h
@@ -0,0 +1,79 @@
+// ICD Header Format v3
+// Name : NRRC_Serving_Cell_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9601
+// Version : V1.3
+
+#ifndef _NRRC_SERVING_CELL_EVENT_H
+#define _NRRC_SERVING_CELL_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SERVING_CELL_EVENT 0x9601
+
+#define ICD_NRRC_NRRC_SERVING_CELL_INFO_V3 3
+
+#define MAX_ICD_NRRC_SERVING_CELL_INFO_STRUCT_V3_NUMBER_OF_SCELL_LIST 31
+
+#define ICD_NRRC_SERVING_CELL_INFO_STRUCT_V3_MAX_SIZE 800
+
+typedef struct {
+ kal_uint8 servcellindex; // Indicates ServCellIndex of the serving cell
+ kal_uint8 reserved;
+ kal_uint16 dl_frequency_band; // Serving cell DL band, value range [1, 1024],
+ // 0xFFFF means not applicable.
+ kal_uint16 ul_frequency_band; // Serving cell UL band, value range [1, 1024],
+ // 0xFFFF means not applicable.
+ kal_uint16 sul_frequency_band; // Serving cell UL band, value range [1, 1024],
+ // 0xFFFF means not applicable.
+ kal_uint32 dl_nrarfcn; // Serving cell DL NRArfcn, value range [0, 3279165],
+ // 0xFFFFFFFF means not applicable.
+ kal_uint32 ul_nrarfcn; // Serving cell UL NRArfcn, value range [0, 3279165],
+ // 0xFFFFFFFF means not applicable.
+ kal_uint32 sul_nrarfcn; // Serving cell SUL NRArfcn, value range [0, 3279165],
+ // 0xFFFFFFFF means not applicable.
+ kal_uint16 physical_cell_id; // Serving cell physical cell ID
+ kal_uint16 reserved_1;
+} serving_cell_info_v1;
+
+typedef serving_cell_info_v1 serving_cell_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 cell_group_id; // 0: MCG, 1: SCG
+ kal_uint8 information_valid; // 0: invalid, 1: valid Value
+ // invalid means that all information for this cell group
+ // is not valid anymore.
+ kal_uint8 reserved;
+ kal_uint16 mcc; // MCC part of PLMN, valid only for MCG and when
+ // ServCellIndex in SpCell info is 0
+ kal_uint8 reserved_1[7];
+ kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3), valid only for MCG
+ // and when ServCellIndex in SpCell info is 0
+ kal_uint16 mnc; // MNC part of PLMN, valid only for MCG and when
+ // ServCellIndex in SpCell info is 0
+ kal_uint64 tracking_area_code:24; // Track area code, valid only for MCG and when
+ // ServCellIndex in SpCell info is 0
+ kal_uint64 cell_id:36; // Cell identity, valid only for MCG and when
+ // ServCellIndex in SpCell info is 0
+ kal_uint64 reserved_2:4;
+ serving_cell_info spcell_info; // SpCell cell info
+ kal_uint8 reserved_3[7];
+ kal_uint8 number_of_scell_list; // Number of configured secondary serving cells. range[0, 31]
+ serving_cell_info scell_list[FLEXIBLE_ARRAY_SIZE]; // N := Number of Scell list
+ // Info of each configured secondary serving cell
+} icd_nrrc_serving_cell_info_struct_v3;
+
+typedef icd_nrrc_serving_cell_info_struct_v3 icd_nrrc_serving_cell_info_struct;
+
+
+#endif /* _NRRC_SERVING_CELL_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_Serving_Cell_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9601", "Name": "NRRC_Serving_Cell_Event", "Type": "EVENT", "Desc": "The log is generated when any serving cell changes.\n"}, "table": {"NRRC_Serving_Cell_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_Serving_Cell_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_Serving_Cell_Info"}, "NRRC_Serving_Cell_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_Serving_Cell_Info_V1", ""], "1": ["2", "NRRC_Serving_Cell_Info_V2", ""], "2": ["3", "NRRC_Serving_Cell_Info_V3", ""]}, "Name": "NRRC_Serving_Cell_Info_Versions"}, "NRRC_Serving_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell list": "Number of Scell list"}, "Name": "NRRC_Serving_Cell_Info_V1", "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1: SCG"], "1": ["MCC", "UINT16", "1", "8", "16", "MCC part of PLMN, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "2": ["Reserved", "UINT8", "1", "24", "8", ""], "3": ["NUM of MNC Digits", "UINT8", "1", "32", "8", "Number of digits in MNC (e.g.2/3), valid only for MCG\nand when ServCellIndex in SpCell info is 0"], "4": ["MNC", "UINT16", "1", "40", "16", "MNC part of PLMN, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "5": ["Tracking Area Code", "UINT8", "3", "56", "24", "Track area code, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "6": ["Reserved", "UINT8", "1", "80", "8", ""], "7": ["Cell ID", "UINT8", "5", "88", "40", "Cell identity, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "8": ["Reserved", "UINT8", "3", "128", "24", ""], "9": ["SpCell info", "Serving_Cell_Info_V1", "1", "152", "192", "SpCell cell info"], "10": ["Reserved", "UINT8", "3", "344", "24", ""], "11": ["Number of Scell list", "UINT8", "1", "368", "8", "Number of configured secondary serving cells. range[0, 31]"], "12": ["Scell list", "Serving_Cell_Info_V1", "N", "376", "VAR", "N := Number of Scell list\nInfo of each configured secondary serving cell"]}}, "Serving_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["ServCellIndex", "UINT8", "1", "0", "8", "Indicates ServCellIndex of the serving cell"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["DL Frequency band", "UINT16", "1", "16", "16", "Serving cell DL band, value range [1, 1024],\n0xFFFF means not applicable."], "3": ["UL Frequency band", "UINT16", "1", "32", "16", "Serving cell UL band, value range [1, 1024],\n0xFFFF means not applicable."], "4": ["SUL Frequency band", "UINT16", "1", "48", "16", "Serving cell UL band, value range [1, 1024],\n0xFFFF means not applicable."], "5": ["DL NRarfcn", "UINT32", "1", "64", "32", "Serving cell DL NRArfcn, value range [0, 3279165],\n0xFFFFFFFF means not applicable."], "6": ["UL NRarfcn", "UINT32", "1", "96", "32", "Serving cell UL NRArfcn, value range [0, 3279165],\n0xFFFFFFFF means not applicable."], "7": ["SUL NRarfcn", "UINT32", "1", "128", "32", "Serving cell SUL NRArfcn, value range [0, 3279165],\n0xFFFFFFFF means not applicable."], "8": ["Physical Cell ID", "UINT16", "1", "160", "16", "Serving cell physical cell ID"], "9": ["Reserved", "UINT16", "1", "176", "16", ""]}, "Name": "Serving_Cell_Info_V1"}, "NRRC_Serving_Cell_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell list": "Number of Scell list"}, "Name": "NRRC_Serving_Cell_Info_V2", "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1: SCG"], "1": ["MCC", "UINT16", "1", "8", "16", "MCC part of PLMN, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "2": ["Reserved", "UINT8", "1", "24", "8", ""], "3": ["NUM of MNC Digits", "UINT8", "1", "32", "8", "Number of digits in MNC (e.g.2/3), valid only for MCG\nand when ServCellIndex in SpCell info is 0"], "4": ["MNC", "UINT16", "1", "40", "16", "MNC part of PLMN, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "5": ["Tracking Area Code", "UINT64", "1", "56", "24", "Track area code, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "6": ["Cell ID", "UINT64", "1", "80", "36", "Cell identity, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "7": ["Reserved", "UINT64", "1", "116", "4", ""], "8": ["SpCell info", "Serving_Cell_Info_V1", "1", "120", "192", "SpCell cell info"], "9": ["Reserved", "UINT8", "7", "312", "56", ""], "10": ["Number of Scell list", "UINT8", "1", "368", "8", "Number of configured secondary serving cells. range[0, 31]"], "11": ["Scell list", "Serving_Cell_Info_V1", "N", "376", "VAR", "N := Number of Scell list\nInfo of each configured secondary serving cell"]}}, "NRRC_Serving_Cell_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell list": "Number of Scell list"}, "Name": "NRRC_Serving_Cell_Info_V3", "Data": {"0": ["Cell group ID", "UINT8", "1", "0", "8", "0: MCG, 1: SCG"], "1": ["Information valid", "UINT8", "1", "8", "8", "0: invalid, 1: valid Value\ninvalid means that all information for this cell group\nis not valid anymore."], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["MCC", "UINT16", "1", "24", "16", "MCC part of PLMN, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "4": ["Reserved", "UINT8", "7", "40", "56", ""], "5": ["NUM of MNC Digits", "UINT8", "1", "96", "8", "Number of digits in MNC (e.g.2/3), valid only for MCG\nand when ServCellIndex in SpCell info is 0"], "6": ["MNC", "UINT16", "1", "104", "16", "MNC part of PLMN, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "7": ["Tracking Area Code", "UINT64", "1", "120", "24", "Track area code, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "8": ["Cell ID", "UINT64", "1", "144", "36", "Cell identity, valid only for MCG and when\nServCellIndex in SpCell info is 0"], "9": ["Reserved", "UINT64", "1", "180", "4", ""], "10": ["SpCell info", "Serving_Cell_Info_V1", "1", "184", "192", "SpCell cell info"], "11": ["Reserved", "UINT8", "7", "376", "56", ""], "12": ["Number of Scell list", "UINT8", "1", "432", "8", "Number of configured secondary serving cells. range[0, 31]"], "13": ["Scell list", "Serving_Cell_Info_V1", "N", "440", "VAR", "N := Number of Scell list\nInfo of each configured secondary serving cell"]}}}},
+ Public JSON end */
+// Checksum : [2fa5f76024d7b5d7581468176448ea27]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SIB_READ_FAILURE_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SIB_READ_FAILURE_EVENT.h
new file mode 100644
index 0000000..8730434
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SIB_READ_FAILURE_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NRRC_SIB_Read_Failure_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9604
+// Version : V1.3
+
+#ifndef _NRRC_SIB_READ_FAILURE_EVENT_H
+#define _NRRC_SIB_READ_FAILURE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SIB_READ_FAILURE_EVENT 0x9604
+
+#define ICD_NRRC_NRRC_SIB_READ_FAILURE_INFO_V1 1
+
+#define ICD_NRRC_SIB_READ_FAILURE_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint32 frequency; // Downlink arfcn
+ kal_uint16 rxed_sibs_mask; // Bitmask of SIBs received. LSB0 is MIB, LSB1 is SIB1,..
+ kal_uint16 reserved_1;
+} icd_nrrc_sib_read_failure_info_struct_v1;
+
+typedef icd_nrrc_sib_read_failure_info_struct_v1 icd_nrrc_sib_read_failure_info_struct;
+
+
+#endif /* _NRRC_SIB_READ_FAILURE_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_SIB_Read_Failure_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9604", "Name": "NRRC_SIB_Read_Failure_Event", "Type": "EVENT", "Desc": "The event is generated when SIB reading fails\nsibReadFailureEvent.\n"}, "table": {"NRRC_SIB_Read_Failure_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_SIB_Read_Failure_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SIB_Read_Failure_Info"}, "NRRC_SIB_Read_Failure_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SIB_Read_Failure_Info_V1", ""]}, "Name": "NRRC_SIB_Read_Failure_Info_Versions"}, "NRRC_SIB_Read_Failure_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Frequency", "UINT32", "1", "24", "32", "Downlink arfcn"], "3": ["RXed SIBs mask", "UINT16", "1", "56", "16", "Bitmask of SIBs received. LSB0 is MIB, LSB1 is SIB1,.."], "4": ["Reserved", "UINT16", "1", "72", "16", ""]}, "Name": "NRRC_SIB_Read_Failure_Info_V1"}}},
+ Public JSON end */
+// Checksum : [0a5ca7ead30dcb3d522a9b5142192d0f]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_SNIFFER_STATUS_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_SNIFFER_STATUS_EVENT.h
new file mode 100644
index 0000000..6a0e572
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_SNIFFER_STATUS_EVENT.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NRRC_SNIFFER_STATUS_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9612
+// Version : V1.3
+
+#ifndef _NRRC_SNIFFER_STATUS_EVENT_H
+#define _NRRC_SNIFFER_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SNIFFER_STATUS_EVENT 0x9612
+
+#define ICD_NRRC_NRRC_SNIFFER_STATUS_INFO_V1 1
+
+#define ICD_NRRC_SNIFFER_STATUS_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 status; // Indicates sniffer status
+ // 0:Normal
+ // 1:Inactive
+ // 2:Screen off
+ kal_uint16 reserved;
+} icd_nrrc_sniffer_status_info_struct_v1;
+
+typedef icd_nrrc_sniffer_status_info_struct_v1 icd_nrrc_sniffer_status_info_struct;
+
+
+#endif /* _NRRC_SNIFFER_STATUS_EVENT_H */
+
+
+/* Internal JSON start
+"NRRC_SNIFFER_STATUS_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9612", "Name": "NRRC_SNIFFER_STATUS_Event", "Type": "EVENT", "Desc": "The event is generated when sniffer status changes.\n"}, "table": {"NRRC_SNIFFER_STATUS_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_SNIFFER_STATUS_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_SNIFFER_STATUS_Info"}, "NRRC_SNIFFER_STATUS_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_SNIFFER_STATUS_Info_V1", ""]}, "Name": "NRRC_SNIFFER_STATUS_Info_Versions"}, "NRRC_SNIFFER_STATUS_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT8", "1", "0", "8", "Indicates sniffer status\n0:Normal\n1:Inactive\n2:Screen off"], "1": ["Reserved", "UINT16", "1", "8", "16", ""]}, "Name": "NRRC_SNIFFER_STATUS_Info_V1"}}},
+ Internal JSON end */
+// Checksum : [c60a3fd5858051dd5b4b904e56f83fbb]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_STATE_CHANGE_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_STATE_CHANGE_EVENT.h
new file mode 100644
index 0000000..34f3d3b
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_STATE_CHANGE_EVENT.h
@@ -0,0 +1,96 @@
+// ICD Header Format v3
+// Name : NRRC_State_Change_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9602
+// Version : t-internal-nr-icd-draft3RC1-331-g0c9166c
+
+#ifndef _NRRC_STATE_CHANGE_EVENT_H
+#define _NRRC_STATE_CHANGE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_STATE_CHANGE_EVENT 0x9602
+
+#define ICD_NRRC_NRRC_STATE_CHANGE_INFO_V5 5
+
+#define ICD_NRRC_STATE_CHANGE_INFO_STRUCT_V5_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 rrc_state; // Enum {
+ // 0: null,
+ // 1: idleCampedOnAnyCell,
+ // 2: idleCampedNormally,
+ // 3: idlConnecting,
+ // 4: connectedNormally,
+ // 5: releasing,
+ // 6: atmptOutbndMobility,
+ // 7: atmptInbndMobility,
+ // 8: inactive,
+ // 9: endcScgAdded,
+ // 10: endcScgSuspended,
+ // 11: nrdcScgAdded,
+ // 12: nrdcScgSuspended }
+ kal_uint8 rrc_state_change_cause; // Enum {
+ // 0:INACTIVE_TRIGGER_OTHER,
+ // 1:CAMPED_NO_SERVICE,
+ // 2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED,
+ // 3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY,
+ // 4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT,
+ // 5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL,
+ // 6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED,
+ // 7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER,
+ // 8:CAMPED_TRIGGER_OTHER,
+ // 9:CAMPED_NORMAL,
+ // 10:CONNECTING_TRIGGER_EMERGENCY,
+ // 11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS,
+ // 12:CONNECTING_TRIGGER_MT_ACESS,
+ // 13:CONNECTING_TRIGGER_MO_SIGNALING,
+ // 14:CONNECTING_TRIGGER_MO_DATA,
+ // 15:CONNECTING_TRIGGER_MO_VOICE_CALL,
+ // 16:CONNECTING_TRIGGER_MO_VIDEO_CALL,
+ // 17:CONNECTING_TRIGGER_MO_SMS,
+ // 18:CONNECTING_TRIGGER_MPS_PRIORITY_ACCESS,
+ // 19:CONNECTING_TRIGGER_MCS_PRIORITY_ACCESS,
+ // 20:CONNECTED_TRIGGER_REEST_RECFG_FAILURE,
+ // 21:CONNECTED_TRIGGER_REEST_HO_FAILURE,
+ // 22:CONNECTED_TRIGGER_REEST_OTHER_FAILURE,
+ // 23:REL_TRIGGER_SUCC_MOB_FROM_NR,
+ // 24:REL_TRIGGER_T310_EXPIRY,
+ // 25:REL_TRIGGER_RND_ACC,
+ // 26:REL_TRIGGER_MAX_RLC_RETRANS,
+ // 27:REL_TRIGGER_T311_EXPIRY,
+ // 28:REL_TRIGGER_T301_EXPIRY,
+ // 29:REL_TRIGGER_REJECT,
+ // 30:REL_TRIGGER_OTHER,
+ // 31:REL_TRIGGER_CONN_ABORT,
+ // 32:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS,
+ // 33:CONNECTED_NORMAL_SUCCESS,
+ // 34:CONNECTED_REEST_SUCCESS,
+ // 35:ENTER_INACTIVE_BY_NW_CMD,
+ // 36:CONNECTING_TRIGGER_RNA_UPDATE,
+ // 37:RESUME_FROM_INACTIVE_BUT_REJECT_BY_NW,
+ // 38:ENDC_SCG_ADDED,
+ // 39:ENDC_SCG_RELEASED,
+ // 40:ENDC_SCG_FAILURE,
+ // 41:REL_TRIGGER_T312_EXPIRY,
+ // 42:REL_TRIGGER_LOCAL_RELEASE_BY_NAS,
+ // 43:REL_TRIGGER_LOCAL_RELEASE_BY_OTHER_SIM,
+ // 44:REL_TRIGGER_NW_RELEASE,
+ // 255:CAUSE_NA }
+ kal_uint8 reserved;
+} icd_nrrc_state_change_info_struct_v5;
+
+typedef icd_nrrc_state_change_info_struct_v5 icd_nrrc_state_change_info_struct;
+
+
+#endif /* _NRRC_STATE_CHANGE_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_State_Change_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9602", "Name": "NRRC_State_Change_Event", "Type": "EVENT", "Desc": "The event is generated when NRRC state changes.\n"}, "table": {"NRRC_State_Change_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_State_Change_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_State_Change_Info"}, "NRRC_State_Change_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_State_Change_Info_V1", ""], "1": ["2", "NRRC_State_Change_Info_V2", ""], "2": ["3", "NRRC_State_Change_Info_V3", ""], "3": ["4", "NRRC_State_Change_Info_V4", ""], "4": ["5", "NRRC_State_Change_Info_V5", ""]}, "Name": "NRRC_State_Change_Info_Versions"}, "NRRC_State_Change_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RRC State", "UINT8", "1", "0", "8", "Enum {\n0: null,\n1: idleCampedOnAnyCell,\n2: idleCampedNormally,\n3: idlConnecting,\n4: connectedNormally,\n5: releasing,\n6: atmptOutbndMobility,\n7: atmptInbndMobility,\n8: inactive,\n9: endcScgAdded,\n10: endcScgSuspended }"], "1": ["RRC State Change Cause", "UINT8", "1", "8", "8", "Enum {\n0:INACTIVE_TRIGGER_OTHER,\n1:CAMPED_NO_SERVICE,\n2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED,\n3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY,\n4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT,\n5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL,\n6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED,\n7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER,\n8:CAMPED_TRIGGER_OTHER,\n9:CAMPED_NORMAL,\n10:CONNECTING_TRIGGER_EMERGENCY,\n11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS,\n12:CONNECTING_TRIGGER_MT_ACESS,\n13:CONNECTING_TRIGGER_MO_SIGNALING,\n14:CONNECTING_TRIGGER_MO_DATA,\n15:CONNECTING_TRIGGER_MO_VOICE_CALL,\n16:CONNECTING_TRIGGER_MO_VIDEO_CALL,\n17:CONNECTING_TRIGGER_MO_SMS,\n18:CONNECTING_TRIGGER_MPS_PRIORITY_ACCESS,\n19:CONNECTING_TRIGGER_MCS_PRIORITY_ACCESS,\n20:CONNECTED_TRIGGER_REEST_RECFG_FAILURE,\n21:CONNECTED_TRIGGER_REEST_HO_FAILURE,\n22:CONNECTED_TRIGGER_REEST_OTHER_FAILURE,\n23:REL_TRIGGER_SUCC_MOB_FROM_NR,\n24:REL_TRIGGER_T310_EXPIRY,\n25:REL_TRIGGER_RND_ACC,\n26:REL_TRIGGER_MAX_RLC_RETRANS,\n27:REL_TRIGGER_T311_EXPIRY,\n28:REL_TRIGGER_T301_EXPIRY,\n29:REL_TRIGGER_REJECT,\n30:REL_TRIGGER_OTHER,\n31:REL_TRIGGER_CONN_ABORT,\n32:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS,\n33:CONNECTED_NORMAL_SUCCESS,\n34:CONNECTED_REEST_SUCCESS,\n35:ENTER_INACTIVE_BY_NW_CMD,\n36:CONNECTING_TRIGGER_RNA_UPDATE,\n37:RESUME_FROM_INACTIVE_BUT_REJECT_BY_NW,\n38:ENDC_SCG_ADDED,\n39:ENDC_SCG_RELEASED,\n40:ENDC_SCG_FAILURE,\n255:CAUSE_NA }"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_State_Change_Info_V1"}, "NRRC_State_Change_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RRC State", "UINT8", "1", "0", "8", "Enum {\n0: null,\n1: idleCampedOnAnyCell,\n2: idleCampedNormally,\n3: idlConnecting,\n4: connectedNormally,\n5: releasing,\n6: atmptOutbndMobility,\n7: atmptInbndMobility,\n8: inactive,\n9: endcScgAdded,\n10: endcScgSuspended,\n11: nrdcScgAdded,\n12: nrdcScgSuspended }"], "1": ["RRC State Change Cause", "UINT8", "1", "8", "8", "Enum {\n0:INACTIVE_TRIGGER_OTHER,\n1:CAMPED_NO_SERVICE,\n2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED,\n3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY,\n4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT,\n5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL,\n6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED,\n7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER,\n8:CAMPED_TRIGGER_OTHER,\n9:CAMPED_NORMAL,\n10:CONNECTING_TRIGGER_EMERGENCY,\n11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS,\n12:CONNECTING_TRIGGER_MT_ACESS,\n13:CONNECTING_TRIGGER_MO_SIGNALING,\n14:CONNECTING_TRIGGER_MO_DATA,\n15:CONNECTING_TRIGGER_MO_VOICE_CALL,\n16:CONNECTING_TRIGGER_MO_VIDEO_CALL,\n17:CONNECTING_TRIGGER_MO_SMS,\n18:CONNECTING_TRIGGER_MPS_PRIORITY_ACCESS,\n19:CONNECTING_TRIGGER_MCS_PRIORITY_ACCESS,\n20:CONNECTED_TRIGGER_REEST_RECFG_FAILURE,\n21:CONNECTED_TRIGGER_REEST_HO_FAILURE,\n22:CONNECTED_TRIGGER_REEST_OTHER_FAILURE,\n23:REL_TRIGGER_SUCC_MOB_FROM_NR,\n24:REL_TRIGGER_T310_EXPIRY,\n25:REL_TRIGGER_RND_ACC,\n26:REL_TRIGGER_MAX_RLC_RETRANS,\n27:REL_TRIGGER_T311_EXPIRY,\n28:REL_TRIGGER_T301_EXPIRY,\n29:REL_TRIGGER_REJECT,\n30:REL_TRIGGER_OTHER,\n31:REL_TRIGGER_CONN_ABORT,\n32:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS,\n33:CONNECTED_NORMAL_SUCCESS,\n34:CONNECTED_REEST_SUCCESS,\n35:ENTER_INACTIVE_BY_NW_CMD,\n36:CONNECTING_TRIGGER_RNA_UPDATE,\n37:RESUME_FROM_INACTIVE_BUT_REJECT_BY_NW,\n38:ENDC_SCG_ADDED,\n39:ENDC_SCG_RELEASED,\n40:ENDC_SCG_FAILURE,\n255:CAUSE_NA }"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_State_Change_Info_V2"}, "NRRC_State_Change_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RRC State", "UINT8", "1", "0", "8", "Enum {\n0: null,\n1: idleCampedOnAnyCell,\n2: idleCampedNormally,\n3: idlConnecting,\n4: connectedNormally,\n5: releasing,\n6: atmptOutbndMobility,\n7: atmptInbndMobility,\n8: inactive,\n9: endcScgAdded,\n10: endcScgSuspended,\n11: nrdcScgAdded,\n12: nrdcScgSuspended }"], "1": ["RRC State Change Cause", "UINT8", "1", "8", "8", "Enum {\n0:INACTIVE_TRIGGER_OTHER,\n1:CAMPED_NO_SERVICE,\n2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED,\n3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY,\n4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT,\n5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL,\n6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED,\n7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER,\n8:CAMPED_TRIGGER_OTHER,\n9:CAMPED_NORMAL,\n10:CONNECTING_TRIGGER_EMERGENCY,\n11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS,\n12:CONNECTING_TRIGGER_MT_ACESS,\n13:CONNECTING_TRIGGER_MO_SIGNALING,\n14:CONNECTING_TRIGGER_MO_DATA,\n15:CONNECTING_TRIGGER_MO_VOICE_CALL,\n16:CONNECTING_TRIGGER_MO_VIDEO_CALL,\n17:CONNECTING_TRIGGER_MO_SMS,\n18:CONNECTING_TRIGGER_MPS_PRIORITY_ACCESS,\n19:CONNECTING_TRIGGER_MCS_PRIORITY_ACCESS,\n20:CONNECTED_TRIGGER_REEST_RECFG_FAILURE,\n21:CONNECTED_TRIGGER_REEST_HO_FAILURE,\n22:CONNECTED_TRIGGER_REEST_OTHER_FAILURE,\n23:REL_TRIGGER_SUCC_MOB_FROM_NR,\n24:REL_TRIGGER_T310_EXPIRY,\n25:REL_TRIGGER_RND_ACC,\n26:REL_TRIGGER_MAX_RLC_RETRANS,\n27:REL_TRIGGER_T311_EXPIRY,\n28:REL_TRIGGER_T301_EXPIRY,\n29:REL_TRIGGER_REJECT,\n30:REL_TRIGGER_OTHER,\n31:REL_TRIGGER_CONN_ABORT,\n32:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS,\n33:CONNECTED_NORMAL_SUCCESS,\n34:CONNECTED_REEST_SUCCESS,\n35:ENTER_INACTIVE_BY_NW_CMD,\n36:CONNECTING_TRIGGER_RNA_UPDATE,\n37:RESUME_FROM_INACTIVE_BUT_REJECT_BY_NW,\n38:ENDC_SCG_ADDED,\n39:ENDC_SCG_RELEASED,\n40:ENDC_SCG_FAILURE,\n41:REL_TRIGGER_T312_EXPIRY,\n255:CAUSE_NA }"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_State_Change_Info_V3"}, "NRRC_State_Change_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RRC State", "UINT8", "1", "0", "8", "Enum {\n0: null,\n1: idleCampedOnAnyCell,\n2: idleCampedNormally,\n3: idlConnecting,\n4: connectedNormally,\n5: releasing,\n6: atmptOutbndMobility,\n7: atmptInbndMobility,\n8: inactive,\n9: endcScgAdded,\n10: endcScgSuspended,\n11: nrdcScgAdded,\n12: nrdcScgSuspended }"], "1": ["RRC State Change Cause", "UINT8", "1", "8", "8", "Enum {\n0:INACTIVE_TRIGGER_OTHER,\n1:CAMPED_NO_SERVICE,\n2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED,\n3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY,\n4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT,\n5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL,\n6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED,\n7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER,\n8:CAMPED_TRIGGER_OTHER,\n9:CAMPED_NORMAL,\n10:CONNECTING_TRIGGER_EMERGENCY,\n11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS,\n12:CONNECTING_TRIGGER_MT_ACESS,\n13:CONNECTING_TRIGGER_MO_SIGNALING,\n14:CONNECTING_TRIGGER_MO_DATA,\n15:CONNECTING_TRIGGER_MO_VOICE_CALL,\n16:CONNECTING_TRIGGER_MO_VIDEO_CALL,\n17:CONNECTING_TRIGGER_MO_SMS,\n18:CONNECTING_TRIGGER_MPS_PRIORITY_ACCESS,\n19:CONNECTING_TRIGGER_MCS_PRIORITY_ACCESS,\n20:CONNECTED_TRIGGER_REEST_RECFG_FAILURE,\n21:CONNECTED_TRIGGER_REEST_HO_FAILURE,\n22:CONNECTED_TRIGGER_REEST_OTHER_FAILURE,\n23:REL_TRIGGER_SUCC_MOB_FROM_NR,\n24:REL_TRIGGER_T310_EXPIRY,\n25:REL_TRIGGER_RND_ACC,\n26:REL_TRIGGER_MAX_RLC_RETRANS,\n27:REL_TRIGGER_T311_EXPIRY,\n28:REL_TRIGGER_T301_EXPIRY,\n29:REL_TRIGGER_REJECT,\n30:REL_TRIGGER_OTHER,\n31:REL_TRIGGER_CONN_ABORT,\n32:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS,\n33:CONNECTED_NORMAL_SUCCESS,\n34:CONNECTED_REEST_SUCCESS,\n35:ENTER_INACTIVE_BY_NW_CMD,\n36:CONNECTING_TRIGGER_RNA_UPDATE,\n37:RESUME_FROM_INACTIVE_BUT_REJECT_BY_NW,\n38:ENDC_SCG_ADDED,\n39:ENDC_SCG_RELEASED,\n40:ENDC_SCG_FAILURE,\n41:REL_TRIGGER_T312_EXPIRY,\n42:REL_TRIGGER_LOCAL_RELEASE_BY_NAS,\n43:REL_TRIGGER_LOCAL_RELEASE_BY_OTHER_SIM,\n255:CAUSE_NA }"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_State_Change_Info_V4"}, "NRRC_State_Change_Info_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RRC State", "UINT8", "1", "0", "8", "Enum {\n0: null,\n1: idleCampedOnAnyCell,\n2: idleCampedNormally,\n3: idlConnecting,\n4: connectedNormally,\n5: releasing,\n6: atmptOutbndMobility,\n7: atmptInbndMobility,\n8: inactive,\n9: endcScgAdded,\n10: endcScgSuspended,\n11: nrdcScgAdded,\n12: nrdcScgSuspended }"], "1": ["RRC State Change Cause", "UINT8", "1", "8", "8", "Enum {\n0:INACTIVE_TRIGGER_OTHER,\n1:CAMPED_NO_SERVICE,\n2:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_ABORTED,\n3:CAMPED_TRIGGER_CONN_EST_FAILURE_T300_EXPIRY,\n4:CAMPED_TRIGGER_CONN_EST_FAILURE_CONN_REJECT,\n5:CAMPED_TRIGGER_CONN_EST_FAILURE_CELL_RESEL,\n6:CAMPED_TRIGGER_CONN_EST_FAILURE_ACCESS_BARRED,\n7:CAMPED_TRIGGER_CONN_EST_FAILURE_OTHER,\n8:CAMPED_TRIGGER_OTHER,\n9:CAMPED_NORMAL,\n10:CONNECTING_TRIGGER_EMERGENCY,\n11:CONNECTING_TRIGGER_HIGH_PRI_ACCESS,\n12:CONNECTING_TRIGGER_MT_ACESS,\n13:CONNECTING_TRIGGER_MO_SIGNALING,\n14:CONNECTING_TRIGGER_MO_DATA,\n15:CONNECTING_TRIGGER_MO_VOICE_CALL,\n16:CONNECTING_TRIGGER_MO_VIDEO_CALL,\n17:CONNECTING_TRIGGER_MO_SMS,\n18:CONNECTING_TRIGGER_MPS_PRIORITY_ACCESS,\n19:CONNECTING_TRIGGER_MCS_PRIORITY_ACCESS,\n20:CONNECTED_TRIGGER_REEST_RECFG_FAILURE,\n21:CONNECTED_TRIGGER_REEST_HO_FAILURE,\n22:CONNECTED_TRIGGER_REEST_OTHER_FAILURE,\n23:REL_TRIGGER_SUCC_MOB_FROM_NR,\n24:REL_TRIGGER_T310_EXPIRY,\n25:REL_TRIGGER_RND_ACC,\n26:REL_TRIGGER_MAX_RLC_RETRANS,\n27:REL_TRIGGER_T311_EXPIRY,\n28:REL_TRIGGER_T301_EXPIRY,\n29:REL_TRIGGER_REJECT,\n30:REL_TRIGGER_OTHER,\n31:REL_TRIGGER_CONN_ABORT,\n32:REL_TRIGGER_CONN_ABORT_IRAT_SUCCESS,\n33:CONNECTED_NORMAL_SUCCESS,\n34:CONNECTED_REEST_SUCCESS,\n35:ENTER_INACTIVE_BY_NW_CMD,\n36:CONNECTING_TRIGGER_RNA_UPDATE,\n37:RESUME_FROM_INACTIVE_BUT_REJECT_BY_NW,\n38:ENDC_SCG_ADDED,\n39:ENDC_SCG_RELEASED,\n40:ENDC_SCG_FAILURE,\n41:REL_TRIGGER_T312_EXPIRY,\n42:REL_TRIGGER_LOCAL_RELEASE_BY_NAS,\n43:REL_TRIGGER_LOCAL_RELEASE_BY_OTHER_SIM,\n44:REL_TRIGGER_NW_RELEASE,\n255:CAUSE_NA }"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "NRRC_State_Change_Info_V5"}}},
+ Public JSON end */
+// Checksum : [ba8929d8ba630909f34e3f854c8327fd]
diff --git a/mcu/interface/service/icd/event/nrrc/NRRC_TIMER_STATUS_EVENT.h b/mcu/interface/service/icd/event/nrrc/NRRC_TIMER_STATUS_EVENT.h
new file mode 100644
index 0000000..55333a6
--- /dev/null
+++ b/mcu/interface/service/icd/event/nrrc/NRRC_TIMER_STATUS_EVENT.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : NRRC_Timer_Status_Event
+// Category : NR
+// Layer : NRRC
+// Type : EVENT
+// Code : 0x9606
+// Version : V1.3
+
+#ifndef _NRRC_TIMER_STATUS_EVENT_H
+#define _NRRC_TIMER_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_TIMER_STATUS_EVENT 0x9606
+
+#define ICD_NRRC_NRRC_TIMER_STATUS_INFO_V1 1
+
+#define ICD_NRRC_TIMER_STATUS_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 timer_name; // T300(0)
+ // T301(1)
+ // T302(2)
+ // T304(3)
+ // T311(4)
+ // T319(5)
+ // T320(6)
+ // T321(7)
+ // T325(8)
+ // T380(9)
+ // T390(10)
+ // T304_SCG(11)
+ kal_uint8 timer_status; // Started(0),
+ // Stopped(1),
+ // Expired(2)
+ kal_uint8 reserved;
+ kal_uint32 timer_value; // Indicating timer length in milliseconds when
+ // timer is started and the remaining timer in
+ // milliseconds when timer is stopped
+} icd_nrrc_timer_status_info_struct_v1;
+
+typedef icd_nrrc_timer_status_info_struct_v1 icd_nrrc_timer_status_info_struct;
+
+
+#endif /* _NRRC_TIMER_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"NRRC_Timer_Status_Event": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9606", "Name": "NRRC_Timer_Status_Event", "Type": "EVENT", "Desc": "The event is generated whenever a status change related to a RRC timer occurs.\n"}, "table": {"NRRC_Timer_Status_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_Timer_Status_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_Timer_Status_Info"}, "NRRC_Timer_Status_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_Timer_Status_Info_V1", ""]}, "Name": "NRRC_Timer_Status_Info_Versions"}, "NRRC_Timer_Status_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer Name", "UINT8", "1", "0", "8", "T300(0)\nT301(1)\nT302(2)\nT304(3)\nT311(4)\nT319(5)\nT320(6)\nT321(7)\nT325(8)\nT380(9)\nT390(10)\nT304_SCG(11)"], "1": ["Timer Status", "UINT8", "1", "8", "8", "Started(0),\nStopped(1),\nExpired(2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Timer Value", "UINT32", "1", "24", "32", "Indicating timer length in milliseconds when\ntimer is started and the remaining timer in\nmilliseconds when timer is stopped"]}, "Name": "NRRC_Timer_Status_Info_V1"}}},
+ Public JSON end */
+// Checksum : [fd07055321a31b3f7464050d24fb68ff]
diff --git a/mcu/interface/service/icd/event/rtp/IMS_RTP_Call_Statistic_Event.h b/mcu/interface/service/icd/event/rtp/IMS_RTP_Call_Statistic_Event.h
new file mode 100644
index 0000000..f77e733
--- /dev/null
+++ b/mcu/interface/service/icd/event/rtp/IMS_RTP_Call_Statistic_Event.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : IMS_RTP_Call_Statistic_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2225
+// Version : V1.1rc1
+
+#ifndef _IMS_RTP_CALL_STATISTIC_EVENT_H
+#define _IMS_RTP_CALL_STATISTIC_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_RTP_CALL_STATISTIC_EVENT 0x2225
+
+#define ICD_IMS_IMS_RTP_CALL_STATISTIC_INFO_V1 1
+
+#define ICD_IMS_RTP_CALL_STATISTIC_INFO_STRUCT_V1_MAX_SIZE 72
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint8 local_ip[16]; // Local IP address.
+ kal_uint8 remote_ip[16]; // Remote IP address.
+ kal_uint16 local_port; // Local port.
+ kal_uint16 remote_port; // Remote port.
+ kal_uint32 duration; // Unit: ms
+ // Duration from call established to this event sent.
+ kal_uint32 transmitted_packets; // Total transmitted packets count.
+ kal_uint32 received_packets; // Total received packets count.
+ kal_uint32 transmitted_bytes; // Total transmitted bytes count.
+ kal_uint32 received_bytes; // Total received bytes count.
+ kal_uint32 interarrival_jitter; // Unit: ms
+ // The latest calculated interarrival jitter according to RFC 3550.
+ kal_uint32 round_trip_delay; // Unit: ms
+ // The latest calculated round-trip delay according to RFC 3550.
+ kal_uint8 packet_loss_rate; // range[0, 100]
+ // Unit: %
+ kal_uint8 reserved[3];
+} icd_ims_rtp_call_statistic_info_struct_v1;
+
+typedef icd_ims_rtp_call_statistic_info_struct_v1 icd_ims_rtp_call_statistic_info_struct;
+
+
+#endif /* _IMS_RTP_CALL_STATISTIC_EVENT_H */
+
+
+/* Public JSON start
+"IMS_RTP_Call_Statistic_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2225", "Name": "IMS_RTP_Call_Statistic_Event", "Type": "EVENT", "Desc": "The event is generated when call is finished.\n"}, "table": {"IMS_RTP_Call_Statistic_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "IMS_RTP_Call_Statistic_Info_Versions", "1", "32", "VAR", ""]}, "Name": "IMS_RTP_Call_Statistic_Info"}, "IMS_RTP_Call_Statistic_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_RTP_Call_Statistic_Info_V1", ""]}, "Name": "IMS_RTP_Call_Statistic_Info_Versions"}, "IMS_RTP_Call_Statistic_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Local IP", "UINT8", "16", "0", "128", "Local IP address."], "1": ["Remote IP", "UINT8", "16", "128", "128", "Remote IP address."], "2": ["Local Port", "UINT16", "1", "256", "16", "Local port."], "3": ["Remote Port", "UINT16", "1", "272", "16", "Remote port."], "4": ["Duration", "UINT32", "1", "288", "32", "Unit: ms\nDuration from call established to this event sent."], "5": ["Transmitted packets", "UINT32", "1", "320", "32", "Total transmitted packets count."], "6": ["Received packets", "UINT32", "1", "352", "32", "Total received packets count."], "7": ["Transmitted bytes", "UINT32", "1", "384", "32", "Total transmitted bytes count."], "8": ["Received bytes", "UINT32", "1", "416", "32", "Total received bytes count."], "9": ["Interarrival jitter", "UINT32", "1", "448", "32", "Unit: ms\nThe latest calculated interarrival jitter according to RFC 3550."], "10": ["Round-trip delay", "UINT32", "1", "480", "32", "Unit: ms\nThe latest calculated round-trip delay according to RFC 3550."], "11": ["Packet loss rate", "UINT8", "1", "512", "8", "range[0, 100]\nUnit: %"], "12": ["Reserved", "UINT8", "3", "520", "24", ""]}, "Name": "IMS_RTP_Call_Statistic_Info_V1"}}},
+ Public JSON end */
+// Checksum : [6f3c35a2d529e98941eb7e023dd28684]
diff --git a/mcu/interface/service/icd/event/rtp/IMS_RTP_Codec_Update_Event.h b/mcu/interface/service/icd/event/rtp/IMS_RTP_Codec_Update_Event.h
new file mode 100644
index 0000000..5c4a647
--- /dev/null
+++ b/mcu/interface/service/icd/event/rtp/IMS_RTP_Codec_Update_Event.h
@@ -0,0 +1,79 @@
+// ICD Header Format v3
+// Name : IMS_RTP_Codec_Update_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2220
+// Version : V1.1rc1
+
+#ifndef _IMS_RTP_CODEC_UPDATE_EVENT_H
+#define _IMS_RTP_CODEC_UPDATE_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_RTP_CODEC_UPDATE_EVENT 0x2220
+
+#define ICD_IMS_IMS_RTP_CODEC_UPDATE_INFO_V1 1
+
+#define ICD_IMS_RTP_CODEC_UPDATE_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 codec_type; // Indicates RTP codec type
+ // 0: AMR
+ // 1: AMR-WB
+ // 2: EVS AMR-WB IO
+ // 3: EVS-NB
+ // 4: EVS-WB
+ // 5: EVS-SWB
+ // 6: EVS-FB
+ kal_uint8 codec_rate; // Indicates RTP codec rate
+ // AMR rates:
+ // 0: 4.75 kbps
+ // 1: 5.15 kbps
+ // 2: 5.90 kbps
+ // 3: 6.70 kbps
+ // 4: 7.40 kbps
+ // 5: 7.95 kbps
+ // 6: 10.20 kbps
+ // 7: 12.20 kbps
+ // 8: Silence frame
+ // AMR-WB/EVS AMR-WB IO rates:
+ // 0: 6.60 kbps
+ // 1: 8.85 kbps
+ // 2: 12.65 kbps
+ // 3: 14.25 kbps
+ // 4: 15.85 kbps
+ // 5: 18.25 kbps
+ // 6: 19.85 kbps
+ // 7: 23.05 kbps
+ // 8: 23.85 kbps
+ // 9: Silence frame
+ // EVS NB/WB/SWB/FB rates:
+ // 0: 5.90 kbps
+ // 1: 7.20 kbps
+ // 2: 8.00 kbps
+ // 3: 9.60 kbps
+ // 4: 13.20 kbps
+ // 5: 16.40 kbps
+ // 6: 24.40 kbps
+ // 7: 32.00 kbps
+ // 8: 48.00 kbps
+ // 9: 64.00 kbps
+ // 10: 96.00 kbps
+ // 11: 128.00 kbps
+ // 12: Silence frame
+ kal_uint8 reserved;
+} icd_ims_rtp_codec_update_info_struct_v1;
+
+typedef icd_ims_rtp_codec_update_info_struct_v1 icd_ims_rtp_codec_update_info_struct;
+
+
+#endif /* _IMS_RTP_CODEC_UPDATE_EVENT_H */
+
+
+/* Public JSON start
+"IMS_RTP_Codec_Update_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2220", "Name": "IMS_RTP_Codec_Update_Event", "Type": "EVENT", "Desc": "The event is generated every time the codec is successfully initialized or updated.\n"}, "table": {"IMS_RTP_Codec_Update_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "IMS_RTP_Codec_Update_Info_Versions", "1", "8", "VAR", ""]}, "Name": "IMS_RTP_Codec_Update_Info"}, "IMS_RTP_Codec_Update_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_RTP_Codec_Update_Info_V1", ""]}, "Name": "IMS_RTP_Codec_Update_Info_Versions"}, "IMS_RTP_Codec_Update_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Codec Type", "UINT8", "1", "0", "8", "Indicates RTP codec type\n0: AMR\n1: AMR-WB\n2: EVS AMR-WB IO\n3: EVS-NB\n4: EVS-WB\n5: EVS-SWB\n6: EVS-FB"], "1": ["Codec Rate", "UINT8", "1", "8", "8", "Indicates RTP codec rate\nAMR rates:\n0: 4.75 kbps\n1: 5.15 kbps\n2: 5.90 kbps\n3: 6.70 kbps\n4: 7.40 kbps\n5: 7.95 kbps\n6: 10.20 kbps\n7: 12.20 kbps\n8: Silence frame\nAMR-WB/EVS AMR-WB IO rates:\n0: 6.60 kbps\n1: 8.85 kbps\n2: 12.65 kbps\n3: 14.25 kbps\n4: 15.85 kbps\n5: 18.25 kbps\n6: 19.85 kbps\n7: 23.05 kbps\n8: 23.85 kbps\n9: Silence frame\nEVS NB/WB/SWB/FB rates:\n0: 5.90 kbps\n1: 7.20 kbps\n2: 8.00 kbps\n3: 9.60 kbps\n4: 13.20 kbps\n5: 16.40 kbps\n6: 24.40 kbps\n7: 32.00 kbps\n8: 48.00 kbps\n9: 64.00 kbps\n10: 96.00 kbps\n11: 128.00 kbps\n12: Silence frame"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "IMS_RTP_Codec_Update_Info_V1"}}},
+ Public JSON end */
+// Checksum : [438b55c64000820af777edd4bf1ccd5d]
diff --git a/mcu/interface/service/icd/event/rtp/IMS_RTP_Jitter_Buf_Delay_Event.h b/mcu/interface/service/icd/event/rtp/IMS_RTP_Jitter_Buf_Delay_Event.h
new file mode 100644
index 0000000..8f025ec
--- /dev/null
+++ b/mcu/interface/service/icd/event/rtp/IMS_RTP_Jitter_Buf_Delay_Event.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : IMS_RTP_Jitter_Buf_Delay_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2223
+// Version : V1.1rc1
+
+#ifndef _IMS_RTP_JITTER_BUF_DELAY_EVENT_H
+#define _IMS_RTP_JITTER_BUF_DELAY_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_RTP_JITTER_BUF_DELAY_EVENT 0x2223
+
+#define ICD_IMS_IMS_RTP_JITTER_BUF_DELAY_INFO_V1 1
+
+#define ICD_IMS_RTP_JITTER_BUF_DELAY_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint16 version; // Log event structure ID
+ kal_uint16 sequence_number; // The sequence number of RTP pkt at that 20 ms instant.
+ kal_uint32 ssrc; // The source of a stream of RTP packets.
+ kal_uint32 jitter_buffer_delay; // Unit: ms
+ // The Delay in Jitter Buffer.
+} icd_ims_rtp_jitter_buf_delay_info_struct_v1;
+
+typedef icd_ims_rtp_jitter_buf_delay_info_struct_v1 icd_ims_rtp_jitter_buf_delay_info_struct;
+
+
+#endif /* _IMS_RTP_JITTER_BUF_DELAY_EVENT_H */
+
+
+/* Public JSON start
+"IMS_RTP_Jitter_Buf_Delay_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2223", "Name": "IMS_RTP_Jitter_Buf_Delay_Event", "Type": "EVENT", "Desc": "The event is generated every 20 ms during IMS call.\n"}, "table": {"IMS_RTP_Jitter_Buf_Delay_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT16", "1", "0", "16", "Log event structure ID"], "1": ["Versions", "IMS_RTP_Jitter_Buf_Delay_Info_Versions", "1", "16", "VAR", ""]}, "Name": "IMS_RTP_Jitter_Buf_Delay_Info"}, "IMS_RTP_Jitter_Buf_Delay_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_RTP_Jitter_Buf_Delay_Info_V1", ""]}, "Name": "IMS_RTP_Jitter_Buf_Delay_Info_Versions"}, "IMS_RTP_Jitter_Buf_Delay_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Sequence number", "UINT16", "1", "0", "16", "The sequence number of RTP pkt at that 20 ms instant."], "1": ["SSRC", "UINT32", "1", "16", "32", "The source of a stream of RTP packets."], "2": ["Jitter Buffer Delay", "UINT32", "1", "48", "32", "Unit: ms\nThe Delay in Jitter Buffer."]}, "Name": "IMS_RTP_Jitter_Buf_Delay_Info_V1"}}},
+ Public JSON end */
+// Checksum : [b983a4de93af288f235aa8d1b0baefdf]
diff --git a/mcu/interface/service/icd/event/rtp/IMS_RTP_Jitter_Event.h b/mcu/interface/service/icd/event/rtp/IMS_RTP_Jitter_Event.h
new file mode 100644
index 0000000..d43da26
--- /dev/null
+++ b/mcu/interface/service/icd/event/rtp/IMS_RTP_Jitter_Event.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : IMS_RTP_Jitter_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2222
+// Version : V1.1rc1
+
+#ifndef _IMS_RTP_JITTER_EVENT_H
+#define _IMS_RTP_JITTER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_RTP_JITTER_EVENT 0x2222
+
+#define ICD_IMS_IMS_RTP_JITTER_INFO_V1 1
+
+#define ICD_IMS_RTP_JITTER_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint32 ssrc; // The source of a stream of RTP packets.
+ kal_int32 jitter; // Unit: ms
+ // The latest calculated interarrival jitter according to RFC 3550.
+} icd_ims_rtp_jitter_info_struct_v1;
+
+typedef icd_ims_rtp_jitter_info_struct_v1 icd_ims_rtp_jitter_info_struct;
+
+
+#endif /* _IMS_RTP_JITTER_EVENT_H */
+
+
+/* Public JSON start
+"IMS_RTP_Jitter_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2222", "Name": "IMS_RTP_Jitter_Event", "Type": "EVENT", "Desc": "The event is generated every 1 sec during IMS call.\n"}, "table": {"IMS_RTP_Jitter_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "IMS_RTP_Jitter_Info_Versions", "1", "32", "VAR", ""]}, "Name": "IMS_RTP_Jitter_Info"}, "IMS_RTP_Jitter_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_RTP_Jitter_Info_V1", ""]}, "Name": "IMS_RTP_Jitter_Info_Versions"}, "IMS_RTP_Jitter_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SSRC", "UINT32", "1", "0", "32", "The source of a stream of RTP packets."], "1": ["Jitter", "INT32", "1", "32", "32", "Unit: ms\nThe latest calculated interarrival jitter according to RFC 3550."]}, "Name": "IMS_RTP_Jitter_Info_V1"}}},
+ Public JSON end */
+// Checksum : [c8429d85eac3bfca16a5d41e612cdf41]
diff --git a/mcu/interface/service/icd/event/rtp/IMS_RTP_PKT_Out_Of_Order_Event.h b/mcu/interface/service/icd/event/rtp/IMS_RTP_PKT_Out_Of_Order_Event.h
new file mode 100644
index 0000000..28ed643
--- /dev/null
+++ b/mcu/interface/service/icd/event/rtp/IMS_RTP_PKT_Out_Of_Order_Event.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : IMS_RTP_PKT_Out_Of_Order_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2221
+// Version : V1.1rc1
+
+#ifndef _IMS_RTP_PKT_OUT_OF_ORDER_EVENT_H
+#define _IMS_RTP_PKT_OUT_OF_ORDER_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_RTP_PKT_OUT_OF_ORDER_EVENT 0x2221
+
+#define ICD_IMS_IMS_RTP_PKT_OUT_OF_ORDER_INFO_V1 1
+
+#define ICD_IMS_RTP_PKT_OUT_OF_ORDER_INFO_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version; // Log event structure ID
+ kal_uint32 ssrc; // The source of a stream of RTP packets.
+ kal_uint16 current_sn; // The latest received sequence number.
+ kal_int16 sn_difference; // The result of current SN to subtract previous received SN.
+} icd_ims_rtp_pkt_out_of_order_info_struct_v1;
+
+typedef icd_ims_rtp_pkt_out_of_order_info_struct_v1 icd_ims_rtp_pkt_out_of_order_info_struct;
+
+
+#endif /* _IMS_RTP_PKT_OUT_OF_ORDER_EVENT_H */
+
+
+/* Public JSON start
+"IMS_RTP_PKT_Out_Of_Order_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2221", "Name": "IMS_RTP_PKT_Out_Of_Order_Event", "Type": "EVENT", "Desc": "The event is generated at the receiving end of RTP flow when the sequence number of the latest received RTP pkt is out of order.\n"}, "table": {"IMS_RTP_PKT_Out_Of_Order_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log event structure ID"], "1": ["Versions", "IMS_RTP_PKT_Out_Of_Order_Info_Versions", "1", "32", "VAR", ""]}, "Name": "IMS_RTP_PKT_Out_Of_Order_Info"}, "IMS_RTP_PKT_Out_Of_Order_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_RTP_PKT_Out_Of_Order_Info_V1", ""]}, "Name": "IMS_RTP_PKT_Out_Of_Order_Info_Versions"}, "IMS_RTP_PKT_Out_Of_Order_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SSRC", "UINT32", "1", "0", "32", "The source of a stream of RTP packets."], "1": ["Current SN", "UINT16", "1", "32", "16", "The latest received sequence number."], "2": ["SN difference", "INT16", "1", "48", "16", "The result of current SN to subtract previous received SN."]}, "Name": "IMS_RTP_PKT_Out_Of_Order_Info_V1"}}},
+ Public JSON end */
+// Checksum : [73e70d994293c1312304fda020d46513]
diff --git a/mcu/interface/service/icd/event/rtp/IMS_RTP_Packet_Event.h b/mcu/interface/service/icd/event/rtp/IMS_RTP_Packet_Event.h
new file mode 100644
index 0000000..2f9f34a
--- /dev/null
+++ b/mcu/interface/service/icd/event/rtp/IMS_RTP_Packet_Event.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : IMS_RTP_Packet_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2224
+// Version : V1.1rc1
+
+#ifndef _IMS_RTP_PACKET_EVENT_H
+#define _IMS_RTP_PACKET_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_RTP_PACKET_EVENT 0x2224
+
+#define ICD_IMS_IMS_RTP_PACKET_INFO_V1 1
+
+#define ICD_IMS_RTP_PACKET_INFO_STRUCT_V1_MAX_SIZE 24
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 direction; // 1: Uplink. (UE sent packets to Network)
+ // 2: Downlink. (UE receive packets from Network)
+ kal_uint8 type; // 1: RTP
+ // 2: RTCP
+ kal_uint8 reserved;
+ kal_uint16 destination_port; // UDP destination port
+ kal_uint8 packet_status; // Packet status
+ // 0x00: Downlink OK: Packet is on time and placed in jitter buffer.
+ // 0x01: Downlink LATE: Packet was late and could not played.
+ // 0x02: Downlink DROP: Packet was dropped for reason other than lateness.
+ // 0x03: Downlink RESET: Sequence number reset detected.
+ // 0x04: Downlink BADSSRC: SSRC does not match expected value.
+ // 0x10: Uplink OK: Packet is successfully sent.
+ kal_uint8 codec_type; // RTP codec type
+ // 0: AMR
+ // 1: AMR-WB
+ // 2: EVS AMR-WB IO
+ // 3: EVS-NB
+ // 4: EVS-WB
+ // 5: EVS-SWB
+ // 6: EVS-FB
+ kal_uint16 rtp_payload_length; // Unit: bytes
+ kal_uint8 rtp_flags; // 1st octet of RTP header, including V, P, X, CC fields.
+ kal_uint8 rtp_payload_type; // 2nd octet of RTP header, marker bit and payload type.
+ kal_uint16 rtp_sequence_number; // 3rd and 4th octet of RTP header, sequence number.
+ kal_uint8 reserved_1[2];
+ kal_uint32 rtp_timestamp; // 5th to 8th octets of RTP header, sampling instant of the 1st octet in the RTP data packet.
+ // Unit: depending on sample frequency of used codec.
+ kal_uint32 rtp_ssrc; // 9th to 12th octets of RTP header, source of a stream of RTP packets
+} icd_ims_rtp_packet_info_struct_v1;
+
+typedef icd_ims_rtp_packet_info_struct_v1 icd_ims_rtp_packet_info_struct;
+
+
+#endif /* _IMS_RTP_PACKET_EVENT_H */
+
+
+/* Public JSON start
+"IMS_RTP_Packet_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2224", "Name": "IMS_RTP_Packet_Event", "Type": "EVENT", "Desc": "The event is generated for every sent and received RTP/RTCP packet during IMS call.\n"}, "table": {"IMS_RTP_Packet_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "IMS_RTP_Packet_Info_Versions", "1", "8", "VAR", ""]}, "Name": "IMS_RTP_Packet_Info"}, "IMS_RTP_Packet_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_RTP_Packet_Info_V1", ""]}, "Name": "IMS_RTP_Packet_Info_Versions"}, "IMS_RTP_Packet_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Direction", "UINT8", "1", "0", "8", "1: Uplink. (UE sent packets to Network)\n2: Downlink. (UE receive packets from Network)"], "1": ["Type", "UINT8", "1", "8", "8", "1: RTP\n2: RTCP"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Destination port", "UINT16", "1", "24", "16", "UDP destination port"], "4": ["Packet status", "UINT8", "1", "40", "8", "Packet status\n0x00: Downlink OK: Packet is on time and placed in jitter buffer.\n0x01: Downlink LATE: Packet was late and could not played.\n0x02: Downlink DROP: Packet was dropped for reason other than lateness.\n0x03: Downlink RESET: Sequence number reset detected.\n0x04: Downlink BADSSRC: SSRC does not match expected value.\n0x10: Uplink OK: Packet is successfully sent."], "5": ["Codec type", "UINT8", "1", "48", "8", "RTP codec type\n0: AMR\n1: AMR-WB\n2: EVS AMR-WB IO\n3: EVS-NB\n4: EVS-WB\n5: EVS-SWB\n6: EVS-FB"], "6": ["RTP payload length", "UINT16", "1", "56", "16", "Unit: bytes"], "7": ["RTP flags", "UINT8", "1", "72", "8", "1st octet of RTP header, including V, P, X, CC fields."], "8": ["RTP payload type", "UINT8", "1", "80", "8", "2nd octet of RTP header, marker bit and payload type."], "9": ["RTP sequence number", "UINT16", "1", "88", "16", "3rd and 4th octet of RTP header, sequence number."], "10": ["Reserved", "UINT8", "2", "104", "16", ""], "11": ["RTP timestamp", "UINT32", "1", "120", "32", "5th to 8th octets of RTP header, sampling instant of the 1st octet in the RTP data packet.\nUnit: depending on sample frequency of used codec."], "12": ["RTP SSRC", "UINT32", "1", "152", "32", "9th to 12th octets of RTP header, source of a stream of RTP packets"]}, "Name": "IMS_RTP_Packet_Info_V1"}}},
+ Public JSON end */
+// Checksum : [cd5d7f5f4b9aff9ab93b624a92875e33]
diff --git a/mcu/interface/service/icd/event/sip/IMS_Call_Status_Event.h b/mcu/interface/service/icd/event/sip/IMS_Call_Status_Event.h
new file mode 100644
index 0000000..a38e5ec
--- /dev/null
+++ b/mcu/interface/service/icd/event/sip/IMS_Call_Status_Event.h
@@ -0,0 +1,66 @@
+// ICD Header Format v3
+// Name : IMS_Call_Status_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2200
+// Version : V1.1rc1
+
+#ifndef _IMS_CALL_STATUS_EVENT_H
+#define _IMS_CALL_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_CALL_STATUS_EVENT 0x2200
+
+#define ICD_IMS_IMS_CALL_STATUS_INFO_V2 2
+
+#define ICD_IMS_CALL_STATUS_INFO_STRUCT_V2_MAX_SIZE 236
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 call_status; // Indicates IMS call status.
+ // 0:Inactive
+ // 1:Active
+ // 2:Attmpting
+ // 3:Hold
+ // 4:Ringing
+ kal_uint8 call_type; // Bitmask of IMS call type.
+ // Bit0:Voice
+ // Bit1:Video
+ // Bit2:Text
+ // Bit3:Emergency
+ kal_uint8 rat_information; // Indicates Rat information.
+ // 0:LTE
+ // 1:NR
+ // 2:Wifi
+ // 3:Others
+ kal_uint8 call_direction; // Indicates Call direction.
+ // 0:MO
+ // 1:MT
+ kal_uint8 call_change_state_cause; // Indicates Call change state cause.
+ // 0:notAvailable
+ // 1:normalCallClearing
+ // 2:callFail
+ // 3:callDrop
+ kal_uint16 reason; // Indicates the reason when the status becomes inactive.
+ // 0:remote termination without reason
+ // 1~999:the cause value in Reason header field when call stop caused by remote
+ // 1000:local normal termination
+ // 1001:local timer H timeout
+ // 1002:local timer B timeout
+ kal_int8 sip_call_id[100]; // Indicates the Call-ID in SIP message.
+ kal_int8 reason_text[128]; // Indicates the text of SIP reason header.
+} icd_ims_call_status_info_struct_v2;
+
+typedef icd_ims_call_status_info_struct_v2 icd_ims_call_status_info_struct;
+
+
+#endif /* _IMS_CALL_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"IMS_Call_Status_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2200", "Name": "IMS_Call_Status_Event", "Type": "EVENT", "Desc": "The event is generated whenever the IMS call status is changed.\n"}, "table": {"IMS_Call_Status_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "IMS_Call_Status_Info_Versions", "1", "8", "VAR", ""]}, "Name": "IMS_Call_Status_Info"}, "IMS_Call_Status_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_Call_Status_Info_V1", ""], "1": ["2", "IMS_Call_Status_Info_V2", ""]}, "Name": "IMS_Call_Status_Info_Versions"}, "IMS_Call_Status_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Call Status", "UINT8", "1", "0", "8", "Indicates IMS call status\n0:Inactive\n1:Active\n2:Attmpting\n3:Hold\n4:Ringing"], "1": ["Call Type", "UINT8", "1", "8", "8", "Bitmask of IMS call type\nBit0:Voice\nBit1:Video\nBit2:Text\nBit3:Emergency"], "2": ["Rat Information", "UINT8", "1", "16", "8", "Indicates Rat information\n0:LTE\n1:NR\n2:Wifi"], "3": ["Call Direction", "UINT8", "1", "24", "8", "Indicates Call direction\n0:MO\n1:MT"], "4": ["Call Change State Cause", "UINT8", "1", "32", "8", "Indicates Call change state cause\n0:notAvailable\n1:normalCallClearing\n2:callFail\n3:callDrop"], "5": ["Reserved", "UINT16", "1", "40", "16", ""], "6": ["SIP Call ID", "INT8", "100", "56", "800", "Indicates the Call-ID in SIP message."], "7": ["Reason Text", "INT8", "128", "856", "1024", "Indicates the text of SIP reason header."]}, "Name": "IMS_Call_Status_Info_V1"}, "IMS_Call_Status_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Call Status", "UINT8", "1", "0", "8", "Indicates IMS call status.\n0:Inactive\n1:Active\n2:Attmpting\n3:Hold\n4:Ringing"], "1": ["Call Type", "UINT8", "1", "8", "8", "Bitmask of IMS call type.\nBit0:Voice\nBit1:Video\nBit2:Text\nBit3:Emergency"], "2": ["Rat Information", "UINT8", "1", "16", "8", "Indicates Rat information.\n0:LTE\n1:NR\n2:Wifi\n3:Others"], "3": ["Call Direction", "UINT8", "1", "24", "8", "Indicates Call direction.\n0:MO\n1:MT"], "4": ["Call Change State Cause", "UINT8", "1", "32", "8", "Indicates Call change state cause.\n0:notAvailable\n1:normalCallClearing\n2:callFail\n3:callDrop"], "5": ["Reason", "UINT16", "1", "40", "16", "Indicates the reason when the status becomes inactive.\n0:remote termination without reason\n1~999:the cause value in Reason header field when call stop caused by remote\n1000:local normal termination\n1001:local timer H timeout\n1002:local timer B timeout"], "6": ["SIP Call ID", "INT8", "100", "56", "800", "Indicates the Call-ID in SIP message."], "7": ["Reason Text", "INT8", "128", "856", "1024", "Indicates the text of SIP reason header."]}, "Name": "IMS_Call_Status_Info_V2"}}},
+ Public JSON end */
+// Checksum : [8c98cac630b70c90c7404194bbe5cd01]
diff --git a/mcu/interface/service/icd/event/sip/IMS_Registration_Status_Event.h b/mcu/interface/service/icd/event/sip/IMS_Registration_Status_Event.h
new file mode 100644
index 0000000..2f8bcf3
--- /dev/null
+++ b/mcu/interface/service/icd/event/sip/IMS_Registration_Status_Event.h
@@ -0,0 +1,54 @@
+// ICD Header Format v3
+// Name : IMS_Registration_Status_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2201
+// Version : V1.1rc1
+
+#ifndef _IMS_REGISTRATION_STATUS_EVENT_H
+#define _IMS_REGISTRATION_STATUS_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_REGISTRATION_STATUS_EVENT 0x2201
+
+#define ICD_IMS_IMS_REGISTRATION_STATUS_INFO_V1 1
+
+#define ICD_IMS_REGISTRATION_STATUS_INFO_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 registration_type; // Indicates IMS registration type
+ // 1:Normal
+ // 2:Emergency
+ kal_uint8 registration_result; // Indicates IMS registration result
+ // 0:Success
+ // 1:Failure
+ kal_uint8 registration_service; // Bitmask of IMS registration Service
+ // Bit0:Voice
+ // Bit1:Text
+ // Bit2:SMS
+ // Bit3:Video
+ kal_uint8 rat_information; // Indicates Rat information
+ // 0:LTE
+ // 1:NR
+ // 2:Wifi
+ // 3:Others
+ kal_uint8 sip_uri_type; // Indicates IMS registration SIP URI type
+ // 0:MSISDN based
+ // 1:IMSI based
+ kal_uint16 reserved;
+} icd_ims_registration_status_info_struct_v1;
+
+typedef icd_ims_registration_status_info_struct_v1 icd_ims_registration_status_info_struct;
+
+
+#endif /* _IMS_REGISTRATION_STATUS_EVENT_H */
+
+
+/* Public JSON start
+"IMS_Registration_Status_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2201", "Name": "IMS_Registration_Status_Event", "Type": "EVENT", "Desc": "This log is generated whenever there is a SIP registration attempt\n"}, "table": {"IMS_Registration_Status_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "IMS_Registration_Status_Info_Versions", "1", "8", "VAR", ""]}, "Name": "IMS_Registration_Status_Info"}, "IMS_Registration_Status_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_Registration_Status_Info_V1", ""]}, "Name": "IMS_Registration_Status_Info_Versions"}, "IMS_Registration_Status_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Registration Type", "UINT8", "1", "0", "8", "Indicates IMS registration type\n1:Normal\n2:Emergency"], "1": ["Registration Result", "UINT8", "1", "8", "8", "Indicates IMS registration result\n0:Success\n1:Failure"], "2": ["Registration Service", "UINT8", "1", "16", "8", "Bitmask of IMS registration Service\nBit0:Voice\nBit1:Text\nBit2:SMS\nBit3:Video"], "3": ["Rat Information", "UINT8", "1", "24", "8", "Indicates Rat information\n0:LTE\n1:NR\n2:Wifi\n3:Others"], "4": ["SIP URI Type", "UINT8", "1", "32", "8", "Indicates IMS registration SIP URI type\n0:MSISDN based\n1:IMSI based"], "5": ["Reserved", "UINT16", "1", "40", "16", ""]}, "Name": "IMS_Registration_Status_Info_V1"}}},
+ Public JSON end */
+// Checksum : [4ee6674533dedd06c77eda5c97894856]
diff --git a/mcu/interface/service/icd/event/sip/IMS_SDP_Nego_Info_Event.h b/mcu/interface/service/icd/event/sip/IMS_SDP_Nego_Info_Event.h
new file mode 100644
index 0000000..bad09ab
--- /dev/null
+++ b/mcu/interface/service/icd/event/sip/IMS_SDP_Nego_Info_Event.h
@@ -0,0 +1,67 @@
+// ICD Header Format v3
+// Name : IMS_SDP_Nego_Info_Event
+// Category : IMS
+// Layer : IMS
+// Type : EVENT
+// Code : 0x2202
+// Version : V1.1rc1
+
+#ifndef _IMS_SDP_NEGO_INFO_EVENT_H
+#define _IMS_SDP_NEGO_INFO_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_SDP_NEGO_INFO_EVENT 0x2202
+
+#define ICD_IMS_IMS_SDP_NEGO_INFO_V1 1
+
+#define ICD_IMS_SDP_NEGO_INFO_STRUCT_V1_MAX_SIZE 516
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved[3];
+ kal_uint8 offer[256]; // Indicates the SDP offer with codec information in string form.
+ // "<pt>;<codec>,<pt>;<codec>,... ..."
+ // codec:
+ // 0:Others
+ // 1:AMR
+ // 2:AMR_WB
+ // 3:EVS
+ // 4:PCMA
+ // 5:PCMU
+ // 21:H263
+ // 22:H264
+ // 23:H265
+ // 31:T140
+ // 32:RED
+ // 41:Telephone-event/8000
+ // 42:Telephone-event/16000
+ kal_uint8 answer[256]; // Indicates the SDP answer with codec information in string form.
+ // "<pt>;<codec>,<pt>;<codec>,... ..."
+ // codec:
+ // 0:Others
+ // 1:AMR
+ // 2:AMR_WB
+ // 3:EVS
+ // 4:PCMA
+ // 5:PCMU
+ // 21:H263
+ // 22:H264
+ // 23:H265
+ // 31:T140
+ // 32:RED
+ // 41:Telephone-event/8000
+ // 42:Telephone-event/16000
+} icd_ims_sdp_nego_info_struct_v1;
+
+typedef icd_ims_sdp_nego_info_struct_v1 icd_ims_sdp_nego_info_struct;
+
+
+#endif /* _IMS_SDP_NEGO_INFO_EVENT_H */
+
+
+/* Public JSON start
+"IMS_SDP_Nego_Info_Event": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2202", "Name": "IMS_SDP_Nego_Info_Event", "Type": "EVENT", "Desc": "The event is generated whenever the SDP negotiation fails in IMS call.\n"}, "table": {"IMS_SDP_Nego_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "IMS_SDP_Nego_Info_Versions", "1", "8", "VAR", ""]}, "Name": "IMS_SDP_Nego_Info"}, "IMS_SDP_Nego_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_SDP_Nego_Info_V1", ""]}, "Name": "IMS_SDP_Nego_Info_Versions"}, "IMS_SDP_Nego_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "3", "0", "24", ""], "1": ["Offer", "UINT8", "256", "24", "2048", "Indicates the SDP offer with codec information in string form.\n\"<pt>;<codec>,<pt>;<codec>,... ...\"\ncodec:\n0:Others\n1:AMR\n2:AMR_WB\n3:EVS\n4:PCMA\n5:PCMU\n21:H263\n22:H264\n23:H265\n31:T140\n32:RED\n41:Telephone-event/8000\n42:Telephone-event/16000"], "2": ["Answer", "UINT8", "256", "2072", "2048", "Indicates the SDP answer with codec information in string form.\n\"<pt>;<codec>,<pt>;<codec>,... ...\"\ncodec:\n0:Others\n1:AMR\n2:AMR_WB\n3:EVS\n4:PCMA\n5:PCMU\n21:H263\n22:H264\n23:H265\n31:T140\n32:RED\n41:Telephone-event/8000\n42:Telephone-event/16000"]}, "Name": "IMS_SDP_Nego_Info_V1"}}},
+ Public JSON end */
+// Checksum : [a0feff723cc7f59a5803e160755f004b]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Context_Info.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Context_Info.h
new file mode 100644
index 0000000..27a74d3
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Context_Info.h
@@ -0,0 +1,79 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_Context_Info
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9692
+// Version : t-internal-nr-icd-draft3RC1-287-g28c26da
+
+#ifndef _VGNAS_MM_CONTEXT_INFO_H
+#define _VGNAS_MM_CONTEXT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_CONTEXT_INFO 0x9692
+
+#define ICD_VGNAS_VGNAS_MM_CONTEXT_INFO_V2 2
+
+#define ICD_VGNAS_MM_CONTEXT_INFO_STRUCT_V2_MAX_SIZE 21
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 ims_vops_3gpp; // UE will receive IMS over PS capability from Network's mobility
+ // registration accept message over 3gpp access.
+ // 0: not supported
+ // 1: supported
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 ims_vops_non3gpp; // UE will receive IMS over PS capability from Network's mobility
+ // registration accept message over non-3gpp access.
+ // 0: not supported
+ // 1: supported
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 emc; // Emergency service support indicator for 3GPP access (EMC)
+ // 0: not supported
+ // 1: supported in NR connected to 5GCN only
+ // 2: supported in E-UTRA connected to 5GCN only
+ // 3: supported in NR connected to 5GCN and E-UTRA connected to 5GCN
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 emf; // Emergency service fallback indicator for 3GPP access (EMF)
+ // 0: not supported
+ // 1: supported in NR connected to 5GCN only
+ // 2: supported in E-UTRA connected to 5GCN only
+ // 3: supported in NR connected to 5GCN and E-UTRA connected to 5GCN
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 iwk_n26; // Interworking without N26 interface indicator (IWK N26)
+ // 0: not supported
+ // 1: supported
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 mpsi; // This bit indicates the support of MPS in the RPLMN or equivalent
+ // PLMN
+ // 0: Access identity 1 not valid in RPLMN or equivalent PLMN
+ // 1: Access identity 1 valid in RPLMN or equivalent PLMN
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 mcsi; // This bit indicates the support of MCS in the RPLMN or equivalent
+ // PLMN.
+ // 0: Access identity 2 not valid in RPLMN or equivalent PLMN
+ // 1: Access identity 2 valid in RPLMN or equivalent PLMN
+ // For detailed definition, please refer to 3GPP 24.501 5GS network
+ // feature support.
+ kal_uint8 guti[10]; // This field indicates current 5G GUTI in UE context.
+ kal_uint8 reserved[3];
+} icd_vgnas_mm_context_info_struct_v2;
+
+typedef icd_vgnas_mm_context_info_struct_v2 icd_vgnas_mm_context_info_struct;
+
+
+#endif /* _VGNAS_MM_CONTEXT_INFO_H */
+
+
+/* Public JSON start
+"VGNAS_MM_Context_Info": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9692", "Name": "VGNAS_MM_Context_Info", "Type": "EVENT", "Desc": "The event is generated when VGMM context changes.\n"}, "table": {"VGNAS_MM_Context_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "VGNAS_MM_Context_Info_Versions", "1", "8", "VAR", ""]}, "Name": "VGNAS_MM_Context_Info"}, "VGNAS_MM_Context_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "VGNAS_MM_Context_Info_V1", ""], "1": ["2", "VGNAS_MM_Context_Info_V2", ""]}, "Name": "VGNAS_MM_Context_Info_Versions"}, "VGNAS_MM_Context_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["IMS VoPS-3GPP", "UINT8", "1", "0", "8", "UE will receive IMS over PS capability from Network's mobility\nregistration accept message over 3gpp access.\n0: not supported\n1: supported\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "1": ["IMS VoPS-non3GPP", "UINT8", "1", "8", "8", "UE will receive IMS over PS capability from Network's mobility\nregistration accept message over non-3gpp access.\n0: not supported\n1: supported\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "2": ["EMC", "UINT8", "1", "16", "8", "Emergency service support indicator for 3GPP access (EMC)\n0: not supported\n1: supported in NR connected to 5GCN only\n2: supported in E-UTRA connected to 5GCN only\n3: supported in NR connected to 5GCN and E-UTRA connected to 5GCN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "3": ["EMF", "UINT8", "1", "24", "8", "Emergency service fallback indicator for 3GPP access (EMF)\n0: not supported\n1: supported in NR connected to 5GCN only\n2: supported in E-UTRA connected to 5GCN only\n3: supported in NR connected to 5GCN and E-UTRA connected to 5GCN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "4": ["IWK N26", "UINT8", "1", "32", "8", "Interworking without N26 interface indicator (IWK N26)\n0: not supported\n1: supported\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "5": ["MPSI", "UINT8", "1", "40", "8", "This bit indicates the support of MPS in the RPLMN or equivalent\nPLMN\n0: Access identity 1 not valid in RPLMN or equivalent PLMN\n1: Access identity 1 valid in RPLMN or equivalent PLMN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "6": ["MCSI", "UINT8", "1", "48", "8", "This bit indicates the support of MCS in the RPLMN or equivalent\nPLMN.\n0: Access identity 2 not valid in RPLMN or equivalent PLMN\n1: Access identity 2 valid in RPLMN or equivalent PLMN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "7": ["Reserved", "UINT8", "3", "56", "24", ""]}, "Name": "VGNAS_MM_Context_Info_V1"}, "VGNAS_MM_Context_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["IMS VoPS-3GPP", "UINT8", "1", "0", "8", "UE will receive IMS over PS capability from Network's mobility\nregistration accept message over 3gpp access.\n0: not supported\n1: supported\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "1": ["IMS VoPS-non3GPP", "UINT8", "1", "8", "8", "UE will receive IMS over PS capability from Network's mobility\nregistration accept message over non-3gpp access.\n0: not supported\n1: supported\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "2": ["EMC", "UINT8", "1", "16", "8", "Emergency service support indicator for 3GPP access (EMC)\n0: not supported\n1: supported in NR connected to 5GCN only\n2: supported in E-UTRA connected to 5GCN only\n3: supported in NR connected to 5GCN and E-UTRA connected to 5GCN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "3": ["EMF", "UINT8", "1", "24", "8", "Emergency service fallback indicator for 3GPP access (EMF)\n0: not supported\n1: supported in NR connected to 5GCN only\n2: supported in E-UTRA connected to 5GCN only\n3: supported in NR connected to 5GCN and E-UTRA connected to 5GCN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "4": ["IWK N26", "UINT8", "1", "32", "8", "Interworking without N26 interface indicator (IWK N26)\n0: not supported\n1: supported\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "5": ["MPSI", "UINT8", "1", "40", "8", "This bit indicates the support of MPS in the RPLMN or equivalent\nPLMN\n0: Access identity 1 not valid in RPLMN or equivalent PLMN\n1: Access identity 1 valid in RPLMN or equivalent PLMN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "6": ["MCSI", "UINT8", "1", "48", "8", "This bit indicates the support of MCS in the RPLMN or equivalent\nPLMN.\n0: Access identity 2 not valid in RPLMN or equivalent PLMN\n1: Access identity 2 valid in RPLMN or equivalent PLMN\nFor detailed definition, please refer to 3GPP 24.501 5GS network\nfeature support."], "7": ["GUTI", "UINT8", "10", "56", "80", "This field indicates current 5G GUTI in UE context."], "8": ["Reserved", "UINT8", "3", "136", "24", ""]}, "Name": "VGNAS_MM_Context_Info_V2"}}},
+ Public JSON end */
+// Checksum : [38a2a008159e61fe593f4b065328cdf7]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Failure_Event_Cause.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Failure_Event_Cause.h
new file mode 100644
index 0000000..e1f70d9
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Failure_Event_Cause.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_Failure_Event_Cause
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9689
+// Version : V1.3
+
+#ifndef _VGNAS_MM_FAILURE_EVENT_CAUSE_H
+#define _VGNAS_MM_FAILURE_EVENT_CAUSE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_FAILURE_EVENT_CAUSE 0x9689
+
+#define ICD_VGNAS_MM_FAILURE_EVENT_V1 1
+
+#define ICD_VGNAS_MM_FAILURE_EVENT_CAUSE_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 cause; // For detailed enumeration of MM Causes, please refer to 3GPP 24.501
+ kal_uint16 event; // For detailed enumeration of MM Causes, please refer to 3GPP 24.501
+ // Registration Reject (0x0044)
+ // Service Reject (0x004d)
+ // Authentication Reject (0x0058)
+ // Authentication Failure (0x0059)
+ // Security Mode Reject (0x005f)
+ kal_uint8 reserved_1[2];
+} icd_vgnas_mm_failure_event_cause_struct_v1;
+
+typedef icd_vgnas_mm_failure_event_cause_struct_v1 icd_vgnas_mm_failure_event_cause_struct;
+
+
+#endif /* _VGNAS_MM_FAILURE_EVENT_CAUSE_H */
+
+
+/* Public JSON start
+"VGNAS_MM_Failure_Event_Cause": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9689", "Name": "VGNAS_MM_Failure_Event_Cause", "Type": "EVENT", "Desc": "The event is generated when MM procedure failured.\n"}, "table": {"VGNAS_MM_Failure_Event_Cause": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "MM_Failure_Event_Versions", "1", "8", "VAR", ""]}, "Name": "VGNAS_MM_Failure_Event_Cause"}, "MM_Failure_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MM_Failure_Event_V1", ""]}, "Name": "MM_Failure_Event_Versions"}, "MM_Failure_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Cause", "UINT16", "1", "8", "16", "For detailed enumeration of MM Causes, please refer to 3GPP 24.501"], "2": ["Event", "UINT16", "1", "24", "16", "For detailed enumeration of MM Causes, please refer to 3GPP 24.501\nRegistration Reject (0x0044)\nService Reject (0x004d)\nAuthentication Reject (0x0058)\nAuthentication Failure (0x0059)\nSecurity Mode Reject (0x005f)"], "3": ["Reserved", "UINT8", "2", "40", "16", ""]}, "Name": "MM_Failure_Event_V1"}}},
+ Public JSON end */
+// Checksum : [c00ed859f837f660c6c8d074a8ff1a07]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Ota_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Ota_Event.h
new file mode 100644
index 0000000..c5f091a
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Ota_Event.h
@@ -0,0 +1,64 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_OTA_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9686
+// Version : V1.3
+
+#ifndef _VGNAS_MM_OTA_EVENT_H
+#define _VGNAS_MM_OTA_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_OTA_EVENT 0x9686
+
+#define ICD_VGNAS_MM_OTA_EVENT_V1 1
+
+#define ICD_MM_OTA_EVENT_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved;
+ kal_uint16 event; // For detailed enumeration of MM Causes, please refer to 3GPP 24.501
+ // Registration Request (0x0041)
+ // Registration Accept (0x0042)
+ // Registration Complete (0x0043)
+ // Registration Reject (0x0044)
+ // MO Deregistration Request (0x0045)
+ // MO Deregistration Accept (0x0046)
+ // MT Deregistration Request (0x0047)
+ // MT Deregistration Accept (0x0048)
+ // Service Request (0x004c)
+ // Service Reject (0x004d)
+ // Service Accept (0x004e)
+ // Config Update Command (0x0054)
+ // Config Update Complete (0x0055)
+ // Authentication Request (0x0056)
+ // Authentication Response (0x0057)
+ // Authentication Reject (0x0058)
+ // Authentication Failure (0x0059)
+ // Authentication Result (0x005a)
+ // Identity Request (0x005b)
+ // Identity Response (0x005c)
+ // Security Mode Command (0x005d)
+ // Security Mode Complete (0x005e)
+ // Security Mode Reject (0x005f)
+ // MM Status (0x0064)
+ // MM Notification (0x0065)
+ // MM Notification Response (0x0066)
+ // UL NAS Transport (0x0067)
+ // DL NAS Transport (0x0068)
+} icd_mm_ota_event_struct_v1;
+
+typedef icd_mm_ota_event_struct_v1 icd_mm_ota_event_struct;
+
+
+#endif /* _VGNAS_MM_OTA_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_MM_OTA_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9686", "Name": "VGNAS_MM_OTA_Event", "Type": "EVENT", "Desc": "The event is generated when MM sends/receives OTA message.\n"}, "table": {"MM_Ota_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "MM_Ota_Event_Versions", "1", "8", "VAR", ""]}, "Name": "MM_Ota_Event"}, "MM_Ota_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MM_Ota_Event_V1", ""]}, "Name": "MM_Ota_Event_Versions"}, "MM_Ota_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "1", "0", "8", ""], "1": ["Event", "UINT16", "1", "8", "16", "For detailed enumeration of MM Causes, please refer to 3GPP 24.501\nRegistration Request (0x0041)\nRegistration Accept (0x0042)\nRegistration Complete (0x0043)\nRegistration Reject (0x0044)\nMO Deregistration Request (0x0045)\nMO Deregistration Accept (0x0046)\nMT Deregistration Request (0x0047)\nMT Deregistration Accept (0x0048)\nService Request (0x004c)\nService Reject (0x004d)\nService Accept (0x004e)\nConfig Update Command (0x0054)\nConfig Update Complete (0x0055)\nAuthentication Request (0x0056)\nAuthentication Response (0x0057)\nAuthentication Reject (0x0058)\nAuthentication Failure (0x0059)\nAuthentication Result (0x005a)\nIdentity Request (0x005b)\nIdentity Response (0x005c)\nSecurity Mode Command (0x005d)\nSecurity Mode Complete (0x005e)\nSecurity Mode Reject (0x005f)\nMM Status (0x0064)\nMM Notification (0x0065)\nMM Notification Response (0x0066)\nUL NAS Transport (0x0067)\nDL NAS Transport (0x0068)"]}, "Name": "MM_Ota_Event_V1"}}},
+ Public JSON end */
+// Checksum : [3e76f4c4927115ffef4afdc112cc1210]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Service_Failure_Cause.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Service_Failure_Cause.h
new file mode 100644
index 0000000..878a848
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Service_Failure_Cause.h
@@ -0,0 +1,43 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_Service_Failure_Cause
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9691
+// Version : V1.3
+
+#ifndef _VGNAS_MM_SERVICE_FAILURE_CAUSE_H
+#define _VGNAS_MM_SERVICE_FAILURE_CAUSE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_SERVICE_FAILURE_CAUSE 0x9691
+
+#define ICD_VGNAS_MM_SERVICE_FAILURE_CAUSE_V1 1
+
+#define ICD_MM_SERVICE_FAILURE_CAUSE_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 reserved[3];
+ kal_uint32 cause; // For detailed enumeration of MM Causes, please refer to 3GPP 24.501
+ // In addition to 3GPP specified causes, the following internal causes
+ // may be used:
+ // Unspecified (0xFFFFFFFF),
+ // Active T3346 (0x00010000),
+ // Access Barred (0x00100000),
+ // T3510 Timeout (0x00110000),
+ // NAS signaling connection release before NW response (0x01000000)
+} icd_mm_service_failure_cause_struct_v1;
+
+typedef icd_mm_service_failure_cause_struct_v1 icd_mm_service_failure_cause_struct;
+
+
+#endif /* _VGNAS_MM_SERVICE_FAILURE_CAUSE_H */
+
+
+/* Public JSON start
+"VGNAS_MM_Service_Failure_Cause": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9691", "Name": "VGNAS_MM_Service_Failure_Cause", "Type": "EVENT", "Desc": "The event is generated when MM service failure cause.\n"}, "table": {"MM_Service_Failure_Cause": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "MM_Service_Failure_Cause_Versions", "1", "8", "VAR", ""]}, "Name": "MM_Service_Failure_Cause"}, "MM_Service_Failure_Cause_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MM_Service_Failure_Cause_V1", ""]}, "Name": "MM_Service_Failure_Cause_Versions"}, "MM_Service_Failure_Cause_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT8", "3", "0", "24", ""], "1": ["Cause", "UINT32", "1", "24", "32", "For detailed enumeration of MM Causes, please refer to 3GPP 24.501\nIn addition to 3GPP specified causes, the following internal causes\nmay be used:\nUnspecified (0xFFFFFFFF),\nActive T3346 (0x00010000),\nAccess Barred (0x00100000),\nT3510 Timeout (0x00110000),\nNAS signaling connection release before NW response (0x01000000)"]}, "Name": "MM_Service_Failure_Cause_V1"}}},
+ Public JSON end */
+// Checksum : [8fd97399a02c3c97a4394f806e75d9da]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_State_Value.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_State_Value.h
new file mode 100644
index 0000000..2272a0e
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_State_Value.h
@@ -0,0 +1,57 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_State_Value
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9685
+// Version : V1.3
+
+#ifndef _VGNAS_MM_STATE_VALUE_H
+#define _VGNAS_MM_STATE_VALUE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_STATE_VALUE 0x9685
+
+#define ICD_VGNAS_MM_INFO_V1 1
+
+#define ICD_MM_INFO_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 mm_state_type; // VGmmNull (1),
+ // VGmmDeregistered (2),
+ // VGmmRegisteredInitiated (3),
+ // VGmmRegistered (4),
+ // VGmmDeregisteredInitiated (5),
+ // VGmmServiceRequestInitiated (6)
+ kal_uint8 mm_substate_type; // If MM state is VGmmDeregistered(2), MM sub-state
+ // VGmmDeregisteredNoSupi(1)
+ // VGmmDeregisteredPlmnSearch(2)
+ // VGmmDeregisteredNoCellAvailable(3)
+ // VGmmDeregisteredAttemptingRegistrationUpdate(4)
+ // VGmmDeregisteredLimitedService(5)
+ // VGmmDeregisteredNormalService(6)
+ // VGmmDeregisteredInitRegNeeded(7)
+ // If MM state is VGmmRegistered(4), MM sub-state
+ // VGmmRegisteredNormalService(1)
+ // VGmmRegisteredNonAllowedService(2)
+ // VGmmRegisteredAttemptingToUpdate(3)
+ // VGmmRegisteredLimitedService(4)
+ // VGmmRegisteredPlmnSearch(5)
+ // VGmmRegisteredNoCellAvailable(6)
+ // VGmmRegisteredUpdateNeeded(7)
+ kal_uint8 reserved;
+} icd_mm_info_struct_v1;
+
+typedef icd_mm_info_struct_v1 icd_mm_info_struct;
+
+
+#endif /* _VGNAS_MM_STATE_VALUE_H */
+
+
+/* Public JSON start
+"VGNAS_MM_State_Value": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9685", "Name": "VGNAS_MM_State_Value", "Type": "EVENT", "Desc": "The event is generated when VGNAS state changes.\n"}, "table": {"MM_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "MM_Info_Versions", "1", "8", "VAR", ""]}, "Name": "MM_Info"}, "MM_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MM_Info_V1", ""]}, "Name": "MM_Info_Versions"}, "MM_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MM State Type", "UINT8", "1", "0", "8", "VGmmNull (1),\nVGmmDeregistered (2),\nVGmmRegisteredInitiated (3),\nVGmmRegistered (4),\nVGmmDeregisteredInitiated (5),\nVGmmServiceRequestInitiated (6)"], "1": ["MM Substate Type", "UINT8", "1", "8", "8", "If MM state is VGmmDeregistered(2), MM sub-state\nVGmmDeregisteredNoSupi(1)\nVGmmDeregisteredPlmnSearch(2)\nVGmmDeregisteredNoCellAvailable(3)\nVGmmDeregisteredAttemptingRegistrationUpdate(4)\nVGmmDeregisteredLimitedService(5)\nVGmmDeregisteredNormalService(6)\nVGmmDeregisteredInitRegNeeded(7)\nIf MM state is VGmmRegistered(4), MM sub-state\nVGmmRegisteredNormalService(1)\nVGmmRegisteredNonAllowedService(2)\nVGmmRegisteredAttemptingToUpdate(3)\nVGmmRegisteredLimitedService(4)\nVGmmRegisteredPlmnSearch(5)\nVGmmRegisteredNoCellAvailable(6)\nVGmmRegisteredUpdateNeeded(7)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "MM_Info_V1"}}},
+ Public JSON end */
+// Checksum : [15b58eb6c1fc8379b5b8d50fc40e76b8]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Timer_Expiry_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Timer_Expiry_Event.h
new file mode 100644
index 0000000..9a20d73
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Timer_Expiry_Event.h
@@ -0,0 +1,50 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_Timer_Expiry_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9688
+// Version : V1.3
+
+#ifndef _VGNAS_MM_TIMER_EXPIRY_EVENT_H
+#define _VGNAS_MM_TIMER_EXPIRY_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_TIMER_EXPIRY_EVENT 0x9688
+
+#define ICD_VGNAS_MM_TIMER_EXPIRY_V1 1
+
+#define ICD_MM_TIMER_EXPIRY_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 timer_id; // This event is triggered when timer started.
+ // T3502 (1)
+ // T3510 (2)
+ // T3511 (3)
+ // T3512 (4)
+ // T3516 (5)
+ // T3517 (6)
+ // T3519 (7)
+ // T3520 (8)
+ // T3521 (9)
+ // T3540 (10)
+ // T_DEREG_EXPIRED (11)
+ kal_uint8 standard; // This is to identidy 3GPP or Non-3GPP.
+ // 3GPP (1)
+ // Non-3GPP (2)
+ kal_uint8 reserved;
+} icd_mm_timer_expiry_struct_v1;
+
+typedef icd_mm_timer_expiry_struct_v1 icd_mm_timer_expiry_struct;
+
+
+#endif /* _VGNAS_MM_TIMER_EXPIRY_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_MM_Timer_Expiry_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9688", "Name": "VGNAS_MM_Timer_Expiry_Event", "Type": "EVENT", "Desc": "The event is generated when MM timer expired.\n"}, "table": {"MM_Timer_Expiry": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "MM_Timer_Expiry_Versions", "1", "8", "VAR", ""]}, "Name": "MM_Timer_Expiry"}, "MM_Timer_Expiry_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MM_Timer_Expiry_V1", ""]}, "Name": "MM_Timer_Expiry_Versions"}, "MM_Timer_Expiry_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer started.\nT3502 (1)\nT3510 (2)\nT3511 (3)\nT3512 (4)\nT3516 (5)\nT3517 (6)\nT3519 (7)\nT3520 (8)\nT3521 (9)\nT3540 (10)\nT_DEREG_EXPIRED (11)"], "1": ["Standard", "UINT8", "1", "8", "8", "This is to identidy 3GPP or Non-3GPP.\n3GPP (1)\nNon-3GPP (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "MM_Timer_Expiry_V1"}}},
+ Public JSON end */
+// Checksum : [8e38d2509f76812655ef2febaa760825]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Timer_Start_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Timer_Start_Event.h
new file mode 100644
index 0000000..cb54a48
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_MM_Timer_Start_Event.h
@@ -0,0 +1,51 @@
+// ICD Header Format v3
+// Name : VGNAS_MM_Timer_Start_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9687
+// Version : V1.3
+
+#ifndef _VGNAS_MM_TIMER_START_EVENT_H
+#define _VGNAS_MM_TIMER_START_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_MM_TIMER_START_EVENT 0x9687
+
+#define ICD_VGNAS_MM_TIMER_START_EVENT_V2 2
+
+#define ICD_MM_TIMER_START_EVENT_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 timer_id; // This event is triggered when timer started.
+ // T3502 (1)
+ // T3510 (2)
+ // T3511 (3)
+ // T3512 (4)
+ // T3516 (5)
+ // T3517 (6)
+ // T3519 (7)
+ // T3520 (8)
+ // T3521 (9)
+ // T3540 (10)
+ // T_DEREG_EXPIRED (11)
+ kal_uint8 standard; // This is to identidy 3GPP or Non-3GPP.
+ // 3GPP (1)
+ // Non-3GPP (2)
+ kal_uint8 reserved;
+ kal_uint32 length; // This is the length of timer. Unit is second.
+} icd_mm_timer_start_event_struct_v2;
+
+typedef icd_mm_timer_start_event_struct_v2 icd_mm_timer_start_event_struct;
+
+
+#endif /* _VGNAS_MM_TIMER_START_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_MM_Timer_Start_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9687", "Name": "VGNAS_MM_Timer_Start_Event", "Type": "EVENT", "Desc": "The event is generated when MM timer starts.\n"}, "table": {"MM_Timer_Start_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "MM_Timer_Start_Event_Versions", "1", "8", "VAR", ""]}, "Name": "MM_Timer_Start_Event"}, "MM_Timer_Start_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "MM_Timer_Start_Event_V1", ""]}, "Name": "MM_Timer_Start_Event_Versions"}, "MM_Timer_Start_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer started.\nT3502 (1)\nT3510 (2)\nT3511 (3)\nT3512 (4)\nT3516 (5)\nT3517 (6)\nT3519 (7)\nT3520 (8)\nT3521 (9)\nT3540 (10)\nT_DEREG_EXPIRED (11)"], "1": ["Standard", "UINT8", "1", "8", "8", "This is to identidy 3GPP or Non-3GPP.\n3GPP (1)\nNon-3GPP (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "MM_Timer_Start_Event_V1"}}},
+ Public JSON end */
+// Checksum : [b6a059cd3a85959f99678dcd43bee0d8]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Context_Info.h b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Context_Info.h
new file mode 100644
index 0000000..a1ec56a
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Context_Info.h
@@ -0,0 +1,217 @@
+// ICD Header Format v3
+// Name : VGNAS_SM_Context_Info
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9680
+// Version : V1.3
+
+#ifndef _VGNAS_SM_CONTEXT_INFO_H
+#define _VGNAS_SM_CONTEXT_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_SM_CONTEXT_INFO 0x9680
+
+#define ICD_VGNAS_SM_INFO_V3 3
+
+#define ICD_SM_INFO_STRUCT_V3_MAX_SIZE 320
+
+typedef struct {
+ kal_uint8 dnn_length; // Length of the ASN.1 encoded message
+ kal_uint8 dnn[100]; // DNN (Data Network Name) in ASC.I
+ kal_uint8 reserved[3];
+} icd_sm_info_dnn_struct_v1;
+
+typedef icd_sm_info_dnn_struct_v1 icd_sm_info_dnn_struct;
+
+typedef struct {
+ kal_uint8 s_nssai_bitmask; // Bitmask
+ // Bit 1 (0x01): Indicate "SST" field of S-NSSAI is present
+ // Bit 2 (0x02): Indicate "SD" field of S-NSSAI is present
+ // Bit 3 (0x04): Indicate "Mapped HPLMN SST" field of S-NSSAI
+ // is present
+ // Bit 4 (0x08): Indicate "Mapped HPLMN SD" field of S-NSSAI
+ // is present
+ kal_uint8 sst; // Slice/service type (TS 23.003)
+ kal_uint8 reserved[2];
+ kal_uint32 sd; // Slice differentiator (TS 23.003)
+ kal_uint8 mapped_hplmn_sst; // Mapped HPLMN SST
+ kal_uint8 reserved_1[3];
+ kal_uint32 mapped_hplmn_sd; // Mapped HPLMN SD
+} icd_sm_info_s_nssai_struct_v1;
+
+typedef icd_sm_info_s_nssai_struct_v1 icd_sm_info_s_nssai_struct;
+
+typedef struct {
+ kal_uint8 ipv4_address_present; // Present if True
+ kal_uint8 ipv4_address[4]; // IPV4 address
+ kal_uint8 ipv6_address_present; // Present if True
+ kal_uint8 ipv6_address[8]; // IPV6 address
+ kal_uint8 reserved[2];
+} icd_sm_info_pdu_address_struct_v1;
+
+typedef icd_sm_info_pdu_address_struct_v1 icd_sm_info_pdu_address_struct;
+
+typedef struct {
+ kal_uint8 session_ambr_unit_dl; // value is not used (0)
+ // kbps (1)
+ // mbps (2)
+ // gbps (3)
+ // tbps (4)
+ // pbps (5)
+ kal_uint8 session_ambr_unit_ul; // Same as Session AMBR Unit Dl
+ kal_uint8 reserved[2];
+ kal_uint32 session_ambr_value_dl; // Session aggregate maximum bit rate (Downlink)
+ kal_uint32 session_ambr_value_ul; // Session aggregate maximum bit rate (Uplink)
+} icd_sm_info_session_ambr_struct_v1;
+
+typedef icd_sm_info_session_ambr_struct_v1 icd_sm_info_session_ambr_struct;
+
+typedef struct {
+ kal_uint8 integrity_max_data_rate_dl; // maximum data rate per UE for user-plane integrity protection for downlink
+ kal_uint8 integrity_max_data_rate_ul; // maximum data rate per UE for user-plane integrity protection for uplink
+ kal_uint8 reserved[2];
+} icd_sm_info_integrity_max_data_rate_struct_v1;
+
+typedef icd_sm_info_integrity_max_data_rate_struct_v1 icd_sm_info_integrity_max_data_rate_struct;
+
+typedef struct {
+ kal_uint8 rqos_support; // Whether reflective QoS PDU Session supported
+ kal_uint8 mh6_support; // Whether multi-homed IPv6 PDU Session supported
+ kal_uint8 reserved[2];
+} icd_sm_info_ue_sm_capability_struct_v1;
+
+typedef icd_sm_info_ue_sm_capability_struct_v1 icd_sm_info_ue_sm_capability_struct;
+
+typedef struct {
+ kal_uint8 pdu_session_type_present; // Present if True
+ kal_uint8 pdu_session_type; // Unknown (0),
+ // IPv4 (1),
+ // IPv6 (2),
+ // IPv4v6 (3),
+ // Unstructured (4),
+ // Ethernet (5)
+ kal_uint8 ssc_mode_present; // Present if True
+ kal_uint8 ssc_mode; // According to 3gpp spec ts24.501v15.0.0 ch9.11.4.16
+ // SSC mode 1 (1)
+ // SSC mode 2 (2)
+ // SSC mode 3 (3)
+ // All other values are reserved
+ kal_uint8 old_psi_present; // Present if True
+ kal_uint8 old_psi; // Old PDU Session ID used when SSC mode 3 UE re-activation
+ // PDU Session, the same format with PSI
+ kal_uint8 s_nssai_present; // Present if True
+ kal_uint8 reserved;
+ icd_sm_info_s_nssai_struct s_nssai; // Single Network Slice Selection Assistance Information
+ // 3gpp spec ts24.501v15.0.0 ch9.11.2.8
+ kal_uint8 dnn_present; // Present if True
+ kal_uint8 reserved_1[3];
+ icd_sm_info_dnn_struct dnn; // DNN (Data Network Name) according to TS 24.501 v 15.0.0
+ // ch9.11.2.1A
+ kal_uint8 ladn_dnn; // To indicate whether the PDU Session is established with LADN
+ // (Local Area Data Network) DNN
+ kal_uint8 always_on_pdu_session_req_present; // Present if True
+ kal_uint8 always_on_pdu_session_req; // Value of UE requested Always on PDU Session Request,
+ // refer to 24.501 - 9.11.4.3
+ kal_uint8 request_type; // Value of UE request type, refer to 24.501 - 9.11.3.47
+ // Bits
+ // 3 2 1
+ // 0 0 1 initial request
+ // 0 1 0 existing PDU session
+ // 0 1 1 initial emergency request
+ // 1 0 1 modification request
+ // 1 1 1 reserved
+ icd_sm_info_ue_sm_capability_struct ue_sm_capability; // 5GSM capability reported to the network, refer to 24.501 -
+ // 9.11.4.1
+ icd_sm_info_integrity_max_data_rate_struct integrity_max_data_rate; // The maximum data rate per UE for user-plane integrity
+ // protection, refer to 24.501 - 9.11.4.7
+ kal_uint8 max_num_of_supported_pf; // Maximum number of supported packet filters per PDU Session,
+ // refer to 24.501 - 9.11.4.9
+ kal_uint8 modification_type_bitmask; // Bitmask
+ // Bit 1 (0x01): QoS Handling
+ // Bit 2 (0x02): ePCO
+ // Bit 3 (0x04): 5GSM capability
+ // Bit 4 (0x08): To delete one or more mapped EPS bearer context
+ kal_uint8 reserved_2[2];
+} icd_sm_info_ue_requested_info_struct_v1;
+
+typedef icd_sm_info_ue_requested_info_struct_v1 icd_sm_info_ue_requested_info_struct;
+
+typedef struct {
+ kal_uint8 selected_pdu_session_type; // NW applied PDU Session Type
+ // Unknown (0),
+ // IPv4 (1),
+ // IPv6 (2),
+ // IPv4v6 (3),
+ // Unstructured (4),
+ // Ethernet (5)
+ kal_uint8 selected_ssc_mode; // NW applied SSC Mode
+ // According to 3gpp spec ts24.501v15.0.0 ch9.11.4.16
+ // SSC mode 1 (1)
+ // SSC mode 2 (2)
+ // SSC mode 3 (3)
+ // All other values are reserved
+ kal_uint8 s_nssai_present; // Present if True
+ kal_uint8 reserved;
+ icd_sm_info_s_nssai_struct s_nssai; // Single Network Slice Selection Assistance Information
+ // 3gpp spec ts24.501v15.0.0 ch9.11.2.8
+ icd_sm_info_session_ambr_struct session_ambr; // Session aggregate maximum bit rate
+ kal_uint8 pdu_address_present; // Present if True
+ kal_uint8 reserved_1[3];
+ icd_sm_info_pdu_address_struct pdu_address; // PDU IP Address
+ kal_uint8 allowed_ssc_mode_present; // Present if True
+ kal_uint8 allowed_ssc_mode; // NW allowed SSC mode in PDU Session establishment procedure
+ // see Selected SSC Mode for format
+ kal_uint8 always_on_pdu_session_ind_present; // Present if True
+ kal_uint8 always_on_pdu_session_ind; // Value of NW applied Always on PDU Session Indication,
+ // refer to 24.501 - 9.11.4.3
+ kal_uint8 dnn_present; // Present if True
+ kal_uint8 reserved_2[3];
+ icd_sm_info_dnn_struct dnn; // DNN (Data Network Name) according to TS 24.501 v 15.0.0
+ // ch9.11.2.1A
+} icd_sm_info_nw_applied_info_struct_v1;
+
+typedef icd_sm_info_nw_applied_info_struct_v1 icd_sm_info_nw_applied_info_struct;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pdu_session_id; // According to 3gpp spec ts24.501v15.0.0 ch9.4
+ // Bits 1 to 8 of the second octet of every 5GSM message contain
+ // the PDU session identity IE. The PDU session identity and its
+ // use to identify a message flow are defined in 3GPP TS 24.007
+ // PSI = 0: No PDU session identity assigned
+ // PSI = 1~15: PDU session identity
+ kal_uint8 pdu_session_state; // According to 3gpp spec ts24.501v15.0.0 ch6.1.3.2.1
+ // INACTIVE(0),
+ // ACTIVE PENDING(1),
+ // ACTIVE(2),
+ // MODIFICATION PENDING(3),
+ // INACTIVE PENDING(4)
+ kal_uint8 pti; // According to 3gpp spec ts24.501v15.0.0 ch9.6
+ // Bits 1 to 8 of the third octet of every 5GSM message contain
+ // the procedure transaction identity. Bits 1 to 8 of the first
+ // octet of every UE policy delivery message contain the
+ // procedure transaction identity. The procedure transaction
+ // identity and its use are defined in 3GPP TS 24.007 [11].
+ // PTI = 255 (Reserved)
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint8 reserved[3];
+ icd_sm_info_ue_requested_info_struct ue_requested_info; // UE requestd SM info
+ icd_sm_info_nw_applied_info_struct nw_applied_info; // NW applied SM info
+} icd_sm_info_struct_v3;
+
+typedef icd_sm_info_struct_v3 icd_sm_info_struct;
+
+
+#endif /* _VGNAS_SM_CONTEXT_INFO_H */
+
+
+/* Public JSON start
+"VGNAS_SM_Context_Info": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9680", "Name": "VGNAS_SM_Context_Info", "Type": "EVENT", "Desc": "The event is generated when VGSM context changes.\n"}, "table": {"SM_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "SM_Info_Versions", "1", "8", "VAR", ""]}, "Name": "SM_Info"}, "SM_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SM_Info_V1", ""], "1": ["2", "SM_Info_V2", ""], "2": ["3", "SM_Info_V3", ""]}, "Name": "SM_Info_Versions"}, "SM_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.4\nBits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007\nPSI = 0: No PDU session identity assigned\nPSI = 1~15: PDU session identity"], "1": ["PDU Session Type", "UINT8", "1", "8", "8", "Unknown (0),\nIPv4 (1),\nIPv6 (2),\nIPv4v6 (3),\nUnstructured (4),\nEthernet (5)"], "2": ["PDU Session State", "UINT8", "1", "16", "8", "According to 3gpp spec ts24.501v15.0.0 ch6.1.3.2.1\nINACTIVE(0),\nACTIVE PENDING(1),\nACTIVE(2),\nMODIFICATION PENDING(3),\nINACTIVE PENDING(4)"], "3": ["PTI", "UINT8", "1", "24", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.6\nBits 1 to 8 of the third octet of every 5GSM message contain\nthe procedure transaction identity. Bits 1 to 8 of the first\noctet of every UE policy delivery message contain the\nprocedure transaction identity. The procedure transaction\nidentity and its use are defined in 3GPP TS 24.007 [11].\nPTI = 255 (Reserved)"], "4": ["Selected SSC mode", "UINT8", "1", "32", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.11.4.16\nThe purpose of the SSC mode information element is to indicate\nSSC mode.\nSSC mode value (octet 1, bit 1 to bit 4)\nBits\n3 2 1\n0 0 1 SSC mode 1\n0 1 0 SSC mode 2\n0 1 1 SSC mode 3\n1 0 0 SSC mode 1\n1 0 1 SSC mode 2\n1 1 0 SSC mode 3\nOthers = Reserved"], "5": ["Back-off timer value", "UINT8", "2", "40", "16", "According to 3gpp spec ts24.501v15.0.0 ch9.10.2.5\nByte 0: Length\nByte 1: Value"], "6": ["Session AMBR", "UINT8", "7", "56", "56", "According to 3gpp spec ts24.501v15.0.0 ch9.10.4.10\nByte 0: Length\nByte 1 ~ 6: Value"], "7": ["RQ timer value", "UINT8", "1", "112", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.10.2.3\nBit 6~8: Unit\nBit 1~5: Value"], "8": ["App Type", "UINT8", "1", "120", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "9": ["Reserved", "UINT8", "3", "128", "24", ""]}, "Name": "SM_Info_V1"}, "SM_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.4\nBits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007\nPSI = 0: No PDU session identity assigned\nPSI = 1~15: PDU session identity"], "1": ["PDU Session Type", "UINT8", "1", "8", "8", "Unknown (0),\nIPv4 (1),\nIPv6 (2),\nIPv4v6 (3),\nUnstructured (4),\nEthernet (5)"], "2": ["PDU Session State", "UINT8", "1", "16", "8", "According to 3gpp spec ts24.501v15.0.0 ch6.1.3.2.1\nINACTIVE(0),\nACTIVE PENDING(1),\nACTIVE(2),\nMODIFICATION PENDING(3),\nINACTIVE PENDING(4)"], "3": ["PTI", "UINT8", "1", "24", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.6\nBits 1 to 8 of the third octet of every 5GSM message contain\nthe procedure transaction identity. Bits 1 to 8 of the first\noctet of every UE policy delivery message contain the\nprocedure transaction identity. The procedure transaction\nidentity and its use are defined in 3GPP TS 24.007 [11].\nPTI = 255 (Reserved)"], "4": ["Selected SSC mode", "UINT8", "1", "32", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.11.4.16\nSSC mode 1 (1)\nSSC mode 2 (2)\nSSC mode 3 (3)\nAll other values are reserved"], "5": ["App Type", "UINT8", "1", "40", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "6": ["Reserved", "UINT8", "1", "48", "8", ""], "7": ["Session AMBR", "ICD_SM_Info_Session_AMBR_Struct_V1", "1", "56", "96", "Session aggregate maximum bit rate"], "8": ["PDU Address", "ICD_SM_Info_PDU_Address_Struct_V1", "1", "152", "128", "PDU IP Address"], "9": ["S NSSAI", "ICD_SM_Info_S_NSSAI_Struct_V1", "1", "280", "128", "Single Network Slice Selection Assistance Information.\n3gpp spec ts24.501v15.0.0 ch9.11.2.8"], "10": ["DNN", "ICD_SM_Info_DNN_Struct_V1", "1", "408", "832", "DNN (Data Network Name) according to TS 24.501 v 15.0.0\nch9.11.2.1A"]}, "Name": "SM_Info_V2"}, "SM_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.4\nBits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007\nPSI = 0: No PDU session identity assigned\nPSI = 1~15: PDU session identity"], "1": ["PDU Session State", "UINT8", "1", "8", "8", "According to 3gpp spec ts24.501v15.0.0 ch6.1.3.2.1\nINACTIVE(0),\nACTIVE PENDING(1),\nACTIVE(2),\nMODIFICATION PENDING(3),\nINACTIVE PENDING(4)"], "2": ["PTI", "UINT8", "1", "16", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.6\nBits 1 to 8 of the third octet of every 5GSM message contain\nthe procedure transaction identity. Bits 1 to 8 of the first\noctet of every UE policy delivery message contain the\nprocedure transaction identity. The procedure transaction\nidentity and its use are defined in 3GPP TS 24.007 [11].\nPTI = 255 (Reserved)"], "3": ["App Type", "UINT8", "1", "24", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "4": ["Reserved", "UINT8", "3", "32", "24", ""], "5": ["UE Requested Info", "ICD_SM_Info_UE_Requested_Info_Struct_V1", "1", "56", "1184", "UE requestd SM info"], "6": ["NW Applied Info", "ICD_SM_Info_NW_Applied_Info_Struct_V1", "1", "1240", "1312", "NW applied SM info"]}, "Name": "SM_Info_V3"}, "ICD_SM_Info_NW_Applied_Info_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Selected PDU Session Type", "UINT8", "1", "0", "8", "NW applied PDU Session Type\nUnknown (0),\nIPv4 (1),\nIPv6 (2),\nIPv4v6 (3),\nUnstructured (4),\nEthernet (5)"], "1": ["Selected SSC Mode", "UINT8", "1", "8", "8", "NW applied SSC Mode\nAccording to 3gpp spec ts24.501v15.0.0 ch9.11.4.16\nSSC mode 1 (1)\nSSC mode 2 (2)\nSSC mode 3 (3)\nAll other values are reserved"], "2": ["S NSSAI Present", "UINT8", "1", "16", "8", "Present if True"], "3": ["Reserved", "UINT8", "1", "24", "8", ""], "4": ["S NSSAI", "ICD_SM_Info_S_NSSAI_Struct_V1", "1", "32", "128", "Single Network Slice Selection Assistance Information\n3gpp spec ts24.501v15.0.0 ch9.11.2.8"], "5": ["Session AMBR", "ICD_SM_Info_Session_AMBR_Struct_V1", "1", "160", "96", "Session aggregate maximum bit rate"], "6": ["PDU Address Present", "UINT8", "1", "256", "8", "Present if True"], "7": ["Reserved", "UINT8", "3", "264", "24", ""], "8": ["PDU Address", "ICD_SM_Info_PDU_Address_Struct_V1", "1", "288", "128", "PDU IP Address"], "9": ["Allowed SSC Mode Present", "UINT8", "1", "416", "8", "Present if True"], "10": ["Allowed SSC Mode", "UINT8", "1", "424", "8", "NW allowed SSC mode in PDU Session establishment procedure\nsee Selected SSC Mode for format"], "11": ["Always On PDU Session Ind Present", "UINT8", "1", "432", "8", "Present if True"], "12": ["Always On PDU Session Ind", "UINT8", "1", "440", "8", "Value of NW applied Always on PDU Session Indication,\nrefer to 24.501 - 9.11.4.3"], "13": ["DNN Present", "UINT8", "1", "448", "8", "Present if True"], "14": ["Reserved", "UINT8", "3", "456", "24", ""], "15": ["DNN", "ICD_SM_Info_DNN_Struct_V1", "1", "480", "832", "DNN (Data Network Name) according to TS 24.501 v 15.0.0\nch9.11.2.1A"]}, "Name": "ICD_SM_Info_NW_Applied_Info_Struct_V1"}, "ICD_SM_Info_UE_Requested_Info_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session Type Present", "UINT8", "1", "0", "8", "Present if True"], "1": ["PDU Session Type", "UINT8", "1", "8", "8", "Unknown (0),\nIPv4 (1),\nIPv6 (2),\nIPv4v6 (3),\nUnstructured (4),\nEthernet (5)"], "2": ["SSC Mode Present", "UINT8", "1", "16", "8", "Present if True"], "3": ["SSC Mode", "UINT8", "1", "24", "8", "According to 3gpp spec ts24.501v15.0.0 ch9.11.4.16\nSSC mode 1 (1)\nSSC mode 2 (2)\nSSC mode 3 (3)\nAll other values are reserved"], "4": ["Old PSI Present", "UINT8", "1", "32", "8", "Present if True"], "5": ["Old PSI", "UINT8", "1", "40", "8", "Old PDU Session ID used when SSC mode 3 UE re-activation\nPDU Session, the same format with PSI"], "6": ["S NSSAI Present", "UINT8", "1", "48", "8", "Present if True"], "7": ["Reserved", "UINT8", "1", "56", "8", ""], "8": ["S NSSAI", "ICD_SM_Info_S_NSSAI_Struct_V1", "1", "64", "128", "Single Network Slice Selection Assistance Information\n3gpp spec ts24.501v15.0.0 ch9.11.2.8"], "9": ["DNN Present", "UINT8", "1", "192", "8", "Present if True"], "10": ["Reserved", "UINT8", "3", "200", "24", ""], "11": ["DNN", "ICD_SM_Info_DNN_Struct_V1", "1", "224", "832", "DNN (Data Network Name) according to TS 24.501 v 15.0.0\nch9.11.2.1A"], "12": ["LADN DNN", "UINT8", "1", "1056", "8", "To indicate whether the PDU Session is established with LADN\n(Local Area Data Network) DNN"], "13": ["Always On PDU Session Req Present", "UINT8", "1", "1064", "8", "Present if True"], "14": ["Always On PDU Session Req", "UINT8", "1", "1072", "8", "Value of UE requested Always on PDU Session Request,\nrefer to 24.501 - 9.11.4.3"], "15": ["Request Type", "UINT8", "1", "1080", "8", "Value of UE request type, refer to 24.501 - 9.11.3.47\nBits\n3 2 1\n0 0 1 initial request\n0 1 0 existing PDU session\n0 1 1 initial emergency request\n1 0 1 modification request\n1 1 1 reserved"], "16": ["UE SM Capability", "ICD_SM_Info_UE_SM_Capability_Struct_V1", "1", "1088", "32", "5GSM capability reported to the network, refer to 24.501 -\n9.11.4.1"], "17": ["Integrity Max Data Rate", "ICD_SM_Info_Integrity_Max_Data_Rate_Struct_V1", "1", "1120", "32", "The maximum data rate per UE for user-plane integrity\nprotection, refer to 24.501 - 9.11.4.7"], "18": ["Max Num Of Supported PF", "UINT8", "1", "1152", "8", "Maximum number of supported packet filters per PDU Session,\nrefer to 24.501 - 9.11.4.9"], "19": ["Modification Type Bitmask", "UINT8", "1", "1160", "8", "Bitmask\nBit 1 (0x01): QoS Handling\nBit 2 (0x02): ePCO\nBit 3 (0x04): 5GSM capability\nBit 4 (0x08): To delete one or more mapped EPS bearer context"], "20": ["Reserved", "UINT8", "2", "1168", "16", ""]}, "Name": "ICD_SM_Info_UE_Requested_Info_Struct_V1"}, "ICD_SM_Info_UE_SM_Capability_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RQOS Support", "UINT8", "1", "0", "8", "Whether reflective QoS PDU Session supported"], "1": ["MH6 Support", "UINT8", "1", "8", "8", "Whether multi-homed IPv6 PDU Session supported"], "2": ["Reserved", "UINT8", "2", "16", "16", ""]}, "Name": "ICD_SM_Info_UE_SM_Capability_Struct_V1"}, "ICD_SM_Info_Integrity_Max_Data_Rate_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Integrity Max Data Rate DL", "UINT8", "1", "0", "8", "maximum data rate per UE for user-plane integrity protection for downlink"], "1": ["Integrity Max Data Rate UL", "UINT8", "1", "8", "8", "maximum data rate per UE for user-plane integrity protection for uplink"], "2": ["Reserved", "UINT8", "2", "16", "16", ""]}, "Name": "ICD_SM_Info_Integrity_Max_Data_Rate_Struct_V1"}, "ICD_SM_Info_Session_AMBR_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Session AMBR Unit Dl", "UINT8", "1", "0", "8", "value is not used (0)\nkbps (1)\nmbps (2)\ngbps (3)\ntbps (4)\npbps (5)"], "1": ["Session AMBR Unit Ul", "UINT8", "1", "8", "8", "Same as Session AMBR Unit Dl"], "2": ["Reserved", "UINT8", "2", "16", "16", ""], "3": ["Session AMBR Value Dl", "UINT32", "1", "32", "32", "Session aggregate maximum bit rate (Downlink)"], "4": ["Session AMBR Value Ul", "UINT32", "1", "64", "32", "Session aggregate maximum bit rate (Uplink)"]}, "Name": "ICD_SM_Info_Session_AMBR_Struct_V1"}, "ICD_SM_Info_PDU_Address_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["IPV4 Address Present", "UINT8", "1", "0", "8", "Present if True"], "1": ["IPV4 Address", "UINT8", "4", "8", "32", "IPV4 address"], "2": ["IPV6 Address Present", "UINT8", "1", "40", "8", "Present if True"], "3": ["IPV6 Address", "UINT8", "8", "48", "64", "IPV6 address"], "4": ["Reserved", "UINT8", "2", "112", "16", ""]}, "Name": "ICD_SM_Info_PDU_Address_Struct_V1"}, "ICD_SM_Info_S_NSSAI_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["S NSSAI Bitmask", "UINT8", "1", "0", "8", "Bitmask\nBit 1 (0x01): Indicate \"SST\" field of S-NSSAI is present\nBit 2 (0x02): Indicate \"SD\" field of S-NSSAI is present\nBit 3 (0x04): Indicate \"Mapped HPLMN SST\" field of S-NSSAI\nis present\nBit 4 (0x08): Indicate \"Mapped HPLMN SD\" field of S-NSSAI\nis present"], "1": ["SST", "UINT8", "1", "8", "8", "Slice/service type (TS 23.003)"], "2": ["Reserved", "UINT8", "2", "16", "16", ""], "3": ["SD", "UINT32", "1", "32", "32", "Slice differentiator (TS 23.003)"], "4": ["Mapped Hplmn SST", "UINT8", "1", "64", "8", "Mapped HPLMN SST"], "5": ["Reserved", "UINT8", "3", "72", "24", ""], "6": ["Mapped Hplmn SD", "UINT32", "1", "96", "32", "Mapped HPLMN SD"]}, "Name": "ICD_SM_Info_S_NSSAI_Struct_V1"}, "ICD_SM_Info_DNN_Struct_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DNN Length", "UINT8", "1", "0", "8", "Length of the ASN.1 encoded message"], "1": ["DNN", "UINT8", "100", "8", "800", "DNN (Data Network Name) in ASC.I"], "2": ["Reserved", "UINT8", "3", "808", "24", ""]}, "Name": "ICD_SM_Info_DNN_Struct_V1"}}},
+ Public JSON end */
+// Checksum : [3140a003ffb71fa4229166771db79e7a]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Failure_Event_Cause.h b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Failure_Event_Cause.h
new file mode 100644
index 0000000..3c517de
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Failure_Event_Cause.h
@@ -0,0 +1,49 @@
+// ICD Header Format v3
+// Name : VGNAS_SM_Failure_Event_Cause
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9684
+// Version : V1.3
+
+#ifndef _VGNAS_SM_FAILURE_EVENT_CAUSE_H
+#define _VGNAS_SM_FAILURE_EVENT_CAUSE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_SM_FAILURE_EVENT_CAUSE 0x9684
+
+#define ICD_VGNAS_SM_FAILURE_EVENT_V2 2
+
+#define ICD_SM_FAILURE_EVENT_CAUSE_STRUCT_V2_MAX_SIZE 8
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pdu_session_id; // Bits 1 to 8 of the second octet of every 5GSM message contain
+ // the PDU session identity IE. The PDU session identity and its
+ // use to identify a message flow are defined in 3GPP TS 24.007
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+ kal_uint8 reserved;
+ kal_uint16 cause; // For detailed enumeration of SM Causes, please refer to 3GPP 24.501
+ kal_uint16 event; // For detailed enumeration of SM event, please refer to 3GPP 24.501
+ // PDU session establishment reject (0x00c3)
+ // PDU session modification reject (0x00ca)
+ // PDU session modification command reject (0x00cd)
+ // PDU session release reject (0x00d2)
+ // 5GSM Status (0x00d6)
+} icd_sm_failure_event_cause_struct_v2;
+
+typedef icd_sm_failure_event_cause_struct_v2 icd_sm_failure_event_cause_struct;
+
+
+#endif /* _VGNAS_SM_FAILURE_EVENT_CAUSE_H */
+
+
+/* Public JSON start
+"VGNAS_SM_Failure_Event_Cause": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9684", "Name": "VGNAS_SM_Failure_Event_Cause", "Type": "EVENT", "Desc": "The event is generated when SM procedure failured.\n"}, "table": {"SM_Failure_Event_Cause": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "SM_Failure_Event_Versions", "1", "8", "VAR", ""]}, "Name": "SM_Failure_Event_Cause"}, "SM_Failure_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SM_Failure_Event_V1", ""], "1": ["2", "SM_Failure_Event_V2", ""]}, "Name": "SM_Failure_Event_Versions"}, "SM_Failure_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["App Type", "UINT8", "1", "0", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "1": ["Cause", "UINT16", "1", "8", "16", "For detailed enumeration of SM Causes, please refer to 3GPP 24.501"], "2": ["Reserved", "UINT8", "2", "24", "16", ""], "3": ["Event", "UINT16", "1", "40", "16", "For detailed enumeration of SM event, please refer to 3GPP 24.501\nPDU session establishment reject (0x00c3)\nPDU session modification reject (0x00ca)\nPDU session modification command reject (0x00cd)\nPDU session release reject (0x00d2)\n5GSM Status (0x00d6)"]}, "Name": "SM_Failure_Event_V1"}, "SM_Failure_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "Bits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007"], "1": ["App Type", "UINT8", "1", "8", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""], "3": ["Cause", "UINT16", "1", "24", "16", "For detailed enumeration of SM Causes, please refer to 3GPP 24.501"], "4": ["Event", "UINT16", "1", "40", "16", "For detailed enumeration of SM event, please refer to 3GPP 24.501\nPDU session establishment reject (0x00c3)\nPDU session modification reject (0x00ca)\nPDU session modification command reject (0x00cd)\nPDU session release reject (0x00d2)\n5GSM Status (0x00d6)"]}, "Name": "SM_Failure_Event_V2"}}},
+ Public JSON end */
+// Checksum : [0cd18540bade974e7358d898e0ced6f4]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Ota_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Ota_Event.h
new file mode 100644
index 0000000..49ba247
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Ota_Event.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : VGNAS_SM_OTA_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9681
+// Version : V1.3
+
+#ifndef _VGNAS_SM_OTA_EVENT_H
+#define _VGNAS_SM_OTA_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_SM_OTA_EVENT 0x9681
+
+#define ICD_VGNAS_SM_OTA_EVENT_V2 2
+
+#define MAX_ICD_SM_OTA_EVENT_STRUCT_V2_NUM_OF_PAYLOAD_LEN 8192
+
+#define ICD_SM_OTA_EVENT_STRUCT_V2_MAX_SIZE 8200
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pdu_session_id; // Bits 1 to 8 of the second octet of every 5GSM message contain
+ // the PDU session identity IE. The PDU session identity and its
+ // use to identify a message flow are defined in 3GPP TS 24.007
+ kal_uint16 event; // For detailed enumeration of SM event, please refer to 3GPP 24.501
+ // PDU session establishment Request (0x00c1)
+ // PDU session establishment Accept (0x00c2)
+ // PDU session establishment Reject (0x00c3)
+ // PDU session authentication command (0x00c5)
+ // PDU session authentication complete (0x00c6)
+ // PDU session authentication result (0x00c7)
+ // PDU session modification request (0x00c9)
+ // PDU session modification reject (0x00ca)
+ // PDU session modification command (0x00cb)
+ // PDU session modification complete (0x00cc)
+ // PDU session modification command reject (0x00cd)
+ // PDU session release request (0x00d1)
+ // PDU session release reject (0x00d2)
+ // PDU session release command (0x00d3)
+ // PDU session release complete (0x00d4)
+ // 5GSM status (0x00d6)
+ kal_uint8 ota_message_direction; // Upstream (1)
+ // Downstream (2)
+ kal_uint8 reserved;
+ kal_uint16 num_of_payload_len; // Length of the ASN.1 encoded message.
+ // range[0, 8192]
+ kal_uint8 payload[FLEXIBLE_ARRAY_SIZE]; // N := Num Of Payload Len
+ // nasPayload OCTET STRING(SIZE (1..8192)) ASN.1 encoded message
+} icd_sm_ota_event_struct_v2;
+
+typedef icd_sm_ota_event_struct_v2 icd_sm_ota_event_struct;
+
+
+#endif /* _VGNAS_SM_OTA_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_SM_OTA_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9681", "Name": "VGNAS_SM_OTA_Event", "Type": "EVENT", "Desc": "The event is generated when SM sends/receives OTA message.\n"}, "table": {"SM_Ota_Event": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "SM_Ota_Event_Versions", "1", "8", "VAR", ""]}, "Name": "SM_Ota_Event"}, "SM_Ota_Event_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SM_Ota_Event_V1", ""], "1": ["2", "SM_Ota_Event_V2", ""]}, "Name": "SM_Ota_Event_Versions"}, "SM_Ota_Event_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["App Type", "UINT8", "1", "0", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "1": ["Event", "UINT16", "1", "8", "16", "For detailed enumeration of SM event, please refer to 3GPP 24.501\nPDU session establishment Request (0x00c1)\nPDU session establishment Accept (0x00c2)\nPDU session establishment Reject (0x00c3)\nPDU session authentication command (0x00c5)\nPDU session authentication complete (0x00c6)\nPDU session authentication result (0x00c7)\nPDU session modification request (0x00c9)\nPDU session modification reject (0x00ca)\nPDU session modification command (0x00cb)\nPDU session modification complete (0x00cc)\nPDU session modification command reject (0x00cd)\nPDU session release request (0x00d1)\nPDU session release reject (0x00d2)\nPDU session release command (0x00d3)\nPDU session release complete (0x00d4)\n5GSM status (0x00d6)"]}, "Name": "SM_Ota_Event_V1"}, "SM_Ota_Event_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Payload": "Num Of Payload Len"}, "Name": "SM_Ota_Event_V2", "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "Bits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007"], "1": ["Event", "UINT16", "1", "8", "16", "For detailed enumeration of SM event, please refer to 3GPP 24.501\nPDU session establishment Request (0x00c1)\nPDU session establishment Accept (0x00c2)\nPDU session establishment Reject (0x00c3)\nPDU session authentication command (0x00c5)\nPDU session authentication complete (0x00c6)\nPDU session authentication result (0x00c7)\nPDU session modification request (0x00c9)\nPDU session modification reject (0x00ca)\nPDU session modification command (0x00cb)\nPDU session modification complete (0x00cc)\nPDU session modification command reject (0x00cd)\nPDU session release request (0x00d1)\nPDU session release reject (0x00d2)\nPDU session release command (0x00d3)\nPDU session release complete (0x00d4)\n5GSM status (0x00d6)"], "2": ["OTA Message Direction", "UINT8", "1", "24", "8", "Upstream (1)\nDownstream (2)"], "3": ["Reserved", "UINT8", "1", "32", "8", ""], "4": ["Num Of Payload Len", "UINT16", "1", "40", "16", "Length of the ASN.1 encoded message.\nrange[0, 8192]"], "5": ["Payload", "UINT8", "N", "56", "VAR", "N := Num Of Payload Len\nnasPayload OCTET STRING(SIZE (1..8192)) ASN.1 encoded message"]}}}},
+ Public JSON end */
+// Checksum : [801e04a73c4ecddfc7ec8606f82898db]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Expiry_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Expiry_Event.h
new file mode 100644
index 0000000..9e4d553
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Expiry_Event.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : VGNAS_SM_Timer_Expiry_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9683
+// Version : V1.3
+
+#ifndef _VGNAS_SM_TIMER_EXPIRY_EVENT_H
+#define _VGNAS_SM_TIMER_EXPIRY_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_SM_TIMER_EXPIRY_EVENT 0x9683
+
+#define ICD_VGNAS_SM_TIMER_EXPIRY_V2 2
+
+#define ICD_SM_TIMER_EXPIRY_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pdu_session_id; // Bits 1 to 8 of the second octet of every 5GSM message contain
+ // the PDU session identity IE. The PDU session identity and its
+ // use to identify a message flow are defined in 3GPP TS 24.007
+ kal_uint8 timer_id; // This event is triggered when timer expired.
+ // T3580(1)
+ // T3581(2)
+ // T3582(3)
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+} icd_sm_timer_expiry_struct_v2;
+
+typedef icd_sm_timer_expiry_struct_v2 icd_sm_timer_expiry_struct;
+
+
+#endif /* _VGNAS_SM_TIMER_EXPIRY_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_SM_Timer_Expiry_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9683", "Name": "VGNAS_SM_Timer_Expiry_Event", "Type": "EVENT", "Desc": "The event is generated when SM timer expired.\n"}, "table": {"SM_Timer_Expiry": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "SM_Timer_Expiry_Versions", "1", "8", "VAR", ""]}, "Name": "SM_Timer_Expiry"}, "SM_Timer_Expiry_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SM_Timer_Expiry_V1", ""], "1": ["2", "SM_Timer_Expiry_V2", ""]}, "Name": "SM_Timer_Expiry_Versions"}, "SM_Timer_Expiry_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer expired.\nT3580(1)\nT3581(2)\nT3582(3)\nT3583(4)"], "1": ["App Type", "UINT8", "1", "8", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "SM_Timer_Expiry_V1"}, "SM_Timer_Expiry_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "Bits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007"], "1": ["Timer ID", "UINT8", "1", "8", "8", "This event is triggered when timer expired.\nT3580(1)\nT3581(2)\nT3582(3)"], "2": ["App Type", "UINT8", "1", "16", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"]}, "Name": "SM_Timer_Expiry_V2"}}},
+ Public JSON end */
+// Checksum : [5e986ce2aa15736625f19ff31faa2a84]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Start_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Start_Event.h
new file mode 100644
index 0000000..82c8612
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Start_Event.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : VGNAS_SM_Timer_Start_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9682
+// Version : V1.3
+
+#ifndef _VGNAS_SM_TIMER_START_EVENT_H
+#define _VGNAS_SM_TIMER_START_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_SM_TIMER_START_EVENT 0x9682
+
+#define ICD_VGNAS_SM_TIMER_START_V2 2
+
+#define ICD_SM_TIMER_START_STRUCT_V2_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pdu_session_id; // Bits 1 to 8 of the second octet of every 5GSM message contain
+ // the PDU session identity IE. The PDU session identity and its
+ // use to identify a message flow are defined in 3GPP TS 24.007
+ kal_uint8 timer_id; // This event is triggered when timer expired.
+ // T3580(1)
+ // T3581(2)
+ // T3582(3)
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+} icd_sm_timer_start_struct_v2;
+
+typedef icd_sm_timer_start_struct_v2 icd_sm_timer_start_struct;
+
+
+#endif /* _VGNAS_SM_TIMER_START_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_SM_Timer_Start_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9682", "Name": "VGNAS_SM_Timer_Start_Event", "Type": "EVENT", "Desc": "The event is generated when SM timer starts.\n"}, "table": {"SM_Timer_Start": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "SM_Timer_Start_Versions", "1", "8", "VAR", ""]}, "Name": "SM_Timer_Start"}, "SM_Timer_Start_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SM_Timer_Start_V1", ""], "1": ["2", "SM_Timer_Start_V2", ""]}, "Name": "SM_Timer_Start_Versions"}, "SM_Timer_Start_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Timer ID", "UINT8", "1", "0", "8", "This event is triggered when timer started.\nT3580(1)\nT3581(2)\nT3582(3)\nT3583(4)"], "1": ["App Type", "UINT8", "1", "8", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"], "2": ["Reserved", "UINT8", "1", "16", "8", ""]}, "Name": "SM_Timer_Start_V1"}, "SM_Timer_Start_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "Bits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007"], "1": ["Timer ID", "UINT8", "1", "8", "8", "This event is triggered when timer expired.\nT3580(1)\nT3581(2)\nT3582(3)"], "2": ["App Type", "UINT8", "1", "16", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"]}, "Name": "SM_Timer_Start_V2"}}},
+ Public JSON end */
+// Checksum : [de5ece232846b1d9466bfd24a54b49cd]
diff --git a/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Stop_Event.h b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Stop_Event.h
new file mode 100644
index 0000000..4ca2b6d
--- /dev/null
+++ b/mcu/interface/service/icd/event/vgnas/VGNAS_SM_Timer_Stop_Event.h
@@ -0,0 +1,45 @@
+// ICD Header Format v3
+// Name : VGNAS_SM_Timer_Stop_Event
+// Category : NR
+// Layer : VGNAS
+// Type : EVENT
+// Code : 0x9690
+// Version : V1.3
+
+#ifndef _VGNAS_SM_TIMER_STOP_EVENT_H
+#define _VGNAS_SM_TIMER_STOP_EVENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_SM_TIMER_STOP_EVENT 0x9690
+
+#define ICD_VGNAS_SM_TIMER_STOP_V1 1
+
+#define ICD_SM_TIMER_STOP_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 pdu_session_id; // Bits 1 to 8 of the second octet of every 5GSM message contain
+ // the PDU session identity IE. The PDU session identity and its
+ // use to identify a message flow are defined in 3GPP TS 24.007
+ kal_uint8 timer_id; // This event is triggered when timer expired.
+ // T3580(1)
+ // T3581(2)
+ // T3582(3)
+ kal_uint8 app_type; // Application Type:
+ // Non-specific application (0)
+ // IMS (1)
+ // Emergency (2)
+} icd_sm_timer_stop_struct_v1;
+
+typedef icd_sm_timer_stop_struct_v1 icd_sm_timer_stop_struct;
+
+
+#endif /* _VGNAS_SM_TIMER_STOP_EVENT_H */
+
+
+/* Public JSON start
+"VGNAS_SM_Timer_Stop_Event": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9690", "Name": "VGNAS_SM_Timer_Stop_Event", "Type": "EVENT", "Desc": "The event is generated when SM timer stopped.\n"}, "table": {"SM_Timer_Stop": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "SM_Timer_Stop_Versions", "1", "8", "VAR", ""]}, "Name": "SM_Timer_Stop"}, "SM_Timer_Stop_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "SM_Timer_Stop_V1", ""]}, "Name": "SM_Timer_Stop_Versions"}, "SM_Timer_Stop_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU Session ID", "UINT8", "1", "0", "8", "Bits 1 to 8 of the second octet of every 5GSM message contain\nthe PDU session identity IE. The PDU session identity and its\nuse to identify a message flow are defined in 3GPP TS 24.007"], "1": ["Timer ID", "UINT8", "1", "8", "8", "This event is triggered when timer expired.\nT3580(1)\nT3581(2)\nT3582(3)"], "2": ["App Type", "UINT8", "1", "16", "8", "Application Type:\nNon-specific application (0)\nIMS (1)\nEmergency (2)"]}, "Name": "SM_Timer_Stop_V1"}}},
+ Public JSON end */
+// Checksum : [0d925b31d5597dd25c041f465b932d1c]
diff --git a/mcu/interface/service/icd/icd_codes.h b/mcu/interface/service/icd/icd_codes.h
new file mode 100644
index 0000000..7bd412b
--- /dev/null
+++ b/mcu/interface/service/icd/icd_codes.h
@@ -0,0 +1,92 @@
+// ICD Codes Header
+
+#ifndef _ICD_CODES_H
+#define _ICD_CODES_H
+
+#ifndef kal_uint8
+ typedef unsigned char kal_uint8;
+#endif
+#ifndef kal_int8
+ typedef signed char kal_int8;
+#endif
+#ifndef kal_uint16
+ typedef unsigned short int kal_uint16;
+#endif
+#ifndef kal_uint16
+ typedef signed short int kal_int16;
+#endif
+#ifndef kal_uint32
+ typedef unsigned int kal_uint32;
+#endif
+#ifndef kal_int32
+ typedef signed int kal_int32;
+#endif
+#ifndef kal_uint64
+ typedef unsigned long long kal_uint64;
+#endif
+#ifndef kal_int64
+ typedef signed long long kal_int64;
+#endif
+
+#define FLEXIBLE_ARRAY_SIZE 1
+
+/// -------------------------------
+/// IMS ICD RECORD/EVENT Codes
+/// -------------------------------
+
+// Layer: IMS, Type: RECORD
+
+// Layer: IMS, Type: EVENT
+
+// Layer: N3GPP, Type: EVENT
+
+/// -------------------------------
+/// IPDATA ICD RECORD/EVENT Codes
+/// -------------------------------
+
+// Layer: IPDATA, Type: RECORD
+
+/// -------------------------------
+/// LTE ICD RECORD/EVENT Codes
+/// -------------------------------
+
+// Layer: CM, Type: EVENT
+
+// Layer: EL1, Type: RECORD
+
+// Layer: EL1, Type: EVENT
+
+// Layer: EL2, Type: RECORD
+
+// Layer: EL2, Type: EVENT
+
+// Layer: ENAS, Type: RECORD
+
+// Layer: ENAS, Type: EVENT
+
+// Layer: ERRC, Type: RECORD
+
+// Layer: ERRC, Type: EVENT
+
+/// -------------------------------
+/// NR ICD RECORD/EVENT Codes
+/// -------------------------------
+
+// Layer: NL1, Type: RECORD
+
+// Layer: NL1, Type: EVENT
+
+// Layer: NL2, Type: RECORD
+
+// Layer: NL2, Type: EVENT
+
+// Layer: NRRC, Type: RECORD
+
+// Layer: NRRC, Type: EVENT
+
+// Layer: VGNAS, Type: RECORD
+
+// Layer: VGNAS, Type: EVENT
+
+#endif /* _ICD_CODES_H */
+
diff --git a/mcu/interface/service/icd/ims/ota_message/IMS_SIP_Message.h b/mcu/interface/service/icd/ims/ota_message/IMS_SIP_Message.h
new file mode 100644
index 0000000..eb883ae
--- /dev/null
+++ b/mcu/interface/service/icd/ims/ota_message/IMS_SIP_Message.h
@@ -0,0 +1,100 @@
+// ICD Header Format v3
+// Name : IMS_SIP_Message
+// Category : IMS
+// Layer : IMS
+// Type : RECORD
+// Code : 0x2000
+// Version : t-internal-ims-icd-draft2rc1-11-g02208f5
+
+#ifndef _IMS_SIP_MESSAGE_H
+#define _IMS_SIP_MESSAGE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IMS_SIP_MESSAGE 0x2000
+
+#define ICD_IMS_IMS_SIP_MESSAGE_INFO_V2 2
+
+#define MAX_ICD_IMS_SIP_MESSAGE_STRUCT_V2_SIP_MESSAGE_LENGTH 8192
+
+#define ICD_IMS_SIP_MESSAGE_STRUCT_V2_MAX_SIZE 9622
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 direction; // Indicates the direction of SIP Message.
+ // 0: UE to Network
+ // 1: Network to UE
+ kal_uint8 rat_information; // Indicates Rat information.
+ // 0:LTE
+ // 1:NR
+ // 2:Wifi
+ // 3:Others
+ kal_uint8 transport_type; // Indicates the SIP transport Type.
+ // 1:UDP
+ // 2:TCP
+ kal_uint8 sip_message_type; // Indicates the SIP message Type.
+ // 0:Request
+ // 1:Response
+ kal_uint8 sip_method; // Indicates the SIP Message ID.
+ // 0:METHOD_SIP_REGISTER
+ // 1:METHOD_SIP_INVITE
+ // 2:METHOD_SIP_REFER
+ // 3:METHOD_SIP_UPDATE
+ // 4:METHOD_SIP_CANCEL
+ // 5:METHOD_SIP_MESSAGE
+ // 6:METHOD_SIP_ACK
+ // 7:METHOD_SIP_BYE
+ // 8:METHOD_SIP_OPTIONS
+ // 9:METHOD_SIP_SUBSCRIBE
+ // 10:METHOD_SIP_NOTIFY
+ // 11:METHOD_SIP_PUBLISH
+ // 12:METHOD_SIP_INFO
+ // 13:METHOD_SIP_PRACK
+ kal_uint16 sip_response_code; // Indicates the SIP response Code(Refer to RFC3261).
+ kal_uint8 request_line[512]; // The first line of a SIP message
+ kal_int8 source_ip[64]; // Indicates the source IP address of SIP message.
+ kal_int8 destination_ip[64]; // Indicates the destination IP address of SIP message.
+ kal_uint8 call_id[128]; // Indicates the call ID.
+ kal_uint16 cseq; // Indicates the CSeq of the SIP message
+ kal_uint8 reason_text[128]; // Indicates the string in Reason Header Field.
+ kal_uint8 warning_text[128]; // Indicates the string in Warning Header Field.
+ kal_uint8 user_agent_text[128]; // Indicates the string in User Agent Header Field.
+ kal_uint8 codec_info[256]; // Indicates the SDP codec information in string form.
+ // "<pt>;<codec>,<pt>;<codec>,... ..."
+ // codec:
+ // 0:Others
+ // 1:AMR
+ // 2:AMR_WB
+ // 3:EVS
+ // 4:PCMA
+ // 5:PCMU
+ // 21:H263
+ // 22:H264
+ // 23:H265
+ // 31:T140
+ // 32:RED
+ // 41:Telephone-event/8000
+ // 42:Telephone-event/16000
+ kal_uint16 audio_port; // Indicates the audio port number in SDP body.
+ kal_uint16 video_port; // Indicates the video port number in SDP body.
+ kal_uint16 audio_as; // Indicates the audio AS in SDP body.
+ kal_uint16 video_as; // Indicates the video AS in SDP body.
+ kal_uint16 session_as; // Indicates the session AS in SDP body.
+ kal_uint16 sip_message_length; // Length of the SIP message.
+ // range[0, 8192]
+ kal_uint8 sip_message[FLEXIBLE_ARRAY_SIZE]; // N := SIP Message Length
+ // SIP Message OCTET STRING(SIZE (1..8192))
+ // Raw SIP Message
+} icd_ims_sip_message_struct_v2;
+
+typedef icd_ims_sip_message_struct_v2 icd_ims_sip_message_struct;
+
+
+#endif /* _IMS_SIP_MESSAGE_H */
+
+
+/* Public JSON start
+"IMS_SIP_Message": {"info": {"Category": "IMS", "Layer": "IMS", "Code": "0x2000", "Name": "IMS_SIP_Message", "Type": "RECORD", "Desc": "The log is generated every time an IMS message is sent or received.\n"}, "table": {"IMS_SIP_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "IMS_SIP_Message_Versions", "1", "8", "VAR", ""]}, "Name": "IMS_SIP_Message"}, "IMS_SIP_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IMS_SIP_Message_Info_V1", ""], "1": ["2", "IMS_SIP_Message_Info_V2", ""]}, "Name": "IMS_SIP_Message_Versions"}, "IMS_SIP_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SIP Message": "SIP Message Length"}, "Name": "IMS_SIP_Message_Info_V1", "Data": {"0": ["Direction", "UINT8", "1", "0", "8", "Indicates the direction of SIP Message.\n0: UE to Network\n1: Network to UE"], "1": ["Rat Information", "UINT8", "1", "8", "8", "Indicates Rat information.\n0:LTE\n1:NR\n2:Wifi\n3:Others"], "2": ["Transport Type", "UINT8", "1", "16", "8", "Indicates the SIP transport Type.\n1:UDP\n2:TCP"], "3": ["SIP Message Type", "UINT8", "1", "24", "8", "Indicates the SIP message Type.\n0:Request\n1:Response"], "4": ["SIP Method", "UINT8", "1", "32", "8", "Indicates the SIP Message ID.\n0:METHOD_SIP_REGISTER\n1:METHOD_SIP_INVITE\n2:METHOD_SIP_REFER\n3:METHOD_SIP_UPDATE\n4:METHOD_SIP_CANCEL\n5:METHOD_SIP_MESSAGE\n6:METHOD_SIP_ACK\n7:METHOD_SIP_BYE\n8:METHOD_SIP_OPTIONS\n9:METHOD_SIP_SUBSCRIBE\n10:METHOD_SIP_NOTIFY\n11:METHOD_SIP_PUBLISH\n12:METHOD_SIP_INFO\n13:METHOD_SIP_PRACK"], "5": ["SIP Response Code", "UINT16", "1", "40", "16", "Indicates the SIP response Code(Refer to RFC3261)."], "6": ["Source IP", "INT8", "64", "56", "512", "Indicates the source IP address of SIP message."], "7": ["Destination IP", "INT8", "64", "568", "512", "Indicates the destination IP address of SIP message."], "8": ["Call ID", "UINT8", "128", "1080", "1024", "Indicates the call ID."], "9": ["Reason Text", "UINT8", "128", "2104", "1024", "Indicates the string in Reason Header Field."], "10": ["Warning Text", "UINT8", "128", "3128", "1024", "Indicates the string in Warning Header Field."], "11": ["User Agent Text", "UINT8", "128", "4152", "1024", "Indicates the string in User Agent Header Field."], "12": ["Codec Info", "UINT8", "256", "5176", "2048", "Indicates the SDP codec information in string form.\n\"<pt>;<codec>,<pt>;<codec>,... ...\"\ncodec:\n0:Others\n1:AMR\n2:AMR_WB\n3:EVS\n4:PCMA\n5:PCMU\n21:H263\n22:H264\n23:H265\n31:T140\n32:RED\n41:Telephone-event/8000\n42:Telephone-event/16000"], "13": ["Audio Port", "UINT16", "1", "7224", "16", "Indicates the audio port number in SDP body."], "14": ["Video Port", "UINT16", "1", "7240", "16", "Indicates the video port number in SDP body."], "15": ["Audio AS", "UINT16", "1", "7256", "16", "Indicates the audio AS in SDP body."], "16": ["Video AS", "UINT16", "1", "7272", "16", "Indicates the video AS in SDP body."], "17": ["Session AS", "UINT16", "1", "7288", "16", "Indicates the session AS in SDP body."], "18": ["SIP Message Length", "UINT16", "1", "7304", "16", "Length of the SIP message.\nrange[0, 8192]"], "19": ["SIP Message", "UINT8", "N", "7320", "VAR", "N := SIP Message Length\nSIP Message OCTET STRING(SIZE (1..8192))\nRaw SIP Message"]}}, "IMS_SIP_Message_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SIP Message": "SIP Message Length"}, "Name": "IMS_SIP_Message_Info_V2", "Data": {"0": ["Direction", "UINT8", "1", "0", "8", "Indicates the direction of SIP Message.\n0: UE to Network\n1: Network to UE"], "1": ["Rat Information", "UINT8", "1", "8", "8", "Indicates Rat information.\n0:LTE\n1:NR\n2:Wifi\n3:Others"], "2": ["Transport Type", "UINT8", "1", "16", "8", "Indicates the SIP transport Type.\n1:UDP\n2:TCP"], "3": ["SIP Message Type", "UINT8", "1", "24", "8", "Indicates the SIP message Type.\n0:Request\n1:Response"], "4": ["SIP Method", "UINT8", "1", "32", "8", "Indicates the SIP Message ID.\n0:METHOD_SIP_REGISTER\n1:METHOD_SIP_INVITE\n2:METHOD_SIP_REFER\n3:METHOD_SIP_UPDATE\n4:METHOD_SIP_CANCEL\n5:METHOD_SIP_MESSAGE\n6:METHOD_SIP_ACK\n7:METHOD_SIP_BYE\n8:METHOD_SIP_OPTIONS\n9:METHOD_SIP_SUBSCRIBE\n10:METHOD_SIP_NOTIFY\n11:METHOD_SIP_PUBLISH\n12:METHOD_SIP_INFO\n13:METHOD_SIP_PRACK"], "5": ["SIP Response Code", "UINT16", "1", "40", "16", "Indicates the SIP response Code(Refer to RFC3261)."], "6": ["Request Line", "UINT8", "512", "56", "4096", "The first line of a SIP message"], "7": ["Source IP", "INT8", "64", "4152", "512", "Indicates the source IP address of SIP message."], "8": ["Destination IP", "INT8", "64", "4664", "512", "Indicates the destination IP address of SIP message."], "9": ["Call ID", "UINT8", "128", "5176", "1024", "Indicates the call ID."], "10": ["CSeq", "UINT16", "1", "6200", "16", "Indicates the CSeq of the SIP message"], "11": ["Reason Text", "UINT8", "128", "6216", "1024", "Indicates the string in Reason Header Field."], "12": ["Warning Text", "UINT8", "128", "7240", "1024", "Indicates the string in Warning Header Field."], "13": ["User Agent Text", "UINT8", "128", "8264", "1024", "Indicates the string in User Agent Header Field."], "14": ["Codec Info", "UINT8", "256", "9288", "2048", "Indicates the SDP codec information in string form.\n\"<pt>;<codec>,<pt>;<codec>,... ...\"\ncodec:\n0:Others\n1:AMR\n2:AMR_WB\n3:EVS\n4:PCMA\n5:PCMU\n21:H263\n22:H264\n23:H265\n31:T140\n32:RED\n41:Telephone-event/8000\n42:Telephone-event/16000"], "15": ["Audio Port", "UINT16", "1", "11336", "16", "Indicates the audio port number in SDP body."], "16": ["Video Port", "UINT16", "1", "11352", "16", "Indicates the video port number in SDP body."], "17": ["Audio AS", "UINT16", "1", "11368", "16", "Indicates the audio AS in SDP body."], "18": ["Video AS", "UINT16", "1", "11384", "16", "Indicates the video AS in SDP body."], "19": ["Session AS", "UINT16", "1", "11400", "16", "Indicates the session AS in SDP body."], "20": ["SIP Message Length", "UINT16", "1", "11416", "16", "Length of the SIP message.\nrange[0, 8192]"], "21": ["SIP Message", "UINT8", "N", "11432", "VAR", "N := SIP Message Length\nSIP Message OCTET STRING(SIZE (1..8192))\nRaw SIP Message"]}}}},
+ Public JSON end */
+// Checksum : [111e1e24d745a00ea214ec3531621ab3]
diff --git a/mcu/interface/service/icd/ipdata/IPDATA_OTA_Packet.h b/mcu/interface/service/icd/ipdata/IPDATA_OTA_Packet.h
new file mode 100644
index 0000000..b484ba3
--- /dev/null
+++ b/mcu/interface/service/icd/ipdata/IPDATA_OTA_Packet.h
@@ -0,0 +1,59 @@
+// ICD Header Format v3
+// Name : IPDATA_OTA_Packet
+// Category : IPDATA
+// Layer : IPDATA
+// Type : RECORD
+// Code : 0x2300
+// Version : t-internal-ipdata-icd-draft1
+
+#ifndef _IPDATA_OTA_PACKET_H
+#define _IPDATA_OTA_PACKET_H
+
+#include "icd_codes.h"
+
+
+#define ICD_IPDATA_OTA_PACKET 0x2300
+
+#define ICD_IPDATA_IPDATA_OTA_PACKET_INFO_V1 1
+
+#define MAX_ICD_IPDATA_OTA_PACKET_STRUCT_V1_PACKET_SIZE 8192
+
+#define ICD_IPDATA_OTA_PACKET_STRUCT_V1_MAX_SIZE 8204
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 application_type:4; // Indicates the IP packet application type
+ // 0: Others
+ // 1: DNS
+ // 2: NAT-KeepAlive/ISAKMP
+ // 3: SIP
+ // 4: RTP
+ kal_uint32 source:1; // Indicates the source of the packet
+ // 0:Cellular
+ // 1:Wifi
+ kal_uint32 direction:1; // Indicates the direction of the packet
+ // 1:Downlink
+ // 2:Uplink
+ kal_uint32 reserved:18;
+ kal_uint32 interface_id; // Indicates network interface ID
+ kal_uint32 packet_size; // Indicates the IP packet size
+ // range[0, 8192]
+ kal_uint8 packet_data[FLEXIBLE_ARRAY_SIZE]; // N := Packet Size
+ // IP Packet OCTET STRING(SIZE (1..8192))
+ // Raw IP Packet
+} icd_ipdata_ota_packet_struct_v1;
+
+typedef icd_ipdata_ota_packet_struct_v1 icd_ipdata_ota_packet_struct;
+
+
+#endif /* _IPDATA_OTA_PACKET_H */
+
+
+/* Public JSON start
+"IPDATA_OTA_Packet": {"info": {"Category": "IPDATA", "Layer": "IPDATA", "Code": "0x2300", "Name": "IPDATA_OTA_Packet", "Type": "RECORD", "Desc": "The log is generated every time an IP packet is sent or received.\n"}, "table": {"IPDATA_OTA_Packet": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "IPDATA_OTA_Packet_Versions", "1", "8", "VAR", ""]}, "Name": "IPDATA_OTA_Packet"}, "IPDATA_OTA_Packet_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IPDATA_OTA_Packet_Info_V1", ""]}, "Name": "IPDATA_OTA_Packet_Versions"}, "IPDATA_OTA_Packet_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Packet Data": "Packet Size"}, "Name": "IPDATA_OTA_Packet_Info_V1", "Data": {"0": ["Application Type", "UINT32", "1", "0", "4", "Indicates the IP packet application type\n0: Others\n1: DNS\n2: NAT-KeepAlive/ISAKMP\n3: SIP\n4: RTP"], "1": ["Source", "UINT32", "1", "4", "1", "Indicates the source of the packet\n0:Cellular\n1:Wifi"], "2": ["Direction", "UINT32", "1", "5", "1", "Indicates the direction of the packet\n1:Downlink\n2:Uplink"], "3": ["Reserved", "UINT32", "1", "6", "18", ""], "4": ["Reserved", "UINT32", "1", "24", "32", ""], "5": ["Packet Size", "UINT32", "1", "56", "32", "Indicates the IP packet size\nrange[0, 8192]"], "6": ["Packet Data", "UINT8", "N", "88", "VAR", "N := Packet Size\nIP Packet OCTET STRING(SIZE (1..8192))\nRaw IP Packet"]}}}},
+ Public JSON end */
+
+/* Internal JSON start
+"IPDATA_OTA_Packet": {"info": {"Category": "IPDATA", "Layer": "IPDATA", "Code": "0x2300", "Name": "IPDATA_OTA_Packet", "Type": "RECORD", "Desc": "The log is generated every time an IP packet is sent or received.\n"}, "table": {"IPDATA_OTA_Packet": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "IPDATA_OTA_Packet_Versions", "1", "8", "VAR", ""]}, "Name": "IPDATA_OTA_Packet"}, "IPDATA_OTA_Packet_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "IPDATA_OTA_Packet_Info_V1", ""]}, "Name": "IPDATA_OTA_Packet_Versions"}, "IPDATA_OTA_Packet_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Packet Data": "Packet Size"}, "Name": "IPDATA_OTA_Packet_Info_V1", "Data": {"0": ["Application Type", "UINT32", "1", "0", "4", "Indicates the IP packet application type\n0: Others\n1: DNS\n2: NAT-KeepAlive/ISAKMP\n3: SIP\n4: RTP"], "1": ["Source", "UINT32", "1", "4", "1", "Indicates the source of the packet\n0:Cellular\n1:Wifi"], "2": ["Direction", "UINT32", "1", "5", "1", "Indicates the direction of the packet\n1:Downlink\n2:Uplink"], "3": ["Reserved", "UINT32", "1", "6", "18", ""], "4": ["Interface ID", "UINT32", "1", "24", "32", "Indicates network interface ID"], "5": ["Packet Size", "UINT32", "1", "56", "32", "Indicates the IP packet size\nrange[0, 8192]"], "6": ["Packet Data", "UINT8", "N", "88", "VAR", "N := Packet Size\nIP Packet OCTET STRING(SIZE (1..8192))\nRaw IP Packet"]}}}},
+ Internal JSON end */
+// Checksum : [12e56049fc2272f42028b7a08e96a137]
diff --git a/mcu/interface/service/icd/nl1/NL1_AWV_Measurement.h b/mcu/interface/service/icd/nl1/NL1_AWV_Measurement.h
new file mode 100644
index 0000000..9c25d5b
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_AWV_Measurement.h
@@ -0,0 +1,46 @@
+// ICD Header Format v3
+// Name : NL1_AWV_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9032
+// Version : V1.3rc1
+
+#ifndef _NL1_AWV_MEASUREMENT_H
+#define _NL1_AWV_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_AWV_MEASUREMENT 0x9032
+
+#define ICD_NL1_NL1_AWV_MEAS_INFO_V1 1
+
+#define ICD_NL1_AWV_MEAS_INFO_STRUCT_V1_MAX_SIZE 44
+
+typedef struct {
+ kal_uint16 mi; // U5.10 format
+ kal_uint16 reserved;
+ kal_uint16 snr[4]; // SNR of 4 antennas, in S6.9 dB format
+ kal_uint16 rsrp[4]; // RSRP of 4 antennas, in S8.7 dB format
+} nl1_awv_antenna_meas_v1;
+
+typedef nl1_awv_antenna_meas_v1 nl1_awv_antenna_meas;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 beam_identifier:6; // range[1, 63]
+ kal_uint32 reserved:18;
+ nl1_awv_antenna_meas polarity[2];
+} icd_nl1_awv_meas_info_struct_v1;
+
+typedef icd_nl1_awv_meas_info_struct_v1 icd_nl1_awv_meas_info_struct;
+
+
+#endif /* _NL1_AWV_MEASUREMENT_H */
+
+
+/* Internal JSON start
+"NL1_AWV_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9032", "Name": "NL1_AWV_Measurement", "Type": "RECORD", "Desc": "The log is generated every 100 ms.\n"}, "table": {"NL1_AWV_Meas_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_AWV_Meas_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_AWV_Meas_Info"}, "NL1_AWV_Meas_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_AWV_Meas_Info_V1", ""]}, "Name": "NL1_AWV_Meas_Info_Versions"}, "NL1_AWV_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Beam Identifier", "UINT32", "1", "0", "6", "range[1, 63]"], "1": ["Reserved", "UINT32", "1", "6", "18", ""], "2": ["Polarity", "NL1_AWV_Antenna_Meas_V1", "2", "24", "320", ""]}, "Name": "NL1_AWV_Meas_Info_V1"}, "NL1_AWV_Antenna_Meas_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MI", "UINT16", "1", "0", "16", "U5.10 format"], "1": ["Reserved", "UINT16", "1", "16", "16", ""], "2": ["SNR", "UINT16", "4", "32", "64", "SNR of 4 antennas, in S6.9 dB format"], "3": ["RSRP", "UINT16", "4", "96", "64", "RSRP of 4 antennas, in S8.7 dB format"]}, "Name": "NL1_AWV_Antenna_Meas_V1"}}},
+ Internal JSON end */
+// Checksum : [b7fba5608bc5087038da49dabfacc726]
diff --git a/mcu/interface/service/icd/nl1/NL1_AWV_Report.h b/mcu/interface/service/icd/nl1/NL1_AWV_Report.h
new file mode 100644
index 0000000..30ba059
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_AWV_Report.h
@@ -0,0 +1,46 @@
+// ICD Header Format v3
+// Name : NL1_AWV_Report
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9031
+// Version : V1.3
+
+#ifndef _NL1_AWV_REPORT_H
+#define _NL1_AWV_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_AWV_REPORT 0x9031
+
+#define ICD_NL1_NL1_AWV_INFO_V1 1
+
+#define ICD_NL1_AWV_INFO_STRUCT_V1_MAX_SIZE 44
+
+typedef struct {
+ kal_uint16 antenna_mask;
+ kal_uint16 reserved;
+ kal_uint8 antenna_awv[16]; // AWV of Ant0 to Ant15
+} nl1_awv_antenna_v1;
+
+typedef nl1_awv_antenna_v1 nl1_awv_antenna;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 beam_identifier:6; // range[1, 63]
+ kal_uint32 head_id:2; // range[0, 2]
+ kal_uint32 reserved:16;
+ nl1_awv_antenna polarity[2];
+} icd_nl1_awv_info_struct_v1;
+
+typedef icd_nl1_awv_info_struct_v1 icd_nl1_awv_info_struct;
+
+
+#endif /* _NL1_AWV_REPORT_H */
+
+
+/* Internal JSON start
+"NL1_AWV_Report": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9031", "Name": "NL1_AWV_Report", "Type": "RECORD", "Desc": "The log is generated every 100 ms.\n"}, "table": {"NL1_AWV_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_AWV_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_AWV_Info"}, "NL1_AWV_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_AWV_Info_V1", ""]}, "Name": "NL1_AWV_Info_Versions"}, "NL1_AWV_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Beam Identifier", "UINT32", "1", "0", "6", "range[1, 63]"], "1": ["Head Id", "UINT32", "1", "6", "2", "range[0, 2]"], "2": ["Reserved", "UINT32", "1", "8", "16", ""], "3": ["Polarity", "NL1_AWV_Antenna_V1", "2", "24", "320", ""]}, "Name": "NL1_AWV_Info_V1"}, "NL1_AWV_Antenna_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Antenna Mask", "UINT16", "1", "0", "16", ""], "1": ["Reserved", "UINT16", "1", "16", "16", ""], "2": ["Antenna AWV", "UINT8", "16", "32", "128", "AWV of Ant0 to Ant15"]}, "Name": "NL1_AWV_Antenna_V1"}}},
+ Internal JSON end */
+// Checksum : [6d96b1f65c36d0b318e646c6d5f9ad19]
diff --git a/mcu/interface/service/icd/nl1/NL1_BFD_Information.h b/mcu/interface/service/icd/nl1/NL1_BFD_Information.h
new file mode 100644
index 0000000..08c93dd
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_BFD_Information.h
@@ -0,0 +1,55 @@
+// ICD Header Format v3
+// Name : NL1_BFD_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9027
+// Version : V1.3
+
+#ifndef _NL1_BFD_INFORMATION_H
+#define _NL1_BFD_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_BFD_INFORMATION 0x9027
+
+#define ICD_NL1_NL1_BFD_INFORMATION_V1 1
+
+#define MAX_ICD_NL1_BFD_INFORMATION_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_BFD_INFORMATION_STRUCT_V1_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 is_first_beam_valid:1; // 0: invalid, 1: valid
+ kal_uint32 first_beam_type:1; // 0: SSB, 1: CSI
+ kal_uint32 first_beam_id:8; // CSI-RS id or SSB index
+ kal_uint32 is_second_beam_valid:1; // 0: invalid, 1: valid
+ kal_uint32 second_beam_type:1; // 0: SSB, 1: CSI
+ kal_uint32 second_beam_id:8; // CSI-RS id or SSB index
+ kal_uint32 reserved:12;
+ kal_int16 first_beam_snr; // SNR of the first beam. unit: dB
+ kal_int16 second_beam_snr; // SNR of the second beam. unit: dB
+} nl1_bfd_meas_record_v1;
+
+typedef nl1_bfd_meas_record_v1 nl1_bfd_meas_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ nl1_bfd_meas_record bfd_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_bfd_information_struct_v1;
+
+typedef icd_nl1_bfd_information_struct_v1 icd_nl1_bfd_information_struct;
+
+
+#endif /* _NL1_BFD_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_BFD_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9027", "Name": "NL1_BFD_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_BFD_Information": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_BFD_Information_Versions", "1", "8", "VAR", "Version of NL1_BFD_Information"]}, "Name": "NL1_BFD_Information"}, "NL1_BFD_Information_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_BFD_Information_V1", "Information of BFD (version 1)"]}, "Name": "NL1_BFD_Information_Versions"}, "NL1_BFD_Information_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"BFD Measurement records": "Number of Records"}, "Name": "NL1_BFD_Information_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["BFD Measurement records", "NL1_BFD_Meas_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_BFD_Meas_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Is first beam valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["First beam type", "UINT32", "1", "1", "1", "0: SSB, 1: CSI"], "2": ["First beam id", "UINT32", "1", "2", "8", "CSI-RS id or SSB index"], "3": ["Is second beam valid", "UINT32", "1", "10", "1", "0: invalid, 1: valid"], "4": ["Second beam type", "UINT32", "1", "11", "1", "0: SSB, 1: CSI"], "5": ["Second beam id", "UINT32", "1", "12", "8", "CSI-RS id or SSB index"], "6": ["Reserved", "UINT32", "1", "20", "12", ""], "7": ["First beam SNR", "INT16", "1", "32", "16", "SNR of the first beam. unit: dB"], "8": ["Second beam SNR", "INT16", "1", "48", "16", "SNR of the second beam. unit: dB"]}, "Name": "NL1_BFD_Meas_Record_V1"}}},
+ Public JSON end */
+// Checksum : [faf9990792a3dbb1af76b86500e0387a]
diff --git a/mcu/interface/service/icd/nl1/NL1_BM_Information.h b/mcu/interface/service/icd/nl1/NL1_BM_Information.h
new file mode 100644
index 0000000..16f7e8a
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_BM_Information.h
@@ -0,0 +1,62 @@
+// ICD Header Format v3
+// Name : NL1_BM_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9024
+// Version : V1.3
+
+#ifndef _NL1_BM_INFORMATION_H
+#define _NL1_BM_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_BM_INFORMATION 0x9024
+
+#define ICD_NL1_NL1_BM_INFORMATION_V1 1
+
+#define MAX_ICD_NL1_BM_INFORMATION_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_BM_INFORMATION_STRUCT_V1_MAX_SIZE 484
+
+typedef struct {
+ kal_uint32 csi_report_config_id:8; // ID of CSI report config
+ kal_uint32 report_quantity:1; // 0: CRI RSRP, 1: SSB RSRP
+ kal_uint32 best_beam_id:8; // Best beam NZP-CSI-RS id or SSB index
+ kal_uint32 second_best_beam_id:8; // 2nd Best beam NZP-CSI-RS id or SSB index
+ kal_uint32 reserved:7;
+ kal_uint32 third_best_beam_id:8; // 3rd Best beam NZP-CSI-RS id or SSB index
+ kal_uint32 fourth_best_beam_id:8; // 4th Best beam NZP-CSI-RS id or SSB index
+ kal_uint32 reserved_1:16;
+ kal_int16 best_beam_snr; // SNR of the best beam. unit: dB
+ kal_int16 second_best_beam_snr; // SNR of the 2nd best beam. unit: dB
+ kal_int16 third_best_beam_snr; // SNR of the 3rd best beam. unit: dB
+ kal_int16 fourth_best_beam_snr; // SNR of the 4th best beam. unit: dB
+ kal_int16 best_beam_rsrp; // RSRP of the best beam. unit: dBm
+ kal_int16 second_best_beam_rsrp; // RSRP of the 2nd best beam. unit: dBm
+ kal_int16 third_best_beam_rsrp; // RSRP of the 3rd best beam. unit: dBm
+ kal_int16 fourth_best_beam_rsrp; // RSRP of the 4th best beam. unit: dBm
+} nl1_bm_meas_record_v1;
+
+typedef nl1_bm_meas_record_v1 nl1_bm_meas_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ nl1_bm_meas_record bm_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_bm_information_struct_v1;
+
+typedef icd_nl1_bm_information_struct_v1 icd_nl1_bm_information_struct;
+
+
+#endif /* _NL1_BM_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_BM_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9024", "Name": "NL1_BM_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_BM_Information": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_BM_Information_Versions", "1", "8", "VAR", "Version of NL1_BM_Information"]}, "Name": "NL1_BM_Information"}, "NL1_BM_Information_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_BM_Information_V1", "Information of Beam Management (version 1)"], "1": ["2", "NL1_BM_Information_V2", "Information of Beam Management (version 2)"], "2": ["3", "NL1_BM_Information_V3", "Information of Beam Management (version 3)"], "3": ["4", "NL1_BM_Information_V4", "Information of Beam Management (version 4)"]}, "Name": "NL1_BM_Information_Versions"}, "NL1_BM_Information_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"BM Measurement records": "Number of Records"}, "Name": "NL1_BM_Information_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["BM Measurement records", "NL1_BM_Meas_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_BM_Information_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"BM Measurement records": "Number of Records"}, "Name": "NL1_BM_Information_V2", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["BM Measurement records", "NL1_BM_Meas_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_BM_Information_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"BM Measurement records": "Number of Records"}, "Name": "NL1_BM_Information_V3", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["BM Measurement records", "NL1_BM_Meas_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_BM_Information_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"BM Measurement records": "Number of Records"}, "Name": "NL1_BM_Information_V4", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["BM Measurement records", "NL1_BM_Meas_Record_V4", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_BM_Meas_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CSI report config ID", "UINT32", "1", "0", "8", "ID of CSI report config"], "1": ["Report Quantity", "UINT32", "1", "8", "1", "0: CRI RSRP, 1: SSB RSRP"], "2": ["Best beam id", "UINT32", "1", "9", "8", "Best beam NZP-CSI-RS id or SSB index"], "3": ["Second Best beam id", "UINT32", "1", "17", "8", "2nd Best beam NZP-CSI-RS id or SSB index"], "4": ["Reserved", "UINT32", "1", "25", "7", ""], "5": ["Third Best beam id", "UINT32", "1", "32", "8", "3rd Best beam NZP-CSI-RS id or SSB index"], "6": ["Fourth Best beam id", "UINT32", "1", "40", "8", "4th Best beam NZP-CSI-RS id or SSB index"], "7": ["Reserved", "UINT32", "1", "48", "16", ""], "8": ["Best beam SNR", "INT16", "1", "64", "16", "SNR of the best beam. unit: dB"], "9": ["Second Best beam SNR", "INT16", "1", "80", "16", "SNR of the 2nd best beam. unit: dB"], "10": ["Third Best beam SNR", "INT16", "1", "96", "16", "SNR of the 3rd best beam. unit: dB"], "11": ["Fourth Best beam SNR", "INT16", "1", "112", "16", "SNR of the 4th best beam. unit: dB"], "12": ["Best beam RSRP", "INT16", "1", "128", "16", "RSRP of the best beam. unit: dBm"], "13": ["Second Best beam RSRP", "INT16", "1", "144", "16", "RSRP of the 2nd best beam. unit: dBm"], "14": ["Third Best beam RSRP", "INT16", "1", "160", "16", "RSRP of the 3rd best beam. unit: dBm"], "15": ["Fourth Best beam RSRP", "INT16", "1", "176", "16", "RSRP of the 4th best beam. unit: dBm"]}, "Name": "NL1_BM_Meas_Record_V1"}, "NL1_BM_Meas_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CSI report config ID", "UINT32", "1", "0", "8", "ID of CSI report config"], "1": ["Report Quantity", "UINT32", "1", "8", "1", "0: CRI RSRP, 1: SSB RSRP"], "2": ["Best beam id", "UINT32", "1", "9", "8", "Best beam NZP-CSI-RS id or SSB index"], "3": ["Second Best beam id", "UINT32", "1", "17", "8", "2nd Best beam NZP-CSI-RS id or SSB index"], "4": ["Reserved", "UINT32", "1", "25", "7", ""], "5": ["Third Best beam id", "UINT32", "1", "32", "8", "3rd Best beam NZP-CSI-RS id or SSB index"], "6": ["Fourth Best beam id", "UINT32", "1", "40", "8", "4th Best beam NZP-CSI-RS id or SSB index"], "7": ["Head Id", "UINT32", "1", "48", "2", "range[0, 2]"], "8": ["Reserved", "UINT32", "1", "50", "14", ""], "9": ["Best beam SNR", "INT16", "1", "64", "16", "SNR of the best beam. unit: dB"], "10": ["Second Best beam SNR", "INT16", "1", "80", "16", "SNR of the 2nd best beam. unit: dB"], "11": ["Third Best beam SNR", "INT16", "1", "96", "16", "SNR of the 3rd best beam. unit: dB"], "12": ["Fourth Best beam SNR", "INT16", "1", "112", "16", "SNR of the 4th best beam. unit: dB"], "13": ["Best beam RSRP", "INT16", "1", "128", "16", "RSRP of the best beam. unit: dBm"], "14": ["Second Best beam RSRP", "INT16", "1", "144", "16", "RSRP of the 2nd best beam. unit: dBm"], "15": ["Third Best beam RSRP", "INT16", "1", "160", "16", "RSRP of the 3rd best beam. unit: dBm"], "16": ["Fourth Best beam RSRP", "INT16", "1", "176", "16", "RSRP of the 4th best beam. unit: dBm"]}, "Name": "NL1_BM_Meas_Record_V2"}, "NL1_BM_Meas_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CSI report config ID", "UINT32", "1", "0", "8", "ID of CSI report config"], "1": ["Report Quantity", "UINT32", "1", "8", "1", "0: CRI RSRP, 1: SSB RSRP"], "2": ["Best beam id", "UINT32", "1", "9", "8", "Best beam NZP-CSI-RS id or SSB index"], "3": ["Second Best beam id", "UINT32", "1", "17", "8", "2nd Best beam NZP-CSI-RS id or SSB index"], "4": ["Reserved", "UINT32", "1", "25", "7", ""], "5": ["Third Best beam id", "UINT32", "1", "32", "8", "3rd Best beam NZP-CSI-RS id or SSB index"], "6": ["Fourth Best beam id", "UINT32", "1", "40", "8", "4th Best beam NZP-CSI-RS id or SSB index"], "7": ["Best Beam Head Id", "UINT32", "1", "48", "2", "range[0, 2]"], "8": ["Second Beam Head Id", "UINT32", "1", "50", "2", "range[0, 2]"], "9": ["Third Beam Head Id", "UINT32", "1", "52", "2", "range[0, 2]"], "10": ["Fourth Beam Head Id", "UINT32", "1", "54", "2", "range[0, 2]"], "11": ["Reserved", "UINT32", "1", "56", "8", ""], "12": ["Best beam SNR", "INT16", "1", "64", "16", "SNR of the best beam. unit: dB"], "13": ["Second Best beam SNR", "INT16", "1", "80", "16", "SNR of the 2nd best beam. unit: dB"], "14": ["Third Best beam SNR", "INT16", "1", "96", "16", "SNR of the 3rd best beam. unit: dB"], "15": ["Fourth Best beam SNR", "INT16", "1", "112", "16", "SNR of the 4th best beam. unit: dB"], "16": ["Best beam RSRP", "INT16", "1", "128", "16", "RSRP of the best beam. unit: dBm"], "17": ["Second Best beam RSRP", "INT16", "1", "144", "16", "RSRP of the 2nd best beam. unit: dBm"], "18": ["Third Best beam RSRP", "INT16", "1", "160", "16", "RSRP of the 3rd best beam. unit: dBm"], "19": ["Fourth Best beam RSRP", "INT16", "1", "176", "16", "RSRP of the 4th best beam. unit: dBm"]}, "Name": "NL1_BM_Meas_Record_V3"}, "NL1_BM_Meas_Record_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CSI report config ID", "UINT32", "1", "0", "8", "ID of CSI report config"], "1": ["Report Quantity", "UINT32", "1", "8", "1", "0: CRI RSRP, 1: SSB RSRP"], "2": ["Best beam id", "UINT32", "1", "9", "8", "Best beam NZP-CSI-RS id or SSB index"], "3": ["Second Best beam id", "UINT32", "1", "17", "8", "2nd Best beam NZP-CSI-RS id or SSB index"], "4": ["Reserved", "UINT32", "1", "25", "7", ""], "5": ["Third Best beam id", "UINT32", "1", "32", "8", "3rd Best beam NZP-CSI-RS id or SSB index"], "6": ["Fourth Best beam id", "UINT32", "1", "40", "8", "4th Best beam NZP-CSI-RS id or SSB index"], "7": ["Best Beam Head Id", "UINT32", "1", "48", "2", "range[0, 2]"], "8": ["Second Beam Head Id", "UINT32", "1", "50", "2", "range[0, 2]"], "9": ["Third Beam Head Id", "UINT32", "1", "52", "2", "range[0, 2]"], "10": ["Fourth Beam Head Id", "UINT32", "1", "54", "2", "range[0, 2]"], "11": ["Reserved", "UINT32", "1", "56", "8", ""], "12": ["Best beam SNR", "INT16", "1", "64", "16", "SNR of the best beam. unit: dB"], "13": ["Second Best beam SNR", "INT16", "1", "80", "16", "SNR of the 2nd best beam. unit: dB"], "14": ["Third Best beam SNR", "INT16", "1", "96", "16", "SNR of the 3rd best beam. unit: dB"], "15": ["Fourth Best beam SNR", "INT16", "1", "112", "16", "SNR of the 4th best beam. unit: dB"], "16": ["Best beam RSRP", "INT16", "1", "128", "16", "RSRP of the best beam. unit: dBm"], "17": ["Second Best beam RSRP", "INT16", "1", "144", "16", "RSRP of the 2nd best beam. unit: dBm"], "18": ["Third Best beam RSRP", "INT16", "1", "160", "16", "RSRP of the 3rd best beam. unit: dBm"], "19": ["Fourth Best beam RSRP", "INT16", "1", "176", "16", "RSRP of the 4th best beam. unit: dBm"], "20": ["Best Beam Rs Id", "UINT32", "1", "192", "8", "range[0, 191], SSB or CSI-RS ID"], "21": ["Second Best Beam Rs Id", "UINT32", "1", "200", "8", "range[0, 191], SSB or CSI-RS ID"], "22": ["Third Best Beam Rs Id", "UINT32", "1", "208", "8", "range[0, 191], SSB or CSI-RS ID"], "23": ["Fourth Best Beam Rs Id", "UINT32", "1", "216", "8", "range[0, 191], SSB or CSI-RS ID"]}, "Name": "NL1_BM_Meas_Record_V4"}}},
+ Public JSON end */
+// Checksum : [feab85aaa8393f30d9c269cd5c17ae56]
diff --git a/mcu/interface/service/icd/nl1/NL1_CSI_Report.h b/mcu/interface/service/icd/nl1/NL1_CSI_Report.h
new file mode 100644
index 0000000..c054a6d
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_CSI_Report.h
@@ -0,0 +1,131 @@
+// ICD Header Format v3
+// Name : NL1_CSI_Report
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9015
+// Version : V1.3
+
+#ifndef _NL1_CSI_REPORT_H
+#define _NL1_CSI_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_CSI_REPORT 0x9015
+
+#define ICD_NL1_NL1_CSI_REPORT_V2 2
+
+#define MAX_ICD_NL1_CSI_REPORT_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_CSI_REPORT_STRUCT_V2_MAX_SIZE 644
+
+typedef struct {
+ kal_uint32 subband_0:4; // range[0, 15]
+ kal_uint32 subband_1:4; // range[0, 15]
+ kal_uint32 subband_2:4; // range[0, 15]
+ kal_uint32 subband_3:4; // range[0, 15]
+ kal_uint32 subband_4:4; // range[0, 15]
+ kal_uint32 subband_5:4; // range[0, 15]
+ kal_uint32 subband_6:4; // range[0, 15]
+ kal_uint32 subband_7:4; // range[0, 15]
+ kal_uint32 subband_8:4; // range[0, 15]
+ kal_uint32 subband_9:4; // range[0, 15]
+ kal_uint32 subband_10:4; // range[0, 15]
+ kal_uint32 subband_11:4; // range[0, 15]
+ kal_uint32 subband_12:4; // range[0, 15]
+ kal_uint32 subband_13:4; // range[0, 15]
+ kal_uint32 subband_14:4; // range[0, 15]
+ kal_uint32 subband_15:4; // range[0, 15]
+ kal_uint32 subband_16:4; // range[0, 15]
+ kal_uint32 subband_17:4; // range[0, 15]
+ kal_uint32 reserved:24;
+} nl1_csi_subband_pmi_x2_list_v1;
+
+typedef nl1_csi_subband_pmi_x2_list_v1 nl1_csi_subband_pmi_x2_list;
+
+typedef struct {
+ kal_uint32 subband_0:2; // range[0, 3]
+ kal_uint32 subband_1:2; // range[0, 3]
+ kal_uint32 subband_2:2; // range[0, 3]
+ kal_uint32 subband_3:2; // range[0, 3]
+ kal_uint32 subband_4:2; // range[0, 3]
+ kal_uint32 subband_5:2; // range[0, 3]
+ kal_uint32 subband_6:2; // range[0, 3]
+ kal_uint32 subband_7:2; // range[0, 3]
+ kal_uint32 subband_8:2; // range[0, 3]
+ kal_uint32 subband_9:2; // range[0, 3]
+ kal_uint32 subband_10:2; // range[0, 3]
+ kal_uint32 subband_11:2; // range[0, 3]
+ kal_uint32 subband_12:2; // range[0, 3]
+ kal_uint32 subband_13:2; // range[0, 3]
+ kal_uint32 subband_14:2; // range[0, 3]
+ kal_uint32 subband_15:2; // range[0, 3]
+ kal_uint32 subband_16:2; // range[0, 3]
+ kal_uint32 subband_17:2; // range[0, 3]
+ kal_uint32 reserved:28;
+} nl1_csi_subband_cqi_list_v1;
+
+typedef nl1_csi_subband_cqi_list_v1 nl1_csi_subband_cqi_list;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence time of this record.
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence time of this record.
+ // range[0, 9]
+ kal_uint32 slot:3; // This is the slot index within the subframe.
+ // range[0, 7]
+ kal_uint32 cri_valid:1; // CRI value valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 cri_value:6; // CRI value
+ // range[0, 63]
+ kal_uint32 li_valid:1; // LI value valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 li_value:2; // LI value
+ // range[0, 3]
+ kal_uint32 wb_cqi0_valid:1; // WB CQI value of 1st TB valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 wb_cqi0_value:4; // CQI value
+ // range[0, 15]
+ kal_uint32 wb_cqi1_valid:1; // WB CQI value of 2nd TB valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 wb_cqi1_value:4; // CQI value
+ // range[0, 15]
+ kal_uint32 ri_valid:1; // RI value valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 ri_value:8; // RI value
+ // range[0, 255]
+ kal_uint32 wb_pmi_x1_valid:1; // WB PMI X1 field valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 wb_pmi_x1_value:16; // WB PMI X1 value
+ // range[0, 65535]
+ kal_uint32 wb_pmi_x2_valid:1; // WB PMI X2 field valid or not, 0: invalid, 1: valid
+ // range[0, 1]
+ kal_uint32 wb_pmi_x2_value:4; // WB PMI X2 value
+ // range[0, 15]
+ kal_uint32 subband_mask:18; // The bitmap indicating reported subbands
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:7;
+ nl1_csi_subband_cqi_list differential_subband_cqi; // The subband differential value defined in 38.214 table 5.2.2.1-1
+ nl1_csi_subband_pmi_x2_list subband_pmi_x2;
+} nl1_csi_record_v2;
+
+typedef nl1_csi_record_v2 nl1_csi_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:19;
+ nl1_csi_record csi_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_csi_report_struct_v2;
+
+typedef icd_nl1_csi_report_struct_v2 icd_nl1_csi_report_struct;
+
+
+#endif /* _NL1_CSI_REPORT_H */
+
+
+/* Public JSON start
+"NL1_CSI_Report": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9015", "Name": "NL1_CSI_Report", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_CSI_Report": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_CSI_Report_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_CSI_Report"}, "NL1_CSI_Report_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_CSI_Report_V1", ""], "1": ["2", "NL1_CSI_Report_V2", ""]}, "Name": "NL1_CSI_Report_Versions"}, "NL1_CSI_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Csi Records": "Number of Records"}, "Name": "NL1_CSI_Report_V1", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[0, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["Csi Records", "NL1_CSI_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_CSI_Report_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Csi Records": "Number of Records"}, "Name": "NL1_CSI_Report_V2", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[0, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["Csi Records", "NL1_CSI_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_CSI_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence time of this record.\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence time of this record.\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within the subframe.\nrange[0, 7]"], "3": ["CRI Valid", "UINT32", "1", "17", "1", "CRI value valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "4": ["CRI Value", "UINT32", "1", "18", "6", "CRI value\nrange[0, 63]"], "5": ["LI Valid", "UINT32", "1", "24", "1", "LI value valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "6": ["LI Value", "UINT32", "1", "25", "2", "LI value\nrange[0, 3]"], "7": ["WB CQI0 Valid", "UINT32", "1", "27", "1", "WB CQI value of 1st TB valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "8": ["WB CQI0 Value", "UINT32", "1", "28", "4", "CQI value\nrange[0, 15]"], "9": ["WB CQI1 Valid", "UINT32", "1", "32", "1", "WB CQI value of 2nd TB valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "10": ["WB CQI1 Value", "UINT32", "1", "33", "4", "CQI value\nrange[0, 15]"], "11": ["RI Valid", "UINT32", "1", "37", "1", "RI value valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "12": ["RI Value", "UINT32", "1", "38", "8", "RI value\nrange[0, 255]"], "13": ["WB PMI X1 Valid", "UINT32", "1", "46", "1", "WB PMI X1 field valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "14": ["WB PMI X1 Value", "UINT32", "1", "47", "16", "WB PMI X1 value\nrange[0, 65535]"], "15": ["WB PMI X2 Valid", "UINT32", "1", "63", "1", "WB PMI X2 field valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "16": ["WB PMI X2 Value", "UINT32", "1", "64", "4", "WB PMI X2 value\nrange[0, 15]"], "17": ["Subband Mask", "UINT32", "1", "68", "18", "The bitmap indicating reported subbands"], "18": ["Reserved", "UINT32", "1", "86", "10", ""], "19": ["Differential Subband CQI", "NL1_CSI_Subband_CQI_List_V1", "1", "96", "64", "The subband differential value defined in 38.214 table 5.2.2.1-1"], "20": ["Subband PMI X2", "NL1_CSI_Subband_PMI_X2_List_V1", "1", "160", "96", ""]}, "Name": "NL1_CSI_Record_V1"}, "NL1_CSI_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence time of this record.\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence time of this record.\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within the subframe.\nrange[0, 7]"], "3": ["CRI Valid", "UINT32", "1", "17", "1", "CRI value valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "4": ["CRI Value", "UINT32", "1", "18", "6", "CRI value\nrange[0, 63]"], "5": ["LI Valid", "UINT32", "1", "24", "1", "LI value valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "6": ["LI Value", "UINT32", "1", "25", "2", "LI value\nrange[0, 3]"], "7": ["WB CQI0 Valid", "UINT32", "1", "27", "1", "WB CQI value of 1st TB valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "8": ["WB CQI0 Value", "UINT32", "1", "28", "4", "CQI value\nrange[0, 15]"], "9": ["WB CQI1 Valid", "UINT32", "1", "32", "1", "WB CQI value of 2nd TB valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "10": ["WB CQI1 Value", "UINT32", "1", "33", "4", "CQI value\nrange[0, 15]"], "11": ["RI Valid", "UINT32", "1", "37", "1", "RI value valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "12": ["RI Value", "UINT32", "1", "38", "8", "RI value\nrange[0, 255]"], "13": ["WB PMI X1 Valid", "UINT32", "1", "46", "1", "WB PMI X1 field valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "14": ["WB PMI X1 Value", "UINT32", "1", "47", "16", "WB PMI X1 value\nrange[0, 65535]"], "15": ["WB PMI X2 Valid", "UINT32", "1", "63", "1", "WB PMI X2 field valid or not, 0: invalid, 1: valid\nrange[0, 1]"], "16": ["WB PMI X2 Value", "UINT32", "1", "64", "4", "WB PMI X2 value\nrange[0, 15]"], "17": ["Subband Mask", "UINT32", "1", "68", "18", "The bitmap indicating reported subbands"], "18": ["Carrier Index", "UINT32", "1", "86", "3", "range[0, 7]"], "19": ["Reserved", "UINT32", "1", "89", "7", ""], "20": ["Differential Subband CQI", "NL1_CSI_Subband_CQI_List_V1", "1", "96", "64", "The subband differential value defined in 38.214 table 5.2.2.1-1"], "21": ["Subband PMI X2", "NL1_CSI_Subband_PMI_X2_List_V1", "1", "160", "96", ""]}, "Name": "NL1_CSI_Record_V2"}, "NL1_CSI_Subband_CQI_List_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Subband 0", "UINT32", "1", "0", "2", "range[0, 3]"], "1": ["Subband 1", "UINT32", "1", "2", "2", "range[0, 3]"], "2": ["Subband 2", "UINT32", "1", "4", "2", "range[0, 3]"], "3": ["Subband 3", "UINT32", "1", "6", "2", "range[0, 3]"], "4": ["Subband 4", "UINT32", "1", "8", "2", "range[0, 3]"], "5": ["Subband 5", "UINT32", "1", "10", "2", "range[0, 3]"], "6": ["Subband 6", "UINT32", "1", "12", "2", "range[0, 3]"], "7": ["Subband 7", "UINT32", "1", "14", "2", "range[0, 3]"], "8": ["Subband 8", "UINT32", "1", "16", "2", "range[0, 3]"], "9": ["Subband 9", "UINT32", "1", "18", "2", "range[0, 3]"], "10": ["Subband 10", "UINT32", "1", "20", "2", "range[0, 3]"], "11": ["Subband 11", "UINT32", "1", "22", "2", "range[0, 3]"], "12": ["Subband 12", "UINT32", "1", "24", "2", "range[0, 3]"], "13": ["Subband 13", "UINT32", "1", "26", "2", "range[0, 3]"], "14": ["Subband 14", "UINT32", "1", "28", "2", "range[0, 3]"], "15": ["Subband 15", "UINT32", "1", "30", "2", "range[0, 3]"], "16": ["Subband 16", "UINT32", "1", "32", "2", "range[0, 3]"], "17": ["Subband 17", "UINT32", "1", "34", "2", "range[0, 3]"], "18": ["Reserved", "UINT32", "1", "36", "28", ""]}, "Name": "NL1_CSI_Subband_CQI_List_V1"}, "NL1_CSI_Subband_PMI_X2_List_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Subband 0", "UINT32", "1", "0", "4", "range[0, 15]"], "1": ["Subband 1", "UINT32", "1", "4", "4", "range[0, 15]"], "2": ["Subband 2", "UINT32", "1", "8", "4", "range[0, 15]"], "3": ["Subband 3", "UINT32", "1", "12", "4", "range[0, 15]"], "4": ["Subband 4", "UINT32", "1", "16", "4", "range[0, 15]"], "5": ["Subband 5", "UINT32", "1", "20", "4", "range[0, 15]"], "6": ["Subband 6", "UINT32", "1", "24", "4", "range[0, 15]"], "7": ["Subband 7", "UINT32", "1", "28", "4", "range[0, 15]"], "8": ["Subband 8", "UINT32", "1", "32", "4", "range[0, 15]"], "9": ["Subband 9", "UINT32", "1", "36", "4", "range[0, 15]"], "10": ["Subband 10", "UINT32", "1", "40", "4", "range[0, 15]"], "11": ["Subband 11", "UINT32", "1", "44", "4", "range[0, 15]"], "12": ["Subband 12", "UINT32", "1", "48", "4", "range[0, 15]"], "13": ["Subband 13", "UINT32", "1", "52", "4", "range[0, 15]"], "14": ["Subband 14", "UINT32", "1", "56", "4", "range[0, 15]"], "15": ["Subband 15", "UINT32", "1", "60", "4", "range[0, 15]"], "16": ["Subband 16", "UINT32", "1", "64", "4", "range[0, 15]"], "17": ["Subband 17", "UINT32", "1", "68", "4", "range[0, 15]"], "18": ["Reserved", "UINT32", "1", "72", "24", ""]}, "Name": "NL1_CSI_Subband_PMI_X2_List_V1"}}},
+ Public JSON end */
+// Checksum : [6361bf889a110bf0d17c56ca0c3131bb]
diff --git a/mcu/interface/service/icd/nl1/NL1_DCI_Information.h b/mcu/interface/service/icd/nl1/NL1_DCI_Information.h
new file mode 100644
index 0000000..858f0e6
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_DCI_Information.h
@@ -0,0 +1,168 @@
+// ICD Header Format v3
+// Name : NL1_DCI_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9009
+// Version : t-internal-nr-icd-draft3RC1-374-g05a1a3a
+
+#ifndef _NL1_DCI_INFORMATION_H
+#define _NL1_DCI_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_DCI_INFORMATION 0x9009
+
+#define ICD_NL1_NL1_DCI_INFO_CONTENT_V9 9
+
+#define MAX_ICD_NL1_DCI_INFO_STRUCT_V9_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_DCI_INFO_STRUCT_V9_MAX_SIZE 564
+
+typedef struct {
+ kal_uint32 dl_dci_valid:1; // Enum{0: Not valid,1: Valid}
+ kal_uint32 dci_format:1; // Enum{0: 1_0, 1: 1_1}
+ kal_uint32 resource_allocation_type:1; // Resource allocation type in freq domain.
+ // Enum{0: type 0, 1: type 1}
+ kal_uint32 start_rb:9; // The Start of RB of assigned PDSCH.
+ // range[0, 274]
+ kal_uint32 num_rb:9; // The length of assigned PDSCH RB.
+ // range[0, 275]
+ kal_uint32 pdsch_mapping_type:1; // Time domain PDSCH mapping type.
+ // Enum{0: type A, 1: type B}
+ kal_uint32 slot_offset_k0:6; // Slot offset for DCI and the assigned PDSCH.
+ // range[0, 32]
+ kal_uint32 sliv_start:4; // The start symbol index of assigned PDSCH.
+ // range[0, 13]
+ kal_uint32 sliv_length:4; // Symbol length of the assigned PDSCH.
+ // range[1, 14]
+ kal_uint32 vrb_to_prb_mapping:1; // Enum{0: Non-interleaved, 1: Interleaved}
+ kal_uint32 ndi_1:1; // Indicate new transmission or re-transmission
+ // for TB1.
+ kal_uint32 rv_1:2; // Redundancy version for TB1. Derive from MCS.
+ // range[0, 3]
+ kal_uint32 mcs_type_1:2; // MCS type for TB1.
+ // Enum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}
+ kal_uint32 ndi_2:1; // Indicate new transmission or re-transmission
+ // for TB2. Only valid for DCI format 1_1
+ // Only valid for DCI format 1_1 and when TB2
+ // is configured.
+ kal_uint32 rv_2:2; // Redundancy version for TB2. Derive from MCS.
+ // range[0, 3]
+ // Only valid for DCI format 1_1 and when TB2
+ // is configured.
+ kal_uint32 mcs_type_2:2; // MCS type for TB2.
+ // Only valid for DCI format 1_1 and when TB2
+ // is configured.
+ // Enum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}
+ kal_uint32 harq_id:4; // range[0, 15]
+ kal_uint32 counter_dai:2; // As described in 9.1.3 of TS 38.213.
+ kal_uint32 total_dai:2; // Specific for DCI format 1_1.
+ kal_uint32 pucch_tpc_command:2; // As defined in 7.2.1 of TS 38.213.
+ kal_uint32 number_of_cdm_groups:2; // range[1, 3]
+ // Specific for DCI format 1_1.
+ kal_uint32 minimum_schduling_offset_indicator:1;
+ kal_uint32 bandwidth_part_indicator:2; // Specific for DCI format 1_1.
+ kal_uint32 num_of_layers:2; // Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,
+ // 3: 4 layers}
+ kal_uint32 prb_bundling_size:2; // Enum{0: bundle size n2, 1: bundle size n4,
+ // 2: wideband}
+ kal_uint32 cbgti:8; // CBG transmission information. As defined in
+ // 5.1.7 of TS 38.214.
+ // Specific for DCI format 1_1.
+ kal_uint32 number_of_tb:2; // Received DL TB num. range[1, 2]
+ kal_uint32 mcs_index_1:5; // range[0, 31]
+ kal_uint32 mcs_index_2:5; // range[0, 31]
+ kal_uint32 pdsch_to_harq_feedback_timing_indicator:4; // K1 value mapped from PDSCH-TO-HARQ feedback
+ // timing indicator (38.213 9.2.3)
+ // range[1, 8]
+ kal_uint32 reserved:6;
+} nl1_dl_dci_info_record_v6;
+
+typedef nl1_dl_dci_info_record_v6 nl1_dl_dci_info_record;
+
+typedef struct {
+ kal_uint32 ul_grant_valid:1; // Enum{0: Not valid,1: Valid}
+ kal_uint32 dci_format:1; // Enum{0: 0_0,1: 0_1}
+ kal_uint32 resource_allocation_type:1; // Resource allocation type in freq domain.
+ // Enum{0: type 0, 1: type 1}
+ kal_uint32 start_rb:9; // The Start of RB for the assigned PUSCH.
+ // range[0, 274]
+ kal_uint32 num_rb:9; // The length of RB for the assigned PUSCH.
+ // range[0, 275]
+ kal_uint32 slot_offset_k2:6; // Slot offset for DCI and the corresponding PUSCH.
+ // range[0, 32]
+ kal_uint32 sliv_start:4; // The start symbol index of the corresponding
+ // PUSCH. range[0, 13]
+ kal_uint32 minimum_schduling_offset_indicator:1;
+ kal_uint32 sliv_length:4; // Symbol length of the corresponding PUSCH.
+ // range[1, 14]
+ kal_uint32 frequency_hopping_flag:1; // Enum{0:no frequency hopping,1: frequency hopping}
+ kal_uint32 modulation_type:3; // Modulation Order.
+ // Enum{0:BPSK,1:QPSK,2:16QAM,3:64QAM,4:256QAM}
+ kal_uint32 mcs_index:5; // range[0, 31]
+ kal_uint32 ndi:1; // Indicate new transmission or re-transmission.
+ kal_uint32 rv:2; // Derive from MCS, range[0, 3]
+ kal_uint32 harq_id:4; // range[0, 15]
+ kal_uint32 pusch_tpc_command:2; // TPC command for scheduled PUSCH as defined in
+ // 7.1.1 of TS 38.213.
+ kal_uint32 ul_sul_indicator:1; // As defined in 7.3.1.1.1 of TS38.212.
+ // 0: The non-supplementary uplink
+ // 1: The supplementary uplink
+ // Enum{0:Non-SUL,1:SUL}
+ kal_uint32 bandwidth_part_indicator:2; // Specific for DCI format 0_1.
+ kal_uint32 first_dai:2; // Specific for DCI format 0_1.
+ // As defined in 7.3.1.1.2 of TS38.212.
+ kal_uint32 second_dai:2; // Specific for DCI format 0_1.
+ // As defined in 7.3.1.1.2 of TS38.212.
+ kal_uint32 number_of_layers:2; // Enum{0:1 layer,1:2 layers,2:3 layers,3:4 layers}
+ kal_uint32 reserved:1;
+ kal_uint32 srs_resource_indicator:4; // range[0, 15]
+ kal_uint32 tpmi_indicator:3; // range[0, 5]
+ kal_uint32 reserved_1:1;
+ kal_uint32 srs_request:3; // As defined in 7.3.1.1 of TS38.212.
+ kal_uint32 csi_request:6; // range[0, 63]
+ kal_uint32 ul_cbgti:8; // UL CBG transmission information bitmap.
+ // MSB correspondes to CBG#0.
+ kal_uint32 beta_offset_indicator:2; // range[0, 3]
+ kal_uint32 dmrs_sequence_initialization:1; // range[0, 1]
+ kal_uint32 reserved_2:4;
+} nl1_ul_dci_info_record_v3;
+
+typedef nl1_ul_dci_info_record_v3 nl1_ul_dci_info_record;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence
+ // of this record. range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence
+ // of this record. range[0, 9]
+ kal_uint32 slot_index:3; // Slot index within this SF. range[0, 7]
+ kal_uint32 reserved:15;
+ nl1_ul_dci_info_record ul_dci_info;
+ nl1_dl_dci_info_record dl_dci_info;
+} nl1_dci_info_record_v6;
+
+typedef nl1_dci_info_record_v6 nl1_dci_info_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 phys_cell_id:10; // range[0, 1007]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 cell_group:1; // range[0, 1]
+ kal_uint32 cell_group_type:1; // Enum{0:MCG, 1:SCG}
+ kal_uint32 reserved:4;
+ nl1_dci_info_record dci_info[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_dci_info_struct_v9;
+
+typedef icd_nl1_dci_info_struct_v9 icd_nl1_dci_info_struct;
+
+
+#endif /* _NL1_DCI_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_DCI_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9009", "Name": "NL1_DCI_Information", "Type": "RECORD", "Desc": "The log is generated every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_DCI_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_DCI_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_DCI_Info"}, "NL1_DCI_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_DCI_Info_Content_V1", ""], "1": ["2", "NL1_DCI_Info_Content_V2", ""], "2": ["3", "NL1_DCI_Info_Content_V3", ""], "3": ["4", "NL1_DCI_Info_Content_V4", ""], "4": ["5", "NL1_DCI_Info_Content_V5", ""], "5": ["6", "NL1_DCI_Info_Content_V6", ""], "6": ["7", "NL1_DCI_Info_Content_V7", ""], "7": ["8", "NL1_DCI_Info_Content_V8", ""], "8": ["9", "NL1_DCI_Info_Content_V9", ""]}, "Name": "NL1_DCI_Info_Content_Versions"}, "NL1_DCI_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V1", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["DCI Info", "NL1_DCI_Info_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V2", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["DCI Info", "NL1_DCI_Info_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V3", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["DCI Info", "NL1_DCI_Info_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V4", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Number of Abnormal DCI", "UINT32", "1", "18", "6", "When decoding DCIs, some abnormal conditions may happen. For example, TBS is\nchanged but NDI is not inverted. The occurence of these conditions is\ncounted and reported in this field.\nrange[0, 63], value 63 means the number is equal to or greater than 63"], "4": ["DCI Info", "NL1_DCI_Info_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V5", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Cell Group", "UINT32", "1", "18", "1", "range[0, 1]"], "4": ["Reserved", "UINT32", "1", "19", "5", ""], "5": ["DCI Info", "NL1_DCI_Info_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V6", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Cell Group", "UINT32", "1", "18", "1", "range[0, 1]"], "4": ["Reserved", "UINT32", "1", "19", "5", ""], "5": ["DCI Info", "NL1_DCI_Info_Record_V4", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V7": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V7", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Cell Group", "UINT32", "1", "18", "1", "range[0, 1]"], "4": ["Reserved", "UINT32", "1", "19", "5", ""], "5": ["DCI Info", "NL1_DCI_Info_Record_V5", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V8": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V8", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Cell Group", "UINT32", "1", "18", "1", "range[0, 1]"], "4": ["Cell Group Type", "UINT32", "1", "19", "1", "Enum{0:MCG, 1:SCG}"], "5": ["Reserved", "UINT32", "1", "20", "4", ""], "6": ["DCI Info", "NL1_DCI_Info_Record_V5", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Content_V9": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DCI Info": "Number of Records"}, "Name": "NL1_DCI_Info_Content_V9", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Cell Group", "UINT32", "1", "18", "1", "range[0, 1]"], "4": ["Cell Group Type", "UINT32", "1", "19", "1", "Enum{0:MCG, 1:SCG}"], "5": ["Reserved", "UINT32", "1", "20", "4", ""], "6": ["DCI Info", "NL1_DCI_Info_Record_V6", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_DCI_Info_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof this record. range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof this record. range[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF. range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["UL DCI Info", "NL1_UL_DCI_Info_Record_V1", "1", "32", "96", ""], "5": ["DL DCI Info", "NL1_DL_DCI_Info_Record_V1", "1", "128", "128", ""]}, "Name": "NL1_DCI_Info_Record_V1"}, "NL1_DCI_Info_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof this record. range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof this record. range[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF. range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["UL DCI Info", "NL1_UL_DCI_Info_Record_V1", "1", "32", "96", ""], "5": ["DL DCI Info", "NL1_DL_DCI_Info_Record_V2", "1", "128", "128", ""]}, "Name": "NL1_DCI_Info_Record_V2"}, "NL1_DCI_Info_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof this record. range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof this record. range[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF. range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["UL DCI Info", "NL1_UL_DCI_Info_Record_V2", "1", "32", "96", ""], "5": ["DL DCI Info", "NL1_DL_DCI_Info_Record_V3", "1", "128", "96", ""]}, "Name": "NL1_DCI_Info_Record_V3"}, "NL1_DCI_Info_Record_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof this record. range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof this record. range[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF. range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["UL DCI Info", "NL1_UL_DCI_Info_Record_V2", "1", "32", "96", ""], "5": ["DL DCI Info", "NL1_DL_DCI_Info_Record_V4", "1", "128", "96", ""]}, "Name": "NL1_DCI_Info_Record_V4"}, "NL1_DCI_Info_Record_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof this record. range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof this record. range[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF. range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["UL DCI Info", "NL1_UL_DCI_Info_Record_V3", "1", "32", "96", ""], "5": ["DL DCI Info", "NL1_DL_DCI_Info_Record_V5", "1", "128", "96", ""]}, "Name": "NL1_DCI_Info_Record_V5"}, "NL1_DCI_Info_Record_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence\nof this record. range[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence\nof this record. range[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF. range[0, 7]"], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["UL DCI Info", "NL1_UL_DCI_Info_Record_V3", "1", "32", "96", ""], "5": ["DL DCI Info", "NL1_DL_DCI_Info_Record_V6", "1", "128", "96", ""]}, "Name": "NL1_DCI_Info_Record_V6"}, "NL1_UL_DCI_Info_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Grant Valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 0_0,1: 0_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["Start RB", "UINT32", "1", "3", "9", "The Start of RB for the assigned PUSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of RB for the assigned PUSCH.\nrange[0, 275]"], "5": ["slot offset K2", "UINT32", "1", "21", "6", "Slot offset for DCI and the corresponding PUSCH.\nrange[0, 32]"], "6": ["SLIV Start", "UINT32", "1", "27", "4", "The start symbol index of the corresponding\nPUSCH. range[0, 13]"], "7": ["Reserved", "UINT32", "1", "31", "1", ""], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the corresponding PUSCH.\nrange[1, 14]"], "9": ["Frequency hopping flag", "UINT32", "1", "36", "1", "Enum{0:no frequency hopping,1:frequency hopping}"], "10": ["Modulation type", "UINT32", "1", "37", "3", "Modulation Order.\nEnum{0:BPSK,1:QPSK,2:16QAM,3:64QAM,4:256QAM}"], "11": ["MCS index", "UINT32", "1", "40", "5", "range[0, 31]"], "12": ["NDI", "UINT32", "1", "45", "1", "Indicate new transmission or re-transmission."], "13": ["RV", "UINT32", "1", "46", "2", "Derive from MCS, range[0, 3]"], "14": ["HARQ ID", "UINT32", "1", "48", "4", "range[0, 15]"], "15": ["PUSCH TPC command", "UINT32", "1", "52", "2", "TPC command for scheduled PUSCH as defined in\n7.1.1 of TS 38.213."], "16": ["UL/SUL indicator", "UINT32", "1", "54", "1", "As defined in 7.3.1.1.1 of TS38.212.\n0: The non-supplementary uplink\n1: The supplementary uplink\nEnum{0:Non-SUL,1:SUL}"], "17": ["Bandwidth part indicator", "UINT32", "1", "55", "2", "Specific for DCI format 0_1."], "18": ["First DAI", "UINT32", "1", "57", "2", "Specific for DCI format 0_1.\nAs defined in 7.3.1.1.2 of TS38.212."], "19": ["Second DAI", "UINT32", "1", "59", "2", "Specific for DCI format 0_1.\nAs defined in 7.3.1.1.2 of TS38.212."], "20": ["Reserved", "UINT32", "1", "61", "3", ""], "21": ["SRS resource indicator", "UINT32", "1", "64", "4", "range[0, 15]"], "22": ["TPMI indicator", "UINT32", "1", "68", "3", "range[0, 5]"], "23": ["Number of layers", "UINT32", "1", "71", "1", "Enum{0: 1 layer, 1: 2 layers}"], "24": ["SRS request", "UINT32", "1", "72", "3", "As defined in 7.3.1.1 of TS38.212."], "25": ["CSI request", "UINT32", "1", "75", "6", "range[0, 63]"], "26": ["UL CBGTI", "UINT32", "1", "81", "8", "UL CBG transmission information bitmap.\nMSB correspondes to CBG#0."], "27": ["Beta offset indicator", "UINT32", "1", "89", "2", "range[0, 3]"], "28": ["DMRS sequence initialization", "UINT32", "1", "91", "1", "range[0, 1]"], "29": ["Reserved", "UINT32", "1", "92", "4", ""]}, "Name": "NL1_UL_DCI_Info_Record_V1"}, "NL1_UL_DCI_Info_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Grant Valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 0_0,1: 0_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["Start RB", "UINT32", "1", "3", "9", "The Start of RB for the assigned PUSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of RB for the assigned PUSCH.\nrange[0, 275]"], "5": ["slot offset K2", "UINT32", "1", "21", "6", "Slot offset for DCI and the corresponding PUSCH.\nrange[0, 32]"], "6": ["SLIV Start", "UINT32", "1", "27", "4", "The start symbol index of the corresponding\nPUSCH. range[0, 13]"], "7": ["Reserved", "UINT32", "1", "31", "1", ""], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the corresponding PUSCH.\nrange[1, 14]"], "9": ["Frequency hopping flag", "UINT32", "1", "36", "1", "Enum{0:no frequency hopping,1: frequency hopping}"], "10": ["Modulation type", "UINT32", "1", "37", "3", "Modulation Order.\nEnum{0:BPSK,1:QPSK,2:16QAM,3:64QAM,4:256QAM}"], "11": ["MCS index", "UINT32", "1", "40", "5", "range[0, 31]"], "12": ["NDI", "UINT32", "1", "45", "1", "Indicate new transmission or re-transmission."], "13": ["RV", "UINT32", "1", "46", "2", "Derive from MCS, range[0, 3]"], "14": ["HARQ ID", "UINT32", "1", "48", "4", "range[0, 15]"], "15": ["PUSCH TPC command", "UINT32", "1", "52", "2", "TPC command for scheduled PUSCH as defined in\n7.1.1 of TS 38.213."], "16": ["UL/SUL indicator", "UINT32", "1", "54", "1", "As defined in 7.3.1.1.1 of TS38.212.\n0: The non-supplementary uplink\n1: The supplementary uplink\nEnum{0:Non-SUL,1:SUL}"], "17": ["Bandwidth part indicator", "UINT32", "1", "55", "2", "Specific for DCI format 0_1."], "18": ["First DAI", "UINT32", "1", "57", "2", "Specific for DCI format 0_1.\nAs defined in 7.3.1.1.2 of TS38.212."], "19": ["Second DAI", "UINT32", "1", "59", "2", "Specific for DCI format 0_1.\nAs defined in 7.3.1.1.2 of TS38.212."], "20": ["Number of layers", "UINT32", "1", "61", "2", "Enum{0:1 layer,1:2 layers,2:3 layers,3:4 layers}"], "21": ["Reserved", "UINT32", "1", "63", "1", ""], "22": ["SRS resource indicator", "UINT32", "1", "64", "4", "range[0, 15]"], "23": ["TPMI indicator", "UINT32", "1", "68", "3", "range[0, 5]"], "24": ["Reserved", "UINT32", "1", "71", "1", ""], "25": ["SRS request", "UINT32", "1", "72", "3", "As defined in 7.3.1.1 of TS38.212."], "26": ["CSI request", "UINT32", "1", "75", "6", "range[0, 63]"], "27": ["UL CBGTI", "UINT32", "1", "81", "8", "UL CBG transmission information bitmap.\nMSB correspondes to CBG#0."], "28": ["Beta offset indicator", "UINT32", "1", "89", "2", "range[0, 3]"], "29": ["DMRS sequence initialization", "UINT32", "1", "91", "1", "range[0, 1]"], "30": ["Reserved", "UINT32", "1", "92", "4", ""]}, "Name": "NL1_UL_DCI_Info_Record_V2"}, "NL1_UL_DCI_Info_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Grant Valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 0_0,1: 0_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["Start RB", "UINT32", "1", "3", "9", "The Start of RB for the assigned PUSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of RB for the assigned PUSCH.\nrange[0, 275]"], "5": ["slot offset K2", "UINT32", "1", "21", "6", "Slot offset for DCI and the corresponding PUSCH.\nrange[0, 32]"], "6": ["SLIV Start", "UINT32", "1", "27", "4", "The start symbol index of the corresponding\nPUSCH. range[0, 13]"], "7": ["Minimum Schduling Offset Indicator", "UINT32", "1", "31", "1", ""], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the corresponding PUSCH.\nrange[1, 14]"], "9": ["Frequency hopping flag", "UINT32", "1", "36", "1", "Enum{0:no frequency hopping,1: frequency hopping}"], "10": ["Modulation type", "UINT32", "1", "37", "3", "Modulation Order.\nEnum{0:BPSK,1:QPSK,2:16QAM,3:64QAM,4:256QAM}"], "11": ["MCS index", "UINT32", "1", "40", "5", "range[0, 31]"], "12": ["NDI", "UINT32", "1", "45", "1", "Indicate new transmission or re-transmission."], "13": ["RV", "UINT32", "1", "46", "2", "Derive from MCS, range[0, 3]"], "14": ["HARQ ID", "UINT32", "1", "48", "4", "range[0, 15]"], "15": ["PUSCH TPC command", "UINT32", "1", "52", "2", "TPC command for scheduled PUSCH as defined in\n7.1.1 of TS 38.213."], "16": ["UL/SUL indicator", "UINT32", "1", "54", "1", "As defined in 7.3.1.1.1 of TS38.212.\n0: The non-supplementary uplink\n1: The supplementary uplink\nEnum{0:Non-SUL,1:SUL}"], "17": ["Bandwidth part indicator", "UINT32", "1", "55", "2", "Specific for DCI format 0_1."], "18": ["First DAI", "UINT32", "1", "57", "2", "Specific for DCI format 0_1.\nAs defined in 7.3.1.1.2 of TS38.212."], "19": ["Second DAI", "UINT32", "1", "59", "2", "Specific for DCI format 0_1.\nAs defined in 7.3.1.1.2 of TS38.212."], "20": ["Number of layers", "UINT32", "1", "61", "2", "Enum{0:1 layer,1:2 layers,2:3 layers,3:4 layers}"], "21": ["Reserved", "UINT32", "1", "63", "1", ""], "22": ["SRS resource indicator", "UINT32", "1", "64", "4", "range[0, 15]"], "23": ["TPMI indicator", "UINT32", "1", "68", "3", "range[0, 5]"], "24": ["Reserved", "UINT32", "1", "71", "1", ""], "25": ["SRS request", "UINT32", "1", "72", "3", "As defined in 7.3.1.1 of TS38.212."], "26": ["CSI request", "UINT32", "1", "75", "6", "range[0, 63]"], "27": ["UL CBGTI", "UINT32", "1", "81", "8", "UL CBG transmission information bitmap.\nMSB correspondes to CBG#0."], "28": ["Beta offset indicator", "UINT32", "1", "89", "2", "range[0, 3]"], "29": ["DMRS sequence initialization", "UINT32", "1", "91", "1", "range[0, 1]"], "30": ["Reserved", "UINT32", "1", "92", "4", ""]}, "Name": "NL1_UL_DCI_Info_Record_V3"}, "NL1_DL_DCI_Info_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 1_0, 1: 1_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["START RB", "UINT32", "1", "3", "9", "If resource allocation type is 0:\nRBGbmp LSBs;\nIf resource allocation type is 1:\nThe Start of RB of assigned PDSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of assigned PDSCH RB.\nrange[0, 275]"], "5": ["PDSCH mapping type", "UINT32", "1", "21", "1", "Time domain PDSCH mapping type.\nEnum{0: type A, 1: type B}"], "6": ["slot offset K0", "UINT32", "1", "22", "6", "Slot offset for DCI and the assigned PDSCH.\nrange[0, 32]"], "7": ["SLIV start", "UINT32", "1", "28", "4", "The start symbol index of assigned PDSCH.\nrange[0, 13]"], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the assigned PDSCH.\nrange[1, 14]"], "9": ["VRB-to-PRB mapping", "UINT32", "1", "36", "1", "Enum{0: Non-interleaved, 1: Interleaved}"], "10": ["NDI 1", "UINT32", "1", "37", "1", "Indicate new transmission or re-transmission\nfor TB1."], "11": ["RV 1", "UINT32", "1", "38", "2", "Redundancy version for TB1. Derive from MCS.\nrange[0, 3]"], "12": ["MCS type 1", "UINT32", "1", "40", "2", "MCS type for TB1.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "13": ["NDI 2", "UINT32", "1", "42", "1", "Indicate new transmission or re-transmission\nfor TB2. Only valid for DCI format 1_1\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "14": ["RV 2", "UINT32", "1", "43", "2", "Redundancy version for TB2. Derive from MCS.\nrange[0, 3]\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "15": ["MCS type 2", "UINT32", "1", "45", "2", "MCS type for TB2.\nOnly valid for DCI format 1_1 and when TB2\nis configured.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "16": ["HARQ ID", "UINT32", "1", "47", "4", "range[0, 15]"], "17": ["Counter DAI", "UINT32", "1", "51", "2", "As described in 9.1.3 of TS 38.213."], "18": ["Total DAI", "UINT32", "1", "53", "2", "Specific for DCI format 1_1."], "19": ["PUCCH TPC command", "UINT32", "1", "55", "2", "As defined in 7.2.1 of TS 38.213."], "20": ["PDSCH HARQ ACK Codebook", "UINT32", "1", "57", "1", "Enum{0: Semistatic, 1: Dynamic}"], "21": ["PUCCH resource indicator", "UINT32", "1", "58", "3", "As defined in 9.2.3 of TS 38.213.\nrange[0, 7]"], "22": ["PDSCH-to-HARQ feedback timing indicator", "UINT32", "1", "61", "3", "As defined in 9.2.3 of TS 38.213.\nrange[0, 7]"], "23": ["Bandwidth part indicator", "UINT32", "1", "64", "2", "For acitve BWP change.\nSpecific for DCI format 1_1."], "24": ["PRB bundling Enabled", "UINT32", "1", "66", "1", "Enum{0: Disabled, 1: Enabled}"], "25": ["PRB bundling Type", "UINT32", "1", "67", "1", "Enum{0: Static, 1: Dynamic}"], "26": ["PRB bundling Size", "UINT32", "1", "68", "3", "Enum{0: bundle size n2, 1: bundle size n4,\n2: wideband, 3: n2-wideband,4: n4-wideband}"], "27": ["Rate matching indicator", "UINT32", "1", "71", "2", "Specific for DCI format 1_1."], "28": ["TCI", "UINT32", "1", "73", "3", "Transmission configuration indication for\nthe TCI states as defined in 5.1.5 of\nTS 38.214.\nSpecific for DCI format 1_1."], "29": ["SRS request", "UINT32", "1", "76", "3", "As defined in 7.3.1.1 of TS 38.212.\nSpecific for DCI format 1_1."], "30": ["CBGTI", "UINT32", "1", "79", "8", "CBG transmission information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "31": ["CBGFI", "UINT32", "1", "87", "1", "CBG flushing out information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "32": ["NUM ACK bit", "UINT32", "1", "88", "2", "Received DL TB num. range[0, 2]"], "33": ["DMRS sequence initialization", "UINT32", "1", "90", "1", "Specific for DCI format 1_1."], "34": ["Number of HARQ process for PDSCH", "UINT32", "1", "91", "3", "Enum{0:n2,1:n4,2:n6,3:n8,4:n10,5:n12,6:n16}"], "35": ["Num of layers", "UINT32", "1", "94", "2", "Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,\n3: 4 layers}"], "36": ["MCS index 1", "UINT32", "1", "96", "5", "range[0, 31]"], "37": ["MCS index 2", "UINT32", "1", "101", "5", "range[0, 31]"], "38": ["Reserved", "UINT32", "1", "106", "22", ""]}, "Name": "NL1_DL_DCI_Info_Record_V1"}, "NL1_DL_DCI_Info_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 1_0, 1: 1_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["START RB", "UINT32", "1", "3", "9", "If resource allocation type is 0:\nRBGbmp LSBs;\nIf resource allocation type is 1:\nThe Start of RB of assigned PDSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of assigned PDSCH RB.\nrange[0, 275]"], "5": ["PDSCH mapping type", "UINT32", "1", "21", "1", "Time domain PDSCH mapping type.\nEnum{0: type A, 1: type B}"], "6": ["slot offset K0", "UINT32", "1", "22", "6", "Slot offset for DCI and the assigned PDSCH.\nrange[0, 32]"], "7": ["SLIV start", "UINT32", "1", "28", "4", "The start symbol index of assigned PDSCH.\nrange[0, 13]"], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the assigned PDSCH.\nrange[1, 14]"], "9": ["VRB-to-PRB mapping", "UINT32", "1", "36", "1", "Enum{0: Non-interleaved, 1: Interleaved}"], "10": ["NDI 1", "UINT32", "1", "37", "1", "Indicate new transmission or re-transmission\nfor TB1."], "11": ["RV 1", "UINT32", "1", "38", "2", "Redundancy version for TB1. Derive from MCS.\nrange[0, 3]"], "12": ["MCS type 1", "UINT32", "1", "40", "2", "MCS type for TB1.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "13": ["NDI 2", "UINT32", "1", "42", "1", "Indicate new transmission or re-transmission\nfor TB2. Only valid for DCI format 1_1\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "14": ["RV 2", "UINT32", "1", "43", "2", "Redundancy version for TB2. Derive from MCS.\nrange[0, 3]\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "15": ["MCS type 2", "UINT32", "1", "45", "2", "MCS type for TB2.\nOnly valid for DCI format 1_1 and when TB2\nis configured.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "16": ["HARQ ID", "UINT32", "1", "47", "4", "range[0, 15]"], "17": ["Counter DAI", "UINT32", "1", "51", "2", "As described in 9.1.3 of TS 38.213."], "18": ["Total DAI", "UINT32", "1", "53", "2", "Specific for DCI format 1_1."], "19": ["PUCCH TPC command", "UINT32", "1", "55", "2", "As defined in 7.2.1 of TS 38.213."], "20": ["PDSCH HARQ ACK Codebook", "UINT32", "1", "57", "1", "Enum{0: Semistatic, 1: Dynamic}"], "21": ["PUCCH resource indicator", "UINT32", "1", "58", "3", "As defined in 9.2.3 of TS 38.213.\nrange[0, 7]"], "22": ["PDSCH-to-HARQ feedback timing indicator", "UINT32", "1", "61", "3", "As defined in 9.2.3 of TS 38.213.\nrange[0, 7]"], "23": ["Bandwidth part indicator", "UINT32", "1", "64", "2", "For acitve BWP change.\nSpecific for DCI format 1_1."], "24": ["Reserved", "UINT32", "1", "66", "2", ""], "25": ["PRB bundling Size", "UINT32", "1", "68", "3", "Enum{0: bundle size n2, 1: bundle size n4,\n2: wideband }"], "26": ["Rate matching indicator", "UINT32", "1", "71", "2", "Specific for DCI format 1_1."], "27": ["TCI", "UINT32", "1", "73", "3", "Transmission configuration indication for\nthe TCI states as defined in 5.1.5 of\nTS 38.214.\nSpecific for DCI format 1_1."], "28": ["SRS request", "UINT32", "1", "76", "3", "As defined in 7.3.1.1 of TS 38.212.\nSpecific for DCI format 1_1."], "29": ["CBGTI", "UINT32", "1", "79", "8", "CBG transmission information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "30": ["CBGFI", "UINT32", "1", "87", "1", "CBG flushing out information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "31": ["NUM ACK bit", "UINT32", "1", "88", "2", "Received DL TB num. range[0, 2]"], "32": ["DMRS sequence initialization", "UINT32", "1", "90", "1", "Specific for DCI format 1_1."], "33": ["Number of HARQ process for PDSCH", "UINT32", "1", "91", "3", "Enum{0:n2,1:n4,2:n6,3:n8,4:n10,5:n12,6:n16}"], "34": ["Num of layers", "UINT32", "1", "94", "2", "Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,\n3: 4 layers}"], "35": ["MCS index 1", "UINT32", "1", "96", "5", "range[0, 31]"], "36": ["MCS index 2", "UINT32", "1", "101", "5", "range[0, 31]"], "37": ["Reserved", "UINT32", "1", "106", "22", ""]}, "Name": "NL1_DL_DCI_Info_Record_V2"}, "NL1_DL_DCI_Info_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 1_0, 1: 1_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["START RB", "UINT32", "1", "3", "9", "The Start of RB of assigned PDSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of assigned PDSCH RB.\nrange[0, 275]"], "5": ["PDSCH mapping type", "UINT32", "1", "21", "1", "Time domain PDSCH mapping type.\nEnum{0: type A, 1: type B}"], "6": ["slot offset K0", "UINT32", "1", "22", "6", "Slot offset for DCI and the assigned PDSCH.\nrange[0, 32]"], "7": ["SLIV start", "UINT32", "1", "28", "4", "The start symbol index of assigned PDSCH.\nrange[0, 13]"], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the assigned PDSCH.\nrange[1, 14]"], "9": ["VRB-to-PRB mapping", "UINT32", "1", "36", "1", "Enum{0: Non-interleaved, 1: Interleaved}"], "10": ["NDI 1", "UINT32", "1", "37", "1", "Indicate new transmission or re-transmission\nfor TB1."], "11": ["RV 1", "UINT32", "1", "38", "2", "Redundancy version for TB1. Derive from MCS.\nrange[0, 3]"], "12": ["MCS type 1", "UINT32", "1", "40", "2", "MCS type for TB1.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "13": ["NDI 2", "UINT32", "1", "42", "1", "Indicate new transmission or re-transmission\nfor TB2. Only valid for DCI format 1_1\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "14": ["RV 2", "UINT32", "1", "43", "2", "Redundancy version for TB2. Derive from MCS.\nrange[0, 3]\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "15": ["MCS type 2", "UINT32", "1", "45", "2", "MCS type for TB2.\nOnly valid for DCI format 1_1 and when TB2\nis configured.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "16": ["HARQ ID", "UINT32", "1", "47", "4", "range[0, 15]"], "17": ["Counter DAI", "UINT32", "1", "51", "2", "As described in 9.1.3 of TS 38.213."], "18": ["Total DAI", "UINT32", "1", "53", "2", "Specific for DCI format 1_1."], "19": ["PUCCH TPC command", "UINT32", "1", "55", "2", "As defined in 7.2.1 of TS 38.213."], "20": ["Number of CDM Groups", "UINT32", "1", "57", "2", "range[1, 3]\nSpecific for DCI format 1_1."], "21": ["PDSCH-to-HARQ feedback timing indicator", "UINT32", "1", "59", "3", "As defined in 9.2.3 of TS 38.213.\nrange[0, 7]"], "22": ["Num of layers", "UINT32", "1", "62", "2", "Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,\n3: 4 layers}"], "23": ["PRB bundling Size", "UINT32", "1", "64", "2", "Enum{0: bundle size n2, 1: bundle size n4,\n2: wideband}"], "24": ["CBGTI", "UINT32", "1", "66", "8", "CBG transmission information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "25": ["Number of TB", "UINT32", "1", "74", "2", "Received DL TB num. range[1, 2]"], "26": ["MCS index 1", "UINT32", "1", "76", "5", "range[0, 31]"], "27": ["MCS index 2", "UINT32", "1", "81", "5", "range[0, 31]"], "28": ["Reserved", "UINT32", "1", "86", "10", ""]}, "Name": "NL1_DL_DCI_Info_Record_V3"}, "NL1_DL_DCI_Info_Record_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 1_0, 1: 1_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["START RB", "UINT32", "1", "3", "9", "The Start of RB of assigned PDSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of assigned PDSCH RB.\nrange[0, 275]"], "5": ["PDSCH mapping type", "UINT32", "1", "21", "1", "Time domain PDSCH mapping type.\nEnum{0: type A, 1: type B}"], "6": ["slot offset K0", "UINT32", "1", "22", "6", "Slot offset for DCI and the assigned PDSCH.\nrange[0, 32]"], "7": ["SLIV start", "UINT32", "1", "28", "4", "The start symbol index of assigned PDSCH.\nrange[0, 13]"], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the assigned PDSCH.\nrange[1, 14]"], "9": ["VRB-to-PRB mapping", "UINT32", "1", "36", "1", "Enum{0: Non-interleaved, 1: Interleaved}"], "10": ["NDI 1", "UINT32", "1", "37", "1", "Indicate new transmission or re-transmission\nfor TB1."], "11": ["RV 1", "UINT32", "1", "38", "2", "Redundancy version for TB1. Derive from MCS.\nrange[0, 3]"], "12": ["MCS type 1", "UINT32", "1", "40", "2", "MCS type for TB1.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "13": ["NDI 2", "UINT32", "1", "42", "1", "Indicate new transmission or re-transmission\nfor TB2. Only valid for DCI format 1_1\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "14": ["RV 2", "UINT32", "1", "43", "2", "Redundancy version for TB2. Derive from MCS.\nrange[0, 3]\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "15": ["MCS type 2", "UINT32", "1", "45", "2", "MCS type for TB2.\nOnly valid for DCI format 1_1 and when TB2\nis configured.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "16": ["HARQ ID", "UINT32", "1", "47", "4", "range[0, 15]"], "17": ["Counter DAI", "UINT32", "1", "51", "2", "As described in 9.1.3 of TS 38.213."], "18": ["Total DAI", "UINT32", "1", "53", "2", "Specific for DCI format 1_1."], "19": ["PUCCH TPC command", "UINT32", "1", "55", "2", "As defined in 7.2.1 of TS 38.213."], "20": ["Number of CDM Groups", "UINT32", "1", "57", "2", "range[1, 3]\nSpecific for DCI format 1_1."], "21": ["Reserved", "UINT32", "1", "59", "3", ""], "22": ["Num of layers", "UINT32", "1", "62", "2", "Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,\n3: 4 layers}"], "23": ["PRB bundling Size", "UINT32", "1", "64", "2", "Enum{0: bundle size n2, 1: bundle size n4,\n2: wideband}"], "24": ["CBGTI", "UINT32", "1", "66", "8", "CBG transmission information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "25": ["Number of TB", "UINT32", "1", "74", "2", "Received DL TB num. range[1, 2]"], "26": ["MCS index 1", "UINT32", "1", "76", "5", "range[0, 31]"], "27": ["MCS index 2", "UINT32", "1", "81", "5", "range[0, 31]"], "28": ["PDSCH-to-HARQ feedback timing indicator", "UINT32", "1", "86", "4", "K1 value mapped from PDSCH-TO-HARQ feedback\ntiming indicator (38.213 9.2.3)\nrange[1, 8]"], "29": ["Reserved", "UINT32", "1", "90", "6", ""]}, "Name": "NL1_DL_DCI_Info_Record_V4"}, "NL1_DL_DCI_Info_Record_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 1_0, 1: 1_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["START RB", "UINT32", "1", "3", "9", "The Start of RB of assigned PDSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of assigned PDSCH RB.\nrange[0, 275]"], "5": ["PDSCH mapping type", "UINT32", "1", "21", "1", "Time domain PDSCH mapping type.\nEnum{0: type A, 1: type B}"], "6": ["slot offset K0", "UINT32", "1", "22", "6", "Slot offset for DCI and the assigned PDSCH.\nrange[0, 32]"], "7": ["SLIV start", "UINT32", "1", "28", "4", "The start symbol index of assigned PDSCH.\nrange[0, 13]"], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the assigned PDSCH.\nrange[1, 14]"], "9": ["VRB-to-PRB mapping", "UINT32", "1", "36", "1", "Enum{0: Non-interleaved, 1: Interleaved}"], "10": ["NDI 1", "UINT32", "1", "37", "1", "Indicate new transmission or re-transmission\nfor TB1."], "11": ["RV 1", "UINT32", "1", "38", "2", "Redundancy version for TB1. Derive from MCS.\nrange[0, 3]"], "12": ["MCS type 1", "UINT32", "1", "40", "2", "MCS type for TB1.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "13": ["NDI 2", "UINT32", "1", "42", "1", "Indicate new transmission or re-transmission\nfor TB2. Only valid for DCI format 1_1\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "14": ["RV 2", "UINT32", "1", "43", "2", "Redundancy version for TB2. Derive from MCS.\nrange[0, 3]\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "15": ["MCS type 2", "UINT32", "1", "45", "2", "MCS type for TB2.\nOnly valid for DCI format 1_1 and when TB2\nis configured.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "16": ["HARQ ID", "UINT32", "1", "47", "4", "range[0, 15]"], "17": ["Counter DAI", "UINT32", "1", "51", "2", "As described in 9.1.3 of TS 38.213."], "18": ["Total DAI", "UINT32", "1", "53", "2", "Specific for DCI format 1_1."], "19": ["PUCCH TPC command", "UINT32", "1", "55", "2", "As defined in 7.2.1 of TS 38.213."], "20": ["Number of CDM Groups", "UINT32", "1", "57", "2", "range[1, 3]\nSpecific for DCI format 1_1."], "21": ["Minimum Schduling Offset Indicator", "UINT32", "1", "59", "1", ""], "22": ["Reserved", "UINT32", "1", "60", "2", ""], "23": ["Num of layers", "UINT32", "1", "62", "2", "Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,\n3: 4 layers}"], "24": ["PRB bundling Size", "UINT32", "1", "64", "2", "Enum{0: bundle size n2, 1: bundle size n4,\n2: wideband}"], "25": ["CBGTI", "UINT32", "1", "66", "8", "CBG transmission information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "26": ["Number of TB", "UINT32", "1", "74", "2", "Received DL TB num. range[1, 2]"], "27": ["MCS index 1", "UINT32", "1", "76", "5", "range[0, 31]"], "28": ["MCS index 2", "UINT32", "1", "81", "5", "range[0, 31]"], "29": ["PDSCH-to-HARQ feedback timing indicator", "UINT32", "1", "86", "4", "K1 value mapped from PDSCH-TO-HARQ feedback\ntiming indicator (38.213 9.2.3)\nrange[1, 8]"], "30": ["Reserved", "UINT32", "1", "90", "6", ""]}, "Name": "NL1_DL_DCI_Info_Record_V5"}, "NL1_DL_DCI_Info_Record_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL DCI valid", "UINT32", "1", "0", "1", "Enum{0: Not valid,1: Valid}"], "1": ["DCI format", "UINT32", "1", "1", "1", "Enum{0: 1_0, 1: 1_1}"], "2": ["Resource allocation type", "UINT32", "1", "2", "1", "Resource allocation type in freq domain.\nEnum{0: type 0, 1: type 1}"], "3": ["START RB", "UINT32", "1", "3", "9", "The Start of RB of assigned PDSCH.\nrange[0, 274]"], "4": ["NUM RB", "UINT32", "1", "12", "9", "The length of assigned PDSCH RB.\nrange[0, 275]"], "5": ["PDSCH mapping type", "UINT32", "1", "21", "1", "Time domain PDSCH mapping type.\nEnum{0: type A, 1: type B}"], "6": ["slot offset K0", "UINT32", "1", "22", "6", "Slot offset for DCI and the assigned PDSCH.\nrange[0, 32]"], "7": ["SLIV start", "UINT32", "1", "28", "4", "The start symbol index of assigned PDSCH.\nrange[0, 13]"], "8": ["SLIV length", "UINT32", "1", "32", "4", "Symbol length of the assigned PDSCH.\nrange[1, 14]"], "9": ["VRB-to-PRB mapping", "UINT32", "1", "36", "1", "Enum{0: Non-interleaved, 1: Interleaved}"], "10": ["NDI 1", "UINT32", "1", "37", "1", "Indicate new transmission or re-transmission\nfor TB1."], "11": ["RV 1", "UINT32", "1", "38", "2", "Redundancy version for TB1. Derive from MCS.\nrange[0, 3]"], "12": ["MCS type 1", "UINT32", "1", "40", "2", "MCS type for TB1.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "13": ["NDI 2", "UINT32", "1", "42", "1", "Indicate new transmission or re-transmission\nfor TB2. Only valid for DCI format 1_1\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "14": ["RV 2", "UINT32", "1", "43", "2", "Redundancy version for TB2. Derive from MCS.\nrange[0, 3]\nOnly valid for DCI format 1_1 and when TB2\nis configured."], "15": ["MCS type 2", "UINT32", "1", "45", "2", "MCS type for TB2.\nOnly valid for DCI format 1_1 and when TB2\nis configured.\nEnum{0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM}"], "16": ["HARQ ID", "UINT32", "1", "47", "4", "range[0, 15]"], "17": ["Counter DAI", "UINT32", "1", "51", "2", "As described in 9.1.3 of TS 38.213."], "18": ["Total DAI", "UINT32", "1", "53", "2", "Specific for DCI format 1_1."], "19": ["PUCCH TPC command", "UINT32", "1", "55", "2", "As defined in 7.2.1 of TS 38.213."], "20": ["Number of CDM Groups", "UINT32", "1", "57", "2", "range[1, 3]\nSpecific for DCI format 1_1."], "21": ["Minimum Schduling Offset Indicator", "UINT32", "1", "59", "1", ""], "22": ["Bandwidth part indicator", "UINT32", "1", "60", "2", "Specific for DCI format 1_1."], "23": ["Num of layers", "UINT32", "1", "62", "2", "Enum{0: 1 layer, 1: 2 layers, 2: 3 layers,\n3: 4 layers}"], "24": ["PRB bundling Size", "UINT32", "1", "64", "2", "Enum{0: bundle size n2, 1: bundle size n4,\n2: wideband}"], "25": ["CBGTI", "UINT32", "1", "66", "8", "CBG transmission information. As defined in\n5.1.7 of TS 38.214.\nSpecific for DCI format 1_1."], "26": ["Number of TB", "UINT32", "1", "74", "2", "Received DL TB num. range[1, 2]"], "27": ["MCS index 1", "UINT32", "1", "76", "5", "range[0, 31]"], "28": ["MCS index 2", "UINT32", "1", "81", "5", "range[0, 31]"], "29": ["PDSCH-to-HARQ feedback timing indicator", "UINT32", "1", "86", "4", "K1 value mapped from PDSCH-TO-HARQ feedback\ntiming indicator (38.213 9.2.3)\nrange[1, 8]"], "30": ["Reserved", "UINT32", "1", "90", "6", ""]}, "Name": "NL1_DL_DCI_Info_Record_V6"}}},
+ Public JSON end */
+// Checksum : [4a5d1cc77daba7325fc23cc8aa5bbc26]
diff --git a/mcu/interface/service/icd/nl1/NL1_DCI_Stats.h b/mcu/interface/service/icd/nl1/NL1_DCI_Stats.h
new file mode 100644
index 0000000..8fbc661
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_DCI_Stats.h
@@ -0,0 +1,80 @@
+// ICD Header Format v3
+// Name : NL1_DCI_Stats
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9028
+// Version : V1.3
+
+#ifndef _NL1_DCI_STATS_H
+#define _NL1_DCI_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_DCI_STATS 0x9028
+
+#define ICD_NL1_NL1_DCI_STATS_INFO_V1 1
+
+#define ICD_NL1_DCI_STATS_INFO_STRUCT_V1_MAX_SIZE 24
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // range[0, 1023] The SFN when the last DCI received.
+ kal_uint32 subframe:4; // range[0, 9] The suframe when the last DCI received.
+ kal_uint32 slot:3; // range[0, 7] The slot when the last DCI received.
+ kal_uint32 cell_group:1; // range[0, 1]
+ kal_uint32 cell_index:3; // range[0, 7]
+ kal_uint32 reserved:3;
+ kal_uint32 num_of_dci_0_0:13;
+ kal_uint32 num_of_dci_0_1:13;
+ kal_uint32 k2:6; // range[0, 32] The median of K2 in received UL DCIs.
+ // Only valid if UL DCIs are received
+ kal_uint32 num_of_dci_1_0:13;
+ kal_uint32 num_of_dci_1_1:13;
+ kal_uint32 k0:6; // range[0, 32] The median of K0 in received DL DCIs.
+ // Only valid if DL DCIs are received
+ kal_uint32 k1:6; // range[0, 32] The median of K1 in received DL DCIs.
+ // Only valid if DL DCIs are received
+ kal_uint32 ul_modulation_order:3; // The most often used modulation order in received UL DCIs.
+ // 0: BPSK, 1: QPSK, 2: 16QAM, 3: 64QAM, 4: 256QAM
+ // Only valid if UL DCIs are received
+ kal_uint32 dl_modulation_order:2; // The most often used modulation order in received DL DCIs.
+ // 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
+ // Only valid if UL DCIs are received
+ kal_uint32 ul_mcs_index:5; // The median value of MCS index in received UL DCIs.range[0, 31]
+ // Only valid if UL DCIs are received
+ kal_uint32 dl_mcs_index:5; // The median value of MCS index in received DL DCIs.range[0, 31]
+ // Only valid if DL DCIs are received
+ kal_uint32 ul_layers:2; // The median number of layers in received UL DCIs. 0: 1 layer,
+ // 1: 2 layers, 2: 3 layers, 3: 4 layers
+ // Only valid if UL DCIs are received
+ kal_uint32 dl_layers:2; // The median number of layers in received DL DCIs. 0: 1 layer,
+ // 1: 2 layers, 2: 3 layers, 3: 4 layers
+ // Only valid if DL DCIs are received
+ kal_uint32 reserved_1:7;
+ kal_uint32 ul_rb_num:9; // The average number of RBs in received UL DCIs. range[0, 273]
+ // Only valid if UL DCIs are received
+ kal_uint32 dl_rb_num:9; // The average number of RBs in received DL DCIs. range[0, 273]
+ // Only valid if DL DCIs are received
+ kal_uint32 ul_symbol_length:4; // The median number of symbol length in received UL DCIs.
+ // range[1, 14]
+ // Only valid if UL DCIs are received
+ kal_uint32 dl_symbol_length:4; // The median number of symbol length in received DL DCIs.
+ // range[1, 14]
+ // Only valid if DL DCIs are received
+ kal_uint32 reserved_2:6;
+ kal_uint32 physical_cell_id:10; // range[0, 1007]
+ kal_uint32 narfcn:22; // Downlink NARFCN
+} icd_nl1_dci_stats_info_struct_v1;
+
+typedef icd_nl1_dci_stats_info_struct_v1 icd_nl1_dci_stats_info_struct;
+
+
+#endif /* _NL1_DCI_STATS_H */
+
+
+/* Public JSON start
+"NL1_DCI_Stats": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9028", "Name": "NL1_DCI_Stats", "Type": "RECORD", "Desc": "The log is generated every 1000 ms for each serving cell, reporting the statistical information of received DCIs which are scrambled by C-RNTI.\n"}, "table": {"NL1_DCI_Stats_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_DCI_Stats_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_DCI_Stats_Info"}, "NL1_DCI_Stats_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_DCI_Stats_Info_V1", ""]}, "Name": "NL1_DCI_Stats_Info_Versions"}, "NL1_DCI_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "range[0, 1023] The SFN when the last DCI received."], "1": ["Subframe", "UINT32", "1", "10", "4", "range[0, 9] The suframe when the last DCI received."], "2": ["Slot", "UINT32", "1", "14", "3", "range[0, 7] The slot when the last DCI received."], "3": ["Cell Group", "UINT32", "1", "17", "1", "range[0, 1]"], "4": ["Cell Index", "UINT32", "1", "18", "3", "range[0, 7]"], "5": ["Reserved", "UINT32", "1", "21", "3", ""], "6": ["Num of DCI 0_0", "UINT32", "1", "24", "13", ""], "7": ["Num of DCI 0_1", "UINT32", "1", "37", "13", ""], "8": ["K2", "UINT32", "1", "50", "6", "range[0, 32] The median of K2 in received UL DCIs.\nOnly valid if UL DCIs are received"], "9": ["Num of DCI 1_0", "UINT32", "1", "56", "13", ""], "10": ["Num of DCI 1_1", "UINT32", "1", "69", "13", ""], "11": ["K0", "UINT32", "1", "82", "6", "range[0, 32] The median of K0 in received DL DCIs.\nOnly valid if DL DCIs are received"], "12": ["K1", "UINT32", "1", "88", "6", "range[0, 32] The median of K1 in received DL DCIs.\nOnly valid if DL DCIs are received"], "13": ["UL Modulation Order", "UINT32", "1", "94", "3", "The most often used modulation order in received UL DCIs.\n0: BPSK, 1: QPSK, 2: 16QAM, 3: 64QAM, 4: 256QAM\nOnly valid if UL DCIs are received"], "14": ["DL Modulation Order", "UINT32", "1", "97", "2", "The most often used modulation order in received DL DCIs.\n0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM\nOnly valid if UL DCIs are received"], "15": ["UL MCS Index", "UINT32", "1", "99", "5", "The median value of MCS index in received UL DCIs.range[0, 31]\nOnly valid if UL DCIs are received"], "16": ["DL MCS Index", "UINT32", "1", "104", "5", "The median value of MCS index in received DL DCIs.range[0, 31]\nOnly valid if DL DCIs are received"], "17": ["UL Layers", "UINT32", "1", "109", "2", "The median number of layers in received UL DCIs. 0: 1 layer,\n1: 2 layers, 2: 3 layers, 3: 4 layers\nOnly valid if UL DCIs are received"], "18": ["DL Layers", "UINT32", "1", "111", "2", "The median number of layers in received DL DCIs. 0: 1 layer,\n1: 2 layers, 2: 3 layers, 3: 4 layers\nOnly valid if DL DCIs are received"], "19": ["Reserved", "UINT32", "1", "113", "7", ""], "20": ["UL Rb Num", "UINT32", "1", "120", "9", "The average number of RBs in received UL DCIs. range[0, 273]\nOnly valid if UL DCIs are received"], "21": ["DL Rb Num", "UINT32", "1", "129", "9", "The average number of RBs in received DL DCIs. range[0, 273]\nOnly valid if DL DCIs are received"], "22": ["UL Symbol Length", "UINT32", "1", "138", "4", "The median number of symbol length in received UL DCIs.\nrange[1, 14]\nOnly valid if UL DCIs are received"], "23": ["DL Symbol Length", "UINT32", "1", "142", "4", "The median number of symbol length in received DL DCIs.\nrange[1, 14]\nOnly valid if DL DCIs are received"], "24": ["Reserved", "UINT32", "1", "146", "6", ""], "25": ["Physical Cell ID", "UINT32", "1", "152", "10", "range[0, 1007]"], "26": ["NARFCN", "UINT32", "1", "162", "22", "Downlink NARFCN"]}, "Name": "NL1_DCI_Stats_Info_V1"}}},
+ Public JSON end */
+// Checksum : [3cdce5c4b92f35e36131d6128cd4e0d1]
diff --git a/mcu/interface/service/icd/nl1/NL1_Frame_Throughput.h b/mcu/interface/service/icd/nl1/NL1_Frame_Throughput.h
new file mode 100644
index 0000000..2448c1c
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Frame_Throughput.h
@@ -0,0 +1,46 @@
+// ICD Header Format v3
+// Name : NL1_Frame_Throughput
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9039
+// Version : t-internal-nr-icd-draft3RC1-386-g71cd79d
+
+#ifndef _NL1_FRAME_THROUGHPUT_H
+#define _NL1_FRAME_THROUGHPUT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_FRAME_THROUGHPUT 0x9039
+
+#define ICD_NL1_NL1_FRAME_THROUGHPUT_CONTENT_V1 1
+
+#define ICD_NL1_FRAME_THROUGHPUT_STRUCT_V1_MAX_SIZE 16
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 cell_group_type:1; // Enum{0:MCG,1:SCG}
+ kal_uint32 cell_group_index:1; // range[0, 1]
+ kal_uint32 carrier_index:3; // Indicates whether this metric is reporting on PCC or SCC.
+ // Enum{0:Pcell,1:SCC1,2:SCC2,3:SCC3,4:SCC4,5:SCC5,6:SCC6,7:SCC7,8:SCC8}
+ kal_uint32 dl_total_count:7; // Total PDSCH CRC reports received in 10ms.
+ kal_uint32 dl_error_count:7; // Total PDSCH CRC error received in 10ms.
+ kal_uint32 reserved:5;
+ kal_uint32 ul_total_count:7; // Total PUSCH sent in 10ms.
+ kal_uint32 ul_error_count:7; // Total PUSCH retransmission in 10ms.
+ kal_uint32 reserved_1:18;
+ kal_uint32 dl_throughput; // The downlink bytes decoded successfully within 10ms
+ kal_uint32 ul_throughput; // The uplink bytes of sent successfully within 10ms
+} icd_nl1_frame_throughput_struct_v1;
+
+typedef icd_nl1_frame_throughput_struct_v1 icd_nl1_frame_throughput_struct;
+
+
+#endif /* _NL1_FRAME_THROUGHPUT_H */
+
+
+/* Public JSON start
+"NL1_Frame_Throughput": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9039", "Name": "NL1_Frame_Throughput", "Type": "RECORD", "Desc": "The log is generated every 10 ms to report the DL and UL throughput in one frame.\n"}, "table": {"NL1_Frame_Throughput": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Frame_Throughput_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Frame_Throughput"}, "NL1_Frame_Throughput_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Frame_Throughput_Content_V1", ""]}, "Name": "NL1_Frame_Throughput_Content_Versions"}, "NL1_Frame_Throughput_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell Group Type", "UINT32", "1", "0", "1", "Enum{0:MCG,1:SCG}"], "1": ["Cell Group Index", "UINT32", "1", "1", "1", "range[0, 1]"], "2": ["Carrier Index", "UINT32", "1", "2", "3", "Indicates whether this metric is reporting on PCC or SCC.\nEnum{0:Pcell,1:SCC1,2:SCC2,3:SCC3,4:SCC4,5:SCC5,6:SCC6,7:SCC7,8:SCC8}"], "3": ["DL Total Count", "UINT32", "1", "5", "7", "Total PDSCH CRC reports received in 10ms."], "4": ["DL Error Count", "UINT32", "1", "12", "7", "Total PDSCH CRC error received in 10ms."], "5": ["Reserved", "UINT32", "1", "19", "5", ""], "6": ["UL Total Count", "UINT32", "1", "24", "7", "Total PUSCH sent in 10ms."], "7": ["UL Error Count", "UINT32", "1", "31", "7", "Total PUSCH retransmission in 10ms."], "8": ["Reserved", "UINT32", "1", "38", "18", ""], "9": ["DL Throughput", "UINT32", "1", "56", "32", "The downlink bytes decoded successfully within 10ms"], "10": ["UL Throughput", "UINT32", "1", "88", "32", "The uplink bytes of sent successfully within 10ms"]}, "Name": "NL1_Frame_Throughput_Content_V1"}}},
+ Public JSON end */
+// Checksum : [80f60a764bd520dd3d8a4d159e2edad4]
diff --git a/mcu/interface/service/icd/nl1/NL1_Frequency_Error_Information.h b/mcu/interface/service/icd/nl1/NL1_Frequency_Error_Information.h
new file mode 100644
index 0000000..259235d
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Frequency_Error_Information.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : NL1_Frequency_Error_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9030
+// Version : V1.3
+
+#ifndef _NL1_FREQUENCY_ERROR_INFORMATION_H
+#define _NL1_FREQUENCY_ERROR_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_FREQUENCY_ERROR_INFORMATION 0x9030
+
+#define ICD_NL1_NL1_FREQUENCY_ERROR_INFO_V1 1
+
+#define MAX_ICD_NL1_FREQUENCY_ERROR_INFO_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_FREQUENCY_ERROR_INFO_STRUCT_V1_MAX_SIZE 84
+
+typedef struct {
+ kal_int32 freq_error; // unit: Hz
+} nl1_freq_err_record_v1;
+
+typedef nl1_freq_err_record_v1 nl1_freq_err_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 cell_group_id:1;
+ kal_uint32 carrier_index:4;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:14;
+ nl1_freq_err_record freq_error_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_frequency_error_info_struct_v1;
+
+typedef icd_nl1_frequency_error_info_struct_v1 icd_nl1_frequency_error_info_struct;
+
+
+#endif /* _NL1_FREQUENCY_ERROR_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_Frequency_Error_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9030", "Name": "NL1_Frequency_Error_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Frequency_Error_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Frequency_Error_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Frequency_Error_Info"}, "NL1_Frequency_Error_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Frequency_Error_Info_V1", ""]}, "Name": "NL1_Frequency_Error_Info_Versions"}, "NL1_Frequency_Error_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Freq Error Records": "Number of Records"}, "Name": "NL1_Frequency_Error_Info_V1", "Data": {"0": ["Cell Group Id", "UINT32", "1", "0", "1", ""], "1": ["Carrier Index", "UINT32", "1", "1", "4", ""], "2": ["Number of Records", "UINT32", "1", "5", "5", "range[0, 20]"], "3": ["Reserved", "UINT32", "1", "10", "14", ""], "4": ["Freq Error Records", "NL1_Freq_Err_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Freq_Err_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Freq Error", "INT32", "1", "0", "32", "unit: Hz"]}, "Name": "NL1_Freq_Err_Record_V1"}}},
+ Public JSON end */
+// Checksum : [9e44e901fc445535666b45ab0c640c0a]
diff --git a/mcu/interface/service/icd/nl1/NL1_MIMO_PDSCH_Throughput.h b/mcu/interface/service/icd/nl1/NL1_MIMO_PDSCH_Throughput.h
new file mode 100644
index 0000000..0453913
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_MIMO_PDSCH_Throughput.h
@@ -0,0 +1,80 @@
+// ICD Header Format v3
+// Name : NL1_MIMO_PDSCH_Throughput
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9007
+// Version : V1.3
+
+#ifndef _NL1_MIMO_PDSCH_THROUGHPUT_H
+#define _NL1_MIMO_PDSCH_THROUGHPUT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_MIMO_PDSCH_THROUGHPUT 0x9007
+
+#define ICD_NL1_NL1_MIMO_PDSCH_THROUGHPUT_CONTENT_V5 5
+
+#define ICD_NL1_MIMO_PDSCH_THROUGHPUT_STRUCT_V5_MAX_SIZE 72
+
+typedef struct {
+ kal_uint32 dl_slot_grant_cnt:10; // Total number of DL Grant per slot in 1000ms.
+ kal_uint32 dl_slot_bler:7; // DL BLER per slot in 1000ms,Range [0, 100].
+ kal_uint32 reserved:15;
+} nl1_pdsch_slot_bler_v1;
+
+typedef nl1_pdsch_slot_bler_v1 nl1_pdsch_slot_bler;
+
+typedef struct {
+ kal_uint32 dl_grant_abnormal:1; // 0: no abnormal, 1: match trigger criteria, following parameters are valid
+ kal_uint32 dl_retx_cnt:13; // Number of DL grant(Retx) in 1000ms.
+ kal_uint32 reserved:18;
+ kal_uint32 avg_dl_num_rb:22; // Average number of RBs per DL Grant
+ kal_uint32 avg_dl_mcs:5; // Average MCS for initial Tx, Range [0, 31].
+ kal_uint32 reserved_1:5;
+} nl1_dl_grant_abnormal_v1;
+
+typedef nl1_dl_grant_abnormal_v1 nl1_dl_grant_abnormal;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
+ // Range [0,1023].
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record.
+ // Range [0,9].
+ kal_uint32 carrier_index:3; // Indicates whether this metric is reporting on PCC or SCC.
+ // 0: Pcell, 1~7: Scell Index
+ kal_uint32 dl_bler:7; // The downlink BLER of both codewords within 1000ms, range[0, 100]
+ kal_uint32 dl_ibler:7; // The downlink iBLER of both codewords within 1000ms, range[0, 100]
+ // iBLER: Initial Block Error Rate. The ratio of data blocks with initial
+ // transmission errors to all initial transmission data blocks.
+ kal_uint32 dl_rbler:7; // The downlink rBLER of both codewords within 1000ms, range[0,100]
+ // rBLER: Residual Block Error Rate. The ratio of data blocks with transmission
+ // errors after initial transmissions and retransmissions to all initial
+ // transmission data block.
+ kal_uint32 dl_prb_utilization:7; // Range [0,100].
+ kal_uint32 reserved:10;
+ kal_uint32 dl_slot_bler_valid:1; // 0: no abnormal,
+ // 1: match trigger criteria, parameters in DL Slot BLER Record are valid
+ nl1_pdsch_slot_bler dl_slot_bler_record[8];
+ kal_uint32 mimo_pdsch_throughput0; // The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)
+ kal_uint32 mimo_pdsch_throughput1; // The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)
+ kal_uint32 peak_throughput; // Peak throughput within 10 seconds(KB/sec)
+ kal_uint32 dl_tb0_size; // Average TBS of TB0 within 1000ms. Unit: bytes
+ kal_uint32 dl_tb1_size; // Average TBS of TB1 within 1000ms. Unit: bytes
+ kal_uint32 total_dl_assign_num:16; // Total DL Assignment number
+ kal_uint32 crc_ok_retx_cnt:16; // DL Grant(retx) although previous DL CRC OK
+ nl1_dl_grant_abnormal dl_grant_abnormal;
+} icd_nl1_mimo_pdsch_throughput_struct_v5;
+
+typedef icd_nl1_mimo_pdsch_throughput_struct_v5 icd_nl1_mimo_pdsch_throughput_struct;
+
+
+#endif /* _NL1_MIMO_PDSCH_THROUGHPUT_H */
+
+
+/* Public JSON start
+"NL1_MIMO_PDSCH_Throughput": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9007", "Name": "NL1_MIMO_PDSCH_Throughput", "Type": "RECORD", "Desc": "The log is generated every 1000 ms.\n"}, "table": {"NL1_MIMO_PDSCH_Throughput": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_MIMO_PDSCH_Throughput_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_MIMO_PDSCH_Throughput"}, "NL1_MIMO_PDSCH_Throughput_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_MIMO_PDSCH_Throughput_Content_V1", ""], "1": ["2", "NL1_MIMO_PDSCH_Throughput_Content_V2", ""], "2": ["3", "NL1_MIMO_PDSCH_Throughput_Content_V3", ""], "3": ["4", "NL1_MIMO_PDSCH_Throughput_Content_V4", ""], "4": ["5", "NL1_MIMO_PDSCH_Throughput_Content_V5", ""], "5": ["6", "NL1_MIMO_PDSCH_Throughput_Content_V6", ""]}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_Versions"}, "NL1_MIMO_PDSCH_Throughput_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["DL BLER", "UINT32", "1", "17", "7", "The downlink BLER of both codewords within 1000ms, range[0, 100]"], "4": ["DL iBLER", "UINT32", "1", "24", "7", "The downlink iBLER of both codewords within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "5": ["DL rBLER", "UINT32", "1", "31", "7", "The downlink rBLER of both codewords within 1000ms, range[0,100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with transmission\nerrors after initial transmissions and retransmissions to all initial\ntransmission data block."], "6": ["Reserved", "UINT32", "1", "38", "18", ""], "7": ["MIMO PDSCH Throughput0", "UINT32", "1", "56", "32", "The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)"], "8": ["MIMO PDSCH Throughput1", "UINT32", "1", "88", "32", "The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)"]}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_V1"}, "NL1_MIMO_PDSCH_Throughput_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["DL BLER", "UINT32", "1", "17", "7", "The downlink BLER of both codewords within 1000ms, range[0, 100]"], "4": ["DL iBLER", "UINT32", "1", "24", "7", "The downlink iBLER of both codewords within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "5": ["DL rBLER", "UINT32", "1", "31", "7", "The downlink rBLER of both codewords within 1000ms, range[0,100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with transmission\nerrors after initial transmissions and retransmissions to all initial\ntransmission data block."], "6": ["DL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "11", ""], "8": ["MIMO PDSCH Throughput0", "UINT32", "1", "56", "32", "The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)"], "9": ["MIMO PDSCH Throughput1", "UINT32", "1", "88", "32", "The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)"]}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_V2"}, "NL1_MIMO_PDSCH_Throughput_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["DL BLER", "UINT32", "1", "17", "7", "The downlink BLER of both codewords within 1000ms, range[0, 100]"], "4": ["DL iBLER", "UINT32", "1", "24", "7", "The downlink iBLER of both codewords within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "5": ["DL rBLER", "UINT32", "1", "31", "7", "The downlink rBLER of both codewords within 1000ms, range[0,100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with transmission\nerrors after initial transmissions and retransmissions to all initial\ntransmission data block."], "6": ["DL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "11", ""], "8": ["MIMO PDSCH Throughput0", "UINT32", "1", "56", "32", "The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)"], "9": ["MIMO PDSCH Throughput1", "UINT32", "1", "88", "32", "The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)"], "10": ["DL TB0 Size", "UINT32", "1", "120", "32", "Average TBS of TB0 within 1000ms. Unit: bytes"], "11": ["DL TB1 Size", "UINT32", "1", "152", "32", "Average TBS of TB1 within 1000ms. Unit: bytes"]}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_V3"}, "NL1_MIMO_PDSCH_Throughput_Content_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["DL BLER", "UINT32", "1", "17", "7", "The downlink BLER of both codewords within 1000ms, range[0, 100]"], "4": ["DL iBLER", "UINT32", "1", "24", "7", "The downlink iBLER of both codewords within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "5": ["DL rBLER", "UINT32", "1", "31", "7", "The downlink rBLER of both codewords within 1000ms, range[0,100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with transmission\nerrors after initial transmissions and retransmissions to all initial\ntransmission data block."], "6": ["DL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "11", ""], "8": ["MIMO PDSCH Throughput0", "UINT32", "1", "56", "32", "The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)"], "9": ["MIMO PDSCH Throughput1", "UINT32", "1", "88", "32", "The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)"], "10": ["DL TB0 Size", "UINT32", "1", "120", "32", "Average TBS of TB0 within 1000ms. Unit: bytes"], "11": ["DL TB1 Size", "UINT32", "1", "152", "32", "Average TBS of TB1 within 1000ms. Unit: bytes"], "12": ["Total DL Assign Num", "UINT32", "1", "184", "16", "Total DL Assignment number"], "13": ["Reserved", "UINT32", "1", "200", "16", ""]}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_V4"}, "NL1_MIMO_PDSCH_Throughput_Content_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["DL BLER", "UINT32", "1", "17", "7", "The downlink BLER of both codewords within 1000ms, range[0, 100]"], "4": ["DL iBLER", "UINT32", "1", "24", "7", "The downlink iBLER of both codewords within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "5": ["DL rBLER", "UINT32", "1", "31", "7", "The downlink rBLER of both codewords within 1000ms, range[0,100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with transmission\nerrors after initial transmissions and retransmissions to all initial\ntransmission data block."], "6": ["DL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "10", ""], "8": ["DL Slot BLER Valid", "UINT32", "1", "55", "1", "0: no abnormal,\n1: match trigger criteria, parameters in DL Slot BLER Record are valid"], "9": ["DL Slot BLER Record", "NL1_PDSCH_Slot_BLER_V1", "8", "56", "256", ""], "10": ["MIMO PDSCH Throughput0", "UINT32", "1", "312", "32", "The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)"], "11": ["MIMO PDSCH Throughput1", "UINT32", "1", "344", "32", "The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)"], "12": ["Peak Throughput", "UINT32", "1", "376", "32", "Peak throughput within 10 seconds(KB/sec)"], "13": ["DL TB0 Size", "UINT32", "1", "408", "32", "Average TBS of TB0 within 1000ms. Unit: bytes"], "14": ["DL TB1 Size", "UINT32", "1", "440", "32", "Average TBS of TB1 within 1000ms. Unit: bytes"], "15": ["Total DL Assign Num", "UINT32", "1", "472", "16", "Total DL Assignment number"], "16": ["Crc Ok Retx Cnt", "UINT32", "1", "488", "16", "DL Grant(retx) although previous DL CRC OK"], "17": ["DL Grant Abnormal", "NL1_DL_Grant_Abnormal_V1", "1", "504", "64", ""]}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_V5"}, "NL1_MIMO_PDSCH_Throughput_Content_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DL Slot BLER Record": "Number of DL Slot"}, "Name": "NL1_MIMO_PDSCH_Throughput_Content_V6", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nRange [0,1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record.\nRange [0,9]."], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["DL BLER", "UINT32", "1", "17", "7", "The downlink BLER of both codewords within 1000ms, range[0, 100]"], "4": ["DL iBLER", "UINT32", "1", "24", "7", "The downlink iBLER of both codewords within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with initial\ntransmission errors to all initial transmission data blocks."], "5": ["DL rBLER", "UINT32", "1", "31", "7", "The downlink rBLER of both codewords within 1000ms, range[0,100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with transmission\nerrors after initial transmissions and retransmissions to all initial\ntransmission data block."], "6": ["DL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "4", ""], "8": ["Number of DL Slot", "UINT32", "1", "49", "7", "range[0, 80]. Number of DL Slot BLER record"], "9": ["MIMO PDSCH Throughput0", "UINT32", "1", "56", "32", "The downlink bytes of codeword 0 decoded successfully within 1000ms(KB/sec)"], "10": ["MIMO PDSCH Throughput1", "UINT32", "1", "88", "32", "The downlink bytes of codeword 1 decoded successfully within 1000ms(KB/sec)"], "11": ["Peak Throughput", "UINT32", "1", "120", "32", "Peak throughput within 10 seconds(KB/sec)"], "12": ["DL TB0 Size", "UINT32", "1", "152", "32", "Average TBS of TB0 within 1000ms. Unit: bytes"], "13": ["DL TB1 Size", "UINT32", "1", "184", "32", "Average TBS of TB1 within 1000ms. Unit: bytes"], "14": ["Total DL Assign Num", "UINT32", "1", "216", "16", "Total DL Assignment number"], "15": ["Crc Ok Retx Cnt", "UINT32", "1", "232", "16", "DL Grant(retx) although previous DL CRC OK"], "16": ["DL Grant Abnormal", "NL1_DL_Grant_Abnormal_V1", "1", "248", "64", ""], "17": ["Reserved", "UINT32", "1", "312", "31", ""], "18": ["DL Slot BLER Valid", "UINT32", "1", "343", "1", "0: no abnormal,\n1: match trigger criteria, parameters in DL Slot BLER Record are valid"], "19": ["DL Slot BLER Record", "NL1_PDSCH_Slot_BLER_V1", "N", "344", "VAR", "N := Number of DL Slot"]}}, "NL1_DL_Grant_Abnormal_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL Grant Abnormal", "UINT32", "1", "0", "1", "0: no abnormal, 1: match trigger criteria, following parameters are valid"], "1": ["DL Retx Cnt", "UINT32", "1", "1", "13", "Number of DL grant(Retx) in 1000ms."], "2": ["Reserved", "UINT32", "1", "14", "18", ""], "3": ["Avg DL Num Rb", "UINT32", "1", "32", "22", "Average number of RBs per DL Grant"], "4": ["Avg DL Mcs", "UINT32", "1", "54", "5", "Average MCS for initial Tx, Range [0, 31]."], "5": ["Reserved", "UINT32", "1", "59", "5", ""]}, "Name": "NL1_DL_Grant_Abnormal_V1"}, "NL1_PDSCH_Slot_BLER_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["DL Slot Grant Cnt", "UINT32", "1", "0", "10", "Total number of DL Grant per slot in 1000ms."], "1": ["DL Slot BLER", "UINT32", "1", "10", "7", "DL BLER per slot in 1000ms,Range [0, 100]."], "2": ["Reserved", "UINT32", "1", "17", "15", ""]}, "Name": "NL1_PDSCH_Slot_BLER_V1"}}},
+ Public JSON end */
+// Checksum : [d44363664192275162a916e44972a9c1]
diff --git a/mcu/interface/service/icd/nl1/NL1_MultiSIM_Information.h b/mcu/interface/service/icd/nl1/NL1_MultiSIM_Information.h
new file mode 100644
index 0000000..80e9e29
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_MultiSIM_Information.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : NL1_MultiSIM_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9000
+// Version : V1.3
+
+#ifndef _NL1_MULTISIM_INFORMATION_H
+#define _NL1_MULTISIM_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_MULTISIM_INFORMATION 0x9000
+
+#define ICD_NL1_NL1_MULTISIM_INFORMATION_V1 1
+
+#define ICD_NL1_MULTISIM_INFORMATION_STRUCT_V1_MAX_SIZE 4
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 is_dr_allowed:1; // Is DR allowed or not.
+ // 1: allowed, 0: not allowed
+ kal_uint32 reserved:23;
+} icd_nl1_multisim_information_struct_v1;
+
+typedef icd_nl1_multisim_information_struct_v1 icd_nl1_multisim_information_struct;
+
+
+#endif /* _NL1_MULTISIM_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_MultiSIM_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9000", "Name": "NL1_MultiSIM_Information", "Type": "RECORD", "Desc": "The log is generated once there is a new value.\n"}, "table": {"NL1_MultiSIM_Information": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_MultiSIM_Information_Versions", "1", "8", "VAR", "Version of NL1_MultiSIM_Information"]}, "Name": "NL1_MultiSIM_Information"}, "NL1_MultiSIM_Information_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_MultiSIM_Information_V1", "Information of MultiSIM (version 1)"]}, "Name": "NL1_MultiSIM_Information_Versions"}, "NL1_MultiSIM_Information_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["is dr allowed", "UINT32", "1", "0", "1", "Is DR allowed or not.\n1: allowed, 0: not allowed"], "1": ["Reserved", "UINT32", "1", "1", "23", ""]}, "Name": "NL1_MultiSIM_Information_V1"}}},
+ Public JSON end */
+// Checksum : [67b76549d29a30a2a58fd94e7afb28a6]
diff --git a/mcu/interface/service/icd/nl1/NL1_NPD_Information.h b/mcu/interface/service/icd/nl1/NL1_NPD_Information.h
new file mode 100644
index 0000000..191a498
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_NPD_Information.h
@@ -0,0 +1,48 @@
+// ICD Header Format v3
+// Name : NL1_NPD_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9026
+// Version : V1.3
+
+#ifndef _NL1_NPD_INFORMATION_H
+#define _NL1_NPD_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_NPD_INFORMATION 0x9026
+
+#define ICD_NL1_NL1_NPD_INFORMATION_V1 1
+
+#define ICD_NL1_NPD_INFORMATION_STRUCT_V1_MAX_SIZE 36
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record, range[0,9]
+ kal_uint32 reserved:10;
+ kal_uint32 power_distribution_int; // Power distribution integer part (dB)
+ kal_uint32 interference_check_int; // Interference check integer part (dB)
+ kal_uint32 rx_coupling_int; // Rx coupling integer part (dB)
+ kal_uint32 qcl_mismatch_int; // QCL mismatch integer part (dB)
+ kal_uint32 coue_cdm_group_int; // CoUE cdm group integer part (dB)
+ kal_uint16 power_distribution_dec; // Power distribution decimal part
+ kal_uint16 interference_check_dec; // Interference check decimal part
+ kal_uint16 rx_coupling_dec; // Rx coupling decimal part
+ kal_uint16 qcl_mismatch_dec; // QCL mismatch decimal part
+ kal_uint16 coue_cdm_group_dec; // CoUE cdm group decimal part
+ kal_uint16 reserved_1;
+} icd_nl1_npd_information_struct_v1;
+
+typedef icd_nl1_npd_information_struct_v1 icd_nl1_npd_information_struct;
+
+
+#endif /* _NL1_NPD_INFORMATION_H */
+
+
+/* Internal JSON start
+"NL1_NPD_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9026", "Name": "NL1_NPD_Information", "Type": "RECORD", "Desc": "The log is generated every 1000 ms.\n"}, "table": {"NL1_NPD_Information": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_NPD_Information_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_NPD_Information"}, "NL1_NPD_Information_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_NPD_Information_V1", ""]}, "Name": "NL1_NPD_Information_Versions"}, "NL1_NPD_Information_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Reserved", "UINT32", "1", "14", "10", ""], "3": ["Power distribution int", "UINT32", "1", "24", "32", "Power distribution integer part (dB)"], "4": ["Interference check int", "UINT32", "1", "56", "32", "Interference check integer part (dB)"], "5": ["Rx coupling int", "UINT32", "1", "88", "32", "Rx coupling integer part (dB)"], "6": ["QCL mismatch int", "UINT32", "1", "120", "32", "QCL mismatch integer part (dB)"], "7": ["CoUE cdm group int", "UINT32", "1", "152", "32", "CoUE cdm group integer part (dB)"], "8": ["Power distribution dec", "UINT16", "1", "184", "16", "Power distribution decimal part"], "9": ["Interference check dec", "UINT16", "1", "200", "16", "Interference check decimal part"], "10": ["Rx coupling dec", "UINT16", "1", "216", "16", "Rx coupling decimal part"], "11": ["QCL mismatch dec", "UINT16", "1", "232", "16", "QCL mismatch decimal part"], "12": ["CoUE cdm group dec", "UINT16", "1", "248", "16", "CoUE cdm group decimal part"], "13": ["Reserved", "UINT16", "1", "264", "16", ""]}, "Name": "NL1_NPD_Information_V1"}}},
+ Internal JSON end */
+// Checksum : [917af46d16f9860b46f78e551ad473e3]
diff --git a/mcu/interface/service/icd/nl1/NL1_Neighbor_Cell_Measurement.h b/mcu/interface/service/icd/nl1/NL1_Neighbor_Cell_Measurement.h
new file mode 100644
index 0000000..9baa580
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Neighbor_Cell_Measurement.h
@@ -0,0 +1,85 @@
+// ICD Header Format v3
+// Name : NL1_Neighbor_Cell_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9002
+// Version : V1.3
+
+#ifndef _NL1_NEIGHBOR_CELL_MEASUREMENT_H
+#define _NL1_NEIGHBOR_CELL_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_NEIGHBOR_CELL_MEASUREMENT 0x9002
+
+#define ICD_NL1_NL1_NEIGHBOR_CELL_SSS_MEASUREMENT_INFO_V1 1
+
+#define MAX_ICD_NL1_NEIGHBOR_CELL_SSS_MEASUREMENT_STRUCT_V1_NUMBER_OF_RECORDS 19
+#define MAX_NL1_NEIGHBOR_CELL_SSS_MEASUREMENT_RECORD_V1_NCELL_NUM 20
+
+#define ICD_NL1_NEIGHBOR_CELL_SSS_MEASUREMENT_STRUCT_V1_MAX_SIZE 10724
+
+typedef struct {
+ kal_uint32 pci:10; // range[0, 1007],Physical Cell Identity
+ kal_uint32 ssb_index:8; // range[0, 63], SS Block index
+ kal_uint32 reserved:14;
+ kal_int16 rsrp; // Maximum RSRP value of two paths RSRP result
+ kal_int16 rsrp_rx0; // RX path 0 RSRP value in dbm,range[-162, 22]
+ kal_int16 rsrp_rx1; // RX path 1 RSRP value in dbm,range[-162, 22]
+ kal_int16 reserved_1;
+ kal_int8 rsrq; // Maximum RSRQ value of two paths RSRQ result
+ kal_int8 rsrq_rx0; // RX path 0 RSRQ value in db,range[-40, 10]
+ kal_int8 rsrq_rx1; // RX path 1 RSRQ value in db,range[-40, 10]
+ kal_int8 reserved_2;
+ kal_int16 rssi; // Maximum RSSI value of two paths RSSI result
+ kal_int16 rssi_rx0; // RX path 0 RSSI value in dbm,range[-150, -10]
+ kal_int16 rssi_rx1; // RX path 1 RSSI value in dbm,range[-150, -10]
+ kal_int16 reserved_3;
+ kal_int8 sinr; // Maximum SINR value of two paths SINR result
+ kal_int8 sinr_rx0; // RX path 0 SINR value in db,range[-20, 40]
+ kal_int8 sinr_rx1; // RX path 1 SINR value in db,range[-20, 40]
+ kal_int8 reserved_4;
+} nl1_neighbor_cell_sss_measurement_cell_info_v1;
+
+typedef nl1_neighbor_cell_sss_measurement_cell_info_v1 nl1_neighbor_cell_sss_measurement_cell_info;
+
+typedef struct {
+ kal_uint32 ncell_num:5; // Total number of cell, range[1, 20]
+ kal_uint32 sfn:10; // This is the system frame number based on the occurrence of serving cell measurement.
+ kal_uint32 subframe:4; // This is the sub-frame number based on the occurrence of serving cell measurement.
+ kal_uint32 ant_mask_0:4; // Number to indicate which antenna measurement result is applied to RX path 0.
+ // {0,7} means {antenna 0,antenna 7} 8 is None
+ kal_uint32 ant_mask_1:4; // Number to indicate which antenna measurement result is applied to RX path 1.
+ // {0,7} means {antenna 0,antenna 7} 8 is None
+ kal_uint32 reserved:5;
+ nl1_neighbor_cell_sss_measurement_cell_info neighbor_cells[FLEXIBLE_ARRAY_SIZE]; // N := Ncell Num
+} nl1_neighbor_cell_sss_measurement_record_v1;
+
+typedef nl1_neighbor_cell_sss_measurement_record_v1 nl1_neighbor_cell_sss_measurement_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 narfcn:22; // INR-ARFCN Absolute Radio Frequency Channel Number
+ kal_uint32 reserved:2;
+ kal_uint32 carrier_type:3; // 0:PCC,1:SCC1,2:SCC2,
+ // 3:SCC3,4:SCC4,5:Inter
+ kal_uint32 duplex_type:2; // 0:FDD,1:TDD,2:UNKNOW
+ kal_uint32 ssb_scs:2; // {0, 1, 2, 3} indicates SCS={15, 30, 120, 240} khz
+ kal_uint32 priority:3; // Frequency reselection priority,range[0, 7]
+ kal_uint32 number_of_records:5; // range[0, 19]
+ kal_uint32 reserved_1:17;
+ nl1_neighbor_cell_sss_measurement_record neighbor_ssb_cell_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_neighbor_cell_sss_measurement_struct_v1;
+
+typedef icd_nl1_neighbor_cell_sss_measurement_struct_v1 icd_nl1_neighbor_cell_sss_measurement_struct;
+
+
+#endif /* _NL1_NEIGHBOR_CELL_MEASUREMENT_H */
+
+
+/* Public JSON start
+"NL1_Neighbor_Cell_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9002", "Name": "NL1_Neighbor_Cell_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Neighbor_Cell_SSS_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Neighbor_Cell_SSS_Measurement_Info_Versions", "1", "8", "VAR", "Version of Neighbor_Cell_Measurement_Info"]}, "Name": "NL1_Neighbor_Cell_SSS_Measurement"}, "NL1_Neighbor_Cell_SSS_Measurement_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Neighbor_Cell_SSS_Measurement_Info_V1", "Information of neighbor cell measurement result (version 1)"]}, "Name": "NL1_Neighbor_Cell_SSS_Measurement_Info_Versions"}, "NL1_Neighbor_Cell_SSS_Measurement_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor SSB Cell Measurement Records": "Number of Records"}, "Name": "NL1_Neighbor_Cell_SSS_Measurement_Info_V1", "Data": {"0": ["NARFCN", "UINT32", "1", "0", "22", "INR-ARFCN Absolute Radio Frequency Channel Number"], "1": ["Reserved", "UINT32", "1", "22", "2", ""], "2": ["Carrier type", "UINT32", "1", "24", "3", "0:PCC,1:SCC1,2:SCC2,\n3:SCC3,4:SCC4,5:Inter"], "3": ["Duplex Type", "UINT32", "1", "27", "2", "0:FDD,1:TDD,2:UNKNOW"], "4": ["SSB_SCS", "UINT32", "1", "29", "2", "{0, 1, 2, 3} indicates SCS={15, 30, 120, 240} khz"], "5": ["Priority", "UINT32", "1", "31", "3", "Frequency reselection priority,range[0, 7]"], "6": ["Number of Records", "UINT32", "1", "34", "5", "range[0, 19]"], "7": ["Reserved", "UINT32", "1", "39", "17", ""], "8": ["Neighbor SSB Cell Measurement Records", "NL1_Neighbor_Cell_SSS_Measurement_Record_V1", "N", "56", "VAR", "N := Number of Records"]}}, "NL1_Neighbor_Cell_SSS_Measurement_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Neighbor Cells": "Ncell Num"}, "Name": "NL1_Neighbor_Cell_SSS_Measurement_Record_V1", "Data": {"0": ["Ncell Num", "UINT32", "1", "0", "5", "Total number of cell, range[1, 20]"], "1": ["SFN", "UINT32", "1", "5", "10", "This is the system frame number based on the occurrence of serving cell measurement."], "2": ["Subframe", "UINT32", "1", "15", "4", "This is the sub-frame number based on the occurrence of serving cell measurement."], "3": ["Ant mask 0", "UINT32", "1", "19", "4", "Number to indicate which antenna measurement result is applied to RX path 0.\n{0,7} means {antenna 0,antenna 7} 8 is None"], "4": ["Ant mask 1", "UINT32", "1", "23", "4", "Number to indicate which antenna measurement result is applied to RX path 1.\n{0,7} means {antenna 0,antenna 7} 8 is None"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Neighbor Cells", "NL1_Neighbor_Cell_SSS_Measurement_Cell_Info_V1", "N", "32", "VAR", "N := Ncell Num"]}}, "NL1_Neighbor_Cell_SSS_Measurement_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007],Physical Cell Identity"], "1": ["SSB Index", "UINT32", "1", "10", "8", "range[0, 63], SS Block index"], "2": ["Reserved", "UINT32", "1", "18", "14", ""], "3": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of two paths RSRP result"], "4": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm,range[-162, 22]"], "5": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm,range[-162, 22]"], "6": ["Reserved", "INT16", "1", "80", "16", ""], "7": ["RSRQ", "INT8", "1", "96", "8", "Maximum RSRQ value of two paths RSRQ result"], "8": ["RSRQ RX0", "INT8", "1", "104", "8", "RX path 0 RSRQ value in db,range[-40, 10]"], "9": ["RSRQ RX1", "INT8", "1", "112", "8", "RX path 1 RSRQ value in db,range[-40, 10]"], "10": ["Reserved", "INT8", "1", "120", "8", ""], "11": ["RSSI", "INT16", "1", "128", "16", "Maximum RSSI value of two paths RSSI result"], "12": ["RSSI RX0", "INT16", "1", "144", "16", "RX path 0 RSSI value in dbm,range[-150, -10]"], "13": ["RSSI RX1", "INT16", "1", "160", "16", "RX path 1 RSSI value in dbm,range[-150, -10]"], "14": ["Reserved", "INT16", "1", "176", "16", ""], "15": ["SINR", "INT8", "1", "192", "8", "Maximum SINR value of two paths SINR result"], "16": ["SINR RX0", "INT8", "1", "200", "8", "RX path 0 SINR value in db,range[-20, 40]"], "17": ["SINR RX1", "INT8", "1", "208", "8", "RX path 1 SINR value in db,range[-20, 40]"], "18": ["Reserved", "INT8", "1", "216", "8", ""]}, "Name": "NL1_Neighbor_Cell_SSS_Measurement_Cell_Info_V1"}}},
+ Public JSON end */
+// Checksum : [4cfb1d3a6295565c843de2066e91b2e3]
diff --git a/mcu/interface/service/icd/nl1/NL1_PBCH_DecodingResults.h b/mcu/interface/service/icd/nl1/NL1_PBCH_DecodingResults.h
new file mode 100644
index 0000000..0bf0de2
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PBCH_DecodingResults.h
@@ -0,0 +1,70 @@
+// ICD Header Format v3
+// Name : NL1_PBCH_DecodingResults
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x900A
+// Version : V1.3
+
+#ifndef _NL1_PBCH_DECODINGRESULTS_H
+#define _NL1_PBCH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PBCH_DECODINGRESULTS 0x900A
+
+#define ICD_NL1_NL1_PBCH_DECODING_INFO_V1 1
+
+#define MAX_ICD_NL1_PBCH_DECODING_RESULTS_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_PBCH_DECODING_RESULTS_STRUCT_V1_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 phys_cell_id:10; // range[0, 1007]
+ kal_uint32 crc_result:1; // 0: Fail
+ // 1: Pass
+ // If CRC result is failed, the content of other fields are invalid.
+ kal_uint32 sfn:10; // The SFN decoded in PBCH.
+ // range[0, 1023]
+ kal_uint32 half_radio_frame_bit:1;
+ kal_uint32 ssb_index:6;
+ kal_uint32 common_scs:1; // 0: scs15or60
+ // 1: scs30or120
+ kal_uint32 reserved:3;
+ kal_uint32 ssb_subcarrier_offset:4; // The frequency domain offset between SSB and the overall resource
+ // block grid in number of subcarriers.
+ kal_uint32 dmrs_typea_position:1; // 0: pos2
+ // 1: pos3
+ kal_uint32 pdcch_config_sib1:8;
+ kal_uint32 cellbarred:1; // 0: barred
+ // 1: notBarred
+ kal_uint32 intrafreqreselection:1; // 0: allowed
+ // 1: notAllowed
+ kal_uint32 reserved_1:17;
+} nl1_pbch_decoding_record_v1;
+
+typedef nl1_pbch_decoding_record_v1 nl1_pbch_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on the reporting time of the records.
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the reporting time of the records.
+ // range[0, 9]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:2;
+ nl1_pbch_decoding_record pbch_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_pbch_decoding_results_struct_v1;
+
+typedef icd_nl1_pbch_decoding_results_struct_v1 icd_nl1_pbch_decoding_results_struct;
+
+
+#endif /* _NL1_PBCH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"NL1_PBCH_DecodingResults": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x900A", "Name": "NL1_PBCH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PBCH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_PBCH_Decoding_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PBCH_Decoding_Results"}, "NL1_PBCH_Decoding_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PBCH_Decoding_Info_V1", ""]}, "Name": "NL1_PBCH_Decoding_Info_Versions"}, "NL1_PBCH_Decoding_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"PBCH Decoding Records": "Number of Records"}, "Name": "NL1_PBCH_Decoding_Info_V1", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the reporting time of the records.\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the reporting time of the records.\nrange[0, 9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "range[0, 7]"], "3": ["Number of Records", "UINT32", "1", "17", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "22", "2", ""], "5": ["PBCH Decoding Records", "NL1_PBCH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PBCH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["CRC Result", "UINT32", "1", "10", "1", "0: Fail\n1: Pass\nIf CRC result is failed, the content of other fields are invalid."], "2": ["SFN", "UINT32", "1", "11", "10", "The SFN decoded in PBCH.\nrange[0, 1023]"], "3": ["Half radio frame bit", "UINT32", "1", "21", "1", ""], "4": ["SSB index", "UINT32", "1", "22", "6", ""], "5": ["Common SCS", "UINT32", "1", "28", "1", "0: scs15or60\n1: scs30or120"], "6": ["Reserved", "UINT32", "1", "29", "3", ""], "7": ["SSB Subcarrier Offset", "UINT32", "1", "32", "4", "The frequency domain offset between SSB and the overall resource\nblock grid in number of subcarriers."], "8": ["dmrs TypeA Position", "UINT32", "1", "36", "1", "0: pos2\n1: pos3"], "9": ["PDCCH Config SIB1", "UINT32", "1", "37", "8", ""], "10": ["CellBarred", "UINT32", "1", "45", "1", "0: barred\n1: notBarred"], "11": ["IntraFreqReselection", "UINT32", "1", "46", "1", "0: allowed\n1: notAllowed"], "12": ["Reserved", "UINT32", "1", "47", "17", ""]}, "Name": "NL1_PBCH_Decoding_Record_V1"}}},
+ Public JSON end */
+// Checksum : [a9b3c4224f24ec46ac7716a1ad3690e4]
diff --git a/mcu/interface/service/icd/nl1/NL1_PDCCH_DecodingResults.h b/mcu/interface/service/icd/nl1/NL1_PDCCH_DecodingResults.h
new file mode 100644
index 0000000..082b4f5
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PDCCH_DecodingResults.h
@@ -0,0 +1,70 @@
+// ICD Header Format v3
+// Name : NL1_PDCCH_DecodingResults
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x900C
+// Version : V1.3
+
+#ifndef _NL1_PDCCH_DECODINGRESULTS_H
+#define _NL1_PDCCH_DECODINGRESULTS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PDCCH_DECODINGRESULTS 0x900C
+
+#define ICD_NL1_NL1_PDCCH_DECODING_INFO_V1 1
+
+#define MAX_ICD_NL1_PDCCH_DECODING_RESULTS_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_PDCCH_DECODING_RESULTS_STRUCT_V1_MAX_SIZE 84
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence time of this record.
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence time of this record.
+ // range[0, 9]
+ kal_uint32 slot_index:3; // Slot index within this SF.
+ // range[0, 7]
+ kal_uint32 decoding_result:1; // 0: Fail, 1: Success
+ kal_uint32 aggregation_level:3; // Aggregation level of the decoded DCI (in the number of CCEs).
+ // 0: Agg1, 1: Agg2, 2: Agg4, 3: Agg8, 4: Agg16
+ kal_uint32 dci_format:3; // 0: 0_0
+ // 1: 0_1
+ // 2: 1_0
+ // 3: 1_1
+ // 4: 2_0
+ // 5: 2_1
+ // 6: 2_2
+ // 7: 2_3
+ kal_uint32 rnti_type:2; // 0: C
+ // 1: TC
+ // 2: CS
+ // 3: RA
+ kal_uint32 search_space_type:1; // 0: Common, 1: UE-specific
+ kal_uint32 number_of_dl_tbs:1; // 0: 1 TB, 1: 2 TBs
+ kal_uint32 reserved:4;
+} nl1_pdcch_decoding_record_v1;
+
+typedef nl1_pdcch_decoding_record_v1 nl1_pdcch_decoding_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 phys_cell_id:10; // range[0, 1007]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:6;
+ nl1_pdcch_decoding_record pdcch_decoding_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_pdcch_decoding_results_struct_v1;
+
+typedef icd_nl1_pdcch_decoding_results_struct_v1 icd_nl1_pdcch_decoding_results_struct;
+
+
+#endif /* _NL1_PDCCH_DECODINGRESULTS_H */
+
+
+/* Public JSON start
+"NL1_PDCCH_DecodingResults": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x900C", "Name": "NL1_PDCCH_DecodingResults", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PDCCH_Decoding_Results": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_PDCCH_Decoding_Infos_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PDCCH_Decoding_Results"}, "NL1_PDCCH_Decoding_Infos_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PDCCH_Decoding_Info_V1", ""]}, "Name": "NL1_PDCCH_Decoding_Infos_Versions"}, "NL1_PDCCH_Decoding_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"PDCCH Decoding Records": "Number of Records"}, "Name": "NL1_PDCCH_Decoding_Info_V1", "Data": {"0": ["Phys Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Number of Records", "UINT32", "1", "13", "5", "range[0, 20]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["PDCCH Decoding Records", "NL1_PDCCH_Decoding_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PDCCH_Decoding_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence time of this record.\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence time of this record.\nrange[0, 9]"], "2": ["slot index", "UINT32", "1", "14", "3", "Slot index within this SF.\nrange[0, 7]"], "3": ["Decoding result", "UINT32", "1", "17", "1", "0: Fail, 1: Success"], "4": ["Aggregation Level", "UINT32", "1", "18", "3", "Aggregation level of the decoded DCI (in the number of CCEs).\n0: Agg1, 1: Agg2, 2: Agg4, 3: Agg8, 4: Agg16"], "5": ["DCI Format", "UINT32", "1", "21", "3", "0: 0_0\n1: 0_1\n2: 1_0\n3: 1_1\n4: 2_0\n5: 2_1\n6: 2_2\n7: 2_3"], "6": ["RNTI Type", "UINT32", "1", "24", "2", "0: C\n1: TC\n2: CS\n3: RA"], "7": ["Search Space Type", "UINT32", "1", "26", "1", "0: Common, 1: UE-specific"], "8": ["Number of DL TBs", "UINT32", "1", "27", "1", "0: 1 TB, 1: 2 TBs"], "9": ["Reserved", "UINT32", "1", "28", "4", ""]}, "Name": "NL1_PDCCH_Decoding_Record_V1"}}},
+ Public JSON end */
+// Checksum : [44fb9afaf5d02f7dbf098be8cfc7daf0]
diff --git a/mcu/interface/service/icd/nl1/NL1_PDSCH_DMRS_Measurement.h b/mcu/interface/service/icd/nl1/NL1_PDSCH_DMRS_Measurement.h
new file mode 100644
index 0000000..8dae794
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PDSCH_DMRS_Measurement.h
@@ -0,0 +1,56 @@
+// ICD Header Format v3
+// Name : NL1_PDSCH_DMRS_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9019
+// Version : V1.3
+
+#ifndef _NL1_PDSCH_DMRS_MEASUREMENT_H
+#define _NL1_PDSCH_DMRS_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PDSCH_DMRS_MEASUREMENT 0x9019
+
+#define ICD_NL1_NL1_PDSCH_DMRS_MEASUREMENT_INFO_V1 1
+
+#define MAX_ICD_NL1_PDSCH_DMRS_MEASUREMENT_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_PDSCH_DMRS_MEASUREMENT_STRUCT_V1_MAX_SIZE 244
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the system frame number based on the report timing.
+ kal_uint32 subframe:4; // This is the sub-frame number based on the report timing.
+ kal_uint32 slot:3; // This is the slot index based on the report timing.
+ kal_uint32 reserved:15;
+ kal_int8 snr_rx0; // RX path 0 SNR value in db,range[-20, 40], -128 means invalid
+ kal_int8 snr_rx1; // RX path 1 SNR value in db,range[-20, 40], -128 means invalid
+ kal_int8 snr_rx2; // RX path 2 SNR value in db,range[-20, 40], -128 means invalid
+ kal_int8 snr_rx3; // RX path 3 SNR value in db,range[-20, 40], -128 means invalid
+ kal_uint32 mi_valid:1; // 0: Invalid, 1: Valid
+ kal_uint32 mi_value:16; // In U4.12 format
+ kal_uint32 reserved_1:15;
+} nl1_pdsch_dmrs_record_v1;
+
+typedef nl1_pdsch_dmrs_record_v1 nl1_pdsch_dmrs_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[1, 20]
+ kal_uint32 reserved:9;
+ nl1_pdsch_dmrs_record pdsch_dmrs_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_pdsch_dmrs_measurement_struct_v1;
+
+typedef icd_nl1_pdsch_dmrs_measurement_struct_v1 icd_nl1_pdsch_dmrs_measurement_struct;
+
+
+#endif /* _NL1_PDSCH_DMRS_MEASUREMENT_H */
+
+
+/* Internal JSON start
+"NL1_PDSCH_DMRS_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9019", "Name": "NL1_PDSCH_DMRS_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PDSCH_DMRS_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "Nl1_PDSCH_DMRS_Measurement_Info_Versions", "1", "8", "VAR", "Version of PDSCH_DMRS_Measurement_Info"]}, "Name": "NL1_PDSCH_DMRS_Measurement"}, "Nl1_PDSCH_DMRS_Measurement_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PDSCH_DMRS_Measurement_Info_V1", "Information of PDSCH DMRS measurement result (version 1)"]}, "Name": "Nl1_PDSCH_DMRS_Measurement_Info_Versions"}, "NL1_PDSCH_DMRS_Measurement_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"PDSCH DMRS Measurement Records": "Number of Records"}, "Name": "NL1_PDSCH_DMRS_Measurement_Info_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[1, 20]"], "2": ["Reserved", "UINT32", "1", "15", "9", ""], "3": ["PDSCH DMRS Measurement Records", "NL1_PDSCH_DMRS_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PDSCH_DMRS_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the report timing."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the report timing."], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index based on the report timing."], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["SNR RX0", "INT8", "1", "32", "8", "RX path 0 SNR value in db,range[-20, 40], -128 means invalid"], "5": ["SNR RX1", "INT8", "1", "40", "8", "RX path 1 SNR value in db,range[-20, 40], -128 means invalid"], "6": ["SNR RX2", "INT8", "1", "48", "8", "RX path 2 SNR value in db,range[-20, 40], -128 means invalid"], "7": ["SNR RX3", "INT8", "1", "56", "8", "RX path 3 SNR value in db,range[-20, 40], -128 means invalid"], "8": ["MI Valid", "UINT32", "1", "64", "1", "0: Invalid, 1: Valid"], "9": ["MI Value", "UINT32", "1", "65", "16", "In U4.12 format"], "10": ["Reserved", "UINT32", "1", "81", "15", ""]}, "Name": "NL1_PDSCH_DMRS_Record_V1"}}},
+ Internal JSON end */
+// Checksum : [4782ea46a0cd324c544f836adae45ec2]
diff --git a/mcu/interface/service/icd/nl1/NL1_PUCCH_Power_Control.h b/mcu/interface/service/icd/nl1/NL1_PUCCH_Power_Control.h
new file mode 100644
index 0000000..00d4e57
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PUCCH_Power_Control.h
@@ -0,0 +1,68 @@
+// ICD Header Format v3
+// Name : NL1_PUCCH_Power_Control
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x900E
+// Version : V1.3
+
+#ifndef _NL1_PUCCH_POWER_CONTROL_H
+#define _NL1_PUCCH_POWER_CONTROL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PUCCH_POWER_CONTROL 0x900E
+
+#define ICD_NL1_NL1_PUCCH_POWER_CONTROL_INFO_V4 4
+
+#define MAX_ICD_NL1_PUCCH_POWER_CONTROL_STRUCT_V4_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_PUCCH_POWER_CONTROL_STRUCT_V4_MAX_SIZE 244
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 slot:3; // This is the Slot based on the occurrence of the
+ // record. range[0, 7]
+ kal_uint32 tx_format:4; // 0 - UCI format 0
+ // 1 - UCI format 1
+ // 2 - UCI format 2
+ // 3 - UCI format 3
+ // 4 - UCI format 4
+ kal_uint32 number_of_harq_bits:2; // range[0, 2]
+ kal_uint32 number_of_cqi_bits:4; // range[0, 13]
+ kal_uint32 reserved:5;
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 sar_backoff0:8; // Main antenna SAR
+ kal_uint32 sar_backoff1:8; // Diversity antenna SAR
+ kal_uint32 is_sul:1;
+ kal_uint32 reserved_1:7;
+ kal_int8 power; // Configured power, range[-50, 23]
+ kal_int8 transmitted_power; // Transmitted real power, range[-50, 23]
+ kal_int16 gi; // range[-141, 141]
+} nl1_pucch_power_control_record_v3;
+
+typedef nl1_pucch_power_control_record_v3 nl1_pucch_power_control_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:10; // range[0, 1007]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ nl1_pucch_power_control_record pucch_power_control_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_pucch_power_control_struct_v4;
+
+typedef icd_nl1_pucch_power_control_struct_v4 icd_nl1_pucch_power_control_struct;
+
+
+#endif /* _NL1_PUCCH_POWER_CONTROL_H */
+
+
+/* Public JSON start
+"NL1_PUCCH_Power_Control": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x900E", "Name": "NL1_PUCCH_Power_Control", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PUCCH_Power_Control": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Pucch_Power_Control_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PUCCH_Power_Control"}, "NL1_Pucch_Power_Control_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PUCCH_Power_Control_Info_V1", ""], "1": ["2", "NL1_PUCCH_Power_Control_Info_V2", ""], "2": ["3", "NL1_PUCCH_Power_Control_Info_V3", ""], "3": ["4", "NL1_PUCCH_Power_Control_Info_V4", ""]}, "Name": "NL1_Pucch_Power_Control_Info_Versions"}, "NL1_PUCCH_Power_Control_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Power Control Records": "Number of Records"}, "Name": "NL1_PUCCH_Power_Control_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Power Control Records", "NL1_PUCCH_Power_Control_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUCCH_Power_Control_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Power Control Records": "Number of Records"}, "Name": "NL1_PUCCH_Power_Control_Info_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Power Control Records", "NL1_PUCCH_Power_Control_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUCCH_Power_Control_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Power Control Records": "Number of Records"}, "Name": "NL1_PUCCH_Power_Control_Info_V3", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Power Control Records", "NL1_PUCCH_Power_Control_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUCCH_Power_Control_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Power Control Records": "Number of Records"}, "Name": "NL1_PUCCH_Power_Control_Info_V4", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Power Control Records", "NL1_PUCCH_Power_Control_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUCCH_Power_Control_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the Slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Tx Format", "UINT32", "1", "17", "4", "0 - UCI format 0\n1 - UCI format 1\n2 - UCI format 2\n3 - UCI format 3\n4 - UCI format 4"], "4": ["Number of HARQ Bits", "UINT32", "1", "21", "2", "range[0, 2]"], "5": ["Number of CQI Bits", "UINT32", "1", "23", "4", "range[0, 13]"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["Path Loss", "UINT32", "1", "32", "8", "range[0, 255]"], "8": ["Power Backoff", "UINT32", "1", "40", "16", "TX power backoff, bit0~bit6: mantissa of power backoff\n, bit7~bit15: exponent of power backoff"], "9": ["Reserved", "UINT32", "1", "56", "8", ""], "10": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "11": ["Reserved", "INT8", "1", "72", "8", ""], "12": ["Gi", "INT16", "1", "80", "16", "range[-141, 141]"]}, "Name": "NL1_PUCCH_Power_Control_Record_V1"}, "NL1_PUCCH_Power_Control_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the Slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Tx Format", "UINT32", "1", "17", "4", "0 - UCI format 0\n1 - UCI format 1\n2 - UCI format 2\n3 - UCI format 3\n4 - UCI format 4"], "4": ["Number of HARQ Bits", "UINT32", "1", "21", "2", "range[0, 2]"], "5": ["Number of CQI Bits", "UINT32", "1", "23", "4", "range[0, 13]"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["Path Loss", "UINT32", "1", "32", "8", "range[0, 255]"], "8": ["SAR Backoff0", "UINT32", "1", "40", "8", "Main antenna SAR"], "9": ["SAR Backoff1", "UINT32", "1", "48", "8", "Diversity antenna SAR"], "10": ["Reserved", "UINT32", "1", "56", "8", ""], "11": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "12": ["Reserved", "INT8", "1", "72", "8", ""], "13": ["Gi", "INT16", "1", "80", "16", "range[-141, 141]"]}, "Name": "NL1_PUCCH_Power_Control_Record_V2"}, "NL1_PUCCH_Power_Control_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the Slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Tx Format", "UINT32", "1", "17", "4", "0 - UCI format 0\n1 - UCI format 1\n2 - UCI format 2\n3 - UCI format 3\n4 - UCI format 4"], "4": ["Number of HARQ Bits", "UINT32", "1", "21", "2", "range[0, 2]"], "5": ["Number of CQI Bits", "UINT32", "1", "23", "4", "range[0, 13]"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["Path Loss", "UINT32", "1", "32", "8", "range[0, 255]"], "8": ["SAR Backoff0", "UINT32", "1", "40", "8", "Main antenna SAR"], "9": ["SAR Backoff1", "UINT32", "1", "48", "8", "Diversity antenna SAR"], "10": ["Is Sul", "UINT32", "1", "56", "1", ""], "11": ["Reserved", "UINT32", "1", "57", "7", ""], "12": ["Power", "INT8", "1", "64", "8", "Configured power, range[-50, 23]"], "13": ["Transmitted Power", "INT8", "1", "72", "8", "Transmitted real power, range[-50, 23]"], "14": ["Gi", "INT16", "1", "80", "16", "range[-141, 141]"]}, "Name": "NL1_PUCCH_Power_Control_Record_V3"}}},
+ Public JSON end */
+// Checksum : [172ed4f3c99204a3c11faee4593900ec]
diff --git a/mcu/interface/service/icd/nl1/NL1_PUCCH_Report.h b/mcu/interface/service/icd/nl1/NL1_PUCCH_Report.h
new file mode 100644
index 0000000..4b33c14
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PUCCH_Report.h
@@ -0,0 +1,58 @@
+// ICD Header Format v3
+// Name : NL1_PUCCH_Report
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x900D
+// Version : t-internal-nr-icd-draft3RC1-346-g5ccdab4
+
+#ifndef _NL1_PUCCH_REPORT_H
+#define _NL1_PUCCH_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PUCCH_REPORT 0x900D
+
+#define ICD_NL1_NL1_PUCCH_REPORT_INFO_V3 3
+
+#define MAX_ICD_NL1_PUCCH_REPORTS_STRUCT_V3_NUMBER_OF_REPORTS 20
+
+#define ICD_NL1_PUCCH_REPORTS_STRUCT_V3_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 slot:3; // range[0, 7]
+ kal_uint32 format:4; // Enum{0:UCI format 0,1: UCI format 1,2: UCI format 2,
+ // 3:UCI format 3,4: UCI format 4}
+ kal_uint32 number_of_pdsch:8; // range[1, 255]
+ kal_uint32 number_of_slots:3;
+ kal_uint32 number_of_ack_bits:16;
+ kal_uint32 reserved:16;
+} nl1_pucch_tx_report_v1;
+
+typedef nl1_pucch_tx_report_v1 nl1_pucch_tx_report;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:10; // range[0, 1007]
+ kal_uint32 cell_group_id:1; // range[0, 1]
+ kal_uint32 carrier_index:4; // range[0, 8]
+ kal_uint32 reserved:4;
+ kal_uint32 number_of_reports:5; // range[0, 20]
+ nl1_pucch_tx_report pucch_tx_reports[FLEXIBLE_ARRAY_SIZE]; // N := Number of Reports
+} icd_nl1_pucch_reports_struct_v3;
+
+typedef icd_nl1_pucch_reports_struct_v3 icd_nl1_pucch_reports_struct;
+
+
+#endif /* _NL1_PUCCH_REPORT_H */
+
+
+/* Public JSON start
+"NL1_PUCCH_Report": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x900D", "Name": "NL1_PUCCH_Report", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PUCCH_Reports": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_PUCCH_Report_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PUCCH_Reports"}, "NL1_PUCCH_Report_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PUCCH_Report_Info_V1", ""], "1": ["2", "NL1_PUCCH_Report_Info_V2", ""], "2": ["3", "NL1_PUCCH_Report_Info_V3", ""]}, "Name": "NL1_PUCCH_Report_Info_Versions"}, "NL1_PUCCH_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Tx Reports": "Number of Reports"}, "Name": "NL1_PUCCH_Report_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Tx Reports", "NL1_PUCCH_TX_Report_V1", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUCCH_Report_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Tx Reports": "Number of Reports"}, "Name": "NL1_PUCCH_Report_Info_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pucch Tx Reports", "NL1_PUCCH_TX_Report_V1", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUCCH_Report_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pucch Tx Reports": "Number of Reports"}, "Name": "NL1_PUCCH_Report_Info_V3", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Cell Group Id", "UINT32", "1", "10", "1", "range[0, 1]"], "2": ["Carrier Index", "UINT32", "1", "11", "4", "range[0, 8]"], "3": ["Reserved", "UINT32", "1", "15", "4", ""], "4": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "5": ["Pucch Tx Reports", "NL1_PUCCH_TX_Report_V1", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUCCH_TX_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "range[0, 7]"], "3": ["Format", "UINT32", "1", "17", "4", "Enum{0:UCI format 0,1: UCI format 1,2: UCI format 2,\n3:UCI format 3,4: UCI format 4}"], "4": ["Number of PDSCH", "UINT32", "1", "21", "8", "range[1, 255]"], "5": ["Number of Slots", "UINT32", "1", "29", "3", ""], "6": ["Number of ACK bits", "UINT32", "1", "32", "16", ""], "7": ["Reserved", "UINT32", "1", "48", "16", ""]}, "Name": "NL1_PUCCH_TX_Report_V1"}}},
+ Public JSON end */
+// Checksum : [aef84d4ac91a6c0b4322496a5861c21a]
diff --git a/mcu/interface/service/icd/nl1/NL1_PUSCH_Power_Control.h b/mcu/interface/service/icd/nl1/NL1_PUSCH_Power_Control.h
new file mode 100644
index 0000000..10f11ca
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PUSCH_Power_Control.h
@@ -0,0 +1,67 @@
+// ICD Header Format v3
+// Name : NL1_PUSCH_Power_Control
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9011
+// Version : V1.3
+
+#ifndef _NL1_PUSCH_POWER_CONTROL_H
+#define _NL1_PUSCH_POWER_CONTROL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PUSCH_POWER_CONTROL 0x9011
+
+#define ICD_NL1_NL1_PUSCH_POWER_CONTROL_INFO_V6 6
+
+#define MAX_ICD_NL1_PUSCH_POWER_CONTROL_STRUCT_V6_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_PUSCH_POWER_CONTROL_STRUCT_V6_MAX_SIZE 404
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 slot:3; // This is the slot based on the occurrence of the
+ // record. range[0, 7]
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 tx_type:2; // 0: SPS, 1: Dynamic, 2: MSG3
+ kal_uint32 reserved:5;
+ kal_uint32 number_of_rb:9; // range[1, 273]
+ kal_uint32 sar_backoff0:8; // Main antenna SAR
+ kal_uint32 sar_backoff1:8; // Diversity antenna SAR
+ kal_uint32 is_sul:1;
+ kal_uint32 reserved_1:6;
+ kal_uint32 tb_size; // in bytes
+ kal_int8 power; // Configured power, range[-50, 23]
+ kal_int8 tpc; // range[-6, 8]
+ kal_int16 fi; // range[-141, 141)
+ kal_int16 mpr;
+ kal_int8 transmitted_power; // Transmitted real power, range[-50, 23]
+ kal_int8 reserved_2;
+} nl1_pusch_power_control_record_v5;
+
+typedef nl1_pusch_power_control_record_v5 nl1_pusch_power_control_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:10; // range[0, 1007]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ nl1_pusch_power_control_record pusch_power_control_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_pusch_power_control_struct_v6;
+
+typedef icd_nl1_pusch_power_control_struct_v6 icd_nl1_pusch_power_control_struct;
+
+
+#endif /* _NL1_PUSCH_POWER_CONTROL_H */
+
+
+/* Public JSON start
+"NL1_PUSCH_Power_Control": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9011", "Name": "NL1_PUSCH_Power_Control", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PUSCH_Power_Control": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_PUSCH_Power_Control_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PUSCH_Power_Control"}, "NL1_PUSCH_Power_Control_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PUSCH_Power_Control_Info_V1", ""], "1": ["2", "NL1_PUSCH_Power_Control_Info_V2", ""], "2": ["3", "NL1_PUSCH_Power_Control_Info_V3", ""], "3": ["4", "NL1_PUSCH_Power_Control_Info_V4", ""], "4": ["5", "NL1_PUSCH_Power_Control_Info_V5", ""], "5": ["6", "NL1_PUSCH_Power_Control_Info_V6", ""]}, "Name": "NL1_PUSCH_Power_Control_Info_Versions"}, "NL1_PUSCH_Power_Control_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "NL1_PUSCH_Power_Control_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "NL1_PUSCH_Power_Control_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUSCH_Power_Control_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "NL1_PUSCH_Power_Control_Info_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "NL1_PUSCH_Power_Control_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUSCH_Power_Control_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "NL1_PUSCH_Power_Control_Info_V3", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "NL1_PUSCH_Power_Control_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUSCH_Power_Control_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "NL1_PUSCH_Power_Control_Info_V4", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "NL1_PUSCH_Power_Control_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUSCH_Power_Control_Info_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "NL1_PUSCH_Power_Control_Info_V5", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "NL1_PUSCH_Power_Control_Record_V4", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUSCH_Power_Control_Info_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Power Control Records": "Number of Records"}, "Name": "NL1_PUSCH_Power_Control_Info_V6", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Power Control Records", "NL1_PUSCH_Power_Control_Record_V5", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_PUSCH_Power_Control_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Path Loss", "UINT32", "1", "17", "8", "range[0, 255]"], "4": ["Tx Type", "UINT32", "1", "25", "2", "0: SPS, 1: Dynamic, 2: MSG3"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Number of RB", "UINT32", "1", "32", "9", "range[1, 273]"], "7": ["TB Size", "UINT32", "1", "41", "14", "in bytes"], "8": ["Reserved", "UINT32", "1", "55", "9", ""], "9": ["Power", "INT8", "1", "64", "8", "range[-50, 23]"], "10": ["TPC", "INT8", "1", "72", "8", "range[-6, 8]"], "11": ["Fi", "INT16", "1", "80", "16", "range[-141, 141)"]}, "Name": "NL1_PUSCH_Power_Control_Record_V1"}, "NL1_PUSCH_Power_Control_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Path Loss", "UINT32", "1", "17", "8", "range[0, 255]"], "4": ["Tx Type", "UINT32", "1", "25", "2", "0: SPS, 1: Dynamic, 2: MSG3"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Number of RB", "UINT32", "1", "32", "9", "range[1, 273]"], "7": ["Reserved", "UINT32", "1", "41", "23", ""], "8": ["TB Size", "UINT32", "1", "64", "32", "in bytes"], "9": ["Power", "INT8", "1", "96", "8", "range[-50, 23]"], "10": ["TPC", "INT8", "1", "104", "8", "range[-6, 8]"], "11": ["Fi", "INT16", "1", "112", "16", "range[-141, 141)"]}, "Name": "NL1_PUSCH_Power_Control_Record_V2"}, "NL1_PUSCH_Power_Control_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Path Loss", "UINT32", "1", "17", "8", "range[0, 255]"], "4": ["Tx Type", "UINT32", "1", "25", "2", "0: SPS, 1: Dynamic, 2: MSG3"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Number of RB", "UINT32", "1", "32", "9", "range[1, 273]"], "7": ["SAR Backoff0", "UINT32", "1", "41", "8", "Main antenna SAR"], "8": ["SAR Backoff1", "UINT32", "1", "49", "8", "Diversity antenna SAR"], "9": ["Reserved", "UINT32", "1", "57", "7", ""], "10": ["TB Size", "UINT32", "1", "64", "32", "in bytes"], "11": ["Power", "INT8", "1", "96", "8", "range[-50, 23]"], "12": ["TPC", "INT8", "1", "104", "8", "range[-6, 8]"], "13": ["Fi", "INT16", "1", "112", "16", "range[-141, 141)"]}, "Name": "NL1_PUSCH_Power_Control_Record_V3"}, "NL1_PUSCH_Power_Control_Record_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Path Loss", "UINT32", "1", "17", "8", "range[0, 255]"], "4": ["Tx Type", "UINT32", "1", "25", "2", "0: SPS, 1: Dynamic, 2: MSG3"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Number of RB", "UINT32", "1", "32", "9", "range[1, 273]"], "7": ["SAR Backoff0", "UINT32", "1", "41", "8", "Main antenna SAR"], "8": ["SAR Backoff1", "UINT32", "1", "49", "8", "Diversity antenna SAR"], "9": ["Reserved", "UINT32", "1", "57", "7", ""], "10": ["TB Size", "UINT32", "1", "64", "32", "in bytes"], "11": ["Power", "INT8", "1", "96", "8", "range[-50, 23]"], "12": ["TPC", "INT8", "1", "104", "8", "range[-6, 8]"], "13": ["Fi", "INT16", "1", "112", "16", "range[-141, 141)"], "14": ["MPR", "INT16", "1", "128", "16", ""], "15": ["Reserved", "INT16", "1", "144", "16", ""]}, "Name": "NL1_PUSCH_Power_Control_Record_V4"}, "NL1_PUSCH_Power_Control_Record_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot based on the occurrence of the\nrecord. range[0, 7]"], "3": ["Path Loss", "UINT32", "1", "17", "8", "range[0, 255]"], "4": ["Tx Type", "UINT32", "1", "25", "2", "0: SPS, 1: Dynamic, 2: MSG3"], "5": ["Reserved", "UINT32", "1", "27", "5", ""], "6": ["Number of RB", "UINT32", "1", "32", "9", "range[1, 273]"], "7": ["SAR Backoff0", "UINT32", "1", "41", "8", "Main antenna SAR"], "8": ["SAR Backoff1", "UINT32", "1", "49", "8", "Diversity antenna SAR"], "9": ["Is Sul", "UINT32", "1", "57", "1", ""], "10": ["Reserved", "UINT32", "1", "58", "6", ""], "11": ["TB Size", "UINT32", "1", "64", "32", "in bytes"], "12": ["Power", "INT8", "1", "96", "8", "Configured power, range[-50, 23]"], "13": ["TPC", "INT8", "1", "104", "8", "range[-6, 8]"], "14": ["Fi", "INT16", "1", "112", "16", "range[-141, 141)"], "15": ["MPR", "INT16", "1", "128", "16", ""], "16": ["Transmitted Power", "INT8", "1", "144", "8", "Transmitted real power, range[-50, 23]"], "17": ["Reserved", "INT8", "1", "152", "8", ""]}, "Name": "NL1_PUSCH_Power_Control_Record_V5"}}},
+ Public JSON end */
+// Checksum : [0733183434ee40ee75e78a63956d1fdb]
diff --git a/mcu/interface/service/icd/nl1/NL1_PUSCH_Report.h b/mcu/interface/service/icd/nl1/NL1_PUSCH_Report.h
new file mode 100644
index 0000000..3e124a7
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_PUSCH_Report.h
@@ -0,0 +1,68 @@
+// ICD Header Format v3
+// Name : NL1_PUSCH_Report
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9010
+// Version : V1.3
+
+#ifndef _NL1_PUSCH_REPORT_H
+#define _NL1_PUSCH_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PUSCH_REPORT 0x9010
+
+#define ICD_NL1_NL1_PUSCH_REPORT_INFO_V2 2
+
+#define MAX_ICD_NL1_PUSCH_REPORT_STRUCT_V2_NUMBER_OF_REPORTS 20
+
+#define ICD_NL1_PUSCH_REPORT_STRUCT_V2_MAX_SIZE 404
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of the record
+ // range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of the record
+ // range[0, 9]
+ kal_uint32 slot:3; // range[0, 7]
+ kal_uint32 modulation_order:2; // 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
+ kal_uint32 reserved:13;
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 harq_id:4; // range[0, 15]
+ kal_uint32 frequency_hopping:2; // 0: Disabled
+ // 1: Inter
+ // 2: Intra
+ kal_uint32 start_rb_slot_0:9; // range[0, 272]
+ kal_uint32 start_rb_slot_1:9; // range[0, 272]
+ kal_uint32 number_of_rbs:9; // range[1, 273]
+ kal_uint32 retx_index:5; // range[1, 28]
+ kal_uint32 betaoffsetack_value:5; // range[0,31]
+ kal_uint32 reserved_1:13;
+ kal_uint32 tb_size; // in bytes
+ kal_int8 power; // range[-50, 23]
+ kal_int8 tpc; // range[-6, 8]
+ kal_int16 fi; // range[-141,141]
+} nl1_pusch_tx_report_v2;
+
+typedef nl1_pusch_tx_report_v2 nl1_pusch_tx_report;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:9; // range[0, 503]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:7;
+ kal_uint32 number_of_reports:5; // range[0, 20]
+ nl1_pusch_tx_report pusch_tx_reports[FLEXIBLE_ARRAY_SIZE]; // N := Number of Reports
+} icd_nl1_pusch_report_struct_v2;
+
+typedef icd_nl1_pusch_report_struct_v2 icd_nl1_pusch_report_struct;
+
+
+#endif /* _NL1_PUSCH_REPORT_H */
+
+
+/* Public JSON start
+"NL1_PUSCH_Report": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9010", "Name": "NL1_PUSCH_Report", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_PUSCH_Report": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_PUSCH_Report_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_PUSCH_Report"}, "NL1_PUSCH_Report_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_PUSCH_Report_Info_V1", ""], "1": ["2", "NL1_PUSCH_Report_Info_V2", ""], "2": ["3", "NL1_PUSCH_Report_Info_V3", ""], "3": ["4", "NL1_PUSCH_Report_Info_V4", ""]}, "Name": "NL1_PUSCH_Report_Info_Versions"}, "NL1_PUSCH_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Tx Reports": "Number of Reports"}, "Name": "NL1_PUSCH_Report_Info_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Tx Reports", "NL1_PUSCH_TX_Report_V1", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUSCH_Report_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Tx Reports": "Number of Reports"}, "Name": "NL1_PUSCH_Report_Info_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Tx Reports", "NL1_PUSCH_TX_Report_V2", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUSCH_Report_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Tx Reports": "Number of Reports"}, "Name": "NL1_PUSCH_Report_Info_V3", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Tx Reports", "NL1_PUSCH_TX_Report_V3", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUSCH_Report_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Pusch Tx Reports": "Number of Reports"}, "Name": "NL1_PUSCH_Report_Info_V4", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Reports", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["Pusch Tx Reports", "NL1_PUSCH_TX_Report_V3", "N", "24", "VAR", "N := Number of Reports"]}}, "NL1_PUSCH_TX_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "range[0, 7]"], "3": ["Modulation Order", "UINT32", "1", "17", "2", "0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM"], "4": ["Reserved", "UINT32", "1", "19", "13", ""], "5": ["Path Loss", "UINT32", "1", "32", "8", "range[0, 255]"], "6": ["HARQ ID", "UINT32", "1", "40", "4", "range[0, 15]"], "7": ["Frequency Hopping", "UINT32", "1", "44", "2", "0: Disabled\n1: Inter SF\n2: Intra+Inter\n3: Undefined"], "8": ["Start RB Slot 0", "UINT32", "1", "46", "7", "range[0, 99]"], "9": ["Start RB Slot 1", "UINT32", "1", "53", "7", "range[0, 99]"], "10": ["Reserved", "UINT32", "1", "60", "4", ""], "11": ["DMRS Seq Slot 0", "UINT32", "1", "64", "5", "range[0, 11]"], "12": ["DMRS Seq Slot 1", "UINT32", "1", "69", "5", "range[0, 11]"], "13": ["Number of RBs", "UINT32", "1", "74", "9", "range[1, 273]"], "14": ["Reserved", "UINT32", "1", "83", "13", ""], "15": ["ReTx Index", "UINT32", "1", "96", "5", "range[1, 28]"], "16": ["BetaOffsetACK Value", "UINT32", "1", "101", "4", "range[0,31]"], "17": ["TB Size", "UINT32", "1", "105", "16", "in bytes"], "18": ["Reserved", "UINT32", "1", "121", "7", ""], "19": ["Power", "INT8", "1", "128", "8", "range[-50, 23]"], "20": ["TPC", "INT8", "1", "136", "8", "range[-6, 8]"], "21": ["Fi", "INT16", "1", "144", "16", "range[-141,141]"]}, "Name": "NL1_PUSCH_TX_Report_V1"}, "NL1_PUSCH_TX_Report_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "range[0, 7]"], "3": ["Modulation Order", "UINT32", "1", "17", "2", "0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM"], "4": ["Reserved", "UINT32", "1", "19", "13", ""], "5": ["Path Loss", "UINT32", "1", "32", "8", "range[0, 255]"], "6": ["HARQ ID", "UINT32", "1", "40", "4", "range[0, 15]"], "7": ["Frequency Hopping", "UINT32", "1", "44", "2", "0: Disabled\n1: Inter\n2: Intra"], "8": ["Start RB Slot 0", "UINT32", "1", "46", "9", "range[0, 272]"], "9": ["Start RB Slot 1", "UINT32", "1", "55", "9", "range[0, 272]"], "10": ["Number of RBs", "UINT32", "1", "64", "9", "range[1, 273]"], "11": ["ReTx Index", "UINT32", "1", "73", "5", "range[1, 28]"], "12": ["BetaOffsetACK Value", "UINT32", "1", "78", "5", "range[0,31]"], "13": ["Reserved", "UINT32", "1", "83", "13", ""], "14": ["TB Size", "UINT32", "1", "96", "32", "in bytes"], "15": ["Power", "INT8", "1", "128", "8", "range[-50, 23]"], "16": ["TPC", "INT8", "1", "136", "8", "range[-6, 8]"], "17": ["Fi", "INT16", "1", "144", "16", "range[-141,141]"]}, "Name": "NL1_PUSCH_TX_Report_V2"}, "NL1_PUSCH_TX_Report_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of the record\nrange[0, 1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of the record\nrange[0, 9]"], "2": ["Slot", "UINT32", "1", "14", "3", "range[0, 7]"], "3": ["Modulation Order", "UINT32", "1", "17", "2", "0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM"], "4": ["HARQ ID", "UINT32", "1", "19", "4", "range[0, 15]"], "5": ["Tx Mode", "UINT32", "1", "23", "2", "0: invalud, 1: new tx, 2: TB-based retx, 3: CB-based retx"], "6": ["Reserved", "UINT32", "1", "25", "7", ""], "7": ["Number of HARQ bits", "UINT32", "1", "32", "11", ""], "8": ["Number of CSI-1 bits", "UINT32", "1", "43", "11", ""], "9": ["Reserved", "UINT32", "1", "54", "10", ""], "10": ["Number of CSI-2 bits", "UINT32", "1", "64", "11", ""], "11": ["Reserved", "UINT32", "1", "75", "21", ""]}, "Name": "NL1_PUSCH_TX_Report_V3"}}},
+ Public JSON end */
+// Checksum : [66eaa81a150353358d8986bfcb5adde0]
diff --git a/mcu/interface/service/icd/nl1/NL1_Physical_Configuration.h b/mcu/interface/service/icd/nl1/NL1_Physical_Configuration.h
new file mode 100644
index 0000000..2be17cc
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Physical_Configuration.h
@@ -0,0 +1,377 @@
+// ICD Header Format v3
+// Name : NL1_Physical_Configuration
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9014
+// Version : t-internal-nr-icd-draft3RC1-376-g2f8de9e
+
+#ifndef _NL1_PHYSICAL_CONFIGURATION_H
+#define _NL1_PHYSICAL_CONFIGURATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_PHYSICAL_CONFIGURATION 0x9014
+
+#define ICD_NL1_NL1_PHY_CONFIG_V21 21
+
+#define MAX_ICD_NL1_PHYSICAL_CONFIGURATION_STRUCT_V21_NUMBER_OF_SCELL 8
+
+#define ICD_NL1_PHYSICAL_CONFIGURATION_STRUCT_V21_MAX_SIZE 1532
+
+typedef struct {
+ kal_uint32 pcch_config_idle_valid:1; // Enum{0: invalid, 1: valid}, valid once UE enters idle mode
+ kal_uint32 default_paging_cycle:9; // range[32, 256]
+ kal_uint32 n:3; // Enum{0: 1T, 1: T/2, 2: T/4, 3: T/8, 4: T/16}
+ kal_uint32 paging_offset:4; // range[0, 15]
+ kal_uint32 ns:3; // range[1, 4]
+ kal_uint32 user_specific_paging_cycle:9; // range[32, 256]
+ kal_uint32 reserved:3;
+} nl1_pcch_config_v1;
+
+typedef nl1_pcch_config_v1 nl1_pcch_config;
+
+typedef struct {
+ kal_uint32 periodicity:10; // range[4, 640]
+ kal_uint32 prb_number:9; // range[0, 273]
+ kal_uint32 qcl_source:2; // Enum{0: invalid, 1: SSB, 2: CSI-RS}
+ kal_uint32 qcl_source_id:7; // If QCL Source is SSB, the ID means SSB index. If QCL Source is
+ // CSI-RS, the ID means CSI-RS resource ID.
+ kal_uint32 qcl_type:2; // Valid only when QCL Source is valid.
+ // Enum{ 0: Type A, 1: Type B, 2: Type C, 3: Type D}
+ kal_uint32 reserved:2;
+} nl1_trs_config_v1;
+
+typedef nl1_trs_config_v1 nl1_trs_config;
+
+typedef struct {
+ kal_uint32 bwp_id:3; // range[0, 4]
+ kal_uint32 bwp_start:9;
+ kal_uint32 bwp_size:9; // range[0, 275]
+ kal_uint32 sub_carrier_spacing:3; // {0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz
+ // Enum{0:15khz, 1:30khz, 2:60khz, 3:120khz, 4:240khz}
+ kal_uint32 bandwidth:4; // Quantized bandwidth in MHz
+ // Enum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,
+ // 7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,
+ // 13:400MHz}
+ kal_uint32 reserved:4;
+ kal_uint32 max_throughput; // Maximum throughput of this BWP based on the current physical
+ // configuration (KB/s)
+ kal_uint32 locationandbandwidth:16; // range[0, 37949]
+ kal_uint32 reserved_1:16;
+} nl1_bwp_config_v3;
+
+typedef nl1_bwp_config_v3 nl1_bwp_config;
+
+typedef struct {
+ kal_uint32 transmission_mode:4; // range[1, 10]
+ kal_uint32 tx_antenna_selection:2; // Enum{0: Disabled, 1: Closed loop, 2: Open loop}
+ kal_uint32 reserved:26;
+} nl1_antenna_config_v1;
+
+typedef nl1_antenna_config_v1 nl1_antenna_config;
+
+typedef struct {
+ kal_uint32 periodicity_offset_valid:1; // Enum{0: False, 1: True}
+ kal_uint32 periodicity:10; // range[4, 640]
+ kal_uint32 offset:10; // range[0, 639]
+ kal_uint32 number_of_ports:6; // range[1, 32]
+ kal_uint32 reserved:5;
+} nl1_nzp_csi_rs_resource_v2;
+
+typedef nl1_nzp_csi_rs_resource_v2 nl1_nzp_csi_rs_resource;
+
+typedef struct {
+ kal_uint32 valid_config:1; // Enum{0: Invalid, 1: Valid}
+ kal_uint32 report_config_id:6; // range[0, 47]
+ kal_uint32 serving_cell_index:5; // range[0, 31]
+ kal_uint32 report_config_type:2; // Enum{0: Periodic,1: Semi-persistent on PUCCH,
+ // 2: Semi-persistent on PUSCH, 3: Aperiodic}
+ kal_uint32 report_periodicity:9; // range[4, 320]. Valid only when Report Config Type is periodic
+ // or semi-persistent.
+ kal_uint32 report_quantity:3; // Enum{0: None,1: CRI_RI_PMI_CQI, 2: RI_I1,3: RI_I1_CQI,
+ // 4:CRI_RI_CQI,5:CRI_RSRP,6:SSB Index RSRP,7:CRI_RI_LI_PMI_CQ}
+ kal_uint32 cqi_reporting_granularity:1; // Enum{0: wideband, 1: subband}
+ kal_uint32 pmi_reporting_granularity:1; // Enum{0: wideband, 1: subband}
+ kal_uint32 reserved:4;
+ kal_uint32 number_of_subbands:5; // range[3, 19]
+ kal_uint32 subband_size:6; // 4 or 8 or 16 or 32
+ kal_uint32 codebook_config:2; // Enum{0: Type I Single Panel, 1:Type I Multi Panel,2: Type II,
+ // 3: Type II Port Selection}
+ kal_uint32 reserved_1:19;
+ nl1_nzp_csi_rs_resource nzp_csi_rs_resource;
+} nl1_csi_report_config_v2;
+
+typedef nl1_csi_report_config_v2 nl1_csi_report_config;
+
+typedef struct {
+ kal_uint32 valid:1; // Enum{0: Invalid, 1: Valid}
+ kal_uint32 resource_id:6; // range[0, 63]
+ kal_uint32 resource_type:2; // Enum{0: aperiodic, 1: semi-persistent, 2: periodic}
+ kal_uint32 number_of_srs_ports:3; // range[1, 4]
+ kal_uint32 number_of_symbols:3; // range[1, 4]
+ kal_uint32 frequency_domain_position:7; // range[0, 67]
+ kal_uint32 frequency_domain_shift:9; // range[0, 268]
+ kal_uint32 reserved:1;
+ kal_uint32 periodicity:12; // range[1, 2560]
+ kal_uint32 offset:12; // range[0, 2559]
+ kal_uint32 frequency_hopping:2; // Enum{0: disabled, 1: enabled}
+ kal_uint32 reserved_1:6;
+} nl1_srs_resource_config_v2;
+
+typedef nl1_srs_resource_config_v2 nl1_srs_resource_config;
+
+typedef struct {
+ kal_uint16 resource_set_id:4; // range[0, 15]
+ kal_uint16 usage:2; // Enum{0: beam management, 1: codebook, 2: non-codebook,
+ // 3: antenna switching}
+ kal_uint16 alpha:3; // Enum{0:0,1: 0_4, 2: 0_5, 3: 0_6, 4: 0_7, 5: 0_8, 6: 0_9, 7: 1}
+ kal_uint16 reserved:7;
+ kal_int16 p0; // range[-202, 24]
+ nl1_srs_resource_config srs_resources[4];
+} nl1_srs_resource_set_config_v2;
+
+typedef nl1_srs_resource_set_config_v2 nl1_srs_resource_set_config;
+
+typedef struct {
+ kal_uint32 resource_allocation:2; // Enum{0: Type 0, 1: Type 1, 2: Dynamic switch}
+ kal_uint32 rbg_size:1; // Enum{0: Config 1, 1: Config 2}
+ kal_uint32 max_mcs:1; // Enum{0: 64QAM, 1: 256QAM}
+ kal_uint32 max_rank:3; // Enum{0 : Rank 1, 1 : Rank 2, 2 : Rank 3, 3 : Rank 4,
+ // 4 : Rank 5, 5 : Rank 6, 6 : Rank 7, 7 : Rank 8}
+ kal_uint32 prb_bundling_type:1; // Enum{0: Static, 1: Dynamic}
+ kal_uint32 prb_bundling_size:3; // Enum{0: N2, 1: N4, 2: Wideband}
+ kal_uint32 prb_bundling_size_set_1:3; // Enum{0: N2, 1: N4, 2: Wideband, 3:N2 wideband, 4: N4 wideband}
+ kal_uint32 prb_bundling_size_set_2:3; // Enum{0: N2, 1: N4, 2: Wideband}
+ kal_uint32 dmrs_additional_position_for_mapping_type_a:2; // range[0, 3]
+ kal_uint32 dmrs_additional_position_for_mapping_type_b:2; // range[0, 3]
+ kal_uint32 qcl_source:2; // Enum{0: invalid, 1: SSB, 2: CSI-RS}
+ kal_uint32 qcl_source_id:7; // If QCL Source is SSB, the ID means SSB index. If QCL Source is
+ // CSI-RS, the ID means CSI-RS resource ID.
+ kal_uint32 qcl_type:2; // Valid only when QCL Source is valid.
+ // Enum{0: Type A, 1: Type B, 2: Type C, 3: Type D}
+} nl1_pdsch_config_v5;
+
+typedef nl1_pdsch_config_v5 nl1_pdsch_config;
+
+typedef struct {
+ kal_uint32 valid_search_space:1; // Enum{0: Invalid, 1: Valid}
+ kal_uint32 search_space_id:6; // range[0, 39]
+ kal_uint32 slot_periodicity:4; // Enum{0: 1 slot, 1: 2 slots, 2: 4 slots, 3: 5 slots, 4: 8 slots, 5: 10 slots, 6: 16 slots, 7: 20 slots,
+ // 8: 40 slots,9: 80 slots,10: 160 slots,11: 320 slots,12: 640 slots,13: 1280 slots,14: 2560 slots}
+ kal_uint32 slot_offset:12; // range[0, 2559]
+ kal_uint32 reserved:9;
+ kal_uint32 duration:12; // range[2, 2559]
+ kal_uint32 monitoring_symbols:14; // bit 0 means symbol 0, bit 1 means symbol 1, and so on.
+ kal_uint32 monitoring_0_0_and_1_0:1; // Enum{0: False, 1: True}
+ kal_uint32 monitoring_0_1_and_1_1:1; // Enum{0: False, 1: True}
+ kal_uint32 monitoring_2_0:1; // Enum{0: False, 1: True}
+ kal_uint32 monitoring_2_1:1; // Enum{0: False, 1: True}
+ kal_uint32 monitoring_2_2:1; // Enum{0: False, 1: True}
+ kal_uint32 monitoring_2_3:1; // Enum{0: False, 1: True}
+} nl1_pdcch_search_space_config_v1;
+
+typedef nl1_pdcch_search_space_config_v1 nl1_pdcch_search_space_config;
+
+typedef struct {
+ kal_uint32 vaid:1; // Enum{0: Invalid config, 1: Valid config}
+ kal_uint32 resource_id:3; // range[0, 7]
+ kal_uint32 sr_id:3; // range[0, 7]
+ kal_uint32 periodicity_as_symbols:1; // 0: The unit of periodicity is slots, 1: The unit of
+ // periodicity is symbols
+ // Enum{0:Period unit is slots,1:Period unit is symbols}
+ kal_uint32 periodicity:10; // range[1, 640]
+ kal_uint32 offset:10; // range[0, 639]
+ kal_uint32 reserved:4;
+} nl1_sr_resource_config_v1;
+
+typedef nl1_sr_resource_config_v1 nl1_sr_resource_config;
+
+typedef struct {
+ kal_uint32 vaid:1; // Enum{0: Invalid config, 1: Valid config}
+ kal_uint32 group_hopping:1; // Enum{0: Disabled, 1: Enabled}
+ kal_uint32 sequence_hopping:1; // Enum{0: Disabled, 1: Enabled}
+ kal_uint32 inter_slot_frequency_hopping:4; // Bit 0 means format 1, bit 1 means format 2, and so on.
+ // Value 0 means disabled, value 1 means enabled.
+ kal_uint32 additional_dmrs:4; // Bit 0 means format 1, bit 1 means format 2, and so on.
+ // Value 0 means disabled, value 1 means enabled.
+ kal_uint32 reserved:21;
+ nl1_sr_resource_config sr_resource_config[8];
+} nl1_pucch_config_v3;
+
+typedef nl1_pucch_config_v3 nl1_pucch_config;
+
+typedef struct {
+ kal_uint32 frequency_hopping:2; // Enum{0: not configured, 1: intra, 2: inter}
+ kal_uint32 tx_config_type:1; // Enum{0: Codebook, 1: Non-codebook}
+ kal_uint32 resource_allocation:1; // Enum{0: Type 0, 1: Type 1}
+ kal_uint32 max_mcs:1; // Enum{0: 64QAM, 1: 256QAM}
+ kal_uint32 max_rank:2; // Enum{0 : Rank 1, 1: Rank 2, 2: Rank 3, 3: Rank 4}
+ kal_uint32 rbg_size:1; // Enum{0: Config 1, 1: Config 2}
+ kal_uint32 dmrs_additional_position_for_mapping_type_a:2; // range[0, 3]
+ kal_uint32 dmrs_additional_position_for_mapping_type_b:2; // range[0, 3]
+ kal_uint32 reserved:20;
+} nl1_pusch_config_v3;
+
+typedef nl1_pusch_config_v3 nl1_pusch_config;
+
+typedef struct {
+ kal_uint32 prach_configuration_index:8; // range[0, 255]
+ kal_uint32 root_sequence_index:10; // range[0, 837]
+ kal_uint32 total_number_of_preambles:6; // range[1, 63]
+ kal_uint32 ssb_ro_config_valid:1; // Enum{0: Invalid, 1: Valid}
+ kal_uint32 ssb_per_ro:3; // Enum{0: 1/8, 1: 1/4, 2: 1/2, 3: 1, 4: 2, 5: 4, 6: 8, 7: 16}
+ kal_uint32 reserved:4;
+ kal_uint32 cb_preambles_per_ssb:6; // range[1, 63]
+ kal_uint32 msg1_scs:3; // Enum{0:15KHz,1:30KHz,2:60KHz,3:120KHz,4:240KHz,5:Invalid}
+ kal_uint32 reserved_1:23;
+ kal_int16 preamble_target_power;
+ kal_int16 ssb_rsrp_threshold;
+ kal_int16 sul_rsrp_threshold; // 0 means invalid
+ kal_int16 reserved_2;
+} nl1_rach_config_v2;
+
+typedef nl1_rach_config_v2 nl1_rach_config;
+
+typedef struct {
+ kal_uint32 valid:1; // Enum{0: Invalid, 1: Valid}
+ kal_uint32 transmission_period:4; // Enum{0: 0_5ms, 1: 0_625ms, 2: 1msB, 3: 1_25ms, 4: 2ms,
+ // 5: 2_5ms, 6: 3ms, 7: 4ms, 8: 5ms, 9: 10ms}
+ kal_uint32 number_of_dl_slot:9; // range[0, 320]
+ kal_uint32 number_of_ul_slot:9; // range[0, 320]
+ kal_uint32 number_of_dl_symbol:4; // range[0, 14]
+ kal_uint32 number_of_ul_symbol:4; // range[0, 14]
+ kal_uint32 reserved:1;
+ kal_uint32 guard_period:4; // range[0, 10]
+ kal_uint32 reserved_1:28;
+} nl1_tdd_ul_dl_pattern_v1;
+
+typedef nl1_tdd_ul_dl_pattern_v1 nl1_tdd_ul_dl_pattern;
+
+typedef struct {
+ kal_uint32 valid:1; // Enum{0: Invalid, 1: Valid}
+ kal_uint32 ul_narfcn:22; // Uplink NR-ARFCN of Point A
+ kal_uint32 ul_frequency_band:8;
+ kal_uint32 reserved:1;
+ nl1_tdd_ul_dl_pattern tdd_pattern[2];
+ nl1_rach_config rach_config;
+ nl1_pusch_config pusch_config;
+ nl1_pucch_config pucch_config;
+ nl1_bwp_config active_ul_bwp_config;
+} nl1_sul_config_v2;
+
+typedef nl1_sul_config_v2 nl1_sul_config;
+
+typedef struct {
+ kal_uint32 physical_cell_id:10; // range[0, 1007]
+ kal_uint32 dl_narfcn:22; // Downlink NR-ARFCN of SSB
+ kal_uint32 dl_frequency_band:8;
+ kal_uint32 cell_index:4; // range[1, 9]
+ kal_uint32 ul_cc_index:2; // range[1, 2]
+ kal_uint32 ul_carrier_bandwidth:4; // Quantized bandwidth in MHz
+ // Enum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,
+ // 7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,
+ // 13:400MHz}
+ kal_uint32 dl_carrier_bandwidth:4; // Quantized bandwidth in MHz
+ // Enum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,
+ // 7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,
+ // 13:400MHz}
+ kal_uint32 reserved:10;
+ nl1_tdd_ul_dl_pattern tdd_pattern[2];
+ kal_uint32 ul_narfcn:22; // Uplink NR-ARFCN of Point A
+ kal_uint32 ul_frequency_band:8;
+ kal_uint32 cell_type:1; // Enum{0: DL+UL, 1: Only DL}
+ kal_uint32 reserved_1:1;
+ nl1_pusch_config pusch_config;
+ nl1_pucch_config pucch_config;
+ nl1_pdcch_search_space_config pdcch_common_search_space_config[2];
+ nl1_pdcch_search_space_config pdcch_ue_specific_search_space_config[2];
+ nl1_pdsch_config pdsch_config;
+ nl1_bwp_config active_ul_bwp_config;
+ nl1_bwp_config active_dl_bwp_config;
+ kal_uint32 ul_center_frequency; // Unit: 5khz
+ kal_uint32 dl_center_frequency; // Unit: 5khz
+ kal_uint32 dl_point_a_narfcn:22; // Downlink NR-ARFCN of Point A
+ kal_uint32 reserved_2:10;
+ kal_uint32 ul_point_a_narfcn:22; // Uplink NR-ARFCN of Point A
+ kal_uint32 reserved_3:10;
+} nl1_scell_config_v10;
+
+typedef nl1_scell_config_v10 nl1_scell_config;
+
+typedef struct {
+ kal_uint32 gap_valid:1; // 0: Gap is not configured,
+ // 1: Gap is configured and the following parameters are valid
+ // Enum{0:not valid, 1:valid}
+ kal_uint32 gap_period:2; // range[0, 3], Enum{0:20ms, 1:40ms, 2:80ms, 3:160ms}
+ kal_uint32 gap_length:3; // range[0, 5], Enum{0:1_5ms,1:3ms,2:3_5ms,3:4ms,4:5_5ms,5:6ms}
+ kal_uint32 gap_offset:8; // range[0, 159]
+ kal_uint32 reserved:18;
+} nl1_gap_config_v1;
+
+typedef nl1_gap_config_v1 nl1_gap_config;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 ue_category:5; // range[0, 15]
+ kal_uint32 physical_cell_id:10; // range[0, 1007]
+ kal_uint32 number_of_transmitted_ssb:9; // range[1, 64]
+ kal_uint32 dl_narfcn:22; // Downlink NR-ARFCN of SSB
+ kal_uint32 dl_frequency_band:8;
+ kal_uint32 reserved:2;
+ nl1_tdd_ul_dl_pattern tdd_pattern[2];
+ kal_uint32 ul_narfcn:22; // Uplink NR-ARFCN of Point A
+ kal_uint32 srs_switch_type:3; // Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}
+ kal_uint32 srs_enable:1; // Enum{0: disable, 1: enable}
+ kal_uint32 ssb_periodicity:3; // Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}
+ kal_uint32 number_of_scell:3; // range[0, 8]
+ kal_uint32 dl_point_a_narfcn:22; // Downlink NR-ARFCN of Point A
+ kal_uint32 ul_frequency_band:8;
+ kal_uint32 cp_type:1; // Enum{0: Normal, 1: Extended}
+ kal_uint32 reserved_1:1;
+ nl1_rach_config rach_config;
+ nl1_pusch_config pusch_config;
+ nl1_pucch_config pucch_config;
+ nl1_pdcch_search_space_config pdcch_common_search_space_config[2];
+ nl1_pdcch_search_space_config pdcch_ue_specific_search_space_config[2];
+ nl1_pdsch_config pdsch_config;
+ nl1_srs_resource_set_config srs_resource_set_config;
+ nl1_csi_report_config csi_report_config[4];
+ nl1_antenna_config antenna_config;
+ kal_uint32 ul_carrier_bandwidth:4; // Quantized bandwidth in MHz
+ // Enum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,
+ // 7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,
+ // 13:400MHz}
+ kal_uint32 dl_carrier_bandwidth:4; // Quantized bandwidth in MHz
+ // Enum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,
+ // 7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,
+ // 13:400MHz}
+ kal_uint32 reserved_2:18;
+ kal_uint32 default_dl_bwp_id:3; // range[0, 4]
+ kal_uint32 number_of_dl_bwp:3; // range[1, 4]
+ nl1_bwp_config active_ul_bwp_config;
+ nl1_bwp_config active_dl_bwp_config;
+ nl1_trs_config trs_config[8];
+ nl1_pcch_config pcch_config; // PCCH Config in idle mode
+ kal_uint32 ue_power_class:3; // 1,2,3,4, 0:INVALID, range[0, 4]
+ kal_uint32 ul_point_a_narfcn:22; // Uplink NR-ARFCN of Point A
+ kal_uint32 reference_subcarrier_spacing:3; // Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}
+ kal_uint32 reserved_3:4;
+ kal_uint32 ul_center_frequency; // Unit: 5khz
+ kal_uint32 dl_center_frequency; // Unit: 5khz
+ nl1_gap_config gap_config;
+ nl1_sul_config sul_config;
+ nl1_scell_config scell_config[FLEXIBLE_ARRAY_SIZE]; // N := Number of Scell
+} icd_nl1_physical_configuration_struct_v21;
+
+typedef icd_nl1_physical_configuration_struct_v21 icd_nl1_physical_configuration_struct;
+
+
+#endif /* _NL1_PHYSICAL_CONFIGURATION_H */
+
+
+/* Public JSON start
+"NL1_Physical_Configuration": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9014", "Name": "NL1_Physical_Configuration", "Type": "RECORD", "Desc": "This log packet contains the important parameters of physical channel configuration. The log is generated every 1000ms or once when the parameters are updated.\n"}, "table": {"NL1_Physical_Configuration": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_PHY_Config_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Physical_Configuration"}, "NL1_PHY_Config_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["6", "NL1_PHY_Config_V6", ""], "1": ["7", "NL1_PHY_Config_V7", ""], "2": ["8", "NL1_PHY_Config_V8", ""], "3": ["9", "NL1_PHY_Config_V9", ""], "4": ["10", "NL1_PHY_Config_V10", ""], "5": ["11", "NL1_PHY_Config_V11", ""], "6": ["12", "NL1_PHY_Config_V12", ""], "7": ["13", "NL1_PHY_Config_V13", ""], "8": ["14", "NL1_PHY_Config_V14", ""], "9": ["15", "NL1_PHY_Config_V15", ""], "10": ["16", "NL1_PHY_Config_V16", ""], "11": ["17", "NL1_PHY_Config_V17", ""], "12": ["18", "NL1_PHY_Config_V18", ""], "13": ["19", "NL1_PHY_Config_V19", ""], "14": ["20", "NL1_PHY_Config_V20", ""], "15": ["21", "NL1_PHY_Config_V21", ""], "16": ["22", "NL1_PHY_Config_V22", ""]}, "Name": "NL1_PHY_Config_Versions"}, "NL1_PHY_Config_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["Carrier Index", "UINT32", "1", "46", "3", "range[0, 7]"], "5": ["DL Frequency Band", "UINT32", "1", "49", "7", "range[1, 89]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Reserved", "UINT32", "1", "213", "3", ""], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "7", "range[1, 89]"], "14": ["Cell Type", "UINT32", "1", "245", "1", "Enum{0: PCell, 1: SCell}"], "15": ["Reserved", "UINT32", "1", "246", "2", ""], "16": ["RACH Config", "NL1_RACH_Config_V1", "1", "248", "96", ""], "17": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "344", "32", ""], "18": ["PUCCH Config", "NL1_PUCCH_Config_V1", "1", "376", "32", ""], "19": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "408", "128", ""], "20": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "536", "128", ""], "21": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "664", "32", ""], "22": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "696", "288", ""], "23": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "984", "384", ""], "24": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1368", "32", ""], "25": ["Active UL BWP Config", "NL1_BWP_Config_V1", "1", "1400", "64", ""], "26": ["Active DL BWP Config", "NL1_BWP_Config_V1", "1", "1464", "64", ""], "27": ["TRS Config", "NL1_TRS_Config_V1", "8", "1528", "256", ""]}, "Name": "NL1_PHY_Config_V6"}, "NL1_PHY_Config_V7": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["Carrier Index", "UINT32", "1", "46", "3", "range[0, 7]"], "5": ["DL Frequency Band", "UINT32", "1", "49", "7", "range[1, 89]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Reserved", "UINT32", "1", "213", "3", ""], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "7", "range[1, 89]"], "14": ["Cell Type", "UINT32", "1", "245", "1", "Enum{0: PCell, 1: SCell}"], "15": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "16": ["Reserved", "UINT32", "1", "247", "1", ""], "17": ["RACH Config", "NL1_RACH_Config_V1", "1", "248", "96", ""], "18": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "344", "32", ""], "19": ["PUCCH Config", "NL1_PUCCH_Config_V1", "1", "376", "32", ""], "20": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "408", "128", ""], "21": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "536", "128", ""], "22": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "664", "32", ""], "23": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "696", "288", ""], "24": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "984", "384", ""], "25": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1368", "32", ""], "26": ["Active UL BWP Config", "NL1_BWP_Config_V2", "1", "1400", "96", ""], "27": ["Active DL BWP Config", "NL1_BWP_Config_V2", "1", "1496", "96", ""], "28": ["TRS Config", "NL1_TRS_Config_V1", "8", "1592", "256", ""]}, "Name": "NL1_PHY_Config_V7"}, "NL1_PHY_Config_V8": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V8", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["Reserved", "UINT32", "1", "46", "3", ""], "5": ["DL Frequency Band", "UINT32", "1", "49", "7", "range[1, 89]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "7", "range[1, 89]"], "14": ["Reserved", "UINT32", "1", "245", "1", ""], "15": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "16": ["Reserved", "UINT32", "1", "247", "1", ""], "17": ["RACH Config", "NL1_RACH_Config_V1", "1", "248", "96", ""], "18": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "344", "32", ""], "19": ["PUCCH Config", "NL1_PUCCH_Config_V1", "1", "376", "32", ""], "20": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "408", "128", ""], "21": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "536", "128", ""], "22": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "664", "32", ""], "23": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "696", "288", ""], "24": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "984", "384", ""], "25": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1368", "32", ""], "26": ["Active UL BWP Config", "NL1_BWP_Config_V2", "1", "1400", "96", ""], "27": ["Active DL BWP Config", "NL1_BWP_Config_V2", "1", "1496", "96", ""], "28": ["TRS Config", "NL1_TRS_Config_V1", "8", "1592", "256", ""], "29": ["Scell Config", "NL1_Scell_Config_V1", "N", "1848", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V9": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V9", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "7", "range[1, 89]"], "5": ["Reference Subcarrier Spacing", "UINT32", "1", "53", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "7", "range[1, 89]"], "14": ["Reserved", "UINT32", "1", "245", "1", ""], "15": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "16": ["Reserved", "UINT32", "1", "247", "1", ""], "17": ["RACH Config", "NL1_RACH_Config_V1", "1", "248", "96", ""], "18": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "344", "32", ""], "19": ["PUCCH Config", "NL1_PUCCH_Config_V2", "1", "376", "288", ""], "20": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "664", "128", ""], "21": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "792", "128", ""], "22": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "920", "32", ""], "23": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "952", "288", ""], "24": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1240", "384", ""], "25": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1624", "32", ""], "26": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1656", "96", ""], "27": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1752", "96", ""], "28": ["TRS Config", "NL1_TRS_Config_V1", "8", "1848", "256", ""], "29": ["Scell Config", "NL1_Scell_Config_V1", "N", "2104", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V10": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V10", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "7", "range[1, 89]"], "5": ["Reference Subcarrier Spacing", "UINT32", "1", "53", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "7", "range[1, 89]"], "14": ["Reserved", "UINT32", "1", "245", "1", ""], "15": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "16": ["Reserved", "UINT32", "1", "247", "1", ""], "17": ["RACH Config", "NL1_RACH_Config_V1", "1", "248", "96", ""], "18": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "344", "32", ""], "19": ["PUCCH Config", "NL1_PUCCH_Config_V2", "1", "376", "288", ""], "20": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "664", "128", ""], "21": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "792", "128", ""], "22": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "920", "32", ""], "23": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "952", "288", ""], "24": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1240", "384", ""], "25": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1624", "32", ""], "26": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1656", "96", ""], "27": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1752", "96", ""], "28": ["TRS Config", "NL1_TRS_Config_V1", "8", "1848", "256", ""], "29": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2104", "32", "PCCH Config in idle mode"], "30": ["UE Power Class", "UINT32", "1", "2136", "3", "1,2,3,4, 0:INVALID, Range[0,4]"], "31": ["Reserved", "UINT32", "1", "2139", "29", ""], "32": ["Scell Config", "NL1_Scell_Config_V1", "N", "2168", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V11": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V11", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "7", "range[1, 89]"], "5": ["Reference Subcarrier Spacing", "UINT32", "1", "53", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "7", "range[1, 89]"], "14": ["Reserved", "UINT32", "1", "245", "1", ""], "15": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "16": ["Reserved", "UINT32", "1", "247", "1", ""], "17": ["RACH Config", "NL1_RACH_Config_V1", "1", "248", "96", ""], "18": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "344", "32", ""], "19": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "376", "288", ""], "20": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "664", "128", ""], "21": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "792", "128", ""], "22": ["PDSCH Config", "NL1_PDSCH_Config_V5", "1", "920", "32", ""], "23": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "952", "288", ""], "24": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1240", "384", ""], "25": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1624", "32", ""], "26": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1656", "96", ""], "27": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1752", "96", ""], "28": ["TRS Config", "NL1_TRS_Config_V1", "8", "1848", "256", ""], "29": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2104", "32", "PCCH Config in idle mode"], "30": ["UE Power Class", "UINT32", "1", "2136", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "31": ["UL Point A NARFCN", "UINT32", "1", "2139", "22", "Uplink NR-ARFCN of Point A"], "32": ["Reserved", "UINT32", "1", "2161", "7", ""], "33": ["UL Center Frequency", "UINT32", "1", "2168", "32", "Unit: 5khz"], "34": ["DL Center Frequency", "UINT32", "1", "2200", "32", "Unit: 5khz"], "35": ["Scell Config", "NL1_Scell_Config_V2", "N", "2232", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V12": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V12", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "8", ""], "5": ["Reserved", "UINT32", "1", "54", "2", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "8", ""], "14": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "15": ["Reserved", "UINT32", "1", "247", "1", ""], "16": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "17": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "376", "32", ""], "18": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "19": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "20": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "21": ["PDSCH Config", "NL1_PDSCH_Config_V5", "1", "952", "32", ""], "22": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "984", "288", ""], "23": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1272", "384", ""], "24": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1656", "32", ""], "25": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1688", "96", ""], "26": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1784", "96", ""], "27": ["TRS Config", "NL1_TRS_Config_V1", "8", "1880", "256", ""], "28": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2136", "32", "PCCH Config in idle mode"], "29": ["UE Power Class", "UINT32", "1", "2168", "3", "1,2,3,4, 0:INVALID, Range[0, 4]"], "30": ["UL Point A NARFCN", "UINT32", "1", "2171", "22", "Uplink NR-ARFCN of Point A"], "31": ["Reference Subcarrier Spacing", "UINT32", "1", "2193", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "32": ["Reserved", "UINT32", "1", "2196", "4", ""], "33": ["UL Center Frequency", "UINT32", "1", "2200", "32", "Unit: 5khz"], "34": ["DL Center Frequency", "UINT32", "1", "2232", "32", "Unit: 5khz"], "35": ["Gap Config", "NL1_Gap_Config_V1", "1", "2264", "32", ""], "36": ["SUL Config", "NL1_SUL_Config_V1", "1", "2296", "32", ""], "37": ["Scell Config", "NL1_Scell_Config_V3", "N", "2328", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V13": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V13", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "8", ""], "5": ["Reserved", "UINT32", "1", "54", "2", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "8", ""], "14": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "15": ["Reserved", "UINT32", "1", "247", "1", ""], "16": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "17": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "376", "32", ""], "18": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "19": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "20": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "21": ["PDSCH Config", "NL1_PDSCH_Config_V5", "1", "952", "32", ""], "22": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "984", "288", ""], "23": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1272", "384", ""], "24": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1656", "32", ""], "25": ["Reserved", "UINT32", "1", "1688", "26", ""], "26": ["Default DL BWP Id", "UINT32", "1", "1714", "3", "range[0, 4]"], "27": ["Number of DL BWP", "UINT32", "1", "1717", "3", "range[1, 4]"], "28": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1720", "96", ""], "29": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1816", "96", ""], "30": ["TRS Config", "NL1_TRS_Config_V1", "8", "1912", "256", ""], "31": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2168", "32", "PCCH Config in idle mode"], "32": ["UE Power Class", "UINT32", "1", "2200", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "33": ["UL Point A NARFCN", "UINT32", "1", "2203", "22", "Uplink NR-ARFCN of Point A"], "34": ["Reference Subcarrier Spacing", "UINT32", "1", "2225", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "35": ["Reserved", "UINT32", "1", "2228", "4", ""], "36": ["UL Center Frequency", "UINT32", "1", "2232", "32", "Unit: 5khz"], "37": ["DL Center Frequency", "UINT32", "1", "2264", "32", "Unit: 5khz"], "38": ["Gap Config", "NL1_Gap_Config_V1", "1", "2296", "32", ""], "39": ["SUL Config", "NL1_SUL_Config_V2", "1", "2328", "704", ""], "40": ["Scell Config", "NL1_Scell_Config_V3", "N", "3032", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V14": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V14", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", ""], "5": ["Reserved", "UINT32", "1", "55", "1", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Reserved", "UINT32", "1", "1816", "26", ""], "25": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "26": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "27": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1848", "96", ""], "28": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1944", "96", ""], "29": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "30": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "31": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, rang[0, 4]"], "32": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "33": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "34": ["Reserved", "UINT32", "1", "2356", "4", ""], "35": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "36": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "37": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "38": ["SUL Config", "NL1_SUL_Config_V3", "1", "2456", "704", ""], "39": ["Scell Config", "NL1_Scell_Config_V4", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V15": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V15", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", ""], "5": ["Reserved", "UINT32", "1", "55", "1", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Reserved", "UINT32", "1", "1816", "26", ""], "25": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "26": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "27": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1848", "96", ""], "28": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1944", "96", ""], "29": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "30": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "31": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "32": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "33": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "34": ["Reserved", "UINT32", "1", "2356", "4", ""], "35": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "36": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "37": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "38": ["SUL Config", "NL1_SUL_Config_V3", "1", "2456", "704", ""], "39": ["Scell Config", "NL1_Scell_Config_V5", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V16": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V16", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", "range[0, 261]"], "5": ["Cell Group Id", "UINT32", "1", "55", "1", "range[0, 1]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", "range[0, 261]"], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Reserved", "UINT32", "1", "1816", "26", ""], "25": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "26": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "27": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1848", "96", ""], "28": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1944", "96", ""], "29": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "30": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "31": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "32": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "33": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "34": ["Reserved", "UINT32", "1", "2356", "4", ""], "35": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "36": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "37": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "38": ["SUL Config", "NL1_SUL_Config_V3", "1", "2456", "704", ""], "39": ["Scell Config", "NL1_Scell_Config_V6", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V17": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V17", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", "range[0, 261]"], "5": ["Cell Group Id", "UINT32", "1", "55", "1", "range[0, 1]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", "range[0, 261]"], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Reserved", "UINT32", "1", "1816", "26", ""], "25": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "26": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "27": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1848", "96", ""], "28": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1944", "96", ""], "29": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "30": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "31": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "32": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "33": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "34": ["Reserved", "UINT32", "1", "2356", "4", ""], "35": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "36": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "37": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "38": ["SUL Config", "NL1_SUL_Config_V4", "1", "2456", "704", ""], "39": ["Scell Config", "NL1_Scell_Config_V7", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V18": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V18", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", "range[0, 261]"], "5": ["Cell Group Id", "UINT32", "1", "55", "1", "range[0, 1]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", "range[0, 261]"], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Reserved", "UINT32", "1", "1816", "26", ""], "25": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "26": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "27": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1848", "96", ""], "28": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1944", "96", ""], "29": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "30": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "31": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "32": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "33": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "34": ["Reserved", "UINT32", "1", "2356", "4", ""], "35": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "36": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "37": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "38": ["SUL Config", "NL1_SUL_Config_V4", "1", "2456", "704", ""], "39": ["Scell Config", "NL1_Scell_Config_V8", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V19": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V19", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", "range[0, 261]"], "5": ["Cell Group Id", "UINT32", "1", "55", "1", "range[0, 1]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", "range[0, 261]"], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Reserved", "UINT32", "1", "1816", "26", ""], "25": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "26": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "27": ["Active UL BWP Config", "NL1_BWP_Config_V4", "1", "1848", "96", ""], "28": ["Active DL BWP Config", "NL1_BWP_Config_V4", "1", "1944", "96", ""], "29": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "30": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "31": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "32": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "33": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "34": ["Reserved", "UINT32", "1", "2356", "4", ""], "35": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "36": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "37": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "38": ["SUL Config", "NL1_SUL_Config_V5", "1", "2456", "704", ""], "39": ["Scell Config", "NL1_Scell_Config_V9", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V20": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V20", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", "range[0, 261]"], "5": ["Cell Group Id", "UINT32", "1", "55", "1", "range[0, 1]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", "range[0, 261]"], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Cell Group Type", "UINT32", "1", "1816", "1", "Enum{0:MCG, 1:SCG}"], "25": ["Reserved", "UINT32", "1", "1817", "25", ""], "26": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "27": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "28": ["Active UL BWP Config", "NL1_BWP_Config_V4", "1", "1848", "96", ""], "29": ["Active DL BWP Config", "NL1_BWP_Config_V4", "1", "1944", "96", ""], "30": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "31": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "32": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "33": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "34": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "35": ["Reserved", "UINT32", "1", "2356", "4", ""], "36": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "37": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "38": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "39": ["SUL Config", "NL1_SUL_Config_V5", "1", "2456", "704", ""], "40": ["Scell Config", "NL1_Scell_Config_V9", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V21": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V21", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "8", ""], "5": ["Reserved", "UINT32", "1", "54", "2", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "8", ""], "14": ["CP Type", "UINT32", "1", "246", "1", "Enum{0: Normal, 1: Extended}"], "15": ["Reserved", "UINT32", "1", "247", "1", ""], "16": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "17": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "376", "32", ""], "18": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "19": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "20": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "21": ["PDSCH Config", "NL1_PDSCH_Config_V5", "1", "952", "32", ""], "22": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "984", "288", ""], "23": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1272", "384", ""], "24": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1656", "32", ""], "25": ["UL Carrier Bandwidth", "UINT32", "1", "1688", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,\n13:400MHz}"], "26": ["DL Carrier Bandwidth", "UINT32", "1", "1692", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,\n13:400MHz}"], "27": ["Reserved", "UINT32", "1", "1696", "18", ""], "28": ["Default DL BWP Id", "UINT32", "1", "1714", "3", "range[0, 4]"], "29": ["Number of DL BWP", "UINT32", "1", "1717", "3", "range[1, 4]"], "30": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "1720", "96", ""], "31": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1816", "96", ""], "32": ["TRS Config", "NL1_TRS_Config_V1", "8", "1912", "256", ""], "33": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2168", "32", "PCCH Config in idle mode"], "34": ["UE Power Class", "UINT32", "1", "2200", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "35": ["UL Point A NARFCN", "UINT32", "1", "2203", "22", "Uplink NR-ARFCN of Point A"], "36": ["Reference Subcarrier Spacing", "UINT32", "1", "2225", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "37": ["Reserved", "UINT32", "1", "2228", "4", ""], "38": ["UL Center Frequency", "UINT32", "1", "2232", "32", "Unit: 5khz"], "39": ["DL Center Frequency", "UINT32", "1", "2264", "32", "Unit: 5khz"], "40": ["Gap Config", "NL1_Gap_Config_V1", "1", "2296", "32", ""], "41": ["SUL Config", "NL1_SUL_Config_V2", "1", "2328", "704", ""], "42": ["Scell Config", "NL1_Scell_Config_V10", "N", "3032", "VAR", "N := Number of Scell"]}}, "NL1_PHY_Config_V22": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Scell Config": "Number of Scell"}, "Name": "NL1_PHY_Config_V22", "Data": {"0": ["UE Category", "UINT32", "1", "0", "5", "range[0, 15]"], "1": ["Physical Cell ID", "UINT32", "1", "5", "10", "range[0, 1007]"], "2": ["Number of Transmitted SSB", "UINT32", "1", "15", "9", "range[1, 64]"], "3": ["DL NARFCN", "UINT32", "1", "24", "22", "Downlink NR-ARFCN of SSB"], "4": ["DL Frequency Band", "UINT32", "1", "46", "9", "range[0, 261]"], "5": ["Cell Group Id", "UINT32", "1", "55", "1", "range[0, 1]"], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "56", "128", "range[0, 261]"], "7": ["UL NARFCN", "UINT32", "1", "184", "22", "Uplink NR-ARFCN of Point A"], "8": ["SRS Switch Type", "UINT32", "1", "206", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "9": ["SRS Enable", "UINT32", "1", "209", "1", "Enum{0: disable, 1: enable}"], "10": ["SSB Periodicity", "UINT32", "1", "210", "3", "Enum{0: 5ms, 1: 10ms, 2: 20ms, 3: 40ms, 4: 80 ms, 5: 160ms}"], "11": ["Number of Scell", "UINT32", "1", "213", "3", "range[0, 8]"], "12": ["DL Point A NARFCN", "UINT32", "1", "216", "22", "Downlink NR-ARFCN of Point A"], "13": ["UL Frequency Band", "UINT32", "1", "238", "9", ""], "14": ["CP Type", "UINT32", "1", "247", "1", "Enum{0: Normal, 1: Extended}"], "15": ["RACH Config", "NL1_RACH_Config_V2", "1", "248", "128", ""], "16": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "376", "32", ""], "17": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "408", "288", ""], "18": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "696", "128", ""], "19": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "824", "128", ""], "20": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "952", "160", ""], "21": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1112", "288", ""], "22": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1400", "384", ""], "23": ["Antenna Config", "NL1_Antenna_Config_V1", "1", "1784", "32", ""], "24": ["Cell Group Type", "UINT32", "1", "1816", "1", "Enum{0:MCG, 1:SCG}"], "25": ["UL Carrier Bandwidth", "UINT32", "1", "1817", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:70MHz,13:200MHz,\n14:400MHz}"], "26": ["DL Carrier Bandwidth", "UINT32", "1", "1821", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:70MHz,13:200MHz,\n14:400MHz}"], "27": ["Reserved", "UINT32", "1", "1825", "17", ""], "28": ["Default DL BWP Id", "UINT32", "1", "1842", "3", "range[0, 4]"], "29": ["Number of DL BWP", "UINT32", "1", "1845", "3", "range[1, 4]"], "30": ["Active UL BWP Config", "NL1_BWP_Config_V4", "1", "1848", "96", ""], "31": ["Active DL BWP Config", "NL1_BWP_Config_V4", "1", "1944", "96", ""], "32": ["TRS Config", "NL1_TRS_Config_V1", "8", "2040", "256", ""], "33": ["PCCH Config", "NL1_PCCH_Config_V1", "1", "2296", "32", "PCCH Config in idle mode"], "34": ["UE Power Class", "UINT32", "1", "2328", "3", "1,2,3,4, 0:INVALID, range[0, 4]"], "35": ["UL Point A NARFCN", "UINT32", "1", "2331", "22", "Uplink NR-ARFCN of Point A"], "36": ["Reference Subcarrier Spacing", "UINT32", "1", "2353", "3", "Enum{0: 15kHz, 1: 30kHz, 2: 60kHz, 3: 120kHz, 4: 240kHz}"], "37": ["Reserved", "UINT32", "1", "2356", "4", ""], "38": ["UL Center Frequency", "UINT32", "1", "2360", "32", "Unit: 5khz"], "39": ["DL Center Frequency", "UINT32", "1", "2392", "32", "Unit: 5khz"], "40": ["Gap Config", "NL1_Gap_Config_V1", "1", "2424", "32", ""], "41": ["SUL Config", "NL1_SUL_Config_V5", "1", "2456", "704", ""], "42": ["Scell Config", "NL1_Scell_Config_V11", "N", "3160", "VAR", "N := Number of Scell"]}}, "NL1_Gap_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Gap Valid", "UINT32", "1", "0", "1", "0: Gap is not configured,\n1: Gap is configured and the following parameters are valid\nEnum{0:not valid, 1:valid}"], "1": ["Gap Period", "UINT32", "1", "1", "2", "range[0, 3], Enum{0:20ms, 1:40ms, 2:80ms, 3:160ms}"], "2": ["Gap Length", "UINT32", "1", "3", "3", "range[0, 5], Enum{0:1_5ms,1:3ms,2:3_5ms,3:4ms,4:5_5ms,5:6ms}"], "3": ["Gap Offset", "UINT32", "1", "6", "8", "range[0, 159]"], "4": ["Reserved", "UINT32", "1", "14", "18", ""]}, "Name": "NL1_Gap_Config_V1"}, "NL1_Scell_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "7", "range[1, 89]"], "3": ["Cell Index", "UINT32", "1", "39", "4", "range[1, 9]"], "4": ["Reserved", "UINT32", "1", "43", "21", ""], "5": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "6": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "7": ["UL Frequency Band", "UINT32", "1", "214", "7", "range[1, 89]"], "8": ["Reserved", "UINT32", "1", "221", "3", ""], "9": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "224", "32", ""], "10": ["PUCCH Config", "NL1_PUCCH_Config_V1", "1", "256", "32", ""], "11": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "288", "128", ""], "12": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "416", "128", ""], "13": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "544", "32", ""], "14": ["Active UL BWP Config", "NL1_BWP_Config_V2", "1", "576", "96", ""], "15": ["Active DL BWP Config", "NL1_BWP_Config_V2", "1", "672", "96", ""]}, "Name": "NL1_Scell_Config_V1"}, "NL1_Scell_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "7", "range[1, 89]"], "3": ["Cell Index", "UINT32", "1", "39", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "43", "2", "range[1, 2]"], "5": ["Reserved", "UINT32", "1", "45", "19", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "8": ["UL Frequency Band", "UINT32", "1", "214", "7", "range[1, 89]"], "9": ["Cell Type", "UINT32", "1", "221", "1", "Enum{0: DL+UL, 1: Only DL}"], "10": ["Reserved", "UINT32", "1", "222", "2", ""], "11": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V4", "1", "800", "32", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "832", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "928", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1024", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1056", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1088", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1110", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1120", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1142", "10", ""]}, "Name": "NL1_Scell_Config_V2"}, "NL1_Scell_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "8", ""], "3": ["Cell Index", "UINT32", "1", "40", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "44", "2", "range[1, 2]"], "5": ["Reserved", "UINT32", "1", "46", "18", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "8": ["UL Frequency Band", "UINT32", "1", "214", "8", ""], "9": ["Cell Type", "UINT32", "1", "222", "1", "Enum{0: DL+UL, 1: Only DL}"], "10": ["Reserved", "UINT32", "1", "223", "1", ""], "11": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V5", "1", "800", "32", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "832", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "928", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1024", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1056", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1088", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1110", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1120", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1142", "10", ""]}, "Name": "NL1_Scell_Config_V3"}, "NL1_Scell_Config_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "2", "range[1, 2]"], "5": ["Reserved", "UINT32", "1", "47", "17", ""], "6": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "7": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "8": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "9": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "10": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "224", "32", ""], "11": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "12": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "13": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "14": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "15": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "960", "96", ""], "16": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1056", "96", ""], "17": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "18": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "19": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "20": ["Reserved", "UINT32", "1", "1238", "10", ""], "21": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "22": ["Reserved", "UINT32", "1", "1270", "10", ""]}, "Name": "NL1_Scell_Config_V4"}, "NL1_Scell_Config_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "2", "range[1, 2]"], "5": ["CP Type", "UINT32", "1", "47", "1", "Enum{0: Normal, 1: Extended}"], "6": ["Reserved", "UINT32", "1", "48", "16", ""], "7": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "8": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "9": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "10": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "11": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "960", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1056", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1238", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1270", "6", ""], "24": ["SRS Switch Type", "UINT32", "1", "1276", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "25": ["SRS Enable", "UINT32", "1", "1279", "1", "Enum{0: disable, 1: enable}"], "26": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1280", "288", ""], "27": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1568", "384", ""]}, "Name": "NL1_Scell_Config_V5"}, "NL1_Scell_Config_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "3", "range[0, 3], 0: no UL"], "5": ["CP Type", "UINT32", "1", "48", "1", "Enum{0: Normal, 1: Extended}"], "6": ["Reserved", "UINT32", "1", "49", "15", ""], "7": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "8": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "9": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "10": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "11": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "960", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1056", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1238", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1270", "6", ""], "24": ["SRS Switch Type", "UINT32", "1", "1276", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "25": ["SRS Enable", "UINT32", "1", "1279", "1", "Enum{0: disable, 1: enable}"], "26": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1280", "288", ""], "27": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1568", "384", ""]}, "Name": "NL1_Scell_Config_V6"}, "NL1_Scell_Config_V7": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "3", "range[0, 3], 0: no UL"], "5": ["CP Type", "UINT32", "1", "48", "1", "Enum{0: Normal, 1: Extended}"], "6": ["Reserved", "UINT32", "1", "49", "15", ""], "7": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "8": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "9": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "10": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "11": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "960", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1056", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1238", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1270", "6", ""], "24": ["SRS Switch Type", "UINT32", "1", "1276", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "25": ["SRS Enable", "UINT32", "1", "1279", "1", "Enum{0: disable, 1: enable}"], "26": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1280", "288", ""], "27": ["CSI Report Config", "NL1_CSI_Report_Config_V2", "4", "1568", "384", ""]}, "Name": "NL1_Scell_Config_V7"}, "NL1_Scell_Config_V8": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "3", "range[0, 3], 0: no UL"], "5": ["CP Type", "UINT32", "1", "48", "1", "Enum{0: Normal, 1: Extended}"], "6": ["Reserved", "UINT32", "1", "49", "15", ""], "7": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "8": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "9": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "10": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "11": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "960", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "1056", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1238", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1270", "6", ""], "24": ["SRS Switch Type", "UINT32", "1", "1276", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "25": ["SRS Enable", "UINT32", "1", "1279", "1", "Enum{0: disable, 1: enable}"], "26": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1280", "288", ""], "27": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1568", "384", ""]}, "Name": "NL1_Scell_Config_V8"}, "NL1_Scell_Config_V9": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "3", "range[0, 3], 0: no UL"], "5": ["CP Type", "UINT32", "1", "48", "1", "Enum{0: Normal, 1: Extended}"], "6": ["Reserved", "UINT32", "1", "49", "15", ""], "7": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "8": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "9": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "10": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "11": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "224", "32", ""], "12": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "13": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "14": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "15": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "16": ["Active UL BWP Config", "NL1_BWP_Config_V4", "1", "960", "96", ""], "17": ["Active DL BWP Config", "NL1_BWP_Config_V4", "1", "1056", "96", ""], "18": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "19": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "20": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "21": ["Reserved", "UINT32", "1", "1238", "10", ""], "22": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1270", "6", ""], "24": ["SRS Switch Type", "UINT32", "1", "1276", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "25": ["SRS Enable", "UINT32", "1", "1279", "1", "Enum{0: disable, 1: enable}"], "26": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1280", "288", ""], "27": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1568", "384", ""]}, "Name": "NL1_Scell_Config_V9"}, "NL1_Scell_Config_V10": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "8", ""], "3": ["Cell Index", "UINT32", "1", "40", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "44", "2", "range[1, 2]"], "5": ["UL Carrier Bandwidth", "UINT32", "1", "46", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,\n13:400MHz}"], "6": ["DL Carrier Bandwidth", "UINT32", "1", "50", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,\n13:400MHz}"], "7": ["Reserved", "UINT32", "1", "54", "10", ""], "8": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "9": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "10": ["UL Frequency Band", "UINT32", "1", "214", "8", ""], "11": ["Cell Type", "UINT32", "1", "222", "1", "Enum{0: DL+UL, 1: Only DL}"], "12": ["Reserved", "UINT32", "1", "223", "1", ""], "13": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "224", "32", ""], "14": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "15": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "16": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "17": ["PDSCH Config", "NL1_PDSCH_Config_V5", "1", "800", "32", ""], "18": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "832", "96", ""], "19": ["Active DL BWP Config", "NL1_BWP_Config_V3", "1", "928", "96", ""], "20": ["UL Center Frequency", "UINT32", "1", "1024", "32", "Unit: 5khz"], "21": ["DL Center Frequency", "UINT32", "1", "1056", "32", "Unit: 5khz"], "22": ["DL Point A NARFCN", "UINT32", "1", "1088", "22", "Downlink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1110", "10", ""], "24": ["UL Point A NARFCN", "UINT32", "1", "1120", "22", "Uplink NR-ARFCN of Point A"], "25": ["Reserved", "UINT32", "1", "1142", "10", ""]}, "Name": "NL1_Scell_Config_V10"}, "NL1_Scell_Config_V11": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["DL NARFCN", "UINT32", "1", "10", "22", "Downlink NR-ARFCN of SSB"], "2": ["DL Frequency Band", "UINT32", "1", "32", "9", ""], "3": ["Cell Index", "UINT32", "1", "41", "4", "range[1, 9]"], "4": ["UL Cc Index", "UINT32", "1", "45", "3", "range[0, 3], 0: no UL"], "5": ["CP Type", "UINT32", "1", "48", "1", "Enum{0: Normal, 1: Extended}"], "6": ["UL Carrier Bandwidth", "UINT32", "1", "49", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:70MHz,13:200MHz,\n14:400MHz}"], "7": ["DL Carrier Bandwidth", "UINT32", "1", "53", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:70MHz,13:200MHz,\n14:400MHz}"], "8": ["Reserved", "UINT32", "1", "57", "7", ""], "9": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "64", "128", ""], "10": ["UL NARFCN", "UINT32", "1", "192", "22", "Uplink NR-ARFCN of Point A"], "11": ["UL Frequency Band", "UINT32", "1", "214", "9", ""], "12": ["Cell Type", "UINT32", "1", "223", "1", "Enum{0: DL+UL, 1: Only DL}"], "13": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "224", "32", ""], "14": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "256", "288", ""], "15": ["PDCCH Common Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "544", "128", ""], "16": ["PDCCH UE Specific Search Space Config", "NL1_PDCCH_Search_Space_Config_V1", "2", "672", "128", ""], "17": ["PDSCH Config", "NL1_PDSCH_Config_V6", "1", "800", "160", ""], "18": ["Active UL BWP Config", "NL1_BWP_Config_V4", "1", "960", "96", ""], "19": ["Active DL BWP Config", "NL1_BWP_Config_V4", "1", "1056", "96", ""], "20": ["UL Center Frequency", "UINT32", "1", "1152", "32", "Unit: 5khz"], "21": ["DL Center Frequency", "UINT32", "1", "1184", "32", "Unit: 5khz"], "22": ["DL Point A NARFCN", "UINT32", "1", "1216", "22", "Downlink NR-ARFCN of Point A"], "23": ["Reserved", "UINT32", "1", "1238", "10", ""], "24": ["UL Point A NARFCN", "UINT32", "1", "1248", "22", "Uplink NR-ARFCN of Point A"], "25": ["Reserved", "UINT32", "1", "1270", "6", ""], "26": ["SRS Switch Type", "UINT32", "1", "1276", "3", "Enum{0: 1T2R, 1:1T4R, 2:2T4R, 3:TR equal, 4: no config}"], "27": ["SRS Enable", "UINT32", "1", "1279", "1", "Enum{0: disable, 1: enable}"], "28": ["SRS Resource Set Config", "NL1_SRS_Resource_Set_Config_V2", "1", "1280", "288", ""], "29": ["CSI Report Config", "NL1_CSI_Report_Config_V3", "4", "1568", "384", ""]}, "Name": "NL1_Scell_Config_V11"}, "NL1_SUL_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["UL NARFCN", "UINT32", "1", "1", "22", "Uplink NR-ARFCN of Point A"], "2": ["UL Frequency Band", "UINT32", "1", "23", "8", ""], "3": ["Reserved", "UINT32", "1", "31", "1", ""]}, "Name": "NL1_SUL_Config_V1"}, "NL1_SUL_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["UL NARFCN", "UINT32", "1", "1", "22", "Uplink NR-ARFCN of Point A"], "2": ["UL Frequency Band", "UINT32", "1", "23", "8", ""], "3": ["Reserved", "UINT32", "1", "31", "1", ""], "4": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "32", "128", ""], "5": ["RACH Config", "NL1_RACH_Config_V2", "1", "160", "128", ""], "6": ["PUSCH Config", "NL1_PUSCH_Config_V3", "1", "288", "32", ""], "7": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "320", "288", ""], "8": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "608", "96", ""]}, "Name": "NL1_SUL_Config_V2"}, "NL1_SUL_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["UL NARFCN", "UINT32", "1", "1", "22", "Uplink NR-ARFCN of Point A"], "2": ["UL Frequency Band", "UINT32", "1", "23", "8", ""], "3": ["Reserved", "UINT32", "1", "31", "1", ""], "4": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "32", "128", ""], "5": ["RACH Config", "NL1_RACH_Config_V2", "1", "160", "128", ""], "6": ["PUSCH Config", "NL1_PUSCH_Config_V4", "1", "288", "32", ""], "7": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "320", "288", ""], "8": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "608", "96", ""]}, "Name": "NL1_SUL_Config_V3"}, "NL1_SUL_Config_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["UL NARFCN", "UINT32", "1", "1", "22", "Uplink NR-ARFCN of Point A"], "2": ["UL Frequency Band", "UINT32", "1", "23", "8", ""], "3": ["Reserved", "UINT32", "1", "31", "1", ""], "4": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "32", "128", ""], "5": ["RACH Config", "NL1_RACH_Config_V2", "1", "160", "128", ""], "6": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "288", "32", ""], "7": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "320", "288", ""], "8": ["Active UL BWP Config", "NL1_BWP_Config_V3", "1", "608", "96", ""]}, "Name": "NL1_SUL_Config_V4"}, "NL1_SUL_Config_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["UL NARFCN", "UINT32", "1", "1", "22", "Uplink NR-ARFCN of Point A"], "2": ["UL Frequency Band", "UINT32", "1", "23", "8", ""], "3": ["Reserved", "UINT32", "1", "31", "1", ""], "4": ["TDD Pattern", "NL1_TDD_UL_DL_Pattern_V1", "2", "32", "128", ""], "5": ["RACH Config", "NL1_RACH_Config_V2", "1", "160", "128", ""], "6": ["PUSCH Config", "NL1_PUSCH_Config_V5", "1", "288", "32", ""], "7": ["PUCCH Config", "NL1_PUCCH_Config_V3", "1", "320", "288", ""], "8": ["Active UL BWP Config", "NL1_BWP_Config_V4", "1", "608", "96", ""]}, "Name": "NL1_SUL_Config_V5"}, "NL1_TDD_UL_DL_Pattern_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["Transmission Period", "UINT32", "1", "1", "4", "Enum{0: 0_5ms, 1: 0_625ms, 2: 1msB, 3: 1_25ms, 4: 2ms,\n5: 2_5ms, 6: 3ms, 7: 4ms, 8: 5ms, 9: 10ms}"], "2": ["Number of DL slot", "UINT32", "1", "5", "9", "range[0, 320]"], "3": ["Number of UL slot", "UINT32", "1", "14", "9", "range[0, 320]"], "4": ["Number of DL symbol", "UINT32", "1", "23", "4", "range[0, 14]"], "5": ["Number of UL symbol", "UINT32", "1", "27", "4", "range[0, 14]"], "6": ["Reserved", "UINT32", "1", "31", "1", ""], "7": ["Guard Period", "UINT32", "1", "32", "4", "range[0, 10]"], "8": ["Reserved", "UINT32", "1", "36", "28", ""]}, "Name": "NL1_TDD_UL_DL_Pattern_V1"}, "NL1_RACH_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PRACH Configuration Index", "UINT32", "1", "0", "8", "range[0, 255]"], "1": ["Root Sequence Index", "UINT32", "1", "8", "10", "range[0, 837]"], "2": ["Total Number of Preambles", "UINT32", "1", "18", "6", "range[1, 63]"], "3": ["SSB RO Config Valid", "UINT32", "1", "24", "1", "Enum{0: Invalid, 1: Valid}"], "4": ["SSB Per RO", "UINT32", "1", "25", "3", "Enum{0: 1/8, 1: 1/4, 2: 1/2, 3: 1, 4: 2, 5: 4, 6: 8, 7: 16}"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["CB Preambles Per SSB", "UINT32", "1", "32", "6", "range[1, 63]"], "7": ["MSG1 SCS", "UINT32", "1", "38", "3", "Enum{0:15KHz,1:30KHz,2:60KHz,3:120KHz,4:240KHz,5:Invalid}"], "8": ["Reserved", "UINT32", "1", "41", "23", ""], "9": ["Preamble Target Power", "INT16", "1", "64", "16", ""], "10": ["SSB RSRP Threshold", "INT16", "1", "80", "16", ""]}, "Name": "NL1_RACH_Config_V1"}, "NL1_RACH_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PRACH Configuration Index", "UINT32", "1", "0", "8", "range[0, 255]"], "1": ["Root Sequence Index", "UINT32", "1", "8", "10", "range[0, 837]"], "2": ["Total Number of Preambles", "UINT32", "1", "18", "6", "range[1, 63]"], "3": ["SSB RO Config Valid", "UINT32", "1", "24", "1", "Enum{0: Invalid, 1: Valid}"], "4": ["SSB Per RO", "UINT32", "1", "25", "3", "Enum{0: 1/8, 1: 1/4, 2: 1/2, 3: 1, 4: 2, 5: 4, 6: 8, 7: 16}"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["CB Preambles Per SSB", "UINT32", "1", "32", "6", "range[1, 63]"], "7": ["MSG1 SCS", "UINT32", "1", "38", "3", "Enum{0:15KHz,1:30KHz,2:60KHz,3:120KHz,4:240KHz,5:Invalid}"], "8": ["Reserved", "UINT32", "1", "41", "23", ""], "9": ["Preamble Target Power", "INT16", "1", "64", "16", ""], "10": ["SSB RSRP Threshold", "INT16", "1", "80", "16", ""], "11": ["SUL RSRP Threshold", "INT16", "1", "96", "16", "0 means invalid"], "12": ["Reserved", "INT16", "1", "112", "16", ""]}, "Name": "NL1_RACH_Config_V2"}, "NL1_PUSCH_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Frequency Hopping", "UINT32", "1", "0", "2", "Enum{0: not configured, 1: intra, 2: inter}"], "1": ["Tx Config Type", "UINT32", "1", "2", "1", "Enum{0: Codebook, 1: Non-codebook}"], "2": ["Resource Allocation", "UINT32", "1", "3", "1", "Enum{0: Type 0, 1: Type 1}"], "3": ["Max MCS", "UINT32", "1", "4", "1", "Enum{0: 64QAM, 1: 256QAM}"], "4": ["Max Rank", "UINT32", "1", "5", "2", "Enum{0 : Rank 1, 1: Rank 2, 2: Rank 3, 3: Rank 4}"], "5": ["RBG Size", "UINT32", "1", "7", "1", "Enum{0: Config 1, 1: Config 2}"], "6": ["DMRS Additional Position for Mapping Type A", "UINT32", "1", "8", "2", "range[0, 3]"], "7": ["DMRS Additional Position for Mapping Type B", "UINT32", "1", "10", "2", "range[0, 3]"], "8": ["Reserved", "UINT32", "1", "12", "20", ""]}, "Name": "NL1_PUSCH_Config_V3"}, "NL1_PUSCH_Config_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Frequency Hopping", "UINT32", "1", "0", "2", "Enum{0: not configured, 1: intra, 2: inter}"], "1": ["Tx Config Type", "UINT32", "1", "2", "1", "Enum{0: Codebook, 1: Non-codebook}"], "2": ["Resource Allocation", "UINT32", "1", "3", "1", "Enum{0: Type 0, 1: Type 1}"], "3": ["Max MCS", "UINT32", "1", "4", "1", "Enum{0: 64QAM, 1: 256QAM}"], "4": ["Max Rank", "UINT32", "1", "5", "2", "Enum{0 : Rank 1, 1: Rank 2, 2: Rank 3, 3: Rank 4}"], "5": ["RBG Size", "UINT32", "1", "7", "1", "Enum{0: Config 1, 1: Config 2}"], "6": ["DMRS Additional Position for Mapping Type A", "UINT32", "1", "8", "2", "range[0, 3]"], "7": ["DMRS Additional Position for Mapping Type B", "UINT32", "1", "10", "2", "range[0, 3]"], "8": ["PTRS Config Valid", "UINT32", "1", "12", "1", ""], "9": ["Reserved", "UINT32", "1", "13", "19", ""]}, "Name": "NL1_PUSCH_Config_V4"}, "NL1_PUSCH_Config_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Frequency Hopping", "UINT32", "1", "0", "2", "Enum{0: not configured, 1: intra, 2: inter}"], "1": ["Tx Config Type", "UINT32", "1", "2", "1", "Enum{0: Codebook, 1: Non-codebook}"], "2": ["Resource Allocation", "UINT32", "1", "3", "1", "Enum{0: Type 0, 1: Type 1}"], "3": ["Max MCS", "UINT32", "1", "4", "1", "Enum{0: 64QAM, 1: 256QAM}"], "4": ["Max Rank", "UINT32", "1", "5", "2", "Enum{0 : Rank 1, 1: Rank 2, 2: Rank 3, 3: Rank 4}"], "5": ["RBG Size", "UINT32", "1", "7", "1", "Enum{0: Config 1, 1: Config 2}"], "6": ["DMRS Additional Position for Mapping Type A", "UINT32", "1", "8", "2", "range[0, 3]"], "7": ["DMRS Additional Position for Mapping Type B", "UINT32", "1", "10", "2", "range[0, 3]"], "8": ["PTRS Config Valid", "UINT32", "1", "12", "1", ""], "9": ["Transform Precoder", "UINT32", "1", "13", "1", "range[0, 1], Enum{0: Disabled, 1: Enabled}"], "10": ["Reserved", "UINT32", "1", "14", "18", ""]}, "Name": "NL1_PUSCH_Config_V5"}, "NL1_PUCCH_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Group Hopping", "UINT32", "1", "0", "1", "Enum{0: Disabled, 1: Enabled}"], "1": ["Sequence Hopping", "UINT32", "1", "1", "1", "Enum{0: Disabled, 1: Enabled}"], "2": ["Inter Slot Frequency Hopping", "UINT32", "1", "2", "4", "Bit 0 means format 1, bit 1 means format 2, and so on.\nValue 0 means disabled, value 1 means enabled."], "3": ["Additional DMRS", "UINT32", "1", "6", "4", "Bit 0 means format 1, bit 1 means format 2, and so on.\nValue 0 means disabled, value 1 means enabled."], "4": ["Reserved", "UINT32", "1", "10", "22", ""]}, "Name": "NL1_PUCCH_Config_V1"}, "NL1_PUCCH_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Group Hopping", "UINT32", "1", "0", "1", "Enum{0: Disabled, 1: Enabled}"], "1": ["Sequence Hopping", "UINT32", "1", "1", "1", "Enum{0: Disabled, 1: Enabled}"], "2": ["Inter Slot Frequency Hopping", "UINT32", "1", "2", "4", "Bit 0 means format 1, bit 1 means format 2, and so on.\nValue 0 means disabled, value 1 means enabled."], "3": ["Additional DMRS", "UINT32", "1", "6", "4", "Bit 0 means format 1, bit 1 means format 2, and so on.\nValue 0 means disabled, value 1 means enabled."], "4": ["Reserved", "UINT32", "1", "10", "22", ""], "5": ["SR Resource Config", "NL1_SR_Resource_Config_V1", "8", "32", "256", ""]}, "Name": "NL1_PUCCH_Config_V2"}, "NL1_PUCCH_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Vaid", "UINT32", "1", "0", "1", "Enum{0: Invalid config, 1: Valid config}"], "1": ["Group Hopping", "UINT32", "1", "1", "1", "Enum{0: Disabled, 1: Enabled}"], "2": ["Sequence Hopping", "UINT32", "1", "2", "1", "Enum{0: Disabled, 1: Enabled}"], "3": ["Inter Slot Frequency Hopping", "UINT32", "1", "3", "4", "Bit 0 means format 1, bit 1 means format 2, and so on.\nValue 0 means disabled, value 1 means enabled."], "4": ["Additional DMRS", "UINT32", "1", "7", "4", "Bit 0 means format 1, bit 1 means format 2, and so on.\nValue 0 means disabled, value 1 means enabled."], "5": ["Reserved", "UINT32", "1", "11", "21", ""], "6": ["SR Resource Config", "NL1_SR_Resource_Config_V1", "8", "32", "256", ""]}, "Name": "NL1_PUCCH_Config_V3"}, "NL1_SR_Resource_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Vaid", "UINT32", "1", "0", "1", "Enum{0: Invalid config, 1: Valid config}"], "1": ["Resource Id", "UINT32", "1", "1", "3", "range[0, 7]"], "2": ["SR Id", "UINT32", "1", "4", "3", "range[0, 7]"], "3": ["Periodicity as Symbols", "UINT32", "1", "7", "1", "0: The unit of periodicity is slots, 1: The unit of\nperiodicity is symbols\nEnum{0:Period unit is slots,1:Period unit is symbols}"], "4": ["Periodicity", "UINT32", "1", "8", "10", "range[1, 640]"], "5": ["Offset", "UINT32", "1", "18", "10", "range[0, 639]"], "6": ["Reserved", "UINT32", "1", "28", "4", ""]}, "Name": "NL1_SR_Resource_Config_V1"}, "NL1_PDCCH_Search_Space_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid Search Space", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["Search Space ID", "UINT32", "1", "1", "6", "range[0, 39]"], "2": ["Slot Periodicity", "UINT32", "1", "7", "4", "Enum{0: 1 slot, 1: 2 slots, 2: 4 slots, 3: 5 slots, 4: 8 slots, 5: 10 slots, 6: 16 slots, 7: 20 slots,\n8: 40 slots,9: 80 slots,10: 160 slots,11: 320 slots,12: 640 slots,13: 1280 slots,14: 2560 slots}"], "3": ["Slot Offset", "UINT32", "1", "11", "12", "range[0, 2559]"], "4": ["Reserved", "UINT32", "1", "23", "9", ""], "5": ["Duration", "UINT32", "1", "32", "12", "range[2, 2559]"], "6": ["Monitoring Symbols", "UINT32", "1", "44", "14", "bit 0 means symbol 0, bit 1 means symbol 1, and so on."], "7": ["Monitoring 0_0 and 1_0", "UINT32", "1", "58", "1", "Enum{0: False, 1: True}"], "8": ["Monitoring 0_1 and 1_1", "UINT32", "1", "59", "1", "Enum{0: False, 1: True}"], "9": ["Monitoring 2_0", "UINT32", "1", "60", "1", "Enum{0: False, 1: True}"], "10": ["Monitoring 2_1", "UINT32", "1", "61", "1", "Enum{0: False, 1: True}"], "11": ["Monitoring 2_2", "UINT32", "1", "62", "1", "Enum{0: False, 1: True}"], "12": ["Monitoring 2_3", "UINT32", "1", "63", "1", "Enum{0: False, 1: True}"]}, "Name": "NL1_PDCCH_Search_Space_Config_V1"}, "NL1_PDSCH_Config_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Resource Allocation", "UINT32", "1", "0", "2", "Enum{0: Type 0, 1: Type 1, 2: Dynamic switch}"], "1": ["RBG Size", "UINT32", "1", "2", "1", "Enum{0: Config 1, 1: Config 2}"], "2": ["Max MCS", "UINT32", "1", "3", "1", "Enum{0: 64QAM, 1: 256QAM}"], "3": ["Max Rank", "UINT32", "1", "4", "2", "Enum{0 : Rank 1, 1: Rank 2, 2: Rank 3, 3: Rank 4}"], "4": ["PRB Bundling Type", "UINT32", "1", "6", "1", "Enum{0: Static, 1: Dynamic}"], "5": ["PRB Bundling Size", "UINT32", "1", "7", "3", "Enum{0: N2, 1: N4, 2: Wideband}"], "6": ["PRB Bundling Size Set 1", "UINT32", "1", "10", "3", "Enum{0: N2, 1: N4, 2: Wideband,3: N2 wideband, 4: N4 wideband}"], "7": ["PRB Bundling Size Set 2", "UINT32", "1", "13", "3", "Enum{0: N2, 1: N4, 2: Wideband}"], "8": ["DMRS Additional Position for Mapping Type A", "UINT32", "1", "16", "2", "range[0, 3]"], "9": ["DMRS Additional Position for Mapping Type B", "UINT32", "1", "18", "2", "range[0, 3]"], "10": ["QCL Source", "UINT32", "1", "20", "2", "Enum{0: invalid, 1: SSB, 2: CSI-RS}"], "11": ["QCL Source ID", "UINT32", "1", "22", "7", "If QCL Source is SSB, the ID means SSB index. If QCL Source is\nCSI-RS, the ID means CSI-RS resource ID."], "12": ["QCL Type", "UINT32", "1", "29", "2", "Valid only when QCL Source is valid.\nEnum{0: Type A, 1: Type B, 2: Type C, 3: Type D}"], "13": ["Reserved", "UINT32", "1", "31", "1", ""]}, "Name": "NL1_PDSCH_Config_V4"}, "NL1_PDSCH_Config_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Resource Allocation", "UINT32", "1", "0", "2", "Enum{0: Type 0, 1: Type 1, 2: Dynamic switch}"], "1": ["RBG Size", "UINT32", "1", "2", "1", "Enum{0: Config 1, 1: Config 2}"], "2": ["Max MCS", "UINT32", "1", "3", "1", "Enum{0: 64QAM, 1: 256QAM}"], "3": ["Max Rank", "UINT32", "1", "4", "3", "Enum{0 : Rank 1, 1 : Rank 2, 2 : Rank 3, 3 : Rank 4,\n4 : Rank 5, 5 : Rank 6, 6 : Rank 7, 7 : Rank 8}"], "4": ["PRB Bundling Type", "UINT32", "1", "7", "1", "Enum{0: Static, 1: Dynamic}"], "5": ["PRB Bundling Size", "UINT32", "1", "8", "3", "Enum{0: N2, 1: N4, 2: Wideband}"], "6": ["PRB Bundling Size Set 1", "UINT32", "1", "11", "3", "Enum{0: N2, 1: N4, 2: Wideband, 3:N2 wideband, 4: N4 wideband}"], "7": ["PRB Bundling Size Set 2", "UINT32", "1", "14", "3", "Enum{0: N2, 1: N4, 2: Wideband}"], "8": ["DMRS Additional Position for Mapping Type A", "UINT32", "1", "17", "2", "range[0, 3]"], "9": ["DMRS Additional Position for Mapping Type B", "UINT32", "1", "19", "2", "range[0, 3]"], "10": ["QCL Source", "UINT32", "1", "21", "2", "Enum{0: invalid, 1: SSB, 2: CSI-RS}"], "11": ["QCL Source ID", "UINT32", "1", "23", "7", "If QCL Source is SSB, the ID means SSB index. If QCL Source is\nCSI-RS, the ID means CSI-RS resource ID."], "12": ["QCL Type", "UINT32", "1", "30", "2", "Valid only when QCL Source is valid.\nEnum{0: Type A, 1: Type B, 2: Type C, 3: Type D}"]}, "Name": "NL1_PDSCH_Config_V5"}, "NL1_PDSCH_Config_V6": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Resource Allocation", "UINT32", "1", "0", "2", "Enum{0: Type 0, 1: Type 1, 2: Dynamic switch}"], "1": ["RBG Size", "UINT32", "1", "2", "1", "Enum{0: Config 1, 1: Config 2}"], "2": ["Max MCS", "UINT32", "1", "3", "1", "Enum{0: 64QAM, 1: 256QAM}"], "3": ["Max Rank", "UINT32", "1", "4", "3", "Enum{0 : Rank 1, 1 : Rank 2, 2 : Rank 3, 3 : Rank 4,\n4 : Rank 5, 5 : Rank 6, 6 : Rank 7, 7 : Rank 8}"], "4": ["PRB Bundling Type", "UINT32", "1", "7", "1", "Enum{0: Static, 1: Dynamic}"], "5": ["PRB Bundling Size", "UINT32", "1", "8", "3", "Enum{0: N2, 1: N4, 2: Wideband}"], "6": ["PRB Bundling Size Set 1", "UINT32", "1", "11", "3", "Enum{0: N2, 1: N4, 2: Wideband, 3: N2 wideband, 4:N4 wideband}"], "7": ["PRB Bundling Size Set 2", "UINT32", "1", "14", "3", "Enum{0: N2, 1: N4, 2: Wideband}"], "8": ["DMRS Additional Position for Mapping Type A", "UINT32", "1", "17", "2", "range[0, 3]"], "9": ["DMRS Additional Position for Mapping Type B", "UINT32", "1", "19", "2", "range[0, 3]"], "10": ["QCL Source", "UINT32", "1", "21", "2", "Enum{0: invalid, 1: SSB, 2: CSI-RS}"], "11": ["QCL Source ID", "UINT32", "1", "23", "7", "If QCL Source is SSB, the ID means SSB index. If QCL Source is\nCSI-RS, the ID means CSI-RS resource ID."], "12": ["QCL Type", "UINT32", "1", "30", "2", "Valid only when QCL Source is valid.\nEnum{0: Type A, 1: Type B, 2: Type C, 3: Type D}"], "13": ["Reserved", "UINT32", "1", "32", "31", ""], "14": ["PTRS Config Valid", "UINT32", "1", "63", "1", ""], "15": ["PTRS Config", "NL1_PDSCH_PTRS_Config_V1", "1", "64", "96", "Valid if PTRS Config Valid=1"]}, "Name": "NL1_PDSCH_Config_V6"}, "NL1_PDSCH_PTRS_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Frequency Density Valid", "UINT32", "1", "0", "1", ""], "1": ["Time Density Valid", "UINT32", "1", "1", "1", ""], "2": ["Epre Ratio", "UINT32", "1", "2", "2", "range[0, 3]"], "3": ["Resource Element Offset", "UINT32", "1", "4", "2", "Enum{0: Offset00, 1: Offset01, 2: Offset10, 3: Offset11}"], "4": ["Reserved", "UINT32", "1", "6", "26", ""], "5": ["Frequency Density", "UINT16", "2", "32", "32", "range[1, 276], valid only if Frequency Density Valid=1"], "6": ["Time Density", "UINT8", "3", "64", "24", "range[0, 29], valid only if Time Density Valid=1"], "7": ["Reserved", "UINT8", "1", "88", "8", ""]}, "Name": "NL1_PDSCH_PTRS_Config_V1"}, "NL1_SRS_Resource_Set_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Resource Set Id", "UINT16", "1", "0", "4", "range[0, 15]"], "1": ["Usage", "UINT16", "1", "4", "2", "Enum{0: beam management, 1: codebook, 2: non-codebook,\n3: antenna switching}"], "2": ["alpha", "UINT16", "1", "6", "3", "Enum{0:0,1: 0_4, 2: 0_5, 3: 0_6, 4: 0_7, 5: 0_8, 6: 0_9, 7: 1}"], "3": ["Reserved", "UINT16", "1", "9", "7", ""], "4": ["p0", "INT16", "1", "16", "16", "range[-202, 24]"], "5": ["SRS Resources", "NL1_SRS_Resource_Config_V2", "4", "32", "256", ""]}, "Name": "NL1_SRS_Resource_Set_Config_V2"}, "NL1_SRS_Resource_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["Resource Id", "UINT32", "1", "1", "6", "range[0, 63]"], "2": ["Resource Type", "UINT32", "1", "7", "2", "Enum{0: aperiodic, 1: semi-persistent, 2: periodic}"], "3": ["Number of SRS Ports", "UINT32", "1", "9", "3", "range[1, 4]"], "4": ["Number of Symbols", "UINT32", "1", "12", "3", "range[1, 4]"], "5": ["Frequency Domain Position", "UINT32", "1", "15", "7", "range[0, 67]"], "6": ["Frequency Domain Shift", "UINT32", "1", "22", "9", "range[0, 268]"], "7": ["Reserved", "UINT32", "1", "31", "1", ""], "8": ["Periodicity", "UINT32", "1", "32", "12", "range[1, 2560]"], "9": ["Offset", "UINT32", "1", "44", "12", "range[0, 2559]"], "10": ["Frequency Hopping", "UINT32", "1", "56", "2", "Enum{0: disabled, 1: enabled}"], "11": ["Reserved", "UINT32", "1", "58", "6", ""]}, "Name": "NL1_SRS_Resource_Config_V2"}, "NL1_NZP_CSI_RS_Resource_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid Config", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["Resource Id", "UINT32", "1", "1", "8", "range[0, 191]"], "2": ["Periodicity Offset Valid", "UINT32", "1", "9", "1", "Enum{0: False, 1: True}"], "3": ["Periodicity", "UINT32", "1", "10", "10", "range[4, 640]"], "4": ["Offset", "UINT32", "1", "20", "10", "range[0, 639]"], "5": ["Reserved", "UINT32", "1", "30", "2", ""]}, "Name": "NL1_NZP_CSI_RS_Resource_V1"}, "NL1_CSI_Report_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid Config", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["Report Config Id", "UINT32", "1", "1", "6", "range[0, 47]"], "2": ["Serving Cell Index", "UINT32", "1", "7", "5", "range[0, 31]"], "3": ["Report Config Type", "UINT32", "1", "12", "2", "Enum{0: Periodic,1: Semi-persistent on PUCCH,\n2: Semi-persistent on PUSCH, 3: Aperiodic}"], "4": ["Report Periodicity", "UINT32", "1", "14", "9", "range[4, 320]. Valid only when Report Config Type is periodic\nor semi-persistent."], "5": ["Report Quantity", "UINT32", "1", "23", "3", "Enum{0: None,1: CRI_RI_PMI_CQI, 2: RI_I1,3: RI_I1_CQI,\n4:CRI_RI_CQI,5:CRI_RSRP,6:SSB Index RSRP,7:CRI_RI_LI_PMI_CQ}"], "6": ["CQI Reporting Granularity", "UINT32", "1", "26", "1", "Enum{0: wideband, 1: subband}"], "7": ["PMI Reporting Granularity", "UINT32", "1", "27", "1", "Enum{0: wideband, 1: subband}"], "8": ["Reserved", "UINT32", "1", "28", "4", ""], "9": ["Number of Subbands", "UINT32", "1", "32", "5", "range[3, 19]"], "10": ["Subband Size", "UINT32", "1", "37", "6", "4 or 8 or 16 or 32"], "11": ["Codebook Config", "UINT32", "1", "43", "2", "Enum{0: Type I Single Panel, 1:Type I Multi Panel,2: Type II,\n3: Type II Port Selection}"], "12": ["Reserved", "UINT32", "1", "45", "19", ""], "13": ["NZP CSI RS Resource", "NL1_NZP_CSI_RS_Resource_V2", "1", "64", "32", ""]}, "Name": "NL1_CSI_Report_Config_V2"}, "NL1_CSI_Report_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Valid Config", "UINT32", "1", "0", "1", "Enum{0: Invalid, 1: Valid}"], "1": ["Report Config Id", "UINT32", "1", "1", "6", "range[0, 47]"], "2": ["Serving Cell Index", "UINT32", "1", "7", "5", "range[0, 31]"], "3": ["Report Config Type", "UINT32", "1", "12", "2", "Enum{0: Periodic,1: Semi-persistent on PUCCH,\n2: Semi-persistent on PUSCH, 3: Aperiodic}"], "4": ["Report Periodicity", "UINT32", "1", "14", "9", "range[4, 320]. Valid only when Report Config Type is periodic\nor semi-persistent."], "5": ["Report Quantity", "UINT32", "1", "23", "3", "Enum{0: None,1: CRI_RI_PMI_CQI, 2: RI_I1,3: RI_I1_CQI,\n4:CRI_RI_CQI,5:CRI_RSRP,6:SSB Index RSRP,7:CRI_RI_LI_PMI_CQ}"], "6": ["CQI Reporting Granularity", "UINT32", "1", "26", "1", "Enum{0: wideband, 1: subband}"], "7": ["PMI Reporting Granularity", "UINT32", "1", "27", "1", "Enum{0: wideband, 1: subband}"], "8": ["CQI Table Valid", "UINT32", "1", "28", "1", "Enum{0: Invalid, 1: Valid}"], "9": ["CQI Table Index", "UINT32", "1", "29", "2", "Range[1,3]"], "10": ["Reserved", "UINT32", "1", "31", "1", ""], "11": ["Number of Subbands", "UINT32", "1", "32", "5", "range[3, 19]"], "12": ["Subband Size", "UINT32", "1", "37", "6", "4 or 8 or 16 or 32"], "13": ["Codebook Config", "UINT32", "1", "43", "2", "Enum{0: Type I Single Panel, 1:Type I Multi Panel,2: Type II,\n3: Type II Port Selection}"], "14": ["Reserved", "UINT32", "1", "45", "19", ""], "15": ["NZP CSI RS Resource", "NL1_NZP_CSI_RS_Resource_V2", "1", "64", "32", ""]}, "Name": "NL1_CSI_Report_Config_V3"}, "NL1_NZP_CSI_RS_Resource_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Periodicity Offset Valid", "UINT32", "1", "0", "1", "Enum{0: False, 1: True}"], "1": ["Periodicity", "UINT32", "1", "1", "10", "range[4, 640]"], "2": ["Offset", "UINT32", "1", "11", "10", "range[0, 639]"], "3": ["Number of Ports", "UINT32", "1", "21", "6", "range[1, 32]"], "4": ["Reserved", "UINT32", "1", "27", "5", ""]}, "Name": "NL1_NZP_CSI_RS_Resource_V2"}, "NL1_Antenna_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Transmission Mode", "UINT32", "1", "0", "4", "range[1, 10]"], "1": ["Tx Antenna Selection", "UINT32", "1", "4", "2", "Enum{0: Disabled, 1: Closed loop, 2: Open loop}"], "2": ["Reserved", "UINT32", "1", "6", "26", ""]}, "Name": "NL1_Antenna_Config_V1"}, "NL1_BWP_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BWP Id", "UINT32", "1", "0", "3", "range[0, 4]"], "1": ["BWP start", "UINT32", "1", "3", "9", ""], "2": ["BWP size", "UINT32", "1", "12", "9", "range[0, 275]"], "3": ["Sub carrier Spacing", "UINT32", "1", "21", "3", "{0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz\nEnum{0:15khz, 1:30khz, 2:60khz, 3:120khz, 4:240khz}"], "4": ["Reserved", "UINT32", "1", "24", "8", ""], "5": ["Max throughput", "UINT32", "1", "32", "32", "Maximum throughput of this BWP based on the current physical\nconfiguration (KB/s)"]}, "Name": "NL1_BWP_Config_V1"}, "NL1_BWP_Config_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BWP Id", "UINT32", "1", "0", "3", "range[0, 4]"], "1": ["BWP start", "UINT32", "1", "3", "9", ""], "2": ["BWP size", "UINT32", "1", "12", "9", "range[0, 275]"], "3": ["Sub carrier Spacing", "UINT32", "1", "21", "3", "{0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz\nEnum{0:15khz, 1:30khz, 2:60khz, 3:120khz, 4:240khz}"], "4": ["Reserved", "UINT32", "1", "24", "8", ""], "5": ["Max throughput", "UINT32", "1", "32", "32", "Maximum throughput of this BWP based on the current physical\nconfiguration (KB/s)"], "6": ["locationAndBandwidth", "UINT32", "1", "64", "16", "range[0, 37949]"], "7": ["Reserved", "UINT32", "1", "80", "16", ""]}, "Name": "NL1_BWP_Config_V2"}, "NL1_BWP_Config_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BWP Id", "UINT32", "1", "0", "3", "range[0, 4]"], "1": ["BWP start", "UINT32", "1", "3", "9", ""], "2": ["BWP size", "UINT32", "1", "12", "9", "range[0, 275]"], "3": ["Sub carrier Spacing", "UINT32", "1", "21", "3", "{0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz\nEnum{0:15khz, 1:30khz, 2:60khz, 3:120khz, 4:240khz}"], "4": ["Bandwidth", "UINT32", "1", "24", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:200MHz,\n13:400MHz}"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["Max throughput", "UINT32", "1", "32", "32", "Maximum throughput of this BWP based on the current physical\nconfiguration (KB/s)"], "7": ["locationAndBandwidth", "UINT32", "1", "64", "16", "range[0, 37949]"], "8": ["Reserved", "UINT32", "1", "80", "16", ""]}, "Name": "NL1_BWP_Config_V3"}, "NL1_BWP_Config_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["BWP Id", "UINT32", "1", "0", "3", "range[0, 4]"], "1": ["BWP start", "UINT32", "1", "3", "9", ""], "2": ["BWP size", "UINT32", "1", "12", "9", "range[0, 275]"], "3": ["Sub carrier Spacing", "UINT32", "1", "21", "3", "{0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz\nEnum{0:15khz, 1:30khz, 2:60khz, 3:120khz, 4:240khz}"], "4": ["Bandwidth", "UINT32", "1", "24", "4", "Quantized bandwidth in MHz\nEnum{0:5MHz,1:10Mhz,2:15Mhz,3:20Mhz,4:25Mhz,5:30MHz,6:40MHz,\n7:50MHz,8:60MHz,9:80MHz,10:90MHz,11:100MHz,12:70MHz,13:200MHz,\n14:400MHz}"], "5": ["Reserved", "UINT32", "1", "28", "4", ""], "6": ["Max throughput", "UINT32", "1", "32", "32", "Maximum throughput of this BWP based on the current physical\nconfiguration (KB/s)"], "7": ["locationAndBandwidth", "UINT32", "1", "64", "16", "range[0, 37949]"], "8": ["Reserved", "UINT32", "1", "80", "16", ""]}, "Name": "NL1_BWP_Config_V4"}, "NL1_TRS_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Periodicity", "UINT32", "1", "0", "10", "range[4, 640]"], "1": ["PRB Number", "UINT32", "1", "10", "9", "range[0, 273]"], "2": ["QCL Source", "UINT32", "1", "19", "2", "Enum{0: invalid, 1: SSB, 2: CSI-RS}"], "3": ["QCL Source ID", "UINT32", "1", "21", "7", "If QCL Source is SSB, the ID means SSB index. If QCL Source is\nCSI-RS, the ID means CSI-RS resource ID."], "4": ["QCL Type", "UINT32", "1", "28", "2", "Valid only when QCL Source is valid.\nEnum{ 0: Type A, 1: Type B, 2: Type C, 3: Type D}"], "5": ["Reserved", "UINT32", "1", "30", "2", ""]}, "Name": "NL1_TRS_Config_V1"}, "NL1_PCCH_Config_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PCCH Config Idle Valid", "UINT32", "1", "0", "1", "Enum{0: invalid, 1: valid}, valid once UE enters idle mode"], "1": ["Default Paging Cycle", "UINT32", "1", "1", "9", "range[32, 256]"], "2": ["N", "UINT32", "1", "10", "3", "Enum{0: 1T, 1: T/2, 2: T/4, 3: T/8, 4: T/16}"], "3": ["Paging Offset", "UINT32", "1", "13", "4", "range[0, 15]"], "4": ["Ns", "UINT32", "1", "17", "3", "range[1, 4]"], "5": ["User Specific Paging Cycle", "UINT32", "1", "20", "9", "range[32, 256]"], "6": ["Reserved", "UINT32", "1", "29", "3", ""]}, "Name": "NL1_PCCH_Config_V1"}}},
+ Public JSON end */
+// Checksum : [1660e5811b0c7ae74b19ecccf5dfb8c7]
diff --git a/mcu/interface/service/icd/nl1/NL1_RACH_Information.h b/mcu/interface/service/icd/nl1/NL1_RACH_Information.h
new file mode 100644
index 0000000..3f71952
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_RACH_Information.h
@@ -0,0 +1,133 @@
+// ICD Header Format v3
+// Name : NL1_RACH_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9006
+// Version : t-internal-nr-icd-draft3RC1-244-g393eb40
+
+#ifndef _NL1_RACH_INFORMATION_H
+#define _NL1_RACH_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_RACH_INFORMATION 0x9006
+
+#define ICD_NL1_NL1_RACH_INFO_CONTENT_V5 5
+
+#define ICD_NL1_RACH_INFO_STRUCT_V5_MAX_SIZE 52
+
+typedef struct {
+ kal_uint32 msg4_valid:1; // 0: invalid, 1: valid
+ kal_uint32 msg4_sfn:10; // This is the SFN based on the occurrence of CR. range[0, 1023]
+ kal_uint32 msg4_subframe:4; // This is the SF based on the occurrence of CR. range[0, 9]
+ kal_uint32 msg4_slot:3; // This is the slot based on the occurrence of CR. range[0, 7]
+ kal_uint32 contention_decoding_result:1; // 0: fail, 1: success
+ kal_uint32 reserved:13;
+} nl1_rach_msg4_content_v1;
+
+typedef nl1_rach_msg4_content_v1 nl1_rach_msg4_content;
+
+typedef struct {
+ kal_uint32 msg3_valid:1; // 0: invalid, 1: valid
+ kal_uint32 msg3_sfn:10; // This is the SFN based on the occurrence of Msg3. range[0, 1023]
+ kal_uint32 msg3_subframe:4; // This is the SF based on the occurrence of Msg3. range[0, 9]
+ kal_uint32 msg3_slot:3; // This is the slot based on the occurrence of Msg3. range[0, 7]
+ kal_uint32 mcs:5; // range[0, 31]
+ kal_uint32 modulation_type:2; // 0: QPSK
+ // 1: 16QAM
+ // 2: 64QAM
+ // 3: 256QAM
+ kal_uint32 start_rb:7; // range[0, 110]
+ kal_uint32 number_of_rb:7; // range[0, 110]
+ kal_uint32 tbs_idx:6; // range[0, 33]
+ kal_uint32 reserved:1;
+ kal_uint32 ul_delay:1; // 0: off, 1: on
+ kal_uint32 rv:2; // range[0,3]
+ kal_uint32 harq_id:3; // range[0,7]
+ kal_uint32 hopping_flag:1; // 0: hopping disable, 1:hopping enable
+ kal_uint32 reserved_1:11;
+ kal_int8 tpc; // range[-6, 8]
+ kal_int8 msg3_power; // range[-50, 23]
+ kal_uint16 reserved_2;
+} nl1_rach_msg3_content_v2;
+
+typedef nl1_rach_msg3_content_v2 nl1_rach_msg3_content;
+
+typedef struct {
+ kal_uint32 msg2_valid:1; // 0: invalid, 1: valid
+ kal_uint32 rar_sfn:10; // This is the SFN based on the occurrence of RAR. range[0, 1023]
+ kal_uint32 rar_subframe:4; // This is the SF based on the occurrence of RAR. range[0, 9]
+ kal_uint32 rar_slot:3; // This is the slot based on the occurrence of RAR. range[0, 7]
+ kal_uint32 contention_type:1; // 0: contention-based
+ // 1: non-contention-based
+ kal_uint32 rnti_type:1; // 0: TC-RNTI
+ // 1: C-RNTI
+ kal_uint32 reserved:12;
+ kal_uint32 rnti_value:16; // Radio Network Temporary Identifier
+ kal_uint32 timing_advance_valid:1; // 0: invalid, 1: valid, this should be always valid if MSG2 is valid
+ kal_uint32 timing_advance_value:12; // range[0, 3846]
+ kal_uint32 reserved_1:3;
+ kal_uint32 riv:14; // Resource Indicator Value
+ kal_uint32 reserved_2:18;
+} nl1_rach_msg2_content_v2;
+
+typedef nl1_rach_msg2_content_v2 nl1_rach_msg2_content;
+
+typedef struct {
+ kal_uint32 msg1_valid:1; // 0: invalid, 1: valid
+ kal_uint32 preamble_sfn:10; // This is the SFN based on the occurrence of preamble. range[0, 1023]
+ kal_uint32 preamble_subframe:4; // This is the SF based on the occurrence of preamble. range[0, 9]
+ kal_uint32 preamble_slot:3; // This is the slot based on the occurrence of preamble. range[0, 7]
+ kal_uint32 preamble_symbol:4; // This is the start symbol based on the occurrence of preamble. range[0, 14]
+ kal_uint32 zadoff_sequence_number:10; // range[0, 837]
+ kal_uint32 cyclic_shift:1; // range[0, 839]
+ kal_uint32 high_speed_flag:1; // 0: False, 1: True
+ kal_uint32 preamble_format:4; // 0: 0, 1: 1, 2: 2, 3: 3,
+ // 4: A1, 5: A2, 6: A3, 7: B1
+ // 8: B2, 9: B3, 10: B4, 11: C0
+ // 12: C2
+ kal_uint32 reserved:5;
+ kal_uint32 prach_config:8; // range[0, 255]
+ kal_uint32 frequency_offset:7; // range[0, 104]
+ kal_uint32 reserved_1:6;
+ kal_int16 prach_tx_power; // PRACH power, range[-128,127]
+ kal_uint16 pathloss:8; // range[0, 255]
+ kal_uint16 reserved_2:8;
+ kal_int16 prach_real_power; // PRACH power, range[-128,127]
+ kal_uint16 reserved_3; // Transmitted real power, range[-50,23]
+} nl1_rach_msg1_content_v3;
+
+typedef nl1_rach_msg1_content_v3 nl1_rach_msg1_content;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record, range[0,9]
+ kal_uint32 slot:3; // This is the slot index within this SF. range[0, 7]
+ kal_uint32 ra_event:3; // 0: NULL 1: UL 2: PDCCH order 3: CCCH 4: Beam failure 5: SI request
+ // 6: SCG modify 7: abort
+ kal_uint32 carrier_index:3; // DL CC index that RA happened
+ kal_uint32 sul:1; // 0: NUL, 1: SUL
+ kal_uint32 ssb_index:6; // SSB index selected by NMAC, range[0, 63]
+ kal_uint32 csirs_index:7; // CSIRS index selected by NMAC, range[0, 95]
+ kal_uint32 beam_type:1; // 0: SSB, 1: CSIRS
+ kal_uint32 ul_type:1; // 0: NUL, 1: SUL
+ kal_uint32 reserved:17;
+ nl1_rach_msg1_content rach_msg1;
+ nl1_rach_msg2_content rach_msg2;
+ nl1_rach_msg3_content rach_msg3;
+ nl1_rach_msg4_content rach_msg4;
+} icd_nl1_rach_info_struct_v5;
+
+typedef icd_nl1_rach_info_struct_v5 icd_nl1_rach_info_struct;
+
+
+#endif /* _NL1_RACH_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_RACH_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9006", "Name": "NL1_RACH_Information", "Type": "RECORD", "Desc": "The log is generated every RACH process.\n"}, "table": {"NL1_RACH_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_RACH_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_RACH_Info"}, "NL1_RACH_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_RACH_Info_Content_V1", ""], "1": ["2", "NL1_RACH_Info_Content_V2", ""], "2": ["3", "NL1_RACH_Info_Content_V3", ""], "3": ["4", "NL1_RACH_Info_Content_V4", ""], "4": ["5", "NL1_RACH_Info_Content_V5", ""]}, "Name": "NL1_RACH_Info_Content_Versions"}, "NL1_RACH_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within this SF. range[0, 7]"], "3": ["RA event", "UINT32", "1", "17", "3", "0: NULL 1: UL 2: PDCCH order 3: CCCH 4: Beam failure 5: SI request\n6: SCG modify 7: abort"], "4": ["Carrier Index", "UINT32", "1", "20", "3", "DL CC index that RA happened"], "5": ["Reserved", "UINT32", "1", "23", "1", ""], "6": ["ssb index", "UINT32", "1", "24", "6", "ssb index selected by NMAC, range[0,63]"], "7": ["Reserved", "UINT32", "1", "30", "26", ""], "8": ["RACH_MSG1", "NL1_RACH_MSG1_Content_V1", "1", "56", "96", ""], "9": ["RACH_MSG2", "NL1_RACH_MSG2_Content_V1", "1", "152", "96", ""], "10": ["RACH_MSG3", "NL1_RACH_MSG3_Content_V1", "1", "248", "96", ""], "11": ["RACH_MSG4", "NL1_RACH_MSG4_Content_V1", "1", "344", "32", ""]}, "Name": "NL1_RACH_Info_Content_V1"}, "NL1_RACH_Info_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within this SF. range[0, 7]"], "3": ["RA event", "UINT32", "1", "17", "3", "0: NULL 1: UL 2: PDCCH order 3: CCCH 4: Beam failure 5: SI request\n6: SCG modify 7: abort"], "4": ["Carrier Index", "UINT32", "1", "20", "3", "DL CC index that RA happened"], "5": ["Reserved", "UINT32", "1", "23", "1", ""], "6": ["ssb index", "UINT32", "1", "24", "6", "ssb index selected by NMAC, range[0,63]"], "7": ["Reserved", "UINT32", "1", "30", "26", ""], "8": ["RACH_MSG1", "NL1_RACH_MSG1_Content_V1", "1", "56", "96", ""], "9": ["RACH_MSG2", "NL1_RACH_MSG2_Content_V1", "1", "152", "96", ""], "10": ["RACH_MSG3", "NL1_RACH_MSG3_Content_V2", "1", "248", "96", ""], "11": ["RACH_MSG4", "NL1_RACH_MSG4_Content_V1", "1", "344", "32", ""]}, "Name": "NL1_RACH_Info_Content_V2"}, "NL1_RACH_Info_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within this SF. range[0, 7]"], "3": ["RA event", "UINT32", "1", "17", "3", "0: NULL 1: UL 2: PDCCH order 3: CCCH 4: Beam failure 5: SI request\n6: SCG modify 7: abort"], "4": ["Carrier Index", "UINT32", "1", "20", "3", "DL CC index that RA happened"], "5": ["Reserved", "UINT32", "1", "23", "1", ""], "6": ["ssb index", "UINT32", "1", "24", "6", "ssb index selected by NMAC, range[0,63]"], "7": ["Reserved", "UINT32", "1", "30", "26", ""], "8": ["RACH_MSG1", "NL1_RACH_MSG1_Content_V1", "1", "56", "96", ""], "9": ["RACH_MSG2", "NL1_RACH_MSG2_Content_V2", "1", "152", "96", ""], "10": ["RACH_MSG3", "NL1_RACH_MSG3_Content_V2", "1", "248", "96", ""], "11": ["RACH_MSG4", "NL1_RACH_MSG4_Content_V1", "1", "344", "32", ""]}, "Name": "NL1_RACH_Info_Content_V3"}, "NL1_RACH_Info_Content_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within this SF. range[0, 7]"], "3": ["RA event", "UINT32", "1", "17", "3", "0: NULL 1: UL 2: PDCCH order 3: CCCH 4: Beam failure 5: SI request\n6: SCG modify 7: abort"], "4": ["Carrier Index", "UINT32", "1", "20", "3", "DL CC index that RA happened"], "5": ["SUL", "UINT32", "1", "23", "1", "0: NUL, 1: SUL"], "6": ["ssb index", "UINT32", "1", "24", "6", "SSB index selected by NMAC, range[0, 63]"], "7": ["CSIRS Index", "UINT32", "1", "30", "7", "CSIRS index selected by NMAC, range[0, 95]"], "8": ["Beam Type", "UINT32", "1", "37", "1", "0: SSB, 1: CSIRS"], "9": ["UL Type", "UINT32", "1", "38", "1", "0: NUL, 1: SUL"], "10": ["Reserved", "UINT32", "1", "39", "17", ""], "11": ["RACH_MSG1", "NL1_RACH_MSG1_Content_V2", "1", "56", "96", ""], "12": ["RACH_MSG2", "NL1_RACH_MSG2_Content_V2", "1", "152", "96", ""], "13": ["RACH_MSG3", "NL1_RACH_MSG3_Content_V2", "1", "248", "96", ""], "14": ["RACH_MSG4", "NL1_RACH_MSG4_Content_V1", "1", "344", "32", ""]}, "Name": "NL1_RACH_Info_Content_V4"}, "NL1_RACH_Info_Content_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot index within this SF. range[0, 7]"], "3": ["RA event", "UINT32", "1", "17", "3", "0: NULL 1: UL 2: PDCCH order 3: CCCH 4: Beam failure 5: SI request\n6: SCG modify 7: abort"], "4": ["Carrier Index", "UINT32", "1", "20", "3", "DL CC index that RA happened"], "5": ["SUL", "UINT32", "1", "23", "1", "0: NUL, 1: SUL"], "6": ["ssb index", "UINT32", "1", "24", "6", "SSB index selected by NMAC, range[0, 63]"], "7": ["CSIRS Index", "UINT32", "1", "30", "7", "CSIRS index selected by NMAC, range[0, 95]"], "8": ["Beam Type", "UINT32", "1", "37", "1", "0: SSB, 1: CSIRS"], "9": ["UL Type", "UINT32", "1", "38", "1", "0: NUL, 1: SUL"], "10": ["Reserved", "UINT32", "1", "39", "17", ""], "11": ["RACH_MSG1", "NL1_RACH_MSG1_Content_V3", "1", "56", "128", ""], "12": ["RACH_MSG2", "NL1_RACH_MSG2_Content_V2", "1", "184", "96", ""], "13": ["RACH_MSG3", "NL1_RACH_MSG3_Content_V2", "1", "280", "96", ""], "14": ["RACH_MSG4", "NL1_RACH_MSG4_Content_V1", "1", "376", "32", ""]}, "Name": "NL1_RACH_Info_Content_V5"}, "NL1_RACH_MSG1_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg1 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Preamble SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of preamble. range[0, 1023]"], "2": ["Preamble Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of preamble. range[0, 9]"], "3": ["Preamble Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of preamble. range[0, 7]"], "4": ["Preamble Symbol", "UINT32", "1", "18", "4", "This is the start symbol based on the occurrence of preamble. range[0, 14]"], "5": ["ZadOff Sequence Number", "UINT32", "1", "22", "10", "range[0, 837]"], "6": ["Cyclic Shift", "UINT32", "1", "32", "1", "range[0, 839]"], "7": ["High Speed Flag", "UINT32", "1", "33", "1", "0: False, 1: True"], "8": ["Preamble Format", "UINT32", "1", "34", "4", "0: 0, 1: 1, 2: 2, 3: 3,\n4: A1, 5: A2, 6: A3, 7: B1\n8: B2, 9: B3, 10: B4, 11: C0\n12: C2"], "9": ["Reserved", "UINT32", "1", "38", "5", ""], "10": ["Prach Config", "UINT32", "1", "43", "8", "range[0, 255]"], "11": ["Frequency Offset", "UINT32", "1", "51", "7", "range[0, 104]"], "12": ["Reserved", "UINT32", "1", "58", "6", ""], "13": ["PRACH TX power", "INT16", "1", "64", "16", "PRACH power, range[-128,127]"], "14": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "NL1_RACH_MSG1_Content_V1"}, "NL1_RACH_MSG1_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg1 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Preamble SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of preamble. range[0, 1023]"], "2": ["Preamble Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of preamble. range[0, 9]"], "3": ["Preamble Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of preamble. range[0, 7]"], "4": ["Preamble Symbol", "UINT32", "1", "18", "4", "This is the start symbol based on the occurrence of preamble. range[0, 14]"], "5": ["ZadOff Sequence Number", "UINT32", "1", "22", "10", "range[0, 837]"], "6": ["Cyclic Shift", "UINT32", "1", "32", "1", "range[0, 839]"], "7": ["High Speed Flag", "UINT32", "1", "33", "1", "0: False, 1: True"], "8": ["Preamble Format", "UINT32", "1", "34", "4", "0: 0, 1: 1, 2: 2, 3: 3,\n4: A1, 5: A2, 6: A3, 7: B1\n8: B2, 9: B3, 10: B4, 11: C0\n12: C2"], "9": ["Reserved", "UINT32", "1", "38", "5", ""], "10": ["Prach Config", "UINT32", "1", "43", "8", "range[0, 255]"], "11": ["Frequency Offset", "UINT32", "1", "51", "7", "range[0, 104]"], "12": ["Reserved", "UINT32", "1", "58", "6", ""], "13": ["PRACH TX power", "INT16", "1", "64", "16", "PRACH power, range[-128,127]"], "14": ["Pathloss", "UINT16", "1", "80", "8", "range[0, 255]"], "15": ["Reserved", "UINT16", "1", "88", "8", ""]}, "Name": "NL1_RACH_MSG1_Content_V2"}, "NL1_RACH_MSG1_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg1 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Preamble SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of preamble. range[0, 1023]"], "2": ["Preamble Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of preamble. range[0, 9]"], "3": ["Preamble Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of preamble. range[0, 7]"], "4": ["Preamble Symbol", "UINT32", "1", "18", "4", "This is the start symbol based on the occurrence of preamble. range[0, 14]"], "5": ["ZadOff Sequence Number", "UINT32", "1", "22", "10", "range[0, 837]"], "6": ["Cyclic Shift", "UINT32", "1", "32", "1", "range[0, 839]"], "7": ["High Speed Flag", "UINT32", "1", "33", "1", "0: False, 1: True"], "8": ["Preamble Format", "UINT32", "1", "34", "4", "0: 0, 1: 1, 2: 2, 3: 3,\n4: A1, 5: A2, 6: A3, 7: B1\n8: B2, 9: B3, 10: B4, 11: C0\n12: C2"], "9": ["Reserved", "UINT32", "1", "38", "5", ""], "10": ["Prach Config", "UINT32", "1", "43", "8", "range[0, 255]"], "11": ["Frequency Offset", "UINT32", "1", "51", "7", "range[0, 104]"], "12": ["Reserved", "UINT32", "1", "58", "6", ""], "13": ["PRACH TX power", "INT16", "1", "64", "16", "PRACH power, range[-128,127]"], "14": ["Pathloss", "UINT16", "1", "80", "8", "range[0, 255]"], "15": ["Reserved", "UINT16", "1", "88", "8", ""], "16": ["PRACH real power", "INT16", "1", "96", "16", "PRACH power, range[-128,127]"], "17": ["Reserved", "UINT16", "1", "112", "16", "Transmitted real power, range[-50,23]"]}, "Name": "NL1_RACH_MSG1_Content_V3"}, "NL1_RACH_MSG2_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg2 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["RAR SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of RAR. range[0, 1023]"], "2": ["RAR Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of RAR. range[0, 9]"], "3": ["RAR Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of RAR. range[0, 7]"], "4": ["Contention Type", "UINT32", "1", "18", "1", "0: contention-based\n1: non-contention-based"], "5": ["RNTI Type", "UINT32", "1", "19", "1", "0: TC-RNTI\n1: C-RNTI"], "6": ["Reserved", "UINT32", "1", "20", "12", ""], "7": ["RNTI Value", "UINT32", "1", "32", "16", "Radio Network Temporary Identifier"], "8": ["Timing_Advance_valid", "UINT32", "1", "48", "1", "0: invalid, 1: valid"], "9": ["Timing Advance Value", "UINT32", "1", "49", "11", "range[0,1282]"], "10": ["Reserved", "UINT32", "1", "60", "4", ""], "11": ["RIV", "UINT32", "1", "64", "14", "Resource Indicator Value"], "12": ["Reserved", "UINT32", "1", "78", "18", ""]}, "Name": "NL1_RACH_MSG2_Content_V1"}, "NL1_RACH_MSG2_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg2 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["RAR SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of RAR. range[0, 1023]"], "2": ["RAR Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of RAR. range[0, 9]"], "3": ["RAR Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of RAR. range[0, 7]"], "4": ["Contention Type", "UINT32", "1", "18", "1", "0: contention-based\n1: non-contention-based"], "5": ["RNTI Type", "UINT32", "1", "19", "1", "0: TC-RNTI\n1: C-RNTI"], "6": ["Reserved", "UINT32", "1", "20", "12", ""], "7": ["RNTI Value", "UINT32", "1", "32", "16", "Radio Network Temporary Identifier"], "8": ["Timing_Advance_valid", "UINT32", "1", "48", "1", "0: invalid, 1: valid, this should be always valid if MSG2 is valid"], "9": ["Timing Advance Value", "UINT32", "1", "49", "12", "range[0, 3846]"], "10": ["Reserved", "UINT32", "1", "61", "3", ""], "11": ["RIV", "UINT32", "1", "64", "14", "Resource Indicator Value"], "12": ["Reserved", "UINT32", "1", "78", "18", ""]}, "Name": "NL1_RACH_MSG2_Content_V2"}, "NL1_RACH_MSG3_Content_V1": {"ColNum": 7, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg3 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Msg3 SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of Msg3. range[0, 1023]"], "2": ["Msg3 Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of Msg3. range[0, 9]"], "3": ["Msg3 Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of Msg3. range[0, 7]"], "4": ["MCS", "UINT32", "1", "18", "5", "range[0, 31]"], "5": ["Modulation type", "UINT32", "1", "23", "2", "0: QPSK\n1: 16QAM\n2: 64QAM\n3: 256QAM"], "6": ["Start RB", "UINT32", "1", "25", "7", "range[0, 110]"], "7": ["Number of RB", "UINT32", "1", "32", "7", "range[0, 110]"], "8": ["TBS IDX", "UINT32", "1", "39", "6", "range[0, 33]"], "9": ["CSI Request", "UINT32", "1", "45", "1", "0: off, 1: on"], "10": ["UL Delay", "UINT32", "1", "46", "1", "0: off, 1: on"], "11": ["RV", "UINT32", "1", "47", "2", "range[0,3]"], "12": ["HARQ ID", "UINT32", "1", "49", "3", "range[0,7]"], "13": ["Hopping Flag", "UINT32", "1", "52", "1", "0: hopping disable, 1:hopping enable"], "14": ["Reserved", "UINT32", "1", "53", "11", ""], "15": ["TPC", "INT8", "1", "64", "8", "range[-6, 8]"], "16": ["Msg3 Power", "INT8", "1", "72", "8", "range[-50, 23]"], "17": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "NL1_RACH_MSG3_Content_V1"}, "NL1_RACH_MSG3_Content_V2": {"ColNum": 7, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg3 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Msg3 SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of Msg3. range[0, 1023]"], "2": ["Msg3 Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of Msg3. range[0, 9]"], "3": ["Msg3 Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of Msg3. range[0, 7]"], "4": ["MCS", "UINT32", "1", "18", "5", "range[0, 31]"], "5": ["Modulation type", "UINT32", "1", "23", "2", "0: QPSK\n1: 16QAM\n2: 64QAM\n3: 256QAM"], "6": ["Start RB", "UINT32", "1", "25", "7", "range[0, 110]"], "7": ["Number of RB", "UINT32", "1", "32", "7", "range[0, 110]"], "8": ["TBS IDX", "UINT32", "1", "39", "6", "range[0, 33]"], "9": ["Reserved", "UINT32", "1", "45", "1", ""], "10": ["UL Delay", "UINT32", "1", "46", "1", "0: off, 1: on"], "11": ["RV", "UINT32", "1", "47", "2", "range[0,3]"], "12": ["HARQ ID", "UINT32", "1", "49", "3", "range[0,7]"], "13": ["Hopping Flag", "UINT32", "1", "52", "1", "0: hopping disable, 1:hopping enable"], "14": ["Reserved", "UINT32", "1", "53", "11", ""], "15": ["TPC", "INT8", "1", "64", "8", "range[-6, 8]"], "16": ["Msg3 Power", "INT8", "1", "72", "8", "range[-50, 23]"], "17": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "NL1_RACH_MSG3_Content_V2"}, "NL1_RACH_MSG4_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Msg4 valid", "UINT32", "1", "0", "1", "0: invalid, 1: valid"], "1": ["Msg4 SFN", "UINT32", "1", "1", "10", "This is the SFN based on the occurrence of CR. range[0, 1023]"], "2": ["Msg4 Subframe", "UINT32", "1", "11", "4", "This is the SF based on the occurrence of CR. range[0, 9]"], "3": ["Msg4 Slot", "UINT32", "1", "15", "3", "This is the slot based on the occurrence of CR. range[0, 7]"], "4": ["Contention decoding result", "UINT32", "1", "18", "1", "0: fail, 1: success"], "5": ["Reserved", "UINT32", "1", "19", "13", ""]}, "Name": "NL1_RACH_MSG4_Content_V1"}}},
+ Public JSON end */
+// Checksum : [a3ffacae29528b9d05dc5a02b222bdb6]
diff --git a/mcu/interface/service/icd/nl1/NL1_SRS_TX_Information.h b/mcu/interface/service/icd/nl1/NL1_SRS_TX_Information.h
new file mode 100644
index 0000000..3e6d947
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_SRS_TX_Information.h
@@ -0,0 +1,66 @@
+// ICD Header Format v3
+// Name : NL1_SRS_TX_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9008
+// Version : V1.3
+
+#ifndef _NL1_SRS_TX_INFORMATION_H
+#define _NL1_SRS_TX_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SRS_TX_INFORMATION 0x9008
+
+#define ICD_NL1_NL1_SRS_TX_INFO_CONTENT_V4 4
+
+#define MAX_ICD_NL1_SRS_TX_INFO_STRUCT_V4_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_SRS_TX_INFO_STRUCT_V4_MAX_SIZE 404
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence of this record, range[0,9]
+ kal_uint32 slot:3; // This is the Slot based on the occurrence of this record, range[0,7]
+ kal_uint32 start_rb:10; // SRS start RB, range[0,275
+ kal_uint32 reserved:5;
+ kal_uint32 rb_number:10; // SRS RB length, range[0,275]
+ kal_uint32 zc_root:12; // SRS ZC root, range[1,1151]
+ kal_uint32 srs_trigger_type:2; // 0: Aperiodic
+ // 1: Semi-Persistent
+ // 2: Periodic
+ kal_uint32 cyclic_shift:3; // cyclic shift for SRS, range[0,7]
+ kal_uint32 srs_power_offset:4; // range[0, 15]
+ kal_uint32 is_sul:1;
+ kal_uint32 path_loss:8; // range[0, 255]
+ kal_uint32 symbol_bitmap:16; // symbols bitmap in target slot
+ kal_uint32 srs_ant_state:8; // range[0, 255]
+ kal_int16 srs_tx_pwer; // Configured power, range[-50, 23]
+ kal_int16 hi; // range[-141, 141]
+ kal_int16 srs_real_power; // Transmitted real power, range[-50, 23]
+ kal_int16 reserved_1;
+} nl1_srs_tx_record_v3;
+
+typedef nl1_srs_tx_record_v3 nl1_srs_tx_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 serving_cell_id:10; // range[0, 1007]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ nl1_srs_tx_record srs_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_srs_tx_info_struct_v4;
+
+typedef icd_nl1_srs_tx_info_struct_v4 icd_nl1_srs_tx_info_struct;
+
+
+#endif /* _NL1_SRS_TX_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_SRS_TX_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9008", "Name": "NL1_SRS_TX_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_SRS_TX_info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_SRS_TX_Info_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_SRS_TX_info"}, "NL1_SRS_TX_Info_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_SRS_TX_Info_Content_V1", ""], "1": ["2", "NL1_SRS_TX_Info_Content_V2", ""], "2": ["3", "NL1_SRS_TX_Info_Content_V3", ""], "3": ["4", "NL1_SRS_TX_Info_Content_V4", ""]}, "Name": "NL1_SRS_TX_Info_Content_Versions"}, "NL1_SRS_TX_Info_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SRS Records": "Number of Records"}, "Name": "NL1_SRS_TX_Info_Content_V1", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["SRS Records", "NL1_SRS_TX_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_SRS_TX_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the Slot based on the occurrence of this record, range[0,7]"], "3": ["UE SRS Enable", "UINT32", "1", "17", "1", "0: enable, 1: disable"], "4": ["Cell SRS Enable", "UINT32", "1", "18", "1", "0: enable, 1: disable"], "5": ["SRS TX BW", "UINT32", "1", "19", "8", "SRS bandwidth in RB unit, range[0,275]"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["Start RB", "UINT32", "1", "32", "10", "SRS start RB, range[0,275"], "8": ["RB Number", "UINT32", "1", "42", "10", "SRS RB length, range[0,275]"], "9": ["ZC Root", "UINT32", "1", "52", "12", "SRS ZC root, range[1,1151]"], "10": ["SRS Trigger Type", "UINT32", "1", "64", "2", "0: Aperiodic\n1: Semi-Persistent\n2: Periodic"], "11": ["Cyclic Shift", "UINT32", "1", "66", "3", "cyclic shift for SRS, range[0,7]"], "12": ["SRS Power Offset", "UINT32", "1", "69", "4", "range[0, 15]"], "13": ["Path Loss", "UINT32", "1", "73", "8", "range[0, 255]"], "14": ["Symbol Type", "UINT32", "1", "81", "2", "0: No SRS, 1: Symbol 0, 2: Symbol 1, 3: Both symbols"], "15": ["Reserved", "UINT32", "1", "83", "13", ""], "16": ["SRS TX pwer", "INT16", "1", "96", "16", "SRS transmission power, range[-128,127]"], "17": ["Hi", "INT16", "1", "112", "16", "range[-141, 141]"]}, "Name": "NL1_SRS_TX_Record_V1"}, "NL1_SRS_TX_Info_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SRS Records": "Number of Records"}, "Name": "NL1_SRS_TX_Info_Content_V2", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "9", "range[0, 503]"], "1": ["Carrier Index", "UINT32", "1", "9", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "12", "7", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["SRS Records", "NL1_SRS_TX_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_SRS_TX_Info_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SRS Records": "Number of Records"}, "Name": "NL1_SRS_TX_Info_Content_V3", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["SRS Records", "NL1_SRS_TX_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_SRS_TX_Info_Content_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"SRS Records": "Number of Records"}, "Name": "NL1_SRS_TX_Info_Content_V4", "Data": {"0": ["Serving Cell ID", "UINT32", "1", "0", "10", "range[0, 1007]"], "1": ["Carrier Index", "UINT32", "1", "10", "3", "range[0, 7]"], "2": ["Reserved", "UINT32", "1", "13", "6", ""], "3": ["Number of Records", "UINT32", "1", "19", "5", "range[0, 20]"], "4": ["SRS Records", "NL1_SRS_TX_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_SRS_TX_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the Slot based on the occurrence of this record, range[0,7]"], "3": ["Start RB", "UINT32", "1", "17", "10", "SRS start RB, range[0,275"], "4": ["Reserved", "UINT32", "1", "27", "5", ""], "5": ["RB Number", "UINT32", "1", "32", "10", "SRS RB length, range[0,275]"], "6": ["ZC Root", "UINT32", "1", "42", "12", "SRS ZC root, range[1,1151]"], "7": ["SRS Trigger Type", "UINT32", "1", "54", "2", "0: Aperiodic\n1: Semi-Persistent\n2: Periodic"], "8": ["Cyclic Shift", "UINT32", "1", "56", "3", "cyclic shift for SRS, range[0,7]"], "9": ["SRS Power Offset", "UINT32", "1", "59", "4", "range[0, 15]"], "10": ["Reserved", "UINT32", "1", "63", "1", ""], "11": ["Path Loss", "UINT32", "1", "64", "8", "range[0, 255]"], "12": ["Symbol Bitmap", "UINT32", "1", "72", "16", "symbols bitmap in target slot"], "13": ["SRS Ant state", "UINT32", "1", "88", "8", "range[0, 255]"], "14": ["SRS TX pwer", "INT16", "1", "96", "16", "SRS transmission power, range[-128,127]"], "15": ["Hi", "INT16", "1", "112", "16", "range[-141, 141]"]}, "Name": "NL1_SRS_TX_Record_V2"}, "NL1_SRS_TX_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on the occurrence of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on the occurrence of this record, range[0,9]"], "2": ["Slot", "UINT32", "1", "14", "3", "This is the Slot based on the occurrence of this record, range[0,7]"], "3": ["Start RB", "UINT32", "1", "17", "10", "SRS start RB, range[0,275"], "4": ["Reserved", "UINT32", "1", "27", "5", ""], "5": ["RB Number", "UINT32", "1", "32", "10", "SRS RB length, range[0,275]"], "6": ["ZC Root", "UINT32", "1", "42", "12", "SRS ZC root, range[1,1151]"], "7": ["SRS Trigger Type", "UINT32", "1", "54", "2", "0: Aperiodic\n1: Semi-Persistent\n2: Periodic"], "8": ["Cyclic Shift", "UINT32", "1", "56", "3", "cyclic shift for SRS, range[0,7]"], "9": ["SRS Power Offset", "UINT32", "1", "59", "4", "range[0, 15]"], "10": ["Is Sul", "UINT32", "1", "63", "1", ""], "11": ["Path Loss", "UINT32", "1", "64", "8", "range[0, 255]"], "12": ["Symbol Bitmap", "UINT32", "1", "72", "16", "symbols bitmap in target slot"], "13": ["SRS Ant state", "UINT32", "1", "88", "8", "range[0, 255]"], "14": ["SRS TX pwer", "INT16", "1", "96", "16", "Configured power, range[-50, 23]"], "15": ["Hi", "INT16", "1", "112", "16", "range[-141, 141]"], "16": ["SRS real power", "INT16", "1", "128", "16", "Transmitted real power, range[-50, 23]"], "17": ["Reserved", "INT16", "1", "144", "16", ""]}, "Name": "NL1_SRS_TX_Record_V3"}}},
+ Public JSON end */
+// Checksum : [858ba74a67ed0aaf79e4a8c8cf75435a]
diff --git a/mcu/interface/service/icd/nl1/NL1_Serving_Cell_CSIRS_Measurement.h b/mcu/interface/service/icd/nl1/NL1_Serving_Cell_CSIRS_Measurement.h
new file mode 100644
index 0000000..fbaf7e5
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Serving_Cell_CSIRS_Measurement.h
@@ -0,0 +1,76 @@
+// ICD Header Format v3
+// Name : NL1_Serving_Cell_CSIRS_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9016
+// Version : V1.3
+
+#ifndef _NL1_SERVING_CELL_CSIRS_MEASUREMENT_H
+#define _NL1_SERVING_CELL_CSIRS_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SERVING_CELL_CSIRS_MEASUREMENT 0x9016
+
+#define ICD_NL1_NL1_SERVING_CELL_CSIRS_MEASUREMENT_INFO_V2 2
+
+#define MAX_ICD_NL1_SERVING_CELL_CSIRS_MEASUREMENT_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_SERVING_CELL_CSIRS_MEASUREMENT_STRUCT_V2_MAX_SIZE 888
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the system frame number based on the occurrence of servingcell measurement.
+ kal_uint32 subframe:4; // This is the sub-frame number based on the occurrence of serving cellmeasurement.
+ kal_uint32 resource_id:8; // range[0, 191]
+ kal_uint32 reserved:10;
+ kal_int16 rsrp; // Maximum RSRP value of 4 paths RSRP result
+ kal_int16 rsrp_rx0; // RX path 0 RSRP value in dbm,range[-162, 22]
+ kal_int16 rsrp_rx1; // RX path 1 RSRP value in dbm,range[-162, 22]
+ kal_int16 rsrp_rx2; // RX path 0 RSRP value in dbm,range[-162, 22]
+ kal_int16 rsrp_rx3; // RX path 1 RSRP value in dbm,range[-162, 22]
+ kal_int16 reserved_1;
+ kal_int8 rsrq; // Maximum RSRQ value of 4 paths RSRQ result
+ kal_int8 rsrq_rx0; // RX path 0 RSRQ value in db,range[-40, 10]
+ kal_int8 rsrq_rx1; // RX path 1 RSRQ value in db,range[-40, 10]
+ kal_int8 rsrq_rx2; // RX path 0 RSRQ value in db,range[-40, 10]
+ kal_int8 rsrq_rx3; // RX path 1 RSRQ value in db,range[-40, 10]
+ kal_int8 reserved_2[3];
+ kal_int16 rssi; // Maximum RSSI value of two paths RSSI result
+ kal_int16 rssi_rx0; // RX path 0 RSSI value in dbm,range[-150, -10]
+ kal_int16 rssi_rx1; // RX path 1 RSSI value in dbm,range[-150, -10]
+ kal_int16 rssi_rx2; // RX path 0 RSSI value in dbm,range[-150, -10]
+ kal_int16 rssi_rx3; // RX path 1 RSSI value in dbm,range[-150, -10]
+ kal_int16 reserved_3;
+ kal_int8 sinr; // Maximum SINR value of two paths SINR result
+ kal_int8 sinr_rx0; // RX path 0 SINR value in db,range[-20, 40]
+ kal_int8 sinr_rx1; // RX path 1 SINR value in db,range[-20, 40]
+ kal_int8 sinr_rx2; // RX path 0 SINR value in db,range[-20, 40]
+ kal_int8 sinr_rx3; // RX path 1 SINR value in db,range[-20, 40]
+ kal_int8 reserved_4[3];
+} nl1_serving_cell_measurement_csirs_record_v1;
+
+typedef nl1_serving_cell_measurement_csirs_record_v1 nl1_serving_cell_measurement_csirs_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[1, 20]
+ kal_uint32 carrier_index:4;
+ kal_uint32 reserved:5;
+ kal_uint32 narfcn:22;
+ kal_uint32 reserved_1:10;
+ nl1_serving_cell_measurement_csirs_record serving_cell_csirs_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_serving_cell_csirs_measurement_struct_v2;
+
+typedef icd_nl1_serving_cell_csirs_measurement_struct_v2 icd_nl1_serving_cell_csirs_measurement_struct;
+
+
+#endif /* _NL1_SERVING_CELL_CSIRS_MEASUREMENT_H */
+
+
+/* Public JSON start
+"NL1_Serving_Cell_CSIRS_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9016", "Name": "NL1_Serving_Cell_CSIRS_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Serving_Cell_CSIRS_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "Nl1_Serving_Cell_CSIRS_Measurement_Info_Versions", "1", "8", "VAR", "Version of Serving_Cell_Measurement_Info"]}, "Name": "NL1_Serving_Cell_CSIRS_Measurement"}, "Nl1_Serving_Cell_CSIRS_Measurement_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Serving_Cell_CSIRS_Measurement_Info_V1", ""], "1": ["2", "NL1_Serving_Cell_CSIRS_Measurement_Info_V2", ""]}, "Name": "Nl1_Serving_Cell_CSIRS_Measurement_Info_Versions"}, "NL1_Serving_Cell_CSIRS_Measurement_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell CSIRS Measurement Records": "Number of Records"}, "Name": "NL1_Serving_Cell_CSIRS_Measurement_Info_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[1, 20]"], "2": ["Reserved", "UINT32", "1", "15", "9", ""], "3": ["Serving Cell CSIRS Measurement Records", "NL1_Serving_Cell_Measurement_CSIRS_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Serving_Cell_CSIRS_Measurement_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell CSIRS Measurement Records": "Number of Records"}, "Name": "NL1_Serving_Cell_CSIRS_Measurement_Info_V2", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[1, 20]"], "2": ["Carrier Index", "UINT32", "1", "15", "4", ""], "3": ["Reserved", "UINT32", "1", "19", "5", ""], "4": ["NARFCN", "UINT32", "1", "24", "22", ""], "5": ["Reserved", "UINT32", "1", "46", "10", ""], "6": ["Serving Cell CSIRS Measurement Records", "NL1_Serving_Cell_Measurement_CSIRS_Record_V1", "N", "56", "VAR", "N := Number of Records"]}}, "NL1_Serving_Cell_Measurement_CSIRS_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the occurrence of servingcell measurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the occurrence of serving cellmeasurement."], "2": ["Resource Id", "UINT32", "1", "14", "8", "range[0, 191]"], "3": ["Reserved", "UINT32", "1", "22", "10", ""], "4": ["RSRP", "INT16", "1", "32", "16", "Maximum RSRP value of 4 paths RSRP result"], "5": ["RSRP RX0", "INT16", "1", "48", "16", "RX path 0 RSRP value in dbm,range[-162, 22]"], "6": ["RSRP RX1", "INT16", "1", "64", "16", "RX path 1 RSRP value in dbm,range[-162, 22]"], "7": ["RSRP RX2", "INT16", "1", "80", "16", "RX path 0 RSRP value in dbm,range[-162, 22]"], "8": ["RSRP RX3", "INT16", "1", "96", "16", "RX path 1 RSRP value in dbm,range[-162, 22]"], "9": ["Reserved", "INT16", "1", "112", "16", ""], "10": ["RSRQ", "INT8", "1", "128", "8", "Maximum RSRQ value of 4 paths RSRQ result"], "11": ["RSRQ RX0", "INT8", "1", "136", "8", "RX path 0 RSRQ value in db,range[-40, 10]"], "12": ["RSRQ RX1", "INT8", "1", "144", "8", "RX path 1 RSRQ value in db,range[-40, 10]"], "13": ["RSRQ RX2", "INT8", "1", "152", "8", "RX path 0 RSRQ value in db,range[-40, 10]"], "14": ["RSRQ RX3", "INT8", "1", "160", "8", "RX path 1 RSRQ value in db,range[-40, 10]"], "15": ["Reserved", "INT8", "3", "168", "24", ""], "16": ["RSSI", "INT16", "1", "192", "16", "Maximum RSSI value of two paths RSSI result"], "17": ["RSSI RX0", "INT16", "1", "208", "16", "RX path 0 RSSI value in dbm,range[-150, -10]"], "18": ["RSSI RX1", "INT16", "1", "224", "16", "RX path 1 RSSI value in dbm,range[-150, -10]"], "19": ["RSSI RX2", "INT16", "1", "240", "16", "RX path 0 RSSI value in dbm,range[-150, -10]"], "20": ["RSSI RX3", "INT16", "1", "256", "16", "RX path 1 RSSI value in dbm,range[-150, -10]"], "21": ["Reserved", "INT16", "1", "272", "16", ""], "22": ["SINR", "INT8", "1", "288", "8", "Maximum SINR value of two paths SINR result"], "23": ["SINR RX0", "INT8", "1", "296", "8", "RX path 0 SINR value in db,range[-20, 40]"], "24": ["SINR RX1", "INT8", "1", "304", "8", "RX path 1 SINR value in db,range[-20, 40]"], "25": ["SINR RX2", "INT8", "1", "312", "8", "RX path 0 SINR value in db,range[-20, 40]"], "26": ["SINR RX3", "INT8", "1", "320", "8", "RX path 1 SINR value in db,range[-20, 40]"], "27": ["Reserved", "INT8", "3", "328", "24", ""]}, "Name": "NL1_Serving_Cell_Measurement_CSIRS_Record_V1"}}},
+ Public JSON end */
+// Checksum : [d05653465c0a4f7ab4032b4b8692e8b3]
diff --git a/mcu/interface/service/icd/nl1/NL1_Serving_Cell_Measurement.h b/mcu/interface/service/icd/nl1/NL1_Serving_Cell_Measurement.h
new file mode 100644
index 0000000..d275330
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Serving_Cell_Measurement.h
@@ -0,0 +1,80 @@
+// ICD Header Format v3
+// Name : NL1_Serving_Cell_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9001
+// Version : V1.3
+
+#ifndef _NL1_SERVING_CELL_MEASUREMENT_H
+#define _NL1_SERVING_CELL_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SERVING_CELL_MEASUREMENT 0x9001
+
+#define ICD_NL1_NL1_SERVING_CELL_SSS_MEASUREMENT_INFO_V3 3
+
+#define MAX_ICD_NL1_SERVING_CELL_MEASUREMENT_STRUCT_V3_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_SERVING_CELL_MEASUREMENT_STRUCT_V3_MAX_SIZE 652
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the system frame number based on the reporting time of serving cell
+ // measurement.
+ kal_uint32 subframe:4; // This is the sub-frame number based on the reporting time of serving cell
+ // measurement.
+ kal_uint32 is_rrc_idle_mode:1; // Currently not supported
+ kal_uint32 priority:3; // Currently not supported
+ kal_uint32 ant_mask_0:4; // Currently not supported
+ kal_uint32 ant_mask_1:4; // Currently not supported
+ kal_uint32 reserved:6;
+ kal_uint32 ssb_index:8; // range[0, 63], SS Block index
+ kal_uint32 serving_beam_flag:1; // 0: Not serving beam, 1: Serving beam
+ kal_uint32 reserved_1:23;
+ kal_int16 rsrp; // Maximum RSRP value of 2 paths RSRP result
+ kal_int16 rsrp_rx0; // RX path 0 RSRP value in dbm,range[-162, 22], -32768 means invalid
+ kal_int16 rsrp_rx1; // RX path 1 RSRP value in dbm,range[-162, 22], -32768 means invalid
+ kal_int16 reserved_2;
+ kal_int8 rsrq; // Maximum RSRQ value of 2 paths RSRQ result
+ kal_int8 rsrq_rx0; // RX path 0 RSRQ value in db,range[-40, 10], -128 means invalid
+ kal_int8 rsrq_rx1; // RX path 1 RSRQ value in db,range[-40, 10], -128 means invalid
+ kal_int8 reserved_3;
+ kal_int16 rssi; // Maximum RSSI value of 2 paths RSSI result
+ kal_int16 rssi_rx0; // RX path 0 RSSI value in dbm,range[-150, -10], -32768 means invalid
+ kal_int16 rssi_rx1; // RX path 1 RSSI value in dbm,range[-150, -10], -32768 means invalid
+ kal_int16 reserved_4;
+ kal_int8 sinr; // Maximum SINR value of 2 paths SINR result
+ kal_int8 sinr_rx0; // RX path 0 SINR value in db,range[-20, 40], -128 means invalid
+ kal_int8 sinr_rx1; // RX path 1 SINR value in db,range[-20, 40], -128 means invalid
+ kal_int8 reserved_5;
+} nl1_serving_cell_measurement_sss_record_v3;
+
+typedef nl1_serving_cell_measurement_sss_record_v3 nl1_serving_cell_measurement_sss_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 carrier_type:3; // 0:PCC,1:SCC1,2:SCC2,
+ // 3:SCC3,4:SCC4
+ kal_uint32 ssb_scs:3; // 0: 15 Khz, 1: 30 KHz, 3: 120 KHz, 4: 240 KHz
+ kal_uint32 reserved:8;
+ kal_uint32 narfcn:22; // NR-ARFCN Absolute Radio FrequencyChannel Number
+ kal_uint32 band:9; // Operating band info
+ kal_uint32 reserved_1:1;
+ kal_uint32 number_of_records:5; // range[1, 20]
+ kal_uint32 reserved_2:27;
+ nl1_serving_cell_measurement_sss_record serving_cell_sss_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_serving_cell_measurement_struct_v3;
+
+typedef icd_nl1_serving_cell_measurement_struct_v3 icd_nl1_serving_cell_measurement_struct;
+
+
+#endif /* _NL1_SERVING_CELL_MEASUREMENT_H */
+
+
+/* Public JSON start
+"NL1_Serving_Cell_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9001", "Name": "NL1_Serving_Cell_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Serving_Cell_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "Nl1_Serving_Cell_SSS_Measurement_Info_Versions", "1", "8", "VAR", "Version of Serving_Cell_Measurement_Info"]}, "Name": "NL1_Serving_Cell_Measurement"}, "Nl1_Serving_Cell_SSS_Measurement_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Serving_Cell_SSS_Measurement_Info_V1", "Information of serving cell measurementresult (version 1)"], "1": ["2", "NL1_Serving_Cell_SSS_Measurement_Info_V2", "Information of serving cell measurementresult (version 2)"], "2": ["3", "NL1_Serving_Cell_SSS_Measurement_Info_V3", "Information of serving cell measurementresult (version 3)"]}, "Name": "Nl1_Serving_Cell_SSS_Measurement_Info_Versions"}, "NL1_Serving_Cell_SSS_Measurement_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell SSS Measurement Records": "Number of Records"}, "Name": "NL1_Serving_Cell_SSS_Measurement_Info_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Carrier type", "UINT32", "1", "10", "3", "0:PCC,1:SCC1,2:SCC2,\n3:SCC3,4:SCC4"], "2": ["SSB_SCS", "UINT32", "1", "13", "3", "0: 15 Khz, 1: 30 KHz, 3: 120 KHz, 4: 240 KHz"], "3": ["Reserved", "UINT32", "1", "16", "8", ""], "4": ["NARFCN", "UINT32", "1", "24", "22", "NR-ARFCN Absolute Radio FrequencyChannel Number"], "5": ["Band", "UINT32", "1", "46", "9", "Operating band info"], "6": ["Reserved", "UINT32", "1", "55", "1", ""], "7": ["Number of Records", "UINT32", "1", "56", "5", "range[1, 20]"], "8": ["Reserved", "UINT32", "1", "61", "27", ""], "9": ["Serving Cell SSS Measurement Records", "NL1_Serving_Cell_Measurement_SSS_Record_V1", "N", "88", "VAR", "N := Number of Records"]}}, "NL1_Serving_Cell_SSS_Measurement_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell SSS Measurement Records": "Number of Records"}, "Name": "NL1_Serving_Cell_SSS_Measurement_Info_V2", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Carrier type", "UINT32", "1", "10", "3", "0:PCC,1:SCC1,2:SCC2,\n3:SCC3,4:SCC4"], "2": ["SSB_SCS", "UINT32", "1", "13", "3", "0: 15 Khz, 1: 30 KHz, 3: 120 KHz, 4: 240 KHz"], "3": ["Reserved", "UINT32", "1", "16", "8", ""], "4": ["NARFCN", "UINT32", "1", "24", "22", "NR-ARFCN Absolute Radio FrequencyChannel Number"], "5": ["Band", "UINT32", "1", "46", "9", "Operating band info"], "6": ["Reserved", "UINT32", "1", "55", "1", ""], "7": ["Number of Records", "UINT32", "1", "56", "5", "range[1, 20]"], "8": ["Reserved", "UINT32", "1", "61", "27", ""], "9": ["Serving Cell SSS Measurement Records", "NL1_Serving_Cell_Measurement_SSS_Record_V2", "N", "88", "VAR", "N := Number of Records"]}}, "NL1_Serving_Cell_SSS_Measurement_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell SSS Measurement Records": "Number of Records"}, "Name": "NL1_Serving_Cell_SSS_Measurement_Info_V3", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Carrier type", "UINT32", "1", "10", "3", "0:PCC,1:SCC1,2:SCC2,\n3:SCC3,4:SCC4"], "2": ["SSB_SCS", "UINT32", "1", "13", "3", "0: 15 Khz, 1: 30 KHz, 3: 120 KHz, 4: 240 KHz"], "3": ["Reserved", "UINT32", "1", "16", "8", ""], "4": ["NARFCN", "UINT32", "1", "24", "22", "NR-ARFCN Absolute Radio FrequencyChannel Number"], "5": ["Band", "UINT32", "1", "46", "9", "Operating band info"], "6": ["Reserved", "UINT32", "1", "55", "1", ""], "7": ["Number of Records", "UINT32", "1", "56", "5", "range[1, 20]"], "8": ["Reserved", "UINT32", "1", "61", "27", ""], "9": ["Serving Cell SSS Measurement Records", "NL1_Serving_Cell_Measurement_SSS_Record_V3", "N", "88", "VAR", "N := Number of Records"]}}, "NL1_Serving_Cell_Measurement_SSS_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the reporting time of serving cell\nmeasurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the reporting time of serving cell\nmeasurement."], "2": ["Is RRC Idle Mode", "UINT32", "1", "14", "1", "Currently not supported"], "3": ["Priority", "UINT32", "1", "15", "3", "Currently not supported"], "4": ["Ant mask 0", "UINT32", "1", "18", "4", "Currently not supported"], "5": ["Ant mask 1", "UINT32", "1", "22", "4", "Currently not supported"], "6": ["Reserved", "UINT32", "1", "26", "6", ""], "7": ["SSB Index", "UINT32", "1", "32", "8", "range[0, 63], SS Block index"], "8": ["Reserved", "UINT32", "1", "40", "24", ""], "9": ["RSRP", "INT16", "1", "64", "16", "Maximum RSRP value of 4 paths RSRP result"], "10": ["RSRP RX0", "INT16", "1", "80", "16", "RX path 0 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "11": ["RSRP RX1", "INT16", "1", "96", "16", "RX path 1 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "12": ["RSRP RX2", "INT16", "1", "112", "16", "RX path 0 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "13": ["RSRP RX3", "INT16", "1", "128", "16", "RX path 1 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "14": ["Reserved", "INT16", "1", "144", "16", ""], "15": ["RSRQ", "INT8", "1", "160", "8", "Maximum RSRQ value of 4 paths RSRQ result"], "16": ["RSRQ RX0", "INT8", "1", "168", "8", "RX path 0 RSRQ value in db,range[-40, 10], -128 means invalid"], "17": ["RSRQ RX1", "INT8", "1", "176", "8", "RX path 1 RSRQ value in db,range[-40, 10], -128 means invalid"], "18": ["RSRQ RX2", "INT8", "1", "184", "8", "RX path 0 RSRQ value in db,range[-40, 10], -128 means invalid"], "19": ["RSRQ RX3", "INT8", "1", "192", "8", "RX path 1 RSRQ value in db,range[-40, 10], -128 means invalid"], "20": ["Reserved", "INT8", "3", "200", "24", ""], "21": ["RSSI", "INT16", "1", "224", "16", "Maximum RSSI value of two paths RSSI result"], "22": ["RSSI RX0", "INT16", "1", "240", "16", "RX path 0 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "23": ["RSSI RX1", "INT16", "1", "256", "16", "RX path 1 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "24": ["RSSI RX2", "INT16", "1", "272", "16", "RX path 0 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "25": ["RSSI RX3", "INT16", "1", "288", "16", "RX path 1 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "26": ["Reserved", "INT16", "1", "304", "16", ""], "27": ["SINR", "INT8", "1", "320", "8", "Maximum SINR value of two paths SINR result"], "28": ["SINR RX0", "INT8", "1", "328", "8", "RX path 0 SINR value in db,range[-20, 40], -128 means invalid"], "29": ["SINR RX1", "INT8", "1", "336", "8", "RX path 1 SINR value in db,range[-20, 40], -128 means invalid"], "30": ["SINR RX2", "INT8", "1", "344", "8", "RX path 0 SINR value in db,range[-20, 40], -128 means invalid"], "31": ["SINR RX3", "INT8", "1", "352", "8", "RX path 1 SINR value in db,range[-20, 40], -128 means invalid"], "32": ["Reserved", "INT8", "3", "360", "24", ""]}, "Name": "NL1_Serving_Cell_Measurement_SSS_Record_V1"}, "NL1_Serving_Cell_Measurement_SSS_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the reporting time of serving cell\nmeasurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the reporting time of serving cell\nmeasurement."], "2": ["Is RRC Idle Mode", "UINT32", "1", "14", "1", "Currently not supported"], "3": ["Priority", "UINT32", "1", "15", "3", "Currently not supported"], "4": ["Ant mask 0", "UINT32", "1", "18", "4", "Currently not supported"], "5": ["Ant mask 1", "UINT32", "1", "22", "4", "Currently not supported"], "6": ["Reserved", "UINT32", "1", "26", "6", ""], "7": ["SSB Index", "UINT32", "1", "32", "8", "range[0, 63], SS Block index"], "8": ["Serving Beam Flag", "UINT32", "1", "40", "1", "0: Not serving beam, 1: Serving beam"], "9": ["Reserved", "UINT32", "1", "41", "23", ""], "10": ["RSRP", "INT16", "1", "64", "16", "Maximum RSRP value of 4 paths RSRP result"], "11": ["RSRP RX0", "INT16", "1", "80", "16", "RX path 0 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "12": ["RSRP RX1", "INT16", "1", "96", "16", "RX path 1 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "13": ["RSRP RX2", "INT16", "1", "112", "16", "RX path 0 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "14": ["RSRP RX3", "INT16", "1", "128", "16", "RX path 1 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "15": ["Reserved", "INT16", "1", "144", "16", ""], "16": ["RSRQ", "INT8", "1", "160", "8", "Maximum RSRQ value of 4 paths RSRQ result"], "17": ["RSRQ RX0", "INT8", "1", "168", "8", "RX path 0 RSRQ value in db,range[-40, 10], -128 means invalid"], "18": ["RSRQ RX1", "INT8", "1", "176", "8", "RX path 1 RSRQ value in db,range[-40, 10], -128 means invalid"], "19": ["RSRQ RX2", "INT8", "1", "184", "8", "RX path 0 RSRQ value in db,range[-40, 10], -128 means invalid"], "20": ["RSRQ RX3", "INT8", "1", "192", "8", "RX path 1 RSRQ value in db,range[-40, 10], -128 means invalid"], "21": ["Reserved", "INT8", "3", "200", "24", ""], "22": ["RSSI", "INT16", "1", "224", "16", "Maximum RSSI value of two paths RSSI result"], "23": ["RSSI RX0", "INT16", "1", "240", "16", "RX path 0 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "24": ["RSSI RX1", "INT16", "1", "256", "16", "RX path 1 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "25": ["RSSI RX2", "INT16", "1", "272", "16", "RX path 0 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "26": ["RSSI RX3", "INT16", "1", "288", "16", "RX path 1 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "27": ["Reserved", "INT16", "1", "304", "16", ""], "28": ["SINR", "INT8", "1", "320", "8", "Maximum SINR value of two paths SINR result"], "29": ["SINR RX0", "INT8", "1", "328", "8", "RX path 0 SINR value in db,range[-20, 40], -128 means invalid"], "30": ["SINR RX1", "INT8", "1", "336", "8", "RX path 1 SINR value in db,range[-20, 40], -128 means invalid"], "31": ["SINR RX2", "INT8", "1", "344", "8", "RX path 0 SINR value in db,range[-20, 40], -128 means invalid"], "32": ["SINR RX3", "INT8", "1", "352", "8", "RX path 1 SINR value in db,range[-20, 40], -128 means invalid"], "33": ["Reserved", "INT8", "3", "360", "24", ""]}, "Name": "NL1_Serving_Cell_Measurement_SSS_Record_V2"}, "NL1_Serving_Cell_Measurement_SSS_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the system frame number based on the reporting time of serving cell\nmeasurement."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the sub-frame number based on the reporting time of serving cell\nmeasurement."], "2": ["Is RRC Idle Mode", "UINT32", "1", "14", "1", "Currently not supported"], "3": ["Priority", "UINT32", "1", "15", "3", "Currently not supported"], "4": ["Ant mask 0", "UINT32", "1", "18", "4", "Currently not supported"], "5": ["Ant mask 1", "UINT32", "1", "22", "4", "Currently not supported"], "6": ["Reserved", "UINT32", "1", "26", "6", ""], "7": ["SSB Index", "UINT32", "1", "32", "8", "range[0, 63], SS Block index"], "8": ["Serving Beam Flag", "UINT32", "1", "40", "1", "0: Not serving beam, 1: Serving beam"], "9": ["Reserved", "UINT32", "1", "41", "23", ""], "10": ["RSRP", "INT16", "1", "64", "16", "Maximum RSRP value of 2 paths RSRP result"], "11": ["RSRP RX0", "INT16", "1", "80", "16", "RX path 0 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "12": ["RSRP RX1", "INT16", "1", "96", "16", "RX path 1 RSRP value in dbm,range[-162, 22], -32768 means invalid"], "13": ["Reserved", "INT16", "1", "112", "16", ""], "14": ["RSRQ", "INT8", "1", "128", "8", "Maximum RSRQ value of 2 paths RSRQ result"], "15": ["RSRQ RX0", "INT8", "1", "136", "8", "RX path 0 RSRQ value in db,range[-40, 10], -128 means invalid"], "16": ["RSRQ RX1", "INT8", "1", "144", "8", "RX path 1 RSRQ value in db,range[-40, 10], -128 means invalid"], "17": ["Reserved", "INT8", "1", "152", "8", ""], "18": ["RSSI", "INT16", "1", "160", "16", "Maximum RSSI value of 2 paths RSSI result"], "19": ["RSSI RX0", "INT16", "1", "176", "16", "RX path 0 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "20": ["RSSI RX1", "INT16", "1", "192", "16", "RX path 1 RSSI value in dbm,range[-150, -10], -32768 means invalid"], "21": ["Reserved", "INT16", "1", "208", "16", ""], "22": ["SINR", "INT8", "1", "224", "8", "Maximum SINR value of 2 paths SINR result"], "23": ["SINR RX0", "INT8", "1", "232", "8", "RX path 0 SINR value in db,range[-20, 40], -128 means invalid"], "24": ["SINR RX1", "INT8", "1", "240", "8", "RX path 1 SINR value in db,range[-20, 40], -128 means invalid"], "25": ["Reserved", "INT8", "1", "248", "8", ""]}, "Name": "NL1_Serving_Cell_Measurement_SSS_Record_V3"}}},
+ Public JSON end */
+// Checksum : [7ad64afacad6319e45a383fe50211f93]
diff --git a/mcu/interface/service/icd/nl1/NL1_Serving_Cell_RSSI.h b/mcu/interface/service/icd/nl1/NL1_Serving_Cell_RSSI.h
new file mode 100644
index 0000000..dbfa1fd
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Serving_Cell_RSSI.h
@@ -0,0 +1,44 @@
+// ICD Header Format v3
+// Name : NL1_Serving_Cell_RSSI
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9021
+// Version : V1.3
+
+#ifndef _NL1_SERVING_CELL_RSSI_H
+#define _NL1_SERVING_CELL_RSSI_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SERVING_CELL_RSSI 0x9021
+
+#define ICD_NL1_NL1_SERVING_CELL_RSSI_INFO_V3 3
+
+#define ICD_NL1_SERVING_CELL_RSSI_STRUCT_V3_MAX_SIZE 16
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_int16 rssi; // Max RSSI of the 4-path RSSI results
+ kal_int16 rssi_rx0; // range[-150, -10], -32768 means invalid
+ kal_int16 rssi_rx1; // range[-150, -10], -32768 means invalid
+ kal_int16 rssi_rx2; // range[-150, -10], -32768 means invalid
+ kal_int16 rssi_rx3; // range[-150, -10], -32768 means invalid
+ kal_int16 carrier_index:3; // Indicates whether this metric is
+ // reporting on PCC or SCC.
+ // 0: Pcell, 1~7: Scell Index
+ kal_int16 reserved_1:13;
+} icd_nl1_serving_cell_rssi_struct_v3;
+
+typedef icd_nl1_serving_cell_rssi_struct_v3 icd_nl1_serving_cell_rssi_struct;
+
+
+#endif /* _NL1_SERVING_CELL_RSSI_H */
+
+
+/* Public JSON start
+"NL1_Serving_Cell_RSSI": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9021", "Name": "NL1_Serving_Cell_RSSI", "Type": "RECORD", "Desc": "The RSSI values are measured in total cell bandwidth. This log message is generated once for FR1 and FR2 every 1000ms.\n"}, "table": {"NL1_Serving_Cell_RSSI": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "Nl1_Serving_Cell_RSSI_Info_Versions", "1", "8", "VAR", "Version of Serving_Cell_RSSI_Info"]}, "Name": "NL1_Serving_Cell_RSSI"}, "Nl1_Serving_Cell_RSSI_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Serving_Cell_RSSI_Info_V1", "Information of serving cell bandwidth RSSI (version 1)"], "1": ["2", "NL1_Serving_Cell_RSSI_Info_V2", "Information of serving cell bandwidth RSSI (version 2)"], "2": ["3", "NL1_Serving_Cell_RSSI_Info_V3", "Information of serving cell bandwidth RSSI (version 3)"], "3": ["4", "NL1_Serving_Cell_RSSI_Info_V4", "Information of serving cell bandwidth RSSI (version 4)"]}, "Name": "Nl1_Serving_Cell_RSSI_Info_Versions"}, "NL1_Serving_Cell_RSSI_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Serving Cell RSSI Records": "Number of Records"}, "Name": "NL1_Serving_Cell_RSSI_Info_V1", "Data": {"0": ["Reserved", "UINT32", "1", "0", "19", ""], "1": ["Number of Records", "UINT32", "1", "19", "5", "range[1, 20]"], "2": ["Serving Cell RSSI Records", "NL1_Serving_Cell_RSSI_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Serving_Cell_RSSI_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RSSI", "INT16", "1", "0", "16", "Max RSSI of the 4-path RSSI results"], "1": ["RSSI RX0", "INT16", "1", "16", "16", "range[-150, -10]"], "2": ["RSSI RX1", "INT16", "1", "32", "16", "range[-150, -10]"], "3": ["RSSI RX2", "INT16", "1", "48", "16", "range[-150, -10]"], "4": ["RSSI RX3", "INT16", "1", "64", "16", "range[-150, -10]"], "5": ["Reserved", "INT16", "1", "80", "16", ""]}, "Name": "NL1_Serving_Cell_RSSI_Record_V1"}, "NL1_Serving_Cell_RSSI_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["RSSI", "INT16", "1", "24", "16", "Max RSSI of the 4-path RSSI results"], "2": ["RSSI RX0", "INT16", "1", "40", "16", "range[-150, -10]"], "3": ["RSSI RX1", "INT16", "1", "56", "16", "range[-150, -10]"], "4": ["RSSI RX2", "INT16", "1", "72", "16", "range[-150, -10]"], "5": ["RSSI RX3", "INT16", "1", "88", "16", "range[-150, -10]"], "6": ["Reserved", "INT16", "1", "104", "16", ""]}, "Name": "NL1_Serving_Cell_RSSI_Info_V2"}, "NL1_Serving_Cell_RSSI_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["RSSI", "INT16", "1", "24", "16", "Max RSSI of the 4-path RSSI results"], "2": ["RSSI RX0", "INT16", "1", "40", "16", "range[-150, -10], -32768 means invalid"], "3": ["RSSI RX1", "INT16", "1", "56", "16", "range[-150, -10], -32768 means invalid"], "4": ["RSSI RX2", "INT16", "1", "72", "16", "range[-150, -10], -32768 means invalid"], "5": ["RSSI RX3", "INT16", "1", "88", "16", "range[-150, -10], -32768 means invalid"], "6": ["Carrier index", "INT16", "1", "104", "3", "Indicates whether this metric is\nreporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "7": ["Reserved", "INT16", "1", "107", "13", ""]}, "Name": "NL1_Serving_Cell_RSSI_Info_V3"}, "NL1_Serving_Cell_RSSI_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Carrier index", "UINT32", "1", "0", "4", ""], "1": ["Freq Type", "UINT32", "1", "4", "1", "0: FR1, 1: FR2"], "2": ["Reserved", "UINT32", "1", "5", "19", ""], "3": ["RSSI", "INT16", "1", "24", "16", "Max RSSI of the 4-path RSSI results"], "4": ["RSSI RX0", "INT16", "1", "40", "16", "range[-150, -10], -32768 means invalid"], "5": ["RSSI RX1", "INT16", "1", "56", "16", "range[-150, -10], -32768 means invalid"], "6": ["RSSI RX2", "INT16", "1", "72", "16", "range[-150, -10], -32768 means invalid"], "7": ["RSSI RX3", "INT16", "1", "88", "16", "range[-150, -10], -32768 means invalid"], "8": ["Reserved", "INT16", "1", "104", "16", ""]}, "Name": "NL1_Serving_Cell_RSSI_Info_V4"}}},
+ Public JSON end */
+// Checksum : [f564562ee3b5deb084aa7fd97e6dcd27]
diff --git a/mcu/interface/service/icd/nl1/NL1_Sync_SSB_Measurement.h b/mcu/interface/service/icd/nl1/NL1_Sync_SSB_Measurement.h
new file mode 100644
index 0000000..7f7cbe6
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Sync_SSB_Measurement.h
@@ -0,0 +1,60 @@
+// ICD Header Format v3
+// Name : NL1_Sync_SSB_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9022
+// Version : V1.3
+
+#ifndef _NL1_SYNC_SSB_MEASUREMENT_H
+#define _NL1_SYNC_SSB_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SYNC_SSB_MEASUREMENT 0x9022
+
+#define ICD_NL1_NL1_SYNC_SSB_MEASUREMENT_V2 2
+
+#define MAX_ICD_NL1_SYNC_SSB_MEASUREMENT_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_SYNC_SSB_MEASUREMENT_STRUCT_V2_MAX_SIZE 484
+
+typedef struct {
+ kal_int16 sync_ssb_snr_rx0; // unit: dB
+ kal_int16 sync_ssb_snr_rx1; // unit: dB
+ kal_int16 sync_ssb_snr_rx2; // unit: dB
+ kal_int16 sync_ssb_snr_rx3; // unit: dB
+ kal_int16 sync_ssb_snr_avarage; // unit: dB
+ // Averaged SNR of 4RX.
+ kal_int16 sync_ssb_rsrp_rx0; // unit: dBm
+ kal_int16 sync_ssb_rsrp_rx1; // unit: dBm
+ kal_int16 sync_ssb_rsrp_rx2; // unit: dBm
+ kal_int16 sync_ssb_rsrp_rx3; // unit: dBm
+ kal_int16 sync_ssb_rsrp_avarage; // unit: dBm
+ // Averaged RSRP of 4RX.
+ kal_uint32 ssb_beam_index:8;
+ kal_uint32 reserved:24;
+} nl1_sync_ssb_measurement_record_v2;
+
+typedef nl1_sync_ssb_measurement_record_v2 nl1_sync_ssb_measurement_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ nl1_sync_ssb_measurement_record sync_ssb_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_sync_ssb_measurement_struct_v2;
+
+typedef icd_nl1_sync_ssb_measurement_struct_v2 icd_nl1_sync_ssb_measurement_struct;
+
+
+#endif /* _NL1_SYNC_SSB_MEASUREMENT_H */
+
+
+/* Public JSON start
+"NL1_Sync_SSB_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9022", "Name": "NL1_Sync_SSB_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Sync_SSB_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Sync_SSB_Measurement_Versions", "1", "8", "VAR", "Version of NL1_Sync_SSB_Measurement"]}, "Name": "NL1_Sync_SSB_Measurement"}, "NL1_Sync_SSB_Measurement_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Sync_SSB_Measurement_V1", "Information of Sync SSB Measurement (version 1)"], "1": ["2", "NL1_Sync_SSB_Measurement_V2", "Information of Sync SSB Measurement (version 2)"]}, "Name": "NL1_Sync_SSB_Measurement_Versions"}, "NL1_Sync_SSB_Measurement_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Sync SSB Measurement records": "Number of Records"}, "Name": "NL1_Sync_SSB_Measurement_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["Sync SSB Measurement records", "NL1_Sync_SSB_Measurement_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Sync_SSB_Measurement_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Sync SSB Measurement records": "Number of Records"}, "Name": "NL1_Sync_SSB_Measurement_V2", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["Sync SSB Measurement records", "NL1_Sync_SSB_Measurement_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Sync_SSB_Measurement_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Sync SSB SNR RX0", "INT16", "1", "0", "16", "unit: dB"], "1": ["Sync SSB SNR RX1", "INT16", "1", "16", "16", "unit: dB"], "2": ["Sync SSB SNR RX2", "INT16", "1", "32", "16", "unit: dB"], "3": ["Sync SSB SNR RX3", "INT16", "1", "48", "16", "unit: dB"], "4": ["Sync SSB SNR avarage", "INT16", "1", "64", "16", "unit: dB\nAveraged SNR of 4RX."], "5": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "NL1_Sync_SSB_Measurement_Record_V1"}, "NL1_Sync_SSB_Measurement_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Sync SSB SNR RX0", "INT16", "1", "0", "16", "unit: dB"], "1": ["Sync SSB SNR RX1", "INT16", "1", "16", "16", "unit: dB"], "2": ["Sync SSB SNR RX2", "INT16", "1", "32", "16", "unit: dB"], "3": ["Sync SSB SNR RX3", "INT16", "1", "48", "16", "unit: dB"], "4": ["Sync SSB SNR avarage", "INT16", "1", "64", "16", "unit: dB\nAveraged SNR of 4RX."], "5": ["Sync SSB RSRP RX0", "INT16", "1", "80", "16", "unit: dBm"], "6": ["Sync SSB RSRP RX1", "INT16", "1", "96", "16", "unit: dBm"], "7": ["Sync SSB RSRP RX2", "INT16", "1", "112", "16", "unit: dBm"], "8": ["Sync SSB RSRP RX3", "INT16", "1", "128", "16", "unit: dBm"], "9": ["Sync SSB RSRP avarage", "INT16", "1", "144", "16", "unit: dBm\nAveraged RSRP of 4RX."], "10": ["SSB beam index", "UINT32", "1", "160", "8", ""], "11": ["Reserved", "UINT32", "1", "168", "24", ""]}, "Name": "NL1_Sync_SSB_Measurement_Record_V2"}}},
+ Public JSON end */
+// Checksum : [f796b92132d38253ac87251299f9992d]
diff --git a/mcu/interface/service/icd/nl1/NL1_Sync_Serving_Beam_Measurement.h b/mcu/interface/service/icd/nl1/NL1_Sync_Serving_Beam_Measurement.h
new file mode 100644
index 0000000..a4bf0f2
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Sync_Serving_Beam_Measurement.h
@@ -0,0 +1,61 @@
+// ICD Header Format v3
+// Name : NL1_Sync_Serving_Beam_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9033
+// Version : V1.3
+
+#ifndef _NL1_SYNC_SERVING_BEAM_MEASUREMENT_H
+#define _NL1_SYNC_SERVING_BEAM_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SYNC_SERVING_BEAM_MEASUREMENT 0x9033
+
+#define ICD_NL1_NL1_SYNC_SERVING_BEAM_MEASUREMENT_V1 1
+
+#define MAX_ICD_NL1_SYNC_SERVING_BEAM_MEASUREMENT_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_SYNC_SERVING_BEAM_MEASUREMENT_STRUCT_V1_MAX_SIZE 408
+
+typedef struct {
+ kal_int16 snr_rx0; // unit: dB
+ kal_int16 snr_rx1; // unit: dB
+ kal_int16 snr_rx2; // unit: dB
+ kal_int16 snr_rx3; // unit: dB
+ kal_int16 snr_average; // unit: dB
+ // Averaged SNR of 4RX.
+ kal_int16 rsrp_rx0; // unit: dBm
+ kal_int16 rsrp_rx1; // unit: dBm
+ kal_int16 rsrp_rx2; // unit: dBm
+ kal_int16 rsrp_rx3; // unit: dBm
+ kal_int16 rsrp_average; // unit: dBm
+ // Averaged RSRP of 4RX.
+} nl1_sync_serving_beam_measurement_record_v1;
+
+typedef nl1_sync_serving_beam_measurement_record_v1 nl1_sync_serving_beam_measurement_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 carrier_index:4;
+ kal_uint32 rs_type:1; // 0: SSB, 1: TRS
+ kal_uint32 reserved:4;
+ kal_uint32 rs_index:8;
+ kal_uint32 reserved_1:24;
+ nl1_sync_serving_beam_measurement_record measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_sync_serving_beam_measurement_struct_v1;
+
+typedef icd_nl1_sync_serving_beam_measurement_struct_v1 icd_nl1_sync_serving_beam_measurement_struct;
+
+
+#endif /* _NL1_SYNC_SERVING_BEAM_MEASUREMENT_H */
+
+
+/* Public JSON start
+"NL1_Sync_Serving_Beam_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9033", "Name": "NL1_Sync_Serving_Beam_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records or beam changed, whichever occurs first.\n"}, "table": {"NL1_Sync_Serving_Beam_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Sync_Serving_Beam_Measurement_Versions", "1", "8", "VAR", "Version of NL1_Sync_Serving_Beam_Measurement"]}, "Name": "NL1_Sync_Serving_Beam_Measurement"}, "NL1_Sync_Serving_Beam_Measurement_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Sync_Serving_Beam_Measurement_V1", "Information of Sync Serving Beam Measurement (version 1)"]}, "Name": "NL1_Sync_Serving_Beam_Measurement_Versions"}, "NL1_Sync_Serving_Beam_Measurement_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Measurement Records": "Number of Records"}, "Name": "NL1_Sync_Serving_Beam_Measurement_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "4", ""], "3": ["RS Type", "UINT32", "1", "19", "1", "0: SSB, 1: TRS"], "4": ["Reserved", "UINT32", "1", "20", "4", ""], "5": ["RS Index", "UINT32", "1", "24", "8", ""], "6": ["Reserved", "UINT32", "1", "32", "24", ""], "7": ["Measurement Records", "NL1_Sync_Serving_Beam_Measurement_Record_V1", "N", "56", "VAR", "N := Number of Records"]}}, "NL1_Sync_Serving_Beam_Measurement_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SNR RX0", "INT16", "1", "0", "16", "unit: dB"], "1": ["SNR RX1", "INT16", "1", "16", "16", "unit: dB"], "2": ["SNR RX2", "INT16", "1", "32", "16", "unit: dB"], "3": ["SNR RX3", "INT16", "1", "48", "16", "unit: dB"], "4": ["SNR average", "INT16", "1", "64", "16", "unit: dB\nAveraged SNR of 4RX."], "5": ["RSRP RX0", "INT16", "1", "80", "16", "unit: dBm"], "6": ["RSRP RX1", "INT16", "1", "96", "16", "unit: dBm"], "7": ["RSRP RX2", "INT16", "1", "112", "16", "unit: dBm"], "8": ["RSRP RX3", "INT16", "1", "128", "16", "unit: dBm"], "9": ["RSRP average", "INT16", "1", "144", "16", "unit: dBm\nAveraged RSRP of 4RX."]}, "Name": "NL1_Sync_Serving_Beam_Measurement_Record_V1"}}},
+ Public JSON end */
+// Checksum : [7dc890f54cd50633a3c8c900b00ddc53]
diff --git a/mcu/interface/service/icd/nl1/NL1_Sync_TRS_Measurement.h b/mcu/interface/service/icd/nl1/NL1_Sync_TRS_Measurement.h
new file mode 100644
index 0000000..1828a24
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Sync_TRS_Measurement.h
@@ -0,0 +1,60 @@
+// ICD Header Format v3
+// Name : NL1_Sync_TRS_Measurement
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9023
+// Version : V1.3
+
+#ifndef _NL1_SYNC_TRS_MEASUREMENT_H
+#define _NL1_SYNC_TRS_MEASUREMENT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_SYNC_TRS_MEASUREMENT 0x9023
+
+#define ICD_NL1_NL1_SYNC_TRS_MEASUREMENT_V2 2
+
+#define MAX_ICD_NL1_SYNC_TRS_MEASUREMENT_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_SYNC_TRS_MEASUREMENT_STRUCT_V2_MAX_SIZE 484
+
+typedef struct {
+ kal_int16 sync_trs_snr_rx0; // unit: dB
+ kal_int16 sync_trs_snr_rx1; // unit: dB
+ kal_int16 sync_trs_snr_rx2; // unit: dB
+ kal_int16 sync_trs_snr_rx3; // unit: dB
+ kal_int16 sync_trs_snr_avarage; // unit: dB
+ // Averaged SNR of 4RX.
+ kal_int16 sync_trs_rsrp_rx0; // unit: dBm
+ kal_int16 sync_trs_rsrp_rx1; // unit: dBm
+ kal_int16 sync_trs_rsrp_rx2; // unit: dBm
+ kal_int16 sync_trs_rsrp_rx3; // unit: dBm
+ kal_int16 sync_trs_rsrp_avarage; // unit: dBm
+ // Averaged RSRP of 4RX.
+ kal_uint32 trs_beam_index:8;
+ kal_uint32 reserved:24;
+} nl1_sync_trs_measurement_record_v2;
+
+typedef nl1_sync_trs_measurement_record_v2 nl1_sync_trs_measurement_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pci:10; // range[0, 1007], Physical Cell Identity
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 reserved:6;
+ nl1_sync_trs_measurement_record sync_trs_measurement_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_sync_trs_measurement_struct_v2;
+
+typedef icd_nl1_sync_trs_measurement_struct_v2 icd_nl1_sync_trs_measurement_struct;
+
+
+#endif /* _NL1_SYNC_TRS_MEASUREMENT_H */
+
+
+/* Public JSON start
+"NL1_Sync_TRS_Measurement": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9023", "Name": "NL1_Sync_TRS_Measurement", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Sync_TRS_Measurement": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Sync_TRS_Measurement_Versions", "1", "8", "VAR", "Version of NL1_Sync_TRS_Measurement"]}, "Name": "NL1_Sync_TRS_Measurement"}, "NL1_Sync_TRS_Measurement_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Sync_TRS_Measurement_V1", "Information of Sync TRS Measurement (version 1)"], "1": ["2", "NL1_Sync_TRS_Measurement_V2", "Information of Sync TRS Measurement (version 2)"]}, "Name": "NL1_Sync_TRS_Measurement_Versions"}, "NL1_Sync_TRS_Measurement_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Sync TRS Measurement records": "Number of Records"}, "Name": "NL1_Sync_TRS_Measurement_V1", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["Sync TRS Measurement records", "NL1_Sync_TRS_Measurement_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Sync_TRS_Measurement_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Sync TRS Measurement records": "Number of Records"}, "Name": "NL1_Sync_TRS_Measurement_V2", "Data": {"0": ["PCI", "UINT32", "1", "0", "10", "range[0, 1007], Physical Cell Identity"], "1": ["Number of Records", "UINT32", "1", "10", "5", "range[0, 20]"], "2": ["Carrier index", "UINT32", "1", "15", "3", "range[0, 7]"], "3": ["Reserved", "UINT32", "1", "18", "6", ""], "4": ["Sync TRS Measurement records", "NL1_Sync_TRS_Measurement_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Sync_TRS_Measurement_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Sync TRS SNR RX0", "INT16", "1", "0", "16", "unit: dB"], "1": ["Sync TRS SNR RX1", "INT16", "1", "16", "16", "unit: dB"], "2": ["Sync TRS SNR RX2", "INT16", "1", "32", "16", "unit: dB"], "3": ["Sync TRS SNR RX3", "INT16", "1", "48", "16", "unit: dB"], "4": ["Sync TRS SNR avarage", "INT16", "1", "64", "16", "unit: dB\nAveraged SNR of 4RX."], "5": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "NL1_Sync_TRS_Measurement_Record_V1"}, "NL1_Sync_TRS_Measurement_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Sync TRS SNR RX0", "INT16", "1", "0", "16", "unit: dB"], "1": ["Sync TRS SNR RX1", "INT16", "1", "16", "16", "unit: dB"], "2": ["Sync TRS SNR RX2", "INT16", "1", "32", "16", "unit: dB"], "3": ["Sync TRS SNR RX3", "INT16", "1", "48", "16", "unit: dB"], "4": ["Sync TRS SNR avarage", "INT16", "1", "64", "16", "unit: dB\nAveraged SNR of 4RX."], "5": ["Sync TRS RSRP RX0", "INT16", "1", "80", "16", "unit: dBm"], "6": ["Sync TRS RSRP RX1", "INT16", "1", "96", "16", "unit: dBm"], "7": ["Sync TRS RSRP RX2", "INT16", "1", "112", "16", "unit: dBm"], "8": ["Sync TRS RSRP RX3", "INT16", "1", "128", "16", "unit: dBm"], "9": ["Sync TRS RSRP avarage", "INT16", "1", "144", "16", "unit: dBm\nAveraged RSRP of 4RX."], "10": ["TRS beam index", "UINT32", "1", "160", "8", ""], "11": ["Reserved", "UINT32", "1", "168", "24", ""]}, "Name": "NL1_Sync_TRS_Measurement_Record_V2"}}},
+ Public JSON end */
+// Checksum : [9faa407e4174429a89ba4a97d8973f5b]
diff --git a/mcu/interface/service/icd/nl1/NL1_TAS_Information.h b/mcu/interface/service/icd/nl1/NL1_TAS_Information.h
new file mode 100644
index 0000000..37bfa7d
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_TAS_Information.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : NL1_TAS_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9013
+// Version : V1.3
+
+#ifndef _NL1_TAS_INFORMATION_H
+#define _NL1_TAS_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_TAS_INFORMATION 0x9013
+
+#define ICD_NL1_NL1_TAS_INFO_V3 3
+
+#define ICD_NL1_TAS_INFORMATION_STRUCT_V3_MAX_SIZE 52
+
+typedef struct {
+ kal_int8 tx_power; // range[-50, 33]
+ kal_int8 phr; // range[-50, 33]
+ kal_uint16 valid:1; // 0: invalid, 1: valid
+ kal_uint16 reserved:8;
+ kal_uint16 antenna_index:7;
+ kal_int16 rsrp; // range[-140, 18]
+ kal_int16 reserved_1;
+} nl1_tas_antenna_report_v1;
+
+typedef nl1_tas_antenna_report_v1 nl1_tas_antenna_report;
+
+typedef struct {
+ kal_uint32 status:2; // range[0, 2]
+ kal_uint32 carrier_index:3; // range[0, 7], only valid when Status > 0
+ kal_uint32 reserved:3;
+ kal_uint32 tx_index_0:8; // Only valid when Status > 0
+ kal_uint32 tx_index_1:8; // Only valid when Status > 1
+ kal_uint32 rx_state:8;
+ kal_uint32 tx_state:8;
+ kal_uint32 reserved_1:24;
+ nl1_tas_antenna_report antenna_reports[5];
+} nl1_tas_antenna_info_v3;
+
+typedef nl1_tas_antenna_info_v3 nl1_tas_antenna_info;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 status:1; // 0: disabled, 1: enabled
+ kal_uint32 reserved:23;
+ nl1_tas_antenna_info antenna_infos;
+} icd_nl1_tas_information_struct_v3;
+
+typedef icd_nl1_tas_information_struct_v3 icd_nl1_tas_information_struct;
+
+
+#endif /* _NL1_TAS_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_TAS_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9013", "Name": "NL1_TAS_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms.\n"}, "table": {"NL1_TAS_Information": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_TAS_Info_Versions", "8", "8", "VAR", ""]}, "Name": "NL1_TAS_Information"}, "NL1_TAS_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_TAS_Info_V1", ""], "1": ["2", "NL1_TAS_Info_V2", ""], "2": ["3", "NL1_TAS_Info_V3", ""]}, "Name": "NL1_TAS_Info_Versions"}, "NL1_TAS_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "2", "0: disabled, 1: 1 antenna, 2: 2 antennas"], "1": ["Switch State", "UINT32", "1", "2", "4", "range[0, 31]"], "2": ["Reserved", "UINT32", "1", "6", "18", ""], "3": ["Tx Power", "INT16", "1", "24", "16", "range[-50, 33]"], "4": ["Reserved", "UINT16", "1", "40", "16", ""], "5": ["Antenna Infos", "NL1_TAS_Antenna_Info_V1", "1", "56", "352", ""]}, "Name": "NL1_TAS_Info_V1"}, "NL1_TAS_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "1", "0: disabled, 1: enabled"], "1": ["Reserved", "UINT32", "1", "1", "23", ""], "2": ["Antenna Infos", "NL1_TAS_Antenna_Info_V2", "1", "24", "352", ""]}, "Name": "NL1_TAS_Info_V2"}, "NL1_TAS_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "1", "0: disabled, 1: enabled"], "1": ["Reserved", "UINT32", "1", "1", "23", ""], "2": ["Antenna Infos", "NL1_TAS_Antenna_Info_V3", "1", "24", "384", ""]}, "Name": "NL1_TAS_Info_V3"}, "NL1_TAS_Antenna_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Carrier Index", "UINT32", "1", "0", "3", "range[0, 7]"], "1": ["Tx Index 0", "UINT32", "1", "3", "4", "range[0, 31]"], "2": ["Tx Index 1 Valid", "UINT32", "1", "7", "1", "0: invalid, 1: valid"], "3": ["Tx Index 1", "UINT32", "1", "8", "4", "range[0, 31]"], "4": ["Reserved", "UINT32", "1", "12", "20", ""], "5": ["Antenna Reports", "NL1_TAS_Antenna_Report_V1", "5", "32", "320", ""]}, "Name": "NL1_TAS_Antenna_Info_V1"}, "NL1_TAS_Antenna_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "2", "range[0, 2]"], "1": ["Carrier Index", "UINT32", "1", "2", "3", "range[0, 7], only valid when Status > 0"], "2": ["Tx Index 0", "UINT32", "1", "5", "5", "range[0, 31], only valid when Status > 0"], "3": ["Tx Index 1", "UINT32", "1", "10", "5", "range[0, 31], only valid when Status > 1"], "4": ["Rx State", "UINT32", "1", "15", "5", "range[0, 23]"], "5": ["Tx State", "UINT32", "1", "20", "5", "range[0, 23]"], "6": ["Reserved", "UINT32", "1", "25", "7", ""], "7": ["Antenna Reports", "NL1_TAS_Antenna_Report_V1", "5", "32", "320", ""]}, "Name": "NL1_TAS_Antenna_Info_V2"}, "NL1_TAS_Antenna_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Status", "UINT32", "1", "0", "2", "range[0, 2]"], "1": ["Carrier Index", "UINT32", "1", "2", "3", "range[0, 7], only valid when Status > 0"], "2": ["Reserved", "UINT32", "1", "5", "3", ""], "3": ["Tx Index 0", "UINT32", "1", "8", "8", "Only valid when Status > 0"], "4": ["Tx Index 1", "UINT32", "1", "16", "8", "Only valid when Status > 1"], "5": ["Rx State", "UINT32", "1", "24", "8", ""], "6": ["Tx State", "UINT32", "1", "32", "8", ""], "7": ["Reserved", "UINT32", "1", "40", "24", ""], "8": ["Antenna Reports", "NL1_TAS_Antenna_Report_V1", "5", "64", "320", ""]}, "Name": "NL1_TAS_Antenna_Info_V3"}, "NL1_TAS_Antenna_Report_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Tx Power", "INT8", "1", "0", "8", "range[-50, 33]"], "1": ["PHR", "INT8", "1", "8", "8", "range[-50, 33]"], "2": ["Valid", "UINT16", "1", "16", "1", "0: invalid, 1: valid"], "3": ["Reserved", "UINT16", "1", "17", "8", ""], "4": ["Antenna Index", "UINT16", "1", "25", "7", ""], "5": ["RSRP", "INT16", "1", "32", "16", "range[-140, 18]"], "6": ["Reserved", "INT16", "1", "48", "16", ""]}, "Name": "NL1_TAS_Antenna_Report_V1"}}},
+ Public JSON end */
+// Checksum : [33f8a3f58ffd8e79c6d0d50807a59b90]
diff --git a/mcu/interface/service/icd/nl1/NL1_TPC_Report.h b/mcu/interface/service/icd/nl1/NL1_TPC_Report.h
new file mode 100644
index 0000000..3066abc
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_TPC_Report.h
@@ -0,0 +1,74 @@
+// ICD Header Format v3
+// Name : NL1_TPC_Report
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9025
+// Version : t-internal-nr-icd-draft3RC1-273-g3d2718f
+
+#ifndef _NL1_TPC_REPORT_H
+#define _NL1_TPC_REPORT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_TPC_REPORT 0x9025
+
+#define ICD_NL1_NL1_TPC_REPORT_INFO_V4 4
+
+#define ICD_NL1_TPC_REPORT_STRUCT_V4_MAX_SIZE 48
+
+typedef struct {
+ kal_uint32 range_1:7; // Power range from minimum to 0dBm
+ kal_uint32 range_2:7; // Power range from 0dBm to 5dBm
+ kal_uint32 range_3:7; // Power range from 5dBm to 10dBm
+ kal_uint32 range_4:7; // Power range from 10dBm to 15dBm
+ kal_uint32 reserved:4;
+ kal_uint32 range_5:7; // Power range from 15dBm to 18dBm
+ kal_uint32 range_6:7; // Power range from 18dBm to 20dBm
+ kal_uint32 range_7:7; // Power range from 20dBm to maximum
+ kal_uint32 reserved_1:11;
+} nl1_tpc_power_distribution_info_v1;
+
+typedef nl1_tpc_power_distribution_info_v1 nl1_tpc_power_distribution_info;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 cc_mask:3;
+ kal_uint32 pa_mode:2; // 0: H, 1: M, 2: L
+ kal_uint32 op_mode:2; // 0: APT, 1: DPD, 2: ET
+ kal_uint32 pa_index:2; // PA gear for TX power, range[0,9]
+ kal_uint32 temperature_index:3; // temperature index of temperature table,
+ // used for TxFEC power compensation
+ // 0: -10, 1: 5, 2: 20, 3: 35, 4: 55, 5: 70, 6: 85, 7: 90
+ kal_uint32 dc_to_dc_level:10; // PA voltage, range[0,255], unit: 0.1(V)
+ kal_uint32 reserved:2;
+ kal_int16 pa_gain; // S6.5 format, in dB
+ kal_int16 temperature_compensation; // Temperature compensation for PA gain, unit: 1/32(dB)
+ kal_int16 closed_loop_compensation; // S4.5 format, in dB
+ kal_int16 ddpc_report; // S7.5 format, in dBm
+ kal_int16 bb_gain; // S6.5 format, in dB
+ kal_int16 pga_gain; // S7.5 format, in dB
+ kal_int16 current_target_power; // S7.5 format, in dB
+ kal_int16 current_endc_power; // S7.5 format, in dB
+ kal_int16 endc_pcmax; // S7.8 format, in dB
+ kal_uint16 waveform_type:1; // 0: CP-OFDM, 1: DFT-S-OFDM
+ kal_uint16 otfc_dpd_abnorm:7; // OTFC DPD noise detection count, Range[0,100]
+ kal_uint16 reserved_1:8;
+ nl1_tpc_power_distribution_info target_power_distribution; // The time distribution of 7 power ranges in milliseconds
+ nl1_tpc_power_distribution_info endc_total_power_distribution; // The time distribution of 7 power ranges in milliseconds
+ kal_uint16 rf_power_excess_cnt[3]; // The hit count that transceiver power is out of specific value
+ // (default: 64dBm, by customer setting), Range[0, 3200]
+ kal_int16 rf_power; // S7.5 format, in dB
+} icd_nl1_tpc_report_struct_v4;
+
+typedef icd_nl1_tpc_report_struct_v4 icd_nl1_tpc_report_struct;
+
+
+#endif /* _NL1_TPC_REPORT_H */
+
+
+/* Public JSON start
+"NL1_TPC_Report": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9025", "Name": "NL1_TPC_Report", "Type": "RECORD", "Desc": "The log is generated once every 100 ms.\n"}, "table": {"NL1_TPC_Report": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_TPC_Report_Info_Versions", "1", "8", "VAR", "Version of NL1_TPC_Report_Info"]}, "Name": "NL1_TPC_Report"}, "NL1_TPC_Report_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_TPC_Report_Info_V1", "Information of TPC report (version 1)"], "1": ["2", "NL1_TPC_Report_Info_V2", "Information of TPC report (version 2)"], "2": ["3", "NL1_TPC_Report_Info_V3", "Information of TPC report (version 3)"], "3": ["4", "NL1_TPC_Report_Info_V4", "Information of TPC report (version 4)"]}, "Name": "NL1_TPC_Report_Info_Versions"}, "NL1_TPC_Report_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CC Mask", "UINT32", "1", "0", "3", ""], "1": ["PA Mode", "UINT32", "1", "3", "2", "0: H, 1: M, 2: L"], "2": ["OP Mode", "UINT32", "1", "5", "2", "0: APT, 1: DPD, 2: ET"], "3": ["PA Index", "UINT32", "1", "7", "2", ""], "4": ["Temperature Index", "UINT32", "1", "9", "3", ""], "5": ["DC to DC Level", "UINT32", "1", "12", "10", ""], "6": ["Reserved", "UINT32", "1", "22", "2", ""], "7": ["PA Gain", "INT16", "1", "24", "16", "S6.5 format, in dB"], "8": ["Temperature Compensation", "INT16", "1", "40", "16", ""], "9": ["Closed Loop Compensation", "INT16", "1", "56", "16", "S4.5 format, in dB"], "10": ["DDPC Report", "INT16", "1", "72", "16", "S7.5 format, in dBm"], "11": ["BB Gain", "INT16", "1", "88", "16", "S6.5 format, in dB"], "12": ["PGA Gain", "INT16", "1", "104", "16", "S7.5 format, in dB"]}, "Name": "NL1_TPC_Report_Info_V1"}, "NL1_TPC_Report_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CC Mask", "UINT32", "1", "0", "3", ""], "1": ["PA Mode", "UINT32", "1", "3", "2", "0: H, 1: M, 2: L"], "2": ["OP Mode", "UINT32", "1", "5", "2", "0: APT, 1: DPD, 2: ET"], "3": ["PA Index", "UINT32", "1", "7", "2", ""], "4": ["Temperature Index", "UINT32", "1", "9", "3", ""], "5": ["DC to DC Level", "UINT32", "1", "12", "10", ""], "6": ["Reserved", "UINT32", "1", "22", "2", ""], "7": ["PA Gain", "INT16", "1", "24", "16", "S6.5 format, in dB"], "8": ["Temperature Compensation", "INT16", "1", "40", "16", ""], "9": ["Closed Loop Compensation", "INT16", "1", "56", "16", "S4.5 format, in dB"], "10": ["DDPC Report", "INT16", "1", "72", "16", "S7.5 format, in dBm"], "11": ["BB Gain", "INT16", "1", "88", "16", "S6.5 format, in dB"], "12": ["PGA Gain", "INT16", "1", "104", "16", "S7.5 format, in dB"], "13": ["Current Target Power", "INT16", "1", "120", "16", "S7.5 format, in dB"], "14": ["Current ENDC Power", "INT16", "1", "136", "16", "S7.5 format, in dB"], "15": ["Target Power Distribution", "NL1_TPC_Power_Distribution_Info_V1", "1", "152", "64", "The time distribution of 7 power ranges in milliseconds"], "16": ["ENDC Total Power Distribution", "NL1_TPC_Power_Distribution_Info_V1", "1", "216", "64", "The time distribution of 7 power ranges in milliseconds"]}, "Name": "NL1_TPC_Report_Info_V2"}, "NL1_TPC_Report_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CC Mask", "UINT32", "1", "0", "3", ""], "1": ["PA Mode", "UINT32", "1", "3", "2", "0: H, 1: M, 2: L"], "2": ["OP Mode", "UINT32", "1", "5", "2", "0: APT, 1: DPD, 2: ET"], "3": ["PA Index", "UINT32", "1", "7", "2", "PA gear for TX power, range[0,9]"], "4": ["Temperature Index", "UINT32", "1", "9", "3", "temperature index of temperature table,\nused for TxFEC power compensation\n0: -10, 1: 5, 2: 20, 3: 35, 4: 55, 5: 70, 6: 85, 7: 90"], "5": ["DC to DC Level", "UINT32", "1", "12", "10", "PA voltage, range[0,255], unit: 0.1(V)"], "6": ["Reserved", "UINT32", "1", "22", "2", ""], "7": ["PA Gain", "INT16", "1", "24", "16", "S6.5 format, in dB"], "8": ["Temperature Compensation", "INT16", "1", "40", "16", "Temperature compensation for PA gain, unit: 1/32(dB)"], "9": ["Closed Loop Compensation", "INT16", "1", "56", "16", "S4.5 format, in dB"], "10": ["DDPC Report", "INT16", "1", "72", "16", "S7.5 format, in dBm"], "11": ["BB Gain", "INT16", "1", "88", "16", "S6.5 format, in dB"], "12": ["PGA Gain", "INT16", "1", "104", "16", "S7.5 format, in dB"], "13": ["Current Target Power", "INT16", "1", "120", "16", "S7.5 format, in dB"], "14": ["Current ENDC Power", "INT16", "1", "136", "16", "S7.5 format, in dB"], "15": ["ENDC PCmax", "INT16", "1", "152", "16", "S7.8 format, in dB"], "16": ["Waveform Type", "UINT16", "1", "168", "1", "0: CP-OFDM, 1: DFT-S-OFDM"], "17": ["Reserved", "UINT16", "1", "169", "15", ""], "18": ["Target Power Distribution", "NL1_TPC_Power_Distribution_Info_V1", "1", "184", "64", "The time distribution of 7 power ranges in milliseconds"], "19": ["ENDC Total Power Distribution", "NL1_TPC_Power_Distribution_Info_V1", "1", "248", "64", "The time distribution of 7 power ranges in milliseconds"]}, "Name": "NL1_TPC_Report_Info_V3"}, "NL1_TPC_Report_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["CC Mask", "UINT32", "1", "0", "3", ""], "1": ["PA Mode", "UINT32", "1", "3", "2", "0: H, 1: M, 2: L"], "2": ["OP Mode", "UINT32", "1", "5", "2", "0: APT, 1: DPD, 2: ET"], "3": ["PA Index", "UINT32", "1", "7", "2", "PA gear for TX power, range[0,9]"], "4": ["Temperature Index", "UINT32", "1", "9", "3", "temperature index of temperature table,\nused for TxFEC power compensation\n0: -10, 1: 5, 2: 20, 3: 35, 4: 55, 5: 70, 6: 85, 7: 90"], "5": ["DC to DC Level", "UINT32", "1", "12", "10", "PA voltage, range[0,255], unit: 0.1(V)"], "6": ["Reserved", "UINT32", "1", "22", "2", ""], "7": ["PA Gain", "INT16", "1", "24", "16", "S6.5 format, in dB"], "8": ["Temperature Compensation", "INT16", "1", "40", "16", "Temperature compensation for PA gain, unit: 1/32(dB)"], "9": ["Closed Loop Compensation", "INT16", "1", "56", "16", "S4.5 format, in dB"], "10": ["DDPC Report", "INT16", "1", "72", "16", "S7.5 format, in dBm"], "11": ["BB Gain", "INT16", "1", "88", "16", "S6.5 format, in dB"], "12": ["PGA Gain", "INT16", "1", "104", "16", "S7.5 format, in dB"], "13": ["Current Target Power", "INT16", "1", "120", "16", "S7.5 format, in dB"], "14": ["Current ENDC Power", "INT16", "1", "136", "16", "S7.5 format, in dB"], "15": ["ENDC PCmax", "INT16", "1", "152", "16", "S7.8 format, in dB"], "16": ["Waveform Type", "UINT16", "1", "168", "1", "0: CP-OFDM, 1: DFT-S-OFDM"], "17": ["OTFC DPD Abnorm", "UINT16", "1", "169", "7", "OTFC DPD noise detection count, Range[0,100]"], "18": ["Reserved", "UINT16", "1", "176", "8", ""], "19": ["Target Power Distribution", "NL1_TPC_Power_Distribution_Info_V1", "1", "184", "64", "The time distribution of 7 power ranges in milliseconds"], "20": ["ENDC Total Power Distribution", "NL1_TPC_Power_Distribution_Info_V1", "1", "248", "64", "The time distribution of 7 power ranges in milliseconds"], "21": ["RF Power Excess Cnt", "UINT16", "3", "312", "48", "The hit count that transceiver power is out of specific value\n(default: 64dBm, by customer setting), Range[0, 3200]"], "22": ["RF Power", "INT16", "1", "360", "16", "S7.5 format, in dB"]}, "Name": "NL1_TPC_Report_Info_V4"}, "NL1_TPC_Power_Distribution_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Range 1", "UINT32", "1", "0", "7", "Power range from minimum to 0dBm"], "1": ["Range 2", "UINT32", "1", "7", "7", "Power range from 0dBm to 5dBm"], "2": ["Range 3", "UINT32", "1", "14", "7", "Power range from 5dBm to 10dBm"], "3": ["Range 4", "UINT32", "1", "21", "7", "Power range from 10dBm to 15dBm"], "4": ["Reserved", "UINT32", "1", "28", "4", ""], "5": ["Range 5", "UINT32", "1", "32", "7", "Power range from 15dBm to 18dBm"], "6": ["Range 6", "UINT32", "1", "39", "7", "Power range from 18dBm to 20dBm"], "7": ["Range 7", "UINT32", "1", "46", "7", "Power range from 20dBm to maximum"], "8": ["Reserved", "UINT32", "1", "53", "11", ""]}, "Name": "NL1_TPC_Power_Distribution_Info_V1"}}},
+ Public JSON end */
+// Checksum : [3d474b36817acad16638670c44806a23]
diff --git a/mcu/interface/service/icd/nl1/NL1_Timing_Information.h b/mcu/interface/service/icd/nl1/NL1_Timing_Information.h
new file mode 100644
index 0000000..3871786
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_Timing_Information.h
@@ -0,0 +1,54 @@
+// ICD Header Format v3
+// Name : NL1_Timing_Information
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9029
+// Version : V1.3
+
+#ifndef _NL1_TIMING_INFORMATION_H
+#define _NL1_TIMING_INFORMATION_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_TIMING_INFORMATION 0x9029
+
+#define ICD_NL1_NL1_TIMING_INFO_V1 1
+
+#define MAX_ICD_NL1_TIMING_INFO_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_TIMING_INFO_STRUCT_V1_MAX_SIZE 484
+
+typedef struct {
+ kal_int16 rx0_timing_offset; // unit: Ts
+ kal_int16 rx1_timing_offset; // unit: Ts
+ kal_int16 rx2_timing_offset; // unit: Ts
+ kal_int16 rx3_timing_offset; // unit: Ts
+ kal_int32 rx0_timing_error; // unit: Ts
+ kal_int32 rx1_timing_error; // unit: Ts
+ kal_int32 rx2_timing_error; // unit: Ts
+ kal_int32 rx3_timing_error; // unit: Ts
+} nl1_cell_timing_info_v1;
+
+typedef nl1_cell_timing_info_v1 nl1_cell_timing_info;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 cell_group_id:1;
+ kal_uint32 carrier_index:4;
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:14;
+ nl1_cell_timing_info cell_timing[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_timing_info_struct_v1;
+
+typedef icd_nl1_timing_info_struct_v1 icd_nl1_timing_info_struct;
+
+
+#endif /* _NL1_TIMING_INFORMATION_H */
+
+
+/* Public JSON start
+"NL1_Timing_Information": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9029", "Name": "NL1_Timing_Information", "Type": "RECORD", "Desc": "The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_Timing_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_Timing_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_Timing_Info"}, "NL1_Timing_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_Timing_Info_V1", ""]}, "Name": "NL1_Timing_Info_Versions"}, "NL1_Timing_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Cell Timing": "Number of Records"}, "Name": "NL1_Timing_Info_V1", "Data": {"0": ["Cell Group Id", "UINT32", "1", "0", "1", ""], "1": ["Carrier Index", "UINT32", "1", "1", "4", ""], "2": ["Number of Records", "UINT32", "1", "5", "5", "range[0, 20]"], "3": ["Reserved", "UINT32", "1", "10", "14", ""], "4": ["Cell Timing", "NL1_Cell_Timing_Info_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_Cell_Timing_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RX0 Timing Offset", "INT16", "1", "0", "16", "unit: Ts"], "1": ["RX1 Timing Offset", "INT16", "1", "16", "16", "unit: Ts"], "2": ["RX2 Timing Offset", "INT16", "1", "32", "16", "unit: Ts"], "3": ["RX3 Timing Offset", "INT16", "1", "48", "16", "unit: Ts"], "4": ["RX0 Timing Error", "INT32", "1", "64", "32", "unit: Ts"], "5": ["RX1 Timing Error", "INT32", "1", "96", "32", "unit: Ts"], "6": ["RX2 Timing Error", "INT32", "1", "128", "32", "unit: Ts"], "7": ["RX3 Timing Error", "INT32", "1", "160", "32", "unit: Ts"]}, "Name": "NL1_Cell_Timing_Info_V1"}}},
+ Public JSON end */
+// Checksum : [fa7858708e00efd0c6097dbfeecb0eb8]
diff --git a/mcu/interface/service/icd/nl1/NL1_UE_Tx_Power.h b/mcu/interface/service/icd/nl1/NL1_UE_Tx_Power.h
new file mode 100644
index 0000000..b18d7b0
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_UE_Tx_Power.h
@@ -0,0 +1,53 @@
+// ICD Header Format v3
+// Name : NL1_UE_Tx_Power
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9020
+// Version : V1.3
+
+#ifndef _NL1_UE_TX_POWER_H
+#define _NL1_UE_TX_POWER_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_UE_TX_POWER 0x9020
+
+#define ICD_NL1_NL1_UE_TX_POWER_V1 1
+
+#define MAX_ICD_NL1_UE_TX_POWER_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL1_UE_TX_POWER_STRUCT_V1_MAX_SIZE 164
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
+ // range [0, 1023].
+ kal_uint32 subframe:4; // This is the subframe based on reporting time of this record.
+ // range [0, 9].
+ kal_uint32 slot:3; // This is the slot based on reporting time of this record.
+ // range [0, 7].
+ kal_uint32 reserved:15;
+ kal_int16 power;
+ kal_int16 reserved_1;
+} nl1_ue_tx_power_record_v1;
+
+typedef nl1_ue_tx_power_record_v1 nl1_ue_tx_power_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_records:5; // range[1, 20]
+ kal_uint32 reserved:19;
+ nl1_ue_tx_power_record tx_power_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl1_ue_tx_power_struct_v1;
+
+typedef icd_nl1_ue_tx_power_struct_v1 icd_nl1_ue_tx_power_struct;
+
+
+#endif /* _NL1_UE_TX_POWER_H */
+
+
+/* Internal JSON start
+"NL1_UE_Tx_Power": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9020", "Name": "NL1_UE_Tx_Power", "Type": "RECORD", "Desc": "This log packet contains the total Tx power of UE. The log is generated once every 100 ms or 20 records, whichever occurs first.\n"}, "table": {"NL1_UE_Tx_Power": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_UE_Tx_Power_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_UE_Tx_Power"}, "NL1_UE_Tx_Power_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_UE_Tx_Power_V1", ""]}, "Name": "NL1_UE_Tx_Power_Versions"}, "NL1_UE_Tx_Power_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Tx Power Records": "Number of Records"}, "Name": "NL1_UE_Tx_Power_V1", "Data": {"0": ["Number of Records", "UINT32", "1", "0", "5", "range[1, 20]"], "1": ["Reserved", "UINT32", "1", "5", "19", ""], "2": ["Tx Power Records", "NL1_UE_Tx_Power_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL1_UE_Tx_Power_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record.\nrange [0, 1023]."], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the subframe based on reporting time of this record.\nrange [0, 9]."], "2": ["Slot", "UINT32", "1", "14", "3", "This is the slot based on reporting time of this record.\nrange [0, 7]."], "3": ["Reserved", "UINT32", "1", "17", "15", ""], "4": ["Power", "INT16", "1", "32", "16", ""], "5": ["Reserved", "INT16", "1", "48", "16", ""]}, "Name": "NL1_UE_Tx_Power_Record_V1"}}},
+ Internal JSON end */
+// Checksum : [d49643663ebbde65d4e63e2f15f54ebd]
diff --git a/mcu/interface/service/icd/nl1/NL1_UL_Throughput.h b/mcu/interface/service/icd/nl1/NL1_UL_Throughput.h
new file mode 100644
index 0000000..56b8c76
--- /dev/null
+++ b/mcu/interface/service/icd/nl1/NL1_UL_Throughput.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : NL1_UL_Throughput
+// Category : NR
+// Layer : NL1
+// Type : RECORD
+// Code : 0x9003
+// Version : V1.3
+
+#ifndef _NL1_UL_THROUGHPUT_H
+#define _NL1_UL_THROUGHPUT_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL1_UL_THROUGHPUT 0x9003
+
+#define ICD_NL1_NL1_UL_THROUGHPUT_CONTENT_V4 4
+
+#define ICD_NL1_UL_THROUGHPUT_STRUCT_V4_MAX_SIZE 56
+
+typedef struct {
+ kal_uint32 ul_slot_bler:7; // UL BLER per slot in 1000ms,Range [0, 100].
+ kal_uint32 reserved:25;
+} nl1_ul_slot_bler_v1;
+
+typedef nl1_ul_slot_bler_v1 nl1_ul_slot_bler;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record, range[0,1023]
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record, range[0,9]
+ kal_uint32 carrier_index:3; // Indicates whether this metric is reporting on PCC or SCC.
+ // 0: Pcell, 1~7: Scell Index
+ kal_uint32 ul_bler:7; // The uplink BLER within 1000ms, range[0, 100]
+ kal_uint32 ul_ibler:7; // The uplink iBLER within 1000ms, range[0, 100]
+ // iBLER: Initial Block Error Rate. The ratio of data blocks with
+ // initial transmission errors to all initial transmission data blocks.
+ kal_uint32 ul_rbler:7; // The uplink rBLER within 1000ms, range[0, 100]
+ // rBLER: Residual Block Error Rate. The ratio of data blocks with
+ // transmission errors after initial transmissions and retransmissions
+ // to all initial transmission data block.
+ kal_uint32 ul_prb_utilization:7; // Range [0,100].
+ kal_uint32 reserved:11;
+ kal_uint32 ul_throughput; // Uplink throughput(KB/sec)
+ kal_uint32 peak_throughput; // Peak throughput within 10 seconds(KB/sec)
+ kal_uint32 ul_tb_size; // Average UL TBS within 1000ms. Unit: bytes
+ kal_uint32 total_ul_assignment_num:16; // Total Uplink Assignment number
+ kal_uint32 reserved_1:15;
+ kal_uint32 ul_slot_bler_valid:1; // 0:No abnormal,
+ // 1:Match trigger criteria, parameters in UL Slot BLER Record are valid.
+ nl1_ul_slot_bler ul_slot_bler_record[8];
+} icd_nl1_ul_throughput_struct_v4;
+
+typedef icd_nl1_ul_throughput_struct_v4 icd_nl1_ul_throughput_struct;
+
+
+#endif /* _NL1_UL_THROUGHPUT_H */
+
+
+/* Public JSON start
+"NL1_UL_Throughput": {"info": {"Category": "NR", "Layer": "L1", "Code": "0x9003", "Name": "NL1_UL_Throughput", "Type": "RECORD", "Desc": "The log is generated every 1000 ms.\n"}, "table": {"NL1_UL_Throughput": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL1_UL_Throughput_Content_Versions", "1", "8", "VAR", ""]}, "Name": "NL1_UL_Throughput"}, "NL1_UL_Throughput_Content_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL1_UL_Throughput_Content_V1", ""], "1": ["2", "NL1_UL_Throughput_Content_V2", ""], "2": ["3", "NL1_UL_Throughput_Content_V3", ""], "3": ["4", "NL1_UL_Throughput_Content_V4", ""], "4": ["5", "NL1_UL_Throughput_Content_V5", ""]}, "Name": "NL1_UL_Throughput_Content_Versions"}, "NL1_UL_Throughput_Content_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["UL BLER", "UINT32", "1", "17", "7", "The uplink BLER within 1000ms, range[0, 100]"], "4": ["UL iBLER", "UINT32", "1", "24", "7", "The uplink iBLER within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with\ninitial transmission errors to all initial transmission data blocks."], "5": ["UL rBLER", "UINT32", "1", "31", "7", "The uplink rBLER within 1000ms, range[0, 100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with\ntransmission errors after initial transmissions and retransmissions\nto all initial transmission data block."], "6": ["Reserved", "UINT32", "1", "38", "18", ""], "7": ["UL throughput", "UINT32", "1", "56", "32", "Uplink throughput(KB/sec)"]}, "Name": "NL1_UL_Throughput_Content_V1"}, "NL1_UL_Throughput_Content_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["UL BLER", "UINT32", "1", "17", "7", "The uplink BLER within 1000ms, range[0, 100]"], "4": ["UL iBLER", "UINT32", "1", "24", "7", "The uplink iBLER within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with\ninitial transmission errors to all initial transmission data blocks."], "5": ["UL rBLER", "UINT32", "1", "31", "7", "The uplink rBLER within 1000ms, range[0, 100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with\ntransmission errors after initial transmissions and retransmissions\nto all initial transmission data block."], "6": ["UL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "11", ""], "8": ["UL throughput", "UINT32", "1", "56", "32", "Uplink throughput(KB/sec)"]}, "Name": "NL1_UL_Throughput_Content_V2"}, "NL1_UL_Throughput_Content_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["UL BLER", "UINT32", "1", "17", "7", "The uplink BLER within 1000ms, range[0, 100]"], "4": ["UL iBLER", "UINT32", "1", "24", "7", "The uplink iBLER within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with\ninitial transmission errors to all initial transmission data blocks."], "5": ["UL rBLER", "UINT32", "1", "31", "7", "The uplink rBLER within 1000ms, range[0, 100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with\ntransmission errors after initial transmissions and retransmissions\nto all initial transmission data block."], "6": ["UL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "11", ""], "8": ["UL throughput", "UINT32", "1", "56", "32", "Uplink throughput(KB/sec)"], "9": ["UL TB Size", "UINT32", "1", "88", "32", "Average UL TBS within 1000ms. Unit: bytes"]}, "Name": "NL1_UL_Throughput_Content_V3"}, "NL1_UL_Throughput_Content_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["UL BLER", "UINT32", "1", "17", "7", "The uplink BLER within 1000ms, range[0, 100]"], "4": ["UL iBLER", "UINT32", "1", "24", "7", "The uplink iBLER within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with\ninitial transmission errors to all initial transmission data blocks."], "5": ["UL rBLER", "UINT32", "1", "31", "7", "The uplink rBLER within 1000ms, range[0, 100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with\ntransmission errors after initial transmissions and retransmissions\nto all initial transmission data block."], "6": ["UL PRB Utilization", "UINT32", "1", "38", "7", "Range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "11", ""], "8": ["UL throughput", "UINT32", "1", "56", "32", "Uplink throughput(KB/sec)"], "9": ["Peak throughput", "UINT32", "1", "88", "32", "Peak throughput within 10 seconds(KB/sec)"], "10": ["UL TB Size", "UINT32", "1", "120", "32", "Average UL TBS within 1000ms. Unit: bytes"], "11": ["Total UL Assignment num", "UINT32", "1", "152", "16", "Total Uplink Assignment number"], "12": ["Reserved", "UINT32", "1", "168", "15", ""], "13": ["UL Slot BLER valid", "UINT32", "1", "183", "1", "0:No abnormal,\n1:Match trigger criteria, parameters in UL Slot BLER Record are valid."], "14": ["UL Slot BLER Record", "NL1_UL_Slot_BLER_V1", "8", "184", "256", ""]}, "Name": "NL1_UL_Throughput_Content_V4"}, "NL1_UL_Throughput_Content_V5": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"UL Slot BLER Record": "Number of UL Slot"}, "Name": "NL1_UL_Throughput_Content_V5", "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "This is the SFN based on reporting time of this record, range[0,1023]"], "1": ["Subframe", "UINT32", "1", "10", "4", "This is the SF based on reporting time of this record, range[0,9]"], "2": ["Carrier Index", "UINT32", "1", "14", "3", "Indicates whether this metric is reporting on PCC or SCC.\n0: Pcell, 1~7: Scell Index"], "3": ["UL BLER", "UINT32", "1", "17", "7", "The uplink BLER within 1000ms, range[0, 100]"], "4": ["UL iBLER", "UINT32", "1", "24", "7", "The uplink iBLER within 1000ms, range[0, 100]\niBLER: Initial Block Error Rate. The ratio of data blocks with\ninitial transmission errors to all initial transmission data blocks."], "5": ["UL rBLER", "UINT32", "1", "31", "7", "The uplink rBLER within 1000ms, range[0, 100]\nrBLER: Residual Block Error Rate. The ratio of data blocks with\ntransmission errors after initial transmissions and retransmissions\nto all initial transmission data block."], "6": ["UL PRB Utilization", "UINT32", "1", "38", "7", "range [0,100]."], "7": ["Reserved", "UINT32", "1", "45", "4", ""], "8": ["Number of UL Slot", "UINT32", "1", "49", "7", "range[0, 80]. Number of UL Slot BLER Record"], "9": ["UL throughput", "UINT32", "1", "56", "32", "Uplink throughput(KB/sec)"], "10": ["Peak throughput", "UINT32", "1", "88", "32", "Peak throughput within 10 seconds(KB/sec)"], "11": ["UL TB Size", "UINT32", "1", "120", "32", "Average UL TBS within 1000ms. Unit: bytes"], "12": ["Total UL Assignment num", "UINT32", "1", "152", "16", "Total Uplink Assignment number"], "13": ["Reserved", "UINT32", "1", "168", "15", ""], "14": ["UL Slot BLER valid", "UINT32", "1", "183", "1", "0:No abnormal,\n1:Match trigger criteria, parameters in UL Slot BLER Record are valid."], "15": ["UL Slot BLER Record", "NL1_UL_Slot_BLER_V1", "N", "184", "VAR", "N := Number of UL Slot"]}}, "NL1_UL_Slot_BLER_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["UL Slot BLER", "UINT32", "1", "0", "7", "UL BLER per slot in 1000ms,Range [0, 100]."], "1": ["Reserved", "UINT32", "1", "7", "25", ""]}, "Name": "NL1_UL_Slot_BLER_V1"}}},
+ Public JSON end */
+// Checksum : [43d09013ae8a5127cb8c093e76331712]
diff --git a/mcu/interface/service/icd/nl2/NL2_MAC_DL_Transport_Block.h b/mcu/interface/service/icd/nl2/NL2_MAC_DL_Transport_Block.h
new file mode 100644
index 0000000..b947796
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_MAC_DL_Transport_Block.h
@@ -0,0 +1,75 @@
+// ICD Header Format v3
+// Name : NL2_MAC_DL_Transport_Block
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x9083
+// Version : V1.3
+
+#ifndef _NL2_MAC_DL_TRANSPORT_BLOCK_H
+#define _NL2_MAC_DL_TRANSPORT_BLOCK_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_DL_TRANSPORT_BLOCK 0x9083
+
+#define ICD_NL2_NL2_MAC_DL_TRANSPORT_BLOCK_INFO_V1 1
+
+#define MAX_ICD_NL2_MAC_DL_TRANSPORT_BLOCK_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL2_MAC_DL_TRANSPORT_BLOCK_STRUCT_V1_MAX_SIZE 964
+
+typedef struct {
+ kal_uint32 sfn:10; // System Frame Number
+ kal_uint32 subframe:4; // Subframe Number
+ kal_uint32 rnti_type:4; // 0: C-RNTI
+ // 1: SP-CSI-RNTI
+ // 2: P-RNTI
+ // 3: RA-RNTI
+ // 4: TC-RNTI
+ // 5: SI-RNTI
+ // 6: TPC-PUSCH-RNTI
+ // 7: TPC-PUCCH-RNTI
+ // 8: TPC-SRS-RNTI
+ // 9: CS-RNTI
+ // 10: INT-RNTI
+ // 11: SFI-RNTI
+ kal_uint32 harq_id:4; // HARQ ID
+ kal_uint32 transport_channel:3; // 1: BCH
+ // 2: DL-SCH
+ // 3: PCH
+ // 4: UL-SCH
+ // 5: RACH
+ kal_uint32 reserved:7;
+ kal_uint32 num_padding_bytes; // Padding size
+ kal_uint32 tb; // Total transport block size assigned to the UE for data reception on the DL
+ kal_uint32 num_rlc_pdus:16; // Number of RLC PDUs
+ kal_uint32 num_mac_ces:8; // Number of MAC CEs
+ kal_uint32 reserved_1:2;
+ kal_uint32 mac_ce_data_len:6; // The length of MAC CE raw data, max is 32
+ kal_uint8 mac_ce_data[32]; // MAC CE data
+} nl2_mac_dl_transport_block_record_v1;
+
+typedef nl2_mac_dl_transport_block_record_v1 nl2_mac_dl_transport_block_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 mac_release:6; // 3GPP release number (e.g. 15)
+ kal_uint32 mac_major_version:6; // Major version number
+ kal_uint32 mac_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ nl2_mac_dl_transport_block_record dl_tb_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl2_mac_dl_transport_block_struct_v1;
+
+typedef icd_nl2_mac_dl_transport_block_struct_v1 icd_nl2_mac_dl_transport_block_struct;
+
+
+#endif /* _NL2_MAC_DL_TRANSPORT_BLOCK_H */
+
+
+/* Public JSON start
+"NL2_MAC_DL_Transport_Block": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9083", "Name": "NL2_MAC_DL_Transport_Block", "Type": "RECORD", "Desc": "The log is generated once every 50ms or 20 records, whichever occurs first.\n"}, "table": {"NL2_MAC_DL_Transport_Block": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_MAC_DL_Transport_Block_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_DL_Transport_Block"}, "NL2_MAC_DL_Transport_Block_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_DL_Transport_Block_Info_V1", ""], "1": ["2", "NL2_MAC_DL_Transport_Block_Info_V2", ""]}, "Name": "NL2_MAC_DL_Transport_Block_Versions"}, "NL2_MAC_DL_Transport_Block_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DL TB Records": "Number of Records"}, "Name": "NL2_MAC_DL_Transport_Block_Info_V1", "Data": {"0": ["MAC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 15)"], "1": ["MAC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["MAC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["DL TB Records", "NL2_MAC_DL_Transport_Block_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_MAC_DL_Transport_Block_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"DL TB Records": "Number of Records"}, "Name": "NL2_MAC_DL_Transport_Block_Info_V2", "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["MAC Release", "UINT32", "1", "1", "6", "3GPP release number (e.g. 15)"], "2": ["MAC Major Version", "UINT32", "1", "7", "6", "Major version number"], "3": ["MAC Minor Version", "UINT32", "1", "13", "4", "Minor version number"], "4": ["Number of Records", "UINT32", "1", "17", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "22", "2", ""], "6": ["DL TB Records", "NL2_MAC_DL_Transport_Block_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_MAC_DL_Transport_Block_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System Frame Number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe Number"], "2": ["RNTI Type", "UINT32", "1", "14", "4", "0: C-RNTI\n1: SP-CSI-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI\n8: TPC-SRS-RNTI\n9: CS-RNTI\n10: INT-RNTI\n11: SFI-RNTI"], "3": ["Harq ID", "UINT32", "1", "18", "4", "HARQ ID"], "4": ["Transport Channel", "UINT32", "1", "22", "3", "1: BCH\n2: DL-SCH\n3: PCH\n4: UL-SCH\n5: RACH"], "5": ["Reserved", "UINT32", "1", "25", "7", ""], "6": ["Num Padding Bytes", "UINT32", "1", "32", "32", "Padding size"], "7": ["TB", "UINT32", "1", "64", "32", "Total transport block size assigned to the UE for data reception on the DL"], "8": ["Num RLC PDUs", "UINT32", "1", "96", "16", "Number of RLC PDUs"], "9": ["Num MAC CEs", "UINT32", "1", "112", "8", "Number of MAC CEs"], "10": ["Reserved", "UINT32", "1", "120", "2", ""], "11": ["MAC CE Data Len", "UINT32", "1", "122", "6", "The length of MAC CE raw data, max is 32"], "12": ["MAC CE Data", "UINT8", "32", "128", "256", "MAC CE data"]}, "Name": "NL2_MAC_DL_Transport_Block_Record_V1"}}},
+ Public JSON end */
+// Checksum : [e0bd0e9fe783b4deb9eb2b38adc31ad0]
diff --git a/mcu/interface/service/icd/nl2/NL2_MAC_RACH_Latency.h b/mcu/interface/service/icd/nl2/NL2_MAC_RACH_Latency.h
new file mode 100644
index 0000000..db07858
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_MAC_RACH_Latency.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : NL2_MAC_RACH_Latency
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x9082
+// Version : V1.3
+
+#ifndef _NL2_MAC_RACH_LATENCY_H
+#define _NL2_MAC_RACH_LATENCY_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_RACH_LATENCY 0x9082
+
+#define ICD_NL2_NL2_MAC_RACH_LATENCY_V1 1
+
+#define ICD_NL2_MAC_RACH_LATENCY_STRUCT_V1_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 msg2_latency; // Average time from preamble to receive matched RAR in milliseconds
+ kal_uint32 rach_delay; // Average time from RA triggered to RA success in milliseconds
+} icd_nl2_mac_rach_latency_struct_v1;
+
+typedef icd_nl2_mac_rach_latency_struct_v1 icd_nl2_mac_rach_latency_struct;
+
+
+#endif /* _NL2_MAC_RACH_LATENCY_H */
+
+
+/* Public JSON start
+"NL2_MAC_RACH_Latency": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9082", "Name": "NL2_MAC_RACH_Latency", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_MAC_RACH_Latency": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_MAC_RACH_Latency_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_RACH_Latency"}, "NL2_MAC_RACH_Latency_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_RACH_Latency_V1", ""], "1": ["2", "NL2_MAC_RACH_Latency_V2", ""]}, "Name": "NL2_MAC_RACH_Latency_Versions"}, "NL2_MAC_RACH_Latency_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["Msg2 Latency", "UINT32", "1", "24", "32", "Average time from preamble to receive matched RAR in milliseconds"], "2": ["Rach Delay", "UINT32", "1", "56", "32", "Average time from RA triggered to RA success in milliseconds"]}, "Name": "NL2_MAC_RACH_Latency_V1"}, "NL2_MAC_RACH_Latency_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Reserved", "UINT32", "1", "1", "23", ""], "2": ["Msg2 Latency", "UINT32", "1", "24", "32", "Average time from preamble to receive matched RAR in milliseconds"], "3": ["Rach Delay", "UINT32", "1", "56", "32", "Average time from RA triggered to RA success in milliseconds"]}, "Name": "NL2_MAC_RACH_Latency_V2"}}},
+ Public JSON end */
+// Checksum : [ea9eedb45358e39cb78ab87689f7ceb6]
diff --git a/mcu/interface/service/icd/nl2/NL2_MAC_Throughput_DL.h b/mcu/interface/service/icd/nl2/NL2_MAC_Throughput_DL.h
new file mode 100644
index 0000000..9789c42
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_MAC_Throughput_DL.h
@@ -0,0 +1,41 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Throughput_DL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x9080
+// Version : V1.3
+
+#ifndef _NL2_MAC_THROUGHPUT_DL_H
+#define _NL2_MAC_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_THROUGHPUT_DL 0x9080
+
+#define ICD_NL2_NL2_MAC_THROUGHPUT_DL_V2 2
+
+#define ICD_NL2_MAC_THROUGHPUT_DL_STRUCT_V2_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 nmac_throughput_dl; // Downlink throughput measured on
+ // the MAC layer(bps)
+ // (padding included)
+ kal_uint32 nmac_padding_throughput_dl; // Downlink padding throughput
+ // measured on the MAC layer(bps)
+ // (padding only)
+} icd_nl2_mac_throughput_dl_struct_v2;
+
+typedef icd_nl2_mac_throughput_dl_struct_v2 icd_nl2_mac_throughput_dl_struct;
+
+
+#endif /* _NL2_MAC_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"NL2_MAC_Throughput_DL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9080", "Name": "NL2_MAC_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_MAC_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_MAC_Throughput_DL_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Throughput_DL"}, "NL2_MAC_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Throughput_DL_V1", ""], "1": ["2", "NL2_MAC_Throughput_DL_V2", ""], "2": ["3", "NL2_MAC_Throughput_DL_V3", ""], "3": ["4", "NL2_MAC_Throughput_DL_V4", ""]}, "Name": "NL2_MAC_Throughput_DL_Versions"}, "NL2_MAC_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["NMAC Throughput DL", "UINT32", "1", "24", "32", "Downlink throughput measured on\nthe MAC layer(bps)"]}, "Name": "NL2_MAC_Throughput_DL_V1"}, "NL2_MAC_Throughput_DL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["NMAC Throughput DL", "UINT32", "1", "24", "32", "Downlink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "2": ["NMAC Padding Throughput DL", "UINT32", "1", "56", "32", "Downlink padding throughput\nmeasured on the MAC layer(bps)\n(padding only)"]}, "Name": "NL2_MAC_Throughput_DL_V2"}, "NL2_MAC_Throughput_DL_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["NMAC Throughput DL", "UINT32", "1", "24", "32", "Downlink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "2": ["NMAC Padding Throughput DL", "UINT32", "1", "56", "32", "Downlink padding throughput\nmeasured on the MAC layer(bps)\n(padding only)"], "3": ["MCG NMAC Throughput DL", "UINT32", "1", "88", "32", "MCG Downlink throughput measured\non the MAC layer(bps)\n(padding included)"], "4": ["MCG NMAC Padding Throughput DL", "UINT32", "1", "120", "32", "MCG Downlink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"], "5": ["SCG NMAC Throughput DL", "UINT32", "1", "152", "32", "SCG Downlink throughput measured\non the MAC layer(bps)\n(padding included)"], "6": ["SCG NMAC Padding Throughput DL", "UINT32", "1", "184", "32", "SCG Downlink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"]}, "Name": "NL2_MAC_Throughput_DL_V3"}, "NL2_MAC_Throughput_DL_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["Reserved", "UINT32", "1", "24", "32", ""], "2": ["NMAC Throughput DL", "UINT64", "1", "56", "64", "Downlink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "3": ["NMAC Padding Throughput DL", "UINT64", "1", "120", "64", "Downlink padding throughput\nmeasured on the MAC layer(bps)\n(padding only)"], "4": ["MCG NMAC Throughput DL", "UINT64", "1", "184", "64", "MCG Downlink throughput measured\non the MAC layer(bps)\n(padding included)"], "5": ["MCG NMAC Padding Throughput DL", "UINT64", "1", "248", "64", "MCG Downlink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"], "6": ["SCG NMAC Throughput DL", "UINT64", "1", "312", "64", "SCG Downlink throughput measured\non the MAC layer(bps)\n(padding included)"], "7": ["SCG NMAC Padding Throughput DL", "UINT64", "1", "376", "64", "SCG Downlink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"]}, "Name": "NL2_MAC_Throughput_DL_V4"}}},
+ Public JSON end */
+// Checksum : [0a5e3c1fd3d4e7ab8770effe5fce3103]
diff --git a/mcu/interface/service/icd/nl2/NL2_MAC_Throughput_UL.h b/mcu/interface/service/icd/nl2/NL2_MAC_Throughput_UL.h
new file mode 100644
index 0000000..c4cb83b
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_MAC_Throughput_UL.h
@@ -0,0 +1,42 @@
+// ICD Header Format v3
+// Name : NL2_MAC_Throughput_UL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x9081
+// Version : V1.3
+
+#ifndef _NL2_MAC_THROUGHPUT_UL_H
+#define _NL2_MAC_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_THROUGHPUT_UL 0x9081
+
+#define ICD_NL2_NL2_MAC_THROUGHPUT_UL_V2 2
+
+#define ICD_NL2_MAC_THROUGHPUT_UL_STRUCT_V2_MAX_SIZE 12
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 nmac_throughput_ul; // Uplink throughput measured on
+ // the MAC layer(bps)
+ // (padding included)
+ kal_uint32 nmac_padding_throughput_ul; // Uplink padding throughput
+ // measured on the MAC layer(bps)
+ // Block quote ends without a blank line; unexpected unindent.
+ // (padding only)
+} icd_nl2_mac_throughput_ul_struct_v2;
+
+typedef icd_nl2_mac_throughput_ul_struct_v2 icd_nl2_mac_throughput_ul_struct;
+
+
+#endif /* _NL2_MAC_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"NL2_MAC_Throughput_UL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9081", "Name": "NL2_MAC_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_MAC_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_MAC_Throughput_UL_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_Throughput_UL"}, "NL2_MAC_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_Throughput_UL_V1", ""], "1": ["2", "NL2_MAC_Throughput_UL_V2", ""], "2": ["3", "NL2_MAC_Throughput_UL_V3", ""]}, "Name": "NL2_MAC_Throughput_UL_Versions"}, "NL2_MAC_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["NMAC Throughput UL", "UINT32", "1", "24", "32", "Uplink throughput measured on\nthe MAC layer(bps)"]}, "Name": "NL2_MAC_Throughput_UL_V1"}, "NL2_MAC_Throughput_UL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["NMAC Throughput UL", "UINT32", "1", "24", "32", "Uplink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "2": ["NMAC Padding Throughput UL", "UINT32", "1", "56", "32", "Uplink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"]}, "Name": "NL2_MAC_Throughput_UL_V2"}, "NL2_MAC_Throughput_UL_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["NMAC Throughput UL", "UINT32", "1", "24", "32", "Uplink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "2": ["NMAC Padding Throughput UL", "UINT32", "1", "56", "32", "Uplink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"], "3": ["MCG NMAC Throughput UL", "UINT32", "1", "88", "32", "MCG Uplink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "4": ["MCG NMAC Padding Throughput UL", "UINT32", "1", "120", "32", "MCG Uplink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"], "5": ["SCG NMAC Throughput UL", "UINT32", "1", "152", "32", "SCG Uplink throughput measured on\nthe MAC layer(bps)\n(padding included)"], "6": ["SCG NMAC Padding Throughput UL", "UINT32", "1", "184", "32", "SCG Uplink padding throughput\nmeasured on the MAC layer(bps)\nBlock quote ends without a blank line; unexpected unindent.\n(padding only)"]}, "Name": "NL2_MAC_Throughput_UL_V3"}}},
+ Public JSON end */
+// Checksum : [b612cee611ead3026d3e577c5f11084d]
diff --git a/mcu/interface/service/icd/nl2/NL2_MAC_UL_TX_Statistics.h b/mcu/interface/service/icd/nl2/NL2_MAC_UL_TX_Statistics.h
new file mode 100644
index 0000000..fc86b31
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_MAC_UL_TX_Statistics.h
@@ -0,0 +1,42 @@
+// ICD Header Format v3
+// Name : NL2_MAC_UL_TX_Statistics
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x9085
+// Version : V1.3
+
+#ifndef _NL2_MAC_UL_TX_STATISTICS_H
+#define _NL2_MAC_UL_TX_STATISTICS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_UL_TX_STATISTICS 0x9085
+
+#define ICD_NL2_NL2_MAC_UL_TX_STATISTICS_V1 1
+
+#define ICD_NL2_MAC_UL_TX_STATISTICS_STRUCT_V1_MAX_SIZE 28
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 num_received_grants:12; // Number of received grants
+ kal_uint32 reserved:12;
+ kal_uint32 num_padding_bsr; // Padding BSR number
+ kal_uint32 num_normal_bsr; // Normal BSR number
+ kal_uint32 num_periodic_bsr; // Periodic BSR number
+ kal_uint32 num_cancelled_bsr; // 38.321 5.4.5 "All triggered BSRs shall be cancelled..."
+ kal_uint32 received_grant_bytes; // Total grant bytes received
+ kal_uint32 used_grant_bytes; // Total used bytes
+} icd_nl2_mac_ul_tx_statistics_struct_v1;
+
+typedef icd_nl2_mac_ul_tx_statistics_struct_v1 icd_nl2_mac_ul_tx_statistics_struct;
+
+
+#endif /* _NL2_MAC_UL_TX_STATISTICS_H */
+
+
+/* Public JSON start
+"NL2_MAC_UL_TX_Statistics": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9085", "Name": "NL2_MAC_UL_TX_Statistics", "Type": "RECORD", "Desc": "It is reported every 100ms\n"}, "table": {"NL2_MAC_UL_TX_Statistics": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_MAC_UL_TX_Statistics_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_UL_TX_Statistics"}, "NL2_MAC_UL_TX_Statistics_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_UL_TX_Statistics_V1", ""], "1": ["2", "NL2_MAC_UL_TX_Statistics_V2", ""]}, "Name": "NL2_MAC_UL_TX_Statistics_Versions"}, "NL2_MAC_UL_TX_Statistics_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num Received Grants", "UINT32", "1", "0", "12", "Number of received grants"], "1": ["Reserved", "UINT32", "1", "12", "12", ""], "2": ["Num Padding BSR", "UINT32", "1", "24", "32", "Padding BSR number"], "3": ["Num Normal BSR", "UINT32", "1", "56", "32", "Normal BSR number"], "4": ["Num Periodic BSR", "UINT32", "1", "88", "32", "Periodic BSR number"], "5": ["Num Cancelled BSR", "UINT32", "1", "120", "32", "38.321 5.4.5 \"All triggered BSRs shall be cancelled...\""], "6": ["Received Grant Bytes", "UINT32", "1", "152", "32", "Total grant bytes received"], "7": ["Used Grant Bytes", "UINT32", "1", "184", "32", "Total used bytes"]}, "Name": "NL2_MAC_UL_TX_Statistics_V1"}, "NL2_MAC_UL_TX_Statistics_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["Num Received Grants", "UINT32", "1", "1", "12", "Number of received grants"], "2": ["Reserved", "UINT32", "1", "13", "11", ""], "3": ["Num Padding BSR", "UINT32", "1", "24", "32", "Padding BSR number"], "4": ["Num Normal BSR", "UINT32", "1", "56", "32", "Normal BSR number"], "5": ["Num Periodic BSR", "UINT32", "1", "88", "32", "Periodic BSR number"], "6": ["Num Cancelled BSR", "UINT32", "1", "120", "32", "38.321 5.4.5 \"All triggered BSRs shall be cancelled...\""], "7": ["Received Grant Bytes", "UINT32", "1", "152", "32", "Total grant bytes received"], "8": ["Used Grant Bytes", "UINT32", "1", "184", "32", "Total used bytes"]}, "Name": "NL2_MAC_UL_TX_Statistics_V2"}}},
+ Public JSON end */
+// Checksum : [9b53cb2a272890f58b5a387bdd68a9d5]
diff --git a/mcu/interface/service/icd/nl2/NL2_MAC_UL_Transport_Block.h b/mcu/interface/service/icd/nl2/NL2_MAC_UL_Transport_Block.h
new file mode 100644
index 0000000..50790d7
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_MAC_UL_Transport_Block.h
@@ -0,0 +1,88 @@
+// ICD Header Format v3
+// Name : NL2_MAC_UL_Transport_Block
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x9084
+// Version : V1.3
+
+#ifndef _NL2_MAC_UL_TRANSPORT_BLOCK_H
+#define _NL2_MAC_UL_TRANSPORT_BLOCK_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_MAC_UL_TRANSPORT_BLOCK 0x9084
+
+#define ICD_NL2_NL2_MAC_UL_TRANSPORT_BLOCK_INFO_V2 2
+
+#define MAX_ICD_NL2_MAC_UL_TRANSPORT_BLOCK_STRUCT_V2_NUMBER_OF_RECORDS 20
+
+#define ICD_NL2_MAC_UL_TRANSPORT_BLOCK_STRUCT_V2_MAX_SIZE 804
+
+typedef struct {
+ kal_uint32 sfn:10; // System Frame Number
+ kal_uint32 subframe:4; // Subframe Number
+ kal_uint32 rnti_type:4; // 0: C-RNTI
+ // 1: SP-CSI-RNTI
+ // 2: P-RNTI
+ // 3: RA-RNTI
+ // 4: TC-RNTI
+ // 5: SI-RNTI
+ // 6: TPC-PUSCH-RNTI
+ // 7: TPC-PUCCH-RNTI
+ // 8: TPC-SRS-RNTI
+ // 9: CS-RNTI
+ // 10: INT-RNTI
+ // 11: SFI-RNTI
+ kal_uint32 harq_id:4; // HARQ Process ID is specified as TS 38.321
+ kal_uint32 bsr_type:3; // Values:
+ // 0: NoBsr
+ // 1: LongBsr
+ // 2: ShortBsr
+ // 3: LongTruncatedBSR
+ // 4: ShortTruncatedBSR
+ kal_uint32 bsr_trigger_cause:2; // Values:
+ // 0: Padding BSR included
+ // 1: periodicBSR-Timer expires
+ // 2: Regular BSR triggered because of new UL data available for a logical channel
+ // 3: Regular BSR triggered because of retxBSR-Timer expires
+ kal_uint32 reserved:5;
+ kal_uint32 ul_grant:16; // Uplink grant size in bytes
+ kal_uint32 num_rlc_pdus:16; // Number of RLC PDUs
+ kal_uint32 num_padding_bytes:16; // Padding size
+ kal_uint32 phr_type:3; // Values:
+ // 0: NoPHR
+ // 1: Single entry phr
+ // 2: Multiple entry phr(one octet Ci)
+ // 3: Multiple entry phr(four octets Ci)
+ // 4~7: Reserved for future.
+ kal_uint32 phr_mac_ce_len:8; // Length of PHR MAC CE
+ kal_uint32 reserved_1:5;
+ kal_uint8 bsr_mac_ce[9]; // BSR MAC CE value, if no Buffer Status is Reported, this field will be set to 0
+ kal_uint8 phr_mac_ce[16]; // PHR MAC CE value, if no PHR is Reported, this field will be set to 0
+ kal_uint8 reserved_2[3];
+} nl2_mac_ul_transport_block_record_v2;
+
+typedef nl2_mac_ul_transport_block_record_v2 nl2_mac_ul_transport_block_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 mac_release:6; // 3GPP release number (e.g. 15)
+ kal_uint32 mac_major_version:6; // Major version number
+ kal_uint32 mac_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ nl2_mac_ul_transport_block_record ul_tb_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl2_mac_ul_transport_block_struct_v2;
+
+typedef icd_nl2_mac_ul_transport_block_struct_v2 icd_nl2_mac_ul_transport_block_struct;
+
+
+#endif /* _NL2_MAC_UL_TRANSPORT_BLOCK_H */
+
+
+/* Public JSON start
+"NL2_MAC_UL_Transport_Block": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x9084", "Name": "NL2_MAC_UL_Transport_Block", "Type": "RECORD", "Desc": "The log is generated once every 50ms or 20 records, whichever occurs first.\n"}, "table": {"NL2_MAC_UL_Transport_Block": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_MAC_UL_Transport_Block_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_MAC_UL_Transport_Block"}, "NL2_MAC_UL_Transport_Block_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_MAC_UL_Transport_Block_Info_V1", ""], "1": ["2", "NL2_MAC_UL_Transport_Block_Info_V2", ""], "2": ["3", "NL2_MAC_UL_Transport_Block_Info_V3", ""], "3": ["4", "NL2_MAC_UL_Transport_Block_Info_V4", ""]}, "Name": "NL2_MAC_UL_Transport_Block_Versions"}, "NL2_MAC_UL_Transport_Block_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"UL TB Records": "Number of Records"}, "Name": "NL2_MAC_UL_Transport_Block_Info_V1", "Data": {"0": ["MAC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 15)"], "1": ["MAC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["MAC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["UL TB Records", "NL2_MAC_UL_Transport_Block_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_MAC_UL_Transport_Block_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System Frame Number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe Number"], "2": ["RNTI Type", "UINT32", "1", "14", "4", "0: C-RNTI\n1: SP-CSI-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI\n8: TPC-SRS-RNTI\n9: CS-RNTI\n10: INT-RNTI\n11: SFI-RNTI"], "3": ["Harq ID", "UINT32", "1", "18", "4", "HARQ Process ID is specified as TS 38.321"], "4": ["BSR Type", "UINT32", "1", "22", "3", "Values:\n0: NoBsr\n1: LongBsr\n2: ShortBsr\n3: LongTruncatedBSR\n4: ShortTruncatedBSR"], "5": ["BSR Trigger cause", "UINT32", "1", "25", "2", "Values:\n0: Padding BSR included\n1: periodicBSR-Timer expires\n2: Regular BSR triggered because of new UL data available for a logical channel\n3: Regular BSR triggered because of retxBSR-Timer expires"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["UL Grant", "UINT32", "1", "32", "16", "Uplink grant size in bytes"], "8": ["Num RLC PDUs", "UINT32", "1", "48", "16", "Number of RLC PDUs"], "9": ["Num Padding Bytes", "UINT32", "1", "64", "16", "Padding size"], "10": ["Reserved", "UINT32", "1", "80", "16", ""], "11": ["BSR MAC CE", "UINT8", "9", "96", "72", "BSR MAC CE value, if no Buffer Status is Reported, this field will be set to 0"], "12": ["Reserved", "UINT8", "3", "168", "24", ""]}, "Name": "NL2_MAC_UL_Transport_Block_Record_V1"}, "NL2_MAC_UL_Transport_Block_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"UL TB Records": "Number of Records"}, "Name": "NL2_MAC_UL_Transport_Block_Info_V2", "Data": {"0": ["MAC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 15)"], "1": ["MAC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["MAC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["UL TB Records", "NL2_MAC_UL_Transport_Block_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_MAC_UL_Transport_Block_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"UL TB Records": "Number of Records"}, "Name": "NL2_MAC_UL_Transport_Block_Info_V3", "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["MAC Release", "UINT32", "1", "1", "6", "3GPP release number (e.g. 15)"], "2": ["MAC Major Version", "UINT32", "1", "7", "6", "Major version number"], "3": ["MAC Minor Version", "UINT32", "1", "13", "4", "Minor version number"], "4": ["Number of Records", "UINT32", "1", "17", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "22", "2", ""], "6": ["UL TB Records", "NL2_MAC_UL_Transport_Block_Record_V2", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_MAC_UL_Transport_Block_Record_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System Frame Number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe Number"], "2": ["RNTI Type", "UINT32", "1", "14", "4", "0: C-RNTI\n1: SP-CSI-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI\n8: TPC-SRS-RNTI\n9: CS-RNTI\n10: INT-RNTI\n11: SFI-RNTI"], "3": ["Harq ID", "UINT32", "1", "18", "4", "HARQ Process ID is specified as TS 38.321"], "4": ["BSR Type", "UINT32", "1", "22", "3", "Values:\n0: NoBsr\n1: LongBsr\n2: ShortBsr\n3: LongTruncatedBSR\n4: ShortTruncatedBSR"], "5": ["BSR Trigger cause", "UINT32", "1", "25", "2", "Values:\n0: Padding BSR included\n1: periodicBSR-Timer expires\n2: Regular BSR triggered because of new UL data available for a logical channel\n3: Regular BSR triggered because of retxBSR-Timer expires"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["UL Grant", "UINT32", "1", "32", "16", "Uplink grant size in bytes"], "8": ["Num RLC PDUs", "UINT32", "1", "48", "16", "Number of RLC PDUs"], "9": ["Num Padding Bytes", "UINT32", "1", "64", "16", "Padding size"], "10": ["PHR Type", "UINT32", "1", "80", "3", "Values:\n0: NoPHR\n1: Single entry phr\n2: Multiple entry phr(one octet Ci)\n3: Multiple entry phr(four octets Ci)\n4~7: Reserved for future."], "11": ["PHR MAC CE Len", "UINT32", "1", "83", "8", "Length of PHR MAC CE"], "12": ["Reserved", "UINT32", "1", "91", "5", ""], "13": ["BSR MAC CE", "UINT8", "9", "96", "72", "BSR MAC CE value, if no Buffer Status is Reported, this field will be set to 0"], "14": ["PHR MAC CE", "UINT8", "16", "168", "128", "PHR MAC CE value, if no PHR is Reported, this field will be set to 0"], "15": ["Reserved", "UINT8", "3", "296", "24", ""]}, "Name": "NL2_MAC_UL_Transport_Block_Record_V2"}, "NL2_MAC_UL_Transport_Block_Info_V4": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"UL TB Records": "Number of Records"}, "Name": "NL2_MAC_UL_Transport_Block_Info_V4", "Data": {"0": ["Cell group ID", "UINT32", "1", "0", "1", "0: MCG, 1:SCG"], "1": ["MAC Release", "UINT32", "1", "1", "6", "3GPP release number (e.g. 15)"], "2": ["MAC Major Version", "UINT32", "1", "7", "6", "Major version number"], "3": ["MAC Minor Version", "UINT32", "1", "13", "4", "Minor version number"], "4": ["Number of Records", "UINT32", "1", "17", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "22", "2", ""], "6": ["UL TB Records", "NL2_MAC_UL_Transport_Block_Record_V3", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_MAC_UL_Transport_Block_Record_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SFN", "UINT32", "1", "0", "10", "System Frame Number"], "1": ["Subframe", "UINT32", "1", "10", "4", "Subframe Number"], "2": ["RNTI Type", "UINT32", "1", "14", "4", "0: C-RNTI\n1: SP-CSI-RNTI\n2: P-RNTI\n3: RA-RNTI\n4: TC-RNTI\n5: SI-RNTI\n6: TPC-PUSCH-RNTI\n7: TPC-PUCCH-RNTI\n8: TPC-SRS-RNTI\n9: CS-RNTI\n10: INT-RNTI\n11: SFI-RNTI"], "3": ["Harq ID", "UINT32", "1", "18", "4", "HARQ Process ID is specified as TS 38.321"], "4": ["BSR Type", "UINT32", "1", "22", "3", "Values:\n0: NoBsr\n1: LongBsr\n2: ShortBsr\n3: LongTruncatedBSR\n4: ShortTruncatedBSR"], "5": ["BSR Trigger cause", "UINT32", "1", "25", "2", "Values:\n0: Padding BSR included\n1: periodicBSR-Timer expires\n2: Regular BSR triggered because of new UL data available for a logical channel\n3: Regular BSR triggered because of retxBSR-Timer expires"], "6": ["Reserved", "UINT32", "1", "27", "5", ""], "7": ["UL Grant", "UINT32", "1", "32", "16", "Uplink grant size in bytes"], "8": ["Num RLC PDUs", "UINT32", "1", "48", "16", "Number of RLC PDUs"], "9": ["Num Padding Bytes", "UINT32", "1", "64", "16", "Padding size"], "10": ["PHR Type", "UINT32", "1", "80", "3", "Values:\n0: NoPHR\n1: Single entry phr\n2: Multiple entry phr(one octet Ci)\n3: Multiple entry phr(four octets Ci)\n4~7: Reserved for future."], "11": ["PHR MAC CE Len", "UINT32", "1", "83", "8", "Length of PHR MAC CE"], "12": ["Reserved", "UINT32", "1", "91", "5", ""], "13": ["BSR MAC CE", "UINT8", "9", "96", "72", "BSR MAC CE value, if no Buffer Status is Reported, this field will be set to 0"], "14": ["PHR MAC CE", "UINT8", "22", "168", "176", "PHR MAC CE value, if no PHR is Reported, this field will be set to 0"], "15": ["Reserved", "UINT8", "1", "344", "8", ""]}, "Name": "NL2_MAC_UL_Transport_Block_Record_V3"}}},
+ Public JSON end */
+// Checksum : [7d623c5b7c7feaefce991c412a7b1e82]
diff --git a/mcu/interface/service/icd/nl2/NL2_PDCP_DL_Stats.h b/mcu/interface/service/icd/nl2/NL2_PDCP_DL_Stats.h
new file mode 100644
index 0000000..94d557a
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_PDCP_DL_Stats.h
@@ -0,0 +1,79 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_DL_Stats
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90D6
+// Version : V1.3
+
+#ifndef _NL2_PDCP_DL_STATS_H
+#define _NL2_PDCP_DL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_DL_STATS 0x90D6
+
+#define ICD_NL2_NL2_PDCP_DL_STATS_INFO_V1 1
+
+#define MAX_ICD_NL2_PDCP_DL_STATS_STRUCT_V1_NUMBER_OF_RBS 37
+
+#define ICD_NL2_PDCP_DL_STATS_STRUCT_V1_MAX_SIZE 5928
+
+typedef struct {
+ kal_uint32 rb_cfg_idx; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint32 rx_data_pdu_bytes; // Total bytes of PDCP Data PDUs received
+ kal_uint32 rx_ctrl_pdu_bytes; // Total bytes of PDCP Control PDUs received
+ kal_uint32 rohc_fail_num; // Total number of PDCP PDUs ROHC decompression failed
+ kal_uint32 integrity_fail_num; // Total number of PDCP PDUs integrity check failed
+ kal_uint32 miss_sdu_to_ul; // Total number of PDCP SDUs missing when delivered to upper layers
+ kal_uint32 miss_sdu_from_ll; // Total number of PDCP PDUs missing from lower layer (RLC)
+ kal_uint32 rx_dup_bytes; // Total bytes of duplicated PDCP PDUs received
+ kal_uint32 rx_invalid_bytes; // Total bytes of invalid PDCP PDUs received
+ kal_uint32 num_reest; // Total number of reestablishment
+ kal_uint32 rx_data_pdu_num; // Total number of PDCP Data PDUs received
+ kal_uint32 rx_ctrl_pdu_num; // Total number of PDCP Control PDUs received
+ kal_uint32 rx_status_pdu_num; // Total number of PDCP Status PDUs received
+ kal_uint32 rx_dup_num; // Total number of duplicated PDCP PDUs received
+ kal_uint32 rx_oow_num; // Total number of PDCP PDUs received that is out of reordering window
+ kal_uint32 rx_oow_bytes; // Total bytes of PDCP PDUs received that is out of reordering window
+ kal_uint32 rx_invalid_num; // Total number of invalid PDCP PDUs received
+ kal_uint32 rx_data_pdu_num_reest; // Total number of PDCP Data PDUs received since last reestablishment
+ kal_uint64 rx_data_pdu_bytes_reest; // Total bytes of PDCP Data PDUs received since last reestablishment
+ kal_uint64 rx_ctrl_pdu_bytes_reest; // Total bytes of PDCP Control PDUs received since last reestablishment
+ kal_uint32 rx_ctrl_pdu_num_reest; // Total number of PDCP Control PDUs received since last reestablishment
+ kal_uint32 rx_status_pdu_num_reest; // Total number of PDCP Status PDUs received since last reestablishment
+ kal_uint32 rohc_fail_num_reest; // Total number of PDCP Data PDUs ROHC decompression failed since last reestablishment
+ kal_uint32 integrity_fail_reest; // Total number of PDCP PDUs integrity check failed since last reestablishment
+ kal_uint32 miss_sdu_to_ul_reest; // Total number of PDCP SDUs missing when delivered to upper layers since last reestablishment
+ kal_uint32 miss_sdu_from_ll_reest; // Total number of PDCP PDUs missing from lower layer (RLC) since last reestablishment
+ kal_uint32 rx_dup_num_reest; // Total number of duplicated PDCP PDUs received since last reestablishment
+ kal_uint32 reserved;
+ kal_uint64 rx_dup_bytes_reest; // Total bytes of duplicated PDCP PDUs received since last reestablishment
+ kal_uint64 rx_oow_bytes_reest; // Total bytes of PDCP PDUs received that is out of reordering window since last reestablishment
+ kal_uint32 rx_oow_num_reest; // Total number of PDCP PDUs received that is out of reordering window since last reestablishment
+ kal_uint32 rx_invalid_num_reest; // Total number of invalid PDCP PDUs received since last reestablishment
+ kal_uint64 rx_invalid_bytes_reest; // Total bytes of invalid PDCP PDUs received since last reestablishment
+ kal_uint32 min_packet_byte; // Minimum bytes of received packet during this time
+ kal_uint32 max_packet_byte; // Maximum bytes of received packet during this time
+} nl2_pdcp_dl_stats_v1;
+
+typedef nl2_pdcp_dl_stats_v1 nl2_pdcp_dl_stats;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 number_of_rbs; // range[0, 37]
+ kal_uint8 reserved[6];
+ nl2_pdcp_dl_stats rb_dl_statistics[MAX_ICD_NL2_PDCP_DL_STATS_STRUCT_V1_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_nl2_pdcp_dl_stats_struct_v1;
+
+typedef icd_nl2_pdcp_dl_stats_struct_v1 icd_nl2_pdcp_dl_stats_struct;
+
+
+#endif /* _NL2_PDCP_DL_STATS_H */
+
+
+/* Public JSON start
+"NL2_PDCP_DL_Stats": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90D6", "Name": "NL2_PDCP_DL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_PDCP_DL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_PDCP_DL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_DL_Stats"}, "NL2_PDCP_DL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_DL_Stats_Info_V1", ""]}, "Name": "NL2_PDCP_DL_Stats_Versions"}, "NL2_PDCP_DL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB DL Statistics": "Number of RBs"}, "Name": "NL2_PDCP_DL_Stats_Info_V1", "Data": {"0": ["Number of RBs", "UINT8", "1", "0", "8", "range[0, 37]"], "1": ["Reserved", "UINT8", "6", "8", "48", ""], "2": ["RB DL Statistics", "NL2_PDCP_DL_Stats_V1", "N", "56", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_DL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "32", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Rx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs received"], "2": ["Rx Ctrl PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs received"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC decompression failed"], "4": ["Integrity Fail Num", "UINT32", "1", "128", "32", "Total number of PDCP PDUs integrity check failed"], "5": ["Miss SDU To UL", "UINT32", "1", "160", "32", "Total number of PDCP SDUs missing when delivered to upper layers"], "6": ["Miss SDU From LL", "UINT32", "1", "192", "32", "Total number of PDCP PDUs missing from lower layer (RLC)"], "7": ["Rx Dup Bytes", "UINT32", "1", "224", "32", "Total bytes of duplicated PDCP PDUs received"], "8": ["Rx Invalid Bytes", "UINT32", "1", "256", "32", "Total bytes of invalid PDCP PDUs received"], "9": ["Num Reest", "UINT32", "1", "288", "32", "Total number of reestablishment"], "10": ["Rx Data PDU Num", "UINT32", "1", "320", "32", "Total number of PDCP Data PDUs received"], "11": ["Rx Ctrl PDU Num", "UINT32", "1", "352", "32", "Total number of PDCP Control PDUs received"], "12": ["Rx Status PDU Num", "UINT32", "1", "384", "32", "Total number of PDCP Status PDUs received"], "13": ["Rx Dup Num", "UINT32", "1", "416", "32", "Total number of duplicated PDCP PDUs received"], "14": ["Rx OOW Num", "UINT32", "1", "448", "32", "Total number of PDCP PDUs received that is out of reordering window"], "15": ["Rx OOW Bytes", "UINT32", "1", "480", "32", "Total bytes of PDCP PDUs received that is out of reordering window"], "16": ["Rx Invalid Num", "UINT32", "1", "512", "32", "Total number of invalid PDCP PDUs received"], "17": ["Rx Data PDU Num Reest", "UINT32", "1", "544", "32", "Total number of PDCP Data PDUs received since last reestablishment"], "18": ["Rx Data PDU Bytes Reest", "UINT64", "1", "576", "64", "Total bytes of PDCP Data PDUs received since last reestablishment"], "19": ["Rx Ctrl PDU Bytes Reest", "UINT64", "1", "640", "64", "Total bytes of PDCP Control PDUs received since last reestablishment"], "20": ["Rx Ctrl PDU Num Reest", "UINT32", "1", "704", "32", "Total number of PDCP Control PDUs received since last reestablishment"], "21": ["Rx Status PDU Num Reest", "UINT32", "1", "736", "32", "Total number of PDCP Status PDUs received since last reestablishment"], "22": ["Rohc Fail Num Reest", "UINT32", "1", "768", "32", "Total number of PDCP Data PDUs ROHC decompression failed since last reestablishment"], "23": ["Integrity Fail Reest", "UINT32", "1", "800", "32", "Total number of PDCP PDUs integrity check failed since last reestablishment"], "24": ["Miss SDU To UL Reest", "UINT32", "1", "832", "32", "Total number of PDCP SDUs missing when delivered to upper layers since last reestablishment"], "25": ["Miss SDU From LL Reest", "UINT32", "1", "864", "32", "Total number of PDCP PDUs missing from lower layer (RLC) since last reestablishment"], "26": ["Rx Dup Num Reest", "UINT32", "1", "896", "32", "Total number of duplicated PDCP PDUs received since last reestablishment"], "27": ["Reserved", "UINT32", "1", "928", "32", ""], "28": ["Rx Dup Bytes Reest", "UINT64", "1", "960", "64", "Total bytes of duplicated PDCP PDUs received since last reestablishment"], "29": ["Rx OOW Bytes Reest", "UINT64", "1", "1024", "64", "Total bytes of PDCP PDUs received that is out of reordering window since last reestablishment"], "30": ["Rx OOW Num Reest", "UINT32", "1", "1088", "32", "Total number of PDCP PDUs received that is out of reordering window since last reestablishment"], "31": ["Rx Invalid Num Reest", "UINT32", "1", "1120", "32", "Total number of invalid PDCP PDUs received since last reestablishment"], "32": ["Rx Invalid Bytes Reest", "UINT64", "1", "1152", "64", "Total bytes of invalid PDCP PDUs received since last reestablishment"], "33": ["Min Packet Byte", "UINT32", "1", "1216", "32", "Minimum bytes of received packet during this time"], "34": ["Max Packet Byte", "UINT32", "1", "1248", "32", "Maximum bytes of received packet during this time"]}, "Name": "NL2_PDCP_DL_Stats_V1"}}},
+ Public JSON end */
+// Checksum : [566cdc84802a5a584367c1aa0cc7bf26]
diff --git a/mcu/interface/service/icd/nl2/NL2_PDCP_Data_Pdu_Info.h b/mcu/interface/service/icd/nl2/NL2_PDCP_Data_Pdu_Info.h
new file mode 100644
index 0000000..c1e054f
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_PDCP_Data_Pdu_Info.h
@@ -0,0 +1,57 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Data_Pdu_Info
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90D9
+// Version : V1.3
+
+#ifndef _NL2_PDCP_DATA_PDU_INFO_H
+#define _NL2_PDCP_DATA_PDU_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_DATA_PDU_INFO 0x90D9
+
+#define ICD_NL2_NL2_PDCP_DATA_PDU_INFO_V1 1
+
+#define MAX_ICD_NL2_PDCP_DATA_PDU_INFO_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL2_PDCP_DATA_PDU_INFO_STRUCT_V1_MAX_SIZE 244
+
+typedef struct {
+ kal_uint32 direction:1; // Value:
+ // 0: Uplink
+ // 1: DownLink
+ kal_uint32 rb_cfg_idx:8; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint32 rlc_entry:2; // The entry of PDCP PDU is from LTE or NR leg
+ // Value:
+ // 0: LTE
+ // 1: NR
+ // 2: NR+LTE
+ kal_uint32 reserved:21;
+ kal_uint32 sn_start; // The start of PDCP SN in this records
+ kal_uint16 pdu_num; // Number of in-sequence PDU from SN_Start
+ kal_uint16 reserved_1;
+} pdcp_data_pdu_info_v1;
+
+typedef pdcp_data_pdu_info_v1 pdcp_data_pdu_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 number_of_records; // range[0, 20]
+ kal_uint8 reserved[2];
+ pdcp_data_pdu_info pdu_info_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl2_pdcp_data_pdu_info_struct_v1;
+
+typedef icd_nl2_pdcp_data_pdu_info_struct_v1 icd_nl2_pdcp_data_pdu_info_struct;
+
+
+#endif /* _NL2_PDCP_DATA_PDU_INFO_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Data_Pdu_Info": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90D9", "Name": "NL2_PDCP_Data_Pdu_Info", "Type": "RECORD", "Desc": "The log is generated once every 500ms or 20 records, whichever occurs first.\n"}, "table": {"NL2_PDCP_Data_Pdu_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NL2_PDCP_Data_Pdu_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_Data_Pdu_Info"}, "NL2_PDCP_Data_Pdu_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Data_Pdu_Info_V1", ""]}, "Name": "NL2_PDCP_Data_Pdu_Info_Versions"}, "NL2_PDCP_Data_Pdu_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"PDU Info Records": "Number of Records"}, "Name": "NL2_PDCP_Data_Pdu_Info_V1", "Data": {"0": ["Number of Records", "UINT8", "1", "0", "8", "range[0, 20]"], "1": ["Reserved", "UINT8", "2", "8", "16", ""], "2": ["PDU Info Records", "PDCP_Data_PDU_Info_V1", "N", "24", "VAR", "N := Number of Records"]}}, "PDCP_Data_PDU_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Direction", "UINT32", "1", "0", "1", "Value:\n0: Uplink\n1: DownLink"], "1": ["RB Cfg Idx", "UINT32", "1", "1", "8", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "2": ["RLC_Entry", "UINT32", "1", "9", "2", "The entry of PDCP PDU is from LTE or NR leg\nValue:\n0: LTE\n1: NR\n2: NR+LTE"], "3": ["Reserved", "UINT32", "1", "11", "21", ""], "4": ["SN_Start", "UINT32", "1", "32", "32", "The start of PDCP SN in this records"], "5": ["Pdu_Num", "UINT16", "1", "64", "16", "Number of in-sequence PDU from SN_Start"], "6": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "PDCP_Data_PDU_Info_V1"}}},
+ Public JSON end */
+// Checksum : [9fbc67cff108f0556f884d425c19af66]
diff --git a/mcu/interface/service/icd/nl2/NL2_PDCP_OTA_Message.h b/mcu/interface/service/icd/nl2/NL2_PDCP_OTA_Message.h
new file mode 100644
index 0000000..24db4c5
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_PDCP_OTA_Message.h
@@ -0,0 +1,63 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_OTA_Message
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90D8
+// Version : V1.3
+
+#ifndef _NL2_PDCP_OTA_MESSAGE_H
+#define _NL2_PDCP_OTA_MESSAGE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_OTA_MESSAGE 0x90D8
+
+#define ICD_NL2_NL2_PDCP_OTA_MESSAGE_INFO_V1 1
+
+#define MAX_ICD_NL2_PDCP_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL2_PDCP_OTA_MESSAGE_STRUCT_V1_MAX_SIZE 224
+
+typedef struct {
+ kal_uint8 rb_cfg_idx:6; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint8 radio_bearer_type:1; // DRB:0 , SRB:1
+ kal_uint8 direction:1; // Up Stream:0 , Down Stream:1
+ kal_uint8 rlc_mode:1; // AM:0 , UM:1
+ kal_uint8 reserved:6;
+ kal_uint8 message_type:1; // Data pdu for drb/srb:0
+ // Control pdu for drb:1
+ kal_uint8 ciphered:1; // Ciphered: 0
+ // Non-ciphered: 1
+ kal_uint8 pdcp_sn_bit:3; // Null:0
+ // 12-bit:1
+ // 18-bit:2
+ // Others are reserved
+ kal_uint8 pdcp_pdu_length:4; // Indicate the length of "PDCP HDR" field
+ kal_uint8 pdcp_pdu[8]; // For data PDU, logging PDCP header only. for control PDU, logging control PDU raw data, max 8 bytes
+} nl2_pdcp_ota_message_record_v1;
+
+typedef nl2_pdcp_ota_message_record_v1 nl2_pdcp_ota_message_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 pdcp_release:6; // 3GPP release number
+ // (e.g. 15 means Rel 15)
+ kal_uint32 pdcp_major_version:6; // Major version number
+ kal_uint32 pdcp_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ nl2_pdcp_ota_message_record ota_records[MAX_ICD_NL2_PDCP_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_nl2_pdcp_ota_message_struct_v1;
+
+typedef icd_nl2_pdcp_ota_message_struct_v1 icd_nl2_pdcp_ota_message_struct;
+
+
+#endif /* _NL2_PDCP_OTA_MESSAGE_H */
+
+
+/* Public JSON start
+"NL2_PDCP_OTA_Message": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90D8", "Name": "NL2_PDCP_OTA_Message", "Type": "RECORD", "Desc": "The log is generated once every 50 ms or 20 records, whichever occurs first.\n"}, "table": {"NL2_PDCP_OTA_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_PDCP_OTA_Message_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_OTA_Message"}, "NL2_PDCP_OTA_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_OTA_Message_Info_V1", ""]}, "Name": "NL2_PDCP_OTA_Message_Versions"}, "NL2_PDCP_OTA_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"OTA Records": "Number of Records"}, "Name": "NL2_PDCP_OTA_Message_Info_V1", "Data": {"0": ["PDCP Release", "UINT32", "1", "0", "6", "3GPP release number\n(e.g. 15 means Rel 15)"], "1": ["PDCP Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["PDCP Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["OTA Records", "NL2_PDCP_OTA_Message_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_PDCP_OTA_Message_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "6", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Radio Bearer Type", "UINT8", "1", "6", "1", "DRB:0 , SRB:1"], "2": ["Direction", "UINT8", "1", "7", "1", "Up Stream:0 , Down Stream:1"], "3": ["RLC Mode", "UINT8", "1", "8", "1", "AM:0 , UM:1"], "4": ["Reserved", "UINT8", "1", "9", "6", ""], "5": ["Message Type", "UINT8", "1", "15", "1", "Data pdu for drb/srb:0\nControl pdu for drb:1"], "6": ["Ciphered", "UINT8", "1", "16", "1", "Ciphered: 0\nNon-ciphered: 1"], "7": ["PDCP SN Bit", "UINT8", "1", "17", "3", "Null:0\n12-bit:1\n18-bit:2\nOthers are reserved"], "8": ["PDCP PDU Length", "UINT8", "1", "20", "4", "Indicate the length of \"PDCP HDR\" field"], "9": ["PDCP PDU", "UINT8", "8", "24", "64", "For data PDU, logging PDCP header only. for control PDU, logging control PDU raw data, max 8 bytes"]}, "Name": "NL2_PDCP_OTA_Message_Record_V1"}}},
+ Public JSON end */
+// Checksum : [2b22d9ad556fe2382f11a8225df64861]
diff --git a/mcu/interface/service/icd/nl2/NL2_PDCP_Throughput_DL.h b/mcu/interface/service/icd/nl2/NL2_PDCP_Throughput_DL.h
new file mode 100644
index 0000000..9f74cea
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_PDCP_Throughput_DL.h
@@ -0,0 +1,39 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Throughput_DL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90D4
+// Version : V1.3
+
+#ifndef _NL2_PDCP_THROUGHPUT_DL_H
+#define _NL2_PDCP_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_THROUGHPUT_DL 0x90D4
+
+#define ICD_NL2_NL2_PDCP_THROUGHPUT_DL_V3 3
+
+#define ICD_NL2_PDCP_THROUGHPUT_DL_STRUCT_V3_MAX_SIZE 96
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 reserved;
+ kal_uint64 pdcp_throughput_dl; // Downlink throughput measured on the PDCP layer,
+ // value is measured per 1000ms, unit:bps
+ kal_uint64 throughput_value[10]; // Downlink throughput measured on the PDCP layer,
+ // value in array is measured per 100ms, unit:bps
+} icd_nl2_pdcp_throughput_dl_struct_v3;
+
+typedef icd_nl2_pdcp_throughput_dl_struct_v3 icd_nl2_pdcp_throughput_dl_struct;
+
+
+#endif /* _NL2_PDCP_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Throughput_DL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90D4", "Name": "NL2_PDCP_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1 s.\n"}, "table": {"NL2_PDCP_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "NL2_PDCP_Throughput_DL_Versions", "1", "32", "VAR", ""]}, "Name": "NL2_PDCP_Throughput_DL"}, "NL2_PDCP_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Throughput_DL_V1", ""], "1": ["2", "NL2_PDCP_Throughput_DL_V2", ""]}, "Name": "NL2_PDCP_Throughput_DL_Versions"}, "NL2_PDCP_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDCP Throughput DL", "UINT32", "1", "0", "32", "Downlink throughput measured on the PDCP layer(bps)"]}, "Name": "NL2_PDCP_Throughput_DL_V1"}, "NL2_PDCP_Throughput_DL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "32", ""], "1": ["PDCP Throughput DL", "UINT64", "1", "32", "64", "Downlink throughput measured on the PDCP layer(bps)"]}, "Name": "NL2_PDCP_Throughput_DL_V2"}}},
+ Public JSON end */
+// Checksum : [b685a105fd3979deb74c1b32abe29e73]
diff --git a/mcu/interface/service/icd/nl2/NL2_PDCP_Throughput_UL.h b/mcu/interface/service/icd/nl2/NL2_PDCP_Throughput_UL.h
new file mode 100644
index 0000000..1017168
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_PDCP_Throughput_UL.h
@@ -0,0 +1,38 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_Throughput_UL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90D5
+// Version : V1.3
+
+#ifndef _NL2_PDCP_THROUGHPUT_UL_H
+#define _NL2_PDCP_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_THROUGHPUT_UL 0x90D5
+
+#define ICD_NL2_NL2_PDCP_THROUGHPUT_UL_V2 2
+
+#define ICD_NL2_PDCP_THROUGHPUT_UL_STRUCT_V2_MAX_SIZE 48
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 pdcp_throughput_ul; // Uplink throughput measured on the PDCP layer,
+ // value is measured per 1000ms, unit:bps
+ kal_uint32 throughput_value[10]; // Uplink throughput measured on the PDCP layer,
+ // value in array is measured per 100ms, unit:bps
+} icd_nl2_pdcp_throughput_ul_struct_v2;
+
+typedef icd_nl2_pdcp_throughput_ul_struct_v2 icd_nl2_pdcp_throughput_ul_struct;
+
+
+#endif /* _NL2_PDCP_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"NL2_PDCP_Throughput_UL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90D5", "Name": "NL2_PDCP_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1 s.\n"}, "table": {"NL2_PDCP_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "NL2_PDCP_Throughput_UL_Versions", "1", "32", "VAR", ""]}, "Name": "NL2_PDCP_Throughput_UL"}, "NL2_PDCP_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_Throughput_UL_V1", ""]}, "Name": "NL2_PDCP_Throughput_UL_Versions"}, "NL2_PDCP_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDCP Throughput UL", "UINT32", "1", "0", "32", "Uplink throughput measured on the PDCP layer(bps)"]}, "Name": "NL2_PDCP_Throughput_UL_V1"}}},
+ Public JSON end */
+// Checksum : [3fde459e258dc79ec10171440e7207a7]
diff --git a/mcu/interface/service/icd/nl2/NL2_PDCP_UL_Stats.h b/mcu/interface/service/icd/nl2/NL2_PDCP_UL_Stats.h
new file mode 100644
index 0000000..3c33d25
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_PDCP_UL_Stats.h
@@ -0,0 +1,72 @@
+// ICD Header Format v3
+// Name : NL2_PDCP_UL_Stats
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90D7
+// Version : V1.3
+
+#ifndef _NL2_PDCP_UL_STATS_H
+#define _NL2_PDCP_UL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_PDCP_UL_STATS 0x90D7
+
+#define ICD_NL2_NL2_PDCP_UL_STATS_INFO_V3 3
+
+#define MAX_ICD_NL2_PDCP_UL_STATS_STRUCT_V3_NUMBER_OF_RBS 37
+
+#define ICD_NL2_PDCP_UL_STATS_STRUCT_V3_MAX_SIZE 4744
+
+typedef struct {
+ kal_uint32 rb_cfg_idx; // Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint32 tx_data_pdu_bytes; // Total bytes of PDCP Data PDUs transmitted
+ kal_uint32 tx_control_pdu_bytes; // Total bytes of PDCP Control PDUs transmitted
+ kal_uint32 rohc_fail_num; // Total number of PDCP PDUs ROHC compresssion failed
+ kal_uint32 sdu_discard_bytes; // Total bytes of PDCP SDUs discarded
+ kal_uint32 retx_pdu_bytes; // Total bytes of PDCP PDUs retransmitted
+ kal_uint32 num_reest; // Total number of reestablishment
+ kal_uint32 tx_data_pdu_num; // Total number of PDCP Data PDUs transmitted
+ kal_uint32 tx_ctrl_pdu_num; // Total number of PDCP Control PDUs transmitted
+ kal_uint32 tx_status_pdu_num; // Total number of PDCP Status PDUs transmitted
+ kal_uint32 sdu_discard_num; // Total number of PDCP PDUs discarded
+ kal_uint32 ho_retx_num; // Total number of PDCP PDUs retransmitted during handover
+ kal_uint32 recovery_num; // Total number of PDCP Data recovery
+ kal_uint32 sdu_discard_num_reest; // Total number of PDCP PDUs discarded since last reestablishment
+ kal_uint64 sdu_discard_bytes_reest; // Total bytes of PDCP PDUs discarded since last reestablishment
+ kal_uint64 tx_data_pdu_bytes_reest; // Total bytes of PDCP Data PDUs transmitted since last reestablishment
+ kal_uint32 tx_data_pdu_num_reest; // Total number of PDCP Data PDUs transmitted since last reestablishment
+ kal_uint32 tx_ctrl_pdu_num_reest; // Total number of PDCP Control PDUs transmitted since last reestablishment
+ kal_uint64 tx_ctrl_pdu_bytes_reest; // Total bytes of PDCP Control PDUs transmitted since last reestablishment
+ kal_uint64 tx_status_pdu_bytes_reest; // Total bytes of PDCP Status PDUs transmitted since last reestablishment
+ kal_uint32 tx_status_pdu_num_reest; // Total number of PDCP Status PDUs transmitted since last reestablishment
+ kal_uint32 rohc_fail_num_reest; // Total number of PDCP PDUs ROHC compresssion failed since last reestablishment
+ kal_uint32 min_packet_byte; // Minimum bytes of transmitted packet during this time
+ kal_uint32 max_packet_byte; // Maximum bytes of transmitted packet during this time
+ kal_uint32 buffer_packet_number; // Total packet number store in PDCP buffer
+ kal_uint32 buffer_average_time; // The average time that the UL packet store in PDCP buffer, Unit:ms
+ kal_uint32 buffer_max_time; // The maximum time that the UL packet store in PDCP buffer, Unit:ms
+ kal_uint32 uplink_data_volume_bytes; // Total bytes of PDCP Uplink data volume
+} nl2_pdcp_ul_stats_v3;
+
+typedef nl2_pdcp_ul_stats_v3 nl2_pdcp_ul_stats;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 number_of_rbs; // range[0, 37]
+ kal_uint8 reserved[6];
+ nl2_pdcp_ul_stats rb_ul_statistics[MAX_ICD_NL2_PDCP_UL_STATS_STRUCT_V3_NUMBER_OF_RBS]; // N := Number of RBs
+} icd_nl2_pdcp_ul_stats_struct_v3;
+
+typedef icd_nl2_pdcp_ul_stats_struct_v3 icd_nl2_pdcp_ul_stats_struct;
+
+
+#endif /* _NL2_PDCP_UL_STATS_H */
+
+
+/* Public JSON start
+"NL2_PDCP_UL_Stats": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90D7", "Name": "NL2_PDCP_UL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_PDCP_UL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_PDCP_UL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_PDCP_UL_Stats"}, "NL2_PDCP_UL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_PDCP_UL_Stats_Info_V1", ""], "1": ["2", "NL2_PDCP_UL_Stats_Info_V2", ""], "2": ["3", "NL2_PDCP_UL_Stats_Info_V3", ""]}, "Name": "NL2_PDCP_UL_Stats_Versions"}, "NL2_PDCP_UL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "NL2_PDCP_UL_Stats_Info_V1", "Data": {"0": ["Number of RBs", "UINT8", "1", "0", "8", "range[0, 37]"], "1": ["Reserved", "UINT8", "6", "8", "48", ""], "2": ["RB UL Statistics", "NL2_PDCP_UL_Stats_V1", "N", "56", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_UL_Stats_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "NL2_PDCP_UL_Stats_Info_V2", "Data": {"0": ["Number of RBs", "UINT8", "1", "0", "8", "range[0, 37]"], "1": ["Reserved", "UINT8", "6", "8", "48", ""], "2": ["RB UL Statistics", "NL2_PDCP_UL_Stats_V2", "N", "56", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_UL_Stats_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"RB UL Statistics": "Number of RBs"}, "Name": "NL2_PDCP_UL_Stats_Info_V3", "Data": {"0": ["Number of RBs", "UINT8", "1", "0", "8", "range[0, 37]"], "1": ["Reserved", "UINT8", "6", "8", "48", ""], "2": ["RB UL Statistics", "NL2_PDCP_UL_Stats_V3", "N", "56", "VAR", "N := Number of RBs"]}}, "NL2_PDCP_UL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "32", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Tx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs transmitted"], "2": ["Tx Control PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs transmitted"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC compresssion failed"], "4": ["SDU Discard Bytes", "UINT32", "1", "128", "32", "Total bytes of PDCP SDUs discarded"], "5": ["ReTx PDU Bytes", "UINT32", "1", "160", "32", "Total bytes of PDCP PDUs retransmitted"], "6": ["Num Reest", "UINT32", "1", "192", "32", "Total number of reestablishment"], "7": ["Tx Data PDU Num", "UINT32", "1", "224", "32", "Total number of PDCP Data PDUs transmitted"], "8": ["Tx Ctrl PDU Num", "UINT32", "1", "256", "32", "Total number of PDCP Control PDUs transmitted"], "9": ["Tx Status PDU Num", "UINT32", "1", "288", "32", "Total number of PDCP Status PDUs transmitted"], "10": ["SDU Discard Num", "UINT32", "1", "320", "32", "Total number of PDCP PDUs discarded"], "11": ["HO ReTx Num", "UINT32", "1", "352", "32", "Total number of PDCP PDUs retransmitted during handover"], "12": ["Reserved", "UINT32", "1", "384", "32", ""], "13": ["SDU Discard Num Reest", "UINT32", "1", "416", "32", "Total number of PDCP PDUs discarded since last reestablishment"], "14": ["SDU Discard Bytes Reest", "UINT64", "1", "448", "64", "Total bytes of PDCP PDUs discarded since last reestablishment"], "15": ["Tx Data PDU Bytes Reest", "UINT64", "1", "512", "64", "Total bytes of PDCP Data PDUs transmitted since last reestablishment"], "16": ["Tx Data PDU Num Reest", "UINT32", "1", "576", "32", "Total number of PDCP Data PDUs transmitted since last reestablishment"], "17": ["Tx Ctrl PDU Num Reest", "UINT32", "1", "608", "32", "Total number of PDCP Control PDUs transmitted since last reestablishment"], "18": ["Tx Ctrl PDU Bytes Reest", "UINT64", "1", "640", "64", "Total bytes of PDCP Control PDUs transmitted since last reestablishment"], "19": ["Tx Status PDU Bytes Reest", "UINT64", "1", "704", "64", "Total bytes of PDCP Status PDUs transmitted since last reestablishment"], "20": ["Tx Status PDU Num Reest", "UINT32", "1", "768", "32", "Total number of PDCP Status PDUs transmitted since last reestablishment"], "21": ["Rohc Fail Num Reest", "UINT32", "1", "800", "32", "Total number of PDCP PDUs ROHC compresssion failed since last reestablishment"], "22": ["Min Packet Byte", "UINT32", "1", "832", "32", "Minimum bytes of transmitted packet during this time"], "23": ["Max Packet Byte", "UINT32", "1", "864", "32", "Maximum bytes of transmitted packet during this time"]}, "Name": "NL2_PDCP_UL_Stats_V1"}, "NL2_PDCP_UL_Stats_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "32", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Tx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs transmitted"], "2": ["Tx Control PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs transmitted"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC compresssion failed"], "4": ["SDU Discard Bytes", "UINT32", "1", "128", "32", "Total bytes of PDCP SDUs discarded"], "5": ["ReTx PDU Bytes", "UINT32", "1", "160", "32", "Total bytes of PDCP PDUs retransmitted"], "6": ["Num Reest", "UINT32", "1", "192", "32", "Total number of reestablishment"], "7": ["Tx Data PDU Num", "UINT32", "1", "224", "32", "Total number of PDCP Data PDUs transmitted"], "8": ["Tx Ctrl PDU Num", "UINT32", "1", "256", "32", "Total number of PDCP Control PDUs transmitted"], "9": ["Tx Status PDU Num", "UINT32", "1", "288", "32", "Total number of PDCP Status PDUs transmitted"], "10": ["SDU Discard Num", "UINT32", "1", "320", "32", "Total number of PDCP PDUs discarded"], "11": ["HO ReTx Num", "UINT32", "1", "352", "32", "Total number of PDCP PDUs retransmitted during handover"], "12": ["Reserved", "UINT32", "1", "384", "32", ""], "13": ["SDU Discard Num Reest", "UINT32", "1", "416", "32", "Total number of PDCP PDUs discarded since last reestablishment"], "14": ["SDU Discard Bytes Reest", "UINT64", "1", "448", "64", "Total bytes of PDCP PDUs discarded since last reestablishment"], "15": ["Tx Data PDU Bytes Reest", "UINT64", "1", "512", "64", "Total bytes of PDCP Data PDUs transmitted since last reestablishment"], "16": ["Tx Data PDU Num Reest", "UINT32", "1", "576", "32", "Total number of PDCP Data PDUs transmitted since last reestablishment"], "17": ["Tx Ctrl PDU Num Reest", "UINT32", "1", "608", "32", "Total number of PDCP Control PDUs transmitted since last reestablishment"], "18": ["Tx Ctrl PDU Bytes Reest", "UINT64", "1", "640", "64", "Total bytes of PDCP Control PDUs transmitted since last reestablishment"], "19": ["Tx Status PDU Bytes Reest", "UINT64", "1", "704", "64", "Total bytes of PDCP Status PDUs transmitted since last reestablishment"], "20": ["Tx Status PDU Num Reest", "UINT32", "1", "768", "32", "Total number of PDCP Status PDUs transmitted since last reestablishment"], "21": ["Rohc Fail Num Reest", "UINT32", "1", "800", "32", "Total number of PDCP PDUs ROHC compresssion failed since last reestablishment"], "22": ["Min Packet Byte", "UINT32", "1", "832", "32", "Minimum bytes of transmitted packet during this time"], "23": ["Max Packet Byte", "UINT32", "1", "864", "32", "Maximum bytes of transmitted packet during this time"], "24": ["buffer packet number", "UINT32", "1", "896", "32", "Total packet number store in PDCP buffer"], "25": ["buffer average time", "UINT32", "1", "928", "32", "The average time that the UL packet store in PDCP buffer, Unit:ms"], "26": ["buffer max time", "UINT32", "1", "960", "32", "The maximum time that the UL packet store in PDCP buffer, Unit:ms"], "27": ["Reserved", "UINT32", "1", "992", "32", ""]}, "Name": "NL2_PDCP_UL_Stats_V2"}, "NL2_PDCP_UL_Stats_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT32", "1", "0", "32", "Unique radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Tx Data PDU Bytes", "UINT32", "1", "32", "32", "Total bytes of PDCP Data PDUs transmitted"], "2": ["Tx Control PDU Bytes", "UINT32", "1", "64", "32", "Total bytes of PDCP Control PDUs transmitted"], "3": ["Rohc Fail Num", "UINT32", "1", "96", "32", "Total number of PDCP PDUs ROHC compresssion failed"], "4": ["SDU Discard Bytes", "UINT32", "1", "128", "32", "Total bytes of PDCP SDUs discarded"], "5": ["ReTx PDU Bytes", "UINT32", "1", "160", "32", "Total bytes of PDCP PDUs retransmitted"], "6": ["Num Reest", "UINT32", "1", "192", "32", "Total number of reestablishment"], "7": ["Tx Data PDU Num", "UINT32", "1", "224", "32", "Total number of PDCP Data PDUs transmitted"], "8": ["Tx Ctrl PDU Num", "UINT32", "1", "256", "32", "Total number of PDCP Control PDUs transmitted"], "9": ["Tx Status PDU Num", "UINT32", "1", "288", "32", "Total number of PDCP Status PDUs transmitted"], "10": ["SDU Discard Num", "UINT32", "1", "320", "32", "Total number of PDCP PDUs discarded"], "11": ["HO ReTx Num", "UINT32", "1", "352", "32", "Total number of PDCP PDUs retransmitted during handover"], "12": ["Recovery Num", "UINT32", "1", "384", "32", "Total number of PDCP Data recovery"], "13": ["SDU Discard Num Reest", "UINT32", "1", "416", "32", "Total number of PDCP PDUs discarded since last reestablishment"], "14": ["SDU Discard Bytes Reest", "UINT64", "1", "448", "64", "Total bytes of PDCP PDUs discarded since last reestablishment"], "15": ["Tx Data PDU Bytes Reest", "UINT64", "1", "512", "64", "Total bytes of PDCP Data PDUs transmitted since last reestablishment"], "16": ["Tx Data PDU Num Reest", "UINT32", "1", "576", "32", "Total number of PDCP Data PDUs transmitted since last reestablishment"], "17": ["Tx Ctrl PDU Num Reest", "UINT32", "1", "608", "32", "Total number of PDCP Control PDUs transmitted since last reestablishment"], "18": ["Tx Ctrl PDU Bytes Reest", "UINT64", "1", "640", "64", "Total bytes of PDCP Control PDUs transmitted since last reestablishment"], "19": ["Tx Status PDU Bytes Reest", "UINT64", "1", "704", "64", "Total bytes of PDCP Status PDUs transmitted since last reestablishment"], "20": ["Tx Status PDU Num Reest", "UINT32", "1", "768", "32", "Total number of PDCP Status PDUs transmitted since last reestablishment"], "21": ["Rohc Fail Num Reest", "UINT32", "1", "800", "32", "Total number of PDCP PDUs ROHC compresssion failed since last reestablishment"], "22": ["Min Packet Byte", "UINT32", "1", "832", "32", "Minimum bytes of transmitted packet during this time"], "23": ["Max Packet Byte", "UINT32", "1", "864", "32", "Maximum bytes of transmitted packet during this time"], "24": ["buffer packet number", "UINT32", "1", "896", "32", "Total packet number store in PDCP buffer"], "25": ["buffer average time", "UINT32", "1", "928", "32", "The average time that the UL packet store in PDCP buffer, Unit:ms"], "26": ["buffer max time", "UINT32", "1", "960", "32", "The maximum time that the UL packet store in PDCP buffer, Unit:ms"], "27": ["Uplink Data volume Bytes", "UINT32", "1", "992", "32", "Total bytes of PDCP Uplink data volume"]}, "Name": "NL2_PDCP_UL_Stats_V3"}}},
+ Public JSON end */
+// Checksum : [75a3a0e51b567b8d4f6ccf98b2a9e7c0]
diff --git a/mcu/interface/service/icd/nl2/NL2_RLC_DL_STATS.h b/mcu/interface/service/icd/nl2/NL2_RLC_DL_STATS.h
new file mode 100644
index 0000000..a968027
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_RLC_DL_STATS.h
@@ -0,0 +1,95 @@
+// ICD Header Format v3
+// Name : NL2_RLC_DL_Stats
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90AC
+// Version : t-internal-nr-icd-draft3RC1-352-gf0c79d3
+
+#ifndef _NL2_RLC_DL_STATS_H
+#define _NL2_RLC_DL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_RLC_DL_STATS 0x90AC
+
+#define ICD_NL2_NL2_RLC_DL_STATS_INFO_V2 2
+
+#define MAX_ICD_NL2_RLC_DL_STATS_STRUCT_V2_NUMBER_OF_ENTITIES 75
+
+#define ICD_NL2_RLC_DL_STATS_STRUCT_V2_MAX_SIZE 16808
+
+typedef struct {
+ kal_uint8 rb_cfg_idx; // Radio bearer configuration index(0~31: DRB1~DRB32, 32: SRB0,33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint8 mode; // RLC mode, Enum{0:AM,1:UM}
+ kal_uint8 rb_id; // The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)
+ kal_uint8 lcid; // Identity of the logical channel to which this structure pertains, range[1,32]
+ kal_uint32 rx_pdu_cnt; // The number of RLC PDUs received on this RB
+ kal_uint32 reest_cnt; // Total count of RLC reestablishment
+ kal_uint32 rx_data_pdu_cnt; // Total count of RLC Data PDUs received
+ kal_uint32 rx_data_pdu_bytes; // Total count of RLC Data PDU received in bytes
+ kal_uint32 rx_ctrl_pdu_cnt; // Total count of RLC Control PDUs received
+ kal_uint32 rx_ctrl_pdu_bytes; // Total count of RLC Control PDU received in bytes
+ kal_uint32 rx_status_cnt; // Total count of valid RLC status PDU received
+ kal_uint32 rx_status_bytes; // Total count of valid RLC status PDU received in bytes
+ kal_uint32 pdu_invalid_cnt; // Total count of RLC PDUs invalid
+ kal_uint32 pdu_invalid_bytes; // Total count of RLC PDUs invalid in bytes
+ kal_uint32 pdu_retx_cnt; // Total count of RLC PDUs retransmitted from receiver perspective
+ kal_uint32 pdu_retx_bytes; // Total count of RLC PDUs retransmitted in bytes from receiver perspective
+ kal_uint32 pdu_dup_cnt; // Total count of RLC PDUs duplicated
+ kal_uint32 pdu_dup_bytes; // Total count of RLC PDUs duplicated in bytes
+ kal_uint32 pdu_dropped_cnt; // Total count of PDUs dropped excluding duplicated
+ kal_uint32 pdu_dropped_bytes; // Total count of PDUs dropped in bytes excluding duplicated
+ kal_uint32 tx_ctrl_pdu_cnt; // Total count of control PDUs sent
+ kal_uint32 tx_complete_nack_cnt; // Total count of complete RLC PDU NACKs sent
+ kal_uint32 tx_seg_nack_cnt; // Total count of RLC segments NACk sent
+ kal_uint32 pdu_dropped_cnt_flow_ctrl; // Total count of PDUs dropped because of flow control
+ kal_uint32 pdu_dropped_bytes_flow_ctrl; // Total count of PDUs dropped in bytes because of flow control
+ kal_uint32 sdu_reassemb_cnt; // Total count of reassembled SDU
+ kal_uint32 sdu_reassemb_bytes; // Total count of reassembled SDU in bytes
+ kal_uint32 eps_bearer_id:8; // The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]
+ kal_uint32 reserved:24;
+ kal_uint32 rx_data_pdu_cnt_reest; // Total count of RLC Data PDUs received since the last RLC re-establishment
+ kal_uint64 rx_data_pdu_bytes_reest; // Total count of RLC Data PDU received in bytes since the last RLC re-establishment
+ kal_uint64 rx_ctrl_pdu_bytes_reest; // Total count of RLC Control PDU received in bytes since the last RLC re-establishment
+ kal_uint32 rx_ctrl_pdu_cnt_reest; // Total count of RLC Control PDUs received since the last RLC re-establishment
+ kal_uint32 rx_status_num_reest; // Total count of valid RLC status PDU received since the last RLC re-establishment
+ kal_uint64 rx_status_bytes_reest; // Total count of valid RLC status PDU received in bytes since the last RLC re-establishment
+ kal_uint64 pdu_invalid_bytes_reest; // Total count of RLC PDUs invalid in bytes since the last RLC re-establishment
+ kal_uint32 pdu_retx_cnt_reest; // Total count of RLC PDUs retransmitted from receiver perspective since the last RLC re-establishment
+ kal_uint32 pdu_invalid_cnt_reest; // Total count of RLC PDUs invalid since the last RLC re-establishment
+ kal_uint64 pdu_retx_bytes_reest; // Total count of RLC PDUs retransmitted in bytes from receiver perspective since the last RLC re-establishment
+ kal_uint64 pdu_dup_bytes_reest; // Total count of RLC PDUs duplicated in bytes since the last RLC re-establishment
+ kal_uint32 pdu_dup_cnt_reest; // Total count of RLC PDUs duplicated since the last RLC re-establishment
+ kal_uint32 pdu_dropped_cnt_reest; // Total count of PDUs dropped excluding duplicated since the last RLC re-establishment
+ kal_uint64 pdu_dropped_bytes_reest; // Total count of PDUs dropped in bytes excluding duplicated since the last RLC re-establishment
+ kal_uint32 tx_ctrl_pdu_cnt_reest; // Total count of control PDUs sent since the last RLC re-establishment
+ kal_uint32 tx_complete_nack_cnt_reest; // Total count of complete RLC PDU NACKs sent since the last RLC re-establishment
+ kal_uint32 tx_seg_nack_cnt_reest; // Total count of RLC segments NACk sent since the last RLC re-establishment
+ kal_uint32 pdu_dropped_cnt_flow_ctrl_reest; // Total count of PDUs dropped because of flow control since the last RLC re-establishment
+ kal_uint64 pdu_dropped_bytes_flow_ctrl_reest; // Total count of PDUs dropped in bytes because of flow control since the last RLC re-establishment
+ kal_uint64 sdu_reassemb_bytes_reest; // Total count of reassembled SDU in bytes since the last RLC re-establishment
+ kal_uint32 sdu_reassemb_cnt_reest; // Total count of reassembled SDU since the last RLC re-establishment
+ kal_uint32 dl_zero_duration; // Total time with no (0 bytes) downlink activity, unit:ms
+} nl2_rlc_dl_stats_v2;
+
+typedef nl2_rlc_dl_stats_v2 nl2_rlc_dl_stats;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 number_of_entities:24; // range[0, 75]
+ kal_uint32 duration; // RLC downlink measurement period to which this metric pertains (mapping to iQi: dwRlcDlDuration), unit:ms
+ nl2_rlc_dl_stats entity_dl_statistics[MAX_ICD_NL2_RLC_DL_STATS_STRUCT_V2_NUMBER_OF_ENTITIES]; // N := Number of Entities
+} icd_nl2_rlc_dl_stats_struct_v2;
+
+typedef icd_nl2_rlc_dl_stats_struct_v2 icd_nl2_rlc_dl_stats_struct;
+
+
+#endif /* _NL2_RLC_DL_STATS_H */
+
+
+/* Public JSON start
+"NL2_RLC_DL_Stats": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90AC", "Name": "NL2_RLC_DL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_RLC_DL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_RLC_DL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_RLC_DL_Stats"}, "NL2_RLC_DL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_RLC_DL_Stats_Info_V1", ""], "1": ["2", "NL2_RLC_DL_Stats_Info_V2", ""]}, "Name": "NL2_RLC_DL_Stats_Versions"}, "NL2_RLC_DL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Entity DL Statistics": "Number of Entities"}, "Name": "NL2_RLC_DL_Stats_Info_V1", "Data": {"0": ["Number of Entities", "UINT32", "1", "0", "24", "range[0, 75]"], "1": ["Duration", "UINT32", "1", "24", "32", "RLC downlink measurement period to which this metric pertains (mapping to iQi: dwRlcDlDuration), unit:ms"], "2": ["Entity DL Statistics", "NL2_RLC_DL_Stats_V1", "N", "56", "VAR", "N := Number of Entities"]}}, "NL2_RLC_DL_Stats_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Entity DL Statistics": "Number of Entities"}, "Name": "NL2_RLC_DL_Stats_Info_V2", "Data": {"0": ["Number of Entities", "UINT32", "1", "0", "24", "range[0, 75]"], "1": ["Duration", "UINT32", "1", "24", "32", "RLC downlink measurement period to which this metric pertains (mapping to iQi: dwRlcDlDuration), unit:ms"], "2": ["Entity DL Statistics", "NL2_RLC_DL_Stats_V2", "N", "56", "VAR", "N := Number of Entities"]}}, "NL2_RLC_DL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Radio bearer configuration index(0~31: DRB1~DRB32, 32: SRB0,33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode, Enum{0:AM,1:UM}"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)"], "3": ["LCID", "UINT8", "1", "24", "8", "Identity of the logical channel to which this structure pertains, range[1,32]"], "4": ["Rx PDU Cnt", "UINT32", "1", "32", "32", "The number of RLC PDUs received on this RB"], "5": ["Reest Cnt", "UINT32", "1", "64", "32", "Total count of RLC reestablishment"], "6": ["Rx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of RLC Data PDUs received"], "7": ["Rx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of RLC Data PDU received in bytes"], "8": ["Rx Ctrl PDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC Control PDUs received"], "9": ["Rx Ctrl PDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC Control PDU received in bytes"], "10": ["Rx Status Cnt", "UINT32", "1", "224", "32", "Total count of valid RLC status PDU received"], "11": ["Rx Status Bytes", "UINT32", "1", "256", "32", "Total count of valid RLC status PDU received in bytes"], "12": ["PDU Invalid Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs invalid"], "13": ["PDU Invalid Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs invalid in bytes"], "14": ["PDU Retx Cnt", "UINT32", "1", "352", "32", "Total count of RLC PDUs retransmitted from receiver perspective"], "15": ["PDU Retx Bytes", "UINT32", "1", "384", "32", "Total count of RLC PDUs retransmitted in bytes from receiver perspective"], "16": ["PDU Dup Cnt", "UINT32", "1", "416", "32", "Total count of RLC PDUs duplicated"], "17": ["PDU Dup Bytes", "UINT32", "1", "448", "32", "Total count of RLC PDUs duplicated in bytes"], "18": ["PDU Dropped Cnt", "UINT32", "1", "480", "32", "Total count of PDUs dropped excluding duplicated"], "19": ["PDU Dropped Bytes", "UINT32", "1", "512", "32", "Total count of PDUs dropped in bytes excluding duplicated"], "20": ["Tx Ctrl PDU Cnt", "UINT32", "1", "544", "32", "Total count of control PDUs sent"], "21": ["Tx Complete Nack Cnt", "UINT32", "1", "576", "32", "Total count of complete RLC PDU NACKs sent"], "22": ["Tx Seg Nack Cnt", "UINT32", "1", "608", "32", "Total count of RLC segments NACk sent"], "23": ["PDU Dropped Cnt Flow Ctrl", "UINT32", "1", "640", "32", "Total count of PDUs dropped because of flow control"], "24": ["PDU Dropped Bytes Flow Ctrl", "UINT32", "1", "672", "32", "Total count of PDUs dropped in bytes because of flow control"], "25": ["SDU Reassemb Cnt", "UINT32", "1", "704", "32", "Total count of reassembled SDU"], "26": ["SDU Reassemb Bytes", "UINT32", "1", "736", "32", "Total count of reassembled SDU in bytes"], "27": ["Reserved", "UINT32", "1", "768", "32", ""], "28": ["Rx Data PDU Cnt Reest", "UINT32", "1", "800", "32", "Total count of RLC Data PDUs received since the last RLC re-establishment"], "29": ["Rx Data PDU Bytes Reest", "UINT64", "1", "832", "64", "Total count of RLC Data PDU received in bytes since the last RLC re-establishment"], "30": ["Rx Ctrl PDU Bytes Reest", "UINT64", "1", "896", "64", "Total count of RLC Control PDU received in bytes since the last RLC re-establishment"], "31": ["Rx Ctrl PDU Cnt Reest", "UINT32", "1", "960", "32", "Total count of RLC Control PDUs received since the last RLC re-establishment"], "32": ["Rx Status Num Reest", "UINT32", "1", "992", "32", "Total count of valid RLC status PDU received since the last RLC re-establishment"], "33": ["Rx Status Bytes Reest", "UINT64", "1", "1024", "64", "Total count of valid RLC status PDU received in bytes since the last RLC re-establishment"], "34": ["PDU Invalid Bytes Reest", "UINT64", "1", "1088", "64", "Total count of RLC PDUs invalid in bytes since the last RLC re-establishment"], "35": ["PDU Retx Cnt Reest", "UINT32", "1", "1152", "32", "Total count of RLC PDUs retransmitted from receiver perspective since the last RLC re-establishment"], "36": ["PDU Invalid Cnt Reest", "UINT32", "1", "1184", "32", "Total count of RLC PDUs invalid since the last RLC re-establishment"], "37": ["PDu Retx Bytes Reest", "UINT64", "1", "1216", "64", "Total count of RLC PDUs retransmitted in bytes from receiver perspective since the last RLC re-establishment"], "38": ["PDU Dup Bytes Reest", "UINT64", "1", "1280", "64", "Total count of RLC PDUs duplicated in bytes since the last RLC re-establishment"], "39": ["PDU Dup Cnt Reest", "UINT32", "1", "1344", "32", "Total count of RLC PDUs duplicated since the last RLC re-establishment"], "40": ["PDU Dropped Cnt Reest", "UINT32", "1", "1376", "32", "Total count of PDUs dropped excluding duplicated since the last RLC re-establishment"], "41": ["PDU Dropped Bytes Reest", "UINT64", "1", "1408", "64", "Total count of PDUs dropped in bytes excluding duplicated since the last RLC re-establishment"], "42": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "1472", "32", "Total count of control PDUs sent since the last RLC re-establishment"], "43": ["Tx Complete Nack Cnt Reest", "UINT32", "1", "1504", "32", "Total count of complete RLC PDU NACKs sent since the last RLC re-establishment"], "44": ["Tx Seg Nack Cnt Reest", "UINT32", "1", "1536", "32", "Total count of RLC segments NACk sent since the last RLC re-establishment"], "45": ["PDU Dropped Cnt Flow Ctrl Reest", "UINT32", "1", "1568", "32", "Total count of PDUs dropped because of flow control since the last RLC re-establishment"], "46": ["PDU Dropped Bytes Flow Ctrl Reest", "UINT64", "1", "1600", "64", "Total count of PDUs dropped in bytes because of flow control since the last RLC re-establishment"], "47": ["SDU Reassemb Bytes Reest", "UINT64", "1", "1664", "64", "Total count of reassembled SDU in bytes since the last RLC re-establishment"], "48": ["SDU Reassemb Cnt Reest", "UINT32", "1", "1728", "32", "Total count of reassembled SDU since the last RLC re-establishment"], "49": ["Reserved", "UINT32", "1", "1760", "32", ""]}, "Name": "NL2_RLC_DL_Stats_V1"}, "NL2_RLC_DL_Stats_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Radio bearer configuration index(0~31: DRB1~DRB32, 32: SRB0,33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode, Enum{0:AM,1:UM}"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)"], "3": ["LCID", "UINT8", "1", "24", "8", "Identity of the logical channel to which this structure pertains, range[1,32]"], "4": ["Rx PDU Cnt", "UINT32", "1", "32", "32", "The number of RLC PDUs received on this RB"], "5": ["Reest Cnt", "UINT32", "1", "64", "32", "Total count of RLC reestablishment"], "6": ["Rx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of RLC Data PDUs received"], "7": ["Rx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of RLC Data PDU received in bytes"], "8": ["Rx Ctrl PDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC Control PDUs received"], "9": ["Rx Ctrl PDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC Control PDU received in bytes"], "10": ["Rx Status Cnt", "UINT32", "1", "224", "32", "Total count of valid RLC status PDU received"], "11": ["Rx Status Bytes", "UINT32", "1", "256", "32", "Total count of valid RLC status PDU received in bytes"], "12": ["PDU Invalid Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs invalid"], "13": ["PDU Invalid Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs invalid in bytes"], "14": ["PDU Retx Cnt", "UINT32", "1", "352", "32", "Total count of RLC PDUs retransmitted from receiver perspective"], "15": ["PDU Retx Bytes", "UINT32", "1", "384", "32", "Total count of RLC PDUs retransmitted in bytes from receiver perspective"], "16": ["PDU Dup Cnt", "UINT32", "1", "416", "32", "Total count of RLC PDUs duplicated"], "17": ["PDU Dup Bytes", "UINT32", "1", "448", "32", "Total count of RLC PDUs duplicated in bytes"], "18": ["PDU Dropped Cnt", "UINT32", "1", "480", "32", "Total count of PDUs dropped excluding duplicated"], "19": ["PDU Dropped Bytes", "UINT32", "1", "512", "32", "Total count of PDUs dropped in bytes excluding duplicated"], "20": ["Tx Ctrl PDU Cnt", "UINT32", "1", "544", "32", "Total count of control PDUs sent"], "21": ["Tx Complete Nack Cnt", "UINT32", "1", "576", "32", "Total count of complete RLC PDU NACKs sent"], "22": ["Tx Seg Nack Cnt", "UINT32", "1", "608", "32", "Total count of RLC segments NACk sent"], "23": ["PDU Dropped Cnt Flow Ctrl", "UINT32", "1", "640", "32", "Total count of PDUs dropped because of flow control"], "24": ["PDU Dropped Bytes Flow Ctrl", "UINT32", "1", "672", "32", "Total count of PDUs dropped in bytes because of flow control"], "25": ["SDU Reassemb Cnt", "UINT32", "1", "704", "32", "Total count of reassembled SDU"], "26": ["SDU Reassemb Bytes", "UINT32", "1", "736", "32", "Total count of reassembled SDU in bytes"], "27": ["EPS Bearer ID", "UINT32", "1", "768", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]"], "28": ["Reserved", "UINT32", "1", "776", "24", ""], "29": ["Rx Data PDU Cnt Reest", "UINT32", "1", "800", "32", "Total count of RLC Data PDUs received since the last RLC re-establishment"], "30": ["Rx Data PDU Bytes Reest", "UINT64", "1", "832", "64", "Total count of RLC Data PDU received in bytes since the last RLC re-establishment"], "31": ["Rx Ctrl PDU Bytes Reest", "UINT64", "1", "896", "64", "Total count of RLC Control PDU received in bytes since the last RLC re-establishment"], "32": ["Rx Ctrl PDU Cnt Reest", "UINT32", "1", "960", "32", "Total count of RLC Control PDUs received since the last RLC re-establishment"], "33": ["Rx Status Num Reest", "UINT32", "1", "992", "32", "Total count of valid RLC status PDU received since the last RLC re-establishment"], "34": ["Rx Status Bytes Reest", "UINT64", "1", "1024", "64", "Total count of valid RLC status PDU received in bytes since the last RLC re-establishment"], "35": ["PDU Invalid Bytes Reest", "UINT64", "1", "1088", "64", "Total count of RLC PDUs invalid in bytes since the last RLC re-establishment"], "36": ["PDU Retx Cnt Reest", "UINT32", "1", "1152", "32", "Total count of RLC PDUs retransmitted from receiver perspective since the last RLC re-establishment"], "37": ["PDU Invalid Cnt Reest", "UINT32", "1", "1184", "32", "Total count of RLC PDUs invalid since the last RLC re-establishment"], "38": ["PDu Retx Bytes Reest", "UINT64", "1", "1216", "64", "Total count of RLC PDUs retransmitted in bytes from receiver perspective since the last RLC re-establishment"], "39": ["PDU Dup Bytes Reest", "UINT64", "1", "1280", "64", "Total count of RLC PDUs duplicated in bytes since the last RLC re-establishment"], "40": ["PDU Dup Cnt Reest", "UINT32", "1", "1344", "32", "Total count of RLC PDUs duplicated since the last RLC re-establishment"], "41": ["PDU Dropped Cnt Reest", "UINT32", "1", "1376", "32", "Total count of PDUs dropped excluding duplicated since the last RLC re-establishment"], "42": ["PDU Dropped Bytes Reest", "UINT64", "1", "1408", "64", "Total count of PDUs dropped in bytes excluding duplicated since the last RLC re-establishment"], "43": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "1472", "32", "Total count of control PDUs sent since the last RLC re-establishment"], "44": ["Tx Complete Nack Cnt Reest", "UINT32", "1", "1504", "32", "Total count of complete RLC PDU NACKs sent since the last RLC re-establishment"], "45": ["Tx Seg Nack Cnt Reest", "UINT32", "1", "1536", "32", "Total count of RLC segments NACk sent since the last RLC re-establishment"], "46": ["PDU Dropped Cnt Flow Ctrl Reest", "UINT32", "1", "1568", "32", "Total count of PDUs dropped because of flow control since the last RLC re-establishment"], "47": ["PDU Dropped Bytes Flow Ctrl Reest", "UINT64", "1", "1600", "64", "Total count of PDUs dropped in bytes because of flow control since the last RLC re-establishment"], "48": ["SDU Reassemb Bytes Reest", "UINT64", "1", "1664", "64", "Total count of reassembled SDU in bytes since the last RLC re-establishment"], "49": ["SDU Reassemb Cnt Reest", "UINT32", "1", "1728", "32", "Total count of reassembled SDU since the last RLC re-establishment"], "50": ["DL Zero Duration", "UINT32", "1", "1760", "32", "Total time with no (0 bytes) downlink activity, unit:ms"]}, "Name": "NL2_RLC_DL_Stats_V2"}}},
+ Public JSON end */
+// Checksum : [6d0466989d5c1334680536a903420aef]
diff --git a/mcu/interface/service/icd/nl2/NL2_RLC_OTA_Messages.h b/mcu/interface/service/icd/nl2/NL2_RLC_OTA_Messages.h
new file mode 100644
index 0000000..c21935b
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_RLC_OTA_Messages.h
@@ -0,0 +1,91 @@
+// ICD Header Format v3
+// Name : NL2_RLC_OTA_Messages
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90AD
+// Version : V1.3
+
+#ifndef _NL2_RLC_OTA_MESSAGES_H
+#define _NL2_RLC_OTA_MESSAGES_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_RLC_OTA_MESSAGES 0x90AD
+
+#define ICD_NL2_NL2_RLC_OTA_MESSAGE_INFO_V1 1
+
+#define MAX_ICD_NL2_RLC_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL2_RLC_OTA_MESSAGE_STRUCT_V1_MAX_SIZE 564
+
+typedef struct {
+ kal_uint32 direction:1; // Transmission direction (0: UL, 1: DL)
+ kal_uint32 msg_type:1; // RLC message type (0: data, 1: control)
+ kal_uint32 rb_cfg_idx:8; // Radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint32 rlc_mode:1; // RLC mode (0: AM, 1: UM)
+ kal_uint32 lcid:8; // Identity of the logical channel to which this structure pertains (Range: 1..32)
+ kal_uint32 sn_len:4; // SN field length (0: 6bit, 1: 12bit, 2: 18bit, value >=3 are reserved)
+ kal_uint32 pdu_status:4; // Indicate RLC PDU status
+ // 0: PDU Data
+ // 1: PDU Control
+ // 2: PDU Invalid
+ // 3: PDU Dropped
+ // 4: UM PDU Discarded
+ // Others: reserved
+ kal_uint32 reserved:5;
+ kal_uint16 log_mask; // logMask, indicate types of logging PDU
+ // Bit 0 is the Least Significant Bit
+ // For DL direction:
+ // Bit 0, resevred
+ // Bit 1, RLCDL config log
+ // Bit 2, RLCDL AM all PDU log
+ // Bit 3, RLCDL control PDU log
+ // Bit 4, RLCDL polling log
+ // Bit 5, RLCDL signaling log
+ // Bit 6, RLCDL UM data PDU log
+ // Bit 7, RLCDL statistics log
+ // Bit 8, RLCDL AM state log
+ // Bit 9, RLCDL UM state log
+ // Bit 10 to Bit 15, reserved
+ // For UL direction:
+ // Bit 0, reserved
+ // Bit 1, RLCUL config log
+ // Bit 2, RLCUL AM all PDU log
+ // Bit 3, RLCUL control PDU log
+ // Bit 4, RLCUL polling log
+ // Bit 5, RLCUL signaling log
+ // Bit 6, RLCUL UM data PDU log
+ // Bit 7, RLCUL statistics log
+ // Bit 8, RLCUL AM state log
+ // Bit 9, RLCUL UM state log
+ // Bit 10 to Bit 15, reserved
+ kal_uint16 pdu_size; // Raw PDU size in bytes
+ kal_uint16 reserved_1;
+ kal_uint16 rlc_hdr_len; // Indicate length of RLC header raw data (range[0, 16])
+ kal_uint8 rlc_hdr[16]; // For data PDU, logging RLC PDU header raw data. For control PDU, logging RLC PDU raw data, max 16bytes
+} nl2_rlc_ota_message_record_v1;
+
+typedef nl2_rlc_ota_message_record_v1 nl2_rlc_ota_message_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 rlc_release:6; // 3GPP release number (e.g. 15)
+ kal_uint32 rlc_major_version:6; // Major version number
+ kal_uint32 rlc_minor_version:4; // Minor version number
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:3;
+ nl2_rlc_ota_message_record data_pdu_records[MAX_ICD_NL2_RLC_OTA_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS]; // N := Number of Records
+} icd_nl2_rlc_ota_message_struct_v1;
+
+typedef icd_nl2_rlc_ota_message_struct_v1 icd_nl2_rlc_ota_message_struct;
+
+
+#endif /* _NL2_RLC_OTA_MESSAGES_H */
+
+
+/* Public JSON start
+"NL2_RLC_OTA_Messages": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90AD", "Name": "NL2_RLC_OTA_Messages", "Type": "RECORD", "Desc": "The log is generated once every 50 ms or 20 records, whichever occurs first.\n"}, "table": {"NL2_RLC_OTA_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_RLC_OTA_Message_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_RLC_OTA_Message"}, "NL2_RLC_OTA_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_RLC_OTA_Message_Info_V1", ""]}, "Name": "NL2_RLC_OTA_Message_Versions"}, "NL2_RLC_OTA_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Data PDU Records": "Number of Records"}, "Name": "NL2_RLC_OTA_Message_Info_V1", "Data": {"0": ["RLC Release", "UINT32", "1", "0", "6", "3GPP release number (e.g. 15)"], "1": ["RLC Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["RLC Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Number of Records", "UINT32", "1", "16", "5", "range[0, 20]"], "4": ["Reserved", "UINT32", "1", "21", "3", ""], "5": ["Data PDU Records", "NL2_RLC_OTA_Message_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_RLC_OTA_Message_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Direction", "UINT32", "1", "0", "1", "Transmission direction (0: UL, 1: DL)"], "1": ["Msg Type", "UINT32", "1", "1", "1", "RLC message type (0: data, 1: control)"], "2": ["RB Cfg Idx", "UINT32", "1", "2", "8", "Radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "3": ["RLC Mode", "UINT32", "1", "10", "1", "RLC mode (0: AM, 1: UM)"], "4": ["LCID", "UINT32", "1", "11", "8", "Identity of the logical channel to which this structure pertains (Range: 1..32)"], "5": ["SN Len", "UINT32", "1", "19", "4", "SN field length (0: 6bit, 1: 12bit, 2: 18bit, value >=3 are reserved)"], "6": ["PDU Status", "UINT32", "1", "23", "4", "Indicate RLC PDU status\n0: PDU Data\n1: PDU Control\n2: PDU Invalid\n3: PDU Dropped\n4: UM PDU Discarded\nOthers: reserved"], "7": ["Reserved", "UINT32", "1", "27", "5", ""], "8": ["Log Mask", "UINT16", "1", "32", "16", "logMask, indicate types of logging PDU\nBit 0 is the Least Significant Bit\nFor DL direction:\nBit 0, resevred\nBit 1, RLCDL config log\nBit 2, RLCDL AM all PDU log\nBit 3, RLCDL control PDU log\nBit 4, RLCDL polling log\nBit 5, RLCDL signaling log\nBit 6, RLCDL UM data PDU log\nBit 7, RLCDL statistics log\nBit 8, RLCDL AM state log\nBit 9, RLCDL UM state log\nBit 10 to Bit 15, reserved\nFor UL direction:\nBit 0, reserved\nBit 1, RLCUL config log\nBit 2, RLCUL AM all PDU log\nBit 3, RLCUL control PDU log\nBit 4, RLCUL polling log\nBit 5, RLCUL signaling log\nBit 6, RLCUL UM data PDU log\nBit 7, RLCUL statistics log\nBit 8, RLCUL AM state log\nBit 9, RLCUL UM state log\nBit 10 to Bit 15, reserved"], "9": ["PDU Size", "UINT16", "1", "48", "16", "Raw PDU size in bytes"], "10": ["Reserved", "UINT16", "1", "64", "16", ""], "11": ["RLC Hdr Len", "UINT16", "1", "80", "16", "Indicate length of RLC header raw data (range[0, 16])"], "12": ["RLC Hdr", "UINT8", "16", "96", "128", "For data PDU, logging RLC PDU header raw data. For control PDU, logging RLC PDU raw data, max 16bytes"]}, "Name": "NL2_RLC_OTA_Message_Record_V1"}}},
+ Public JSON end */
+// Checksum : [f440d76f2eaf0a9ee28a4f5a822e5784]
diff --git a/mcu/interface/service/icd/nl2/NL2_RLC_Throughput_DL.h b/mcu/interface/service/icd/nl2/NL2_RLC_Throughput_DL.h
new file mode 100644
index 0000000..32b664d
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_RLC_Throughput_DL.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : NL2_RLC_Throughput_DL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90AA
+// Version : V1.3
+
+#ifndef _NL2_RLC_THROUGHPUT_DL_H
+#define _NL2_RLC_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_RLC_THROUGHPUT_DL 0x90AA
+
+#define ICD_NL2_NL2_RLC_THROUGHPUT_DL_V1 1
+
+#define ICD_NL2_RLC_THROUGHPUT_DL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 rlc_throughput_dl; // Downlink throughput measured on the RLC layer(bps)
+ // - all SRBs and DRBs
+} icd_nl2_rlc_throughput_dl_struct_v1;
+
+typedef icd_nl2_rlc_throughput_dl_struct_v1 icd_nl2_rlc_throughput_dl_struct;
+
+
+#endif /* _NL2_RLC_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"NL2_RLC_Throughput_DL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90AA", "Name": "NL2_RLC_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_RLC_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_RLC_Throughput_DL_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_RLC_Throughput_DL"}, "NL2_RLC_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_RLC_Throughput_DL_V1", ""], "1": ["2", "NL2_RLC_Throughput_DL_V2", ""]}, "Name": "NL2_RLC_Throughput_DL_Versions"}, "NL2_RLC_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["RLC Throughput DL", "UINT32", "1", "24", "32", "Downlink throughput measured on the RLC layer(bps)\n- all SRBs and DRBs"]}, "Name": "NL2_RLC_Throughput_DL_V1"}, "NL2_RLC_Throughput_DL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["Reserved", "UINT32", "1", "24", "32", ""], "2": ["RLC Throughput DL", "UINT64", "1", "56", "64", "Downlink throughput measured on the RLC layer(bps)\n- all SRBs and DRBs"]}, "Name": "NL2_RLC_Throughput_DL_V2"}}},
+ Public JSON end */
+// Checksum : [fc3dbb6c5cd612dce91f5258bf4b50f8]
diff --git a/mcu/interface/service/icd/nl2/NL2_RLC_Throughput_UL.h b/mcu/interface/service/icd/nl2/NL2_RLC_Throughput_UL.h
new file mode 100644
index 0000000..1ac695e
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_RLC_Throughput_UL.h
@@ -0,0 +1,37 @@
+// ICD Header Format v3
+// Name : NL2_RLC_Throughput_UL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90AB
+// Version : V1.3
+
+#ifndef _NL2_RLC_THROUGHPUT_UL_H
+#define _NL2_RLC_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_RLC_THROUGHPUT_UL 0x90AB
+
+#define ICD_NL2_NL2_RLC_THROUGHPUT_UL_V1 1
+
+#define ICD_NL2_RLC_THROUGHPUT_UL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 reserved:24;
+ kal_uint32 rlc_throughput_ul; // Uplink throughput measured on the RLC layer(bps)
+ // - all SRBs and DRBs
+} icd_nl2_rlc_throughput_ul_struct_v1;
+
+typedef icd_nl2_rlc_throughput_ul_struct_v1 icd_nl2_rlc_throughput_ul_struct;
+
+
+#endif /* _NL2_RLC_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"NL2_RLC_Throughput_UL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90AB", "Name": "NL2_RLC_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_RLC_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_RLC_Throughput_UL_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_RLC_Throughput_UL"}, "NL2_RLC_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_RLC_Throughput_UL_V1", ""]}, "Name": "NL2_RLC_Throughput_UL_Versions"}, "NL2_RLC_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "24", ""], "1": ["RLC Throughput UL", "UINT32", "1", "24", "32", "Uplink throughput measured on the RLC layer(bps)\n- all SRBs and DRBs"]}, "Name": "NL2_RLC_Throughput_UL_V1"}}},
+ Public JSON end */
+// Checksum : [a281d6d88976d8ea9ead5f66d69f2010]
diff --git a/mcu/interface/service/icd/nl2/NL2_RLC_UL_STATS.h b/mcu/interface/service/icd/nl2/NL2_RLC_UL_STATS.h
new file mode 100644
index 0000000..d4d6b63
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_RLC_UL_STATS.h
@@ -0,0 +1,85 @@
+// ICD Header Format v3
+// Name : NL2_RLC_UL_Stats
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90AE
+// Version : t-internal-nr-icd-draft3RC1-352-gf0c79d3
+
+#ifndef _NL2_RLC_UL_STATS_H
+#define _NL2_RLC_UL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_RLC_UL_STATS 0x90AE
+
+#define ICD_NL2_NL2_RLC_UL_STATS_INFO_V3 3
+
+#define MAX_ICD_NL2_RLC_UL_STATS_STRUCT_V3_NUMBER_OF_ENTITIES 75
+
+#define ICD_NL2_RLC_UL_STATS_STRUCT_V3_MAX_SIZE 11416
+
+typedef struct {
+ kal_uint8 rb_cfg_idx; // Radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)
+ kal_uint8 mode; // RLC mode Enum{0:AM,1:UM}
+ kal_uint8 rb_id; // The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)
+ kal_uint8 lcid; // Identity of the logical channel to which this structure pertains, range[1,32]
+ kal_uint32 num_reest:8; // Total count of RLC reestablishment
+ kal_uint32 eps_bearer_id:8; // The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]
+ kal_uint32 reserved:16;
+ kal_uint32 tx_pdu_cnt; // The number of RLC PDUs transmitted on this RB
+ kal_uint32 tx_data_pdu_cnt; // Total count of New Data PDU transmitted
+ kal_uint32 tx_data_pdu_bytes; // Total count of New Data PDU transmitted in bytes including RLC headers
+ kal_uint32 tx_sdu_cnt; // Total count of RLC SDUs transmitted
+ kal_uint32 tx_sdu_bytes; // Total count of RLC SDU in bytes transmitted
+ kal_uint32 tx_ctrl_pdu_cnt; // Total count of RLC control PDU transmitted
+ kal_uint32 tx_ctrl_pdu_bytes; // Total count of RLC Control PDU transmitted in bytes
+ kal_uint32 pdu_retx_cnt; // Total count of RLC PDUs retransmitted
+ kal_uint32 pdu_retx_bytes; // Total count of RLC PDUs retransmitted in bytes
+ kal_uint32 rx_ctrl_pdu_cnt; // Total count of RLC Control PDUs received
+ kal_uint32 rx_complete_nack_cnt; // Total count of Complete RLC PDU NACKs received
+ kal_uint32 rx_seg_nack_cnt; // Total count of NACKs for RLC Segments received
+ kal_uint32 rx_invalid_ctrl_pdu_cnt; // Total count of invalid control PDU received
+ kal_uint32 num_poll; // Total count of polling
+ kal_uint32 num_tpollretx_expiry; // Total count of tPollRetransmit timer expiry
+ kal_uint32 tx_data_pdu_cnt_reest; // Total count of New Data PDU transmitted since last RLC re-establishemnet
+ kal_uint64 tx_data_pdu_bytes_reest; // Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet
+ kal_uint64 tx_sdu_bytes_reest; // Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet
+ kal_uint32 tx_sdu_cnt_reest; // Total count of RLC SDUs transmitted since last RLC re-establishemnet
+ kal_uint32 tx_ctrl_pdu_cnt_reest; // Total count of RLC control PDU transmitted since last RLC re-establishemnet
+ kal_uint64 tx_ctrl_pdu_bytes_reest; // Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet
+ kal_uint64 pdu_retx_bytes_reest; // Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet
+ kal_uint32 pdu_retx_cnt_reest; // Total count of RLC PDUs retransmitted since last RLC re-establishemnet
+ kal_uint32 rx_ctrl_pdu_cnt_reest; // Total count of RLC Control PDUs received since last RLC re-establishemnet
+ kal_uint32 rx_complete_nack_cnt_reest; // Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet
+ kal_uint32 rx_seg_nack_cnt_reest; // Total count of NACKs for RLC Segments received since last RLC re-establishemnet
+ kal_uint32 rx_invalid_ctrl_pdu_cnt_reest; // Total count of invalid control PDU received since last RLC re-establishemnet
+ kal_uint32 num_poll_reest; // Total count of polling since last RLC re-establishemnet
+ kal_uint32 num_tpollretx_expiry_reest; // Total count of tPollRetransmit timer expiry since last RLC re-establishemnet
+ kal_uint32 discard_sdu_cnt; // Total count of discard PDU
+ kal_uint32 discard_sdu_cnt_reest; // Total count of discard PDU since last RLC re-establishemnet
+ kal_uint32 ul_zero_duration; // Total time with no (0 bytes) uplink activity, unit:ms
+} nl2_rlc_ul_stats_v3;
+
+typedef nl2_rlc_ul_stats_v3 nl2_rlc_ul_stats;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 rlc_ul_unrecoverable_error_num:24; // RLC is in ""AM"" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred
+ kal_uint32 number_of_entities; // range[0, 75]
+ kal_uint32 duration; // RLC uplink measurement period to which this metric pertains(mapping to iQi: dwRlcUlDuration), unit:ms
+ kal_uint32 reserved;
+ nl2_rlc_ul_stats entity_ul_statistics[MAX_ICD_NL2_RLC_UL_STATS_STRUCT_V3_NUMBER_OF_ENTITIES]; // N := Number of Entities
+} icd_nl2_rlc_ul_stats_struct_v3;
+
+typedef icd_nl2_rlc_ul_stats_struct_v3 icd_nl2_rlc_ul_stats_struct;
+
+
+#endif /* _NL2_RLC_UL_STATS_H */
+
+
+/* Public JSON start
+"NL2_RLC_UL_Stats": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90AE", "Name": "NL2_RLC_UL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_RLC_UL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_RLC_UL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_RLC_UL_Stats"}, "NL2_RLC_UL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_RLC_UL_Stats_Info_V1", ""], "1": ["2", "NL2_RLC_UL_Stats_Info_V2", ""], "2": ["3", "NL2_RLC_UL_Stats_Info_V3", ""]}, "Name": "NL2_RLC_UL_Stats_Versions"}, "NL2_RLC_UL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Entity UL Statistics": "Number of Entities"}, "Name": "NL2_RLC_UL_Stats_Info_V1", "Data": {"0": ["RLC UL Unrecoverable Error Num", "UINT32", "1", "0", "24", "RLC is in \"\"AM\"\" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred"], "1": ["Number of Entities", "UINT32", "1", "24", "32", "range[0, 75]"], "2": ["Duration", "UINT32", "1", "56", "32", "RLC uplink measurement period to which this metric pertains(mapping to iQi: dwRlcUlDuration), unit:ms"], "3": ["Reserved", "UINT32", "1", "88", "32", ""], "4": ["Entity UL Statistics", "NL2_RLC_UL_Stats_V1", "N", "120", "VAR", "N := Number of Entities"]}}, "NL2_RLC_UL_Stats_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Entity UL Statistics": "Number of Entities"}, "Name": "NL2_RLC_UL_Stats_Info_V2", "Data": {"0": ["RLC UL Unrecoverable Error Num", "UINT32", "1", "0", "24", "RLC is in \"\"AM\"\" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred"], "1": ["Number of Entities", "UINT32", "1", "24", "32", "range[0, 75]"], "2": ["Duration", "UINT32", "1", "56", "32", "RLC uplink measurement period to which this metric pertains(mapping to iQi: dwRlcUlDuration), unit:ms"], "3": ["Reserved", "UINT32", "1", "88", "32", ""], "4": ["Entity UL Statistics", "NL2_RLC_UL_Stats_V2", "N", "120", "VAR", "N := Number of Entities"]}}, "NL2_RLC_UL_Stats_Info_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Entity UL Statistics": "Number of Entities"}, "Name": "NL2_RLC_UL_Stats_Info_V3", "Data": {"0": ["RLC UL Unrecoverable Error Num", "UINT32", "1", "0", "24", "RLC is in \"\"AM\"\" mode and maximum number of retransmissions for a particular RLC PDU has reached, and that RLC PDU is still received in error, an unrecoverable error has occurred"], "1": ["Number of Entities", "UINT32", "1", "24", "32", "range[0, 75]"], "2": ["Duration", "UINT32", "1", "56", "32", "RLC uplink measurement period to which this metric pertains(mapping to iQi: dwRlcUlDuration), unit:ms"], "3": ["Reserved", "UINT32", "1", "88", "32", ""], "4": ["Entity UL Statistics", "NL2_RLC_UL_Stats_V3", "N", "120", "VAR", "N := Number of Entities"]}}, "NL2_RLC_UL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode, Enum{0:AM,1:UM}"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)"], "3": ["LCID", "UINT8", "1", "24", "8", "Identity of the logical channel to which this structure pertains, range[1,32]"], "4": ["Num Reest", "UINT32", "1", "32", "8", "Total count of RLC reestablishment"], "5": ["Reserved", "UINT32", "1", "40", "24", ""], "6": ["Tx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs transmitted on this RB"], "7": ["Tx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of New Data PDU transmitted"], "8": ["Tx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of New Data PDU transmitted in bytes including RLC headers"], "9": ["Tx SDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC SDUs transmitted"], "10": ["Tx SDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC SDU in bytes transmitted"], "11": ["Tx Ctrl PDU Cnt", "UINT32", "1", "224", "32", "Total count of RLC control PDU transmitted"], "12": ["Tx Ctrl PDU Bytes", "UINT32", "1", "256", "32", "Total count of RLC Control PDU transmitted in bytes"], "13": ["PDU Retx Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs retransmitted"], "14": ["PDU Retx Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs retransmitted in bytes"], "15": ["Rx Ctrl PDU Cnt", "UINT32", "1", "352", "32", "Total count of RLC Control PDUs received"], "16": ["Rx Complete Nack Cnt", "UINT32", "1", "384", "32", "Total count of Complete RLC PDU NACKs received"], "17": ["Rx Seg Nack Cnt", "UINT32", "1", "416", "32", "Total count of NACKs for RLC Segments received"], "18": ["Rx Invalid Ctrl PDU Cnt", "UINT32", "1", "448", "32", "Total count of invalid control PDU received"], "19": ["Num Poll", "UINT32", "1", "480", "32", "Total count of polling"], "20": ["Num Tpollretx Expiry", "UINT32", "1", "512", "32", "Total count of tPollRetransmit timer expiry"], "21": ["Tx Data PDU Cnt Reest", "UINT32", "1", "544", "32", "Total count of New Data PDU transmitted since last RLC re-establishemnet"], "22": ["Tx Data PDU Bytes Reest", "UINT64", "1", "576", "64", "Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet"], "23": ["Tx SDU Bytes Reest", "UINT64", "1", "640", "64", "Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet"], "24": ["Tx SDU Cnt Reest", "UINT32", "1", "704", "32", "Total count of RLC SDUs transmitted since last RLC re-establishemnet"], "25": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "736", "32", "Total count of RLC control PDU transmitted since last RLC re-establishemnet"], "26": ["Tx Ctrl PDU Bytes Reest", "UINT64", "1", "768", "64", "Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet"], "27": ["PDU Retx Bytes Reest", "UINT64", "1", "832", "64", "Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet"], "28": ["PDU Retx Cnt Reest", "UINT32", "1", "896", "32", "Total count of RLC PDUs retransmitted since last RLC re-establishemnet"], "29": ["Rx Ctrl Pdu Cnt Reest", "UINT32", "1", "928", "32", "Total count of RLC Control PDUs received since last RLC re-establishemnet"], "30": ["Rx Complete Nack Cnt Reest", "UINT32", "1", "960", "32", "Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet"], "31": ["Rx Seg Nack Cnt Reest", "UINT32", "1", "992", "32", "Total count of NACKs for RLC Segments received since last RLC re-establishemnet"], "32": ["Rx Invalid Ctrl PDU Cnt Reest", "UINT32", "1", "1024", "32", "Total count of invalid control PDU received since last RLC re-establishemnet"], "33": ["Num Poll Reest", "UINT32", "1", "1056", "32", "Total count of polling since last RLC re-establishemnet"], "34": ["Num Tpollretx Expiry Reest", "UINT32", "1", "1088", "32", "Total count of tPollRetransmit timer expiry since last RLC re-establishemnet"], "35": ["Reserved", "UINT32", "1", "1120", "32", ""]}, "Name": "NL2_RLC_UL_Stats_V1"}, "NL2_RLC_UL_Stats_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode Enum{0:AM,1:UM}"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)"], "3": ["LCID", "UINT8", "1", "24", "8", "Identity of the logical channel to which this structure pertains, range[1,32]"], "4": ["Num Reest", "UINT32", "1", "32", "8", "Total count of RLC reestablishment"], "5": ["Reserved", "UINT32", "1", "40", "24", ""], "6": ["Tx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs transmitted on this RB"], "7": ["Tx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of New Data PDU transmitted"], "8": ["Tx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of New Data PDU transmitted in bytes including RLC headers"], "9": ["Tx SDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC SDUs transmitted"], "10": ["Tx SDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC SDU in bytes transmitted"], "11": ["Tx Ctrl PDU Cnt", "UINT32", "1", "224", "32", "Total count of RLC control PDU transmitted"], "12": ["Tx Ctrl PDU Bytes", "UINT32", "1", "256", "32", "Total count of RLC Control PDU transmitted in bytes"], "13": ["PDU Retx Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs retransmitted"], "14": ["PDU Retx Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs retransmitted in bytes"], "15": ["Rx Ctrl PDU Cnt", "UINT32", "1", "352", "32", "Total count of RLC Control PDUs received"], "16": ["Rx Complete Nack Cnt", "UINT32", "1", "384", "32", "Total count of Complete RLC PDU NACKs received"], "17": ["Rx Seg Nack Cnt", "UINT32", "1", "416", "32", "Total count of NACKs for RLC Segments received"], "18": ["Rx Invalid Ctrl PDU Cnt", "UINT32", "1", "448", "32", "Total count of invalid control PDU received"], "19": ["Num Poll", "UINT32", "1", "480", "32", "Total count of polling"], "20": ["Num Tpollretx Expiry", "UINT32", "1", "512", "32", "Total count of tPollRetransmit timer expiry"], "21": ["Tx Data PDU Cnt Reest", "UINT32", "1", "544", "32", "Total count of New Data PDU transmitted since last RLC re-establishemnet"], "22": ["Tx Data PDU Bytes Reest", "UINT64", "1", "576", "64", "Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet"], "23": ["Tx SDU Bytes Reest", "UINT64", "1", "640", "64", "Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet"], "24": ["Tx SDU Cnt Reest", "UINT32", "1", "704", "32", "Total count of RLC SDUs transmitted since last RLC re-establishemnet"], "25": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "736", "32", "Total count of RLC control PDU transmitted since last RLC re-establishemnet"], "26": ["Tx Ctrl PDU Bytes Reest", "UINT64", "1", "768", "64", "Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet"], "27": ["PDU Retx Bytes Reest", "UINT64", "1", "832", "64", "Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet"], "28": ["PDU Retx Cnt Reest", "UINT32", "1", "896", "32", "Total count of RLC PDUs retransmitted since last RLC re-establishemnet"], "29": ["Rx Ctrl Pdu Cnt Reest", "UINT32", "1", "928", "32", "Total count of RLC Control PDUs received since last RLC re-establishemnet"], "30": ["Rx Complete Nack Cnt Reest", "UINT32", "1", "960", "32", "Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet"], "31": ["Rx Seg Nack Cnt Reest", "UINT32", "1", "992", "32", "Total count of NACKs for RLC Segments received since last RLC re-establishemnet"], "32": ["Rx Invalid Ctrl PDU Cnt Reest", "UINT32", "1", "1024", "32", "Total count of invalid control PDU received since last RLC re-establishemnet"], "33": ["Num Poll Reest", "UINT32", "1", "1056", "32", "Total count of polling since last RLC re-establishemnet"], "34": ["Num Tpollretx Expiry Reest", "UINT32", "1", "1088", "32", "Total count of tPollRetransmit timer expiry since last RLC re-establishemnet"], "35": ["Discard SDU Cnt", "UINT32", "1", "1120", "32", "Total count of discard PDU"], "36": ["Discard SDU Cnt Reest", "UINT32", "1", "1152", "32", "Total count of discard PDU since last RLC re-establishemnet"], "37": ["Reserved", "UINT32", "1", "1184", "32", ""]}, "Name": "NL2_RLC_UL_Stats_V2"}, "NL2_RLC_UL_Stats_V3": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["RB Cfg Idx", "UINT8", "1", "0", "8", "Radio bearer configuration index (0~31: DRB1~DRB32, 32: SRB0, 33: SRB1, 34: SRB2, 35: SRB3)"], "1": ["Mode", "UINT8", "1", "8", "8", "RLC mode Enum{0:AM,1:UM}"], "2": ["RB ID", "UINT8", "1", "16", "8", "The identity of the SRB/DRB to which this structure pertains (SRB Range: 1..3, DRB Range: 1..32)"], "3": ["LCID", "UINT8", "1", "24", "8", "Identity of the logical channel to which this structure pertains, range[1,32]"], "4": ["Num Reest", "UINT32", "1", "32", "8", "Total count of RLC reestablishment"], "5": ["EPS Bearer ID", "UINT32", "1", "40", "8", "The identity of the EPS bearer to which this structure pertains (Range: 0, 5..15) Range [0, 15]"], "6": ["Reserved", "UINT32", "1", "48", "16", ""], "7": ["Tx PDU Cnt", "UINT32", "1", "64", "32", "The number of RLC PDUs transmitted on this RB"], "8": ["Tx Data PDU Cnt", "UINT32", "1", "96", "32", "Total count of New Data PDU transmitted"], "9": ["Tx Data PDU Bytes", "UINT32", "1", "128", "32", "Total count of New Data PDU transmitted in bytes including RLC headers"], "10": ["Tx SDU Cnt", "UINT32", "1", "160", "32", "Total count of RLC SDUs transmitted"], "11": ["Tx SDU Bytes", "UINT32", "1", "192", "32", "Total count of RLC SDU in bytes transmitted"], "12": ["Tx Ctrl PDU Cnt", "UINT32", "1", "224", "32", "Total count of RLC control PDU transmitted"], "13": ["Tx Ctrl PDU Bytes", "UINT32", "1", "256", "32", "Total count of RLC Control PDU transmitted in bytes"], "14": ["PDU Retx Cnt", "UINT32", "1", "288", "32", "Total count of RLC PDUs retransmitted"], "15": ["PDU Retx Bytes", "UINT32", "1", "320", "32", "Total count of RLC PDUs retransmitted in bytes"], "16": ["Rx Ctrl PDU Cnt", "UINT32", "1", "352", "32", "Total count of RLC Control PDUs received"], "17": ["Rx Complete Nack Cnt", "UINT32", "1", "384", "32", "Total count of Complete RLC PDU NACKs received"], "18": ["Rx Seg Nack Cnt", "UINT32", "1", "416", "32", "Total count of NACKs for RLC Segments received"], "19": ["Rx Invalid Ctrl PDU Cnt", "UINT32", "1", "448", "32", "Total count of invalid control PDU received"], "20": ["Num Poll", "UINT32", "1", "480", "32", "Total count of polling"], "21": ["Num Tpollretx Expiry", "UINT32", "1", "512", "32", "Total count of tPollRetransmit timer expiry"], "22": ["Tx Data PDU Cnt Reest", "UINT32", "1", "544", "32", "Total count of New Data PDU transmitted since last RLC re-establishemnet"], "23": ["Tx Data PDU Bytes Reest", "UINT64", "1", "576", "64", "Total count of New Data PDU transmitted in bytes including RLC headers since last RLC re-establishemnet"], "24": ["Tx SDU Bytes Reest", "UINT64", "1", "640", "64", "Total count of RLC SDU in bytes transmitted since last RLC re-establishemnet"], "25": ["Tx SDU Cnt Reest", "UINT32", "1", "704", "32", "Total count of RLC SDUs transmitted since last RLC re-establishemnet"], "26": ["Tx Ctrl PDU Cnt Reest", "UINT32", "1", "736", "32", "Total count of RLC control PDU transmitted since last RLC re-establishemnet"], "27": ["Tx Ctrl PDU Bytes Reest", "UINT64", "1", "768", "64", "Total count of RLC Control PDU transmitted in bytes since last RLC re-establishemnet"], "28": ["PDU Retx Bytes Reest", "UINT64", "1", "832", "64", "Total count of RLC PDUs retransmitted in bytes since last RLC re-establishemnet"], "29": ["PDU Retx Cnt Reest", "UINT32", "1", "896", "32", "Total count of RLC PDUs retransmitted since last RLC re-establishemnet"], "30": ["Rx Ctrl Pdu Cnt Reest", "UINT32", "1", "928", "32", "Total count of RLC Control PDUs received since last RLC re-establishemnet"], "31": ["Rx Complete Nack Cnt Reest", "UINT32", "1", "960", "32", "Total count of Complete RLC PDU NACKs received since last RLC re-establishemnet"], "32": ["Rx Seg Nack Cnt Reest", "UINT32", "1", "992", "32", "Total count of NACKs for RLC Segments received since last RLC re-establishemnet"], "33": ["Rx Invalid Ctrl PDU Cnt Reest", "UINT32", "1", "1024", "32", "Total count of invalid control PDU received since last RLC re-establishemnet"], "34": ["Num Poll Reest", "UINT32", "1", "1056", "32", "Total count of polling since last RLC re-establishemnet"], "35": ["Num Tpollretx Expiry Reest", "UINT32", "1", "1088", "32", "Total count of tPollRetransmit timer expiry since last RLC re-establishemnet"], "36": ["Discard SDU Cnt", "UINT32", "1", "1120", "32", "Total count of discard PDU"], "37": ["Discard SDU Cnt Reest", "UINT32", "1", "1152", "32", "Total count of discard PDU since last RLC re-establishemnet"], "38": ["UL Zero Duration", "UINT32", "1", "1184", "32", "Total time with no (0 bytes) uplink activity, unit:ms"]}, "Name": "NL2_RLC_UL_Stats_V3"}}},
+ Public JSON end */
+// Checksum : [284788349a3a7fa09d7dec4c6f6be7c4]
diff --git a/mcu/interface/service/icd/nl2/NL2_SDAP_DL_Stats.h b/mcu/interface/service/icd/nl2/NL2_SDAP_DL_Stats.h
new file mode 100644
index 0000000..8b3b484
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_SDAP_DL_Stats.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : NL2_SDAP_DL_Stats
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90F0
+// Version : V1.3
+
+#ifndef _NL2_SDAP_DL_STATS_H
+#define _NL2_SDAP_DL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_SDAP_DL_STATS 0x90F0
+
+#define ICD_NL2_NL2_SDAP_DL_STATS_INFO_V1 1
+
+#define MAX_ICD_NL2_SDAP_DL_STATS_STRUCT_V1_NUMBER_OF_PDU_SESSION 15
+
+#define ICD_NL2_SDAP_DL_STATS_STRUCT_V1_MAX_SIZE 188
+
+typedef struct {
+ kal_uint32 pdu_session_id; // PDU session ID, value range: 1-15
+ kal_uint32 rx_packet_numbers; // Total received packet numbers from lower layer
+ kal_uint32 drop_packet_numbers; // Total dropped packet numbers
+} nl2_sdap_dl_stats_v1;
+
+typedef nl2_sdap_dl_stats_v1 nl2_sdap_dl_stats;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 number_of_pdu_session; // range[0, 15]
+ kal_uint8 reserved[6];
+ nl2_sdap_dl_stats pdu_session_statistics[MAX_ICD_NL2_SDAP_DL_STATS_STRUCT_V1_NUMBER_OF_PDU_SESSION]; // N := Number of PDU Session
+} icd_nl2_sdap_dl_stats_struct_v1;
+
+typedef icd_nl2_sdap_dl_stats_struct_v1 icd_nl2_sdap_dl_stats_struct;
+
+
+#endif /* _NL2_SDAP_DL_STATS_H */
+
+
+/* Public JSON start
+"NL2_SDAP_DL_Stats": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90F0", "Name": "NL2_SDAP_DL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_SDAP_DL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_SDAP_DL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_SDAP_DL_Stats"}, "NL2_SDAP_DL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_SDAP_DL_Stats_Info_V1", ""]}, "Name": "NL2_SDAP_DL_Stats_Versions"}, "NL2_SDAP_DL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"PDU Session Statistics": "Number of PDU Session"}, "Name": "NL2_SDAP_DL_Stats_Info_V1", "Data": {"0": ["Number of PDU Session", "UINT8", "1", "0", "8", "range[0, 15]"], "1": ["Reserved", "UINT8", "6", "8", "48", ""], "2": ["PDU Session Statistics", "NL2_SDAP_DL_Stats_V1", "N", "56", "VAR", "N := Number of PDU Session"]}}, "NL2_SDAP_DL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU session ID", "UINT32", "1", "0", "32", "PDU session ID, value range: 1-15"], "1": ["Rx packet numbers", "UINT32", "1", "32", "32", "Total received packet numbers from lower layer"], "2": ["Drop packet numbers", "UINT32", "1", "64", "32", "Total dropped packet numbers"]}, "Name": "NL2_SDAP_DL_Stats_V1"}}},
+ Public JSON end */
+// Checksum : [f78b1140d323dc43a31cdb41b31e567e]
diff --git a/mcu/interface/service/icd/nl2/NL2_SDAP_Header_Message.h b/mcu/interface/service/icd/nl2/NL2_SDAP_Header_Message.h
new file mode 100644
index 0000000..71ce70e
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_SDAP_Header_Message.h
@@ -0,0 +1,58 @@
+// ICD Header Format v3
+// Name : NL2_SDAP_Header_Message
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90EF
+// Version : V1.3
+
+#ifndef _NL2_SDAP_HEADER_MESSAGE_H
+#define _NL2_SDAP_HEADER_MESSAGE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_SDAP_HEADER_MESSAGE 0x90EF
+
+#define ICD_NL2_NL2_SDAP_HEADER_MESSAGE_INFO_V1 1
+
+#define MAX_ICD_NL2_SDAP_HEADER_MESSAGE_STRUCT_V1_NUMBER_OF_RECORDS 20
+
+#define ICD_NL2_SDAP_HEADER_MESSAGE_STRUCT_V1_MAX_SIZE 24
+
+typedef struct {
+ kal_uint8 sdap_header; // The Header format is same as the Sepc 37.324 in 6.2.2.2/6.2.2.3
+ // Uplink
+ // bit7: D/C
+ // bit6: R
+ // bit0-5: QFI
+ // Downlink
+ // bit7: RDI
+ // bit6: RQI
+ // bit0-5: QFI
+} nl2_sdap_header_message_record_v1;
+
+typedef nl2_sdap_header_message_record_v1 nl2_sdap_header_message_record;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sdap_release:6; // 3GPP release number
+ // (e.g. 15 means Rel 15)
+ kal_uint32 sdap_major_version:6; // Major version number
+ kal_uint32 sdap_minor_version:4; // Minor version number
+ kal_uint32 direction:1; // Uplink:0, Downlink:1
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:2;
+ nl2_sdap_header_message_record header_records[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} icd_nl2_sdap_header_message_struct_v1;
+
+typedef icd_nl2_sdap_header_message_struct_v1 icd_nl2_sdap_header_message_struct;
+
+
+#endif /* _NL2_SDAP_HEADER_MESSAGE_H */
+
+
+/* Public JSON start
+"NL2_SDAP_Header_Message": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90EF", "Name": "NL2_SDAP_Header_Message", "Type": "RECORD", "Desc": "The log is generated once every 50 ms or 20 records, whichever occurs first.\n"}, "table": {"NL2_SDAP_Header_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_SDAP_Header_Message_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_SDAP_Header_Message"}, "NL2_SDAP_Header_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_SDAP_Header_Message_Info_V1", ""]}, "Name": "NL2_SDAP_Header_Message_Versions"}, "NL2_SDAP_Header_Message_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Header Records": "Number of Records"}, "Name": "NL2_SDAP_Header_Message_Info_V1", "Data": {"0": ["SDAP Release", "UINT32", "1", "0", "6", "3GPP release number\n(e.g. 15 means Rel 15)"], "1": ["SDAP Major Version", "UINT32", "1", "6", "6", "Major version number"], "2": ["SDAP Minor Version", "UINT32", "1", "12", "4", "Minor version number"], "3": ["Direction", "UINT32", "1", "16", "1", "Uplink:0, Downlink:1"], "4": ["Number of Records", "UINT32", "1", "17", "5", "range[0, 20]"], "5": ["Reserved", "UINT32", "1", "22", "2", ""], "6": ["Header Records", "NL2_SDAP_Header_Message_Record_V1", "N", "24", "VAR", "N := Number of Records"]}}, "NL2_SDAP_Header_Message_Record_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SDAP Header", "UINT8", "1", "0", "8", "The Header format is same as the Sepc 37.324 in 6.2.2.2/6.2.2.3\nUplink\nbit7: D/C\nbit6: R\nbit0-5: QFI\nDownlink\nbit7: RDI\nbit6: RQI\nbit0-5: QFI"]}, "Name": "NL2_SDAP_Header_Message_Record_V1"}}},
+ Public JSON end */
+// Checksum : [130c31e951aeec091c17f7872bdb4fbc]
diff --git a/mcu/interface/service/icd/nl2/NL2_SDAP_Throughput_DL.h b/mcu/interface/service/icd/nl2/NL2_SDAP_Throughput_DL.h
new file mode 100644
index 0000000..a924642
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_SDAP_Throughput_DL.h
@@ -0,0 +1,35 @@
+// ICD Header Format v3
+// Name : NL2_SDAP_Throughput_DL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90ED
+// Version : V1.3
+
+#ifndef _NL2_SDAP_THROUGHPUT_DL_H
+#define _NL2_SDAP_THROUGHPUT_DL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_SDAP_THROUGHPUT_DL 0x90ED
+
+#define ICD_NL2_NL2_SDAP_THROUGHPUT_DL_V1 1
+
+#define ICD_NL2_SDAP_THROUGHPUT_DL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 sdap_throughput_dl; // Downlink throughput measured on the SDAP layer(bps)
+} icd_nl2_sdap_throughput_dl_struct_v1;
+
+typedef icd_nl2_sdap_throughput_dl_struct_v1 icd_nl2_sdap_throughput_dl_struct;
+
+
+#endif /* _NL2_SDAP_THROUGHPUT_DL_H */
+
+
+/* Public JSON start
+"NL2_SDAP_Throughput_DL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90ED", "Name": "NL2_SDAP_Throughput_DL", "Type": "RECORD", "Desc": "The log is generated once every 1 s.\n"}, "table": {"NL2_SDAP_Throughput_DL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "NL2_SDAP_Throughput_DL_Versions", "1", "32", "VAR", ""]}, "Name": "NL2_SDAP_Throughput_DL"}, "NL2_SDAP_Throughput_DL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_SDAP_Throughput_DL_V1", ""], "1": ["2", "NL2_SDAP_Throughput_DL_V2", ""]}, "Name": "NL2_SDAP_Throughput_DL_Versions"}, "NL2_SDAP_Throughput_DL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SDAP Throughput DL", "UINT32", "1", "0", "32", "Downlink throughput measured on the SDAP layer(bps)"]}, "Name": "NL2_SDAP_Throughput_DL_V1"}, "NL2_SDAP_Throughput_DL_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Reserved", "UINT32", "1", "0", "32", ""], "1": ["SDAP Throughput DL", "UINT64", "1", "32", "64", "Downlink throughput measured on the SDAP layer(bps)"]}, "Name": "NL2_SDAP_Throughput_DL_V2"}}},
+ Public JSON end */
+// Checksum : [2569d9a105abb276fd65534e846f495c]
diff --git a/mcu/interface/service/icd/nl2/NL2_SDAP_Throughput_UL.h b/mcu/interface/service/icd/nl2/NL2_SDAP_Throughput_UL.h
new file mode 100644
index 0000000..2f8de49
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_SDAP_Throughput_UL.h
@@ -0,0 +1,35 @@
+// ICD Header Format v3
+// Name : NL2_SDAP_Throughput_UL
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90EE
+// Version : V1.3
+
+#ifndef _NL2_SDAP_THROUGHPUT_UL_H
+#define _NL2_SDAP_THROUGHPUT_UL_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_SDAP_THROUGHPUT_UL 0x90EE
+
+#define ICD_NL2_NL2_SDAP_THROUGHPUT_UL_V1 1
+
+#define ICD_NL2_SDAP_THROUGHPUT_UL_STRUCT_V1_MAX_SIZE 8
+
+typedef struct {
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 sdap_throughput_ul; // Uplink throughput measured on the SDAP layer(bps)
+} icd_nl2_sdap_throughput_ul_struct_v1;
+
+typedef icd_nl2_sdap_throughput_ul_struct_v1 icd_nl2_sdap_throughput_ul_struct;
+
+
+#endif /* _NL2_SDAP_THROUGHPUT_UL_H */
+
+
+/* Public JSON start
+"NL2_SDAP_Throughput_UL": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90EE", "Name": "NL2_SDAP_Throughput_UL", "Type": "RECORD", "Desc": "The log is generated once every 1 s.\n"}, "table": {"NL2_SDAP_Throughput_UL": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT32", "1", "0", "32", "Log record structure ID"], "1": ["Versions", "NL2_SDAP_Throughput_UL_Versions", "1", "32", "VAR", ""]}, "Name": "NL2_SDAP_Throughput_UL"}, "NL2_SDAP_Throughput_UL_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_SDAP_Throughput_UL_V1", ""]}, "Name": "NL2_SDAP_Throughput_UL_Versions"}, "NL2_SDAP_Throughput_UL_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SDAP Throughput UL", "UINT32", "1", "0", "32", "Uplink throughput measured on the SDAP layer(bps)"]}, "Name": "NL2_SDAP_Throughput_UL_V1"}}},
+ Public JSON end */
+// Checksum : [0fe8868eb58f34471b37204042f9d04c]
diff --git a/mcu/interface/service/icd/nl2/NL2_SDAP_UL_Stats.h b/mcu/interface/service/icd/nl2/NL2_SDAP_UL_Stats.h
new file mode 100644
index 0000000..24af3f1
--- /dev/null
+++ b/mcu/interface/service/icd/nl2/NL2_SDAP_UL_Stats.h
@@ -0,0 +1,47 @@
+// ICD Header Format v3
+// Name : NL2_SDAP_UL_Stats
+// Category : NR
+// Layer : NL2
+// Type : RECORD
+// Code : 0x90F1
+// Version : V1.3
+
+#ifndef _NL2_SDAP_UL_STATS_H
+#define _NL2_SDAP_UL_STATS_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NL2_SDAP_UL_STATS 0x90F1
+
+#define ICD_NL2_NL2_SDAP_UL_STATS_INFO_V1 1
+
+#define MAX_ICD_NL2_SDAP_UL_STATS_STRUCT_V1_NUMBER_OF_PDU_SESSION 15
+
+#define ICD_NL2_SDAP_UL_STATS_STRUCT_V1_MAX_SIZE 188
+
+typedef struct {
+ kal_uint32 pdu_session_id; // PDU session ID, value range: 1-15
+ kal_uint32 rx_packet_numbers; // Total received packet numbers from upper layer
+ kal_uint32 drop_packet_numbers; // Total dropped packet numbers
+} nl2_sdap_ul_stats_v1;
+
+typedef nl2_sdap_ul_stats_v1 nl2_sdap_ul_stats;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 number_of_pdu_session; // range[0, 15]
+ kal_uint8 reserved[6];
+ nl2_sdap_ul_stats pdu_session_statistics[MAX_ICD_NL2_SDAP_UL_STATS_STRUCT_V1_NUMBER_OF_PDU_SESSION]; // N := Number of PDU Session
+} icd_nl2_sdap_ul_stats_struct_v1;
+
+typedef icd_nl2_sdap_ul_stats_struct_v1 icd_nl2_sdap_ul_stats_struct;
+
+
+#endif /* _NL2_SDAP_UL_STATS_H */
+
+
+/* Public JSON start
+"NL2_SDAP_UL_Stats": {"info": {"Category": "NR", "Layer": "L2", "Code": "0x90F1", "Name": "NL2_SDAP_UL_Stats", "Type": "RECORD", "Desc": "The log is generated once every 1 second.\n"}, "table": {"NL2_SDAP_UL_Stats": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NL2_SDAP_UL_Stats_Versions", "1", "8", "VAR", ""]}, "Name": "NL2_SDAP_UL_Stats"}, "NL2_SDAP_UL_Stats_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NL2_SDAP_UL_Stats_Info_V1", ""]}, "Name": "NL2_SDAP_UL_Stats_Versions"}, "NL2_SDAP_UL_Stats_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"PDU Session Statistics": "Number of PDU Session"}, "Name": "NL2_SDAP_UL_Stats_Info_V1", "Data": {"0": ["Number of PDU Session", "UINT8", "1", "0", "8", "range[0, 15]"], "1": ["Reserved", "UINT8", "6", "8", "48", ""], "2": ["PDU Session Statistics", "NL2_SDAP_UL_Stats_V1", "N", "56", "VAR", "N := Number of PDU Session"]}}, "NL2_SDAP_UL_Stats_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PDU session ID", "UINT32", "1", "0", "32", "PDU session ID, value range: 1-15"], "1": ["Rx packet numbers", "UINT32", "1", "32", "32", "Total received packet numbers from upper layer"], "2": ["Drop packet numbers", "UINT32", "1", "64", "32", "Total dropped packet numbers"]}, "Name": "NL2_SDAP_UL_Stats_V1"}}},
+ Public JSON end */
+// Checksum : [7f0220161287188591e9f47c5fffe0b4]
diff --git a/mcu/interface/service/icd/nrrc/NRRC_IR_EUTRAN_MEAS_INFO.h b/mcu/interface/service/icd/nrrc/NRRC_IR_EUTRAN_MEAS_INFO.h
new file mode 100644
index 0000000..b585969
--- /dev/null
+++ b/mcu/interface/service/icd/nrrc/NRRC_IR_EUTRAN_MEAS_INFO.h
@@ -0,0 +1,58 @@
+// ICD Header Format v3
+// Name : NRRC_IR_EUTRAN_MEAS_Info
+// Category : NR
+// Layer : NRRC
+// Type : RECORD
+// Code : 0x9102
+// Version : V1.3
+
+#ifndef _NRRC_IR_EUTRAN_MEAS_INFO_H
+#define _NRRC_IR_EUTRAN_MEAS_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_IR_EUTRAN_MEAS_INFO 0x9102
+
+#define ICD_NRRC_NRRC_IR_EUTRAN_MEAS_INFO_V1 1
+
+#define ICD_NRRC_IR_EUTRAN_MEAS_INFO_STRUCT_V1_MAX_SIZE 1284
+
+typedef struct {
+ kal_uint16 psc; // Primary Scrambling Code
+ kal_uint16 reserved;
+ kal_int32 neighbor_rsrp; // RSRP of LTE neighbor cell
+ kal_int32 neighbor_rsrq; // RSRQ of LTE neighbor cell
+} nrrc_ecell_meas_info_v1;
+
+typedef nrrc_ecell_meas_info_v1 nrrc_ecell_meas_info;
+
+typedef struct {
+ kal_uint8 num_of_eutran_cell; // Number of EUTRAN neighbor measurements on this frequency,
+ // range[0, 6]
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ kal_uint32 earfcn; // Earfcn of neighbor cell
+ nrrc_ecell_meas_info ecell_measurement[6]; // Number of EUTRAN neighbor measurements
+} nrrc_eutran_meas_result_info_v1;
+
+typedef nrrc_eutran_meas_result_info_v1 nrrc_eutran_meas_result_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 num_of_eutran_freq; // Number of EUTRAN frequency for neighbor measurements,
+ // range[0, 16]
+ kal_uint16 reserved;
+ nrrc_eutran_meas_result_info eutran_freq_meas[16]; // Array of EUTRAN frequency neighbor measurements
+} icd_nrrc_ir_eutran_meas_info_struct_v1;
+
+typedef icd_nrrc_ir_eutran_meas_info_struct_v1 icd_nrrc_ir_eutran_meas_info_struct;
+
+
+#endif /* _NRRC_IR_EUTRAN_MEAS_INFO_H */
+
+
+/* Public JSON start
+"NRRC_IR_EUTRAN_MEAS_Info": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9102", "Name": "NRRC_IR_EUTRAN_MEAS_Info", "Type": "RECORD", "Desc": "The log is generated periodically for InterRAT EUTRAN measurement result.\n(Idle DRX or every 400ms or reportInterval).\n"}, "table": {"NRRC_IR_EUTRAN_Meas_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_IR_EUTRAN_Meas_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_IR_EUTRAN_Meas_Info"}, "NRRC_IR_EUTRAN_Meas_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_IR_EUTRAN_Meas_Info_V1", ""]}, "Name": "NRRC_IR_EUTRAN_Meas_Info_Versions"}, "NRRC_IR_EUTRAN_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of EUTRAN Freq", "UINT8", "1", "0", "8", "Number of EUTRAN frequency for neighbor measurements,\nrange[0, 16]"], "1": ["Reserved", "UINT16", "1", "8", "16", ""], "2": ["EUTRAN Freq Meas", "NRRC_EUTRAN_Meas_Result_Info_V1", "16", "24", "10240", "Array of EUTRAN frequency neighbor measurements"]}, "Name": "NRRC_IR_EUTRAN_Meas_Info_V1"}, "NRRC_EUTRAN_Meas_Result_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of EUTRAN Cell", "UINT8", "1", "0", "8", "Number of EUTRAN neighbor measurements on this frequency,\nrange[0, 6]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Earfcn", "UINT32", "1", "32", "32", "Earfcn of neighbor cell"], "4": ["ECell Measurement", "NRRC_ECell_Meas_Info_V1", "6", "64", "576", "Number of EUTRAN neighbor measurements"]}, "Name": "NRRC_EUTRAN_Meas_Result_Info_V1"}, "NRRC_ECell_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["PSC", "UINT16", "1", "0", "16", "Primary Scrambling Code"], "1": ["Reserved", "UINT16", "1", "16", "16", ""], "2": ["Neighbor Rsrp", "INT32", "1", "32", "32", "RSRP of LTE neighbor cell"], "3": ["Neighbor Rsrq", "INT32", "1", "64", "32", "RSRQ of LTE neighbor cell"]}, "Name": "NRRC_ECell_Meas_Info_V1"}}},
+ Public JSON end */
+// Checksum : [c4a939c080a7f0d96555f452d64b4cd4]
diff --git a/mcu/interface/service/icd/nrrc/NRRC_MEAS_INFO.h b/mcu/interface/service/icd/nrrc/NRRC_MEAS_INFO.h
new file mode 100644
index 0000000..69524f1
--- /dev/null
+++ b/mcu/interface/service/icd/nrrc/NRRC_MEAS_INFO.h
@@ -0,0 +1,94 @@
+// ICD Header Format v3
+// Name : NRRC_MEAS_Info
+// Category : NR
+// Layer : NRRC
+// Type : RECORD
+// Code : 0x9101
+// Version : V1.3
+
+#ifndef _NRRC_MEAS_INFO_H
+#define _NRRC_MEAS_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_MEAS_INFO 0x9101
+
+#define ICD_NRRC_NRRC_MEAS_INFO_V2 2
+
+#define MAX_ICD_NRRC_MEAS_INFO_STRUCT_V2_NUM_OF_INTRA_CELL 16
+
+#define ICD_NRRC_MEAS_INFO_STRUCT_V2_MAX_SIZE 436
+
+typedef struct {
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint8 neighbor_rsrp; // RSRP of neighbor cell over last measurement period
+ kal_uint8 neighbor_rsrq; // RSRQ of neighbor cell over last measurement period
+ kal_uint8 neighbor_sinr; // SINR of neighbor cell over last measurement period
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} nrrc_cell_meas_info_v2;
+
+typedef nrrc_cell_meas_info_v2 nrrc_cell_meas_info;
+
+typedef struct {
+ kal_uint8 num_of_inter_cell; // Number of inter frequency neighbor measurements on this
+ // frequency, range[0, 6]
+ kal_uint8 is_black_list_present_for_inter; // Indicate inter-freq black list exists
+ kal_uint16 reserved;
+ kal_uint32 nrarfcn; // NR-arfcn of neighbor cell
+ nrrc_cell_meas_info inter_cell_measurement[6]; // Number of inter frequency neighbor measurements
+} nrrc_inter_meas_result_info_v2;
+
+typedef nrrc_inter_meas_result_info_v2 nrrc_inter_meas_result_info;
+
+typedef struct {
+ kal_uint8 num_of_inter_freq; // Number of inter frequency for neighbor measurements,
+ // range[0, 4]
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+ nrrc_inter_meas_result_info inter_freq_meas[4]; // Array of inter frequency neighbor measurements
+} nrrc_neighbor_meas_result_info_v2;
+
+typedef nrrc_neighbor_meas_result_info_v2 nrrc_neighbor_meas_result_info;
+
+typedef struct {
+ kal_uint16 barred_cell_id; // Physical cell identity
+ kal_uint16 reserved;
+} nrrc_barred_cell_info;
+
+typedef nrrc_barred_cell_info nrrc_barred_cell_inf;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 servindex; // Indicates whether this metric is reporting on Primary
+ // Component Carrier(PCC) or Secondary Component Carriers
+ // (SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index
+ kal_uint16 physical_cell_id; // Physical cell identity
+ kal_uint32 serv_nrarfcn; // Serving NR-arfcn
+ kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
+ kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
+ kal_uint8 serv_sinr; // SINR of serving cell over last measurement period
+ kal_uint8 reserved;
+ kal_uint8 num_of_barred_cells; // Number of Barred cells, range[0, 16]
+ kal_uint8 valid_for_meas_array; // Check if the result of meas array is valid.
+ // No duplicated data reported on SCell.(i.e. ServIndex > 0)
+ kal_uint8 num_of_intra_cell; // Number of intra frequency neighbor measurements,
+ // range[0, 16]
+ kal_uint8 is_black_list_present_for_intra; // Indicate intra-freq black list exists
+ nrrc_barred_cell_inf barred_cells[16]; // Array of barred cells
+ nrrc_neighbor_meas_result_info inter_neighbor_meas_result; // Array of inter neighbor measurement result
+ nrrc_cell_meas_info intra_cell_measurement[FLEXIBLE_ARRAY_SIZE]; // N := Num of Intra Cell
+ // Number of intra frequency neighbor measurements
+} icd_nrrc_meas_info_struct_v2;
+
+typedef icd_nrrc_meas_info_struct_v2 icd_nrrc_meas_info_struct;
+
+
+#endif /* _NRRC_MEAS_INFO_H */
+
+
+/* Public JSON start
+"NRRC_MEAS_Info": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9101", "Name": "NRRC_MEAS_Info", "Type": "RECORD", "Desc": "The log is generated periodically for Intra/Inter frequency measurement result.\n(Idle DRX or every 400ms or reportInterval).\n"}, "table": {"NRRC_Meas_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_Meas_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_Meas_Info"}, "NRRC_Meas_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_Meas_Info_V1", ""], "1": ["2", "NRRC_Meas_Info_V2", ""]}, "Name": "NRRC_Meas_Info_Versions"}, "NRRC_Meas_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Intra Cell Measurement": "Num of Intra Cell"}, "Name": "NRRC_Meas_Info_V1", "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Serv NRarfcn", "UINT32", "1", "24", "32", "Serving NR-arfcn"], "3": ["Serv Rsrp", "UINT8", "1", "56", "8", "RSRP of serving cell over last measurement period"], "4": ["Serv Rsrq", "UINT8", "1", "64", "8", "RSRQ of serving cell over last measurement period"], "5": ["Serv SINR", "UINT8", "1", "72", "8", "SINR of serving cell over last measurement period"], "6": ["Reserved", "UINT8", "1", "80", "8", ""], "7": ["Num of Barred Cells", "UINT8", "1", "88", "8", "Number of Barred cells, range[0, 16]"], "8": ["Valid for Meas Array", "UINT8", "1", "96", "8", "Check if the result of meas array is valid.\nNo duplicated data reported on SCell.(i.e. ServIndex > 0)"], "9": ["Num of Intra Cell", "UINT8", "1", "104", "8", "Number of intra frequency neighbor measurements,\nrange[0, 16]"], "10": ["Is Black List Present for Intra", "UINT8", "1", "112", "8", "Indicate intra-freq black list exists"], "11": ["Barred Cells", "NRRC_Barred_Cell_info", "16", "120", "512", "Array of barred cells"], "12": ["Inter Neighbor Meas Result", "NRRC_Neighbor_Meas_Result_Info", "1", "632", "1056", "Array of inter neighbor measurement result"], "13": ["Intra Cell Measurement", "NRRC_Cell_Meas_Info", "N", "1688", "VAR", "N := Num of Intra Cell\nNumber of intra frequency neighbor measurements"]}}, "NRRC_Barred_Cell_info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Barred Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "NRRC_Barred_Cell_info"}, "NRRC_Neighbor_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Freq", "UINT8", "1", "0", "8", "Number of inter frequency for neighbor measurements,\nrange[0, 4]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Inter Freq Meas", "NRRC_Inter_Meas_Result_Info", "4", "32", "1024", "Array of inter frequency neighbor measurements"]}, "Name": "NRRC_Neighbor_Meas_Result_Info"}, "NRRC_Inter_Meas_Result_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Cell", "UINT8", "1", "0", "8", "Number of inter frequency neighbor measurements on this\nfrequency, range[0, 6]"], "1": ["Is Black List Present for Inter", "UINT8", "1", "8", "8", "Indicate inter-freq black list exists"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["NRarfcn", "UINT32", "1", "32", "32", "NR-arfcn of neighbor cell"], "4": ["Inter Cell Measurement", "NRRC_Cell_Meas_Info", "6", "64", "192", "Number of inter frequency neighbor measurements"]}, "Name": "NRRC_Inter_Meas_Result_Info"}, "NRRC_Cell_Meas_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Neighbor Rsrp", "UINT8", "1", "16", "8", "RSRP of neighbor cell over last measurement period"], "2": ["Neighbor Rsrq", "UINT8", "1", "24", "8", "RSRQ of neighbor cell over last measurement period"]}, "Name": "NRRC_Cell_Meas_Info"}, "NRRC_Meas_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Intra Cell Measurement": "Num of Intra Cell"}, "Name": "NRRC_Meas_Info_V2", "Data": {"0": ["ServIndex", "UINT8", "1", "0", "8", "Indicates whether this metric is reporting on Primary\nComponent Carrier(PCC) or Secondary Component Carriers\n(SCC). range[0, 7], Values: 0: PCell, 1-7: SCell Index"], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical cell identity"], "2": ["Serv NRarfcn", "UINT32", "1", "24", "32", "Serving NR-arfcn"], "3": ["Serv Rsrp", "UINT8", "1", "56", "8", "RSRP of serving cell over last measurement period"], "4": ["Serv Rsrq", "UINT8", "1", "64", "8", "RSRQ of serving cell over last measurement period"], "5": ["Serv SINR", "UINT8", "1", "72", "8", "SINR of serving cell over last measurement period"], "6": ["Reserved", "UINT8", "1", "80", "8", ""], "7": ["Num of Barred Cells", "UINT8", "1", "88", "8", "Number of Barred cells, range[0, 16]"], "8": ["Valid for Meas Array", "UINT8", "1", "96", "8", "Check if the result of meas array is valid.\nNo duplicated data reported on SCell.(i.e. ServIndex > 0)"], "9": ["Num of Intra Cell", "UINT8", "1", "104", "8", "Number of intra frequency neighbor measurements,\nrange[0, 16]"], "10": ["Is Black List Present for Intra", "UINT8", "1", "112", "8", "Indicate intra-freq black list exists"], "11": ["Barred Cells", "NRRC_Barred_Cell_info", "16", "120", "512", "Array of barred cells"], "12": ["Inter Neighbor Meas Result", "NRRC_Neighbor_Meas_Result_Info_V2", "1", "632", "1824", "Array of inter neighbor measurement result"], "13": ["Intra Cell Measurement", "NRRC_Cell_Meas_Info_V2", "N", "2456", "VAR", "N := Num of Intra Cell\nNumber of intra frequency neighbor measurements"]}}, "NRRC_Neighbor_Meas_Result_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Freq", "UINT8", "1", "0", "8", "Number of inter frequency for neighbor measurements,\nrange[0, 4]"], "1": ["Reserved", "UINT8", "1", "8", "8", ""], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["Inter Freq Meas", "NRRC_Inter_Meas_Result_Info_V2", "4", "32", "1792", "Array of inter frequency neighbor measurements"]}, "Name": "NRRC_Neighbor_Meas_Result_Info_V2"}, "NRRC_Inter_Meas_Result_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Inter Cell", "UINT8", "1", "0", "8", "Number of inter frequency neighbor measurements on this\nfrequency, range[0, 6]"], "1": ["Is Black List Present for Inter", "UINT8", "1", "8", "8", "Indicate inter-freq black list exists"], "2": ["Reserved", "UINT16", "1", "16", "16", ""], "3": ["NRarfcn", "UINT32", "1", "32", "32", "NR-arfcn of neighbor cell"], "4": ["Inter Cell Measurement", "NRRC_Cell_Meas_Info_V2", "6", "64", "384", "Number of inter frequency neighbor measurements"]}, "Name": "NRRC_Inter_Meas_Result_Info_V2"}, "NRRC_Cell_Meas_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical cell identity"], "1": ["Neighbor Rsrp", "UINT8", "1", "16", "8", "RSRP of neighbor cell over last measurement period"], "2": ["Neighbor Rsrq", "UINT8", "1", "24", "8", "RSRQ of neighbor cell over last measurement period"], "3": ["Neighbor Sinr", "UINT8", "1", "32", "8", "SINR of neighbor cell over last measurement period"], "4": ["Reserved", "UINT8", "1", "40", "8", ""], "5": ["Reserved", "UINT16", "1", "48", "16", ""]}, "Name": "NRRC_Cell_Meas_Info_V2"}}},
+ Public JSON end */
+// Checksum : [a1f3ebd2bb519b36c6cf982fd4a34d8f]
diff --git a/mcu/interface/service/icd/nrrc/NRRC_NEIGHBOR_CELL_INFO.h b/mcu/interface/service/icd/nrrc/NRRC_NEIGHBOR_CELL_INFO.h
new file mode 100644
index 0000000..216a8fd
--- /dev/null
+++ b/mcu/interface/service/icd/nrrc/NRRC_NEIGHBOR_CELL_INFO.h
@@ -0,0 +1,59 @@
+// ICD Header Format v3
+// Name : NRRC_NEIGHBOR_CELL_Info
+// Category : NR
+// Layer : NRRC
+// Type : RECORD
+// Code : 0x9100
+// Version : V1.3
+
+#ifndef _NRRC_NEIGHBOR_CELL_INFO_H
+#define _NRRC_NEIGHBOR_CELL_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_NEIGHBOR_CELL_INFO 0x9100
+
+#define ICD_NRRC_NRRC_NEIGHBOR_CELL_INFO_V1 1
+
+#define ICD_NRRC_NEIGHBOR_CELL_INFO_STRUCT_V1_MAX_SIZE 132
+
+typedef struct {
+ kal_uint32 earfcn; // LTE Earfcn
+} nrrc_lte_freq_info_v1;
+
+typedef nrrc_lte_freq_info_v1 nrrc_lte_freq_info;
+
+typedef struct {
+ kal_uint32 nrarfcn; // NR-arfcn
+} nrrc_inter_freq_info_v1;
+
+typedef nrrc_inter_freq_info_v1 nrrc_inter_freq_info;
+
+typedef struct {
+ kal_uint16 physical_cell_id; // Physical Cell ID
+ kal_uint16 reserved;
+} nrrc_intra_cell_info_v1;
+
+typedef nrrc_intra_cell_info_v1 nrrc_intra_cell_info;
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 num_of_intra_cell; // Number of NR Intra cells in SIB3, range[0, 16]
+ kal_uint8 num_of_inter_freq; // Number of NR Inter frequencies in SIB4, range[0, 8]
+ kal_uint8 num_of_lte_freq; // Number of LTE frequencies in SIB5, range[0, 8]
+ nrrc_intra_cell_info intra_cell[16]; // Array of NR Intra cells in SIB3
+ nrrc_inter_freq_info inter_freq[8]; // Array of NR Inter frequencies in SIB4
+ nrrc_lte_freq_info lte_freq[8]; // Array of LTE frequencies in SIB5
+} icd_nrrc_neighbor_cell_info_struct_v1;
+
+typedef icd_nrrc_neighbor_cell_info_struct_v1 icd_nrrc_neighbor_cell_info_struct;
+
+
+#endif /* _NRRC_NEIGHBOR_CELL_INFO_H */
+
+
+/* Public JSON start
+"NRRC_NEIGHBOR_CELL_Info": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9100", "Name": "NRRC_NEIGHBOR_CELL_Info", "Type": "RECORD", "Desc": "The log is generated when neighbor cell information in SIBs has been read successfully or updated.\n"}, "table": {"NRRC_NEIGHBOR_CELL_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "NRRC_NEIGHBOR_CELL_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_NEIGHBOR_CELL_Info"}, "NRRC_NEIGHBOR_CELL_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_NEIGHBOR_CELL_Info_V1", ""]}, "Name": "NRRC_NEIGHBOR_CELL_Info_Versions"}, "NRRC_NEIGHBOR_CELL_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Num of Intra Cell", "UINT8", "1", "0", "8", "Number of NR Intra cells in SIB3, range[0, 16]"], "1": ["Num of Inter Freq", "UINT8", "1", "8", "8", "Number of NR Inter frequencies in SIB4, range[0, 8]"], "2": ["Num of LTE Freq", "UINT8", "1", "16", "8", "Number of LTE frequencies in SIB5, range[0, 8]"], "3": ["Intra Cell", "NRRC_Intra_Cell_Info_V1", "16", "24", "512", "Array of NR Intra cells in SIB3"], "4": ["Inter Freq", "NRRC_Inter_Freq_Info_V1", "8", "536", "256", "Array of NR Inter frequencies in SIB4"], "5": ["LTE Freq", "NRRC_LTE_Freq_Info_V1", "8", "792", "256", "Array of LTE frequencies in SIB5"]}, "Name": "NRRC_NEIGHBOR_CELL_Info_V1"}, "NRRC_Intra_Cell_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Physical Cell ID", "UINT16", "1", "0", "16", "Physical Cell ID"], "1": ["Reserved", "UINT16", "1", "16", "16", ""]}, "Name": "NRRC_Intra_Cell_Info_V1"}, "NRRC_Inter_Freq_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["NRarfcn", "UINT32", "1", "0", "32", "NR-arfcn"]}, "Name": "NRRC_Inter_Freq_Info_V1"}, "NRRC_LTE_Freq_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Earfcn", "UINT32", "1", "0", "32", "LTE Earfcn"]}, "Name": "NRRC_LTE_Freq_Info_V1"}}},
+ Public JSON end */
+// Checksum : [8c6c0604e6a08f77573198d907414bf9]
diff --git a/mcu/interface/service/icd/nrrc/NRRC_SIB_READ_INFO.h b/mcu/interface/service/icd/nrrc/NRRC_SIB_READ_INFO.h
new file mode 100644
index 0000000..1db5bd7
--- /dev/null
+++ b/mcu/interface/service/icd/nrrc/NRRC_SIB_READ_INFO.h
@@ -0,0 +1,72 @@
+// ICD Header Format v3
+// Name : NRRC_SIB_Read_Info
+// Category : NR
+// Layer : NRRC
+// Type : RECORD
+// Code : 0x9103
+// Version : t-internal-nr-icd-draft3RC1-248-gc47cced
+
+#ifndef _NRRC_SIB_READ_INFO_H
+#define _NRRC_SIB_READ_INFO_H
+
+#include "icd_codes.h"
+
+
+#define ICD_NRRC_SIB_READ_INFO 0x9103
+
+#define ICD_NRRC_NRRC_MIBSIB_READ_INFO_V2 2
+
+#define ICD_NRRC_MIBSIB_READ_INFO_STRUCT_V2_MAX_SIZE 24
+
+typedef struct {
+ kal_uint32 sibmask; // Bit mask for one or more SIB types which were
+ // successfully read (Bit 0 for SIB1, Bit 1 for
+ // SIB 2, ...).
+ // For example, if SibMask=11, the binary format
+ // is 1011, which means SIB1, SIB2, SIB4 were
+ // read.
+ kal_uint32 system_info_mask; // List of SIB types mapped to systeminformation
+ // message, refer to "SIB-Mapping" in 3GPP
+ // TS 38.331.
+ // Bit mask for one or more SIB types. (Bit 0 for
+ // SIB1, Bit 1 for SIB 2, ...). Only applicable
+ // to SIB1 message, for all other SIB messages,
+ // report a SEQUENCE with no element.
+ kal_uint8 system_info_msg; // Total number of different SIBs received by UE
+ kal_uint8 reserved;
+ kal_uint16 reserved_1;
+} nrrc_sib_content_info_v2;
+
+typedef nrrc_sib_content_info_v2 nrrc_sib_content_info;
+
+typedef struct {
+ kal_uint32 subcarrierspacing:8; // SubCarrierSpacing
+ // 1: scs15or60
+ // 2: scs30or120
+ kal_uint32 reserved:24;
+} nrrc_mib_content_info_v2;
+
+typedef nrrc_mib_content_info_v2 nrrc_mib_content_info;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 mibsib_read_result; // 0: Read Success
+ // 1: Read Fail, content will be 0.
+ kal_uint16 physical_cell_id; // Physical Cell ID
+ kal_uint32 freq; // NR-arfcn
+ nrrc_mib_content_info mib_content; // MIB Content, MIB is not available
+ // when MIB content is 0.
+ nrrc_sib_content_info sib_content; // SIB Content, SIB is not available
+ // when SIB content is 0.
+} icd_nrrc_mibsib_read_info_struct_v2;
+
+typedef icd_nrrc_mibsib_read_info_struct_v2 icd_nrrc_mibsib_read_info_struct;
+
+
+#endif /* _NRRC_SIB_READ_INFO_H */
+
+
+/* Public JSON start
+"NRRC_SIB_Read_Info": {"info": {"Category": "NR", "Layer": "RRC", "Code": "0x9103", "Name": "NRRC_SIB_Read_Info", "Type": "RECORD", "Desc": "The log is generated when indicated MIB and SIBs have been read successfully or failed.\n"}, "table": {"NRRC_MIBSIB_Read_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log event structure ID"], "1": ["Versions", "NRRC_MIBSIB_Read_Info_Versions", "1", "8", "VAR", ""]}, "Name": "NRRC_MIBSIB_Read_Info"}, "NRRC_MIBSIB_Read_Info_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "NRRC_MIBSIB_Read_Info_V1", ""], "1": ["2", "NRRC_MIBSIB_Read_Info_V2", ""]}, "Name": "NRRC_MIBSIB_Read_Info_Versions"}, "NRRC_MIBSIB_Read_Info_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MIBSIB Read Result", "UINT8", "1", "0", "8", "0: Read Success\n1: Read Fail, content will be 0."], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical Cell ID"], "2": ["Freq", "UINT32", "1", "24", "32", "NR-arfcn"], "3": ["MIB Content", "MIB_Content_Info", "1", "56", "32", "MIB Content, MIB is not available\nwhen MIB content is 0."], "4": ["SIB Content", "SIB_Content_Info", "1", "88", "96", "SIB Content, SIB is not available\nwhen SIB content is 0."]}, "Name": "NRRC_MIBSIB_Read_Info_V1"}, "NRRC_MIBSIB_Read_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["MIBSIB Read Result", "UINT8", "1", "0", "8", "0: Read Success\n1: Read Fail, content will be 0."], "1": ["Physical Cell ID", "UINT16", "1", "8", "16", "Physical Cell ID"], "2": ["Freq", "UINT32", "1", "24", "32", "NR-arfcn"], "3": ["MIB Content", "NRRC_MIB_Content_Info_V2", "1", "56", "32", "MIB Content, MIB is not available\nwhen MIB content is 0."], "4": ["SIB Content", "NRRC_SIB_Content_Info_V2", "1", "88", "96", "SIB Content, SIB is not available\nwhen SIB content is 0."]}, "Name": "NRRC_MIBSIB_Read_Info_V2"}, "MIB_Content_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SubCarrierSpacing", "UINT32", "1", "0", "8", "SubCarrierSpacing\n1: scs15or60\n2: scs30or120"], "1": ["Reserved", "UINT32", "1", "8", "24", ""]}, "Name": "MIB_Content_Info"}, "NRRC_MIB_Content_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SubCarrierSpacing", "UINT32", "1", "0", "8", "SubCarrierSpacing\n1: scs15or60\n2: scs30or120"], "1": ["Reserved", "UINT32", "1", "8", "24", ""]}, "Name": "NRRC_MIB_Content_Info_V2"}, "SIB_Content_Info": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SibMask", "UINT32", "1", "0", "32", "Bit mask for one or more SIB types which were\nsuccessfully read (Bit 0 for SIB1, Bit 1 for\nSIB 2, ...).\nFor example, if SibMask=11, the binary format\nis 1011, which means SIB1, SIB2, SIB4 were\nread."], "1": ["System Info Mask", "UINT32", "1", "32", "32", "List of SIB types mapped to systeminformation\nmessage, refer to \"SIB-Mapping\" in 3GPP\nTS 38.331.\nBit mask for one or more SIB types. (Bit 0 for\nSIB1, Bit 1 for SIB 2, ...). Only applicable\nto SIB1 message, for all other SIB messages,\nreport a SEQUENCE with no element."], "2": ["System Info Msg", "UINT8", "1", "64", "8", "Total number of different SIBs received by UE"], "3": ["Reserved", "UINT8", "1", "72", "8", ""], "4": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "SIB_Content_Info"}, "NRRC_SIB_Content_Info_V2": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["SibMask", "UINT32", "1", "0", "32", "Bit mask for one or more SIB types which were\nsuccessfully read (Bit 0 for SIB1, Bit 1 for\nSIB 2, ...).\nFor example, if SibMask=11, the binary format\nis 1011, which means SIB1, SIB2, SIB4 were\nread."], "1": ["System Info Mask", "UINT32", "1", "32", "32", "List of SIB types mapped to systeminformation\nmessage, refer to \"SIB-Mapping\" in 3GPP\nTS 38.331.\nBit mask for one or more SIB types. (Bit 0 for\nSIB1, Bit 1 for SIB 2, ...). Only applicable\nto SIB1 message, for all other SIB messages,\nreport a SEQUENCE with no element."], "2": ["System Info Msg", "UINT8", "1", "64", "8", "Total number of different SIBs received by UE"], "3": ["Reserved", "UINT8", "1", "72", "8", ""], "4": ["Reserved", "UINT16", "1", "80", "16", ""]}, "Name": "NRRC_SIB_Content_Info_V2"}}},
+ Public JSON end */
+// Checksum : [e5e8e74f35eee9c64715de855e9fd7bf]
diff --git a/mcu/interface/service/icd/vgnas/VGNAS_OTA_Message.h b/mcu/interface/service/icd/vgnas/VGNAS_OTA_Message.h
new file mode 100644
index 0000000..b1ba9ca
--- /dev/null
+++ b/mcu/interface/service/icd/vgnas/VGNAS_OTA_Message.h
@@ -0,0 +1,52 @@
+// ICD Header Format v3
+// Name : VGNAS_OTA_Message
+// Category : NR
+// Layer : VGNAS
+// Type : RECORD
+// Code : 0x9180
+// Version : V1.3
+
+#ifndef _VGNAS_OTA_MESSAGE_H
+#define _VGNAS_OTA_MESSAGE_H
+
+#include "icd_codes.h"
+
+
+#define ICD_VGNAS_OTA_MESSAGE 0x9180
+
+#define ICD_VGNAS_VGNAS_OTA_MESSAGE_V1 1
+
+#define MAX_ICD_VGNAS_OTA_MESSAGE_STRUCT_V1_NUM_OF_PAYLOAD_LEN 8192
+
+#define ICD_VGNAS_OTA_MESSAGE_STRUCT_V1_MAX_SIZE 8200
+
+typedef struct {
+ kal_uint8 version; // Log record structure ID
+ kal_uint8 nas_release_number; // 3gpp release number (e.g. 13)
+ // majorVersion is 13
+ kal_uint8 nas_release_version; // 3gpp version number, left 4 bits are for
+ // x, right 4 bits are for y. (e.g. 01100001
+ // -> 6.1)
+ // minorVersion is x.y
+ // 3gppVersion is majorVersion.minorVersion
+ kal_uint8 ota_message_direction; // upstream (1)
+ // downstream (2)
+ kal_uint8 ciphered; // BOOLEAN
+ kal_uint8 reserved;
+ kal_uint16 num_of_payload_len; // Length of the ASN.1 encoded message.
+ // range[0, 8192]
+ kal_uint8 payload[FLEXIBLE_ARRAY_SIZE]; // N := Num of Payload len
+ // nasPayload OCTET STRING(SIZE (1..8192))
+ // ASN.1 encoded message
+} icd_vgnas_ota_message_struct_v1;
+
+typedef icd_vgnas_ota_message_struct_v1 icd_vgnas_ota_message_struct;
+
+
+#endif /* _VGNAS_OTA_MESSAGE_H */
+
+
+/* Public JSON start
+"VGNAS_OTA_Message": {"info": {"Category": "NR", "Layer": "NAS", "Code": "0x9180", "Name": "VGNAS_OTA_Message", "Type": "RECORD", "Desc": "The log is generated when there is 5G NAS air messages.\n"}, "table": {"VGNAS_Ota_Message": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Data": {"0": ["Version", "UINT8", "1", "0", "8", "Log record structure ID"], "1": ["Versions", "VGNAS_Ota_Message_Versions", "1", "8", "VAR", ""]}, "Name": "VGNAS_Ota_Message"}, "VGNAS_Ota_Message_Versions": {"ColNum": 3, "Header": ["ID", "Type Name", "Description"], "Data": {"0": ["1", "VGNAS_Ota_Message_V1", ""]}, "Name": "VGNAS_Ota_Message_Versions"}, "VGNAS_Ota_Message_V1": {"ColNum": 6, "Header": ["Field", "Type Name", "Count", "Offset", "Length\n(bits)", "Description"], "Ref": {"Payload": "Num of Payload len"}, "Name": "VGNAS_Ota_Message_V1", "Data": {"0": ["NAS Release Number", "UINT8", "1", "0", "8", "3gpp release number (e.g. 13)\nmajorVersion is 13"], "1": ["NAS Release Version", "UINT8", "1", "8", "8", "3gpp version number, left 4 bits are for\nx, right 4 bits are for y. (e.g. 01100001\n-> 6.1)\nminorVersion is x.y\n3gppVersion is majorVersion.minorVersion"], "2": ["Ota Message Direction", "UINT8", "1", "16", "8", "upstream (1)\ndownstream (2)"], "3": ["Ciphered", "UINT8", "1", "24", "8", "BOOLEAN"], "4": ["Reserved", "UINT8", "1", "32", "8", ""], "5": ["Num of Payload len", "UINT16", "1", "40", "16", "Length of the ASN.1 encoded message.\nrange[0, 8192]"], "6": ["Payload", "UINT8", "N", "56", "VAR", "N := Num of Payload len\nnasPayload OCTET STRING(SIZE (1..8192))\nASN.1 encoded message"]}}}},
+ Public JSON end */
+// Checksum : [1a9ab68b1007a92369bfab4eb254853c]