本文已参与「新人创作礼」活动,一起开启掘金创作之路。
相关文章会在公众号同步更新。公众号:5G通信大家学
持续更新的相关5G内容都是直接根据3GPP整理,保证更新内容的准确性,避免通过二手,甚至多手的资料,以讹传讹误导网友。
///////////
1.1.2.14b Nudm_SDM_Get
消息方向:new AMF -> UDM
HTTP方法:GET
该消息的触发条件是:AMF中没有该UE的签约数据,或者签约数据不完整,或者签约数据需要更新时会调用该消息(SoR等参数可以设置为要求更新)。
AMF使用Nudm_SDM_Get操作下载UE的签约数据。UE的签约数据有很多,比较重点的有切片选择签约数据、接入和移动性管理签约数据、SMF选择签约数据、会话管理签约数据、SMS签约数据及SMS管理签约数据。除签约数据外,关于SMF、SMSF的UE Context也可以下载,其它还有很多签约数据,详见:TS 29.503,经常翻一下这些签约数据,对理解信令原理有很大的好处,会减少很多疑惑的地方。
该消息调用的URI格式如下,后续以下载切片签约数据为例:
{apiRoot}/nudm-sdm/v2/{supi}/****
其中:{supi}为UE的SUPI,最后的URI变量可以为:nssai、am-data、smf-select-data、sm-data、sms-data、sms-mng-data、ue-context-in-smf-data等。其支持的查询参数有plmn-id和supported-features,查询参数是可选的。如果没有提供plmn-id默认为归属PLMN值,返回UE的HPLMN的Subscribed S-NSSAI;如果提供了plmn-id,则返回该PLMN下的Subscribed S-NSSAI。另一个需要注意的地方是,在获取UE签约数据的URI中,API版本号为v2。
Nudm_SDM_Get的请求消息不包含消息体。其返回的数据为NSSAI类型的数据,具体内容如下:
nssai类型的数据包含defaultSingleNssais、singleNssais、additionalSnssaiData等信息,其中:defaultSingleNssais包含缺省的Subscribed S-NSSAI;singleNssais包含非缺省的Subscribed S-NSSAI;additionalSnssaiData是键值对类型,用于说明每个S-NSSAI是否需要执行Network Slice-Specific Authentication and Authorization流程,默认为false,不需要执行网络切片的鉴权和授权流程。
在众多签约数据中,比较特殊的就是网络切片NSSAI签约数据,它是在AMF注册前查询,用于辅助网络选择的签约数据。4G EPC中,PDN连接建立过程中PGW-C+SMF也需要查询NSSAI签约数据,为UE提供一个S-NSSAI。
下面仅介绍几个重点的签约数据内容:
- 接入和移动性签约数据: 包含gpsis、subscribedUeAmbr、nssai、ratRestrictions、forbiddenAreas 、serviceAreaRestriction、coreNetworkTypeRestrictions 、rfspIndex 、subsRegTimer(周期性注册定时器)、ueUsageType(EPS互操作时用于选择EPC专用核心网)、subscribedDnnList、stnSr、cMsisdn、nssaiInclusionAllowed等;
- SMF 选择签约数据: 包含每个S-NSSAI和DNN信息的关联,DNN信息有缺省的DNN、EPS互操作信息及使用静态IP地址的SMF列表等信息。
- 会话管理签约数据: 包括切片和DNN配置信息(如PDU Session的类型、sscModes、iwkEpsInd、5gQosProfile、sessionAmbr、staticIpAddress等)
- SMS 签约数据: 包括是否允许NAS短信等
- SMS 管理签约数据: 正常的短信业务(非IMS短信,PS网络自身也支持短信业务)数据
- ue-context-in-smf-data 签约数据: 包括PDU Session信息(DNN、切片等信息)和pgwInfo(与EPS互操作是的APN和PGW-C+SMF FQDN等信息)。
注册过程中下载切片数据用于判断当前的AMF是否可以为UE提供服务,如果不能服务会涉及到AMF重选流程,在后面的详解文章中再具体分析。
注册过程中,AMF可以从UDM中可以一次下载多组签约数据,如:AM签约数据、SMF选择签约数据、SMF中UE Context数据、SMS签约数据等,这时候需要使用DataSet的概念。
对应的资源URI(相比前面介绍的,只是没有具体签约数据名字的信息)如下:
{apiRoot}/nudm-sdm//{supi}
此时,需要下载的多个签约数据是包含在GET方法的查询参数中,如下:
{apiRoot}/nudm-sdm/v1/imsi-460000000000000?dataset-names=AM,SMF_SEL,UEC_SMSF,SMS_SUB&plmn-id=***
这些数据集的名字,规范定义如下:
响应消息:
-
200 OK:包括需要获取的签约数据
-
404 Not Found:携带可能的原因值:USER_NOT_FOUND、DATA_NOT_FOUND。