Buffer Status Reporting(BSR)

news2024/9/22 5:31:09

 

 欢迎关注同名微信公众号“modem协议笔记”。

   以一个实网中的异常场景开始,大概流程是有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层参数如下

d9d9f0d420b64991a01b205a8eda164e.png

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。

2cdba836f76f44ab9a575cff209442a8.png

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

 

下面是38.321中BSR的内容。

9cbbaded93f348e594f49604ff5b4191.png

 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的分类)

d8318c0ce835491c97818589ab2dcba5.png

(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

ee5eca8145554abb853929cd58ab9972.png

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

257bf702063344af9acd193001157453.png    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

00301593fc2644e0acbd4549cb15534a.png

 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,对应如下。

43cad340e4cb4774912c33ee11f5321e.png

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

 

long BSR/long Truncated BSR MAC CE

1256bbd82f634f18a7491e0fbcb048d5.png

 从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范围是0~254(255 reserved),代表不同的bytes值。 Buffer size field 以LCG i升序排列(LCG 0~7) 。对于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

5af3442387e0485f9146cb3b5e36b955.png

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

c9ecc878872442cf9d1d0eaee7f92a7b.png

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

 

Padding BSR

16abeaa73964448fb5fd5f62162d1b5d.png

 对于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

092b77dc16554477a2471e387bd388b0.png

  当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内容。

 

其他规定

0406342fb36949e9bdf094816349d586.png

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

a2877ec90f4447f7a53f68b3642b0b1a.png

 当前至少一个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,意思就是UL grant不够发送BSR(LCP 过程其他篇再说);

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

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

55cb8de2b53840f7a60c29d83476809f.png

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

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

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

de9fed2680c74302a822305f7d91d737.png

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

最后各个timer的汇总如下

012264530aeb42f39575ca5d98ae58b6.png

上面主要是根据开篇的那个异常常景,走读一遍协议中BSR的具体内容,后面针对这个异常场景中涉及的其他流程再看下相关协议内容;本篇结束,感谢阅读。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/343235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter压测说明

Jmeter使用说明Jmeter下载安装修改编码UTF-8参数说明Get接口测试创建线程组添加HTTP请求添加结果树添加聚合报告启动POST请求添加HTTP信息头管理器设置参数图片上传mysql压测准备数据添加数据库连接jar配置jdbc添加jdbc requestJmeter下载安装 Jmeter官网下载 要求java 1.8以上…

MACD指标在外汇交易中的另类运用方法

外汇交易中怎么另辟蹊径的使用MACD指标 随着外汇市场的不断发展和变化,交易者们不断探索新的方法和技术指标,以提高自己的交易技巧和赢利能力。其中,MACD指标是广大交易者们喜欢使用的一种技术分析工具,它可以帮助交易者判断价格的…

SQL注入Getshell的奇思妙想(上)

前言 前段时间,hvv和找实习的师傅们也多了起来。而我也不例外,尝试投递了不少简历,结果是积累了大量的面试经验。笔者发现大量的hr面试官都喜欢从SQL注入开始询问,所以留心了一下关于SQL注入的问题的频率。结果非常amazing啊&…

传统企业数字化转型,到底难在哪里?

数字化转型过程中面临最大的挑战和问题是什么?这篇整理了企业在数字化转型过程中普遍面临的9大问题和挑战以及如何解决这些问题,希望能够对各位企业数字化转型有多启发和帮助。 01 企业数字化转型三大现状 在梳理企业数字化转型问题之前,我想…

C++数据结构 —— 二叉搜索树

目录 1.二叉搜索树的基本概念 1.1二叉搜索树的基本特征 2.二叉搜索树的实现 2.1数据的插入(迭代实现) 2.2数据的搜索(迭代实现) 2.3中序遍历(递归实现) 2.4数据的删除(迭代实现) 2.5数据的搜索(递归实现) 2.6数据的插入(递归实现) 2.7数据的删除(递归实现) 2.8类的完…

元宇宙开始告别以资本为主导的野蛮生长,新的竞争格局和态势将形成

欲要成为这样一场洗牌的胜利者,元宇宙的玩家需要真正站在商业的角度,而非资本市场的角度来看待元宇宙,来寻找元宇宙的正确的发展模式和方法。原因在于,在这样一场洗牌过程当中,仅仅只是对于以往以资本为主导的发展模式…

Web自动化测试——selenium篇(二)

文章目录一、浏览器相关操作二、键盘操作三、鼠标操作四、弹窗操作五、下拉框选择六、文件上传七、错误截图一、浏览器相关操作 浏览器窗口大小设置 driver.manage().window().maximize();//窗口最大化 driver.manage().window().minimize();//窗口最小化 driver.manage().wi…

【GD32F427开发板试用】01适配RTX4+调试组件Event Recorder

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:汪阳 感谢极术社区和兆易创新组织的开发板试用活动。收到开发板有一周多了,因为工作关系好久没有折腾MDK了,上手浪费的…

教你文本生成图片——stablediffusion

今天来点轻松的话题,带大家玩一个用文字生成图片的模型。相信大家如果关注AIGC领域,对文本生成图片,对Stablefiffusion、DEALL.E应该不陌生。今天给大家介绍的就是基于SD2 finetune出来的一个模型()这篇文章不会教大家…

ArcGIS中基于网格实现可视化

1 数据来源介绍 土地利用数据、高程数据、植被指数数据均来源于中国科学院资源环境科学与数据中心(https://www.resdc.cn/)。 2 数据预处理 我们从中国科学院资源环境科学与数据中心官网上下载下来的土地利用栅格数据是整型的,我们可以利用…

高低温真空磁场探针台T8-EM4的技术指标

锦正茂高低温真空磁场探针台探针台配备4个(可选6个或8个)拥有高精度位移的探针臂,同时配有高精度电子显微镜,便于微小样品的观察操作。探针可通过直流或者低频交流信号,用来测试芯片、晶圆片、封装器件等,广…

火眼审阅 | 基于NLP和OCR识别技术赋能合同审阅

合同作为确定权利义务的法律文件,贯穿企业内外部活动的所有环节,可见合同数据之于企业是非常重要的数据资产。 合同管理是企业营业中的重要部分,其中合同审核是企业法务的基本工作之一。而对于所有的法务人员一直存在一个问题:合…

Java读取mysql导入的文件时中文字段出现�??的乱码如何解决

今天在写程序时遇到了一个乱码问题,困扰了好久,事情是这样的, 在Mapper层编写了查询语句,然后服务处调用,结果控制器返回一堆乱码 然后查看数据源头处: 由重新更改解码的字符集,在数据库中是正…

算法总结c++

文章目录基本概念时间复杂度空间复杂度基本结构1. 数组前缀和差分数组快慢指针(索引)左右指针(索引)盛水容器三数之和最长回文子串2. 链表双指针删除链表的倒数第 n 个结点翻转链表递归将两个升序链表合并为一个新的 升序 链表链表翻转3. 散列表twoSum无…

Camtasia2023最新版本新功能及快捷键教程

使用Camtasia,您可以毫不费力地在计算机的显示器上录制专业的活动视频。除了录制视频外,Camtasia还允许您从外部源将高清视频导入到录制中。Camtasia的独特之处在于它可以创建包含可单击链接的交互式视频,以生成适用于教室或工作场所的动态视…

UDS诊断之DTC码构成

DTC(Diagnostic Trouble Code)表示诊断故障码(全局唯一),是故障类型的"身份ID";用于汽车故障时对故障部位及原因的排查。 格式如下: 其中,DTCHighByte、DTCMiddleByte这两个字节表示故障内码&…

nvm控制node版本

安装 nvm 1、下载 nvm 官网安装包: github 选择 nvm-setup.exe 下载 2、安装 1、选择 nvm 安装目录(可自定义) 2、选择 node 安装目录(如有安装过,可以选择以前安装目录,可 cdm 输入 where node 查看原nod…

嵌入式Qt 开发一个音乐播放器

上篇文章:RK3568源码编译与交叉编译环境搭建,进行了OK3568开发板软件开发环境搭建,通过编译RK3568的源码,可以得到Qt开发的交叉编译相关工具。 本篇,就来在搭建好的软件开发中,进行Qt软件的开发测试。由于…

package-lock.json,深度内容

前言 看完本文,你将从整体了解依赖版本锁定原理,package-lock.json 或 yarn.lock 的重要性。首先要从最近接连出现两起有关 npm 安装 package.json 中依赖包,由于依赖包版本更新 bug 造成项目出错问题说起。 事件一:新版本依赖包…

JavaScript 二叉树

文章目录前言一、何为 树1.根节点2.外&内部节点3.子树4.深度5.高度二、二叉树 & 二叉搜索树1.二叉搜索树插入值2.遍历二叉搜索树I.中序遍历II.先序遍历III.后序遍历3.查找节点4.移除节点总结前言 同前面说到的散列表结构, 树也是一种非顺序数据结构, 对于存储需要快速…