技术问答:当UE处于CM-IDLE时,N4接口上的BAR如何控制下行链路数据包缓冲和数据通知?
当UE进入CM-IDLE时,其PDU会话不会消失。然而,先前用于下行链路转发的N3用户面路径可能已不再活跃。若此时从外部网络到达新数据,数据包仍可到达UPF,但无法像处于CM-CONNECTED时那样立即通过N3转发至gNB。因此,UPF必须决定是否应缓冲数据包、可保留多少数据包、可缓冲多久,以及何时应通知控制平面下行链路数据已到达。
在N4接口的PFCP规则框架内,BAR(缓冲动作规则)为此缓冲行为提供规则。然而,BAR本身不会独立决定是否应进行缓冲。缓冲动作由FAR中的Apply Action触发,而BAR则定义应如何执行该缓冲。此区别是理解FAR与BAR关系的基础。
BAR定义UPF如何缓冲数据包
当UPF接收到数据包时,会先使用PDR识别流量,再遵循该PDR所引用的FAR来决定下一步动作。若FAR要求正常转发,UPF会根据转发参数转发数据包。若FAR的Apply Action包含BUFF,数据包便不会立即送往目的地接口,而是进入缓冲流程。
此处BAR变得重要。FAR可引用BAR,告知UPF应如何缓冲受影响的数据包。此关系可总结如下:
PDR识别数据包 → FAR选择BUFF/NOCP → BAR定义缓冲行为。
常见的误解是将BUFF与BAR视为同一件事。事实并非如此。BUFF回答“此数据包现在是否应缓冲?”;BAR则回答“选定缓冲后,数据包应在何种条件下被缓冲?”仅查看FAR中的BUFF,而不检查相关BAR或UPF的本地缓冲配置,只能获得用户面行为的部分面貌。
NOCP也常与此场景相关。当UPF正在缓冲下行链路数据包时,NOCP可要求UPF通知控制平面下行链路数据已到达,以便SMF启动后续控制平面流程。因此,缓冲与通知是以两项协调任务的形式发生:用户面暂时保留数据包,同时将事件上报给控制平面。

最典型的BAR场景发生在UE进入CM-IDLE之后
当UE从CM-CONNECTED转换至CM-IDLE时,最容易理解BAR的角色。假设UE已完成注册与PDU会话建立。连接期间,N3用户面路径可用,UPF可将下行链路数据包直接转发至gNB。
经过一段非活动期后,接入侧可能释放连接,UE进入CM-IDLE。PDU会话仍存在,但先前激活的N3用户面转发路径已不再立即可用。外部服务器未必知晓此状态变更,因此新的下行链路IP数据包仍可能经由N6到达UPF。
这产生了关键问题:UPF已接收数据,但目前没有可用的N3路径将数据传递给UE。
在此阶段,SMF会通过N4更新用户面规则,使相关FAR从立即转发改为缓冲行为。在典型情况下,Apply Action中会启用BUFF和NOCP,而FORW不再作为当前的下行链路动作。当新的下行链路数据包到达时,UPF会根据适用的缓冲策略保留数据包,并向SMF上报下行链路数据已到达。
收到通知后,SMF可与AMF协调,启动让UE恢复可达所需的流程,包括适用时的寻呼。一旦UE回到可承载用户面流量的状态,且N3路径恢复,SMF会再次更新UPF规则,使下行链路处理从缓冲改回转发。缓冲的数据包随后可继续送往UE。
因此,BAR不只是静态的内存配置规则。其真正目的是协助用户面度过下行链路数据包已到达但立即转发尚不可行的暂时期间。
主要BAR参数定义缓冲的边界
缓冲无法无限期持续。若允许UPF为无法连接的UE保留无限制的下行链路数据,用户面内存可能被不必要地耗尽。因此,BAR为缓冲行为提供边界。视PFCP流程与UPF能力而定,这些参数可包含BAR ID、数据包数限制、缓冲持续时间及通知延迟参数。
BAR ID
BAR ID在PFCP会话内唯一标识缓冲规则,并允许相关FAR引用正确的BAR。在故障排查期间,仅看到Create BAR并不能证明该规则会影响正在分析的流量。也应检查对应的FAR,确认其实际引用哪个BAR ID。
建议缓冲数据包数
建议缓冲数据包数指出建议UPF为适用流量缓冲的数据包数量。一旦超过建议限制,额外数据包可能被丢弃。此参数控制缓冲容量边界,而非缓冲时间。
其存在与否也取决于UPF功能支持。若PFCP跟踪中看不到该字段,单凭这点并不证明缺少缓冲控制。分析时也应考量UPF是否支持相关能力,以及是否改为使用本地缓冲参数。
DL缓冲持续时间
DL缓冲持续时间定义在适用流程下,下行链路数据包可继续于UPF中缓冲的期间。这反映一项重要设计原则:缓冲是用户面传递恢复期间的暂时机制,而非永久数据包存储。
若UE长时间无法连接,缓冲流程需要明确的终止条件;否则用户面资源可能无限期被占用。
下行链路数据通知延迟
在支持的流程与能力组合中,下行链路数据通知延迟可控制UPF在接收第一个下行链路数据包后,通知控制平面之前等待的时间。此参数影响何时发送通知,而非数据包是否应被缓冲。
因此,其行为应在特定PFCP流程、网络实现与UPF能力的背景下诠释,而非仅从参数名称推断。

