0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看看协议中是如何描述Buffer Status Reporting的?

冬至子 来源:modem协议笔记 作者:酒仁生 2023-07-17 17:02 次阅读

以一个实网中的异常场景开始,大概流程是有UL data要发送,UE触发BSR->no UL grant->SR->no UL grant->trigger RACH->RACH fail->RLF->RRC reestablishment:简单描述就是UE触发BSR,此时没有UL grant,之后触发SR,仍然没有 UL grant,之后触发RACH,RACH fail引起RLF,引起RRC reestablishment;这个异常场景在弱信号情况下比较常见,其中涉及的具体内容其实是比较多的,这篇就看下BSR的内容,BSR 的内容主要在38.321 5.4.5章节。

开始之前简单看下BSR和SR的区别:UE通过SR向gNB请求上行资源时,只指明了UE有上行数据需要发送,并没有指明需要发送的上行数据数量。而BSR的作用是将UE当前buffer中待发送的数据情况通知给gNB,gNB可根据BSR上报的UE buffer的数据量,给UE分配上行资源;换个角度看,UE发BSR时,是通过BSR MAC CE,既然能发BSR,肯定是有UL grant,足够发BSR,如果没有UL grant,UE要通过SR向gNB要UL grant,进而UE就要发送SR。接下来看看协议中是如何描述BSR的。

BSR相关的RRC层参数如下

图片

logicalChannelSR-Mask:在配置configured uplink grant of type1 or type2 时用于控制SR 的触发。True代表对应logical channel有配置SR masking。

logicalChannelSR-DelayTimerApplied:用于指示是否对logical channel 应用SR 传输的delay timer;设置为false的话,BSR-Config中就不会包含logicalChannelSR-DelayTimer。

logicalChannelSR-DelayTimer:单位是subframe数,Value sf20 代表20 subframes, sf40 代表40 subframes,以此类推;该timer的作用顾名思义,就是在run期间不能触发SR。

periodicBSR-Timer:单位是subframe数, Value sf1 代表1 subframes, sf5 代表5 subframes,以此类推。

retxBSR-Timer:单位是subframe数, Value sf10 代表10 subframes, sf20 代表20 subframes,以此类推。

logicalChannelGroup:logical channel group的ID, 代表logical channel 对应的LCG ID。

说到参数LCG ID,那就顺带看下LC 和LCG的关系。实网下根据业务的不同,UE可能建立很多RB,如果为每一个逻辑信道(LC)上报一个BSR,会带来大量的信令开销。为了减少这种开销,和LTE相同,NR引入了逻辑信道组(LCG)的概念,不同的是,NR将LCG个数由LTE的4个扩展到了8个,以满足NR系统更多样的业务场景。所以UE是基于LCG上报BSR,而不是为每个逻辑信道上报一个BSR。而逻辑信道的分组是gNB的算法,逻辑信道分组也是为了提供更好的BSR上报机制,一般会将有相似调度需求的逻辑信道放入同一LCG中。例如将相同QCI/priority的逻辑信道放入同一LCG。如下图logical channel 4/2 分别对应的是LCG 7/0。

图片

既然UE的LCG和逻辑信道的配置是由gNB控制的,那gNB就知道每个LCG包含哪些逻辑信道以及这些逻辑信道的优先级。虽然gNB无法知道一个单独的逻辑信道的缓存状态,但由于同一LCG中的逻辑信道有着类似的QoS/priority需求,所以基于LCG上报BSR也可以在一定程度上满足业务的QoS需求。

下面是38.321中BSR的内容。

图片

BSR是用于向serving gNB 提供 MAC entity中的 UL data volume信息的过程,之后gNB根据BSR 中的UL data volume及自身loading,向UE下发对应的UL grant,用于UE UL 传输。

与BSR相关的几个RRC层参数分别是periodicBSR-Timer;retxBSR-Timer;logicalChannelSR-DelayTimerApplied;logicalChannelSR-DelayTimer;logicalChannelSR-Mask;logicalChannelGroup。

