作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_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命令行参数详解相关推荐

  1. Python 命令行参数详解

    Python 命令行参数详解 0. 命令行参数 1. sys.argv 2. getopt 2.1 getopt.getopt 方法 2.2 Exception getopt.GetoptError ...

  2. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

    [linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...

  3. python编写命令行框架_python的pytest框架之命令行参数详解(上)

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixtur ...

  4. 【Python】Python3.7.3 - Python命令行参数详解

    文章目录 Python命令行参数概览 -c cmd参数示例 -m mod参数示例 file参数示例 - 参数示例 命令行选项详解 -b 选项 -B选项 -d选项 -E选项 -h / -? / --he ...

  5. UltraISO命令行参数详解

    UltraISO 命令行参数 命名行参数说明 参数 说明 -volume string 卷标签 -sysid string 系统 ID -appid string 应用程序 ID -volset st ...

  6. C语言命令行参数详解

    C语言的main函数通常含有参数argc和argv,写法通常如下: int main(int argc,char *argv[]) int main(int argc,char **argv) 下面详 ...

  7. java命令行参数详解

    java 命令参数详解_赶路人儿的博客-CSDN博客_java命令行参数java命令用于启动 java 应用:它首先会启动 java 运行时环境(JRE),然后加载指定的类,调用类的main()方法. ...

  8. 7z命令行参数详解--python暴破压缩文件命令必备

    7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...

  9. Beeline – 命令行参数详解

    Beeline Shell 在嵌入式模式和远程模式下均可工作.在嵌入式模式下,它运行嵌入式 Hive(类似于Hive CLI),而远程模式用于通过 Thrift 连接到单独的 HiveServer2 ...

最新文章

  1. 浏览器市场占有率_分水岭初现 全球浏览器市场现状及竞争格局分析
  2. 【原】HTML页面元素加载顺序研究报告(2)----背景图片
  3. webpack 热替换和热重载
  4. C函数数组元素初始化
  5. 每天学习flash一点(3) flash外部读取xml
  6. 关系数据库基础知识介绍
  7. 菜鸟学ASP.NET MVC4入门笔记
  8. python读取图像并相加_python使用PIL和matplotlib获取图片像素点并合并解析
  9. python2和python3哪个_python2与python3的区别(持续更新)
  10. Python的解析式与生成器
  11. asp 文本转时间_三分钟学会在ASP.NET Core MVC 中使用Cookie
  12. arcgis更改字段名_ArcGIS怎么修改属性表字段名称
  13. Win10专业工作站版本激活并获得数字权利的方法和密钥
  14. Rsyslog日志格式实例:记录IP地址而非主机名
  15. 002输出一个正方形
  16. Flutter Package 开发、发布、使用
  17. python3 unicode_关于你不想知道的所有Python3 unicode特性
  18. 产品的生命周期,和需要关注的重点数据
  19. 解决win10和ubuntu双系统下win10时间偏差的问题
  20. phpwind源码解析------index.php

热门文章

  1. 在CAD转换器中PDF转CAD怎么转?
  2. 微信支付一篇就够了(app,小程序,公众号)
  3. FlexCell控件的使用
  4. c#单击行时 进行大小排序
  5. 一只兔子如何吃掉狼的!
  6. 搜索引擎从入门到精通之五 国内篇(转)
  7. WPS中 文字公式不对齐 解决方案
  8. bat批量修改文件前缀名字
  9. 宠物寄养小程序实战教程02
  10. 天然气门站监控摄像头如何布置_室内安装监控摄像头的七大技术要求