来自知识星球

N4报告流程

23502规范5GC信令解读之N4报告流程
2021-05-11
前言:2
一 规范中的N4报告流程简介2
1.1 本期文章在规范中的位置2
1.2 相关的重要知识点和FAQ 3
1.2.1本流程相关的规范主要有哪些?3
1.2.2 什么是N4报告流程?做什么用的?
1.2.3 哪些事件需要UPF通过N4报告流程上报SMF?或者说该流程的触发条件是什么?
1.2.4 是不是只要上述事件发生,UPF就要触发本流程报告UPF?5
1.2.5 Reporting Triggers参数的构成是怎样的?6
1.3 规范中的原版流程简介7
二 N4报告流程实战8
2.1 使用量的报告
2.2 业务流量检测的报告10
2.3 空闲态收到下行数据的报告12
规范,尽量用大白话、结合具体实例、生活化场景来介绍。尽可能降低新手的学习门槛,也节省老通信人学习信令、
规范的时间(毕竟5G初期,大家都很忙。即便有经验、聪明,也没时间去啃规范啊)。
所有的5GC信令流程都在23502的第4章:System Procedures里。
一 规范中的N4报告流程简介
1.1 本期文章在规范中的位置
【注:完整的23502导图下载地址:http://51xuetongxin.com/23502.svg 】
【我们不生产规范,我们只是规范的搬运工】
1.2 相关的重要知识点和FAQ
1.2.1本流程相关的规范主要有哪些?
本流程涉及的主要规范包括:23502(信令流程)和29244(PFCP协议)。
1.2.2 什么是N4报告流程?做什么用的?
N4报告流程用于UPF向SMF报告和某个PDU会话相关的事件。原文是:【This procedure is used by the UPF to
report events related to an N4 session for an individual PDU Session. 】敲重点:N4报告是和UE的某个PDU会话有关
的,而不是针对UPF网元级系统参数或全局类的报告,并不是用于运维目的的。而是和业务有关、和用户有关。例
如:UPF不会通过这个来上报自己的告警、KPI、日志等。那是网管的事,走专门的OAM的接口和网管专用网络上报
或被动采集。
1.2.3 哪些事件需要UPF通过N4报告流程上报SMF?或者说该流程的触发条件是什么?
23502中明确提到,当UPF检测到以下事件发生,则有可能需要走N4报告流程,上报SMF。主要包括以下9类事件:
1)使用量报告(Usage report):UPF需要向SMF报告用户的使用量,用于性能管理、策略控制、计费等目的。
2)检测到某个应用开始产生流量(Start of traffic detection):如果SMF要求针对某个业务(例如某个App)做流量产
生的检测,并且UPF根据PDR规则检测到了这个业务流量的产生,那么UPF需要向SMF报告。并且上报关联的PDR规
则ID。
3)检测到某个应用的流量停止(Stop of traffic detection):如果SMF要求针对某个业务(例如某个App)做流量停止
的检测,并且UPF根据PDR规则检测到了这个业务流量的停止,那么UPF需要向SMF报告。并且上报关联的PDR规则
4)当用户面连接去激活场景下,收到了第1个下行数据(Detection of 1st downlink data for PDU Session with UP
Connection deactivated.):这个说了这么多,其实是指UE在CM-IDLE态下,UPF侧的N3隧道已经释放,不知道怎么
转发下行数据。此时如果有下行数据到达(只要有1个下行数据到达),UPF需要给SMF发N4报告,作为下行数据通
知(downlink data notification)。同时UPF可根据BAR(Buffer Action Rule:缓存规则)的要求对收到的下行数据进
行缓存。
5)检测到PDU会话在一段时间内不活跃(Detection of PDU Session Inactivity for a specified period.):SMF可以在
N4会话建立或者N4会话修改流程中,给UPF下发一个PDU会话的Inactive Timer(不活跃计时器),如果该计时器超
时,并且该PDU会话没有流量产生,那UPF需要通过N4报告流程通知SMF。
6)上行、下行或者往返报文延迟的测量报告(The UL, DL or round trip packet delay measurement report.):这个主
要是针对URLLC的特定Qos流的Qos监控目的。UPF需要计算该Qos流的上行、下行或者往返报文延迟。当UPF发现实
际值超过了SMF要求的报告门限值、或者报告周期到了、或者PDU会话释放了,UPF需要将计算的结果上报SMF。当
SMF收到报告后,会通知PCF或者AF。PCF可以据此调整Qos策略,AF收到后也可以做一些应用层面的调整(例如
TCP滑动窗口调整等)。
7)端口管理信息容器可用时(Port Management Information Container available.):用于TSN(Time-Sensitive
Networking:时间敏感网络)网络的特殊场景。目前还没有商用,比较冷门。可以暂时先不关注。
8)丢弃下行数据检测(Discard Downlink Traffic detection.):当UPF检测到某个PDR对应的业务流量下行方向出现
丢包、并且SMF要求上报时,则UPF应向SMF报告,并报告关联的PDR ID。
9)缓存下行数据检测(Buffered Downlink Traffic detection):当UPF检测到某个PDR对应的业务流量下行方向被缓
存到内存中、并且SMF要求上报时,则UPF应向SMF报告,并报告关联的PDR ID。
1.2.4 是不是只要上述事件发生,UPF就要触发本流程报告UPF?
不是的。除了事件必须发生,还要看SMF是否要求UPF(没让你报就别报)上报。UPF要检查在N4会话建立或N4会话
修改流程中,SMF是否下发了这个Reporting Triggers这个参数。这个Reporting Triggers包含在URR(Usage
Reporting Rule:使用量报告规则)中,可通过PFCP Session Establish Request消息的Create URR参数中下发、也
可通过PFCP Session Modification Request消息的Update URR参数来下发。
1.2.5 Reporting Triggers参数的构成是怎样的?
Reporting Triggers参数在29244的8.2.19中定义。如下:

