Buffer Status Reporting(BSR)
欢迎关注同名微信公众号“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层参数如下
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范围是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
对于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,意思就是UL grant不够发送BSR(LCP 过程其他篇再说);
上述情况就要触发SR,向网络侧要UL grant。
这里就是开篇 UE发送BSR后,没有收到UL grant 之后触发SR的理论依据。
即使多个事件已触发 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。
上面这段描述并没有特别强制的问题,就描述了下对应情况允许的做法,就列在这里做个记录。
最后各个timer的汇总如下
上面主要是根据开篇的那个异常常景,走读一遍协议中BSR的具体内容,后面针对这个异常场景中涉及的其他流程再看下相关协议内容;本篇结束,感谢阅读。
相关文章:
Buffer Status Reporting(BSR)
欢迎关注同名微信公众号“modem协议笔记”。 以一个实网中的异常场景开始,大概流程是有UL data要发送,UE触发BSR->no UL grant->SR->no UL grant->trigger RACH->RACH fail->RLF->RRC reestablishment:简单描述就是UE触…...
代码随想录LeetCode | 单调栈问题
前沿:撰写博客的目的是为了再刷时回顾和进一步完善,其次才是以教为学,所以如果有些博客写的较简陋,是为了保持进度不得已而为之,还请大家多多见谅。 预:看到题目后的思路和实现的代码。 见:参考…...
C++之可调用对象、bind绑定器和function包装器
可调用对象在C中,可以像函数一样调用的有:普通函数、类的静态成员函数、仿函数、lambda函数、类的非静态成员函数、可被转换为函数的类的对象,统称可调用对象或函数对象。可调用对象有类型,可以用指针存储它们的地址,可…...
MongoDB--》文档查询的详细具体操作
目录 统计查询 分页列表查询 排序查询 正则的复杂条件查询 比较查询 包含查询 条件连接查询 统计查询 统计查询使用count()方法,其语法格式如下: db.collection.count(query,options) ParameterTypeDescriptionquerydocument查询选择条件optio…...
网络协议(六):网络层
网络协议系列文章 网络协议(一):基本概念、计算机之间的连接方式 网络协议(二):MAC地址、IP地址、子网掩码、子网和超网 网络协议(三):路由器原理及数据包传输过程 网络协议(四):网络分类、ISP、上网方式、公网私网、NAT 网络…...
热启动预示生态起航的Smart Finance,与深度赋能的SMART通证
2023年初加密市场的回暖,意味着各个赛道都将在新的一年里走向新的叙事。最近,我们看到GameFi赛道也在市场回暖的背景下,逐渐走出阴霾。从融资数据上看,1月获得融资的GameFi项目共12个,融资突破8000万美元,1…...
提分必练,中创教育PMP全真模拟题分享
湖南中创教育每日五题分享来啦,“日日行,不怕千万里;常常做,不怕千万事。”,每日五题我们练起来! 1、在系统测试期间,按已识别原因的类型或类别记录了失败测试的数量。项目经理首先需要从最大故…...
PID控制算法基础介绍
PID控制的概念 生活中的一些小电器,比如恒温热水器、平衡车,无人机的飞行姿态和飞行速度控制,自动驾驶等等,都有应用到 PID——PID 控制在自动控制原理中是一套比较经典的算法。 为什么需要 PID 控制器呢? 你一定用…...
Ajax 学习笔记
一、Ajax1.1 什么是AjaxAJAX Asynchronous JavaScript and XML(异步的JavaScript和XML)。Ajax是一种在无需加载整个网页的情况下,能够更新部分网页的技术,它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术…...
力扣解法汇总1234. 替换子串得到平衡字符串
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 有一个只含有 Q, W, E, R 四种字符,且长度为 n 的字符串。 假如在该…...
C++关键字之const、inline、static
C 关键字总结 1.const const是 constant 的缩写,本意是不变的、不易改变的意思。在C中用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数使用如下: //修饰普通类型变量 const int a 7; int ba;…...
【成为架构师课程系列】怎样进行概念架构(Conceptual Architecture)?
目录 前言 什么是概念架构 概念架构阶段的3个步骤 初步设计 高层分割 分层式概念服务架构 Layer:逻辑层 Tier: 物理层 按通用性分层 技术堆叠 考虑非功能需求 【禅与计算机程序设计艺术:更多阅读】 前言 胜兵先胜而后求战,败兵先站而后求胜。…...
PostgreSQL的下载安装教程(macOS、Windows)
postgresql是GIS服务端几乎不可避免要打交道的数据库。因为mysql的空间扩展真是不尽人意。所以想要学会GIS服务端知识,postgresql(下文简称pg)你是必须要会的。 首先要知道,pg是一个空间数据库,和普通数据库不同的是pg支持空间数据的存储与操作。这里所谓的空间数据一般指…...
98年的确实卷,公司新来的卷王,我们这帮老油条真干不过.....
都说00后躺平了,但是有一说一,该卷的还是卷。这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …...
软件架构知识2-系统复杂度
架构设计的真正目的:是为了解决软件系统复杂度带来的问题,一个解决方案。 系统复杂度,如何入手: 1、通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计。 2、架构设计并不是要…...
JavaSE学习day4_02 数组(超级重点)
3.数组 3.1什么是数组 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。 3.2数组定义格式 3.2.1第一种(常用) 数据类型[] 数组名 示例: int[] arr; double[] arr; char[] arr; 3.2.2第二种(在…...
Theano教程:Python的内存管理
在写大型程序时候的一大挑战是如何保证最少的内存使用率。但是在Python中的内存管理是比较简单的。Python显示分配内存,使用引用计数系统管理对象,当指向某一个对象的引用数变为 0 的时候,该对象所占的内存就会被释放。理论上听起来很不错&am…...
Linux | Liunx安装Tomcat(Ubuntu版)
目录 一、下载并上传Tomcat压缩包到Ubuntu 1.1 下载并解压 1.2 执行 startup.sh 文件 二、验证Tomcat启动是否成功 2.1 查看启动日志 2.2 查看启动进程 三、Windows访问 Tomcat 服务 四、停止 Tomcat 服务 Tomcat是一款Web服务器,开发Web项目基本上都会用到…...
缓冲区浅析
缓冲区 程序运行输入数据时,从键盘的输入先存储到缓冲区,只有当缓冲区满或者输入回车时程序才会真正地从缓冲区读入数据 int main() {int a, b;cin >> a >> b;return 0; }in: 1 2\n 例如这里输入空格时程序没有输出,而是将空格…...
Day888.MySQL是怎么保证主备一致的 -MySQL实战
MySQL是怎么保证主备一致的 Hi,我是阿昌,今天学习记录的是关于MySQL是怎么保证主备一致的内容。 MySQL 能够成为现下最流行的开源数据库,binlog 功不可没。 在最开始,MySQL 是以容易学习和方便的高可用架构,被开发人…...
互联网舆情监测系统的发展阶段,TOOM互联网舆情监测系统有哪些?
互联网舆情监测系统是一种利用计算机技术对互联网上的大量信息进行实时监测、分析和评估的工具,旨在了解公众对某一事件、话题或品牌等的态度、情感倾向和影响力等。通过对社交媒体、论坛、新闻媒体等多个渠道的数据采集和处理,系统能够实现舆情事件的追…...
GIT命令操作大全
文章目录一、前言二、工作模块2.1 Workspace:工作区2.2 Index / Stage:暂存区2.3 Repository:本地仓库2.4Remote:远程仓库三、GIT基本配置四、GIT项目代码管理4.1 初始化git仓库4.2 提交到暂存区(stage)4.3 将暂存区的文件恢复到工…...
突破传统开发模式,亚马逊云科技助力中科院加速推动合成生物学
当数字技术成为整个社会运行的底座,生物科学也能借力云计算从诸多繁琐重复的工作中解放出来,专注于生物设计与创新。来看看亚马逊云科技如何与TIBCAS合作,推动合成生物学的发展。 明确核心需求,选择合作伙伴 TIBCAS选择与亚马逊…...
分享开放通达信l2接口的过程,开发之后怎么使用?
随着互联网的不断进步,信息技术的不断发展,通达信l2接口技术逐步成熟。那么,这些开放通达信l2接口开发的过程是怎么样的呢?期间又会遇到什么问题,开放之后又会怎么使用呢?这篇文章带你深入了解。 通达信l2接口不像一…...
33、基于51单片机老人防跌倒蜂鸣器报警系统加速度检测
背景技术 老年人出门由于身体不灵活、视力较差,容易发生跌倒,现用的老年人跌倒报警装置是通过无线对讲系统研发的,它外观精美,自动化程度高,有很强的专业性,但是,设计者忽略了一个问题…...
【项目】基于SpringBoot+Freemarker+Mybatis+MySQL+LayUI实现CRM智能办公系统
这里写目录标题CRM基本概念CRM分类模块功能描述项目代码application-dev.yml部分页面代码CRM基本概念 圈内存在这么一句话:“世上本来没有 CRM,大家的生意越来越难做了,才有了 CRM。” 在同质化竞争时代,顾客资产尤为重要&#x…...
手写识别字体的步骤是什么?怎么识别图片中的文字?
手写识别字体的步骤是什么?怎么识别图片中的文字? 1. 打开信风工具网,点击拍照按钮,选择拍图识字模式,对准需要识别的文件进行拍摄。在线工具地址: https://ocr.bytedance.zj.cn/image/ImageT…...
Mysql 存储过程
什么是存储过程? 存储过程是事先经过编译并存储在数据库的一段sql语句的集合 如何创建一个存储过程? create procedure 存储过程名称([参数列表]) beginsql语句; end#例 create procedure p1() beginselect * from t_goods;select * from t_user; end如…...
【LeetCode】每日一题(3)
目录 题目:1234. 替换子串得到平衡字符串 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:1234. 替换子串得到平衡…...
websocket学习
1.什么是websocket 1)首先websocket和http一样,是一种网络通信协议,来自HTML5的特性; 2)他可以使客户端和服务端进行双工通信,简单来说,就是双向通信:比如我们熟悉的http协议&…...
公司制作网站需要什么知识/线上电商怎么做
我们知道service命令是用于管理Linux系统中的各种服务的命令。其实service是位于系统中/usr/sbin/service的一个可执行的脚本,其内容如下: #!/bin/sh ########################################################################### # /usr/bin/service …...
佛山高明建网站/成都黑帽seo
http://blog.csdn.net/qq_21792169/article/details/51020005 转载别人的,但是这篇文章写得确实太好了,所以想分享出来,可是原创文章地址找不到了 ,很可惜。图像缩放算法摘要:首先给出一个基本的图像缩放算法,然后一步…...
企业网站设计意义/我想做app推广代理
针对URL,使用名词而非动词 REST面向数据模型的结果是,每个URL都可以被识别为事物。 这意味着,对于由API客户端的开发人员读取和编写的“知名URL”和“查询URL”,应该由名词组成,名词是用于指定事物的自然语言。 众所周…...
wordpress新闻动态插件/如何做好网络营销?
首先我需要这样一个界面 这个界面是在使用AudioManager.adjustStreamVolume(int streamType, int direction, int flags)显示出来的,记住flags这里传 AudioManager.FLAG_SHOW_UI才会显示 不然只是逻辑上调整了某个流的声音,用户他看不到界面不知道成功与…...
有哪些建设网站公司/seo搜索排名优化公司
家里宽带安装完成后,总感觉网速比自己安装的网速要慢,这该怎么办呢?今天小哥哥就来教大家三个宽带测速的方法,自己就能测试网速啦!(一般我们的安装师傅在安装完宽带之后,会现场测试网速,您也可以…...
网站建设程序都有哪些/重庆seo培训
上一篇是使用Material Design 创建App翻译系列—-開始学习篇,进入正题: 新的材料主题提供了下面内容: 1. 提供了同意设置颜色板的系统部件组件。 2. 为这些系统组件提供了触摸反馈动画。3. Activity的过渡动画。依据你的品牌标识࿰…...