Table of Contents

gtpc.h


* GTP-C v2 Header  GPRS Turning Protocol <GPRS Turning Protocol> GPRS隧道协议
 *      1.提供主机间端到端通信
 *      2.通过隧道协议TEI在路径协议上复用
 *      3.GTP协议主要应用场景
 *      4.GTP是一组给予IP的,用于在核心网络中支持通用分组无线服务(GPRS)的通讯协议。
 *  GTP是一组基于IP的高层协议,位于TCP/IP或UDP/IP等协议上,
 *  主要用于在GSM和UMTS和LTE网络中支持通用分组无线服务(GPRS)的通讯协议。
 *  
 * GTP可以分解成三种独立的协议,GTP-C、GTP-U及GTP'。
 * GTP-C用于在GPRS核心网内传输GGSN(网关GPRS支持结点)和SGSN(服务GPRS支持结点)之间的信令,
 * 它允许SGSN代表用户激活一个会话(PDP[分组数据协议]上下文激活),禁用激活的会话,调整服务质量参数,
 * 或更新刚从其它SGSN切换过来用户的会话。
 * GTP-U用于在GPRS核心网内,无线接入网与核心网之间传送用户数据,用户数据包可以以IPv4, IPv6或PPP中的任何格式传输。
 * GTP'(GTP prime)与GTP-C,GTP-U使用相同的信息结构,但它有独立的功能。
 * 可以用它来传输从GSM或UMTS的CDF(计费数据功能)到CGF(计费网关功能)的数据,
 * 在大部分情况下这表示传输很多独立的网元(如GGSN)的数据到中央电脑中,后者可以更方便的将计费数据传输到运营商的计费中心。
 * 在3GPP网络中实现了不同的GTP变种,包括RNC,SGSN,GGSN及CGF。GRPS移动站(MSs)连接到SGSN时不需要知道GTP的存在。
 * GTP可以用在UDP或TCP上,GTP v1仅用于UDP上。
 * 
 * 应用场合编辑
 * 用于骨干网的SGSN和GGSN之间的Gn接口,为MS和外部分组数据网传输用户数据包。
 * 用于SGSN和RNC之间的Iu-PS接口,用于传输MS和外部PDN的用户数据包
 * 用于源SGSN和目的SGSN之间,用于inter-SGSN路由更新时,或者SRNS重定位时指向MS的未发送完的T-PDU的传输
 * 用于不同PLMN的SGSN和GGSN之间的Gp接口.  PLMN(Public Land Mobile Network,公共陆地移动网络)

gtpc.h

lib\include\srslte\asn1    5452    4/1/2019

/* \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_GTPC_H
#define SRSLTE_GTPC_H#include <stdint.h>
#include "srslte/asn1/gtpc_msg.h"namespace srslte{/*GTP-C Version*/
const uint8_t GTPC_V2 = 2;/***************************************************************************** GTP-C v2 Header  GPRS Turning Protocol <GPRS Turning Protocol> GPRS隧道协议*      1.提供主机间端到端通信*      2.通过隧道协议TEI在路径协议上复用*      3.GTP协议主要应用场景*      4.GTP是一组给予IP的,用于在核心网络中支持通用分组无线服务(GPRS)的通讯协议。*  GTP是一组基于IP的高层协议,位于TCP/IP或UDP/IP等协议上,*  主要用于在GSM和UMTS和LTE网络中支持通用分组无线服务(GPRS)的通讯协议。*  * GTP可以分解成三种独立的协议,GTP-C、GTP-U及GTP'。* GTP-C用于在GPRS核心网内传输GGSN(网关GPRS支持结点)和SGSN(服务GPRS支持结点)之间的信令,* 它允许SGSN代表用户激活一个会话(PDP[分组数据协议]上下文激活),禁用激活的会话,调整服务质量参数,* 或更新刚从其它SGSN切换过来用户的会话。* GTP-U用于在GPRS核心网内,无线接入网与核心网之间传送用户数据,用户数据包可以以IPv4, IPv6或PPP中的任何格式传输。* GTP'(GTP prime)与GTP-C,GTP-U使用相同的信息结构,但它有独立的功能。* 可以用它来传输从GSM或UMTS的CDF(计费数据功能)到CGF(计费网关功能)的数据,* 在大部分情况下这表示传输很多独立的网元(如GGSN)的数据到中央电脑中,后者可以更方便的将计费数据传输到运营商的计费中心。* 在3GPP网络中实现了不同的GTP变种,包括RNC,SGSN,GGSN及CGF。GRPS移动站(MSs)连接到SGSN时不需要知道GTP的存在。* GTP可以用在UDP或TCP上,GTP v1仅用于UDP上。* * 应用场合编辑* 用于骨干网的SGSN和GGSN之间的Gn接口,为MS和外部分组数据网传输用户数据包。* 用于SGSN和RNC之间的Iu-PS接口,用于传输MS和外部PDN的用户数据包* 用于源SGSN和目的SGSN之间,用于inter-SGSN路由更新时,或者SRNS重定位时指向MS的未发送完的T-PDU的传输* 用于不同PLMN的SGSN和GGSN之间的Gp接口.  PLMN(Public Land Mobile Network,公共陆地移动网络)** Ref: 3GPP TS 29.274 v10.14.0 Section 5**        | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |** 1      |  Version  | P | T | S | S | S |* 2      |           Message Type        |* 3      |         Length (1st Octet)    |* 4      |         Length (2nd Octet)    |* m      |   If T=1, TEID (1st Octet)    |* m+1    |   If T=1, TEID (2nd Octet)    |* m+2    |   If T=1, TEID (3st Octet)    |* m+3    |   If T=1, TEID (4st Octet)    |* n      |           Sequence            |* n+1    |           Sequence            |* n+2    |           Sequence            |* n+3    |            Spare              |***************************************************************************/
typedef struct gtpc_header
{uint8_t version;bool piggyback;bool teid_present;uint8_t type;uint64_t teid;uint64_t sequence;
}gtpc_header_t;/***************************************************************************** GTP-C v2 Payload* Ref: 3GPP TS 29.274 v10.14.0 Section 5** Union that hold the different structures for the possible message types.***************************************************************************/
typedef union gtpc_msg_choice
{struct gtpc_create_session_request create_session_request; //会话sessionstruct gtpc_create_session_response create_session_response;struct gtpc_modify_bearer_request modify_bearer_request;struct gtpc_modify_bearer_response modify_bearer_response;struct gtpc_release_access_bearers_request release_access_bearers_request;struct gtpc_release_access_bearers_response release_access_bearers_response;struct gtpc_delete_session_request delete_session_request;struct gtpc_delete_session_response delete_session_response;
}gtpc_msg_choice_t;/***************************************************************************** GTP-C v2 Message* Ref: 3GPP TS 29.274 v10.14.0** This is the main structure to represent a GTP-C message. It is composed* of one GTP-C header and one union of structures, which can hold* all the possible GTP-C messages***************************************************************************/
typedef struct gtpc_pdu
{struct gtpc_header header;union gtpc_msg_choice choice;
}gtpc_pdu_t;
}//namespace
#endif // SRSLTE_GTPC_H

