深度解析 3GPP TS 38.423:8.1 & 8.2.1 基本流程与切换准备

本文技术原理深度参考了3GPP TS 38.423 V18.5.0 (2025-03) Release 18规范中,关于“8.1 Elementary procedures”和“8.2.1 Handover Preparation”的核心章节。本文旨在为读者清晰地展现XnAP协议所有交互的基本单元分类,并以最核心的切换准备流程为例,进行深入、场景化的拆解。

1. XnAP世界的“对话范式”

在上一篇文章中,我们跟随初级工程师小林和他的导师陈工,学习了XnAP协议的“词汇表”(第3章)和“语法规则”(第4-7章)。现在,小林已经对XnAP协议的设计原则有了宏观的认识。

“陈工,”小林充满期待地问,“我已经理解了协议的‘立法精神’,现在是不是可以学习具体的‘法律条文’了?”

陈工点点头,打开规范翻到第8章:“没错。第8章‘XnAP procedures’是整部规范的心脏。它定义了基站之间为了完成各种协作任务所需要进行的全部‘对话’。而8.1节‘Elementary procedures’(基本流程),就是这些对话的最基本分类,相当于教你识别‘陈述句’和‘疑问句’。掌握了这个分类,你才能理解每个流程的设计意图。”

2. XnAP流程的两大阵营:Class 1 与 Class 2

陈工指着8.1节的开篇文字:

In the following tables, all EPs are divided into Class 1 and Class 2 EPs.

“小林,你看,所有XnAP的交互单元,也就是我们之前在第3章学过的‘基本流程’(EP),都被分成了两大类:Class 1和Class 2。这两种分类的核心区别在于:交互是否需要一个明确的结果反馈。”

2.1 Class 1 基本流程:有问必答的严谨对话

陈工首先指向了Table 8.1-1: Class 1 Elementary Procedures

“Class 1流程,可以理解为‘有问必答’式的交互。发起方发送一个请求消息,接收方在处理后,必须回复一个结果——要么是‘成功’,要么是‘失败’。这种模式确保了流程的闭环和状态的同步,适用于所有需要协商和确认的关键操作。”

为了让小林有更直观的认识,陈工让他仔细看这张表,并解释了其核心结构。

表 8.1-1: Class 1 基本流程 (注:为保证完整性,此处将规范中分布在多页的完整表格进行重绘)

Elementary Procedure (基本流程)Initiating Message (发起消息)Successful Outcome Response message (成功响应消息)Unsuccessful Outcome Response message (失败响应消息)
Handover Preparation (切换准备)HANDOVER REQUESTHANDOVER REQUEST ACKNOWLEDGEHANDOVER PREPARATION FAILURE
Retrieve UE Context (UE上下文检索)RETRIEVE UE CONTEXT REQUESTRETRIEVE UE CONTEXT RESPONSERETRIEVE UE CONTEXT FAILURE
S-NG-RAN node Addition Preparation (S节点添加准备)S-NODE ADDITION REQUESTS-NODE ADDITION REQUEST ACKNOWLEDGES-NODE ADDITION REQUEST REJECT
M-NG-RAN node initiated S-NG-RAN node Modification Preparation (M节点发起的S节点修改准备)S-NODE MODIFICATION REQUESTS-NODE MODIFICATION REQUEST ACKNOWLEDGES-NODE MODIFICATION REQUEST REJECT
S-NG-RAN node initiated S-NG-RAN node Modification (S节点发起的S节点修改)S-NODE MODIFICATION REQUIREDS-NODE MODIFICATION CONFIRMS-NODE MODIFICATION REFUSE
S-NG-RAN node initiated S-NG-RAN node Change (S节点发起的S节点变更)S-NODE CHANGE REQUIREDS-NODE CHANGE CONFIRMS-NODE CHANGE REFUSE
M-NG-RAN node initiated S-NG-RAN node Release (M节点发起的S节点释放)S-NODE RELEASE REQUESTS-NODE RELEASE REQUEST ACKNOWLEDGES-NODE RELEASE REJECT
S-NG-RAN node initiated S-NG-RAN node Release (S节点发起的S节点释放)S-NODE RELEASE REQUIREDS-NODE RELEASE CONFIRM
Xn Setup (Xn建立)XN SETUP REQUESTXN SETUP RESPONSEXN SETUP FAILURE
NG-RAN node Configuration Update (NG-RAN节点配置更新)NG-RAN NODE CONFIGURATION UPDATENG-RAN NODE CONFIGURATION UPDATE ACKNOWLEDGENG-RAN NODE CONFIGURATION UPDATE FAILURE
Cell Activation (小区激活)CELL ACTIVATION REQUESTCELL ACTIVATION RESPONSECELL ACTIVATION FAILURE
Reset (重置)RESET REQUESTRESET RESPONSE
Xn Removal (Xn移除)XN REMOVAL REQUESTXN REMOVAL RESPONSEXN REMOVAL FAILURE
E-UTRA - NR Cell Resource Coordination (E-UTRA-NR小区资源协调)E-UTRA - NR CELL RESOURCE COORDINATION REQUESTE-UTRA - NR CELL RESOURCE COORDINATION RESPONSE
Resource Status Reporting Initiation (资源状态上报启动)RESOURCE STATUS REQUESTRESOURCE STATUS RESPONSERESOURCE STATUS FAILURE
Mobility Settings Change (移动性设置变更)MOBILITY CHANGE REQUESTMOBILITY CHANGE ACKNOWLEDGEMOBILITY CHANGE FAILURE
IAB Transport Migration Management (IAB传输迁移管理)IAB TRANSPORT MIGRATION MANAGEMENT REQUESTIAB TRANSPORT MIGRATION MANAGEMENT RESPONSEIAB TRANSPORT MIGRATION MANAGEMENT REJECT
IAB Transport Migration Modification (IAB传输迁移修改)IAB TRANSPORT MIGRATION MODIFICATION REQUESTIAB TRANSPORT MIGRATION MODIFICATION RESPONSE
IAB Resource Coordination (IAB资源协调)IAB RESOURCE COORDINATION REQUESTIAB RESOURCE COORDINATION RESPONSE
Partial UE Context Transfer (部分UE上下文传输)PARTIAL UE CONTEXT TRANSFERPARTIAL UE CONTEXT TRANSFER ACKNOWLEDGEPARTIAL UE CONTEXT TRANSFER FAILURE
Data Collection Reporting Initiation (数据采集上报启动)DATA COLLECTION REQUESTDATA COLLECTION RESPONSEDATA COLLECTION FAILURE

