【openairinterface5g】项目目录结构

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 为了便于理解5G协议,开始加入openairinterface(OAI)开源项目介绍,5G协议分析和5G代码分析不定期交替更新。

前言:对于5G系列,在下主要在业余时间进行学习和总结,分享出来以供参考。为了便于理解5G协议,开始加入openairinterface(OAI)开源项目介绍,5G协议分析和5G代码分析不定期交替更新。OAI安装搭建已经在OAI 5G NR+USRP B210安装搭建一文中做过介绍,今天先大体看一下OAI的目录结构和主函数结构。

目录结构

openairinterface5g

├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.   已忽略

├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.   存放编译脚本,以及编译生成的可执行程序,程序编译在这里面

├── common : Some common OAI utilities, other tools can be found at openair2/UTILS.   OAI公共代码

├── doc : Contains an up-to-date feature set list and starting tutorials.  最新的功能集列表和入门教程

├── executables : Top-level executable source files.  已忽略

├── LICENSE : License file.

├── maketags : Script to generate emacs tags.  已忽略

├── nfapi : Contains the NFAPI code. A local Readme file provides more details.  NFAPI接口代码

├── openair1 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.    物理层代码

│   ├── PHY                     物理层

│   ├── SCHED                LTE基站侧调度

│   ├── SCHED_NBIOT       NBIOT调度

│   ├── SCHED_NR             NR基站侧调度

│   ├── SCHED_NR_UE     NR UE侧调度

│   ├── SCHED_UE             LTE UE侧调度

│   └── SIMULATION : PHY RF simulation.    物理层RF仿真

├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.      MAC, RLC, PDCP, RRC, NGAP全部在openair2目录下

│   ├── COMMON

│   ├── DOCS

│   ├── ENB_APP

│   ├── F1AP

│   ├── GNB_APP

│   ├── LAYER2/RLC/ : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.

│   ├── LAYER2/PDCP/PDCP_v10.1.0

│   ├── M2AP

│   ├── MCE_APP

│   ├── NETWORK_DRIVER

│   ├── NR_PHY_INTERFACE

│   ├── NR_UE_PHY_INTERFACE

│   ├── PHY_INTERFACE

│   ├── RRC

│   ├── UTIL

│   └── X2AP

├── openair3 : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.     S1AP,NAS,SCTP,GTP-U在openair3下

│   ├── COMMON

│   ├── DOCS

│   ├── GTPV1-U

│   ├── M3AP

│   ├── MME_APP

│   ├── NAS

│   ├── S1AP

│   ├── SCTP

│   ├── SECU

│   ├── TEST

│   ├── UDP

│   └── UTILS

└── targets : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.

主函数结构

主函数main位于executables/nr-softmodem.c:

Main

├── load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) :读取nr-softmodem附带的启动参数。

├── logInit() : log初始化。

├── configure_linux() :锁定CPU状态,避免CPU因电源管理进入节能模式;设置CPU运行在超频状态。

├── itti_init(TASK_MAX, tasks_info) :为每个模块task创建数据队列。

├──init_opt():设置pcap,wireshark或tshark抓包。

├──netlink_init() :初始化网络套接字,addr,收发端口参数,最后会用于PDCP recvmsg。

├──pdcp_netlink_init()

│    └── threadCreate(&pdcp_netlink_thread, pdcp_netlink_thread_fct, (void*)NULL, "PDCP netlink", -1, OAI_PRIORITY_RT_LOW ):创建pdcp线程

│       ├──recvmsg(nas_sock_fd, &nas_msg_rx, 0):数据接收函数

│       └── lfds611_queue_guaranteed_enqueue(pdcp_netlink_queue_enb[module_id], new_data_p):将数据插入队列

├──create_gNB_tasks(1):创建gNB的一些线程

│    ├──itti_create_task(TASK_SCTP, sctp_eNB_task, NULL)

│         ├──sctp_eNB_init();

│         ├──sctp_eNB_process_itti_msg(NULL):创建socket,bind,listen

│             ├──itti_receive_msg(TASK_SCTP, &received_msg);

│             ├──sctp_create_new_listener();

│             └──sctp_send_data();

│    ├──itti_create_task(TASK_X2AP, x2ap_task, NULL)

│    ├──itti_create_task (TASK_NGAP, ngap_gNB_task, NULL) 创建NGAP线程

│         ├──ngap_gNB_init(); NGAP初始化

