
做外场测试和协议分析这些年我最大的感受是LTE/NR信令里那些Cause值就是网络悄悄递给你的诊断条。很多同事拿到Log先看结果看到“Attach失败”“切换失败”就抓瞎其实真正的问题是藏在失败后面那个数字里的。如果你能快速把Cause解出来定位效率能翻一倍。这篇东西我不打算抄协议规范而是结合真实外场测试中会遇到的各种Cause场景聊聊怎么通过Cause反推根因。不光是背枚举值更重要的是理解它出现在哪个流程、哪一层以及下一步该往哪查。先说清楚本文讨论的Cause指3GPP LTE/NR协议栈里各层信令交互失败或释放时携带的原因值覆盖RRC层、NAS层EMM/5GMM、接口层S1AP/NGAP以及移动性与载波聚合相关流程。适合刚入门外场测试的兄弟也适合从LTE转NR想系统梳理Cause体系的同仁。1. Cause值不是错误文本而是根因索引1.1 每一条Cause都有自己的层级与归属很多人把Cause当字符串看比如cause: radioNetwork“cause: congestion一眼扫过就完了。但实际排障时你是要根据Cause所在的层去定位排查范围的。LTE/NR系统里最常见的Cause分布大致是层级出现位置典型场景代表CauseRRC层UE与基站之间RRC信令接入、重配、重建、释放establishmentCause、congestion、radioNetworkNAS层UE与核心网之间透传Attach/TAU/Service Request/注册EMM Cause、5GMM Cause接口层eNB与MME / gNB与AMF之间初始上下文建立、切换、NG建立S1AP Cause、NGAP Cause传输层底层承载丢包、链路断、拥塞transport resource unavailable关键点在于Cause的归属层决定了你能从哪条信令里看到它。比如终端显示“5G服务不可用”可能对应5GMM Cause #15也可能对应RRC层的释放原因甚至可能是NGAP层的核心网原因。你只看NAS层就漏掉了一半线索。1.2 一个失败事件为什么牵出多个Cause外场最常遇到的困惑是同一个失败事件不同层上报的Cause不一样。比如VoLTE呼叫建立失败RRC信令里可能没有异常但NAS层带回一个EMM Cause #26insufficient resourcesS1AP侧又看到NGAP Cause radioNetwork。这就是Cause的联动性。我把这种联动理解为“责任链”RRC是最后的执行者NAS是指挥者接口层是连接方。真正出问题的往往是源头那一层而每层只上报自己能感知的那部分。所以排查时必须把全程信令串联起来从低层往高层逐层对应不能只盯某一个数字。实际外场定位时我习惯先找NAS层的最终拒绝原因再回头看RRC层的释放原因和时间点最后去接口层核对上下文。2. 驻留与接入阶段从小区搜索到RRC建立失败的Cause链路2.1 PSS/SSS同步失败不是Cause而是测量层面的定位热词里有一条“pss/sss在5g nr中”这其实跟Cause定位经常混在一起。很多人把“同步不上小区”直接归成一个大失败但严格来说PSS/SSS检测失败不是信令上的Cause而是UE物理层测量后的结果。它会导致RRC层根本没有信令产生自然也就没有Cause上报。但这里有个很实用的技巧当UE在某个频点始终搜不到PSS/SSS或者能解出PSS但SSS不一致时通常不是网络故障而是频点配置、小区部署或者PCI混淆。PCI物理小区标识的规划如果出现冲突你会在切换请求里看到Radio Network层的Cause比如切换失败后目标小区重建立失败最终上报reconfiguration failure或handover failure根因却是PCI规划导致的测量错误。我举一个实际遇过的场景拉网测试某路段UE在5G小区A上稳定驻留往东走300米突然掉到LTE不再返回5G。抓Log发现UE一直在测量邻区列表里的5G频点但SSB的RSSI有信号PSS/SSS却解不出来。再回头查配置邻区里的PCI写错了跟实际小区的PCI对不上于是终端侧RRM测量一直上报错误小区的测量量网络侧下发的切换命令自然失败。从Cause看它可能显示为“Radio Network Layer cause: handover failure”或者“T310 expiry”但真正的根因是PCI配置错乱。所以遇到同步相关的问题我的排查顺序是先看测量控制里的频点和PCI再看SSB实际广播的PCI和频点位置最后才轮到信令Cause。Cause只能告诉你哪个环节断了不能告诉你为什么断。2.2 RRC establishmentCause与网络侧拒绝RRC建立是UE进网的第一步也是最直观看Cause的地方。UE在RRCSetupRequest里会上报establishmentCause取值有mo-Signalling、mo-Data、mt-Access、emergency、highPriorityAccess等。这个值不是随便填的它表达了本次接入的触发原因网络侧会拿它做准入控制、拥塞控制和差异化处理。外场测试中如果你看到大量RRCSetupRequest发出去但没有RRCSetup响应或收到RRCReject要看两个地方第一establishmentCause是不是与业务不匹配。比如VoLTE呼叫触发的接入理想情况下应携带mo-VoiceCall或mo-Signalling如果终端上报成mo-Data网络侧可能把它当普通数据业务处理在拥塞时被优先拒绝。第二RRCReject里带的waitTime和cause值常见的是congestion。这个congestion要再看基站的拥塞门限、随机接入资源占用以及S1/NG接口的负载不能停留在“网络拥堵”这个模糊结论上。我自己排查拥塞类Cause时会按这个顺序动手看同一时间段内RRC建立请求数量是否突增区分“真拥塞”还是“个别UE被误伤”。看被拒UE的establishmentCause分布如果全部是mo-Data而接入门限配的是仅允许高优先级接入那就是业务域配置问题。看基站侧是否出现资源池耗尽类告警比如RRC连接数达到上限或随机接入前导资源不足。结合核心网接口的过载保护消息确认是否是核心网触发的拒绝。很多新手拿到RRCReject就直接下“小区拥塞”结论但字段里还有cause值可以进一步分解。比如RRCReject在NR里可能是congestion也可能是“not allowed in this cell”这类针对某些5G切片或接入等级的限制含义完全不同。3. 注册流程的NAS拒绝用EMM/5GMM Cause值定位到网元和配置3.1 最常见的Attach/注册拒绝Cause对照NAS层的Cause是定位“核心网是否接纳终端”的关键。LTE叫EMM CauseNR叫5GMM Cause定义在24.301和24.501里。外场测试中最常碰见的几个我整理了一个实用对照表Cause值含义常指根因方向#2 / #3IMSI unknown / Illegal UEHSS/UDM数据问题终端被纳入黑名单#6Illegal ME设备标识IMEI/PEI被禁#7 / #85GS/EPS服务不允许签约或能力限制#11PLMN not allowed漫游限制、运营商策略#12Tracking Area not allowed位置区/跟踪区没签约#14No network slices available网络切片选择失败常见于5G SA#15No suitable cells终端判断无合适小区和覆盖、频点有关#22Congestion核心网拥塞控制#26Insufficient resources资源不足可能是无线或核心网侧#29User authentication failed鉴权失败重点查USIM与核心网密钥#38CS fallback not allowedCSFB策略拒绝这里有个关键同类故障LTE和NR的Cause不一定相同。比如因为核心网数据配置错误导致终端入不了网LTE下可能显示#7“EPS services not allowed”NR下可能显示#3或#7。遇到跨制式对比时要分别看两个制式的Cause值而不是拿LTE的经验直接套到NR上。3.2 外场遇到“编号异常”时的判读套路热词里有个“nr 513630”很多兄弟问我是不是某种Cause。严格说这不是标准Cause值更像是实际测试中某个5G小区、频点或跟踪区相关的标识号。真实外场经常出现这种“数字看起来像错误码其实只是现场标记”的情况。比如一次在密集城区测5G SAUE上报“5GMM Cause #14 / No network slices available”但问题是只有特定路段出现并非全网。我们拿终端log里的S-NSSAI去对核心网配置发现该路段附近接入的AMF实例里切片配置缺失后面调整AMF配置后Cause消失。还有一次是在CA测试中现场工参把某个辅小区编号记为“NR小区513630”实际信令里却没有对应的cause数据核对后才确认是记录混淆。所以我的建议是先确认“数字”是协议Cause、小区Id、频点、还是IMSI/IMEI的一部分再决定查找方向。误把小区编号当Cause查会白耗大半天。3.3 从NAS拒绝Cause倒推到具体处理流程拿最常见的#15“no suitable cells”举例。很多人以为这是覆盖空洞但其实触发点很多终端在5G网络注册时如果没有合适的NR小区可用会触发这个Cause但此时终端可能已经在LTE网络上如果终端在同一个位置有时能注册、有时不能就要看注册请求里的请求NSSAI和网络侧支持的S-NSSAI是否匹配如果和切片无关再看跟踪区编码TAC是否属于允许列表有些区域虽然信号满格但TAC没有纳入注册区域。排查这类问题时我一般把前台Log、路测打点、核心网侧注册日志三路数据对齐到同一个时间轴。只靠UE侧Log你能看到的只是“被拒”把核心网AMF/MME日志一拉往往第一句话就告诉你拒绝的位置是切片鉴权还是TAC校验。4. 移动性场景切换失败、重选与CA载波聚合的Cause4.1 切换失败的Cause分布与定位顺序移动性场景是外场测试里Cause最密集的地方。切换失败从信令上可能表现为Measurement Report发出去后目标小区加不上、RRCReconfiguration下发后UE不回RRCReconfigurationComplete、源侧RLF、T304超时等。对应的Cause也五花八门。一个典型的LTE切换失败链路是UE上报A3测量报告 - 源站向MME发Handover Required - 目标站回复Handover Request Acknowledge - 源站下发RRC重配 - UE在目标站完成随机接入。任何一环断掉你在信令上看的位置都不一样如果源站发Handover Required后收到Handover Preparation Failure要看S1AP/NGAP的Cause常见是radioNetwork、protocol或transport如果RRC重配下发后T304超时UE会触发RRC重建重建立请求里通常带重建立原因reconfigurationFailure或handoverFailure如果UE已经切到目标小区但短时间内立刻RLF可能要看目标小区的上行同步/干扰问题此时Cause反而不是重点物理层指标才是。NR切换和LTE的区别在于NR更依赖波束管理和SSB测量切换命令里携带的CSI-RS资源或SSB索引如果配置与现网不符很容易导致UE在目标小区解不到同步。这时候尽管信令Cause显示handoverFailure实际根因可能是目标小区波束配置或邻区关系校验问题而且是在外部小区的数据配置表里。4.2 重选失败与小区禁止Barring类Cause重选阶段没有真正的“失败信令”但UE行为会间接暴露问题。常见的现象是UE在某小区无法驻留或一会儿从5G掉到4G一会儿又回来。此时要看系统消息里的小区状态和Cause相关字段比如cellBarred、intraFreqReselection等。有一种典型场景小区因维护或负载被设置barredUE系统消息里收到“barred”状态后不会触发RRC建立从终端上看就像“周围没有可用小区”。如果同时有其他小区被列为禁止重选就会出现“有信号但驻不上去”的怪象。这种情形没有显式Cause但可以用reselectInfo里的优先级和禁止参数反推。还有一种容易被忽略的sib里配置的reselection优先级异常或Q-RxLevMin配错导致UE即使收到很强的SSB/RSRP也不启动重选。此时排查Cause没用得直接看系统消息参数。所以我常说外场分析不能只认Cause还要会看Cause缺席的地方。4.3 CA载波聚合添加与释放的Cause场景热词里有“nr ca的相关流程”这也是Cause高频区。5G NR CA相比LTE CA辅小区SCell的配置更加灵活可以基于SSB或CSI-RS。但在外场测试里SCell添加失败或SCell释放异常的表现通常不是直接一条“CA失败”信令而是SCell配置下发后UE迟迟不回复或一直上报SCell测量失败。CA流程中常见的Cause来源包括RRC重配置里包含SCell配置但UE回复重配失败RRC层会携带对应的failure原因如configFailureSCell邻区PCI配置错导致UE无法解调辅小区同步信号此时可能要回到PSS/SSS排查路径如果核心网或基站侧对载波组合能力协商不一致UE上报的UE Capability与网络下发的组合不匹配RRC层可能直接拒绝配置甚至牵连主小区释放。处理CA相关Cause时一定要把终端的UE能力band组合、带宽、MIMO层数和网络侧配置对齐。很多时候不是“网络下行错误”而是终端上报能力时把某个band组合漏了网络误以为它支持结果实际配置失败。这种问题UE侧Log看不出来得把能力上报和RRC重配逐字段核对才算完。5. 外场测试中快速定位Cause的实操经验5.1 用三层关联的方法读Log很多测试新人读Log是从上往下从头看到尾看到一个失败就停下来截图效率很低。我习惯的做法是先找到“最初的失败信令”再往下看终端是否重试成功然后往前看失败前的周边环境。具体来说分三步认流程先确定当前是注册流程、业务流程还是切换/重建立流程每个流程都有自己的一组核心信令把每个流程里的关键GID/消息序列标出来。找Cause在该流程最后的失败或拒绝消息里找Cause字段记下它属于哪一层。做关联将同时间的物理层测量RSRP/RSRQ/SINR、邻区关系、重传、RLC状态一并看判断Cause是表象还是根因。这步走完80%的问题能定位到网元或配置层面不需要一开始就开深层协议栈分析。5.2 时间对齐是外场复现Cause的隐形基础外场测试或后台分析时最怕的是“多方日志时间戳对不上”。UE侧Log的时间是终端本地时间基站侧是网管时间核心网又是另外一套。不同步的时间线会让同一个Cause事件在三个平台里对不上导致无法判断谁先谁后。我自己的做法是每次外场测试之前先让终端跟GPS或授时源对表基站侧和核心网用网管统一时间或者至少把跨平台的时间偏差控制在几百毫秒内。定位跨层Cause时只要时间轴能对齐一个失败事件几分钟就能理清责任链。5.3 易踩的几个坑看见Cause是congestion就往拥塞上报没有区分无线拥塞和核心网过载两者处理路径完全不同忽略重试机制。UE很多时候第一条请求被拒后会加长等待时间重试如果不看重试后的成功流程会误以为问题持续存在过度依赖Cause文本忽略了IE里的附加信息。比如5GMM Cause常带一个额外的“hint”或“服务区限制”信息单独看Cause值会漏掉关键限制条件。根据我在LTE/NR外场和后台分析里摸爬滚打的经验Cause值这东西会背是小事能把Cause放回信令流程里看才是核心能力。每次遇到失败先问自己三个问题这个Cause出现在哪一步它描述的是无线侧还是核心网侧的问题终端的测量和配置信息能不能佐证这个Cause把这套思路练熟比记住一百个枚举值管用得多。最后再分享一个外场常用的小技巧如果你在复现某个偶发Cause问题别只抓一次失败就收手。同样的场景至少让它发生三到五次对比每次失败前的测量量和信令时序这样才看得出是随机干扰还是系统性配置问题。对LTE/NR的Cause场景来说“重复复现多层关联时间对齐”永远是定位的不二法门也是我们做测试这行最扎实的基本功。