ASN.1编解码:ORAN-E2AP分析
ASN.1编解码:ORAN-E2AP分析
荣涛 2021年8月25日 rongtao@sylincom.com
前面的文档讲述了如何编译asn1c,如何选取合适的asn1c软件版本,及其简单使用方法。本文将对asn1c的详细使用进行介绍和分析。并结合 O-RAN E2AP (参考O-RAN.WG3.E2AP-v01.01)进行编码测试与调试。
资源
e2ap-v01.00.00.asn
:https://download.csdn.net/download/Rong_Toa/21494571
e2ap-v01.01.asn1
:https://download.csdn.net/download/Rong_Toa/21494581
1. ORAN E2AP ASN.1的选取
首先从文档“O-RAN.WG3.E2AP-v01.01”中可以看出,文档中有多个E2AP ASN.1 版本
下面给出了两个版本文件名,具体文件请查看发布的版本和详细的设计文档。两个文件分别为:
e2ap-v01.00.00.asn
:E2 Termination中提供;e2ap-v01.01.asn1
:我从 O-Ran 文档中提取出的 ASN.1;
我们分别可以基于上面两个 asn1 文件进行编译,生成C语言程序,经过编码后编译运行。下面将对 asn1c 的使用进行详细的介绍。
2. Nokia asn1c-s1ap
整体上讲,asn1c-s1ap
是诺基亚在asn1c-v0.9.29
的基础上修改的开源代码分支。该版本与asn1c-v0.9.28
虽然只差了一个子版本,但是差异很大,从利用 asn1c 指令将 ASN.1 文件转换为 C语言源代码过程生成的源代码,到生成的 Makefile 的形式都有相当的差异。所以,在上个文档中,我们采用的是官方的asn1c-v0.9.28
版本,但是由于本文档在于讲述ORAN E2AP ASN.1
,该标准是由Nokia制定,所以采用诺基亚关于asn1c的代码分支asn1c-s1ap
,详情请参考文档《ASN.1编解码:asn1c的版本分析》,asn1c-s1ap
的下载地址为https://github.com/nokia/asn1c。
2.1. 编译安装
见之前的文档。
2.2. asn1c
指令
见之前的文档。
2.3. C语言代码生成与编译
见之前的文档。
3. E2AP-简介
3.1. 基站架构图
E2接口位于(CUDU全分离部署场景):
集中部署如下图:
3.2. E2AP 版本
在上文,我简单说了,诺基亚发布的O-RAN文档中,E2AP有比较大的版本变化,同时,非常值得注意的是,诺基亚发布的版本,使用 asn1c官方版本asn1c-v0.9.28
会提示语法错误,所以必须采用诺基亚的asn1c-s1ap
(也就是asn1c-v0.9.29
)版本,这在之前的文档中也进行过说明。
以下面两个版本为例:
e2ap-v01.00.00.asn
:E2 Termination中提供;e2ap-v01.01.asn1
:我从 O-Ran 文档中提取出的 ASN.1;
最简单的方法,我们只用 Compare软件比较这两个文件,对比差异。对比过程中,左匡图为v01.00.00
,右边框图为v01.01
。
3.3. E2AP 版本对比
3.3.1. E2建链阶段数据类型的增加
为上面添加的数据类型添加消息结构
当然,需要为此添加一下枚举值:
下面是具体的数据结构(内容比较多,我只放一部分)
3.3.2. E2增加的配置信息
首先增加数据类型
增加的数据结构
4. E2AP-C语言
本章主要讲,如何使用 asn1c 工具将 ASN.1 编码编译成C语言。这个步骤是繁琐的,为了尽可能清晰,在章末我将写个脚本,简化操作流程,同时,我也将用 CMake 简化编译流程。
请移步下一个文档。
5. 参考链接
- https://github.com/nokia/asn1c
ASN.1编解码:ORAN-E2AP分析相关推荐
- ASN.1编解码:asn1c的版本分析-诺基亚
ASN.1编解码:asn1c的版本分析 荣涛 2021年8月24日 前面两个文档,已经对 ASN.1 编码和 asn1c 的使用做出了详细说明,那么如何将 ASN.1编解码与编程 ASN.1编解码:a ...
- ASN.1编解码:asn1c-ORAN-E2AP
ASN.1编解码:asn1c-ORAN-E2AP 荣涛 2021年8月25日 前面的文档讲述了如何编译asn1c,如何选取合适的asn1c软件版本,及其简单使用方法.本文将对asn1c的详细使用进行介 ...
- ASN.1编解码:asn1c-ORAN-E2AP编解码示例
ASN.1编解码:asn1c-ORAN-E2AP编解码示例 荣涛 2021年9月2日 整体代码:https://gitee.com/rtoax/test/tree/master/ASN.1/asn1c ...
- ASN.1编解码:asn1c、enber和unber
ASN.1编解码:asn1c.enber和unber 荣涛 2021年8月24日 相关: ASN.1编解码:asn1c的版本分析-诺基亚 1. 编译安装 见之前的文档. 2. asn1c指令 asn1 ...
- ASN.1编解码:asn1c的基本使用
ASN.1编解码:asn1c的基本使用 荣涛 2021年8月23日 上篇主要讲了ASN.1编码<ASN.1编解码与编程> 本文主要介绍 ASN.1 编码的C语言实现,asn1c.ASN.1 ...
- ASN.1编解码与编程
ASN.1编解码与编程 荣涛 2021年8月23日 2386499836@qq.com 1. 概述 ASN.1 – Abstract Syntax Notation dot one,抽象记法1.数字1 ...
- 高效的5G ASN.1编解码工具
它是一款具有编码和解码的工具,它是一款覆盖基站和终端多种接口消息的编码和解码工具,它还是一款编码和解码分析工具,通过它,你可以清晰的了解码流的每一位代表的含义. 操作效果 先看一下这个工具的操作,给大 ...
- java asn.1_ASN1编解码实现方法 | 学步园
第1章概述 1.1背景 系统与充值平台的接口是文件的方式,充值平台将文件内容以ASN.1方式进行编码,系统需要根据ASN.1协议进行解码. 关于ASN.1开发的资料,网上资料非常少,特别是涉及到具体的 ...
- Dubbo篇:基于Netty实现Dubbo协议编解码源码分析
Dubbo协议解析 Dubbo协议设计参考了TCP/IP协议,包括协议头和协议体两部分.16字节报文头主要携带了魔法数(0xdabb,用于分割两个不同请求),以及当前请求报文是否是Request.Re ...
最新文章
- 吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?
- 冒泡排序,斐波拉契迭代、生成器
- call,apply,bind,new实现原理
- MVC Filter
- 1.6 文件上传组件
- 数据挖掘十大算法--K-均值聚类算法
- Google Drive客户端
- Oracle入门(十四.2)之PL / SQL的好处
- delphi 参数化sql
- PostgreSQL 12:新功能和增强功能
- css放服务器ttf文件格式,CSS如何实现读取服务器字体
- kerberos linux 账号,使用AD / Kerberos进行身份验证/授权的Linux服务器是否需要计算机帐户?...
- 2022-05-24 游程编码与位图压缩(C++)
- 机械设计:机械加工中获得工件尺寸精度的常用方法!
- vue项目中通过cdn引入资源并配置
- 华人女性社交社区的存在可能
- windows 10 windows凭据管理器使用已记录的密码
- 计算机无法识别移动硬盘怎么办,笔记本识别不了移动硬盘如何解决_电脑无法识别移动硬盘的处理办法...
- 文件夹加密超级大师 v13.10 是什么
- RS导出Excel交叉表角对应的列占用多列问题
热门文章
- 图解BIO、NIO、AIO、多路复用IO的区别
- 面试官:你对多线程熟悉吗,谈谈线程安全中的原子性,有序性和可见性?
- Java多线程学习十九:JVM 对锁进行了哪些优化?
- Iview的Tabs设置居中
- Python3多进程与多线程区别及使用(1.进程)
- js定时器让动画隔秒运动
- 什么是urlencode,什么时候能用到
- JavaScript通俗易懂(一)-变量提升
- 没有该栏目数据 可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限...
- 12-Mybatis 缓存