场景代入:“我们再回到‘李雷’的高铁场景。源基站A要将李雷切换到目标基站B。A必须知道B是否同意接收、是否已经为李雷准备好了资源。所以,‘切换准备’(Handover Preparation)流程必须是Class 1。A发送HANDOVER REQUEST,如果B一切就绪,就回复HANDOVER REQUEST ACKNOWLEDGE,A就可以继续后续的切换执行步骤。如果B资源紧张,无法接收李雷,它就必须回复HANDOVER PREPARATION FAILURE,并附上原因,比如‘目标小区资源不可用’。A收到失败消息后,就知道这次切换尝试失败了,可能会选择另一个候选基站C。”

2.2 Class 2 基本流程:单向通知的简洁交互

接着,陈工展示了Table 8.1-2: Class 2 Elementary Procedures

“Class 2流程,则是‘单向通知’式的交互。发起方只管发送消息,不期望、也不等待接收方的回复。这种模式非常高效,适用于那些信息传递本身即是目的、不需要协商或确认的场景。”

表 8.1-2: Class 2 基本流程 (注:根据规范原文重绘)

Elementary Procedure (基本流程)Initiating Message (发起消息)
Handover Cancel (切换取消)HANDOVER CANCEL
SN Status Transfer (SN状态传递)SN STATUS TRANSFER
RAN Paging (RAN寻呼)RAN PAGING
Xn-U Address Indication (Xn-U地址指示)XN-U ADDRESS INDICATION
S-NG-RAN node Reconfiguration Completion (S节点重配完成)S-NODE RECONFIGURATION COMPLETE
S-NG-RAN node Counter Check (S节点计数器检查)S-NODE COUNTER CHECK REQUEST
UE Context Release (UE上下文释放)UE CONTEXT RELEASE
RRC Transfer (RRC传输)RRC TRANSFER
Error Indication (错误指示)ERROR INDICATION
Notification Control Indication (通知控制指示)NOTIFICATION CONTROL INDICATION
Activity Notification (活动通知)ACTIVITY NOTIFICATION
Secondary RAT Data Usage Report (第二RAT数据使用报告)SECONDARY RAT DATA USAGE REPORT
Trace Start (跟踪开始)TRACE START
Deactivate Trace (去激活跟踪)DEACTIVATE TRACE
Handover Success (切换成功)HANDOVER SUCCESS
Conditional Handover Cancel (条件切换取消)CONDITIONAL HANDOVER CANCEL
Early Status Transfer (早期状态传递)EARLY STATUS TRANSFER
Failure Indication (失败指示)FAILURE INDICATION
Handover Report (切换报告)HANDOVER REPORT
Resource Status Reporting (资源状态上报)RESOURCE STATUS UPDATE
Access And Mobility Indication (接入与移动性指示)ACCESS AND MOBILITY INDICATION
Cell Traffic Trace (小区流量跟踪)CELL TRAFFIC TRACE
RAN Multicast Group Paging (RAN多播组寻呼)RAN MULTICAST GROUP PAGING
SCG Failure Information Report (SCG失败信息报告)SCG FAILURE INFORMATION REPORT
SCG Failure Transfer (SCG失败传递)SCG FAILURE TRANSFER
F1-C Traffic Transfer (F1-C流量传输)F1-C TRAFFIC TRANSFER
Retrieve UE Context Confirm (UE上下文检索确认)RETRIEVE UE CONTEXT CONFIRM
Conditional PSCell Change Cancel (条件PSCell变更取消)CONDITIONAL PSCELL CHANGE CANCEL
RACH Indication (RACH指示)RACH INDICATION
Data Collection Reporting (数据采集上报)DATA COLLECTION UPDATE