它的构成如下:首先看字节5的几个bit位(从右往左依次是bit1到8):
- Bit1:PERIO(Periodic Reporting) ,置1表示要做周期性报告;
- Bit2:VOLTH (Volume Threshold) ,置1表示流量门限值到达时要发报告;
- Bit3:TIMTH(Time Threshold),置1表示时间门限值到达时要发报告;
- Bit4:QUHTI (Quota Holding Time),置1表示当QHT超时(配额的保持时间)且还没收到用户面数据时要发送报
- Bit5:START (Start of Traffic) ,置1表示当检测到某个特定App流量的开始,要发报告;
- Bit6:STOPT (Stop of Traffic) ,置1表示当检测到某个特定App流量的停止,要发报告;
- Bit7:DROTH (Dropped DL Traffic Threshold) ,置1表示当下行数据丢包到达一个门限值要发报告;
- Bit8:LIUSA (Linked Usage Reporting) ,置1表示请求做关联的使用量报告(也就是一个URR关联到另一个URR,
可能是家庭套餐两大一小这种场景。)
再看字节6的几个bit位(从右往左依次是bit1到8):
- Bit1:VOLQU (Volume Quota) ,置1表示当流量配额耗尽时要报告;
- Bit2:TIMQU (Time Quota) ,置1表示当时间配额耗尽时要报告;
- Bit3:ENVCL (Envelope Closure),置1表示当信封关闭时要发报告;
- Bit4:MACAR (MAC Addresses Reporting) ,置1表示在检测UE发起的上行报文的源MAC地址时要上报;
- Bit5:EVETH (Event Threshold) ,置1表示当事件的门限值到达,要发报告;(注:有些是业务是按次也就是一次成
功的事件,比如彩信)
- Bit6:EVEQU (Event Quota) ,置1表示当事件的配额耗尽,要发报告;
- Bit7:IPMJL (IP Multicast Join/Leave) ,置1表示当加入或离开一个IP组播组要发报告;
- Bit8:QUVTI (Quota Validity Time) ,置1表示配额的有效时间超时,要发报告请求重新下发配额。
再看字节7的几个bit位,它只有一个bit位1,其余都是留白的:
- Bit1:REEMR (REport the End Marker Reception) ,置1表示当UPF收到End Marker的报文时要报告。
1.3 规范中的原版流程简介
规范中的N4报告流程在23502的4.4.1.2定义,如下图:

