1. 测试场景说明
共四种场景:非BOND非共IP、非BOND共IP、BOND非共IP、BOND共IP。
(1)BOND:指的是接口主备模式
(2)共IP:指的是PTP时钟链路与SCTP链路本段使用同一个IP
版本:arm版本不支持BOND模式,只包含前两种测试场景;x86版本包含所有测试场景。
基本要求:运行/opt/lte_health_check &,建小区,跑业务。(5801: nohup /opt/lte_health_check &)
2. 测试场景
2.1 建小区的必须配置
添加配置(以3801-230为例):
1 | MOD MCB: ShNum="0",ChNum="0",SlNum="7",ConfigState="Configured",AdminState="UnLocked",memMinorFaultVal="75",memMajorFaultVal="85",memSeriousFaultVal="95",cpuMinorFaultVal="75",cpuMajorFaultVal="85",cpuSeriousFaultVal="95",tempNcThreshd="95",tempCrThreshd="100",tempNrThreshd="105"; |
先配置传输配置,再添加小区。
配置存在版本差异,当前版本下面二选一:
1 | ADD Cell: CellId="230",SectorId="1",PhyCellId="230",DuplexingMode="Fdd",FrameEdgeOffset="0",BandInd="28",UlEarfcn="27435",DlEarfcn="9435",MaxNumRRC="400",Bandwidth="BW_N_50",AntennaPortsCount="AN2",AntennaMode="2T2R",CellActiveState="ACTIVE",plmnidx="0",TaIdx="0",TimeAlignmentTimerCommon="sf1920",BusinessType="Normal_Mode",MaxUeNum="UE_NUM400",RruMode="NORMAL_MODE",DRXEnable="FALSE",RlfDelayTimer="10000",HoDelayTimer="0",PLMNRBEnable="FALSE",PLMNRBTokenPeriodicity="20",FreqPriorityEnable="FALSE",BlindHoEnable="FALSE",CellName="230",VolteDrxEnable="TRUE",EplmnEnable="FALSE"; |
2.2 非BOND非共IP
不配置BOND口,PTP与SCTP链路使用各自的DEVIP,建小区。
添加配置(以3801-230为例):
1 | ADD DEVIP: PN="ETH",IP="192.168.2.230",MASK="255.255.255.0",VLAN="124",AddressingType="Static",Usage="S1"; |
删除配置:
1 | DEL S1Interface : S1InterfaceId = 1 , S1AssocId = 1 ; |
2.3 非BOND共IP
不配置BOND口,PTP时钟链路与SCTP链路使用同一个DEVIP,建小区。
添加配置:
1 | ADD DEVIP: PN="ETH",IP="192.168.2.230",MASK="255.255.255.0",VLAN="124",AddressingType="Static",Usage="S1"; |
删除配置:
1 | DEL S1Interface : S1InterfaceId = 1 , S1AssocId = 1 ; |
2.4BOND 非共IP
配置BOND口,PTP与SCTP链路使用各自的DEVIP,建小区。
添加配置:
1 | ADD BOND: ac_port="SFP1",bc_port="ETH",priority="Disable"; |
删除配置:
1 | DEL S1Interface : S1InterfaceId = 1 , S1AssocId = 1 ; |
2.5 BOND共IP
配置BOND口,PTP与SCTP链路使用同一个DEVIP,建小区。
添加配置:
1 | ADD BOND: ac_port="SFP1",bc_port="ETH",priority="Disable"; |
删除配置:
1 | DEL S1Interface : S1InterfaceId = 1 , S1AssocId = 1 ; |
3. 观察现象
(1)SCTPLINK的状态是否UP;
(2)PTP时钟状态正常:能同步上是最好;同步不上,在保证PTP链路正常的前提下,切GNSS/FreeRun;
(3)小区在服;
(4)观察UE及灌包情况(15分钟):UE不掉线,灌包数据正常;
(5)存在BOND的情况:交替拔插主备端口,观察UE是否掉线,ping丢包情况(丢一两个包,正常);
(6)检查系统资源使用情况(/var/log/cspl/health)。
4. PTP时钟测试
4.1 配置非共IP的PTP链路
PTP服务器:
使用测试部那边的PTP服务器,IP为172.19.5.250。
基站配置:
1 | ADD DEVIP: PN="ETH",IP="192.168.2.230",MASK="255.255.255.0",VLAN="124",AddressingType="Static",Usage="S1"; |
4.2配置共IP的PTP链路
PTP服务器:
打开终端,ssh到我们的核心网,IP为10.161.28.21。执行如下命令运行PTP服务器,IP为192.169.100.110。
1 | cd /opt/ptp_server/linuxptp |
基站配置:
1 | ADD DEVIP: PN="ETH",IP="192.168.2.230",MASK="255.255.255.0",VLAN="124",AddressingType="Static",Usage="S1"; |
4.3 观察PTP链路是否正常
打开终端,ssh到基站,输入命令bsp ptp4l log打印PTP时钟的实时状态。
ppsState为0表示PTP时钟同步。只要打印出时间偏差则表示PTP链路正常,ppsState不为0也没关系。