场景代入:“还是李雷的切换场景。在基站A准备将李雷交给基站B时,为了保证数据传输的连续性,A需要把已发送和已接收数据包的PDCP序列号(SN)告诉B。这个动作就是‘SN状态传递’(SN Status Transfer)。A只管把这个状态信息打包成SN STATUS TRANSFER消息发给B就行,它不需要等B回复‘我收到了,正在处理’。A发送完毕后,就可以继续执行自己的后续动作了。这种‘发后不理’的模式,极大地提升了流程的效率。”

“好了,小林。”陈工总结道,“现在你已经掌握了XnAP流程的两种基本‘对话范式’。理论学习到此为止,现在我们立刻进入实战,深入剖析第一个,也是最重要的Class 1流程——8.2.1 切换准备 (Handover Preparation)。”

3. 深入实战:8.2.1 Handover Preparation (切换准备)

切换准备是保障移动性的基石,其目标是在UE真正接入目标小区之前,在目标基站侧完成所有必要的资源预留和上下文准备工作。

3.1 8.2.1.1 General (概述)

This procedure is used to establish necessary resources in an NG-RAN node for an incoming handover. If the procedure concerns a conditional handover, parallel transactions are allowed. Possible parallel requests are identified by the target cell ID when the source UE AP IDs are the same.

陈工为小林划出重点:“这一段概述非常精炼,包含三大信息点:”

  1. 核心目的:为即将到来的切换,在目标基站建立必要的资源。
  2. 并发特例:明确指出了条件切换(CHO)场景下,允许并行处理。源基站可以同时向多个候选目标基站发起切换准备。
  3. 并行识别:系统通过“相同的UE ID + 不同的目标小区ID”来识别这些并行的请求。

3.2 8.2.1.2 Successful Operation (成功操作)

陈工指向规范中的Figure 8.2.1.2-1: Handover Preparation, successful operation:“你看,最简单的成功流程就是这一来一回。但魔鬼藏在细节中,我们来看看HANDOVER REQUEST这个‘快递包裹’里到底装了些什么,以及目标基站收到后都做了哪些事。”

场景再现: 李雷乘坐的高铁正以350km/h的速度从基站A(源)的覆盖区驶向基站B(目标)。

第一步:源基站发起请求

The source NG-RAN node initiates the procedure by sending the HANDOVER REQUEST message to the target NG-RAN node. When the source NG-RAN node sends the HANDOVER REQUEST message, it shall start the timer TXnRELOCprep.

陈工的解读:“基站A的RRC层通过测量报告判断需要切换,于是触发XnAP层向基站B发送HANDOVER REQUEST消息。同时,它启动了一个名为TXnRELOCprep的定时器。这个定时器就像一个‘沙漏’,如果沙子漏完之前还没收到基站B的回复,基站A就认为这次请求超时失败了,会采取补救措施。”

