5G核心网学习平台
SMF 实践篇 #18

《5GC实践篇》之SMF篇(3)对会话管理的支持

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

《5GC实践篇》之SMF篇(3)对会话管理的支持

爱卫生

2023年03月18日 20:58

目录:

2.3 对会话管理的支持 244

2.3.1 对PDU会话建立流程的支持 244

2.3.2 对PDU会话修改流程的支持 252

2.3.3 对PDU会话释放流程的支持 256

2.3.4 支持去激活用户面资源 258

正文开始

2.3 对会话管理的支持

2.3.1 对PDU会话建立流程的支持

一 概述

完整的PDU会话建立流程在规范23502的4.3.2.2节介绍,在《原理篇》的3.2.1节PDU会话建立流程一节也有详细介

绍。这里不再赘述。

二 检查点

主要检查SMF是否支持“PDU会话建立流程”中的相应工作,而在该流程中,SMF需支持以下主要功能。(按信令流程

的步骤排序)

1)查NRF完成UDM的选择。然后SMF需要支持从UDM获取UE的会话管理签约数据(sm-data),并且SMF还需要向

UDM订阅该签约数据。

2)如果部署了PCC,需要完成PCF的选择,并发起到PCF的会话建立。并接受PCF下发的规则(含Qos),来完成

PDU会话的建立。

3)完成UPF的选择,并和UPF建立N4会话,并下发相应的管控规则。

4)给UE发送PDU会话接受NAS消息,并通过调用AMF的服务,将NAS消息透传给UE。

5)SMF需要在UDM中注册登记,登记UE的SMF的ID,也就是告诉UDM,这个UE现在是由我在为它提供会话管理服

务。如果有人要找做会话管理相关的事件,你就让它来找我。

三 消息举例

来看几个实际报文,和前面的主要步骤是对应的。

1)UDM的选择:

- 包括Get请求和200 OK。其中,Get请求的request-uri部分为:

/nnrf-disc/v1/nf-instances?service-names=nudm-uecm&target-nf-type=UDM&requester-nf-type=SMF&requester-nfinstance-fqdn=smf666.51xuetongxin.com&requester-plmn={"mcc":"460", "mnc":"66"}&snssais={"sst":1,

"sd":"000001"}。可以看出找NRF查询的是UDM网元,并且该UDM需要支持nudm-uecm服务。然后还有请求的网元是

SMF,plmn-id、切片等信息。

- NRF返回的200 OK包含了UDM的详细信息。如下图:

2)SMF在UDM中注册登记:

- 请求采用PUT方法,PUT请求的request-uri部分为:/nudm-uecm/v1/imsi-460660000000666/registrations/smfregistrations/5。【5是PDU Session ID。】,JSON数据部分包括smfId、dnn等信息。如下图:

- UDM返回201 Created。表示登记创建成功。

3)从UDM获取sm-data:

- 包括Get请求和200 OK。其中,Get请求的request-uri部分为:/nudm-sdm/v1/imsi-460660000000666/sm-data?

dnn=xxnet&singleNssai={"sst":1, "sd":"000001"} 。从uri部分可以看出请求的是sm-data,并且携带的DNN和切片等信

息。

- UDM返回200 OK,在JSON数据中包含了UE的sm-data。如下图:

4)向UDM订阅该UE的sm-data:

- 包括POST请求和201响应。其中,Post请求的request-uri部分为:/nudm-sdm/v1/imsi-460660000000666/sdmsubscriptions。JSON数据部分包含了订阅的对象(monitored Resource uri=sm-data)和接收订阅通知的uri地址。如

下图:

- UDM返回201 created,表示订阅成功。

5)PCF的选择:

- 包括Get请求和200 OK。其中,Get请求的request-uri部分为:/nnrf-disc/v1/nf-instances?service-names=npcfsmpolicycontrol&target-nf-type=PCF&requester-nf-type=SMF&requester-nf-instancefqdn=smf666.51xuetongxin.com&requester-plmn={"mcc":"460","mnc":"66"}&snssais={"sst":1, "sd":"0]。可以看出请求

的是PCF网元,并且需要支持smpolicycontrol这个服务。

- NRF返回的200 OK包含了PCF的详细信息。如下图:

6)从PCF获取sm-policy:

