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

2023-11-16

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:[OpenAirInterface实战-6] :OAI在github中源代码的存放结构_文火冰糖(王文兵)的博客-CSDN博客


目录

第1章 基本信息

1.1 4G/5G RAN目标系统的架构

1.2 协议栈

1.3 源代码的位置

1.4 软件license

1.5 说明

第2章 源代码的目录结构

2.1 build目标代码

2.2 nfapi     openair1 PHY与openair2 MAC接口

2.3 openair1 (L1: PHY+RF)

2.4 openair2 (L2 + L3)

2.5 openair3



第1章 基本信息

1.1 4G/5G RAN目标系统的架构

[OpenAirInterface实战-2] :OAI 4G LTE&5G NR目标系统架构与协议栈_文火冰糖(王文兵)的博客-CSDN博客

Functional Split Architecture

 注意,上述架构,分为3大组成部分, RCC, RAC, RRU

RRU: RU =>  L1_Low + RF simulator  =》 openair1 

RAC: DU => RLC, MAC, L1-High        =》 openair2

RRC: CU => RRC, PDCP层              =》 openair2

F1接口:RRC与RLC接口                   =》  openair2

nFAPI接口:L1-High与L1-Low接口    =》  nFAPI

UE核心网对等层:                               =》  openair3

1.2 协议栈

1.3 源代码的位置

Files · develop · oai / openairinterface5G · GitLab

1.4 软件license

OpenAirInterface是OpenAirInterface软件联盟许可下的产品。当前,它受控于:OAI Public License V1.1。

1.5 说明

本文只包括UE和基站的代码结构,不包括EPC和5G核心网的源代码。

(1)EPC代码:Home · OPENAIRINTERFACE/openair-epc-fed Wiki · GitHub

(2)5G NR核心网代码:

第2章 源代码的目录结构

2.1 build目标代码

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. =》Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。

2.2 nfapi     openair1 PHY与openair2 MAC接口

├── nfapi             : Contains the NFAPI code. A local Readme file provides more details. =》 N

FAPI接口的源代码文件, nFAPI是openair1的PHY层与openair2 MAC层之间的接口。   

2.3 openair1 (L1: PHY+RF)

├── openair1          : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.  =》 物理层代码,包括LTE R10/12和NR R15, 包括基站和UE.
│   ├── PHY                     =》 PHY + RF 源代码
│   ├── SCHED                =》4G基站侧调度器代码
│   ├── SCHED_NBIOT   =》NBIOT调度器 
│   ├── SCHED_NR        =》 5G 基站侧调度器
│   ├── SCHED_NR_UE =》 5G UE侧调度器
│   ├── SCHED_UE        =》4GUE侧调度器代码
│   └── SIMULATION    :  => PHY RF simulation. (包括部分PHY的仿真和RF的全部仿真)

 2.4 openair2 (L2 + L3)

├── 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.
│   ├── COMMON
│   ├── DOCS          =》 文档说明
│   ├── ENB_APP    =》 4G LTE 基站侧负责空口与核心网接口的桥接
│   ├── F1AP           =》 4G+5G RRC与RLC的接口,也是openair2与openair3的接口
│   ├── GNB_APP   =>  5G GNB 基站侧负责空口与核心网接口的桥接
│   ├── LAYER2/RLC/   : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.             => 4G + 5G共用RLC层
│   ├── LAYER2/PDCP/PDCP_v10.1.0   => 4G + 5G共用PDCP层
│   ├── M2AP       ???
│   ├── MCE_APP   ???
│   ├── NETWORK_DRIVER             =》 传输层驱动程序,用于硬件加速
│   ├── NR_PHY_INTERFACE           =》NR  基站MAC层与PHY层的接口
│   ├── NR_UE_PHY_INTERFACE    =》NR  手机MAC层与PHY层的接口
│   ├── PHY_INTERFACE                   =》LTE 基站/手机MAC层与PHY层的接口
│   ├── RRC                                         =》RRC层                 
│   ├── UTIL                                         =》工具
│   └── X2AP                                       =》 X2AP接口

2.5 openair3