HANDOVER REQUEST消息是XnAP中内容最丰富的消息之一,它携带了UE的完整“家底”,主要包括:

  • UE上下文信息 (UE Context Information)

    • 安全信息 (AS Security Information):包括用于计算目标侧安全密钥的各种参数。基站B需要这些信息来预先计算出与UE通信的新密钥,确保切换后通信的无缝和安全。
    • UE能力 (UE Security Capabilities, UE Radio Capability):告诉基站B,李雷的手机支持哪些加密算法、支持哪些频段和特性,以便B为其配置最合适的功能。
    • PDU会话资源列表 (PDU Session Resources To Be Setup List):这是核心中的核心。李雷正在进行视频会议和文件下载,这对应着不同的PDU会话。这个列表详细描述了每个PDU会话的QoS要求(如视频会议需要低时延、文件下载需要高带宽)、数据转发地址等信息。
    • RRC上下文 (RRC Context):一个“黑盒子”,里面装着源基站A认为目标基站B需要知道的、关于UE的RRC配置信息。
  • 目标小区ID (Target Cell Global ID):明确告诉基站B,希望切换到它的哪个具体的小区。

第二步:目标基站处理请求并响应

基站B收到请求后,会进行一系列复杂的“入学准备”工作:

  1. 资源准入控制 (Admission Control):基站B会检查自己是否有足够的资源(如PRB、调度容量等)来满足李雷所有业务的QoS要求。如果连视频会议的最低要求都满足不了,它就会拒绝这次切换。

  2. 资源预留:如果准入通过,基站B会为李雷预留无线资源,并准备好RRC配置信息。

  3. 安全密钥计算:利用请求中带来的安全信息,计算出新的AS层安全密钥。

  4. 准备数据转发隧道

    For each QoS flow for which the source NG-RAN node proposes to perform forwarding of downlink data, the source NG-RAN node shall include the DL Forwarding IE set to “DL forwarding proposed”… For each PDU session for which the target NG-RAN node decides to admit the data forwarding for at least one QoS flow, the target NG-RAN node may include the PDU Session level DL data forwarding UP TNL Information IE…

    陈工的解读:“这是保证数据零丢失的关键。基站A在请求中会提议:‘对于这些数据流,我准备把没发完的数据转给你’。基站B如果同意,就会在回复中提供一个GTP-U隧道的地址(UP TNL Information),相当于给A一个‘收货地址’。切换执行时,A就会把‘在途’的数据包通过这个隧道发给B。”

完成所有准备后,基站B会回复HANDOVER REQUEST ACKNOWLEDGE消息。这个消息中主要包含:

  • PDU会话资源准入列表 (PDU Session Resources Admitted List):告诉基站A,哪些业务的资源已经准备好了,以及对应的数据转发“收货地址”。
  • PDU会话资源拒绝列表 (PDU Session Resources Not Admitted List):如果某些业务无法满足,会在这里列出并说明原因。
  • 目标侧RRC容器 (Target NG-RAN node To Source NG-RAN node Transparent Container):这是另一个“黑盒子”,里面装着基站B为UE准备好的RRCReconfiguration消息的核心部分。基站A会把这个容器“原封不动”地嵌入到它发给UE的切换指令中。

第三步:源基站完成准备

Upon reception of the HANDOVER REQUEST ACKNOWLEDGE message, the source NG-RAN node shall stop the timer TXnRELOCprep and terminate the Handover Preparation procedure. If the procedure was initiated for an immediate handover, the source NG-RAN node shall start the timer TXnRELOCoverall.

陈工的解读:“基站A收到成功的响应后,会停止‘沙漏’TXnRELOCprep,因为准备阶段已经成功完成。然后,它会启动一个新的、更长的‘沙漏’TXnRELOCoverall,用于监控整个切换流程(包括UE接入目标小区)是否在规定时间内完成。至此,XnAP的切换准备流程宣告结束,球被踢给了RRC层,由源基站向UE下发切换指令。”

4. 异常处理:切换准备的“B计划”

4.1 8.2.1.3 Unsuccessful Operation (失败操作)

If the target NG-RAN node does not admit at least one PDU session resource, or a failure occurs during the Handover Preparation, the target NG-RAN node shall send the HANDOVER PREPARATION FAILURE message to the source NG-RAN node. The message shall contain the Cause IE with an appropriate value.

陈工的解读:“如果基站B在资源准入控制时发现自己‘家底’不够,无法承接李雷的任何一项业务,或者发生了其他内部错误,它就必须回复HANDOVER PREPARATION FAILURE,并明确告知失败原因,如no-radio-resources-available-in-target-cell。这是Class 1流程的应有之义。”

4.2 8.2.1.4 Abnormal Conditions (异常条件)

