2 LENA源码组成结构
LENA作为NS3的程序模块,采用标准的NS3模块结构内容来对代码进行组织。这种标准结构内容可以通过NS3提供的create-module.py来进行创建,也可以依照惯例进行编写。总体而言,LENA的源码组成结构与NS3一般性模型的创建方式保持一致。
doc/,用于生成程序模块的文档。
examples/,提供程序模块的实例,可以通过waf命令来编译和运行。
helper/,帮助类,提供简易使用本程序模块完成仿真的手段。
model/,程序模块的主要源代码文件,一般每个.h文件对应一个.cc或.cpp文件。
test/,存放程序模块的测试例题,常用于开发阶段的单元测试或回归测试。
utils/,程序模块所使用的一些公共功能模块。
README.md,LENA程序模块的描述和升版历史。
从以上结构组成来看,LENA的源码组成结构较为清晰。以2.1版本LENA程序模块的实现细节作为本源码阅读报告的参照对象,记录其源码编程实现重点和具体实现的协议内容。不考虑LENA复用的CTTC研究人员撰写的LTE模型部分,共计76个模块需要予以关注和深入理解。
3 程序模块阅读
阅读报告将按照如下结构进行内容的整理。
3.1 bandwidth-part-gnb
3.2 bandwidth-part-ue
3.3 beam-conf-id
3.4 beam-id
3.5 sfnsf
3.6 beam-manager
3.7 beamforming-vector
3.8 bwp-manager-algorithm
3.9 bwp-manager-gnb
3.10 bwp-manager-ue
3.11 ideal-beamforming-algorithm
3.12 lena-error-model
3.13 nr-amc
3.14 nr-ch-access-manager
3.15 nr-control-message
3.16 nr-eesm-cc-t1
3.17 nr-eesm-cc-t2
3.18 nr-eesm-cc
3.19 nr-eesm-error-model
3.20 nr-eesm-ir-t1
3.21 nr-eesm-ir-t2
3.22 nr-eesm-ir
3.23 nr-eesm-t1
3.24 nr-eesm-t2
3.25 nr-error-model
3.26 nr-gnb-mac
3.27 nr-gnb-net-device
3.28 nr-gnb-phy
3.29 nr-harq-phy
3.30 nr-interference
3.31 nr-lte-mi-error-model
3.32 nr-mac-csched-sap
3.33 nr-mac-harq-process
3.34 nr-mac-harq-vector
3.35 nr-mac-header-fs-dl
3.36 nr-mac-header-fs-ul
3.37 nr-mac-header-fs
3.38 nr-mac-header-vs-dl
3.39 nr-mac-header-vs-ul
3.40 nr-mac-header-vs
3.41 nr-mac-pdu-info
3.42 nr-mac-sched-sap
3.43 nr-mac-scheduler-cqi-management
3.44 nr-mac-scheduler-harq-rr
3.45 nr-mac-scheduler-lcg
3.46 nr-mac-scheduler-ns3
3.47 nr-mac-scheduler-ofdma-mr
3.48 nr-mac-scheduler-ofdma-pf
3.49 nr-mac-scheduler-ofdma-rr
3.50 nr-mac-scheduler-ofdma
3.51 nr-mac-scheduler-srs-default
3.52 nr-mac-scheduler-srs
3.53 nr-mac-scheduler-tdma-mr
3.54 nr-mac-scheduler-tdma-pf
3.55 nr-mac-scheduler-tdma-rr
3.56 nr-mac-scheduler-tdma
3.57 nr-mac-scheduler-ue-info
3.58 nr-mac-scheduler-ue-info-mr
3.59 nr-mac-scheduler-ue-info-pf
3.60 nr-mac-scheduler-ue-info-rr
3.61 nr-mac-scheduler
3.62 nr-mac-short-bsr-ce
3.63 nr-net-device
3.64 nr-phy-mac-common
3.65 nr-phy-sap
3.66 nr-phy
3.67 nr-radio-bearer-tag
3.68 nr-rrc-protocol-ideal
3.69 nr-spectrum-phy
3,70 nr-spectrum-signal-parameters
3.71 nr-ue-mac
3.72 nr-ue-net-device
3.73 nr-ue-phy
3.74 nr-ue-power-control
3.75 realistic-beamforming-algorithm
3.76 realistic-bf-manager
NS2是博主多年之前使用过的仿真软件,NS3源自于NS2,采用教新的软件技术和整合社区、研究机构的力量重新践行着离散事件仿真的原理,建模和模拟更为复杂的系统。有了这些基础,LENA对于5G端到端的性能仿真便具有较好的基础。从2.1版本的源码来看,约10W LOC的程序代码并不算多,其中也有较多错误和不完备的内容,但已经能够较好地对5G接入网、核心网以及业务开展定量分析。