5. 灌包测试
前提条件:小区在服
5.1 UE上线
打开QXDM软件,在View -> New -> LTE -> RRC Layer 中打开 LTE RRC State Change Plot 窗口。

在Options 中打开 Communications 窗口,10.161.31.127管理主机连接UE的串口为COM13(参考传输配置表格–管理主机)。


在Command命令窗口执行mode lpm命令和mode online命令,观察 LTE RRC State Change Plot 窗口,应该处于Connected状态。

然后在显示屏右下角点击网络连接图标,连接网络,如果已经连上则不予理会。至此UE已经上线了,可以打开windos cmd终端或者PowerShell终端,执行ipconfig 查看UE的IP。

5.2 UE与灌包服务器之间的网络配置
远程到10.161.31.126管理主机,该主机作为灌包服务器,服务器IP为192.168.49.99。
需在126和127管理主机上配置路由(参考传输配置表格–管理主机),保证UE与灌包服务器网络能通,两边互相能ping通。
Windos终端用到的命令:
1 | 查看IP: ipconfig |
5.3 开始灌包
打开gperf.exe软件,只需要修改目标IP,灌包速率即可。127进行上行灌包,126进行下行灌包。

通过ssh连接到基站,执行如下命令,进入vpp查看ue状态及上下行速率。
1 | cd /LTE/user/Area0/bin |

6. BOND测试
前提条件:配置BOND链路,建小区,UE上线。
(1)UE与灌包服务器之间一直保持相互ping包的状态;
(2)打开终端,ssh到基站,输入如下命令可以看出eth2是BOND的活跃口(哪个口在前面,哪个口就是活跃口)。
1 | cd /LTE/user/Area0/bin |

(3)此时拔插eth2口的网线,执行show bond details命令,可以观察到eth3口成为活跃口,UE没有掉线,两边ping包没有丢包(一两个丢包没关系);拔插eth3口的网线重复此步骤,重复4~5次,没有异常,则测试通过。



7. 检查系统资源使用情况
进行版本测试前,执行命令/opt/lte_health_check &,把检查系统资源使用情况的程序拉起来;
每个用例测试结束后,去查看lteDiskFullDetail.txt、lteMemReport.txt、overThdValue.txt这些文件。
7.1 lteDiskFullDetail.txt文件
记录磁盘使用情况,当磁盘使用超过70%,则需要注意,并查找相关原因。

7.2 lteMemReport.txt文件
记录各个进程使用内存情况,主要各个进程内存增加和减少的次数。
如果某个进程在多个周期内只有增加,没有减少,则该进程就存在有内存泄漏的可能。

7.3 overThdValue.txt文件
记录在测试过程中,哪些进程的cpu使用率超过了90%,并记录周期内超过90%次数。
如果某个进程cpu使用率超过了90%,代码就有存在死循环的可能。