第1步:UPF检测到用户面的事件产生,同时比对SMF所下发的Reporting Trigger(1.2.5节)是否条件满足,如果满
足,则向SMF发送报告。
第2步:UPF发送PFCP Session Report Request消息给SMF,并携带使用量报告。
第3步:SMF保存使用量报告,并返回PFCP Session Report Response给UPF。
后续,SMF和其他网元的后续交互。例如通知PCF采取相应的策略调整。
二 N4报告流程实战
本章以三种典型和常见的N4报告场景为例,加深对现网的理解。
【本场景举例纯属虚构,如有雷同,纯属巧合。】
2.1 使用量的报告
场景假设:SMF已经下发Reporting Trigger,要求UPF发送使用量报告。

第1步:UPF给SMF发N4会话报告,消息是:PFCP Session Report Request,主要参数有:{关联的URR ID、Report
Type:USAR(使用量报告)、SEID、
Usage Report:【Volume Measurement(上行流量、下行流量、总流量)、Usage Report Trigger:Volume
Threshold、第一个包到达的时间戳、最后一个包的时间戳、报告的起始时间等】}。其中Report Trigger的取值是
Volume Threshold表示是因为使用量到达门限值而触发的报告。
第2步:SMF回PFCP Session Report Response。
以下是一个使用量报告的实际报文举例,供参考。
Packet Forwarding Control Protocol
Flags: 0x21, SEID (S)
Message Type: PFCP Session Report Request (56)
Length: 104
SEID: 0x00000000aaabbbcc
Sequence Number: 65536
Spare: 0
Report Type :
IE Type: Report Type (39)
IE Length: 1
Flags: 0x02, USAR (Usage Report)
Usage Report (Session Report Request) : [Grouped IE]
IE Type: Usage Report (Session Report Request) (80)
IE Length: 83
Usage Report Trigger :
IE Type: Usage Report Trigger (63)
IE Length: 2
0... .... = IMMER (Immediate Report): False
.0.. .... = DROTH (Dropped DL Traffic Threshold): False
..0. .... = STOPT (Stop of Traffic): False
...0 .... = START (Start of Traffic): False
.... 0... = QUHTI (Quota Holding Time): False
.... .0.. = TIMTH (Time Threshold): False
.... ..1. = VOLTH (Volume Threshold): True
.... ...0 = PERIO (Periodic Reporting): False
0... .... = EVETH (Event Threshold): False
.0.. .... = MACAR (MAC Addresses Reporting): False
..0. .... = ENVCL (Envelope Closure): False
...0 .... = MONIT (Monitoring Time): False
.... 0... = TERMR (Termination Report): False
.... .0.. = LIUSA (Linked Usage Reporting): False
.... ..0. = TIMQU (Time Quota): False
.... ...0 = VOLQU (Volume Quota): False
Volume Measurement :
IE Type: Volume Measurement (66)
IE Length: 25
Flags: 0x07, DLVOL, ULVOL, TOVOL
0000 0... = Spare: 0
.... .1.. = DLVOL: True
.... ..1. = ULVOL: True
.... ...1 = TOVOL: True
Total Volume: 10000
Uplink Volume: 3000
Downlink Volume: 7000
Time of First Packet : May 31, 2020 09:09:27.000000000 UTC
Time of Last Packet : May 31, 2020 09:09:27.000000000 UTC
Start Time : May 31, 2020 09:09:18.000000000 UTC
End Time : May 31, 2020 09:09:27.000000000 UTC
URR ID : Dynamic by CP 1
2.2 业务流量检测的报告
假设SMF下发Reporting Trigger,要求UPF针对APP100的流量进行报告。

