• 非接入层(原名NAS - Non-access stratum)
  • 分组数据汇聚协议(PDCP - Packet Data Convergence Protocol)
  • 协议数据单元(PDU - Protocol Data Unit)
  1. 数据链路层的 PDU是数据帧(frame),
  2. 网络层的PDU是数据包(packet),
  3. 传输层的 PDU是数据段(segment),
  4. 其他更高层次的PDU是报文(message)。

Table of Contents

interfaces_common.h


interfaces_common.h

lib\include\srslte\common    6490    4/5/2019    3

/**** \section COPYRIGHT** Copyright 2013-2017 Software Radio Systems Limited** \section LICENSE** This file is part of srsLTE.** srsUE 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.** srsUE 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 SRSLTE_INTERFACES_COMMON_H
#define SRSLTE_INTERFACES_COMMON_H#include "srslte/common/timers.h"
#include "srslte/common/security.h"
#include <string>namespace srslte {class srslte_nas_config_t //非接入层(原名NAS,Non-access stratum)
//非接入层(原名NAS,Non-access stratum)
//非接入层(原名NAS,Non-access stratum)存在于UMTS的无线通信协议栈中,
//作为核心网与用户设备之间的功能层。该层支持在这两者之间的信令和数据传输。
//所谓非接入层 [1]  (NAS)的流程和接入层的流程实际是从协议栈的角度出发的。
//在协议栈中,RRC和RANAP层及其以下的协议层称为接入层,它们之上的MM、SM、CC、SMS 等称为非接入层。//
//简单地说,接入层的流程也就是指无线接入层的设备RNC、NodeB需要参与处理的流程。//
//非接入层的流程就是指只有UE和CN需要处理的信令流程,无线接入网络RNC、NodeB是不需要处理的。//
//举个形象的比喻,接入层的信令是为非接入层的信令交互铺路搭桥的。//
//通过接入层的信令交互在UE和CN之间建立起了信令通路,从而便能进行非接入层信令流程了。
/*
接入层的流程主要包括PLMN 选择、小区选择和无线资源管理流程。
无线资源管理流程就是RRC层面的流程包括RRC连接建立流程、UE和CN之间的信令建立流程、RAB建立流程、呼叫释放流程、
切换流程和SRNS重定位流程。其中切换和SRNS重定位含有跨RNC、跨SGSN/MSC的情况?
此时还需要SGSN/MSC协助完成。所以从协议栈的层面上来说,接入层的流程都是一些底层的流程,
通过它们为上层的信令流程搭建底层的承载。非接入层的流程主要包括电路域的移动性管理、
电路域的呼叫控制、分组域的移动性管理、分组域的会话管理。UMTS的协议栈分为NAS和AS。
NAS协议处理UE和CN之间信息的传输,传输的内容可以是用户信息或控制信息,
如业务的建立、释放或者移动性管理信息。NAS消息一定程度上独立于下面的AS协议结构,
与采取什么样的无线接入网无关,可以是GSM、GPRS、WCDMA。控制平面的NAS消息有CM、MM、SM以及GMM等。
用户平面的网络层NAS协议是IP分组交换,电路交换业务不需要。NAS消息的传输要基于底层的AS协议。
AS是无线接入网采用的协议。UMTS中的AS协议包括无线接口协议、Iub协议以及Iu协议。
其中的无线接口协议是UE与UTRAN间的协议,协议的高层包括MAC、RLC、RRC等,位于UE和RNC之间,而底层PHY位于UE和NodeB之间。*/
{
public:srslte_nas_config_t(uint32_t lcid_ = 0, std::string apn_ = "", std::string apn_protocol_ = "", std::string user_ = "", std::string pass_ = "", bool force_imsi_attach_ = false):lcid(lcid_), //LCID属性的作用是设置或者返回一个用来指定本地或者某个区域性质的整数。//比如某个地区的相关日期、时间以及货币。apn(apn_), //APN指一种网络接入技术,apn_protocol(apn_protocol_), //APN指一种网络接入技术,是通过手机上网时必须配置的一个参数,//它决定了手机通过哪种接入方式来访问网络。user(user_),pass(pass_),force_imsi_attach(force_imsi_attach_) //国际移动用户识别码//(IMSI:International Mobile Subscriber Identification Number)//是区别移动用户的标志{}uint32_t    lcid;std::string apn;std::string apn_protocol;std::string user;std::string pass;bool        force_imsi_attach;
};class srslte_gw_config_t
{
public:srslte_gw_config_t(uint32_t lcid_ = 0):lcid(lcid_){}uint32_t lcid;
};class srslte_pdcp_config_t
/*
PDCP(Packet Data Convergence Protocol)分组数据汇聚协议
PDCP 是对分组数据汇聚协议的一个简称。
它是UMTS中的一个无线传输协议栈,
它负责将IP头压缩和解压、传输用户数据并维护为无损的无线网络服务子系统(SRNS)设置的无线承载的序列号。
*/
{
public:srslte_pdcp_config_t(uint8_t bearer_id_ = 0, bool is_control_ = false, bool is_data_ = false, uint8_t direction_ = SECURITY_DIRECTION_UPLINK):bearer_id(bearer_id_) //n.  持票人; 送信人; 搬运工人;,direction(direction_),is_control(is_control_),is_data(is_data_),sn_len(12) {}uint32_t bearer_id;uint8_t  direction;bool     is_control;bool     is_data;uint8_t  sn_len;// TODO: Support the following configurations// bool do_rohc;
};class mac_interface_timers
{
public: /* Timer services with ms resolution. * timer_id must be lower than MAC_NOF_UPPER_TIMERS*/virtual timers::timer* timer_get(uint32_t timer_id)  = 0;virtual void           timer_release_id(uint32_t timer_id) = 0;virtual uint32_t       timer_get_unique_id() = 0;
};class read_pdu_interface
{
/*
PDU (协议数据单元)
协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。
协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),
数据链路层的 PDU是数据帧(frame),
网络层的PDU是数据包(packet),
传输层的 PDU是数据段(segment),
其他更高层次的PDU是报文(message)。*/
public:virtual int read_pdu(uint32_t lcid, uint8_t *payload, uint32_t requested_bytes) = 0;
};}#endif // SRSLTE_INTERFACES_COMMON_H