每个logical channel 可以使用 logicalChannelGroup 分配到一个 LCG。LCG 的最大数量为八个。更具体的,MAC entity是根据 RLC和 PDCP中的data volume计算过程确定logical channel可用的 UL 数据量,用于BSR的上报。

BSR 触发场景(BSR的分类)

图片

(1)属于某个LCG的逻辑信道的有UL data要发送 ,并且该 UL data对应逻辑信道的优先级高于任何其他LCG有UL data要发送的逻辑信道的优先级或

当所有LCG 逻辑信道都没有UL data要发送时,某个LCG的逻辑信道有UL data要发送,在这种情况下触发的BSR叫做 regular BSR;

(2)为了避免UE发送了BSR却一直没有收到UL grant的情况,gNodeB为UE配置了一个retxBSR-Timer定时器,当retxBSR-Timer 超时并且某个LCG的至少一个逻辑信道有UL data要发送,在这种情况下触发的BSR也称为Regular BSR,目的是使得UE周期性地向gNB更新Buffer Status;

(3)考虑到当regular BSR、padding BSR的触发条件都不满足时,网络侧也能知道UE的buffer status,以便后续为UE分配适当UL grant,定义了在periodicBSR-Timer 超时,在这种情况下触发的BSR称为Periodic BSR。

(4)UL grant给多了,UL数据组包接收后,还有剩余bits没用完,就要在对应的资源上加padding(MAC需要用 0 来填充),那padding bits数大于等于BSR MAC CE 加上其subheader的大小时,触发的BSR叫做 padding BSR;

当多个逻辑信道同时触发Regular BSR时,每个逻辑通道各自触发一个独立的Regular BSR,最后UE根据LCG 确定具体的buffer上报BSR。接下来看下BSR MAC CE的结构。

BSR MAC CE

图片

如开头所述,为提高空口效率,BSR并不是为每个LC绑定一个BSR,而是为每个LCG绑定一个BSR,上报时以LCG为单位上报,如上图的LCG ID用于区分BSR。

图片

BSR MAC CE包含的类型分别是Short BSR/Long BSR/Short Truncated BSR/Long Truncated BSR,分别通过LCID 59~62进行区分。Pre-emptive BSR MAC CE用于IAB场景,不在本篇内容之内。

四种BSR MAC CE的发送与BSR的类型优先序,padding BSR 根据场景的不同可以上报上述四种BSR MAC CE;而Regular BSR和Periodic BSR 只能上报Short BSR/Long BSR MAC CE,具体内容后面再说。

short BSR/short Truncated BSR MAC CE

图片

short BSR和short Truncated BSR MAC CE的结构如上,分别由3 bits的LCG ID及5 bits的Buffer size组成,其中LCG ID对应的是BSR 上报的LCG id;

Buffer size代表PDCP和RLC的data volume 单位是bytes,其中RLC header和MAC subheader不在buffer size的计算范围内。

short BSR和short Truncated BSR MAC CE的Buffer size为5bits,对应0~31个value,分别代表不同的buffer size value,对应如下。

图片

例如上报的Buffer size index 为18 ,就代表buffer size 实际value在(2014,2806]bytes之间,之后网络侧根据实际loading,下发对应的UL grant即可。

long BSR/long Truncated BSR MAC CE

图片

从MAC CE的结构看LCGi 对应LCG0~LCG7;对于long BSR,当LCGi=1时,代表LCG i的Buffer size field 会上报,也就是BSR MAC CE中会包含其Buffer size field, 当LCGi=0时,代表LCG i 不会有Buffer size field上报,即BSR MAC CE中不会有其Buffer size field。对于Long Truncated BSR,当LCGi=1时,代表LCG i 有pending size要发送, 当LCGi=0时,代表LCG i 没有pending size要发送,其实功能和long BSR类似。

long BSR/long Truncated BSR的Buffer size对应8bits,其Buffer size index范围是0254(255 reserved),代表不同的bytes值。Buffer size field 以LCG i升序排列(LCG 07) 。对于long Truncated BSR,Buffer size的大小有限制,不能超过padding bits数。

