[OpenAirInterface实战-11] :OAI nr-softmodem命令行参数详解

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[OpenAirInterface实战-11] :OAI nr-softmodem命令行参数详解相关的知识,希望对你有一定的参考价值。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_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 核心网相关接口相关配置


1. 什么是nr-softmodem

nr-softmodem是5G NR基站侧可执行程序, 该程序是5G NR基站侧软件的接口程序。

可以直接在X86 CPU + 嵌入式Linux上执行。

2. nr-softmodem入口参数概述

2.1 命令行参数的作用

在不改变编译代码的情况下,控制nr-softmodem的行为。

2.2 如何获取命令行参数

nr-softmodem --help

3. nr-softmodem入口参数

3.1 设备级参数

 --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

3.2 gNB级别的配置

 --split73: 

Split 7.3 (below rate matching) option: <cu|du>:<remote ip address>:<remote port>   

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

3.3 小区级别的配置

--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

3.4 L3的配置

--nokrnmod: (noS1 only): Use tun instead of namesh module

PDCP的flag。

pdcp_initmask = pdcp_initmask | ENB_NAS_USE_TUN_BIT | SOFTMODEM_NOKRNMOD_BIT 

3.5 L2的配置

-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

2.6 nFAPI的配置

--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.

3.7 L1的配置

--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定义。

3.8 RF的配置

--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, 上下行频率一样。

3.9 UE相关配置

 --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.
 

3.10 核心网相关接口相关配置

--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

以上是关于[OpenAirInterface实战-11] :OAI nr-softmodem命令行参数详解的主要内容,如果未能解决你的问题,请参考以下文章

[OpenAirInterface实战-8] :OAI编译遇到的问题与解决方法汇总

[OpenAirInterface实战-4] :OAI支持的4G LTE功能集

[OpenAirInterface实战-2] :OAI LTE目标系统架构与协议栈

[OpenAirInterface实战-1] :什么是OAI?OAI常见问题解答

[OpenAirInterface实战-6] :OAI在github中源代码的存放结构

[OpenAirInterface实战-13] :OAI 基站配置文件详解