为何PFCP跟踪中有时会缺少完整的BAR参数?
这是分析BAR时最容易误解的重点之一。要缓冲的数据包数、缓冲持续时间及其他缓冲参数,并非总是必须通过N4动态提供。运营商或设备供应商也可在UPF中本地配置缓冲策略。
采用此实现时,SMF可能只需要动态变更FAR动作。例如,UE进入CM-IDLE后,SMF可使用PFCP会话修改将相关FAR更新为BUFF/NOCP。一旦UPF看到缓冲动作,便可套用本地配置的数据包数与持续时间限制。
因此,跟踪中出现下列观察结果并非自动异常:
FAR要求BUFF,但PFCP消息未包含工程师预期的完整BAR参数。
至少应额外检查两个问题:UPF是否使用本地配置的缓冲值,以及UPF是否支持相关BAR参数的动态提供。否则,实现差异可能被误认为SMF缺少规则。
本地配置也有实务优点。可减少部分N4信令,并适应不同UPF实现之间的能力差异。代价是部分缓冲行为不再完全显示于单一PFCP跟踪中,因此多供应商故障排查可能需要同时分析信令与检查UPF的本地配置。
当下行链路数据在CM-IDLE到达时,应如何理解PFCP流程?
将BAR放回完整流程而非视为孤立信息元素时,较容易理解。
当UE处于CM-CONNECTED时,N3路径可用,UPF根据正常FAR转发下行链路数据包。经过非活动期后,接入侧连接被释放。一旦SMF得知用户面连接状态已变更,便使用PFCP会话修改来更新相关UPF规则。
重点是PDU会话并未被删除。相反地,当前的下行链路用户面路径暂时无法进行立即传递。因此,相关FAR可通过启用BUFF及必要的控制平面通知动作,进入缓冲行为,而BAR或本地UPF配置则提供详细的缓冲条件。
当互联网服务器或应用程序随后发送新的下行链路数据时,数据包先到达UPF。UPF使用PDR识别流量,再套用相关联的FAR。由于当前动作不再是FORW,数据包被缓冲。同时,UPF通过PFCP报告机制向SMF上报下行链路数据已到达。
接着,SMF与AMF侧流程协调,让UE恢复可达,并重建用户面路径。一旦N3转发再次可用,N4上的FAR会再度更新为正常转发,UPF即可继续将下行链路流量传递给UE。
整体逻辑可总结为:
UE进入CM-IDLE → N3暂时不可用 → SMF更新FAR/BAR → 下行链路数据到达UPF → UPF缓冲并报告 → 控制平面恢复UE可达性 → N3恢复 → FAR回到转发。
因此,BAR控制的是数据已到达但传递路径尚未恢复期间的用户面行为。