第1步:UPF给SMF发N4会话报告,消息是:PFCP Session Report Request,主要参数有:{关联的URR ID、Report
Type:USAR(使用量报告)、SEID、
Usage Report:【Usage Report Trigger:Start Of Traffic、第一个包/最后一个包的时间戳、Application-ID:100】}。
其中Report Trigger的取值是Start Of Traffic表示是因为检测到了App100的流程产生而触发的报告。App-ID 100会和
UPF中的业务检测规则对应,最终会关联到某个特定的App,例如微信等。
第2步:SMF回PFCP Session Report Response。
以下是一个业务流量检测报告的实际报文举例,供参考。
Packet Forwarding Control Protocol
Flags: 0x21, SEID (S)
Message Type: PFCP Session Report Request (56)
Length: 76
SEID: 0x000000000aaabbcc
Sequence Number: 65536
Spare: 0
Report Type :
IE Type: Report Type (39)
IE Length: 1
Flags: 0x02, USAR (Usage Report)
Usage Report (Session Report Request) : [Grouped IE]
IE Type: Usage Report (Session Report Request) (80)
IE Length: 55
Usage Report Trigger :
IE Type: Usage Report Trigger (63)
IE Length: 2
0... .... = IMMER (Immediate Report): False
.0.. .... = DROTH (Dropped DL Traffic Threshold): False
..1. .... = STOPT (Stop of Traffic): False
...0 .... = START (Start of Traffic): True
.... 0... = QUHTI (Quota Holding Time): False
.... .0.. = TIMTH (Time Threshold): False
.... ..0. = VOLTH (Volume Threshold): False
.... ...0 = PERIO (Periodic Reporting): False
0... .... = EVETH (Event Threshold): False
.0.. .... = MACAR (MAC Addresses Reporting): False
..0. .... = ENVCL (Envelope Closure): False
...0 .... = MONIT (Monitoring Time): False
.... 0... = TERMR (Termination Report): False
.... .0.. = LIUSA (Linked Usage Reporting): False
.... ..0. = TIMQU (Time Quota): False
.... ...0 = VOLQU (Volume Quota): False
Application Detection Information : [Grouped IE]
IE Type: Application Detection Information (68)
IE Length: 13
Application ID : app-id100
IE Type: Application ID (24)
IE Length: 9
Application Identifier: app-id100
Time of First Packet : Jul 20, 2020 16:57:00.000000000 UTC
Time of Last Packet : Jul 20, 2020 16:57:24.000000000 UTC
URR ID : Dynamic by CP 1
2.3 空闲态收到下行数据的报告
假设SMF已经下发空闲态数据到达报告规则给UPF。

第1步:从Internet有下行用户数据到达UPF,但因为UE在CM-IDLE即空闲态,下行N3隧道已经拆除了。UPF开始缓存
下行数据,并给SMF发下行数据到达通知。
第2步:UPF给SMF发N4会话报告,消息是:PFCP Session Report Request,主要参数有:【Report Type:DLDR
(下行数据报告)、SEID、Downlink Data Report:QFI、关联的PDR ID】。其中Report Type:DLDR表示是因为收
到了下行数据到达而触发的报告。该消息中还包含了下行数据所关联的QFI和PDR-ID信息。
第3步:SMF回PFCP Session Report Response。
以下是一个空闲态数据到达报告的实际报文举例,供参考。
Packet Forwarding Control Protocol
Flags: 0x21, SEID (S)
Message Type: PFCP Session Report Request (56)
Length: 33
SEID: 0x000000000aaabbcc
Sequence Number: 0
Spare: 0
Report Type :
IE Type: Report Type (39)
IE Length: 1
Flags: 0x01, DLDR (Downlink Data Report)
Downlink Data Report : [Grouped IE]
IE Type: Downlink Data Report (83)
IE Length: 12
Downlink Data Service Information :
IE Type: Downlink Data Service Information (45)
IE Length: 2
Flags: 0x02, QFII(QoS Flow Identifier)
00.. .... = Spare: 0
.000 0101 = QFI: 0x05
PDR ID : 5
【全文完】