srsLTE源码学习:GTP:GPRS Turning Protocol- GPRS隧道协议相关推荐

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

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

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

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

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

    非接入层(原名NAS - Non-access stratum) 分组数据汇聚协议(PDCP - Packet Data Convergence Protocol) 协议数据单元(PDU - Prot ...

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

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

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

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

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

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

  7. srsLTE源码学习:逻辑信道多路复用与MAC CE分解pdu_queue.h,pdu_queue.cc

    Logical Channel Demultiplexing and MAC CE dissassemble - 逻辑信道多路复用与MAC CE分解 CE设备:Customer Edge,客户侧边缘设 ...

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

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

  9. srsLTE源码学习:网络附属存储抓包nas_pcap.h

    Table of Contents nas_pcap.h    lib\include\srslte\common    667    4/10/2019    1 nas_pcap.cc    li ...

最新文章

  1. VMware12.0PRo 下安装Ubuntu14.04LTS
  2. Sword STL迭代器prev,next相关函数
  3. PI Function Library 应用,公共UDF开发
  4. “蚂蚁漫步”背后的定位原理思考
  5. 循证e刊 安慰剂的前世今生
  6. endnote 参考文献加序号_EndNote上手 | 毕业写论文利器
  7. 百元价位的水下相机?!1000个去海边的人有900个选择了它!
  8. cookie 以及session 的使用
  9. GDAL源码剖析(八)之编译GEOS和PROJ4库
  10. PostGis+GeoServer+OpenLayers最短路径分析
  11. 微信表情包 php,教你用PS给你的室友做一套动态微信豪华表情包
  12. 生存分析-Cox回归模型
  13. c 语言编程字谜,C语言猜字谜游戏
  14. 最优阵列处理技术/Harry L. Van Trees——学习笔记2
  15. 2020年个人年终总结
  16. 博客9-16CSS 三大特性
  17. 中山大学2021级研究生学术道德规范在线考试学习资料
  18. 仿生的git学习网站
  19. SEO黑帽技术 - 3天关键词快速上首页
  20. (03)JS/VUE获取一个月有多少天

热门文章

  1. but was actually of type [com.sun.proxy.$Proxy13]
  2. 分类算法之K-近邻算法
  3. Spring框架----IOC的概念和作用之程序的耦合和解耦
  4. leetcode 476. 数字的补数(Number Complement)
  5. centos安装python3.7.0过程记录
  6. ListCtrl常用操作
  7. 函数指针与回调函数、句柄
  8. MySQL Connector/C++入门教程(上)
  9. 浏览器加载渲染网页过程解析-总结
  10. 案例:演示JDBC的使用