BAR故障排查应遵循四个步骤:动作、缓冲、通知与恢复
BAR相关问题很少以明确的“BAR错误”呈现。更常见的症状是UE进入空闲状态后的第一笔下行链路流量行为异常。应用程序可能在激活中正常运作,但非活动期后下一则消息出现明显延迟。另一种情况是UE成功被寻呼并重新连接,但前几个下行链路数据包已丢失。
这些问题可分四阶段分析。
步骤1:确认FAR确实进入缓冲模式
从相关下行链路PDR引用的FAR开始,确认UE进入CM-IDLE后发生了预期的PFCP会话修改。检查Apply Action是否从正常FORW行为变更为该场景预期的BUFF及通知动作。
若FAR仍尝试将数据包转发至已不可用的用户面路径,则问题主要不在BAR。
步骤2:判断UPF正在套用哪些缓冲规则
检查FAR引用的BAR ID,再检视对应的Create BAR或Update BAR参数。若PFCP跟踪未包含完整缓冲参数,请继续检查UPF的本地缓冲配置与支持能力。
若数据包数限制太小,部分最初的下行链路数据包可能在UE恢复可达之前就被丢弃。若观察到的缓冲行为与预期差异过大,也应验证BAR关联本身。
步骤3:确认UPF已上报下行链路数据到达
仅缓冲数据包并不会恢复与UE的通信。若控制平面不知道新的下行链路数据已到达,便不会启动后续的寻呼或用户面恢复流程。因此,应在跟踪中检查适当的PFCP会话报告及SMF的正确处理。
若数据包已在UPF中缓冲,但后续没有控制平面流程,故障排查应从BAR参数转向UPF至SMF的报告路径及后续SMF流程。
步骤4:确认用户面恢复后转发已恢复
当UE再次可达后,确认SMF正确更新N4规则,使下行链路FAR从缓冲改为正常转发,并恢复必要的N3转发参数。
若寻呼成功且UE已返回,但FAR仍停留在BUFF,系统可能进入UE可达但数据包仍留在UPF的状态。因此,BAR故障排查应持续到用户面转发路径完全恢复为止。
BAR的核心价值
在PFCP规则框架内,BAR并不像PDR和FAR那样参与每个正常转发的数据包。其重要性在一个特定但关键的场景中最为明显:会话仍存在,但当前的用户面路径无法立即传递新到达的下行链路数据。
FAR将数据包处理动作从FORW改为BUFF,BAR定义缓冲边界,UPF暂时保留数据包并上报其到达,而SMF与AMF等控制平面功能则协调UE可达性的恢复。这些机制共同衔接了从暂时传递不可用到恢复活动用户面路径的过渡。
因此,BAR不应只被理解为“Buffering Action Rule = 数据包缓冲规则”。更有用的诠释是:BAR告知UPF如何管理已到达但在用户面传递路径暂时不可用期间的下行链路数据包。一旦将BAR与CM-IDLE、FAR BUFF/NOCP、PFCP会话报告及后续寻呼与用户面恢复流程一并检视,其在N4接口上的角色便清晰许多。
常见问题
FAR中的BAR与BUFF有何差异?
BUFF是FAR中的Apply Action,表示相符数据包应被缓冲而非立即转发。BAR则定义该缓冲应如何执行,例如数据包数限制、缓冲持续时间或其他适用条件。简言之,FAR决定需要缓冲,BAR则定义缓冲如何执行。
BAR可以独立于FAR运作吗?
BAR不应被视为独立的数据包匹配规则。数据包先由PDR匹配,PDR引用相关FAR。当该FAR要求缓冲并引用适用的BAR时,BAR参数才会用来控制这些数据包的缓冲方式。
当UE进入CM-IDLE时,为何不直接丢弃下行链路数据包?
CM-IDLE并不代表PDU会话已删除。外部应用程序可能在用户面传递路径仅暂时不可用期间继续发送数据。短期缓冲可在控制平面恢复UE可达性的同时保留部分下行链路流量,有助于降低应用程序连续性中断。
缺少建议缓冲数据包数是否代表BAR配置错误?
不一定。此参数是否出现取决于PFCP流程、UPF能力与实现方式。数据包数限制及其他缓冲行为也可在UPF中本地配置,因此应检查能力支持、BAR关联及设备端缓冲配置。
为何UPF已缓冲下行链路数据包,但UE仍无法接收数据?
缓冲只是流程的一部分。UPF还必须向SMF上报下行链路数据到达,控制平面必须启动恢复UE可达性所需的流程,SMF必须在用户面路径再次可用后更新FAR与N3转发参数。任一阶段失败都可能让数据包留在缓冲中或最终被丢弃。