- 包括Post请求和201响应。其中,Post请求的request-uri部分为:/npcf-smpolicycontrol/v1/sm-policies。可以看出请

求的是sm-policy,即会话管理策略。

- PCF返回201响应,里边包含了sm-policy(Session Rule。包括授权的Session-AMBR、授权的缺省Qos如5QI和ARP

等参数)。如下图:

7)选择UPF并和该UPF建立N4会话,并下发管控规则:

- UPF的选择是SMF在本地完成的,没有信令。选定后,SMF发起N4会话的建立,里边包含了PDR、QER、URR等规

则用于管控。如下图【Grouped IE是wireshark加上去的解说词,说明点开还有子参数,这里就没有展开了。关于N4的

规则单独再开文单独讨论。】:

- UPF回复PFCP Session Establishment Response,该消息中UPF侧分配了N3口的GTP-U地址和TEID。如下图所

示:

8)调用AMF的服务,请求AMF将N2消息透传给gNB(请求gNB分配用户面资源),将N1消息(PDU会话建立接受)

透传给UE。调用采用Post请求,AMF透传后返回200 OK。

- Post请求的request-uri部分是/namf-comm/v1/ue-contexts/imsi-460660000000666/n1-n2-messages。JSON数据部分

携带了需要透传的N1和N2消息,但没有完全解析出来,就不展开了。但从输出中,可以看到包含了一个N2消息和一个

N1消息。如下图:

9)发起N4会话修改,将gNB的N3口用户面信息发给UPF(用于下行数据发送):

- SMF发给UPF的是PFCP Session Modification Request,该消息修改了FAR,里边包含了gNB侧的N3口用户面地址

和TEID。如下图所示:

输出中的10.1.1.4就是gNB侧的N3口地址。

2.3.2 对PDU会话修改流程的支持

一 概述

PDU会话修改流程在规范23502的4.3.3节介绍,可以是UE发起,也可以是网络侧(PCF、UDM等)发起。本例以较为

常见的PCF发起的PDU会话修改流程为例进行介绍,详细的信令流程在《原理篇》的3.2.2.4 节PDU会话修改流程一节

也有详细介绍。这里不再赘述。

PCF发起的PDU会话修改流程其实也是VoNR呼叫流程中的一部分,由IMS的AF向PCF提需求,请求5GC网络为语音业

务提供保证。AF会告诉PCF所需要的带宽和需要保证的对象(如音频流)及对象的特征(如源目的IP、端口号等)。

PCF发起PDU会话修改流程到SMF,请求SMF建立相应的5G专载(Qos流)。这需要SMF的支持。

二 检查点

主要检查SMF是否支持“PDU会话修改流程”中的相应工作,而在该流程中,SMF需支持以下标红的主要步骤:

主要检查项:

第1b步:SMF能正确处理PCF发过来的请求,从请求消息中能提取出PCF下发的各种管控规则(如Qos参数)。

第2a和2b步:SMF能将PCF发送来的规则转换成N4规则,并下发给UPF。例如5G专载所需的Qos放在QER里下发给

UPF,5G专载业务描述信息放在PDR里下发给UPF。

第3b步:SMF能调用AMF的1Namf_Communication_N1N2MessageTransfer 服务操作,请求AMF透传N2消息给gNB

(请求gNB为5G专载分配资源)、透传N1的NAS消息给UE。

第8a/8a,12a/12b步:SMF能根据AMF发过来的请求,提取相应参数,转换成需要更新的N4口规则,发起N4会话修改

流程,要求UPF更新。例如要求UPF对新增加的Qos流执行开门(Gating)操作,即允许UPF在新的Qos流的上下行用

户面资源建立后转发该Qos流的流量。

第13步:无论5G专载建立与否,SMF应发起到PCF会话修改流程,将结果告知PCF侧。并且将一些实时的动态信息

(如UE的位置)告诉PCF,来辅助PCF制定后续的策略。

三 消息举例

关于本节的报文,没找着完整的。因此,只能请大家看其中一个报文,不好意思。但也是非常重要的一个,就是图中