由于NR可配置8个LCG,如果将8个LCG缓存数据的大小全部上报给gNB,即使一些LCG中没有缓存数据,也会造成资源浪费,因此在NR中设计了可变大小的BSR格式。结合上面的描述可以看出,short 和long BSR 的区别就是short BSR的大小是固定的,long BSR 大小可变;其中,Truncated BSR是在上行资源不足以上报 normal BSR时,向网络侧上报部分LCG的信息。

BSR 上报流程

Regulat BSR 和Periodic BSR

图片

对于Regular BSR,如果有logical channel 触发了BSR且有配置logicalChannelSR-DelayTimerApplied=true,那MAC entity要start/restart logicalChannelSR-DelayTimer;其他情况,不需要开启logicalChannelSR-DelayTimer,logicalChannelSR-DelayTimer有在running就要停止。

图片

对于Regular BSR和Periodic BSR,当多于一个LCG有UL data 要传输时,对于有UL data传输的所有LCGs要上报Long BSR;否则,只有一个LCG有UL data要传输, 就上报Short BSR。

Padding BSR

图片

对于Padding BSR,对应padding bits大于等于short BSR+subheader的size但是小于long BSR+subheader的size时,

1 恰巧当前不止一个LCG有UL data传输时

1.1如果当前padding bits等于Short BSR+subheader,就report 有UL data要传输的最高优先级LC 的short Truncated BSR;

1.2 当padding bits大于short BSR+subheader的size但是小于long BSR+subheader的size,就根据LCG 中LC的优先级降序的顺序上报Long Truncated BSR(如果出现优先级相同的情况,就根据LCGID升序的顺序上报)。

2 如果只有一个LCG有UL data传输时,就上报Short BSR。

padding bits大于等于long BSR+subheader的size时,就上报包含所有有UL data传输的LCG long BSR。

BSR cancel

图片

当UL grant 足以用于传输所有pending的data但不够额外容纳 BSR MAC CE 及其subheader时,可以取消所有触发的 BSR。当传输的MAC PDU包括long或short BSR MAC CE 时,应取消在 MAC PDU 组装之前触发的所有 BSR,因为此时的long或short BSR MAC CE对应的buffer status包含MAC PDU assembly之间触发的BSR内容。

其他规定

图片

当前至少一个BSR被触发且还没有取消时,如果当前的UL grant足够发送BSR MAC CE+subheader,就发送当前的生成功的BSR MAC CE,启动或重启 periodicBSR-Timer(所有生成的 BSR 都是long或 short Truncated BSR时 不需要开启periodicBSR-Timer),也要开启retxBSR-Timer。

图片

当前至少一个BSR被触发且还没有取消时,logicalChannelSR-DelayTimer没有run且触发了Regualer BSR:

1 当前没有UL grant进行传输;

2 对于configured ul grant的场景,在logicalChannelSR-Mask=false时触发了regular BSR(比如configured ul grant场景配置的UL grant 不够了,也要通过SR去要UL grant);

3 可用于新传输的 UL-SCH 资源不满足发送 经过LCP映射限制过程后的触发的BSR,意思就是触发BSR后得到的UL grant还是不够新传(LCP 过程其他篇再说);

上述情况就要触发SR,向网络侧要UL grant。

这里就是开篇 UE发送BSR后,没有收到UL grant 之后触发SR的理论依据。

图片

即使多个事件已触发 BSR,一个MAC PDU最多应只能包含一个 BSR MAC CE。

Regular BSR 和Periodic BSR 的优先级高于padding BSR,对于由retxBSR-Timer超时触发的BSR,MAC entity 认为触发BSR的LC 的优先级是最高的。即retxBSR-Timer超时引起的BSR的LC要优先处理。

MAC entity应在收到在任何 UL-SCH上传输新数据的UL grant后重新启动retxBSR-Timer。

图片

上面这段描述并没有特别强制的问题,就描述了下对应情况允许的做法,就列在这里做记录。

最后各个timer的汇总如下

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RRC
    RRC
    +关注

    关注

    0

    文章

    28

    浏览量

    11000
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112043
  • 触发器
    +关注

    关注

    14

    文章

    1681

    浏览量

    60406
  • PDU
    PDU
    +关注

    关注

    0

    文章

    91

    浏览量

    16822
  • LCP
    LCP
    +关注

    关注

    2

    文章

    61

    浏览量

    22703
