作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120790128
目录
1. 什么是nr-softmodem
2. nr-softmodem入口参数概述
2.1 命令行参数的作用
2.2 如何获取命令行参数
3. nr-softmodem入口参数
3.1 设备级参数
3.2 gNB级别的配置
3.3 小区级别的配置
3.4 L3的配置
3.5 L2的配置
2.6 nFAPI的配置
3.7 L1的配置
3.8 RF的配置
3.9 UE相关配置
3.10 核心网相关接口相关配置
nr-softmodem是5G NR基站侧可执行程序, 该程序是5G NR基站侧软件的接口程序。
可以直接在X86 CPU + 嵌入式Linux上执行。
在不改变编译代码的情况下,控制nr-softmodem的行为。
nr-softmodem --help
--thread-pool: Thread pool configuration:
default no pool (runs in calling thread),
list of cores, comma separated (negative value is no core affinity)
example: -1,3 launches two working threads one floating, the second set on core 3
指定线程池的数目,默认没有线程池。
线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。 例如,线程数一般取cpu数量+2比较合适,线程数过多会导致额外的线程切换开销。
--single-thread-enable: Disables single-thread mode in lte-softmodem
disable lte-softmodem单线程的模式,单线程会导致性能的下降。
-R: Enable online log
使能在线的log
-g: Set the global log level, valid options: (4:trace, 3:debug, 2:info, 1:warn, (0:error))
设定log的等级。
--log-mem: Help string not specified
--telnetsrv: Start embedded telnet server
使能嵌入式telnet server,这样可以远程登录到基站。
--telnetclt: Help string not specified
--split73:
Split 7.3 (below rate matching) option:
7-3选项是指CU和DU的分离,是L3与L2的分离。
这时候需要各自指定CU和DU的IP地址和通信端口号。
--sa: run gNB in standalone mode
基站工作SA模式下,而不是NSA模式(与LTE协同组网)
--clock-source: tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)
时钟源的选择:内部时钟源或GPS时钟源,目前不支持1588.
--time-source: tells hardware to use a time reference (0:internal, 1:external, 2:gpsdo)
时间源的选择:内部时钟源或GPS时钟源,目前不支持1588.
--wait-for-sync: Help string not specified
--worker-config: two option for worker 'WORKER_DISABLE' or 'WORKER_ENABLE'
--Active_gNBs: Help string not specified
--do-ra: test gNB and UE with RA procedures
测试UE和gNB的随机接入过程。
-a: Channel id offset ???
-d: Enable soft scope and L1 and L2 stats (Xforms)
使能L1和L2的性能统计功能
--numerology: adding numerology for 5G
使能5G的numerology功能。
--parallel-config:
three config for level of parallelism 'PARALLEL_SINGLE_THREAD', 'PARALLEL_RU_L1_SPLIT', or 'PARALLEL_RU_L1_TRX_SPLIT'
--nbiot-disable: disable nb-iot, even if defined in config
NBIoT disable
--nokrnmod: (noS1 only): Use tun instead of namesh module
PDCP的flag。
pdcp_initmask = pdcp_initmask | ENB_NAS_USE_TUN_BIT | SOFTMODEM_NOKRNMOD_BIT
-q: Enable processing timing measurement of lte softmodem on per subframe basis
使能明个子帧的定时测量。
--use-256qam-table: Use the 256 QAM mcs table for PDSCH
--do-prb-interpolation: Do PRB based averaging of channel estimates. Frequency domain linear interpolation by default
--nfapi: Change the nFAPI mode for NR
typedef enum {
NFAPI_MONOLITHIC=0,
NFAPI_MODE_PNF,
NFAPI_MODE_VNF,
NFAPI_UE_STUB_PNF,
NFAPI_UE_STUB_OFFNET,
NFAPI_MODE_UNKNOWN
} nfapi_mode_t;
默认为0, 即NFAPI_MONOLITHIC,无VNF和PNF.
--phy-test: test UE phy layer, mac disabled
测试UE的phy层,MAC是disable的,不需要UE随机接入,申请资源,为UE分配固定的资源。
-m: Set the downlink MCS for PHYTEST mode
设定下行的MCS,只有在phy test模型下有效。
-l: Set the downlink nrOfLayers for PHYTEST mode
设定下行的MIMO层数,只有在PHY test模式下有效
-t: Set the uplink MCS for PHYTEST mode
设定上行的MCS,只有在phy test模型下有效。
-M: Set the number of PRBs used for DLSCH in PHYTEST mode
设定上行的用于DLSCH信道的PRB数目,只有在phy test模型下有效。
-T: Set the number of PRBs used for ULSCH in PHYTEST mode
设定上行的用于ULSCH信道的PRB数目,只有在phy test模型下有效。
-E: Apply three-quarter of sampling frequency, 23.04 Msps to reduce the data rate on USB/PCIe transfers (only valid for 20 MHz)
降低采用频率(3/4的采样率),只有在20M带宽时有效。
--msc: Enable the MSC tracing utility
使能MCS的跟踪工具
MCS(Modulation and Coding Scheme,调制与编码策略:不同的MSC对应不同的调制方式,MSC编号越高,采用的调制方式携带的数据量越大,但抗干扰能力越差。
-D: Bitmap for DLSCH slots (slot 0 starts at LSB)
设定DLSCH的时隙,通过bitmap定义。
-U: Bitmap for ULSCH slots (slot 0 starts at LSB)
设定ULSCH的时隙,通过bitmap定义。
--emulate-rf: Emulated RF enabled(disable by defult)
使用Emulated的RF, more不使用Emulated RF
仿真器。通过软件方式,精确地在一种处理器上仿真另一种处理器或者硬件的运行方式。其目的是完全仿真被仿真硬件在接收到各种外界信息的时候的反应。我们现在常见的MAME、ePSXe等都是这一类。与真实硬件的行为是完全一样的,不同的是性能远不如真实硬件。
-rfsim: Run in rf simulator mode (also known as basic simulator)
使用simulator的RF.
simulatorn: 模拟器。通过某种手段,来模拟某些东西。不一定要完全正确的原理,追求的只是尽可能的相像。比如DWI、BandJAM等都属于这一类。
--basicsim: Run in rf simulator mode (also known as basic simulator)
与rfsim一致,
-s: Set average SNR in dB (for --siml1 option)
在仿真模式下,设定无线空口的SNR
--usrp-tx-thread-config: having extra thead for usrp tx
使用独立的线程为真实的RF usrp发送数据。
--rf-config-file:
Configuration file for front-end (e.g. LMS7002M) :指定RF前端配置文件的位置,包括载波频率等信息。
--band: band index
频带索引
-C: Set the downlink frequency for all component carriers
设置下行载波频率。
--CO: Set the uplink frequency offset for all component carriers
设置上行载波频率.
对于FDD, 上行行频率是分开的,对于TDD, 上下行频率一样。
--usim-test: use XOR autentication algo in case of test usim mode
USIM是Universal Subscriber Identity Module(全球用户识别卡)的缩写。全球用户身份模块(USIM),也叫做升级SIM ,是在UMTS(全称为Universal Mobile Telecommunication System -- 通用无线通信系统) 3G 网络的一个构件。除能够支持多应用之外,USIM卡还在安全性方面对算法进行了升级,并增加了卡对网络的认证功能,这种双向认证可以有效防止黑客对卡片的攻击
--non-stop: Go back to frame sync mode after 100 consecutive PBCH failures
连续100个PBCH信道失步后,要重新进入主同步与辅同步。
-A: Set timing_advance
设定时间提前量TA.
--noS1: Disable s1 interface
disable S1接口,在没有核心网的情况下,必须使用该选项。
--nokrnmod: (noS1 only): Use tun instead of namesh module
PDCP的flag。
pdcp_initmask = pdcp_initmask | ENB_NAS_USE_TUN_BIT | SOFTMODEM_NOKRNMOD_BIT
--Asn1_verbosity: Help string not specified
设定ASN.1 冗余模式
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120790128