srsLTE源码学习:NAS非接入层、PDCP分组数据汇聚协议、PDU 协议数据单元 头文件相关推荐

  1. srsLTE源码学习:GTP:GPRS Turning Protocol- GPRS隧道协议

    Table of Contents gtpc.h * GTP-C v2 Header  GPRS Turning Protocol <GPRS Turning Protocol> GPRS ...

  2. NR 5G NAS非接入层

    NAS非接入层 Non-Access-Stratum 协议文档:24.501和33.501 非接入层功能 UE和AMF之间的控制面最高层.功能包括支持UE移动性的一般过程如认证.鉴权.通用UE配置更新 ...

  3. srsLTE源码学习:度量中心:metrics_hub.h

    Table of Contents metrics_hub.h PS:<srsLTE源码学习:绑核创建线程threads.h, threads.c> metrics_hub.h lib\i ...

  4. 通过weui-1.1.3源码学习前端开发(三)从example看起-src/index.html文件

    通过weui-1.1.3源码学习前端开发(三)从example看起 前面已经看过了gulp的构建文件gulpfile.js,下面我们就从weui提供的一个example开始看看吧 先看看src/exa ...

  5. srsLTE源码学习:MAC层抓包pcap

    Table of Contents pcap.h    lib\include\srslte\common    13945    2/28/2019    182 mac_pcap.h    lib ...

  6. srsLTE源码学习:安全证书polarssl

    Table of Contents liblte_ssl.h liblte_ssl.h lib\include\srslte\common    2101    4/8/2019    19 #ifn ...

  7. srsLTE源码学习:协议数据单元PDU:pdu.h

    TX与RX TXD 发送数据 Transmit(tx) Data 的简写形式. RXD 接收数据 Receive(rx) Data 的简写形式. x没有特定的意思,就是一开始这么写,之后都这么用了,约 ...

  8. srsLTE源码学习:S1接口抓包s1ap_pcap.h,s1ap_pcap.cc

    Table of Contents 介绍 图例 代码 s1ap_pcap.h s1ap_pcap.cc s1ap_test.cc 介绍 S1接口是LTE eNodeB(基站)与 EPC(分组核心网)之 ...

  9. srsLTE源码学习:RLC,无线链路控制子层抓包rlc_pcap.h,rlc_pcap.cc

    RLC,无线链路控制子层 RLC(Radio Link Control,无线链路层控制协议)是GPRS/WCDMA/TD-SCDMA/LTE 等无线通信系统中的无线链路控制层协议.在WCDMA系统中, ...

最新文章

  1. 面试AI算法岗,你被要求复现顶会了嘛?
  2. 制作精美的网站首页模板应该如何操作?
  3. 元素 float:right 后右对齐换行原因
  4. 用计算机语言画曲线,用C语言控制台画简单的曲线
  5. Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
  6. Ubuntu安装之各种坑
  7. VMware 11安装Mac OS X 10.10
  8. 2019 renew 博客目录
  9. “生命游戏之父”因新冠肺炎逝世,回顾数学顽童的一生
  10. 车辆销售系统用例_使用OpenCV和Python构建自己的车辆检测模型
  11. COCOS2D-X之圆形进度条的一个简单Demo
  12. java中model的意思_开发中model,entity和pojo的区别
  13. Java对象转Map
  14. leetcode电话号码java_【LeetCode(Java) - 379】电话目录管理系统
  15. 双硬盘双win10互不干扰_win10系统安装双硬盘却无法显示另一个硬盘的技巧介绍...
  16. Linux:安装rvm
  17. TencentOS-tiny软件定时器的使用
  18. 什么是Saas软件?
  19. 使用计算机辐射最大,流言终结者:我们身边的辐射有多大?
  20. 个税起征点升高----节省了多少?

热门文章

  1. JavaWeb——关于RequestDispatcher的原理
  2. 为什么计算机时间要从1970年1月1日开始算起
  3. spark学习笔记-CentOS 6.4集群搭建(2)
  4. Android IT资讯网络阅读器应用源码
  5. CentOS 6 下升级安装Mysql 5.5 完整步骤
  6. 文件传输服务器的默认端口,服务器上传文件端口
  7. mysql pdo 插入没效果_MySQL分库分表后用PHP如何来完美操作
  8. c语言链表版百度云,链表详解(C语言版)
  9. html日期选择格式 now,JavaScript的Date.now()方法怎么用?
  10. linux shell 解析文本文件,linux Shell 全解析