srsLTE源码学习:RRC:(Radio Resource Control):无线资源控制协议
Table of Contents
rrc_asn1.h
见过一个头文件六万多行的吗?
rrc_asn1.h
lib\include\srslte\asn1 2074866 4/1/2019 15061
给出一小部分
/*
Copyright 2013-2017 Software Radio Systems LimitedThis file is part of srsLTEsrsASN1 is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.srsASN1 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.A copy of the GNU Affero General Public License can be found in
the LICENSE file in the top-level directory of this distribution
and at http://www.gnu.org/licenses/.
*/#ifndef SRSASN1_RRC_H
#define SRSASN1_RRC_H#include "asn1_utils.h"
#include <cstdio>
#include <stdarg.h>
/*
ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,
描述了一种对数据进行表示、编码、传输和解码的数据格式。
它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,
也不用去管到底是什么样的应用程序。
在任何需要以数字方式发送信息的地方,ASN.1 都可以发送各种形式的信息(声频、视频、数据等等)。
ASN.1 和特定的 ASN.1 编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,
它以一种独立于计算机架构和语言的方式来描述数据结构。
*/
namespace asn1 { //ASN.1抽象语法标记(Abstract Syntax Notation One)
namespace rrc { // RRC(Radio Resource Control):无线资源控制协议。/*******************************************************************************
/* Functions for external logging
/******************************************************************************/static log_handler_t log_handler;
static void* callback_ctx = NULL;inline void rrc_log_register_handler(void* ctx, log_handler_t handler)
{log_handler = handler;callback_ctx = ctx;
}inline void rrc_log_print(srsasn_logger_level_t log_level, const char* format, ...)
{va_list args;va_start(args, format);vlog_print(log_handler, callback_ctx, log_level, format, args);va_end(args);
}inline void log_invalid_access_choice_id(uint32_t val, uint32_t choice_id)
{rrc_log_print(LOG_LEVEL_ERROR, "The access choice id is invalid (%d!=%d)\n", val, choice_id);
}inline void assert_choice_type(uint32_t val, uint32_t choice_id)
{if (val != choice_id) {log_invalid_access_choice_id(val, choice_id);}
}inline void assert_choice_type(const std::string& access_type, const std::string& current_type,const std::string& choice_type)
{if (access_type != current_type) {rrc_log_print(LOG_LEVEL_ERROR, "Invalid field access for choice type \"%s\" (\"%s\"!=\"%s\")\n",choice_type.c_str(), access_type.c_str(), current_type.c_str());}
}template <class NumType>
inline NumType get_enum_number(NumType* array, uint32_t nof_types, uint32_t enum_val, const char* enum_type)
{if (enum_val >= nof_types) {rrc_log_print(LOG_LEVEL_ERROR, "The provided enum value=%d of type %s cannot be translated into a number\n",enum_val, enum_type);return 0;}return array[enum_val];
}
}
}
srsLTE源码学习:RRC:(Radio Resource Control):无线资源控制协议相关推荐
- srsLTE源码学习:GTP:GPRS Turning Protocol- GPRS隧道协议
Table of Contents gtpc.h * GTP-C v2 Header GPRS Turning Protocol <GPRS Turning Protocol> GPRS ...
- srsLTE源码学习:度量中心:metrics_hub.h
Table of Contents metrics_hub.h PS:<srsLTE源码学习:绑核创建线程threads.h, threads.c> metrics_hub.h lib\i ...
- srsLTE源码学习:MAC层抓包pcap
Table of Contents pcap.h lib\include\srslte\common 13945 2/28/2019 182 mac_pcap.h lib ...
- srsLTE源码学习:RLC,无线链路控制子层抓包rlc_pcap.h,rlc_pcap.cc
RLC,无线链路控制子层 RLC(Radio Link Control,无线链路层控制协议)是GPRS/WCDMA/TD-SCDMA/LTE 等无线通信系统中的无线链路控制层协议.在WCDMA系统中, ...
- srsLTE源码学习:安全证书polarssl
Table of Contents liblte_ssl.h liblte_ssl.h lib\include\srslte\common 2101 4/8/2019 19 #ifn ...
- srsLTE源码学习:NAS非接入层、PDCP分组数据汇聚协议、PDU 协议数据单元 头文件
非接入层(原名NAS - Non-access stratum) 分组数据汇聚协议(PDCP - Packet Data Convergence Protocol) 协议数据单元(PDU - Prot ...
- srsLTE源码学习:生成多播信道表gen_mch_tables
Table of Contents gen_mch_tables.h gen_mch_tables.c 我在代码里做出了注释,如下: sf_alloc -> 1234 4321 2345 543 ...
- srsLTE源码学习:S1接口抓包s1ap_pcap.h,s1ap_pcap.cc
Table of Contents 介绍 图例 代码 s1ap_pcap.h s1ap_pcap.cc s1ap_test.cc 介绍 S1接口是LTE eNodeB(基站)与 EPC(分组核心网)之 ...
- srsLTE源码学习:逻辑信道多路复用与MAC CE分解pdu_queue.h,pdu_queue.cc
Logical Channel Demultiplexing and MAC CE dissassemble - 逻辑信道多路复用与MAC CE分解 CE设备:Customer Edge,客户侧边缘设 ...
最新文章
- Netflix CEO哈斯廷斯:内容为王 公司潜力依然巨大
- 读计算机平面设计要什么文化好,浅谈计算机平面设计的有关论文
- SRT协议在电视直播中的应用
- WKInterfaceImage 无法更新图片的问题
- ubuntu安装hive2.3.7
- 对于整数数组类的算法的终极解决方案
- 任丽萍跟我赌200块钱的
- IDC:大数据——数字化转型时代的大商机
- 56. mysqli 扩展库(3)
- element表格固定某一行_elementui 表格 固定列+合计行
- Python和Matlab小波分析
- 股市最好用的大数据软件_最实用的5款炒股软件
- 【24】基于java的宠物医院管理系统
- ae合成设置快捷键_AE脚本使用快捷键控制关键帧操作 Keyboard v1.2.1 + 使用教程【资源分享1081】...
- Cadence OrCAD17.2禁止start page启动设置方法
- 浅谈LED芯片库存信息化管理
- js中的this指向问题
- 80psi等于多少kpa_【图】关于胎压的换算psi、bar,kpa
- 3d建模软件安装教程,游戏建模必备软件推荐(收藏)
- python easyOCR爬取微信的运动步数排名