├── openair3          : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│   ├── COMMON   =》 核心网的common代码 ???
│   ├── DOCS
│   ├── GTPV1-U     =》 GTPV1
│   ├── M3AP    =?????
│   ├── MME_APP     => MME APP
│   ├── NAS               => NAS层消息
│   ├── S1AP             => S1AP
│   ├── SCTP
│   ├── SECU           => Security
│   ├── 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. => 硬件环境仿真。???


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:[OpenAirInterface实战-6] :OAI在github中源代码的存放结构_文火冰糖(王文兵)的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 11.Linux下Spark的安装配置以及spark-shell的启动和 Spark集群环境搭建

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 安装Spark 1 先用xftp将安装包传到home hadoo
  • springBoot整合RabbitMq实现confrim模式回调一直不成功的 坑

    这两天在学习springBoot整合RabbitMq实现confrim模式 网上的demo有很多 但是一直回调不成功 大家的配置大概都是如下图这样 你会发见这个已经废弃了 还有一种你写成这样 又或者你写成这样 没报错 但就是不回调 新版的R
  • 【编程测试题】连续最大和

    题目描述 一个数组有 N 个元素 求连续子数组的最大和 例如 1 2 1 和最大的连续子数组为 2 1 其和为 3 输入描述 输入为两行 第一行一个整数n 1 lt n lt 100000 表示一共有n个元素 第二行为n个数 即每个元素 每
  • 目标检测数据集分析

    原文链接 https ghlcode cn pages 250d97 目标检测数据集分析 新增支持数据集可视化 Ghlerrix DataAnalyze 平时我们经常需要对我们的数据集进行各种分析 以便我们找到更好的提高方式 所以我将我平时
  • ERROR! MySQL server PID file could not be found!解决方案

    首先怀疑是有僵尸mysqld的存在 首先查看进程 ps ef grep mysqld 然后用 kill 9 进程号杀死进程 重启mysql 但是问题并没有得到解决 再然后可以通过mysql的配置文件my cnf查看一下mysql的数据存储目
  • Python + ttkbootstrap 制作全网小说下载神器

    前言 ttkbootstrap是一个基于Python的开源库 用于创建漂亮且交互式的GUI应用程序 它是在Tkinter框架之上构建的 提供了一系列的Widget组件和样式 可以帮助开发者快速构建现代化的用户界面 今天做的是这个东西 蓝色的
  • Tensorflow 简单线性规划和逻辑回归

    Tensorflow 简单线性规划和逻辑回归 摘要 Tensorflow 中单变量线性回归 多变量的情况 用 tensorflow进行逻辑回归分类 参考文献 摘要 线性规划和逻辑回归分别是回归 regression 和分类 classifi
  • flask学习笔记(一)

    1 为什么要用web框架 稳定性和可扩展性强 可以降低开发难度 提升开发效率 总结 避免重复造轮子 2 Flask简介 Flask是轻量级web开发框架 Flask本身相当于一个内核 其框架核心包含 WSGI工具箱采用Werkzeug 路由
  • 基于ZYNQ FPGA的8路ADC数据采集与存储实现

    基于ZYNQ FPGA的8路ADC数据采集与存储实现 概述 在工程设计和科学研究中 数据采集与存储是一个重要的任务 为了满足高速 高精度和大容量的数据采集需求 本文将介绍如何基于ZYNQ FPGA平台实现8路ADC数据采集与存储 通过合理的
  • 如果android的广播注册后没有取消注册会发生什么?》,android – 我是否需要取消注册“匿名”BroadcastReceiver...

    我最近问了一个关于检查已发送短信状态的问题 给出的答案是一个代码片段 注册了两个 匿名内部 如果不正确 请更正我的术语 BroadcastReceivers监听短信发送 传送的广播 这些接收器只需要接收有关我的应用程序刚刚发送的SMS的数据
  • C/C++ 浮点数大小比较问题

    1 c 中浮点数注意 The important rule to remember is that powers of two and integer multiples thereof can be perfectly represent
  • ORACLE 造数脚本

    SELECT DBMS RANDOM VALUE FROM DUAL SELECT DBMS RANDOM VALUE 20 30 FROM DUAL SELECT DBMS RANDOM NORMAL FROM DUAL SELECT D
  • Base64编码(汇编版,未做过多优化,性能自认为还可以)

    感谢 DelphiGuy 于 2010 10 08 17 27 37 给出的提醒 function GetSizeCoder3To4 InputCount Integer Integer inline begin Result InputC
  • 本地映射到外网

    很多人做开发的苦恼 外网访问不了本地 很多调试进行不了 比如说微信开发 这个时候要用手机调试 但是服务器在自己电脑上 外网访问不了 这个时候我们可以用一些工具 使我们的内网ip映射到外网 让外网可以访问 一 使用ngrok让微信公众平台通过
  • POST请求常见错误及解决办法

    POST请求常见错误及解决办法 前后端分离 已经是web开发的主流 在前后端对接的过程中难免会碰到各式各样的问题 本文对近期项目中遇到的与 POST请求 有关的问题做了一个简要的汇总和分析 并列出了与之相关的解决办法 问题一 POST请求发
  • 区块链之java调用智能合约(二)部署智能合约

    前言 上一节 已经说过 如何的创建一个合约 如何编译合约 然后在java中调用 但是呢 这些还远远不够 那么还差哪些呢 现在就是如何将创建的智能合约部署的对应的共链 私链 测试链中了 需要部署后 才能真正的使用 现在就讲讲如何部署智能合约
  • linux下gcc的使用教程,Linux下GCC使用方法简介

    编译 第一步 是进行预编译 使用 E参数可以让GCC在预处理结束后停止编译过程 gcc E hello c o hello i 预处理的宏定义插入到hello i中 第二步 是将hello i编译为目标代码 这可以通过使用 c参数来完成 g
  • C++使用string的大数运算(6)模加模减模乘模幂

    本次项目目标 使用C 完成对于大数的相关运算 项目要点 1 大数指的是远超long long int的数据 2 将大数用矩阵进行存储 并通过矩阵实现运算 3 本人采用字符串进行存储 应注意char的特点 比如 char a 161 cout
  • 数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义

    在银行评分卡的项目中 通常都会需要把数据分箱 分箱后并不是对数据进行哑变量处理 而是用WOE值去替换 再放入模型中 学习的过程中会对这些操作有些疑问 比如 数据分箱有什么意义 WOE和IV值是干什么的 这里对这些数据处理的意义进行一个说明
  • [OpenAirInterface实战-6] :OAI在github中源代码的存放结构

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 OpenAirInterface实战 6 OAI在github中源代码的存放结构 文火冰糖 王文兵 的博客 CSDN博客 目录 第1章 基本