本文实例基于高通芯片LOG
RLF(Radio Link Failure)无线链路失败,是一种常见的网络问题,触发RLF的原因有很多,本文主要介绍RLC PDU max retry导致的RLF掉网事件。
在LOG中RRC层找到网络异常的时间点发现在该时间段有一次RRC重建消息,重建的原因为Other Failure,如下图:
由于RRC层中并没有表明明确的重建原因,所以继续在event事件中查找。果然在Event事件中有一个RLF打印,显示RRC重建的原因是因为触发RLC层PDU最大重传次数导致无线链路失败,如下图:
既然找到了RRC重建的原因是因为RLC PDU重传导致,那么下一步直接去找RLC层对应的PDU是否发送到基站,因为PDU数据比较多,所以这里就不在叙述如何找到对应的重传PDU了,根据时间点去找即可,如下图:
在上图中可以看出,该PDU确实重传了多次(8次),注意这里是上行PDU所以只需要看RLC UL PDU即可。但是没有收到基站侧的ACK响应即RLC DL PDU(虽然上图中有DL PDU但是这些并不是 重传PDU的ACK,具体可以根据DL PDU中的SN_ACK号进行对应),理论上基站侧应该回复 SN_ACK=SN+1,但是实际中UE并没有收到。
到这里又存在一个疑问,是UE没有发送到基站还是基站收到了没有发送ACK给UE?
基站侧由于无法从运营商侧拿到基站log,所以我们只能从UE侧进行排查,也就是UE是否将数据发送到基站,至于基站侧是否响应暂时不管。
继续检查MAC层上行是否正常,过滤出MAC层消息后根据重传PDU的帧号与子帧号找到对应的MAC UL数据,可以看出MAC层已经将数据发送出去,如下图:
MAC层正常只能继续向下分析,继续排查PHY层上行是否正常,筛选后发现PHY上行也是正常,如下图:
没辙了最后一步,如果基站响应了ACK,那么应该在PHICH信道应该会收到基站的响应,继续筛选发现没有收到ACK,如下图:
综合上面分析结果,怀疑是基站侧没有及时响应PDU ACK导致,最后找到运营商排查发现基站侧确实在该时间段有问题但是拒绝回应具体的问题原因,问题最后也不了了之 😦