的第3b步:SMF调用AMF的Namf_comm服务,请求AMF透传N2和N1消息。该请求消息采用Post方法,requesturi=/namf-comm/v1/ue-contexts/imsi-460660000000666/n1-n2-messages。需要透传的N1和N2消息放在JSON数据

里。如下图:

从图中可以看出,本图一共包含了1个N1的NAS消息和1个N2的NGAP消息。这可以从Content-Type的取值

(vnd.3gpp.5gnas和vnd.3gpp.ngap)看出来,具体的消息可以从Content-ID的取值看出来(PDU Session

Modification Command这个是发给UE的NAS消息、PDU Session Resource Modify Request是发给gNB的N2消息)。

将这两个消息点开,得到详细的参数。先点开NAS部分的,如下图:

可以看到有PDU Session ID、S-NSSAI等参数。另外,还有一些参数因为解码的原因,没有在图中显示出来,比如

QFI和授权的Qos等也会发给UE进行确认,并以此约束终端的行为。

再点开NGAP部分的,但很遗憾,可能是装的wireshark的版本不对,没有解出来,如下图:

只能通过查询23502的信令流程(提到了该步骤的主要参数)和29502的SMF服务规范和38413的NGAP规范,最终确

定这个N2消息里的主要参数包括:PDU Session ID、QFI、需要修改的Qos(如MFBR、GFBR等)。

2.3.3 对PDU会话释放流程的支持

一 概述

PDU会话释放流程在规范23502的4.3.4节介绍,可以是UE发起,也可以是网络侧(PCF、UDM等)发起。本例以较为

常见的UE发起的PDU会话释放流程为例进行介绍,详细的信令流程在《原理篇》的3.2.3.3 节PDU会话释放流程一节

也有详细介绍。这里不再赘述。

二 检查点

主要检查SMF在收到了AMF发过来的Nsmf_PDUSession_UpdateSMContext后,SMF能给UPF发N4的PFCP Session

Deletion Request,要求UPF删除N4会话并释放资源,并能给AMF回正确的响应。

如果该会话是UE的最后一个PDU会话,SMF应支持向UDM发送去订阅(Nudm_SDM_Unsubscribe)和去注册登记

(Nudm_UECM_Deregistration)消息。

三 消息举例

来看几个实际报文,和前面的检查点是对应的。

1)AMF发给SMF的Nsmf_PDUSession_UpdateSMContext请求:

- 采用Post方法,Post请求的request-uri部分为:

/nsmf-pdusession/v1/sm-contexts/55555555/modify。可以看出找SMF的PDUSession服务,请求对UE的SM上下文进

行modify的服务操作,其中55555555是PDU会话建立阶段由SMF分配的smcontext referenceId(smContextRef)。

JSON数据部分包含了透传给SMF的NAS消息PDU Session Release Request(放在N1SmMsg参数里)、UE位置、服

务网元的实例Id等信息。如下:

JavaScript Object Notation: application/json

Object

Member Key: servingNfId

String value: 11111111-2222-3333-4444-66666666

Key: servingNfId

Member Key: ueLocation

Object

Member Key: nrLocation

Object

Member Key: tai

Member Key: ncgi

Key: nrLocation

Key: ueLocation

Member Key: n1SmMsg

Object

Member Key: contentId

String value: n1SmMsg

Key: contentId

Key: n1SmMsg

Member Key: smContextStatusUri

2)SMF给UPF发N4会话释放请求,主要参数只有一个Session Endpoint ID。如下:

Packet Forwarding Control Protocol

Flags: 0x21, SEID (S)

Message Type: PFCP Session Deletion Request (54)

Length: 12

SEID: 0x6660000000000000

Sequence Number: 66688777

Spare: 0

3)SMF给AMF回200 OK。消息中应包含需要透传给UE和gNB的N1消息:PDU Session Release Command和N2消

息:PDU Session Resource Release Command。如下图:

4)SMF检查发现这是UE的最后一个PDU会话,给UDM发去注册登记消息。采用DELETE方法,request-uri

是:/nudm-uecm/v1/imsi-460xx0000000666/registrations/smf-registrations/5 。该消息没有JSON数据部分,uri中最后