陈工的解读:“异常情况主要有两种:”

  1. 定时器超时:如前所述,如果基站A的TXnRELOCprep定时器超时,它会认为目标基站B“失联”或无响应,将主动取消此次切换准备,并可能触发对B的故障检测。

  2. 安全能力不匹配

    If the supported algorithms for encryption defined in the UE Security Capabilities IE … do not match any allowed algorithms defined in the configured list of allowed encryption algorithms in the NG-RAN node …, the NG-RAN node shall reject the procedure using the HANDOVER PREPARATION FAILURE message.

    “如果基站A发来的信息显示,李雷的手机支持的加密算法,基站B一个都不支持,那么安全的通信就无法建立。这就像两个特工对不上暗号,接头失败。此时,基站B必须拒绝切换。”

5. 总结:承上启下的关键一步

小林听完陈工的讲解,茅塞顿开。他明白了,8.1节是对XnAP所有“对话”模式的顶层划分,为理解协议行为提供了框架。而8.2.1节的切换准备流程,则是这个框架下最生动、最关键的一个实例。它完美地展示了Class 1流程的严谨性,以及XnAP协议是如何通过精确的IE定义和严密的流程步骤,在两个基站之间高效、可靠地传递UE上下文,为上层无线移动性功能提供坚实支撑的。

这堂“入职第一课”让小林深刻认识到,理解协议不仅仅是看懂信令的一来一回,更是要理解其背后的设计原则、服务边界和异常处理逻辑。只有这样,才能在未来的开发和调试工作中游刃有余。

FAQ

Q1:TXnRELOCprepTXnRELOCoverall这两个定时器有什么区别和联系? A1:两者都是源基站在切换过程中启动的定时器。TXnRELOCprep用于监控切换准备阶段,从发送HANDOVER REQUEST开始,到收到HANDOVER REQUEST ACKNOWLEDGEFAILURE结束。它确保了准备阶段能在规定时间内完成。而TXnRELOCoverall用于监控整个切换流程,从准备成功(收到ACK)后开始,直到UE成功接入目标小区(或最终切换失败)为止。它保证了整个切换过程不会无限期地挂起,避免UE上下文在源站和目标站长期冗余。

Q2:为什么UE Context Release(UE上下文释放)是一个Class 2流程,它难道不需要源基站确认“已释放”吗? A2:UE Context Release通常由目标基站(在切换成功后)或新的基站(在RRC重建立成功后)触发,用于通知源/旧基站可以释放相关资源了。这是一个单向的“清理通知”。源/旧基站收到后执行清理即可,它是否成功释放,对于发起方(新基站)来说并不关心,也不影响后续流程。因此,为了效率,它被设计为Class 2流程。如果源/旧基站没有收到这个消息,其自身的资源管理机制(如TXnRELOCoverall超时)最终也会清理掉过期的UE上下文。

Q3:在双连接(DC)场景下,添加一个次节点(SN)的流程和切换流程有什么相似之处? A3:两者非常相似。S-NODE ADDITION PREPARATION流程本质上也是一个资源准备过程,主节点(MN)扮演着类似源基站的角色,次节点(SN)扮演着类似目标基站的角色。MN也需要向SN发送一个包含UE上下文信息(安全、QoS、能力等)的请求消息(S-NODE ADDITION REQUEST),SN进行资源准入和准备,并回复确认或拒绝消息。它们都是Class 1流程,核心都是在一个新的节点上为UE预先建立上下文和资源。

Q4:HANDOVER REQUEST消息中的RRC Context为什么被称为“透明容器”? A4:所谓“透明”,是指XnAP协议本身不解析、不修改这个容器里的内容。这个容器里装的是RRC协议层面的信息。源基站的RRC层将它需要传递给目标基站RRC层的信息打包好,交给XnAP层。XnAP层就像一个不关心包裹内容的快递员,只是把这个“包裹”安全地从源站送到目标站。目标站的XnAP层收到后,再把这个“包裹”原封不动地交给自己的RRC层去拆解和使用。这种设计体现了协议分层的思想,让各层专注于自己的职责。

Q5:如果一个HANDOVER REQUEST消息中包含了多个PDU会话,目标基站是否可以只同意其中一部分? A5:是的,完全可以。这是XnAP切换准备流程非常灵活的一点。目标基站会对PDU Session Resources To Be Setup List中的每一个PDU会话进行独立的准入判断。对于可以满足QoS要求的PDU会话,它会将其资源配置信息放入响应消息的PDU Session Resources Admitted List中;对于由于资源不足或其他原因无法满足的,则会放入PDU Session Resources Not Admitted List中,并附上失败原因。源基站收到响应后,可以根据“战果”(成功了几个PDU会话)来决定是否继续执行这次“部分成功”的切换。