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. 参考链接

  1. https://github.com/nokia/asn1c

ASN.1编解码:ORAN-E2AP分析相关推荐

  1. ASN.1编解码:asn1c的版本分析-诺基亚

    ASN.1编解码:asn1c的版本分析 荣涛 2021年8月24日 前面两个文档,已经对 ASN.1 编码和 asn1c 的使用做出了详细说明,那么如何将 ASN.1编解码与编程 ASN.1编解码:a ...

  2. ASN.1编解码:asn1c-ORAN-E2AP

    ASN.1编解码:asn1c-ORAN-E2AP 荣涛 2021年8月25日 前面的文档讲述了如何编译asn1c,如何选取合适的asn1c软件版本,及其简单使用方法.本文将对asn1c的详细使用进行介 ...

  3. ASN.1编解码:asn1c-ORAN-E2AP编解码示例

    ASN.1编解码:asn1c-ORAN-E2AP编解码示例 荣涛 2021年9月2日 整体代码:https://gitee.com/rtoax/test/tree/master/ASN.1/asn1c ...

  4. ASN.1编解码:asn1c、enber和unber

    ASN.1编解码:asn1c.enber和unber 荣涛 2021年8月24日 相关: ASN.1编解码:asn1c的版本分析-诺基亚 1. 编译安装 见之前的文档. 2. asn1c指令 asn1 ...

  5. ASN.1编解码:asn1c的基本使用

    ASN.1编解码:asn1c的基本使用 荣涛 2021年8月23日 上篇主要讲了ASN.1编码<ASN.1编解码与编程> 本文主要介绍 ASN.1 编码的C语言实现,asn1c.ASN.1 ...

  6. ASN.1编解码与编程

    ASN.1编解码与编程 荣涛 2021年8月23日 2386499836@qq.com 1. 概述 ASN.1 – Abstract Syntax Notation dot one,抽象记法1.数字1 ...

  7. 高效的5G ASN.1编解码工具

    它是一款具有编码和解码的工具,它是一款覆盖基站和终端多种接口消息的编码和解码工具,它还是一款编码和解码分析工具,通过它,你可以清晰的了解码流的每一位代表的含义. 操作效果 先看一下这个工具的操作,给大 ...

  8. java asn.1_ASN1编解码实现方法 | 学步园

    第1章概述 1.1背景 系统与充值平台的接口是文件的方式,充值平台将文件内容以ASN.1方式进行编码,系统需要根据ASN.1协议进行解码. 关于ASN.1开发的资料,网上资料非常少,特别是涉及到具体的 ...

  9. Dubbo篇:基于Netty实现Dubbo协议编解码源码分析

    Dubbo协议解析 Dubbo协议设计参考了TCP/IP协议,包括协议头和协议体两部分.16字节报文头主要携带了魔法数(0xdabb,用于分割两个不同请求),以及当前请求报文是否是Request.Re ...

最新文章

  1. 吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?
  2. 冒泡排序,斐波拉契迭代、生成器
  3. call,apply,bind,new实现原理
  4. MVC Filter
  5. 1.6 文件上传组件
  6. 数据挖掘十大算法--K-均值聚类算法
  7. Google Drive客户端
  8. Oracle入门(十四.2)之PL / SQL的好处
  9. delphi 参数化sql
  10. PostgreSQL 12:新功能和增强功能
  11. css放服务器ttf文件格式,CSS如何实现读取服务器字体
  12. kerberos linux 账号,使用AD / Kerberos进行身份验证/授权的Linux服务器是否需要计算机帐户?...
  13. 2022-05-24 游程编码与位图压缩(C++)
  14. 机械设计:机械加工中获得工件尺寸精度的常用方法!
  15. vue项目中通过cdn引入资源并配置
  16. 华人女性社交社区的存在可能
  17. windows 10 windows凭据管理器使用已记录的密码
  18. 计算机无法识别移动硬盘怎么办,笔记本识别不了移动硬盘如何解决_电脑无法识别移动硬盘的处理办法...
  19. 文件夹加密超级大师 v13.10 是什么
  20. RS导出Excel交叉表角对应的列占用多列问题

热门文章

  1. 图解BIO、NIO、AIO、多路复用IO的区别
  2. 面试官:你对多线程熟悉吗,谈谈线程安全中的原子性,有序性和可见性?
  3. Java多线程学习十九:JVM 对锁进行了哪些优化?
  4. Iview的Tabs设置居中
  5. Python3多进程与多线程区别及使用(1.进程)
  6. js定时器让动画隔秒运动
  7. 什么是urlencode,什么时候能用到
  8. JavaScript通俗易懂(一)-变量提升
  9. 没有该栏目数据 可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限...
  10. 12-Mybatis 缓存