SMF,Session Management Function,会话管理功能,负责处理用户的业务,可以看成是 MME 承载管理部分以及 SGW 和 PGW 的控制面功能的组合。TS 29502
相当于 4G MME 会话管理功能和 SGW-C / PGW-C
会话管理:UE IP 地址分配和管理,选择和控制 UPF,配置 UPF 的流量和定向,转发至合适目的网络
合法监听
计费和 Qos 策略控制
计费数据搜集
N16 参考点: 在 V-SMF 和 H-SMF 在家庭路由漫游的场景
N16a 参考点: 在 SMF 和 I-SMF
N38 参考点:在 I-SMF 和 V-SMF
1. SMF 提供的服务
Service Name |
Service Operations |
Operation Semantics |
Example Consumer(s) |
Nsmf_PDUSession |
Create |
Request/Response |
V-SMF/I-SMF |
Update |
Request/Response |
V-SMF/I-SMF, H-SMF |
|
Release |
Request/Response |
V-SMF/I-SMF |
|
CreateSMContext |
Request/Response |
AMF |
|
UpdateSMContext |
Request/Response |
AMF |
|
ReleaseSMContext |
Request/Response |
AMF |
|
SMContextStatusNotify |
Subscribe/Notify |
AMF |
|
StatusNotify |
Subscribe/Notify |
V-SMF/I-SMF |
|
ContextRequest |
Request/Response |
AMF, I-SMF, SMF |
|
ContextPush |
Request/Response |
SMF |
|
SendMOData |
Request/Response |
AMF |
|
Nsmf_EventExposure |
Subscribe |
Subscribe/Notify |
NEF, AMF, NWDAF |
Unsubscribe |
NEF, AMF, NWDAF |
||
Notify |
NEF, AMF, NWDAF |
||
AppRelocationInfo |
AF |
||
Nsmf_NIDD |
Delivery |
Request/Response |
NEF |
Table 5.2.8.1-1: NF services provided by the SMF TS 23502
1.1 Nsmf_PDUSession 服务
Nsmf_PDUSession 服务操作 PDU 会话,其允许其他网络来建立,修改,释放 PDU 会话
二. PDU 会话建立流程
SMF 从 AMF 接收 Nsmf_PDUSession_CreateSMContext 请求,/sm-contexts,则进入 PostSmContexts 函数处理,设置为 PDUSessionSMContextCreate 类型消息,丢进 channel 进行集中处理
2.1 HandlePDUSessionSMContextCreate 函数
SMF 创建会话管理上下文,实例化 SMContext,向 UDM 发起 Nudm_SubscriberDataManagement.请求 /{supi}/sm-data,
为 UE 分配 IP 地址,PCF 选择,smContext.PCFSelection,调用 Nnrf_NFDiscovery /nf-instances 向 NRF 进行服务发现,实例化 SmPolicyContextData 并填充 Supi,PDUSessionID,Dnn,Snssai 等等。调用 /sm-policies 更新 PCF 策略配置
2.1.1 设置拓扑
例如官方例子:
userplane_information:
- up_nodes:
- gNB1:
- type: AN
- an_ip: 192.188.2.3
- BranchingUPF:
- type: UPF
- node_id: 10.200.200.102
- up_resource_ip: 192.188.2.2
- AnchorUPF1:
- type: UPF
- node_id: 10.200.200.101
- up_resource_ip: 192.188.2.23
- AnchorUPF2:
- type: UPF
- node_id: 10.200.200.103
- up_resource_ip: 192.188.2.24
- links:
- A: gNB1 B: BranchingUPF
- A: BranchingUPF B: AnchorUPF1
- A: BranchingUPF B: AnchorUPF2
2.1.2 GenerateDataPath 函数
2.1.2.1 如果是第一个节点,则为 root 节点
下行链路则为 AN,SetUpLinkSrcNode 建立上行链路,实例化 GTPTunnel
func (node *DataPathNode) SetUpLinkSrcNode(nextUpLinkNode *DataPathNode) (err error) {
node.UpLinkTunnel = new(GTPTunnel)
node.UpLinkTunnel.SrcEndPoint = nextUpLinkNode
node.UpLinkTunnel.DestEndPoint = node
destUPF := node.UPF
node.UpLinkTunnel.MatchedPDR, err = destUPF.AddPDR()
if err != nil {
logger.CtxLog.Errorln("allocate UpLinkTunnel.MatchedPDR", err)
}
teid, _ := destUPF.GenerateTEID()
node.UpLinkTunnel.TEID = teid
return
}
2.1.2.2 如果是最后一个节点
SetDownLinkSrcNode
func (node *DataPathNode) SetDownLinkSrcNode(nextDownLinkNode *DataPathNode) (err error) {
node.DownLinkTunnel = new(GTPTunnel)
node.DownLinkTunnel.SrcEndPoint = nextDownLinkNode
node.DownLinkTunnel.DestEndPoint = node
destUPF := node.UPF
node.DownLinkTunnel.MatchedPDR, err = destUPF.AddPDR()
if err != nil {
logger.CtxLog.Errorln("allocate DownLinkTunnel.MatchedPDR", err)
}
teid, _ := destUPF.GenerateTEID()
node.DownLinkTunnel.TEID = teid
return
}
2.1.2.3 如果是中间节点的情况
SMF The Session Management function 包括以下功能:
- 会话管理,例如会话建立,修改和释放,包括UPF和AN节点之间的隧道维护 Session Management e.g. Session Establishment, modify and release, including tunnel maintain between UPF and AN node
- UE IP 地址分配以及管理(可选的授权) UE IP address allocation & management (including optional Authorization)
- DHCPv4 和 DHCPv6 功能(服务端和客户端) DHCPv4 (server and client) and DHCPv6 (server and client) functions
- ARP 请求或以太网 PDU基于本地缓存信息的 IPv6 邻居请求的响应功能。SMF 通过提供与请求中发送的IP地址相对应的MAC地址来响应ARP和/或IPv6邻居请求
- 选择和控制 UP 功能,包括控制 UPF 代理 ARP 或 IPv6 邻居发现,或所有 ARP / IPv6 邻居请求流量转发到 SMF,用于以太网 PDU 会话
- 配置 UPF 的流量导向,流量路由到正确的目的地 Configures traffic steering at UPF to route traffic to proper destination
- 终止策略控制功支持与外部DN的交互,以便通过外部DN传输PDU会话授权/认证的信令
- 合法拦截(用于SM事件和LI系统的接口) Lawful intercept (for SM events and interface to LI System)
- 付费数据收集以及支持付费接口 Charging data collection and support of charging interfaces
- 控制和协调 UPF 的收费数据收集 Control and coordination of charging data collection at UPF
- 终止 SM 部分的 NAS 消息 Termination of SM parts of NAS messages
- 下行链路通知 Downlink Data Notification
- AN 特定 SM 信息的发起者,通过 AMF N2 发送到 AN
- 决定会话的 SSC 模式 Determine SSC mode of a session
- 漫游功能 Roaming functionality
- 处理本地实施来应用 QoS SLA(VPLMN) Handle local enforcement to apply QoS SLAs (VPLMN)
- 计费数据收集和计费接口(VPLMN) Charging data collection and charging interface (VPLMN)
- 合法拦截(在SM事件的VPLMN和LI系统的接口)
- 支持与外部 DN 的交互,通过外部 DN 传输 PDU 会话授权/认证的信令
名词解释:
HR: Home Routed
NIDD:Non-IP Data Delivery
GPSI:Generic Public Subscription Identifier
GUAMI:Globally Unique AMF Identifie
5G-GUTI: 5G Globally Unique Temporary Identifier
SUCI:Subscription Concealed Identifier
SUPI: Subscription Permanent Identifie