QB-╳╳-╳╳╳-╳╳╳╳
4、Data Record Packet 参数
当Packet Transfer Command为‖Send Data Record Packet‖或‖Send possibly duplicated Data Record Packet‖时,Data Record Packet出现在消息体中。
Data Record Packet的内容如下图所示:
Bits Octets876543211Type = 252 (Decimal)2...3Length4Number of Data Records 5Data Record Format6...7Data Record Format Version8...9Length of Data Record 110...nData Record 1x...x+1Length of Data Record NData Record N
x+2...y 图8-10 Data Record Packet消息参数
说明:
若无数据,该单元应只包含Type(‖252‖)和Length(‖0‖)。
有2个CDR标识单元:Data Record Format 和Data Record Format Version。Data Record Format标识CDR的格式是ASN.1或其它格式
Data Record Format Version标识CDR的版本(release 和 version) 5、Released Packets 参数的序列号
比 特
字节 8 7 6 5 4 3 2 1 1 Type=249(十进制) 2…3 Length 4…5 Sequence Number 1
n…n+1 Sequence Number N 图8-11 Released Packets消息参数
6、Cancelled Packets 参数的序列号
27
QB-╳╳-╳╳╳-╳╳╳╳
字节 1 2…3 4…5
比 特
8 7 6 5 4 3 2 1 Type=250(十进制) Length Sequence Number 1 n…n+1 Sequence Number N 图8-12 Canceled Packets消息参数 7、Private Extension 参数
Private Extension 包含了用户或运营商的特殊信息。 11.6.4.6 Data Record Transfer Response
该消息用于对Data Record Transfer Request的响应。一个Data Record Transfer Response可以完成对多个Data Record Transfer Request的响应。
表8-7 Data Record TransferResponse消息参数 参数(IE) Cause Requests Responded Private Extension
原因码定义:
1 Request Accepted
2 No resources available 3 Service not supported 4 System failure
5 Mandatory IE incorrect 6 Mandatory IE missing 7 Optional IE incorrect 8 Invalid message format 9 Version not supported 10 Request not fulfilled 11 CDR decoding error
12 Request already fulfilled
13 Request related to possibly duplicated packet already fulfilled 原因码‖CDR decoding error‖为可选,用来通知PDG不能解析它的CDR。 Data Record Transfer Response涉及的参数如图所示:
比 特
字节 1 2…3 4…5
8 7 6 5 4 3 2 1 Type=253(十进制) Length Sequence Number 1 必备(M)/ 任选(O)/ 特定条件必须(C) M M O 28
QB-╳╳-╳╳╳-╳╳╳╳
n…n+1 Sequence Number N 图8-12 Requests Responded消息参数
Private Extension 包含了用户或运营商的特殊信息。
若产生的原因码级别高或出现频率高,PDG可以选择另一个CGF。 9.5.5. 重复话单传送的防止
以下例子说明了3种Data Record Transfer Request/Response情况: 正常情况CDR的传送
PDG发送CDR到CGF成功并接收到正确响应,不需作重发处理。 CDR未正确接收前PDG-CGF1之间的连接中断 发送CDR已失败,且未接收到CGF响应。
CDR已经正确接收后PDG-CGF1之间链路中断。
CGF已接收CDR成功,但发送接收成功响应时和PDG通信中断。 以下为这3种情况的处理流程: 9.5.5.1.
正常情况CDR的传送
以下为处理顺序图:
PDG 1. Data Record Transfer Request: Send Data Record Packet 3. Data Record Transfer Response: Request Accepted 2. CDRs are stored in a secure way CGF’s volatile memory Non-volatile CGF memory 4. < Succesfully sent CDRs are deleted from the GSN buffers > . . . . . .
图8-13正常情况CDR的传送处理顺序图
以下为对各个处理的说明:
1) PDG发送CDR到CGF,发送的相应的消息为‖Send Data Record Packet‖。 2) CGF处理消息,并存储CDR到本地。
29
QB-╳╳-╳╳╳-╳╳╳╳
3) CGF发送响应消息到PDG ,消息内容为‖Request Accepted‖ 4) PDG接收消息‖Request Accepted‖后,从缓冲内删除该CDR
GTP’接收响应时失败,会在额定时间内和达到设定次数前重新发送请求。 9.5.5.2.
CDR未正确接收前PDG-CGF1之间的连接中断
以下为处理顺序图:
PDG CGF1 CGF2 CDR postprocessing 1. Data Record Transfer Request: Send Data Record Packet 2. < CDRs not stored to non-volatile memory nor sent to postprocessing > 3. < No positive response to GSN even to resent requests > 4. Data Record Transfer Request: Send possibly duplicated Data Record Packet 5. < CGF2 stores the CDR packet contents to its buffer for pot. dupl. packets > 7. < CDRs are deleted from GSN buffers > 6. Data Record Transfer Response: Request Accepted . . . 8. Node Alive Request 9. Node Alive Response: Request Accepted 10. Data Record Transfer Request: Send possibly duplicated Data Record Packet (empty) 11. Data Record Transfer Response: Request Accepted 12. Data Record Transfer Request: Release Data Record Packet 13. CDRs 14. Data Record Transfer Response: Request Accepted . . . . . .
图8-14 CDR未正确接收前PDG-CGF1之间的连接中断时的处理顺序图 以下为对各个处理的说明: 1) PDG向CGF1(主用CGF)发Data Record Transfer Request消息,其中Packet Transfer Command参数是Send Data Record Packet。
2) 因为PDG与CGF1之间失去联系,CGF1没有将CDR安全保存。
3) PDG无法收到响应或者收到‖No resources available‖之类的拒绝响应。
30
QB-╳╳-╳╳╳-╳╳╳╳
4) PDG检测与备用CGF2之间的链路(用Echo Request),如果正常则PDG将与送往CGF1相同的CDR送往CGF2,使用Data Record Transfer Request消息,Packet Transfer Command参数是Send possible duplicated Data Record Packet。
5) CGF2处理接收到的CDR,因为该分组被标识为possible duplicated,虽然CGF2保存该分组,但是不立刻送往BS。
6) CGF2送正确接收确认信息给PDG,采用Data Record Transfer Response消息,Cause参数置为Request Accepted。
7) PDG可以将成功发送的CDR(但可能重复)删除,但是仍然保留该分组的序列号(Sequence Number)。
8) CGF1恢复以后,向PDG送Node Alive Request消息,PDG知道又可以与CGF进行通信。 9) PDG采用Node Alive Response消息确认。
10) 对于前面未得到确认的Data Record Transfer Request消息,PDG向CGF1发送空的测试分组,空分组仅仅是Data Record Packet参数中不包含CDR负载,其它都一样。
11) CGF1以Data Record Transfer Response消息响应,Cause参数置为Request Accepted。因为在CGF1保存CDR之前,CGF1已经与PDG失去联系,所以对于测试分组它认为是新的分组予以接受。
12) PDG知道CGF1并未处理测试分组对应的原分组,通知CGF2可以将该CDR送给BS,采用的消息是Data Record Transfer Request,Packet Transfer Command参数是Release Data Record Packet。该分组的序列号在Sequence Numbers of the Released Packets参数中指示。
13) CGF2可以将CDR传向BS。
14) CGF2向PDG发Data Record Transfer Response消息,Cause参数置为Request Accepted。
处理完毕, PDG可以处理后来的CDR。 9.5.5.3.
CDR已经正确接收后PDG-CGF1之间链路中断
以下为处理顺序图:
31