5G核心网学习平台
CHF 实践篇 #04

CHF支持PDU会话离线计费(会话更新,Charging Data Request - Update)

《5G核心网原理与实践》实践篇 · CHF 网元功能

CHF⽀持PDU会话离线计费(会话更新,Charging Data Request - Update)

爱卫生

2023年09月10日 13:23

1 测试目的

- 验证CHF支持PDU会话离线计费(会话更新)。

- 需求是:

1)在PDU会话建立流程中,SMF与CHF建立了N40的会话,CHF向SMF下发了计费事件的触发器

Trigger。

2)当触发器条件满足时,sMF应向CHF发送报告。

对应的大流程可以是PDU会话建立,也可以是PDU会话修改。

关键是看Trigger的条件是否满足。

2 测试步骤

信令流程图与PDU会话建立/修改流程基本一致,重点是N40接口,大致如下:

1)当SMF感知到计费事件的触发条件满足:

3)CHF更新CDR(可选,如果有必要的话。);

2)SMF基于触发条件,给CHF发送Charging Data Request(Update)消息;

3 主要的检查点和log解析:

4)CHF给SMF返回Charging Data Response(Update)消息。

1)SMF向CHF发送Charging Data Request(Update)消息;

可以看到,上图中长度为2253字节的包就是SMF发送给CHF的update,和长度为1854字节的Initial消息不

同,Update消息里那个408结尾的数字表示ChargingRefId,这个Id在N40会话创建后才会分配,所以最开

始的Initial消息里是没有的。

主要参数有:

- nfConsumerIdentification:调用计费服务的NF的信息,这里是SMF的信息。

- invocationTimeStamp:请求发送的时间。年月日小时分钟秒格式。

- subscriberIdentifier:用户的IMSI。

- pDUSessionChargingInformation:PDU会话相关的计费信息。

- pduSessionInformation:pDUSessionChargingInformation的子参数,描述了PDU会话的详细信息,包

括PDU会话标识、选择的SSC模式、PDU地址、RAT类型、切片信息、签约的Qos信息等等。

- invocationSequenceNumber:请求消息的序列号。这里取值为2,Initial消息里1。序列号+1。

- Triggers:表明update是因为什么触发的。这里是volume_limit,因为使用量到达门限。并且

TriggerCategory为立即上报。

- multipleUnitUsage:上报的用户使用量的具体信息。包括关联的rating group、使用量

usedUnitContainer(上行、下行、总和)。quotaManagementIndicator指明为离线计费。

JavaScript Object Notation: application/json

Object

Member Key: multipleUnitUsage

Array

Object

Member Key: ratingGroup

Member Key: usedUnitContainer

Array

Object

Member Key: downlinkVolume

Member Key: triggers

Array

Object

Member Key: triggerCategory

String value: IMMEDIATE_REPORT

Key: triggerCategory

Member Key: triggerType

String value: VOLUME_LIMIT

Key: triggerType

Key: triggers

Member Key: localSequenceNumber

Member Key: quotaManagementIndicator

String value: OFFLINE_CHARGING

Key: quotaManagementIndicator

Member Key: triggerTimestamp

Member Key: uplinkVolume

Member Key: totalVolume

Member Key: pDUContainerInformation

Object

Member Key: timeofLastUsage

String value: 202X-03-23T15:33:06+0800

Key: timeofLastUsage

Member Key: timeofFirstUsage

String value: 202X-03-23T15:32:59+0800

Key: timeofFirstUsage

Key: pDUContainerInformation

Key: usedUnitContainer

Key: multipleUnitUsage

Member Key: triggers

Array

Object

Member Key: triggerCategory

String value: IMMEDIATE_REPORT

Key: triggerCategory

String value: VOLUME_LIMIT

Member Key: triggerType

Key: triggerType

Key: triggers

Member Key: invocationTimeStamp

Member Key: nfConsumerIdentification

Member Key: subscriberIdentifier

Member Key: pDUSessionChargingInformation

Object

Member Key: userLocationinfo

Member Key: chargingId

Number value: 26XXXXX408

Key: chargingId

Member Key: userInformation

Member Key: pduSessionInformation

Object

Member Key: chargingCharacteristicsSelectionMode

Member Key: sscMode

Member Key: pduSessionID

Member Key: networkSlicingInfo

Member Key: pduAddress

Member Key: chargingCharacteristics

Member Key: ratType

Member Key: pduType

Member Key: servingNetworkFunctionID

Member Key: subscribedSessionAMBR

Member Key: dnnId

Member Key: hPlmnId

Member Key: servingCNPlmnId

Member Key: subscribedQoSInformation

Key: pduSessionInformation

Key: pDUSessionChargingInformation

Member Key: invocationSequenceNumber

Number value: 2

Key: invocationSequenceNumber

2)CHF给SMF返回Charging Data Response(Update)消息。

【需要注意,如果是Charging Data Response(initial),则是201 created。如果是Charging Data

Response(update),则是200 OK。

CHF在响应消息中主要参数有:

1)triggerType:触发条件。这里是使用量限制。

- triggers:计费触发器。又包括以下几个子参数:

2)TriggerCategory:必选参数。指示SMF是否立即上报CHF计费事件,上报对应trigger生成的计费数

据。取值有两个,IMMEDIATE_REPORT表示立即上报;DEFERRED_REPORT表示延迟上报。本例为

立即上报。

3)volumeLimit64:使用量限制的门限值。64是它的最大取值范围,即的2的64次方。和它对应的还有一

个叫volumeLimit的参数,取值是32位长度,即2的32次方。

- invocationSequenceNumber:SMF调用计费服务的序列号。

- invocationTimestamp:CHF响应计费服务的时间戳。

【注:CHF在本地还有很多动作,比如判断是否更新CDR,CDR的合并、整理、格式化等操作。但这些

在抓包里边体现不出来。另外,还涉及到和BOSS的交互,这里先省略了。】

4 规范

参考32.290和32.291。

无论是想学习课程、看视频、看案例、看log、看实战,统统都有。

← 返回 CHF 实践篇