├── 移动基带安全研究系列之系统篇.pdf ├── image-20210308164203970.png ├── image-20210322162235900.png ├── image-20210325161755813.png ├── Qualcomm_BaseBand_Messaging_and_State_Machine.md └── sm.svg /移动基带安全研究系列之系统篇.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vessial/baseband/HEAD/移动基带安全研究系列之系统篇.pdf -------------------------------------------------------------------------------- /image-20210308164203970.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vessial/baseband/HEAD/image-20210308164203970.png -------------------------------------------------------------------------------- /image-20210322162235900.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vessial/baseband/HEAD/image-20210322162235900.png -------------------------------------------------------------------------------- /image-20210325161755813.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vessial/baseband/HEAD/image-20210325161755813.png -------------------------------------------------------------------------------- /Qualcomm_BaseBand_Messaging_and_State_Machine.md: -------------------------------------------------------------------------------- 1 | # 深度揭密高通4/5G移动基带消息系统和状态机 2 | 3 | ## 背景 4 | 5 | 本技术分析文章通过对高通的4/5G移动基带系统进行深入逆向工程提示其内部消息通信机制以及核心架构设计逻辑,本文的研究基于高通的4G基带MDM9707以及5G基带模块sdx55的固件之上分析完成,高通基带系统现在都是基于高通主流的hexagon DSP指令架构来实现,该架构非常适合应用于音视频编解码,计算机视觉等,软件无线电等应用中的浮点和向量计算,在高通骁龙处理器的子系统中大量使用,大多应用于手机,汽车,可穿戴设备以及移动通信设备中,Hexagon DSP相关信息可以从[这里](https://developer.qualcomm.com/software/hexagon-dsp-sdk/dsp-processor)获取,运行在Hexagon DSP芯片上的操作系统QuRT是由高通设计的实时操作系统,高通基带系统所有的上层业务将会运行在该操作系统之上,阅读该技术分析文章之前,假定你已经对操作系统的原理有所了解,例如CPU调度,IPC(进程间通信),以及基本的数据队列enqueue/dequeue的操作。 6 | 7 | ## 消息机制简介 8 | 9 | 一个系统里面运行着不同的任务,不同任务在不同的运行状态在处理相应的业务逻辑时可能需要与其它任务交换数据或者同步信息,这里面就需要操作系统的底层IPC机制来完成了,3GPP组织定义了不同移动通信技术从物理层/链路层/逻辑处理层等各种标准,例如(5GNR/4GLTE/3G WCDMA/TD-SCDMA/CDMA2000/2G /GSM等通信技术),这些技术标准在基带系统里面实现会被划分成不同的任务来维护不同的状态,处理不同的消息信令,以及维护不同通信技术的切换等操作,比如现在的大部分智能手机基带系统基本上都支持2/3/4G通信相关的技术,这些基带系统根据移动运营商支持的移动通信技术和国家区域支持的标准的不同会使用相应的移动通信技术,比如中国在3G时代中国移动使用的TD-SCDMA,而中国联通使用的是WCDMA技术,为了保证移动设备的一些基本功能的可用性(语音通信和sms短信息),比如某些地方部署了4G基站,你可以在那里使用4G LTE的(Voice-over-IP/SMS-over-IP)通信技术,在一些偏远的地区可能只部署了2G基站,这时基带系统根据环境切换到GSM的协议栈,这些功能的维护与切换从基带系统层面来讲都需要系统消息机制来配合完成。 10 | 11 | 高通基带系统的消息机制建立在运行的实时操作系统QuRT之上,之前我有一篇[文章](https://www.freebuf.com/articles/terminal/213807.html)有简单介绍过底层IPC机制,今天我将详细介绍上层业务逻辑相关的消息传递机制与数据结构。我们把运行在基带系统上的业务逻辑实体的最小单位定义为线程(thread),根据线程生命周期的不同分为以下两大类: 12 | 13 | * 短生命周期线程 14 | * 驱动/任务初始化线程(Driver initiator/Services Launcher) 15 | * 中断服务例程(IST) 16 | * 长生命周期线程 17 | * 阻塞型消息接受线程 18 | 19 | ![image-20210308164203970](https://github.com/vessial/baseband/blob/master/image-20210308164203970.png) 20 | 21 | 消息通信底层API封装简介: 22 | 23 | ``` 24 | //信号发送 25 | int rex_send_sigs(utcb *dst_task_obj,unsigned int signal_id); 26 | //第一个参数为向目标任务发送消息的结构定义,第二个参数为要发送的信号id 27 | int rex_wait_sigs(unsigned int recv_sigs_masks); 28 | //第一个参数为可以允许接受信号id的掩码,每个任务最多可以设置可接受信号id个数为32个,每个任务可以接受多个信号id时,通过信号id的或操作来得到该任务可以接受信号的掩码,返回值为接受到的信号id 29 | 30 | //如果是带数据的信号发送,封装底层API,类似如下 31 | int send_sigs_with_dat(utcb *dst_task_obj,unsigned int signal_id,data_queue *send_data_queue); 32 | int recv_sigs_with_dat(unsigned int recv_sigs_masks,data_queue *recv_data_queue); 33 | ``` 34 | 35 | 而根据任务线程的业务功能的不同划分成以下几大类: 36 | 37 | * 系统功能任务 38 | * 通信技术协议栈分层任务 39 | * GSM/WCDMA/TDSCDMA/LTE L1/L2/L3相关的协议栈的任务等 40 | * 上层应用任务 41 | * IMS volte/ecall/数据服务/包服务等 42 | * 外设相关的任务 43 | * UIM/SIO/A2等 44 | 45 | 我在[这里](https://github.com/vessial/baseband/blob/master/dump_task.svg)记录了高通MDM9607基带系统一次实时运行的任务快照列表。 46 | 47 | ## 高通基带系统消息机制 48 | 49 | ### 消息通信核心架构设计逻辑 50 | 51 | * 兼容性 52 | * 在新的基带芯片上面开发新的移动通信技术单元的同时,保证老的功能模块能够正常使用,例如在开发5G功能的同时,以往的4G/3G/2G功能都能够正常使用和切换。 53 | * 可扩展性 54 | * 在已有的功能模块上增加新的功能,具备灵活的扩展性,而不需要作太大的软件和硬件改动。 55 | * 低耦合性 56 | * 新增的功能模块与已有系统上功能模块的耦合度低,接口少,减少引入问题的接口点和测试成本。 57 | 58 | 基于以上的设计理念,高通设计一套灵活的消息通信系统,一直到现在5GNR的基带系统也在用,接下来我将详细介绍该消息系统的架构,相关的算法和数据结构。 59 | 60 | ### 消息通信架构 61 | 62 | 为了区分不同任务所接受到的消息以及任务所能处理相应消息的原语操作权限,通过接受到的消息来区分消息来源以及接受到相应消息后的相应的处理动作,高通的消息系统引入了任务消息接受体(msgr_client)和UMID(Unique Message ID)的机制,任务消息接受体由相应的任务创建生成,并通过初始注册可接受消息UMID来设置任务相应原语操作的权限,每个任务可以创建一个或者多个msgr_client,每一个UMID消息也可以注册给多个msgr_client,每一个UMID消息标示着一次相应的原语操作,在MDM9607里面定义的UMID数量多达1万多个,而在最新高通的5G基带里面可使用的UMID高达2万多,每个UMID背后都对应着相应的原语操作,UMID的值与相应的命名规则如下。 63 | 64 | #### UMID由32位组成,结构如下表 65 | 66 | | Name | offset and length | Comment | 67 | | ---------- | ----------------- | ------------------------------------------------------------ | 68 | | tech_id | 24~31 8bits | eg, LTE->0x04, IMS->0x15, MDM9607 0x1b, SDX55 0x20 | 69 | | mod_id | 16~23 8bits | eg, 0xd -> RRC 0xf -> MAC 0x11-> RLC DL | 70 | | type_id | 8~15 8bits | type <= 0x09) \|\| (type >= 0x11 && type <= 0x17,totally 0x11 type_ids | 71 | | op_type_id | 4~8 4bits | Op entity ,eg IRAT_FROM_LTE_TO_G | 72 | | op_id | 0~3 4bits | Opcode seq, eg abort/search/startup/deinit/init/cfg etc | 73 | 74 | 注:if type_id>9 ,type_id=type_id-6 75 | offset bit 8~15 8bits type_id list 76 | 77 | | Type_name | value | Comment | 78 | | --------- | ----- | ------------------- | 79 | | CMD | 1 | Command primitive | 80 | | REQ | 2 | request | 81 | | RSP | 3 | response | 82 | | IND | 4 | indication | 83 | | DLM | 7 | downlink message | 84 | | CNF | 8 | confirm | 85 | | TMR | 9 | timer | 86 | | REQI | 0x12 | request Internal | 87 | | RSPI | 0x13 | Response internal | 88 | | INDI | 0x14 | indication internal | 89 | | CNFI | 0x15 | confirm internal | 90 | | TMRI | 0x16 | timer internal | 91 | 92 | 举个例子UMID 0x40D120E 对应的描述原语是LTE_RRC_IRAT_FROM_LTE_TO_G_RESEL_REQI,拆分结果如下: 93 | 94 | | name | value | 95 | | ------------------ | ----- | 96 | | LTE | 0x04 | 97 | | RRC | 0x0d | 98 | | REQI | 0x12 | 99 | | RESEL | 0x0 | 100 | | IRAT_FROM_LTE_TO_G | 0x0e | 101 | 102 | 注:这种UMID值的解析方法在某些定义里面并不适用,比如LTE_ML1_DLM_TST_SKIP_RACH_REQ的值为6,就没法用上面的方法解析,有些值并不严格遵循这种解析算法,可能是由于历史原因,定义UMID值的规则不一样。 103 | 104 | 基带系统把任务标示为多个不同的技术大类,来标示和模块化相应的子功能,以MDM9607为例: 105 | 106 | | tech_id | Tech_name | 107 | | ------- | ------------------------------------------------------------ | 108 | | 0 | MCS(Modem Common Service) | 109 | | 2 | MM_CM(0x201) UI(0x20a) (Unnumbered Information) MM_DOM(0x202),MM_MMOC(0x251) | 110 | | 4 | LTE | 111 | | 5 | FTM | 112 | | 6 | rfa_tech (0x600 rf_fwrsp,0x603 rfgsm, 0x604 rf_1x ,0x601 0x605 rf_hdr ,0x606 rfgsm_ftm,0x607 rf_lte,0x608 rf_lte_ftm,0x60b rf_qmi, 0x60c rf_meas,0x40f/0x1a04 rf_lte ,0x120f rf_tdscdma) | 113 | | 7 | cdma | 114 | | 8 | hdr | 115 | | 9 | gsm | 116 | | 0x0a | location(gps/gnss) | 117 | | 0x0b | wcdma | 118 | | 0x0c | ds(data service) | 119 | | 0x0d | 1x(csfb) | 120 | | 0x0f | nas(0xf19 mm, 0xf1c esm) | 121 | | 0x10 | gstk(Generic SIM Application Toolkit) | 122 | | 0x12 | tdscdma | 123 | | 0x13 | wms | 124 | | 0x15 | ims | 125 | | 0x16 | qmi | 126 | | 0x17 | ecall 0x1701 ecall_app ,0x1702 ecall_ivs | 127 | | 0x18 | policyman | 128 | | 0x1a | rflm | 129 | 130 | #### 模块ID 131 | 132 | 下图是MDM9607 LTE的部分子模块ID的对应关系 133 | 134 | | tech_id+mod_id | name | 135 | | -------------- | ---------------- | 136 | | 0x401 | ML1 MGR | 137 | | 0x407 | LL1_SRCH | 138 | | 0x408 | LL1_DL | 139 | | 0x409 | LL1_UL | 140 | | 0x40a | LL1_SYS | 141 | | 0x40b | LL1_Async | 142 | | 0x40d | RRC | 143 | | 0x40f | MAC | 144 | | 0x411 | RLC DL | 145 | | 0x412 | RLC UL | 146 | | 0x413 | PDCP DL | 147 | | 0x414 | PDCP UL | 148 | | 0x41b | ML1_GM | 149 | | 0x41e | SW.app | 150 | | 0x420 | ML1_GM_SCHDLR | 151 | | 0x427 | TLB(Test Loop ) | 152 | | 0x42b | ML1_GM_Sleep | 153 | | 0x434 | ML1_AFC | 154 | | 0x43b | PDCP offload | 155 | | 0x43e | ML1 offload | 156 | | 0x43f | ML1 Co-existence | 157 | | 0x441 | ML1 GM MSMGR | 158 | | 0x442 | PDCPCOMP | 159 | | 0x445 | ML1 SM FSCAN | 160 | 161 | 关键消息发送API: 162 | 163 | ``` 164 | msgr_send(umsg *buf,uint32 buf_size); 165 | struct umsg{ 166 | struct msgr_hdr_struct_type{ 167 | uint32 dest_umid; //offset 0 ,要发送的UMID号 168 | uint16 src_tech_mod_id; //offset 4,发送源tech_mod_id的标识 169 | uint8 num_attach;// offset 7 170 | uint8 tail_flag ;// offset 8 ,头部结尾标志0x7f 171 | uint8 inst_id;// offset 9, 172 | } 173 | uint8 send_dsm_flag;//offset 0x10 ,置1表示发送数据通过dsm结构承载的标志 174 | dsm *dsm_obj;//offset 0x14 , 发送数据dsm结构指针 175 | 176 | } 177 | msgrq_wait(void *msgr_client_ptr,void *msg_recv_buf,uint32 msg_recv_buf_size,uint32 *msg_recvd_size_ptr);//接受消息的函数 178 | msgr_register(uint16 mod_id,void *msgr_client_ptr,void *mailbox_obj,uint32 umid);//msgr_client注册umid的消息路由 179 | ``` 180 | 181 | 182 | 183 | #### 消息路由 184 | 185 | 我们已经了解到UMID所对应原语操作的含义,如果需要执行相应的原语操作,只需要向注册过UMID的模块发送umid消息即可,接下来我们需要了解umid消息是如何路由到相应模块(tech_mod_id)的消息接收器(msgr_client)的,下面会详细介绍相应的算法和数据结构,我整理了几张表来描述。 186 | 187 | | map_name | map_size | key | value | value_size | Memory Attribution | 188 | | ---------------- | ----------------------------- | -------------------------------------- | ------------------------------------- | ---------- | ------------------ | 189 | | techs_map | techs * 8 | tech_id | module_counts, modules_map | 8 bytes | Read Only | 190 | | modules_map | module_counts * 0x11 * 2 | (mod_id * 0x11+type_id) * 2 | types_map_id | 2 bytes | Read Only | 191 | | types_map | types_map_ids * 0x20 | types_map_id * 0x20 +(op_type_id&0x1e) | tech_mod_type_seq | 2 bytes | Read/Write | 192 | | umids_map | umid_seq_id * 0x8 | 8 * (tech_mod_type_seq+op_id) | umid, next_umid_seq_id,msgr_client_id | 8 bytes | Read/Write | 193 | | msgr_clients_map | 0x34*total_msgr_client_counts | msgr_client_seq_id | msgr_client_desc | 0x34 | Read/Write | 194 | 195 | ``` 196 | struct msgr_client_desc{ //全局msgr_client结构描述 197 | uint32 umids_registered; 198 | uint16 msgr_client_reg_type;//1 ->msgrq_sig type,2-> rexq_sig 199 | uint16 tech_mod_id;// 200 | union *msg_sig_p{ //offset 0x10 201 | struct msgrq_sig *msgq_p;//msgr reg type 1,4G及以后使用的mailbox消息传递系统 202 | struct rexq_sig *rexq_p;//msgr reg type 2,兼容2G/3G时代使用的Rex IPC消息传递系统 203 | } 204 | struct msgrq *msgrq_p;//offset 0x14 ,if reg type 1 205 | struct msgr_client_obj *msgr_client_obj_ptr;//offset 0x30 206 | 207 | } 208 | 209 | struct msgr_client_obj{//msgr_client结构体 210 | unsigned int msgr_client_reg_type;//1-> msgrq aka mailbox,2->rex_q,接受消息的方式 211 | unsigned int register_umid_counts;//offset 8 ,消息接受器注册的umid的总数 212 | unsigned int total_reged_recv_signal_counts;//offset 0x0c,注册的接受消息的signal的个数 213 | union sig_recv_obj{ 214 | msgrq_sig *msgrq_signal_obj;// offset 0x10 msgrq_sig type,4/5G未来的主流类型 215 | rexq_sig *rex_signal_obj;//offset 0x10 rexq_sig type ,这个主要是为了兼容之前2/3G的系统的数据结构 216 | } 217 | unsigned int task_recv_signal_set_mask;//offset 0x14 ,注册的接受消息的signal号的掩码 218 | uint32 err_counts;//offset 0x18 219 | unsigned int recvd_signal_id;//offset 0x1c,当前接受到的signal id,msgr_client_reg_type为1 220 | struct msgrq *recvd_msgrq_ptr;//offset 0x20,当前接受消息承载的msgrq对象,msgr_client_reg_type为1 221 | struct msgrq *msgrq_first_entry;// offset 0x24,接受msgrq消息链表结构指针,msgr_client_reg_type为1 222 | unsigned int total_msgrq_counts;//offset 0x28, 可以接受msgrq消息的总数,通过可以task_recv_signal_set_mask来确定,msgr_client_reg_type为1 223 | } 224 | 225 | struct msgrq_sig{ 226 | uint32 sig_ready_flag;//must be 1 227 | struct sig_def{ 228 | uint32 signal_id_for_recv;//offset 8 229 | uint32 signal_reged_wait_mask;//offset 0xc 230 | void * kernel_msg_queue; 231 | unsigned int attribute; 232 | }; 233 | 234 | 235 | } 236 | struct rexq_sig{ //size 0x1c, 兼容2/3G系统的数据结构 237 | utcb *msgr_client_utcb_ptr;//offset 0 任务接受消息使用的utcb标识 238 | uint32 msgr_client_signal_id;//offset 4 接受消息使用的signal id 239 | msg_queue *msgr_out_msg_q;//offset 0x8 240 | msg_queue *rex_msg_in_q;//offset 0xc 241 | uint16 msg_data_q_used_size;//offset 0x10 242 | uint16 rexq_id;//offset 0x12 243 | uint16 msg_data_q_size;//offset 0x14 244 | } 245 | struct msg_data_q{ 246 | struct msg_data_q *prev_q; 247 | struct msg_data_q *next_q; 248 | char data[msg_data_q_size-8]; 249 | } 250 | struct msg_queue{ 251 | struct msg_data_q *headp; 252 | struct msg_data_q *tailp; 253 | uint32 total_q_counts; 254 | } 255 | 256 | struct msgrq{ 257 | void *msg_recv_buf_header;//offset 0 258 | void *msg_recv_end_buf;//offset 4 259 | char msgrq_name[16];//offset 0x10 260 | int msgrq_recvd_seq;//ofset 0x18 261 | unsigned int reged_recv_signal_id_mask;//offset 0x1c,可供接受消息signal的掩码 262 | void *msgr_buf_remain_ptr;//offset 0x20,可供接受消息的剩余空间起始地址 263 | void *msgr_recv_buf;//offset 0x24,当前接受到消息的buf地址 264 | uint32 msgr_buf_remain_size;//offset 0x28 265 | unsigned int total_msg_recv_buf_size;//offset 0x30 266 | int8 is_buf_in_use;//offset 0x70 ,0-> in use, 1-> not in use 267 | uint32 recvd_msg_blocks;//offset 0x58 ,收到的消息次数总和 268 | struct msgrq *next_msgrq;//offset 0x74 269 | } 270 | ``` 271 | 272 | 为了更方便的理解上述的数据结构的关系与操作算法,画了一张简单的图来加深该消息系统的理解。 273 | 通过以上算法和数据结构,可以很方便的完成UMID与tech_mod_id的消息路由的注册,消息发送等操作。 274 | 275 | ![image-20210322162235900](https://github.com/vessial/baseband/blob/master/image-20210322162235900.png) 276 | 277 | 需要说明的一点就是一个tech_mod_id可能会关联多个msgr_client,所以msgr_client_id就成了消息传递的唯一标识,通过msgr_client_id得到全局的msgr_client_desc的结构定义,该结构体里面包含接受消息的任务utcb和接受消息的signal id,这里通过tech_mod_id 0xf19对应的MM(Mobility Management)任务进行举例。 278 | 279 | ![image-20210325161755813](https://github.com/vessial/baseband/blob/master/image-20210325161755813.png) 280 | 281 | 我在一个实时运行的MDM9607系统上面,描绘出所有UMID和tech_mod_id之间的消息路由情况,由于实在太大, 282 | 可以在https://github.com/vessial/baseband/blob/master/umid_pro.svg 进行查看。 283 | 284 | ### 消息状态机(State Machine) 285 | 286 | 高通基带系统里面的消息状态机,是实现3GPP定义功能最重要的组成部分,消息状态机在移动通信系统里面扮演着非常重要的角色,也是多模移动通信系统的核心,3GPP在定义的多个移动通信技术的分层协议栈时,不同的通信技术模式之间切换,会通过状态机来维护相应的分层逻辑的状态和可操作功能,接下来将重要介绍高通基带系统使用的状态机数据结构以及相关算法,本文将研究主要流4G LTE和5G NR系统上使用的第二代状态机消息系统,老的第一代状态机系统不在这里介绍了。 287 | 288 | ``` 289 | struct sm_state_instance{ //eg ,size 0x1c 290 | struct sm_obj *sm;//状态机对象定义 291 | unsigned int current_state_id;//状态机当前所处的状态id 292 | unsigned int recvd_umid_in_sm_entity_seq;//offset 8, 状态机当前收到的umid所在状态机umid列表中的序列号 293 | unsigned int instance_id;// 状态机实例编号 294 | uint8 sm_state_lock;//offset 0x11 0->state unlock,1-> state lock 状态机锁的状态 295 | void *stm_idle_buf;//offset 0x14 状态机操作可能需要的buf空间 296 | unsigned int debug_code;//offset 0x18 状态机调试码 297 | 298 | } 299 | struct sm_obj{ //状态机的定义结构 300 | struct msgr_stm_obj *stm; 301 | unsigned char *stm_obj_name; //状态机的名称,例如LTE_RRC_SIB_SM 302 | unsigned int stm_obj_name_hash; //状态机名称的hash值 303 | unsigned int stm_inst_id;//stm instance id ,状态机的实例编号,状态机可能存在多个实例,通过这个编号来区别不同的状态机实体 304 | } 305 | struct msgr_stm_obj { 306 | int instance_counts; //该状态机支持的实例个数 307 | int state_cnts; //该状态机的状态数量 308 | struct state_status_def *state_def;//状态机每个不同状态的定义的数据结构,size state_cnts*0x10 309 | int umid_cnts;//状态机注册的可接受umid总数 310 | struct umid_msg_list *umid_msg_def;//存储umid和umid描述信息的指针,size umid_cnts*8 311 | 312 | struct umid_msg_states_func_cb_list *umid_in_state_cb;//存储着所有umid对应每个状态的回调操作函数 313 | void *cb_func1;// stm enter //offset 0x18 ,进入该状态机的回调函数 314 | void *cb_func2;// stm exit //offset 0x1c ,退出该状态机的回调函数 315 | void *cb_func3;// stm error //offset 0x20 ,状态机出错的回调函数 316 | void *cb_func4; //stm debug //offset 0x24 ,状态机调试的回调函数 317 | unsigned int init_state_id; // default 0 ,状态机初始默认状态id 318 | 319 | } 320 | struct umid_msg_states_func_cb_list {//状态机在接受到相应的umid后的原语操作回调函数 321 | void *umid_msg_in_states_1_cb_list[umid_cnts]; 322 | void *umid_msg_in_states_2_cb_list[umid_cnts]; 323 | void *umid_msg_in_states_3_cb_list[umid_cnts]; 324 | ... 325 | void *umid_msg_in_states_state_cnts_cb_list[umid_cnts]; 326 | } 327 | struct state_status_def{//每个状态的定义 328 | unsigned char *state_name; //状态名称,eg,active/inactive etc 329 | void *cb_func1; //state enter //状态机进入该状态的回调函数 330 | void *cb_func2; //state exit //状态机退出该状态的回调函数 331 | void *cb_func3; //state debug ?//可能是调试函数 332 | } 333 | 334 | struct umid_msg_list{//状态机可接受的umid消息定义 335 | unsigned char *umid_msg_name; //umid对应的描述名称 336 | unsigned int umid; //umid 337 | } 338 | 339 | 关键API描述 340 | stm_instance_activate(struct sm_state_instance *sm_st_inst,uint32 inst_id,uint32 initial_state_id);//初始化状态机实例 341 | stm_instance_process_input(uint32 state_id,struct sm_state_instance *sm_st_inst,uint32 sm_inst_id,uint32 umid_input,void *stm_payload_ptr);//对状态机接受到的umid和数据进行原语操作 342 | ``` 343 | 344 | 我从MDM9607固件里面提取的详细的状态机信息可以在https://github.com/vessial/baseband/blob/master/lte_sm.log 进行查看。 345 | 346 | 3GPP定义的L3层的RRC(Radio Resource Control)的状态机是最为复杂的,高通在实现4G LTE的RRC时使用了大量的状态机进行功能管理。 347 | MDM9607 4G LTE RRC状态机类型如下: 348 | 349 | state name: LTE_RRC_CSG_ASF_SM 350 | state name: LTE_RRC_DT_SM // 351 | state name: LTE_RRC_IRAT_TO_G_MGR_SM 352 | state name: LTE_RRC_LLC_SM 353 | state name: LTE_RRC_CAPABILITIES_SM 354 | state name: LTE_RRC_IRAT_FROM_1X_MGR_SM 355 | state name: LTE_RRC_SEC_SM //sim认证和密钥协商管理相关的状态机 356 | state name: LTE_RRC_CRP_SM 357 | state name: LTE_RRC_IRAT_FROM_DO_MGR_SM //负责从CDMA-EVDO切换到LTE的管理状态机 358 | state name: LTE_RRC_IRAT_FROM_TDS_MGR_SM //负责从TDSCDMA切换到LTE的状态机 359 | state name: LTE_RRC_PAGING_SM //寻呼管理的状态机 360 | state name: LTE_RRC_CONFIG_SM 361 | state name: LTE_RRC_MISC_SM 362 | state name: LTE_RRC_MEAS_SM 363 | state name: LTE_RRC_CEP_SM 364 | state name: LTE_RRC_IRAT_TO_1X_MGR_SM 365 | state name: LTE_RRC_IRAT_FROM_W_MGR_SM 366 | state name: LTE_RRC_MDT_SM 367 | state name: LTE_RRC_IRAT_TO_DO_MGR_SM 368 | state name: LTE_RRC_CONTROLLER_SM //关键的LTE的控制状态机,控制服务的停止和开启 369 | state name: LTE_RRC_IRAT_TO_TDS_MGR_SM 370 | state name: LTE_RRC_IRAT_TO_W_MGR_SM //从LTE切换到WCDMA的管理状态机 371 | state name: LTE_RRC_EMP_SM 372 | state name: LTE_RRC_MH_SM 373 | state name: LTE_RRC_UEINFO_SM //UE信息管理的状态机 374 | state name: LTE_RRC_SIB_SM //系统信息块的管理状态机 375 | state name: LTE_RRC_PLMN_SEARCH_SM //搜索网络使用的状态机 376 | state name: LTE_RRC_IRAT_FROM_G_MGR_SM //从GSM切换到LTE的状态机 377 | state name: LTE_RRC_CSP_SM //cell search plmn状态机 378 | state name: LTE_RRC_ESMGR_SM // EMBMS管理状态机 379 | state name: LTE_RRC_CRE_SM 380 | 381 | 我们拿LTE_RRC_PAGING_SM状态机定义作例子与之对应的数据结构作解析 382 | 383 | ``` 384 | LTE_RRC_PAGING_SM addr 0xd10b35e0 385 | state machine name: LTE_RRC_PAGING_SM inst_cnts 1 total states 3 total umid 10 386 | state name: INITIAL state enter 0xd0b923a8 state exit 0xd0b923c8 state debug 0x0 387 | state name: IDLE_CAMPED state enter 0xd0b923e0 state exit 0xd0b92400 state debug 0x0 388 | state name: CONNECTED state enter 0xd0b92418 state exit 0xd0b92450 state debug 0x0 389 | 0x040d140c LTE_RRC_CAMPED_INDI 390 | 0x040d0207 LTE_RRC_DRX_INFO_REQ 391 | 0x040d0206 LTE_RRC_SIM_UPDATE_REQ 392 | 0x040d0401 LTE_RRC_SERVICE_IND 393 | 0x040d0710 LTE_RRC_PAGING_DLM 394 | 0x040d1405 LTE_RRC_CONNECTED_INDI 395 | 0x040d022a LTE_RRC_MTC_CFG_REQ 396 | 0x040d1400 LTE_RRC_STOPPED_INDI 397 | 0x040d140b LTE_RRC_NOT_CAMPED_INDI 398 | 0x040d1402 LTE_RRC_SIB_UPDATED_INDI 399 | ``` 400 | 下图为MDM9607 4G LTE_RRC的状态机图谱 401 | 402 | 403 | #### 状态机操作实例 404 | 405 | 为了更直观的理解消息状态机的操作过程,我这里提供了一个例子来展示消息传递过程以及状态机的处理过程,这个过程是在基带处于IDLE状态下,没有接入任何移动通信网络,到基带一次接入4G LTE网络到SIM认证的过程,这里只提供RRC的状态机的处理过程。 406 | 407 | | 发送端 | 接受端 | 接受UMID号 | 处理状态机 | 描述信息 | | 408 | | ----------------- | ------- | ---------- | ---------------------------- | ------------------------------------------ | ------------------------------------------ | 409 | | 0xF19 emm | LTE_RRC | 0x40d0204 | LTE_RRC_CSP_SM | LTE_RRC_SERVICE_REQ | | 410 | | 0xF19 emm | LTE_RRC | 0x40d0204 | LTE_RRC_IRAT_FROM_W_MGR_SM | LTE_RRC_SERVICE_REQ | | 411 | | 0xF19 emm | LTE_RRC | 0x40d0204 | LTE_RRC_IRAT_FROM_G_MGR_SM | LTE_RRC_SERVICE_REQ | | 412 | | 0xF19 emm | LTE_RRC | 0x40d0204 | LTE_RRC_IRAT_FROM_TDS_MGR_SM | LTE_RRC_SERVICE_REQ | | 413 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1442 | LTE_RRC_MEAS_SM | LTE_RRC_CLEAR_DEPRI_FREQ_INDI | | 414 | | 0x40d LTE_RRC | LTE_RRC | 0x40d120d | LTE_RRC_CONTROLLER_SM | LTE_RRC_MODE_CHANGE_REQI | | 415 | | 0x40f LTE_MAC | LTE_RRC | 0x40f0803 | LTE_RRC_CONTROLLER_SM | LTE_MAC_START_CNF | | 416 | | 0x412 LTE_RLCUL | LTE_RRC | 0x4120801 | LTE_RRC_CONTROLLER_SM | LTE_RLCUL_START_CNF | | 417 | | 0x411 LTE_RLCDL | LTE_RRC | 0x4110801 | LTE_RRC_CONTROLLER_SM | LTE_RLCDL_START_CNF | | 418 | | 0x413 LTE_PDCPDL | LTE_RRC | 0x4130806 | LTE_RRC_CONTROLLER_SM | LTE_PDCPDL_START_CNF | | 419 | | 0x414 LTE_PDCPUL | LTE_RRC | 0x4140807 | LTE_RRC_CONTROLLER_SM | LTE_PDCPUL_START_CNF | | 420 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0801 | LTE_RRC_CONTROLLER_SM | LTE_CPHY_START_CNF | | 421 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1513 | LTE_RRC_CSP_SM | LTE_RRC_MODE_CHANGE_CNFI | | 422 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1206 | LTE_RRC_LLC_SM | LTE_RRC_CFG_REQI | | 423 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0809 | LTE_RRC_CSP_SM | LTE_CPHY_SYSTEM_SCAN_CNF | | 424 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1206 | LTE_RRC_LLC_SM | LTE_RRC_CFG_REQI | | 425 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0800 | LTE_RRC_CSP_SM | LTE_CPHY_ACQ_CNF | | 426 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1202 | LTE_RRC_SIB_SM | LTE_RRC_GET_SIBS_REQI | | 427 | | 0x403 LTE_ML1_DLM | LTE_RRC | 0x40c0402 | LTE_RRC_SIB_SM | LTE_CPHY_MIB_IND | | 428 | | 0x40F LTE_MAC | LTE_RRC | 0x40f0406 | LTE_RRC_SIB_SM | LTE_MAC_RRC_BCCH_DL_DATA_IND | BCCH DL SCH SIB1 | 429 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0823 | LTE_RRC_SIB_SM | LTE_CPHY_TDD_CFG_CNF | | 430 | | 0x40F LTE_MAC | LTE_RRC | 0x40f0406 | LTE_RRC_SIB_SM | LTE_MAC_RRC_BCCH_DL_DATA_IND | BCCH DL SCH SI | 431 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1514 | LTE_RRC_CSP_SM | LTE_RRC_GET_SIBS_CNFI | | 432 | | 0x40F LTE_MAC | LTE_RRC | 0x40f0406 | LTE_RRC_SIB_SM | LTE_MAC_RRC_BCCH_DL_DATA_IND | BCCH DL SCH SIB1 | 433 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c080a | LTE_RRC_CSP_SM | LTE_CPHY_CELL_SELECT_CNF | | 434 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1206 | LTE_RRC_LLC_SM | LTE_RRC_CFG_REQI | | 435 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0804 | LTE_RRC_LLC_SM | LTE_CPHY_COMMON_CFG_CNF | | 436 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0805 | LTE_RRC_LLC_SM | LTE_CPHY_DEDICATED_CFG_CNF | | 437 | | 0x40f LTE_MAC | LTE_RRC | 0x40f0801 | LTE_RRC_LLC_SM | LTE_MAC_CFG_CNF | | 438 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1516 | LTE_RRC_CSP_SM | LTE_RRC_CFG_CNFI | | 439 | | 0x40d LTE_RRC | LTE_RRC | 0x40d140c | LTE_RRC_SIB_SM | LTE_RRC_CAMPED_INDI | inactive | 440 | | 0x40d LTE_RRC | LTE_RRC | 0x40d140c | LTE_RRC_SIB_SM | LTE_RRC_CAMPED_INDI | active | 441 | | 0x40d LTE_RRC | LTE_RRC | 0x40d140c | LTE_RRC_MEAS_SM | LTE_RRC_CAMPED_INDI | | 442 | | 0x40d LTE_RRC | LTE_RRC | 0x40d140c | LTE_RRC_CAPABILITIES_SM | LTE_RRC_CAMPED_INDI | | 443 | | 0x40d LTE_RRC | LTE_RRC | 0x40d140c | LTE_RRC_CEP_SM | LTE_RRC_CAMPED_INDI | | 444 | | 0x40d LTE_RRC | LTE_RRC | 0x40d140c | LTE_RRC_MISC_SM | LTE_RRC_CAMPED_INDI | | 445 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1516 | LTE_RRC_CONTROLLER_SM | LTE_RRC_CFG_CNFI | | 446 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_CSP_SM | LTE_RRC_SIB_UPDATED_INDI | | 447 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_CEP_SM | LTE_RRC_SIB_UPDATED_INDI | | 448 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_PAGING_SM | LTE_RRC_SIB_UPDATED_INDI | | 449 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_MEAS_SM | LTE_RRC_SIB_UPDATED_INDI | | 450 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_CSG_ASF_SM | LTE_RRC_SIB_UPDATED_INDI | | 451 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_IRAT_TO_G_MGR_SM | LTE_RRC_SIB_UPDATED_INDI | | 452 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1402 | LTE_RRC_IRAT_TO_TDS_MGR_SM | LTE_RRC_SIB_UPDATED_INDI | | 453 | | 0x40d LTE_RRC | LTE_RRC | 0x40D0401 | LTE_RRC_CSG_ASF_SM | LTE_RRC_SERVICE_IND | | 454 | | 0x40d LTE_RRC | LTE_RRC | 0x40D0401 | LTE_RRC_PAGING_SM | LTE_RRC_SERVICE_IND | | 455 | | 0x40c LTE_ML1_MGR | LTE_RRC | 0x40c0815 | LTE_RRC_MEAS_SM | LTE_CPHY_IDLE_MEAS_CFG_CNF | | 456 | | 0x40d LTE_RRC | LTE_RRC | 0x40d0225 | LTE_RRC_CSP_SM | LTE_RRC_AVOIDANCE_REQ | | 457 | | 0x40F LTE_MAC | LTE_RRC | 0x40f0406 | LTE_RRC_SIB_SM | LTE_MAC_RRC_BCCH_DL_DATA_IND | SI | 458 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1437 | LTE_RRC_CSP_SM | LTE_RRC_INTERFREQ_LIST_UPDATE_INDI | | 459 | | 0xf19 EMM | LTE_RRC | 0x40d0200 | LTE_RRC_CEP_SM | LTE_RRC_CONN_EST_REQ | Attach Request NAS msg | 460 | | 0x40d LTE_RRC | LTE_RRC | 0x40D1404 | LTE_RRC_CONTROLLER_SM | LTE_RRC_CONN_ESTABLISHMENT_STARTED_INDI | RRC Connection Request | 461 | | 0x40d LTE_RRC | LTE_RRC | 0x40D143d | LTE_RRC_CONTROLLER_SM | LTE_RRC_TRM_PRIORITY_CHANGE_INDI | | 462 | | 0xF19 EMM | LTE_RRC | 0x40d0206 | LTE_RRC_CONTROLLER_SM | LTE_RRC_SIM_UPDATE_REQ | | 463 | | 0xF19 EMM | LTE_RRC | 0x40d0206 | LTE_RRC_PAGING_SM | LTE_RRC_SIM_UPDATE_REQ | | 464 | | 0xF19 EMM | LTE_RRC | 0x40d0206 | LTE_RRC_SEC_SM | LTE_RRC_SIM_UPDATE_REQ | SIM Update Req received from NAS | 465 | | 0xF19 EMM | LTE_RRC | 0x40d0206 | LTE_RRC_CAPABILITIES_SM | LTE_RRC_SIM_UPDATE_REQ | | 466 | | 0x404 LTE_ML1_ULM | LTE_RRC | 0x40c0421 | LTE_RRC_CEP_SM | LTE_CPHY_RACH_MSG1_SCHED_IND | LTE MAC RACH Attempt | 467 | | 0x40f LTE_MAC | LTE_RRC | 0x40f0800 | LTE_RRC_CEP_SM | LTE_MAC_ACCESS_CNF | | 468 | | 0x40f LTE_MAC | LTE_RRC | 0x40f0405 | LTE_RRC_MH_SM | LTE_MAC_RRC_CCCH_DL_DATA_IND | CCCH RRC Connection Setup | 469 | | 0x40d LTE_RRC | LTE_RRC | 0x40d0703 | LTE_RRC_CEP_SM | LTE_RRC_RRC_CONNECTION_SETUP_DLM | CCCH RRC Connection Setup | 470 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1206 | LTE_RRC_LLC_SM | LTE_RRC_CFG_REQI | | 471 | | 0x40d LTE_RRC | LTE_RRC | 0x40D1408 | LTE_RRC_CSP_SM | LTE_RRC_PROCEED_WITH_RESEL_INDI | | 472 | | 0x411 LTE_RLCDL | LTE_RRC | 0x4110800 | LTE_RRC_LLC_SM | LTE_RLCDL_CFG_CNF | | 473 | | 0x412 LTE_RLCUL | LTE_RRC | 0x4120800 | LTE_RRC_LLC_SM | LTE_RLCUL_CFG_CNF | | 474 | | 0x413 LTE_PDCPDL | LTE_RRC | 0x4130800 | LTE_RRC_LLC_SM | LTE_PDCPDL_CFG_CNF | | 475 | | 0x414 LTE_PDCPUL | LTE_RRC | 0x4140800 | LTE_RRC_LLC_SM | LTE_PDCPUL_CFG_CNF | | 476 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1516 | LTE_RRC_CEP_SM | LTE_RRC_CFG_CNFI | | 477 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1200 | LTE_RRC_MH_SM | LTE_RRC_SEND_UL_MSG_REQI | | 478 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1405 | LTE_RRC_SIB_SM | LTE_RRC_CONNECTED_INDI | | 479 | | | | | | | | 480 | | 0x414 LTE_PDCPUL | LTE_RRC | 0x4140802 | LTE_RRC_MH_SM | LTE_PDCPUL_SDU_CNF | | 481 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1504 | LTE_RRC_CEP_SM | LTE_RRC_RRC_CONNECTION_SETUP_COMPLETE_CNFI | UL_DCCH RRC connection Setup Complete | 482 | | 0x413 LTE_PDCPDL | LTE_RRC | 0x4130400 | LTE_RRC_MH_SM | LTE_PDCPDL_SDU_IND | DL_DCCH info Transfer | 483 | | 0x40d LTE_RRC | LTE_RRC | 0x40d0705 | LTE_RRC_DT_SM | LTE_RRC_DL_INFORMATION_TRANSFER_DLM | DL_DCCH Auth Request Msg recvd | 484 | | 0x40d LTE_RRC | LTE_RRC | 0x40d141f | LTE_RRC_MH_SM | LTE_RRC_DLM_PROCESSED_INDI | | 485 | | 0xF19 EMM | LTE_RRC | 0x40d0201 | LTE_RRC_DT_SM | LTE_RRC_UL_DATA_REQ | send Auth Resp data | 486 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1200 | LTE_RRC_MH_SM | LTE_RRC_SEND_UL_MSG_REQI | UL_DCCH ULinfo Transfer send NAS Auth resp | 487 | | 0x414 LTE_PDCPUL | LTE_RRC | 0x4140802 | LTE_RRC_MH_SM | LTE_PDCPUL_SDU_CNF | | 488 | | 0x40d LTE_RRC | LTE_RRC | 0x40d1509 | LTE_RRC_DT_SM | LTE_RRC_UL_INFORMATION_TRANSFER_CNFI | | 489 | 490 | 491 | 492 | DL_DCCH的Information Transfer字段里面包含了来自MME发送过来的认证请求数据(LTE NAS EMM信令消息id 0x52),包含有nas key set id, 493 | 16个字节的认证随机数据auth_param rand,以及16个字节的auth param AUTN数据,SIM卡通过收到的这两个关键信息进行认证, 494 | 并计算生成Auth_resp发送给MME进行比较完成本地端和服务器端的认证,本地端计算如下。 495 | 496 | 本地端收到的rand(16bytes)+AUTN(16bytes) 497 | K为sim卡和MME都持有的sim卡的唯一隐私数据,sim卡端只有sim卡芯片可以读取。 498 | 499 | SIM卡端密钥派生认证过程,f1/2/3/4/5为sim卡的计算功能函数 500 | 501 | AK=f5(K,rand) 502 | IK=f4(K,rand) 503 | CK=f3(K,rand) 504 | RES=f2(K,rand) //计算给MME进行认证SIM卡的数据 505 | 506 | SQN=AUTN^AK (6bytes) 507 | AMF=AUTN[6:8] 508 | 509 | MAC=f1(K,SQN,rand,AMF) 510 | 511 | SIM卡端认证MME端过程 512 | sim_autn=SQN^AK(6bytes)+AMF(2bytes)+MAC(8bytes) 513 | 比较MME发过来的AUTN和sim_autn ,相等则认为MME合法。 514 | 515 | 基带把sim卡计算得到的RES通过LTE NAS EMM 信令消息号0x53包裹到UL_DCCH的InformationTransfer字段里面发给基站进而到MME进行认证。 516 | 517 | MME认证SIM卡的过程就比较简单了, 518 | MME端计算XRES=f2(K,rand),然后比较收到的RES,相等表示MME认证SIM卡成功,至此认证完成。 519 | 由于上述操作涉及EMM和RRC之间的交互过程比较复杂,这里只是简单提一下,EMM的状态机会在下一篇文章里面单独详细介绍。 520 | 521 | ## 结语 522 | 523 | 由于从全球公开的信息渠道中并不能获取高通基带系统的深入信息,所以花费1年多的时间通过对底层操作系统和上层3GPP实现的业务系统进行深度逆向工程,这篇文章只是系统性的介绍了高通4/5G基带系统的消息机制和消息状态机,我认为这是一个关键的架构设计,梳理清楚其消息架构对于理解3GPP实现的消息原语操作以及对移动通信技术的多模分层设计有非常大的帮助,该消息系统架构设计具有非常好的扩展性,可以很灵活的增加新的功能到该消息框架中去,可以很好的减少系统测试成本,有很多设计理念值得学习和借鉴,由于现今高通5G基带所支持的UMID操作数高达2万多个,所以这里的展示的例子只是揭示了状态机功能操作的冰山一角,后续会持续研究对于状态机安全漏洞的挖掘研究,实现高效的5G安全测试体系,通过对基带系统的深刻认知,可以更好的对基站系统和核心网系统进行安全评估。 524 | 525 | 最后行文仓促,如有错误,欢迎反馈指正,预告下一章节将会介绍高通基带系统的A2/IPA硬件IP加速功能模块。 526 | -------------------------------------------------------------------------------- /sm.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | sm 11 | 12 | 13 | LTE_RRC_CSG_ASF_SM 14 | 15 | LTE_RRC_CSG_ASF_SM 16 | 17 | 18 | n0 19 | 20 | INITIAL 21 | 22 | 23 | LTE_RRC_CSG_ASF_SM->n0 24 | 25 | 26 | 27 | 28 | n1 29 | 30 | WT_CSG_SEARCH_CNF 31 | 32 | 33 | LTE_RRC_CSG_ASF_SM->n1 34 | 35 | 36 | 37 | 38 | n2 39 | 40 | WT_CELL_CHANGE 41 | 42 | 43 | LTE_RRC_CSG_ASF_SM->n2 44 | 45 | 46 | 47 | 48 | n3 49 | 50 | WT_CONNECTED_CELL_CHANGE 51 | 52 | 53 | LTE_RRC_CSG_ASF_SM->n3 54 | 55 | 56 | 57 | 58 | LTE_RRC 59 | 60 | LTE_RRC 61 | 62 | 63 | LTE_RRC->LTE_RRC_CSG_ASF_SM 64 | 65 | 66 | 67 | 68 | LTE_RRC_DT_SM 69 | 70 | LTE_RRC_DT_SM 71 | 72 | 73 | LTE_RRC->LTE_RRC_DT_SM 74 | 75 | 76 | 77 | 78 | LTE_RRC_IRAT_TO_G_MGR_SM 79 | 80 | LTE_RRC_IRAT_TO_G_MGR_SM 81 | 82 | 83 | LTE_RRC->LTE_RRC_IRAT_TO_G_MGR_SM 84 | 85 | 86 | 87 | 88 | LTE_RRC_LLC_SM 89 | 90 | LTE_RRC_LLC_SM 91 | 92 | 93 | LTE_RRC->LTE_RRC_LLC_SM 94 | 95 | 96 | 97 | 98 | LTE_RRC_CAPABILITIES_SM 99 | 100 | LTE_RRC_CAPABILITIES_SM 101 | 102 | 103 | LTE_RRC->LTE_RRC_CAPABILITIES_SM 104 | 105 | 106 | 107 | 108 | LTE_RRC_IRAT_FROM_1X_MGR_SM 109 | 110 | LTE_RRC_IRAT_FROM_1X_MGR_SM 111 | 112 | 113 | LTE_RRC->LTE_RRC_IRAT_FROM_1X_MGR_SM 114 | 115 | 116 | 117 | 118 | LTE_RRC_SEC_SM 119 | 120 | LTE_RRC_SEC_SM 121 | 122 | 123 | LTE_RRC->LTE_RRC_SEC_SM 124 | 125 | 126 | 127 | 128 | LTE_RRC_CRP_SM 129 | 130 | LTE_RRC_CRP_SM 131 | 132 | 133 | LTE_RRC->LTE_RRC_CRP_SM 134 | 135 | 136 | 137 | 138 | LTE_RRC_IRAT_FROM_DO_MGR_SM 139 | 140 | LTE_RRC_IRAT_FROM_DO_MGR_SM 141 | 142 | 143 | LTE_RRC->LTE_RRC_IRAT_FROM_DO_MGR_SM 144 | 145 | 146 | 147 | 148 | LTE_RRC_IRAT_FROM_TDS_MGR_SM 149 | 150 | LTE_RRC_IRAT_FROM_TDS_MGR_SM 151 | 152 | 153 | LTE_RRC->LTE_RRC_IRAT_FROM_TDS_MGR_SM 154 | 155 | 156 | 157 | 158 | LTE_RRC_PAGING_SM 159 | 160 | LTE_RRC_PAGING_SM 161 | 162 | 163 | LTE_RRC->LTE_RRC_PAGING_SM 164 | 165 | 166 | 167 | 168 | LTE_RRC_CONFIG_SM 169 | 170 | LTE_RRC_CONFIG_SM 171 | 172 | 173 | LTE_RRC->LTE_RRC_CONFIG_SM 174 | 175 | 176 | 177 | 178 | LTE_RRC_MISC_SM 179 | 180 | LTE_RRC_MISC_SM 181 | 182 | 183 | LTE_RRC->LTE_RRC_MISC_SM 184 | 185 | 186 | 187 | 188 | LTE_RRC_MEAS_SM 189 | 190 | LTE_RRC_MEAS_SM 191 | 192 | 193 | LTE_RRC->LTE_RRC_MEAS_SM 194 | 195 | 196 | 197 | 198 | LTE_RRC_CEP_SM 199 | 200 | LTE_RRC_CEP_SM 201 | 202 | 203 | LTE_RRC->LTE_RRC_CEP_SM 204 | 205 | 206 | 207 | 208 | LTE_RRC_IRAT_TO_1X_MGR_SM 209 | 210 | LTE_RRC_IRAT_TO_1X_MGR_SM 211 | 212 | 213 | LTE_RRC->LTE_RRC_IRAT_TO_1X_MGR_SM 214 | 215 | 216 | 217 | 218 | LTE_RRC_IRAT_FROM_W_MGR_SM 219 | 220 | LTE_RRC_IRAT_FROM_W_MGR_SM 221 | 222 | 223 | LTE_RRC->LTE_RRC_IRAT_FROM_W_MGR_SM 224 | 225 | 226 | 227 | 228 | LTE_RRC_MDT_SM 229 | 230 | LTE_RRC_MDT_SM 231 | 232 | 233 | LTE_RRC->LTE_RRC_MDT_SM 234 | 235 | 236 | 237 | 238 | LTE_RRC_IRAT_TO_DO_MGR_SM 239 | 240 | LTE_RRC_IRAT_TO_DO_MGR_SM 241 | 242 | 243 | LTE_RRC->LTE_RRC_IRAT_TO_DO_MGR_SM 244 | 245 | 246 | 247 | 248 | LTE_RRC_CONTROLLER_SM 249 | 250 | LTE_RRC_CONTROLLER_SM 251 | 252 | 253 | LTE_RRC->LTE_RRC_CONTROLLER_SM 254 | 255 | 256 | 257 | 258 | LTE_RRC_IRAT_TO_TDS_MGR_SM 259 | 260 | LTE_RRC_IRAT_TO_TDS_MGR_SM 261 | 262 | 263 | LTE_RRC->LTE_RRC_IRAT_TO_TDS_MGR_SM 264 | 265 | 266 | 267 | 268 | LTE_RRC_IRAT_TO_W_MGR_SM 269 | 270 | LTE_RRC_IRAT_TO_W_MGR_SM 271 | 272 | 273 | LTE_RRC->LTE_RRC_IRAT_TO_W_MGR_SM 274 | 275 | 276 | 277 | 278 | LTE_RRC_EMP_SM 279 | 280 | LTE_RRC_EMP_SM 281 | 282 | 283 | LTE_RRC->LTE_RRC_EMP_SM 284 | 285 | 286 | 287 | 288 | LTE_RRC_MH_SM 289 | 290 | LTE_RRC_MH_SM 291 | 292 | 293 | LTE_RRC->LTE_RRC_MH_SM 294 | 295 | 296 | 297 | 298 | LTE_RRC_UEINFO_SM 299 | 300 | LTE_RRC_UEINFO_SM 301 | 302 | 303 | LTE_RRC->LTE_RRC_UEINFO_SM 304 | 305 | 306 | 307 | 308 | LTE_RRC_SIB_SM 309 | 310 | LTE_RRC_SIB_SM 311 | 312 | 313 | LTE_RRC->LTE_RRC_SIB_SM 314 | 315 | 316 | 317 | 318 | LTE_RRC_PLMN_SEARCH_SM 319 | 320 | LTE_RRC_PLMN_SEARCH_SM 321 | 322 | 323 | LTE_RRC->LTE_RRC_PLMN_SEARCH_SM 324 | 325 | 326 | 327 | 328 | LTE_RRC_IRAT_FROM_G_MGR_SM 329 | 330 | LTE_RRC_IRAT_FROM_G_MGR_SM 331 | 332 | 333 | LTE_RRC->LTE_RRC_IRAT_FROM_G_MGR_SM 334 | 335 | 336 | 337 | 338 | LTE_RRC_CSP_SM 339 | 340 | LTE_RRC_CSP_SM 341 | 342 | 343 | LTE_RRC->LTE_RRC_CSP_SM 344 | 345 | 346 | 347 | 348 | LTE_RRC_ESMGR_SM 349 | 350 | LTE_RRC_ESMGR_SM 351 | 352 | 353 | LTE_RRC->LTE_RRC_ESMGR_SM 354 | 355 | 356 | 357 | 358 | LTE_RRC_CRE_SM 359 | 360 | LTE_RRC_CRE_SM 361 | 362 | 363 | LTE_RRC->LTE_RRC_CRE_SM 364 | 365 | 366 | 367 | 368 | n4 369 | 370 | READY 371 | 372 | 373 | LTE_RRC_DT_SM->n4 374 | 375 | 376 | 377 | 378 | n5 379 | 380 | BLOCKED 381 | 382 | 383 | LTE_RRC_DT_SM->n5 384 | 385 | 386 | 387 | 388 | n6 389 | 390 | INITIAL 391 | 392 | 393 | LTE_RRC_IRAT_TO_G_MGR_SM->n6 394 | 395 | 396 | 397 | 398 | n7 399 | 400 | WT_FOR_SUSPEND_CNF 401 | 402 | 403 | LTE_RRC_IRAT_TO_G_MGR_SM->n7 404 | 405 | 406 | 407 | 408 | n8 409 | 410 | WT_FOR_GSM_KEYS 411 | 412 | 413 | LTE_RRC_IRAT_TO_G_MGR_SM->n8 414 | 415 | 416 | 417 | 418 | n9 419 | 420 | WT_TO_ABORT_DURING_SUSPEND 421 | 422 | 423 | LTE_RRC_IRAT_TO_G_MGR_SM->n9 424 | 425 | 426 | 427 | 428 | n10 429 | 430 | WT_FOR_RESUME_CNF 431 | 432 | 433 | LTE_RRC_IRAT_TO_G_MGR_SM->n10 434 | 435 | 436 | 437 | 438 | n11 439 | 440 | WT_TO_ABORT_DURING_RESUME 441 | 442 | 443 | LTE_RRC_IRAT_TO_G_MGR_SM->n11 444 | 445 | 446 | 447 | 448 | n12 449 | 450 | IRAT_TO_G_IN_PROGRESS 451 | 452 | 453 | LTE_RRC_IRAT_TO_G_MGR_SM->n12 454 | 455 | 456 | 457 | 458 | n13 459 | 460 | WT_FOR_G_ABORT_CNF 461 | 462 | 463 | LTE_RRC_IRAT_TO_G_MGR_SM->n13 464 | 465 | 466 | 467 | 468 | n14 469 | 470 | WT_FOR_CONN_REL 471 | 472 | 473 | LTE_RRC_IRAT_TO_G_MGR_SM->n14 474 | 475 | 476 | 477 | 478 | n15 479 | 480 | WT_FOR_DEACTIVATE_CNF 481 | 482 | 483 | LTE_RRC_IRAT_TO_G_MGR_SM->n15 484 | 485 | 486 | 487 | 488 | n16 489 | 490 | WT_FOR_ACTIVATION_RSP 491 | 492 | 493 | LTE_RRC_IRAT_TO_G_MGR_SM->n16 494 | 495 | 496 | 497 | 498 | n17 499 | 500 | WT_TO_SUSPEND_DURING_SUSPEND 501 | 502 | 503 | LTE_RRC_IRAT_TO_G_MGR_SM->n17 504 | 505 | 506 | 507 | 508 | n18 509 | 510 | INITIAL 511 | 512 | 513 | LTE_RRC_LLC_SM->n18 514 | 515 | 516 | 517 | 518 | n19 519 | 520 | WAIT_FOR_CPHY_CFG_CNF 521 | 522 | 523 | LTE_RRC_LLC_SM->n19 524 | 525 | 526 | 527 | 528 | n20 529 | 530 | WAIT_FOR_MAC_CFG_CNF 531 | 532 | 533 | LTE_RRC_LLC_SM->n20 534 | 535 | 536 | 537 | 538 | n21 539 | 540 | WAIT_FOR_RLC_CFG_CNF 541 | 542 | 543 | LTE_RRC_LLC_SM->n21 544 | 545 | 546 | 547 | 548 | n22 549 | 550 | WAIT_FOR_PDCP_CFG_CNF 551 | 552 | 553 | LTE_RRC_LLC_SM->n22 554 | 555 | 556 | 557 | 558 | n23 559 | 560 | INITIAL 561 | 562 | 563 | LTE_RRC_CAPABILITIES_SM->n23 564 | 565 | 566 | 567 | 568 | n24 569 | 570 | WT_RAT_CAP_CNF 571 | 572 | 573 | LTE_RRC_CAPABILITIES_SM->n24 574 | 575 | 576 | 577 | 578 | n25 579 | 580 | INITIAL 581 | 582 | 583 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n25 584 | 585 | 586 | 587 | 588 | n26 589 | 590 | WT_FOR_ACTIVATE_CNF 591 | 592 | 593 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n26 594 | 595 | 596 | 597 | 598 | n27 599 | 600 | WT_TO_ABORT_DURING_ACTIVATE 601 | 602 | 603 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n27 604 | 605 | 606 | 607 | 608 | n28 609 | 610 | WT_FOR_DEACTIVATE_CNF 611 | 612 | 613 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n28 614 | 615 | 616 | 617 | 618 | n29 619 | 620 | WT_FOR_LTE_TO_COMPLETE 621 | 622 | 623 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n29 624 | 625 | 626 | 627 | 628 | n30 629 | 630 | WT_FOR_LTE_RRC_ABORT_CNF 631 | 632 | 633 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n30 634 | 635 | 636 | 637 | 638 | n31 639 | 640 | WT_FOR_ACTIVATION_RSP 641 | 642 | 643 | LTE_RRC_IRAT_FROM_1X_MGR_SM->n31 644 | 645 | 646 | 647 | 648 | n32 649 | 650 | INITIAL 651 | 652 | 653 | LTE_RRC_SEC_SM->n32 654 | 655 | 656 | 657 | 658 | n33 659 | 660 | WT_CFG_CNF 661 | 662 | 663 | LTE_RRC_SEC_SM->n33 664 | 665 | 666 | 667 | 668 | n34 669 | 670 | SMC_FAIL 671 | 672 | 673 | LTE_RRC_SEC_SM->n34 674 | 675 | 676 | 677 | 678 | n35 679 | 680 | SECURE 681 | 682 | 683 | LTE_RRC_SEC_SM->n35 684 | 685 | 686 | 687 | 688 | n36 689 | 690 | INACTIVE 691 | 692 | 693 | LTE_RRC_CRP_SM->n36 694 | 695 | 696 | 697 | 698 | n37 699 | 700 | WAIT_FOR_TIMER 701 | 702 | 703 | LTE_RRC_CRP_SM->n37 704 | 705 | 706 | 707 | 708 | n38 709 | 710 | WAIT_FOR_LLC_CONFIRM 711 | 712 | 713 | LTE_RRC_CRP_SM->n38 714 | 715 | 716 | 717 | 718 | n39 719 | 720 | WAIT_FOR_IRAT_ABORT_CONFIRM 721 | 722 | 723 | LTE_RRC_CRP_SM->n39 724 | 725 | 726 | 727 | 728 | n40 729 | 730 | INITIAL 731 | 732 | 733 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n40 734 | 735 | 736 | 737 | 738 | n41 739 | 740 | WT_FOR_ACTIVATE_CNF 741 | 742 | 743 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n41 744 | 745 | 746 | 747 | 748 | n42 749 | 750 | WT_TO_ABORT_DURING_ACTIVATE 751 | 752 | 753 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n42 754 | 755 | 756 | 757 | 758 | n43 759 | 760 | WT_FOR_DEACTIVATE_CNF 761 | 762 | 763 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n43 764 | 765 | 766 | 767 | 768 | n44 769 | 770 | WT_FOR_LTE_TO_COMPLETE 771 | 772 | 773 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n44 774 | 775 | 776 | 777 | 778 | n45 779 | 780 | WT_FOR_LTE_RRC_ABORT_CNF 781 | 782 | 783 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n45 784 | 785 | 786 | 787 | 788 | n46 789 | 790 | WT_FOR_ACTIVATION_RSP 791 | 792 | 793 | LTE_RRC_IRAT_FROM_DO_MGR_SM->n46 794 | 795 | 796 | 797 | 798 | n47 799 | 800 | INITIAL 801 | 802 | 803 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n47 804 | 805 | 806 | 807 | 808 | n48 809 | 810 | WT_FOR_ACTIVATE_CNF 811 | 812 | 813 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n48 814 | 815 | 816 | 817 | 818 | n49 819 | 820 | WT_TO_ABORT_DURING_ACTIVATE 821 | 822 | 823 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n49 824 | 825 | 826 | 827 | 828 | n50 829 | 830 | WT_FOR_LTE_KEYS 831 | 832 | 833 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n50 834 | 835 | 836 | 837 | 838 | n51 839 | 840 | WT_FOR_DEACTIVATE_CNF 841 | 842 | 843 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n51 844 | 845 | 846 | 847 | 848 | n52 849 | 850 | WT_FOR_LTE_TO_COMPLETE 851 | 852 | 853 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n52 854 | 855 | 856 | 857 | 858 | n53 859 | 860 | WT_FOR_ACTIVATION_RSP 861 | 862 | 863 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n53 864 | 865 | 866 | 867 | 868 | n54 869 | 870 | WT_FOR_LTE_RRC_ABORT_CNF 871 | 872 | 873 | LTE_RRC_IRAT_FROM_TDS_MGR_SM->n54 874 | 875 | 876 | 877 | 878 | n55 879 | 880 | INITIAL 881 | 882 | 883 | LTE_RRC_PAGING_SM->n55 884 | 885 | 886 | 887 | 888 | n56 889 | 890 | IDLE_CAMPED 891 | 892 | 893 | LTE_RRC_PAGING_SM->n56 894 | 895 | 896 | 897 | 898 | n57 899 | 900 | CONNECTED 901 | 902 | 903 | LTE_RRC_PAGING_SM->n57 904 | 905 | 906 | 907 | 908 | n58 909 | 910 | INITIAL 911 | 912 | 913 | LTE_RRC_CONFIG_SM->n58 914 | 915 | 916 | 917 | 918 | n59 919 | 920 | WAIT_FOR_CFG_CNFI 921 | 922 | 923 | LTE_RRC_CONFIG_SM->n59 924 | 925 | 926 | 927 | 928 | n60 929 | 930 | WAIT_FOR_MEAS_CFG_CNFI 931 | 932 | 933 | LTE_RRC_CONFIG_SM->n60 934 | 935 | 936 | 937 | 938 | n61 939 | 940 | WAIT_FOR_MAC_ACCESS_CNF 941 | 942 | 943 | LTE_RRC_CONFIG_SM->n61 944 | 945 | 946 | 947 | 948 | n62 949 | 950 | WAIT_FOR_PS_HO_TO_COMPLETE 951 | 952 | 953 | LTE_RRC_CONFIG_SM->n62 954 | 955 | 956 | 957 | 958 | n63 959 | 960 | INITIAL 961 | 962 | 963 | LTE_RRC_MISC_SM->n63 964 | 965 | 966 | 967 | 968 | n64 969 | 970 | INACTIVE 971 | 972 | 973 | LTE_RRC_MEAS_SM->n64 974 | 975 | 976 | 977 | 978 | n65 979 | 980 | IDLE_CAMPED 981 | 982 | 983 | LTE_RRC_MEAS_SM->n65 984 | 985 | 986 | 987 | 988 | n66 989 | 990 | WAIT_FOR_IDLE_CONFIG_CNF 991 | 992 | 993 | LTE_RRC_MEAS_SM->n66 994 | 995 | 996 | 997 | 998 | n67 999 | 1000 | CONNECTED 1001 | 1002 | 1003 | LTE_RRC_MEAS_SM->n67 1004 | 1005 | 1006 | 1007 | 1008 | n68 1009 | 1010 | WAIT_FOR_CONNECTED_CONFIG_CNF 1011 | 1012 | 1013 | LTE_RRC_MEAS_SM->n68 1014 | 1015 | 1016 | 1017 | 1018 | n69 1019 | 1020 | INACTIVE 1021 | 1022 | 1023 | LTE_RRC_CEP_SM->n69 1024 | 1025 | 1026 | 1027 | 1028 | n70 1029 | 1030 | PENDING_RETRY 1031 | 1032 | 1033 | LTE_RRC_CEP_SM->n70 1034 | 1035 | 1036 | 1037 | 1038 | n71 1039 | 1040 | ACCESS 1041 | 1042 | 1043 | LTE_RRC_CEP_SM->n71 1044 | 1045 | 1046 | 1047 | 1048 | n72 1049 | 1050 | CONFIGURING_SRB1 1051 | 1052 | 1053 | LTE_RRC_CEP_SM->n72 1054 | 1055 | 1056 | 1057 | 1058 | n73 1059 | 1060 | CONNECTED 1061 | 1062 | 1063 | LTE_RRC_CEP_SM->n73 1064 | 1065 | 1066 | 1067 | 1068 | n74 1069 | 1070 | INITIAL 1071 | 1072 | 1073 | LTE_RRC_IRAT_TO_1X_MGR_SM->n74 1074 | 1075 | 1076 | 1077 | 1078 | n75 1079 | 1080 | WT_FOR_SUSPEND_CNF 1081 | 1082 | 1083 | LTE_RRC_IRAT_TO_1X_MGR_SM->n75 1084 | 1085 | 1086 | 1087 | 1088 | n76 1089 | 1090 | WT_TO_ABORT_DURING_SUSPEND 1091 | 1092 | 1093 | LTE_RRC_IRAT_TO_1X_MGR_SM->n76 1094 | 1095 | 1096 | 1097 | 1098 | n77 1099 | 1100 | WT_FOR_RESUME_CNF 1101 | 1102 | 1103 | LTE_RRC_IRAT_TO_1X_MGR_SM->n77 1104 | 1105 | 1106 | 1107 | 1108 | n78 1109 | 1110 | IRAT_TO_1X_IN_PROGRESS 1111 | 1112 | 1113 | LTE_RRC_IRAT_TO_1X_MGR_SM->n78 1114 | 1115 | 1116 | 1117 | 1118 | n79 1119 | 1120 | WT_FOR_1X_ABORT_RSP 1121 | 1122 | 1123 | LTE_RRC_IRAT_TO_1X_MGR_SM->n79 1124 | 1125 | 1126 | 1127 | 1128 | n80 1129 | 1130 | INITIAL 1131 | 1132 | 1133 | LTE_RRC_IRAT_FROM_W_MGR_SM->n80 1134 | 1135 | 1136 | 1137 | 1138 | n81 1139 | 1140 | WT_FOR_ACTIVATE_CNF 1141 | 1142 | 1143 | LTE_RRC_IRAT_FROM_W_MGR_SM->n81 1144 | 1145 | 1146 | 1147 | 1148 | n82 1149 | 1150 | WT_TO_ABORT_DURING_ACTIVATE 1151 | 1152 | 1153 | LTE_RRC_IRAT_FROM_W_MGR_SM->n82 1154 | 1155 | 1156 | 1157 | 1158 | n83 1159 | 1160 | WT_FOR_LTE_KEYS 1161 | 1162 | 1163 | LTE_RRC_IRAT_FROM_W_MGR_SM->n83 1164 | 1165 | 1166 | 1167 | 1168 | n84 1169 | 1170 | WT_FOR_DEACTIVATE_CNF 1171 | 1172 | 1173 | LTE_RRC_IRAT_FROM_W_MGR_SM->n84 1174 | 1175 | 1176 | 1177 | 1178 | n85 1179 | 1180 | WT_FOR_LTE_TO_COMPLETE 1181 | 1182 | 1183 | LTE_RRC_IRAT_FROM_W_MGR_SM->n85 1184 | 1185 | 1186 | 1187 | 1188 | n86 1189 | 1190 | WT_FOR_ACTIVATION_RSP 1191 | 1192 | 1193 | LTE_RRC_IRAT_FROM_W_MGR_SM->n86 1194 | 1195 | 1196 | 1197 | 1198 | n87 1199 | 1200 | WT_FOR_LTE_RRC_ABORT_CNF 1201 | 1202 | 1203 | LTE_RRC_IRAT_FROM_W_MGR_SM->n87 1204 | 1205 | 1206 | 1207 | 1208 | n88 1209 | 1210 | INACTIVE 1211 | 1212 | 1213 | LTE_RRC_MDT_SM->n88 1214 | 1215 | 1216 | 1217 | 1218 | n89 1219 | 1220 | ACTIVE 1221 | 1222 | 1223 | LTE_RRC_MDT_SM->n89 1224 | 1225 | 1226 | 1227 | 1228 | n90 1229 | 1230 | INITIAL 1231 | 1232 | 1233 | LTE_RRC_IRAT_TO_DO_MGR_SM->n90 1234 | 1235 | 1236 | 1237 | 1238 | n91 1239 | 1240 | WT_FOR_SIB_1 1241 | 1242 | 1243 | LTE_RRC_IRAT_TO_DO_MGR_SM->n91 1244 | 1245 | 1246 | 1247 | 1248 | n92 1249 | 1250 | WT_FOR_SUSPEND_CNF 1251 | 1252 | 1253 | LTE_RRC_IRAT_TO_DO_MGR_SM->n92 1254 | 1255 | 1256 | 1257 | 1258 | n93 1259 | 1260 | WT_TO_ABORT_DURING_SUSPEND 1261 | 1262 | 1263 | LTE_RRC_IRAT_TO_DO_MGR_SM->n93 1264 | 1265 | 1266 | 1267 | 1268 | n94 1269 | 1270 | WT_FOR_RESUME_CNF 1271 | 1272 | 1273 | LTE_RRC_IRAT_TO_DO_MGR_SM->n94 1274 | 1275 | 1276 | 1277 | 1278 | n95 1279 | 1280 | IRAT_TO_DO_IN_PROGRESS 1281 | 1282 | 1283 | LTE_RRC_IRAT_TO_DO_MGR_SM->n95 1284 | 1285 | 1286 | 1287 | 1288 | n96 1289 | 1290 | WT_FOR_DO_ABORT_CNF 1291 | 1292 | 1293 | LTE_RRC_IRAT_TO_DO_MGR_SM->n96 1294 | 1295 | 1296 | 1297 | 1298 | n97 1299 | 1300 | INACTIVE 1301 | 1302 | 1303 | LTE_RRC_CONTROLLER_SM->n97 1304 | 1305 | 1306 | 1307 | 1308 | n98 1309 | 1310 | IDLE_NOT_CAMPED 1311 | 1312 | 1313 | LTE_RRC_CONTROLLER_SM->n98 1314 | 1315 | 1316 | 1317 | 1318 | n99 1319 | 1320 | IDLE_CAMPED 1321 | 1322 | 1323 | LTE_RRC_CONTROLLER_SM->n99 1324 | 1325 | 1326 | 1327 | 1328 | n100 1329 | 1330 | CONNECTING 1331 | 1332 | 1333 | LTE_RRC_CONTROLLER_SM->n100 1334 | 1335 | 1336 | 1337 | 1338 | n101 1339 | 1340 | CONNECTED 1341 | 1342 | 1343 | LTE_RRC_CONTROLLER_SM->n101 1344 | 1345 | 1346 | 1347 | 1348 | n102 1349 | 1350 | SUSPENDED 1351 | 1352 | 1353 | LTE_RRC_CONTROLLER_SM->n102 1354 | 1355 | 1356 | 1357 | 1358 | n103 1359 | 1360 | IRAT_TO_LTE_STARTED 1361 | 1362 | 1363 | LTE_RRC_CONTROLLER_SM->n103 1364 | 1365 | 1366 | 1367 | 1368 | n104 1369 | 1370 | CLOSING 1371 | 1372 | 1373 | LTE_RRC_CONTROLLER_SM->n104 1374 | 1375 | 1376 | 1377 | 1378 | n105 1379 | 1380 | INITIAL 1381 | 1382 | 1383 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n105 1384 | 1385 | 1386 | 1387 | 1388 | n106 1389 | 1390 | WT_FOR_SUSPEND_CNF 1391 | 1392 | 1393 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n106 1394 | 1395 | 1396 | 1397 | 1398 | n107 1399 | 1400 | WT_FOR_UMTS_KEYS 1401 | 1402 | 1403 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n107 1404 | 1405 | 1406 | 1407 | 1408 | n108 1409 | 1410 | WT_TO_ABORT_DURING_SUSPEND 1411 | 1412 | 1413 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n108 1414 | 1415 | 1416 | 1417 | 1418 | n109 1419 | 1420 | WT_FOR_RESUME_CNF 1421 | 1422 | 1423 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n109 1424 | 1425 | 1426 | 1427 | 1428 | n110 1429 | 1430 | IRAT_TO_TDS_IN_PROGRESS 1431 | 1432 | 1433 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n110 1434 | 1435 | 1436 | 1437 | 1438 | n111 1439 | 1440 | WT_FOR_TDS_ABORT_RSP 1441 | 1442 | 1443 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n111 1444 | 1445 | 1446 | 1447 | 1448 | n112 1449 | 1450 | WT_TO_SUSPEND_DURING_SUSPEND 1451 | 1452 | 1453 | LTE_RRC_IRAT_TO_TDS_MGR_SM->n112 1454 | 1455 | 1456 | 1457 | 1458 | n113 1459 | 1460 | INITIAL 1461 | 1462 | 1463 | LTE_RRC_IRAT_TO_W_MGR_SM->n113 1464 | 1465 | 1466 | 1467 | 1468 | n114 1469 | 1470 | WT_FOR_SUSPEND_CNF 1471 | 1472 | 1473 | LTE_RRC_IRAT_TO_W_MGR_SM->n114 1474 | 1475 | 1476 | 1477 | 1478 | n115 1479 | 1480 | WT_FOR_UMTS_KEYS 1481 | 1482 | 1483 | LTE_RRC_IRAT_TO_W_MGR_SM->n115 1484 | 1485 | 1486 | 1487 | 1488 | n116 1489 | 1490 | WT_TO_ABORT_DURING_SUSPEND 1491 | 1492 | 1493 | LTE_RRC_IRAT_TO_W_MGR_SM->n116 1494 | 1495 | 1496 | 1497 | 1498 | n117 1499 | 1500 | WT_FOR_RESUME_CNF 1501 | 1502 | 1503 | LTE_RRC_IRAT_TO_W_MGR_SM->n117 1504 | 1505 | 1506 | 1507 | 1508 | n118 1509 | 1510 | IRAT_TO_W_IN_PROGRESS 1511 | 1512 | 1513 | LTE_RRC_IRAT_TO_W_MGR_SM->n118 1514 | 1515 | 1516 | 1517 | 1518 | n119 1519 | 1520 | WT_FOR_W_ABORT_RSP 1521 | 1522 | 1523 | LTE_RRC_IRAT_TO_W_MGR_SM->n119 1524 | 1525 | 1526 | 1527 | 1528 | n120 1529 | 1530 | WT_TO_SUSPEND_DURING_SUSPEND 1531 | 1532 | 1533 | LTE_RRC_IRAT_TO_W_MGR_SM->n120 1534 | 1535 | 1536 | 1537 | 1538 | n121 1539 | 1540 | INACTIVE 1541 | 1542 | 1543 | LTE_RRC_EMP_SM->n121 1544 | 1545 | 1546 | 1547 | 1548 | n122 1549 | 1550 | ACTIVE 1551 | 1552 | 1553 | LTE_RRC_EMP_SM->n122 1554 | 1555 | 1556 | 1557 | 1558 | n123 1559 | 1560 | WAIT_FOR_CNF 1561 | 1562 | 1563 | LTE_RRC_EMP_SM->n123 1564 | 1565 | 1566 | 1567 | 1568 | n124 1569 | 1570 | INITIAL 1571 | 1572 | 1573 | LTE_RRC_MH_SM->n124 1574 | 1575 | 1576 | 1577 | 1578 | n125 1579 | 1580 | HANDOVER 1581 | 1582 | 1583 | LTE_RRC_MH_SM->n125 1584 | 1585 | 1586 | 1587 | 1588 | n126 1589 | 1590 | INACTIVE 1591 | 1592 | 1593 | LTE_RRC_UEINFO_SM->n126 1594 | 1595 | 1596 | 1597 | 1598 | n127 1599 | 1600 | ACTIVE 1601 | 1602 | 1603 | LTE_RRC_UEINFO_SM->n127 1604 | 1605 | 1606 | 1607 | 1608 | n128 1609 | 1610 | WAIT_FOR_RPT_CNF 1611 | 1612 | 1613 | LTE_RRC_UEINFO_SM->n128 1614 | 1615 | 1616 | 1617 | 1618 | n129 1619 | 1620 | INACTIVE 1621 | 1622 | 1623 | LTE_RRC_SIB_SM->n129 1624 | 1625 | 1626 | 1627 | 1628 | n130 1629 | 1630 | ACTIVE 1631 | 1632 | 1633 | LTE_RRC_SIB_SM->n130 1634 | 1635 | 1636 | 1637 | 1638 | n131 1639 | 1640 | INITIAL 1641 | 1642 | 1643 | LTE_RRC_PLMN_SEARCH_SM->n131 1644 | 1645 | 1646 | 1647 | 1648 | n132 1649 | 1650 | WT_MODE_CHANGE_CNF 1651 | 1652 | 1653 | LTE_RRC_PLMN_SEARCH_SM->n132 1654 | 1655 | 1656 | 1657 | 1658 | n133 1659 | 1660 | WT_SIB1S_AND_CELL_SELECT 1661 | 1662 | 1663 | LTE_RRC_PLMN_SEARCH_SM->n133 1664 | 1665 | 1666 | 1667 | 1668 | n134 1669 | 1670 | WT_SEARCH_STOP_CNF 1671 | 1672 | 1673 | LTE_RRC_PLMN_SEARCH_SM->n134 1674 | 1675 | 1676 | 1677 | 1678 | n135 1679 | 1680 | WT_SEARCH_SUSPEND_CNF 1681 | 1682 | 1683 | LTE_RRC_PLMN_SEARCH_SM->n135 1684 | 1685 | 1686 | 1687 | 1688 | n136 1689 | 1690 | WT_TIME_AVAIL_IND 1691 | 1692 | 1693 | LTE_RRC_PLMN_SEARCH_SM->n136 1694 | 1695 | 1696 | 1697 | 1698 | n137 1699 | 1700 | WT_IRAT_SEARCH_CNF 1701 | 1702 | 1703 | LTE_RRC_PLMN_SEARCH_SM->n137 1704 | 1705 | 1706 | 1707 | 1708 | n138 1709 | 1710 | WT_IRAT_SEARCH_ABORT_CNF 1711 | 1712 | 1713 | LTE_RRC_PLMN_SEARCH_SM->n138 1714 | 1715 | 1716 | 1717 | 1718 | n139 1719 | 1720 | INITIAL 1721 | 1722 | 1723 | LTE_RRC_IRAT_FROM_G_MGR_SM->n139 1724 | 1725 | 1726 | 1727 | 1728 | n140 1729 | 1730 | WT_FOR_ACTIVATE_CNF 1731 | 1732 | 1733 | LTE_RRC_IRAT_FROM_G_MGR_SM->n140 1734 | 1735 | 1736 | 1737 | 1738 | n141 1739 | 1740 | WT_TO_ABORT_DURING_ACTIVATE 1741 | 1742 | 1743 | LTE_RRC_IRAT_FROM_G_MGR_SM->n141 1744 | 1745 | 1746 | 1747 | 1748 | n142 1749 | 1750 | WT_FOR_DEACTIVATE_CNF 1751 | 1752 | 1753 | LTE_RRC_IRAT_FROM_G_MGR_SM->n142 1754 | 1755 | 1756 | 1757 | 1758 | n143 1759 | 1760 | WT_FOR_LTE_TO_COMPLETE 1761 | 1762 | 1763 | LTE_RRC_IRAT_FROM_G_MGR_SM->n143 1764 | 1765 | 1766 | 1767 | 1768 | n144 1769 | 1770 | WT_FOR_LTE_RRC_ABORT_CNF 1771 | 1772 | 1773 | LTE_RRC_IRAT_FROM_G_MGR_SM->n144 1774 | 1775 | 1776 | 1777 | 1778 | n145 1779 | 1780 | WT_FOR_ACTIVATION_RSP 1781 | 1782 | 1783 | LTE_RRC_IRAT_FROM_G_MGR_SM->n145 1784 | 1785 | 1786 | 1787 | 1788 | n146 1789 | 1790 | INITIAL 1791 | 1792 | 1793 | LTE_RRC_CSP_SM->n146 1794 | 1795 | 1796 | 1797 | 1798 | n147 1799 | 1800 | WT_MODE_CHANGE_CNF 1801 | 1802 | 1803 | LTE_RRC_CSP_SM->n147 1804 | 1805 | 1806 | 1807 | 1808 | n148 1809 | 1810 | WT_CFG_CNF 1811 | 1812 | 1813 | LTE_RRC_CSP_SM->n148 1814 | 1815 | 1816 | 1817 | 1818 | n149 1819 | 1820 | WT_SYSTEM_SCAN_CNF 1821 | 1822 | 1823 | LTE_RRC_CSP_SM->n149 1824 | 1825 | 1826 | 1827 | 1828 | n150 1829 | 1830 | WT_BAND_SCAN_CNF 1831 | 1832 | 1833 | LTE_RRC_CSP_SM->n150 1834 | 1835 | 1836 | 1837 | 1838 | n151 1839 | 1840 | WT_ACQ_CNF 1841 | 1842 | 1843 | LTE_RRC_CSP_SM->n151 1844 | 1845 | 1846 | 1847 | 1848 | n152 1849 | 1850 | WT_SIB_CNF 1851 | 1852 | 1853 | LTE_RRC_CSP_SM->n152 1854 | 1855 | 1856 | 1857 | 1858 | n153 1859 | 1860 | WT_CELL_SELECT_CNF 1861 | 1862 | 1863 | LTE_RRC_CSP_SM->n153 1864 | 1865 | 1866 | 1867 | 1868 | n154 1869 | 1870 | CAMPED 1871 | 1872 | 1873 | LTE_RRC_CSP_SM->n154 1874 | 1875 | 1876 | 1877 | 1878 | n155 1879 | 1880 | DISABLED 1881 | 1882 | 1883 | LTE_RRC_ESMGR_SM->n155 1884 | 1885 | 1886 | 1887 | 1888 | n156 1889 | 1890 | ENABLED 1891 | 1892 | 1893 | LTE_RRC_ESMGR_SM->n156 1894 | 1895 | 1896 | 1897 | 1898 | n157 1899 | 1900 | WAIT_FOR_CNF 1901 | 1902 | 1903 | LTE_RRC_ESMGR_SM->n157 1904 | 1905 | 1906 | 1907 | 1908 | n158 1909 | 1910 | INITIAL 1911 | 1912 | 1913 | LTE_RRC_CRE_SM->n158 1914 | 1915 | 1916 | 1917 | 1918 | n159 1919 | 1920 | WAIT_FOR_CFG_CNFI 1921 | 1922 | 1923 | LTE_RRC_CRE_SM->n159 1924 | 1925 | 1926 | 1927 | 1928 | n160 1929 | 1930 | WAIT_FOR_UE_TO_CAMP 1931 | 1932 | 1933 | LTE_RRC_CRE_SM->n160 1934 | 1935 | 1936 | 1937 | 1938 | n161 1939 | 1940 | WAIT_FOR_CONN_RE 1941 | 1942 | 1943 | LTE_RRC_CRE_SM->n161 1944 | 1945 | 1946 | 1947 | 1948 | 1949 | --------------------------------------------------------------------------------