5G核心网学习平台
AMF 实践篇 #37

AMF功能实战篇(41) 向UDM订阅签约数据变更事件和接收通知

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

《5GC原理与实践》实践篇(41) 向UDM订阅签约数据变更事件和接收通知

爱卫生

2023年02月13日 23:22

《5GC原理与实践》实践篇是按网元来规划的。包括AMF篇、SMF篇、PCF篇等。

本文是AMF篇的第41篇。

1.1.9 向UDM订阅签约数据变更事件和接收通知

1.1.9.1 功能概述

在4G中,MME从HSS获取UE的签约数据。而当UE的签约数据在HSS侧发生改变时,HSS会主动的通过Diameter消息:

Insert Subscriber Data消息将更新的签约数据发给MME。

MME事先无需向HSS订阅UE的签约数据变更事件,或者也可以看成是双方心有灵犀的隐式订阅。

但在5G中,UDM中的用户签约数据发生变化,UDM不会主动的通知AMF,除非AMF事件向UDM做了订阅,表达自己对这个UE的签约

数据感兴趣。

只有做了订阅,UDM在看到签约数据变更时,才会把更新后的签约数据通过通知消息发给AMF。

【需要注意,本节提到的事件订阅和通知与1.1.6节的事件订阅不一样,本节的事件订阅是UDM作为服务的提供者

(Nudm_SubscriberDataManagement服务),AMF作为服务的消费者发起订阅。而1.1.6节是AMF作为服务

(Namf_EventExposure_Subscribe)的提供者,为其他NF提供订阅服务。】

AMF向UDM发起签约数据的订阅在29503的5.2.2.3节定义。

AMF发起订阅请求采用HTTP Post方法,在请求消息中需要提供一个接收通知的回调地址(callback uri)。

当创建好订阅关系后,UDM返回201 Created,并分配一个订阅ID用以标识这个订阅关系。如下:

当签约数据改变时,AMF从UDM接收通知在29503的5.2.2.5节定义。UDM也采用HTTP Post方法向AMF发送通知,将变更后的签约数

据发到AMF在订阅时指定的回调地址。

AMF收到后,回复204 no content。如下:

1.1.9.2 消息举例

下面通过一个场景举例,并结合一组实际的消息来看AMF的订阅通知签约数据功能。

场景假设:AMF对UE1(IMSI=460xx1111199999)的签约数据(am-data)感兴趣,向UDM发起了订阅。接下来,UDM通过本地配置

(或者收到了BOSS侧的通知)修改了UE的签约数据。将UE的签约的切片数据进行了修改。

1)首先来看AMF向UDM发送的订阅请求和收到的201响应。

- AMF的订阅请求消息包括Headers头部和JSON数据参数两个部分。其中,Headers包括method=POST、uri=/nudm-sdm/v1/imsi460xx1111199999/sdm-subscriptions。JSON数据部分包括:

其中,nfInstanceId是AMF的网元实例ID,callbackReference是AMF提供给UDM用于接收通知的回调地址,monitoredResourceUris表

示订阅的感兴趣事件,在本例中订阅的是am-data(接入管理签约数据)。

- UDM收到订阅请求后,创建和保存订阅关系,回复201 Created。

同样也包括HTTP Header和JSON数据部分。如下图所示:

需要注意,UDM在响应消息里的JSON数据部分和AMF订阅请求消息的JSON数据部分完全相同,参考楼上的截图即可,不重复给出。

这里更重要的是HTTP Header部分,除了有201状态码外,还有一个Location参数,里边携带了UDM分配的订阅ID

(SubscriptionID),用于标识订阅关系。

规范原文是:The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created resource。

Location参数的格式是:

{apiRoot}/nudm-sdm/<apiVersion>/{supi}/sdmsubscriptions/{subscriptionId}。

在本例中subscriptionId的取值是460xx1111199999_-666777888。

2)接下来再看UDM发给AMF的通知(UDM侧修改了UE签约的切片数据。)

- UDM发给AMF的通知消息包括Headers头部和JSON数据参数两个部分。

其中,Headers包括method=POST、uri=/namf-callback/v1/imsi-460xx1111199999/ue-context-notify。

Uri部分实际上是AMF在订阅请求消息中提供的回调地址。

JSON数据部分则包括了变更后的签约数据,如下图:

其中,resourceId表示修改的资源对象是UE1的am-data、op=REPLACE表示是一个完全替换的操作、path=/nssai表示修改的参数的路

径这里表示修改的是切片数据、newValue表示替换以后的新值。最后完整的解读就是将UE的签约切片变更为sst=1、sd=000002。

AMF收到后,在本地的UE上下文中更新UE的签约数据。并返回204响应。

这个204响应消息很简单,只有一个状态码,就不给出消息截图了。

← 返回 AMF 实践篇