收藏 人收藏

    评论

    相关推荐

    buffer写入数据

    我现在想向buffer写指令然后查出它的地址或者直接向指定的buffer写指令,我觉得功能最接近的是DAQmx Write以及它的property node,但是它的功能更像是往文件
    发表于 05-05 18:52

    raw interrupt status 和 maksed interrupt status

    GPIOIntStatus,描述说参数bMasked是:If bMasked is set as true, then the masked interrupt status is returned; otherwise
    发表于 11-24 10:06

    请问ADF5901"Auxiliary Buffer Gain"是什么意思?

    你好,我想问一下这个AUX BUFFER GAIN 是什么意思? 手册没有描述这3个控制字的含义。这个“AUX BUFFER GAIN”配置会影响什么?需要怎么配置, 谢谢!
    发表于 08-27 10:58

    labview怎么处理dll的回调函数输出值

    and the remaining time in [sec][in] callbackStatusFunction pointer reporting the status of the flash
    发表于 02-19 10:21

    LWIP第三讲移植文件讲解如何理解?

    ;StatusÐ_DMARxDesc_FL)>>ETH_DMARxDesc_FrameLengthShift)-4;//得到接收包帧长度(不包含4字节CRC) frame.buffer
    发表于 07-22 23:59

    RK3288的buffer指针读写程序实现

    _size的buffer,后来才发现图里这么多buffer_size在code其实都只是模拟一个循环buffer,读写指针的数值一直增大,这样他们俩理论上不会遇到,也就是没有圆形循环
    发表于 05-13 11:12

    求大佬分享R32_USB_STATUS寄存器的详细描述

    寄存器列表里面有R32_USB_STATUS寄存器和地址,但是没有详细的描述。还有不知道为什么32位寄存器只用了1byte空间,与其他寄存器重叠。CH32V103的库函数里也只有寄存器名称和地址,没有位级的描述
    发表于 05-18 06:05

    AN5512和STSW-ST25R-LIB协议描述有所不同与什么有关呢

    AN5512 和嵌入式库包 (STSW-ST25R-LIB) 协议描述有所不同。这似乎与加密传输有关。ST25FTM_SEND_WITH_ENCRYPTION 未在 STSW-ST25R-LIB
    发表于 12-16 06:30

    1-多交互协议本体的描述

    基于本体的共享与重用性以及谈判过程的动态性,提出谈判协议过程本体,将语义Web应用到自动谈判中,利用描述逻辑和本体编辑器Protégé 3.2.1对1-多交互协议本体进行形式化描述
    发表于 04-20 09:51 13次下载

    usb2代码 (the current status of

    usb2代码:This file describes the current status of the checked in HDL code.
    发表于 06-14 09:02 16次下载

    什么是buffer

    什么是buffer  英文缩写: buffer 中文译名: 缓冲,缓冲器 分  类: 电信设备 解  释: 在数据传输中,用来
    发表于 02-22 11:11 6066次阅读

    基于串行RapidIO的Buffer层设计

    基于串行RapidIO的Buffer层设计_任雪倩
    发表于 01-07 21:28 0次下载

    浅谈GPON系统的结构及关键技术

    Reporting DBA):另一种是ONU不需向OLT报告,OLT由自己的流量监测功能,实现自动动态的带宽分配,即非基于状态报告的动态带宽分配(NSR-DBA,Non Status Reporting DBA)。
    发表于 10-09 18:12 2.2w次阅读
    浅谈GPON系统的结构及关键技术

    Delta Reporting CFEngine日志服务

    delta_reporting.zip
    发表于 04-27 09:20 1次下载
    Delta <b class='flag-5'>Reporting</b> CFEngine日志服务

    BPF ring buffer解决的问题及背后的设计

    文章介绍了 BPF ring buffer 解决的问题及背后的设计,并给出了一些代码示例和内核 patch 链接,深度和广度兼备,是学习 ring buffer 的极佳参考。
    的头像 发表于 05-17 09:37 1808次阅读