│         ├──ngap_gNB_process_itti_msg(NULL):NGAP编解码,UE上下文维护

│         ├── rrc_gNB_process_NGAP_DOWNLINK_NAS(msg_p, msg_name_p, instance, &rrc_gNB_mui);

│         ├──rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(msg_p, msg_name_p, instance);

│         └──rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND(msg_p, msg_name_p, instance);

│    ├──itti_create_task (TASK_UDP, udp_eNB_task, NULL)

│    ├──itti_create_task (TASK_GNB_APP, gNB_app_task, NULL)

│         ├──configure_nr_rrc(gnb_id):rrc配置

│         ├──init_pdcp():pdcp初始化

│         ├──itti_create_task(TASK_CU_F1, F1AP_CU_task, NULL)

│         └──itti_receive_msg (TASK_GNB_APP, &msg_p):从TASK_GNB_APP队列里面取数据进行处理

│    ├──itti_create_task (TASK_RRC_GNB, rrc_gnb_task, NULL):创建RRC实体

│         ├──itti_receive_msg(TASK_RRC_GNB, &msg_p):从TASK_RRC_APP队列里面取数据进行处理

│         ├──init_NR_SI(gNB_RRC_INST *rrc, gNB_RrcConfigurationReq *configuration):MIB和SIB1编码

│         ├──nr_rrc_gNB_decode_ccch(......):CCCH解码

│         └──rrc_gNB_decode_dcch(......):DCCH解码

├── init_gNB(single_thread_flag,wait_for_sync):为gNB实体分配资源以及初始化

├──init_NR_RU(get_softmodem_params()->rf_config_file):初始化RRU,内部将创建RRU相关线程

├──init_eNB_afterRU();

│    ├──phy_init_nr_gNB(gNB,0,0);phy初始化

│    └──init_gNB_Tpool(inst);

└──itti_wait_tasks_end():while死循环。

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
相关文章
|
4月前
|
人工智能 监控 安全
业界第一!中国移动四项目入选2023世界5G大会十大应用案例
12月6日,由科学技术部与河南省人民政府共同主办的2023世界5G大会在郑州开幕。在大会主论坛上,5G十大应用案例评选结果正式揭晓,中国移动四个优秀项目入选。
|
4月前
|
安全 物联网 5G
5g技术的优缺点是什么
5g技术的优缺点是什么
321 0
|
1月前
|
机器人 5G vr&ar
探索未来:5G技术如何重塑我们的世界
当5G技术如潮水般涌入我们的生活,它不仅仅代表着更快的网络速度。本文将深入探讨5G技术如何影响社会的各个层面,从工业自动化到远程医疗,再到智能城市和虚拟现实的融合,揭示这一创新技术如何成为连接现实与未来、虚拟与现实的桥梁。通过具体实例和数据分析,我们会发现5G技术不仅仅是一个技术进步,更是一场深刻改变我们生活方式的革命。
|
4天前
|
自动驾驶 安全 物联网
2G、3G、4G与5G技术:主要区别详解
2G、3G、4G与5G技术:主要区别详解
42 13
|
30天前
|
人工智能 运维 物联网
5G技术对网络运维的影响:挑战与机遇
【8月更文挑战第20天】5G技术对网络运维产生了深远影响,既带来了复杂性和挑战,也孕育了新的机遇和发展空间。通过积极应对挑战,抓住机遇,不断推进技术创新和应用实践,我们可以更好地利用5G技术的优势,提升网络运维的智能化水平,为数字经济的发展贡献力量。
|
1月前
|
自动驾驶 物联网 5G
探索未来:5G技术如何重塑我们的世界
随着5G技术的逐步普及,我们正站在一个新时代的门槛上。本文将深入探讨5G技术的核心原理,分析其对各行各业的影响,并预测它对未来社会的深远影响。我们将从5G的基本概念出发,通过实际案例展示其在不同领域的应用,并讨论这一变革性技术可能带来的挑战与机遇。
44 8
|
3月前
|
存储 自动驾驶 大数据
5G技术:连接未来的桥梁
【6月更文挑战第17天】**5G技术,连接未来的桥梁,以高速率(20Gbps)、低时延(1ms)和海量连接赋能工业自动化、远程医疗、无人驾驶及智能教育。5G推动产业升级,改善生活质量,促进全球化,开启全新应用场景,预示着一个更高效、智能和互联的未来。**