那个5是PDU Session ID。然后UDM回204 no content。表示注册登记信息已经清除了。

5)SMF检查发现这是UE的最后一个PDU会话,给UDM发去订阅消息。采用DELETE方法,request-uri是:/nudmsdm/v1/imsi-460xx0000000666/sdm-subscriptions/referenceid-55555555-sm-data。可以看到,该消息调用了NudmSDM服务,并包括UE的IMSI,uri最后那一长串是在创建订阅关系时由UDM分配的订阅号(SubscriptionID)。UDM删

除订阅关系后回204 no content。

2.3.4 支持去激活用户面资源

一 概述

当某些场景下,SMF需支持去激活用户面资源(DRB和N3隧道资源),也就是向UPF发送请求,要求释放N3隧道和用

户面资源。在规范23502的4.3.7 CN-initiated selective deactivation of UP connection of an existing PDU Session节介

绍。

规范中提到的场景主要包括:

- UE离开了LADN区域;

- UPF检测并上报PDU会话没有数据传输等;

- AMF通知SMF,UE已经离开了Allowed Area。

- 切换流程中,目标gNB拒绝了所有的Qos流的建立、或收到AMF指示说PDU会话建立失败。

二 检查点

主要检查SMF能支持规范中提到的主要步骤,如下图所示:

1)SMF根据前面提到的4种场景,在本地做出用户面资源释放的决定。

【注意:规范图里有两个UPF,其中一个UPF写的是UPF(N3 terminating)代表这个UPF是终结N3接口的,也叫IUPF,右边还有一个UPF(to buffer)则是终结N9接口或者PSA角色的UPF。但实际环境中,可能不一定有I-UPF,或

者两个UPF是合设的。因此,相应的步骤也会合并。】

如果SMF决定释放终结N3口的UPF(The SMF may decide to release the UPF of N3 terminating point.),则执行步

骤2和步骤3。

如果SMF决定保持终结N3口的UPF(Otherwise, if the SMF decides to keep the UPF of N3 terminating points),则

执行步骤4。(跳过步骤2和3。)

2)如果SMF决定释放终结N3口的UPF,SMF需要给终结N3口的UPF发会话释放请求,将N4会话释放掉。

3)同时,SMF还需要给UPF(PSA)发送PFCP会话更新请求,下发缓存规则或转发规则,指示UPF缓存或丢弃下行

数据。

4)如果SMF决定保持终结N3口的UPF,SMF需要给终结N3口的UPF发会话更新请求,消息中包含需要移除的gNB侧

的N3隧道信息,并下发缓存和报文转发规则,告诉UPF是缓存还是丢弃下行数据报文。

5)SMF调用AMF的Namf_Communication_N1N2MessageTransfer,请求AMF透传N2消息:Resource Release

Command给gNB,请求gNB释放相关的资源。

三 消息举例

来看几个实际报文,和前面的检查点是对应的。

1)如果SMF决定释放掉I-UPF的N4会话,则发送PFCP Session Release Request给UPF,该消息除了SEID外,没有

其他本流程相关参数。具体可参考2.3.3.节中的消息举例。

2)当SMF释放了和N3终结点UPF的N4会话后,还要给UPF(PSA)发PFCP Session Modification Request,下发更

新的缓存规则或转发规则。告诉PSA是缓存还是丢弃下行报文。(反正就是不能转发,因为下行的N3用户面已经被拆

掉了,不通。而且一旦转发,就会被计费,多收用户钱了。)如下图所示:(本例中,SMF下发了一个更新的FAR规

则,要求PSA丢弃下行数据。)

3)而无论I-UPF的N4会话释放释放,N3的用户面资源都是需要释放的。因此无论是哪种场景,SMF都要调用AMF的

Namf_Communication_N1N2MessageTransfer,请求AMF透传N2消息:PDU Session Resource Release Command

给gNB来释放N3资源。该消息采用Post方法,其中request-uri为/namf-comm/v1/ue-contexts/imsi460xx0000066666/n1-n2-messages。JSON数据部分如下图所示:

最后还要检查AMF确实把N2消息发给了gNB。如下图:

← 返回 SMF 实践篇