1、参考资料
3gpp
TS 29.060 V17.1.0-GPRS Tunnelling Protocol (GTP)
TS 29.281 V17.1.0-GPRS Tunnelling Protocol User Plane (GTPv1-U)
GTP(GPRS隧道协议(GPRSTunnelingProtocol)),可以分解成三种独立的协议,GTP-C、GTP-U及GTP'。GTP-U用于在GPRS核心网内,无线接入网与核心网之间传送用户数据。 GTP可以用在UDP或TCP上,GTP v1仅用于UDP上,UDP的2123端口是为GTP-C登记的端口号, 2152端口是为GTP-U登记的端口号。
GTP-U协议使用的GTP头是变长度的。GTP头的最小长度是8个字节。
GTP-U消息格式:
必选字段:
可选字段:
消息类型占 1Byte,共256种。其中GTP-U用到如下7种:
Message Type value |
Message |
Reference |
1 |
Echo Request |
3GPP TS 29.060 |
2 |
Echo Response |
3GPP TS 29.060 |
26 |
Error Indication |
3GPP TS 29.281 [41] |
31 |
Supported Extension Headers Notification |
3GPP TS 29.060 |
253 |
Tunnel Status |
3GPP TS 29.281 [41] |
254 |
End Marker |
3GPP TS 29.281 [41] |
255 |
G-PDU |
3GPP TS 29.281 [41] |
4、GTP-U扩展头
4.1 扩展头格式
Octets 1 |
Extension Header Length |
|
2 – m |
Extension Header Content |
|
m+1 |
Next Extension Header Type |
4.2 扩展头类型
Next Extension Header Field Value |
Type of Extension Header |
0000 0000 |
No more extension headers |
0000 0001 |
Reserved - Control Plane only. |
0000 0010 |
Reserved - Control Plane only. |
0000 0011-0x03 |
Long PDCP PDU Number. |
0010 0000-0x20 |
Service Class Indicator |
0100 0000-0x40 |
UDP Port. Provides the UDP Source Port of the triggering message. |
1000 0001-0x81 |
RAN Container |
1000 0010-0x82 |
Long PDCP PDU Number. |
1000 0011-0x83 |
Xw RAN Container |
1000 0100-0x84 |
NR RAN Container |
1000 0101-0x85 |
PDU Session Container. |
1100 0000-0xC0 |
PDCP PDU Number [4]-[5]. |
1100 0001 |
Reserved - Control Plane only. |
1100 0010 |
Reserved - Control Plane only. |
4.3扩展头详细格式说明
Type Value |
Description |
Format |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x40 |
UDP Port |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC0 |
PDCP PDU Number |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x03/0x82 |
Long PDCP PDU Number |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x20 |
Service Class Indicator |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x81 |
RAN Container |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x83 |
Xw RAN Container |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x84 |
NR RAN Container |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x85 |
PDU Session Container |
|
4.3扩展头报文格式
UDP Port:
PDCP PDU Number:
5.1协议故障
协议故障即是指带有不认识的、未预见到的或内容错误的信息。术语’’默默地丢弃”意思是实现时丢弃这个消息而不作进一步的处理,在事件日志中记录这个错误消息,并将该故障记录在统计计数器中。
消息定义的”是否要求”列如果是”必选项”,这个IE必须在消息中出现。
消息定义的”是否要求”列如果是”有条件的”,这个条件有如下的结果:
消息中遗漏了必须出现的IE看成是数据丢失;出现了必不出现的IE看成是意外数据。
5.1.1不同的GTP版本
如果接收节点接收到一个它不支持的版本的GTP控制面信息,则发回GTP版本不支持消息,且在GTP头的版本字段中指出节点支持的最新GTP版本。丢弃接收到的G-PDU。
仅支持GTPv0版本的GSN可能不会监听2123端口,因此它不能给请求方发回版本不支持消息。同时支持GTPv1版本和GTPv0版本的GSN试图使用v1版本跟对等实体联系失败时,应退回到GTPv0版本。
实现选项:保留一个最近联系过的仅支持GTPv0版本的GSN列表,以及发回’版本不支持’消息的节点支持的版本。
5.1.2 GTP消息太短
当接收到一个消息太短而没有完整的包含该消息声明的GTP版本所应有的消息头时,应默默地丢弃这个G-PDU消息。
5.1.3 不认识的GTP控制面消息
当接收到一个消息的消息类型值未知时,应默默地丢弃。
5.1.4 意外的GTP控制面消息
当收到一个意外的GTP控制面消息时,如接收到的响应消息没有相应的未决的请求消息或GTP控制面消息在错误的方向发送,应默默地丢弃。
5.1.5 缺少必须有的IE
当接收到丢失了必须有的IE的请求消息时,将默默地丢弃并在错误日志中登记。应发送一个响应消息,且原因值设成’必选IE丢失’。当接收到丢失了必须出现的IE的响应消息时,经通知上层协议并在错误日志中登记。
5.1.6 无效的长度
在接收到的GTP控制面请求消息中,强制TLV(类型、长度、值)格式的IE的长度可能与消息声明的版本定义的长度不一致,则应默默地丢弃,并在错误日志中登记,响应消息的原因值应设成’必选IE不正确’。
在接收到的GTP控制面响应消息中,假如强制TLV(类型、长度、值)格式的IE的长度可能与消息声明的版本定义的长度不一致,请求实体把这个GTP控制面过程看作失败。
5.1.7 无效的必选IE
在接收到的GTP控制面请求消息中,必选IE的值超出了这个IE值的定义范围则应丢弃这个请求、在错误日志中登记,把响应消息的原因值设成’比选IE不正确’。
在接收到的GTP控制面响应消息中,必选IE的值超出了这个IE值的定义范围则应通知上层协议,并在错误日志中登记。
假如GSN接收到的IE值是保留值,则应看成IE值超出了定义范围。
注释:接收者不检查IE字段的内容就定义为空。
5.1.8 无效的可选IE
在接收到的GTP控制面消息中,可选IE的值超出了IE值的定义范围则应丢弃这个IE、在错误日志中登记、当成这个IE没有出现来处理消息的剩余部分。
假如GSN收到的IE的值是保留值,把它当成IE值超出范围处理。
注释:接收者不检查IE字段内容就定义为空。
5.1.9 不认识的IE
如果IE的类型值不认识接收者应忽略。如果是TLV格式的IE,就根据长度值跳过去,如果是TV格式的IE,就丢弃消息的剩余部分。
如果接收节点由于忽略了IE而不能解释剩余部分,接收节点应丢弃这个消息并在错误日志中登记,此外如果消息是请求消息,还应把响应消息的原因值设成’无效的消息格式’。
5.1.10 IE乱序
如果消息中两个或更多的IE乱序,接收节点将丢弃这个消息,并在错误日志中登记,此外如果消息是请求消息,还应把响应消息的原因值设成’无效的消息格式’。
5.1.11 意外的IE
如果IE的类型在GTP中有定义,但是不应出现在接收到的消息中,就跳过这个IE,其余按正常情况处理。
5.1.12 重复
如果在一个GTP控制面信息中出现未规定的重复的IE时,则应只处理第一次出现的IE的内容,并应忽略此后出现的所有重复的IE。当规定了重复的IE时,应只处理所规定的重复IE的内容。
5.1.13 可选IE不正确
在GTP控制面消息中所有错误的可选IE应视为未在该消息中出现。但是,如果接收方的GSN因这一可选IE错误而不能正确处理该消息,则接收方的GSN应在错误日志中登记,并把响应消息的原因值设成’可选IE不正确’。
5.2路径失败
每当在某路径上接收到一个响应的时候都应复位路径计数器,并且对该路径上发送的任何消息,当T3-RESPONSE定时器超时时,就增加计数器值。如果计数器值超出N3-REQUESTS定义的值,则认为路径down掉了。在这种情况下GSN或RNC可以通知OMC网络元素。GTP也应通知上层协议路径失败,以便删除与该路径关联的PDP上下文。
5.3 MS分离
当MS分离时,所有与MS相关的正在进行的GTP控制面过程都应中断。SGSN应针对所有激活的PDP上下文给对等的GGSN发删除PDP上下文请求消息。
5.4重启和恢复
所有GSN应在非易失性存储器中保存具有本地意义的重启计数器值。在重启过程完成后,GSN应立即更新重启计数器值。计数器值按模256递增。
所有GSN也应在易失性存储器中保存与之联系的每个GSN的重启计数器值。在重启过程完成后,保存的与之联系的所有GSN的重启计数器值将被清除。
5.5 报文格式
在请求中,Cause Value表示请求的原因。原因应包含在请求消息中。
在响应中,Cause Value表示接受或拒绝相应的请求。此外,Cause Value可以指示对应请求的原因。Cause值应包含在响应消息中。
Table 5.1: Cause Values
Cause |
Value (Decimal) |
|||
Request IMSI |
0 |
|||
Request IMEI |
1 |
|||
request |
Request IMSI and IMEI |
2 |
||
No identity needed |
3 |
|||
MS Refuses |
4 |
|||
MS is not GPRS Responding |
5 |
|||
Reactivation Requested |
6 |
|||
PDP address inactivity timer expires |
7 |
|||
Network Failure |
8 |
|||
QoS parameter mismatch |
9 |
|||
For future use |
10-48 |
|||
Cause values reserved for GPRS charging protocol use (see GTP' in 3GPP TS 32.295 [33]) |
49-63 |
|||
For future use |
64-127 |
|||
acc |
Request accepted |
128 |
||
New PDP type due to network preference |
129 |
|||
New PDP type due to single address bearer only |
130 |
|||
For future use |
131-176 |
|||
Cause values reserved for GPRS charging protocol use (see GTP' in 3GPP TS 32.295 [33]) |
177-191 |
|||
Non-existent |
192 |
|||
Invalid message format |
193 |
|||
response |
rej |
IMSI/IMEI not known |
194 |
|
MS is GPRS Detached |
195 |
|||
MS is not GPRS Responding |
196 |
|||
MS Refuses |
197 |
|||
Version not supported |
198 |
|||
No resources available |
199 |
|||
Service not supported |
200 |
|||
Mandatory IE incorrect |
201 |
|||
Mandatory IE missing |
202 |
|||
Optional IE incorrect |
203 |
|||
System failure |
204 |
|||
Roaming restriction |
205 |
|||
P-TMSI Signature mismatch |
206 |
|||
GPRS connection suspended |
207 |
|||
Authentication failure |
208 |
|||
User authentication failed |
209 |
|||
Context not found |
210 |
|||
All dynamic PDP addresses are occupied |
211 |
|||
No memory is available |
212 |
|||
Relocation failure |
213 |
|||
Unknown mandatory extension header |
214 |
|||
Semantic error in the TFT operation |
215 |
|||
Syntactic error in the TFT operation |
216 |
|||
Semantic errors in packet filter(s) |
217 |
|||
Syntactic errors in packet filter(s) |
218 |
|||
Missing or unknown APN |
219 |
|||
Unknown PDP address or PDP type |
220 |
|||
PDP context without TFT already activated |
221 |
|||
APN access denied – no subscription |
222 |
|||
APN Restriction type incompatibility with currently active PDP Contexts |
223 |
|||
MS MBMS Capabilities Insufficient |
224 |
|||
Invalid Correlation-ID |
225 |
|||
MBMS Bearer Context Superseded |
226 |
|||
Bearer Control Mode violation |
227 |
|||
Collision with network initiated request |
228 |
|||
APN Congestion |
229 |
|||
Bearer handling not supported |
230 |
|||
"Target access restricted for the subscriber" |
231 |
|||
UE is temporarily not reachable due to power saving |
232 |
|||
Relocation failure due to NAS message redirection |
233 |
|||
For future use |
234-240 |
|||
Cause values reserved for GPRS charging protocol use (see GTP' in 3GPP TS 32.295 [33]) |
241-255 |
|||
NOTE: With this coding, bits 8 and 7 of the Cause Value respectively indicate whether the message was a request or a response, and whether the request was accepted or rejected. |
Table 5.2: Use of the Cause Values
Cause 8 |
value bits 7 |
Result |
0 |
0 |
Request |
0 |
1 |
For future use (note) |
1 |
0 |
Acceptance |
1 |
1 |
Rejection |
例:Optional IE incorrect