5G 现网信令参数学习(3) - RrcSetup(1)

news2024/12/23 22:36:22

目录

1. rlc-BearerToAddModList

1.1 rlc-Config

1.1.1 ul-AM-RLC

1.1.2 dl-AM-RLC

1.2 mac-LogicalChannelConfig

2. mac-CellGroupConfig

2.1 schedulingRequestConfig

2.2 bsr-Config 

2.3 tag-Config

2.4 phr-Config

2.5 skipUplinkTxDynamic

3. physicalCellGroupConfig

3.1 p-NR-FR1

3.2 pdsch-HARQ-ACK-Codebook


RRCSetup消息主要包含radioBearerConfigmasterCellGroup两个IE,其中radioBearerConfig包含了SRB1的配置

radioBearerConfig 
{
  srb-ToAddModList 
  {
    {
      srb-Identity 1,
      pdcp-Config 
      {
        t-Reordering ms3000
      }
    }
  }
},

masterCellGroup则包含了较为复杂的内容,下面重点描述这个IE。

masterCellGroup在RRC协议中的IE类型是CellGroupConfig,这个IE可以用于配置主小区组(master cell group ,MCG)或者辅小区组(secondary cell group,SCG)。该IE可以由一个MAC实体、逻辑信道集、一个主小区(SpCell)以及一个或多个辅小区(SCells)构成。

其中,cellGroupId用于标识这个小区组,取值范围0~maxSecondaryCellGroups。在当前协议版本中(R18),maxSecondaryCellGroups = 3。示例中,该参数的值为0

cellGroupId 0,

1. rlc-BearerToAddModList

示例中,这个list只有一个RLC-BearerConfig,即SRB1的无线承载配置。

logicalChannelIdentityBearer

无线承载对应的逻辑信道ID,示例中为1

servedRadioBearer

对应的无线承载,可以是SRB或者DRB,示例中为SRB1

logicalChannelIdentity 1,
servedRadioBearer srb-Identity : 1,

1.1 rlc-Config

RLC配置可以分为AM或者UM两种模式。示例中的SRB1必然是一个AM配置。

rlc-Config am : 
{
  ul-AM-RLC 
  {
    sn-FieldLength size12,
    t-PollRetransmit ms40,
    pollPDU infinity,
    pollByte infinity,
    maxRetxThreshold t32
  },
  dl-AM-RLC 
  {
    sn-FieldLength size12,
    t-Reassembly ms40,
    t-StatusProhibit ms0
  }
},

1.1.1 ul-AM-RLC

sn-FieldLength

指示RLC PDU的序列号(长度)。对于RLC AM而言,仅有size12size18两种,见38.322 6.2.2.4。示例中为size12,表示序列号长度为12比特,因此序列号取值范围为0~4095。

t-PollRetransmit

RLC AM中用于Poll机制的一个定时器,单位:ms。示例中的值为40ms。

Poll机制是RLC AM中一种用于检测接收端是否正确地收到了数据包的机制,它是一种反馈机制。大致如下:

  • 发送端发送一个带有poll bit的RLC PDU,其中polling bit设置在RLC header中
  • 接收端收到这个poll bit时,会反馈一个Status PDU,包含所有已经ACK或者NACK的PDU。其中ACK表示正确地接收了这个PDU,NACK表示错误或者丢失的PDU
  • 发送端接收这个Status PDU,并决定是否对所有NACK的PDU进行重传

pollPDU

该参数用于在poll机制中、决定是否设置一个Poll,见38.322 5.3.3.2

该参数如果取值p4则对应4个PDUs,p8对应8个PDUs;示例中的infinity则对应无限个PDUs,即不通过PDU_WITHOUT_POLL的计数来添加Poll。

pollByte

和前面的参数pollPdu作用类似,只是门限值为bytes。

该参数如果取值kB25则对应25 kBytes,kB50对应50 kBytes;示例中的infinity则对应无限bytes,即不通过BYTE_WITHOUT_POLL的计数来添加Poll。

maxRetxThreshold

该参数用于在发送端限制一个RLC SDU的重传次数。当重传次数达到这个最大值门限时,RLC会向上层报告重传次数达到最大(见38.322 5.3.2),上层一般会Call drop。

该参数的值tx表示有x次重传,示例中t32表示最大32次重传。

1.1.2 dl-AM-RLC

sn-FieldLength

ul-AM-RLC中的sn-FieldLength

t-Reassembly

重新组装(Reassembly)的定时器,单位ms。

在RLC层,分段(Segmentation)和组装(Reassembly)是一对互逆的过程。RLC层其中一个职能是负责数据有序地发送,因此,在接收端,当收到的数据出现顺序错乱时,RLC会等待直到所有有序数据都收到为止,再将所有这些数据段组装(Reassembly)然后提交给上层。有时候,RLC可能一直等不到所有有序数据都到达,为了防止RLC接收端无限制地等下去,因此设置了这个t-Reassembly定时器。当这个定时器超时的时候,即使没有等到所有有序数据到达,RLC也会将受到的数据提交个上层,并更新相关参数。

RLC AM和UM都存在分段(Segmentation)和组装(Reassembly),因此两种模式均有对应的t-Reassembly。示例中的t-Reassembly为ms40,表示定时器超时时长为40ms。

RLC AM的t-Reassembly用法见38.322 5.2.3.2

t-StatusProhibit

该定时器用于AM RLC接收端、决定是否禁止STATUS PDU的发送。只有在该定时器超时的时候,才会产生并发送STATUS PDU。该定时器的详细用法见38.322 5.3.4

示例中的ms0表示该定时器不会运行,即这个定时器不会阻止STATUS PDU的产生和发送。

1.2 mac-LogicalChannelConfig

mac-LogicalChannelConfig 
{
  ul-SpecificParameters 
  {
    priority 3,
    prioritisedBitRate infinity,
    bucketSizeDuration ms300,
    logicalChannelGroup 0,
    schedulingRequestID 0,
    logicalChannelSR-Mask FALSE,
    logicalChannelSR-DelayTimerApplied FALSE
  }
}

LogicalChannelConfig IE中主要包含ul-SpecificParameters这个IE,包含以下参数:

priority

逻辑信道优先级,取值范围1~16,该参数的值越大,优先级越低。见38.321 5.4.3.1.1

prioritisedBitRate

即PBR,MAC层根据上行grant、分配上行数据的令牌桶算法参数之一。该参数表示单位时间内应该给某个逻辑信道分配的数据量(比特数),因此该参数实际上相当于这个逻辑信道的一个保证速率。每个逻辑信道都具有自己的PBR。

示例中,PBR为infinity,表示对当前逻辑信道的保证速率无限大,即尽可能满足。由于该PBR所属的逻辑信道对应的是SRB1,优先级很高(值为3),实际上infinity就是优先且最大满足。另外,按照38.331的描述,对于SRB,prioritisedBitRate也只能设置为infinity。

bucketSizeDuration

即BSD,和PBR一样、也是MAC层令牌桶算法参数之一。该参数表示PBR持续增加的最大时长,即令牌桶的桶深。(PBR x BSD)表示的含义就是当前逻辑信道可以分配的最大比特数。这个当前即指MAC执行当前Logical Channel Prioritization过程的时候。和PBR一样,每个逻辑信道都具有自己的BSD。

示例中,BSD=300ms,由于PBR=infinity,所以这个参数的值在算法中并不是很重要,因为(PBR x BSD)相当于还是“infinity"。

关于令牌桶算法的讲解,可以参考LTE MAC层令牌桶算法_prioritisedbitrate-CSDN博客,协议部分可以参考38.321 5.4.3.1。

logicalChannelGroup

逻辑信道组ID。取值范围0~maxLCG-ID,R18协议下,maxLCG-ID=7。

schedulingRequestID

指示这个逻辑信道的调度请求(SR)配置。这个ID是一个SR配置集合的索引,这个SR配置集合在后面的IE schedulingRequestToAddModList中给出。

logicalChannelSR-Mask

该参数用于控制配置的上行grants(CUG)是否可以触发调度请求(SR)。其中配置的上行grants是指预先配置好的上行grant,比如半持续调度(SPS)。CUG分为type1和type2两种,type1是指通过RRC配置的上行grant,type2是指通过PDCCH配置的上行grant(见38.321 5.8.2)。type1最典型的就是LTE中的SPS,常用于voice等业务;type2用于突发的上行数据。

示例中参数的值为false,表示该逻辑信道没有SR masking,即允许触发SR。

logicalChannelSR-DelayTimerApplied

该参数指示当前逻辑信道在准备触发SR发送的时候,使用应用一个延迟定时器,即logicalChannelSR-DelayTimer。

示例中参数的值为false,表示不应用这个延迟定时器,一旦有SR触发,则立即发送SR。

2. mac-CellGroupConfig

2.1 schedulingRequestConfig

schedulingRequestConfig 
{
  schedulingRequestToAddModList 
  {
    {
      schedulingRequestId 0,
      sr-ProhibitTimer ms16,
      sr-TransMax n32
    }
  }
},

该IE包含一个schedulingRequestToAddModList和一个schedulingRequestToReleaseList,示例中没有release list。其中,schedulingRequestToAddModList包含了一个由SchedulingRequestToAddMod构成的list。SchedulingRequestToAddMod中的IE如下说明。

schedulingRequestId

当前SR配置的索引,对于某个逻辑信道而言,其对应的SR配置中会携带这个索引(见mac-LogicalChannelConfig中的schedulingRequestID),以便映射到这里对应的SR配置。

示例中,该参数的值为0,且前面mac-LogicalChannelConfig中的schedulingRequestID也为0

sr-ProhibitTimer

这个定时器的作用是,当UE发送一个SR之后,至少在这个定时器给出的时间范围内,不能再次发送SR。

示例中的值ms16,表示16毫秒。

sr-TransMax

表示一个SR的最大发送次数,当超过这个次数后,UE一般会call drop。

一个SR一定会有其对应的MAC PDU,如果这个MAC PDU发送了,则这个SR就会被cancel,SR_COUNTER就会从0开始计数。

示例中的值n32,表示32次。

2.2 bsr-Config 

bsr-Config 
{
  periodicBSR-Timer sf5,
  retxBSR-Timer sf320
},

BSR(Buffer Status Report)配置。

periodicBSR-Timer

周期BSR(Periodic BSR)的定时器,顾名思义即周期性发送的BSR。参数值中的"sf"表示子帧。

示例中sf5表示5个子帧。和LTE一样,5G中一个子帧也是1ms,区别是一个子帧包含的slot数不同,和numerology有关。

retxBSR-Timer

我的理解,这个timer的作用是为了给BSR引入“重传”机制。见下面38.321 5.4.5中的描述:

上面这段协议的描述,意思就是当发送了一个BSR之后,就会启动retxBSR-Timer这个定时器。

再看下面这段:

retxBSR-Timer这个定时器超时之后,MAC实体会认为这个BSR对应的逻辑信道具有最高优先级。

将上面两点结合起来,就是一个典型的“重传”机制。

既然有了周期BSR,为什么还要引入BSR重传机制?

需要注意的是,BSR是MAC CE,是需要UL grant才能发送的。如果没有ul grant,即使是周期BSR,也是无法发送的。另一方面,当没有ul grant、同时又有BSR需要发送的时候,只有Regular BSR可以触发SR(调度请求)以期待获取ul grant。

retxBSR-Timer超时后触发的BSR正好是Regular BSR

因此,周期BSR和重传BSR其实是不会互相冲突的。周期BSR用于数据量比较大、且数据流比较平稳的一段时期,此时,由于有稳定和持续不断的ul grant,可以供UE提供周期BSR上报。而重传BSR用于偶发的数据,通过SR/Regular  BSR的机制上报,当首次触发了Regular  BSR之后,也依然无法获取ul grant进行BSR的上报之后,一旦retxBSR-Timer超时,便会再次触发这个BSR(即重传BSR),和首次触发BSR不同的是:此时重新触发的BSR对应的逻辑信道具有最高优先级。

示例中,值sf320即320个子帧,320ms。

2.3 tag-Config

tag-Config 
{
  tag-ToAddModList 
  {
    {
      tag-Id 0,
      timeAlignmentTimer infinity
    }
  }
},

TAG-Config包含两个list

示例中仅有tag-ToAddModList。该list包含一组TAG的配置参数

tag-Id

指示当前SpCell或者SCell的TAG的索引。该值在一个小区组(MCG或者SCG)中是唯一的。

timeAlignmentTimer

该timer定义在38.321中,表示在多长时间范围内MAC实体认为属于该TAG的服务小区是上行时间对齐的。当这个定时器超时时,UE一般会call drop。

示例中,infinity表示该定时器不会超时。

2.4 phr-Config

phr-Config setup : 
{
  phr-PeriodicTimer sf100,
  phr-ProhibitTimer sf100,
  phr-Tx-PowerFactorChange dB1,
  multiplePHR FALSE,
  dummy FALSE,
  phr-Type2OtherCell FALSE,
  phr-ModeOtherCG virtual
},

该IE用于配置UE的功率余量上报(Power Headroom Report,PHR)的相关参数。

phr-PeriodicTimer

周期PHR的定时器,该定时器超时后,会触发PHR。

示例中sf100表示100个子帧,即100ms。

phr-ProhibitTimer

PHR的禁止定时器,该定时器超时后,如果满足一定条件,会触发PHR。其中,“一定条件”是指对功率余量的影响因素改变了、且达到一定的门限,具体见38.321 5.4.6。

示例中sf100表示100个子帧,即100ms。

phr-Tx-PowerFactorChange

前面提到的“一定条件”中的“门限”,具体见38.321 5.4.6。

示例中的dB1表示1dB。

multiplePHR 

指示功率余量是使用Single Entry PHR MAC CE上报还是使用Multiple Entry PHR MAC CE上报。对于MR-DC以及NR UL CA,网络会配置这个参数为true;否则为false。

示例中,FALSE表示使用Single Entry PHR MAC CE上报。

phr-Type2OtherCell

指示是否为其它MAC实体的SpCell配置type 2的PHR。如果没有E-UTRA MAC实体,网络会设置这个参数为false。

Type 2 PH:UE在其它MAC实体的SpCell上的名义最大发送功率和其UL-SCH/PUCCH发送功率之间的差别。而Type 1PH则是指当前服务小区上的名义和实际发送功率之差。

Type 2 PH用于EN-DC、NE-DC、以及NGEN-DC(4G主站,5G核心网)中的E-UTRA MAC实体。

示例中的FALSE表示没有配置Type 2的PHR,因为示例是一个5G SA的信令。

phr-ModeOtherCG

当配置了DC时,指示其它小区组(MCG或SCG)中激活小区使用的PHR模式(real或者virtual)。如果没有配置DC,即只有一个小区组时,该字段会被忽略。

从38.321中对于此参数的描述来看,只有当该参数的值为real时才会有意义,协议中没有virtual对应的行为。

示例中的值为virtual,表示没有特别的行为,当前由于示例为SA的信令,该字段本身也会被忽略。

2.5 skipUplinkTxDynamic

skipUplinkTxDynamic FALSE

该参数指示在某些条件满足的情况下、是否跳过上行发送。这些条件定义在38.321 5.4.3.1.3中,

简单来说,就是当UE获得了ul grant之后,如果没有A-CSI请求、且没有用户数据、且没有重要的MAC CE(仅有周期BSR或者padding BSR),则UE会跳过此次上行发送。

示例中,该参数的值配置为FALSE,表示不会跳过上行发送。

3. physicalCellGroupConfig

physicalCellGroupConfig 
{
  p-NR-FR1 23,
  pdsch-HARQ-ACK-Codebook dynamic
},

3.1 p-NR-FR1

在FR1频段、在当前NR小区组中的所有服务小区中、UE最大的发送功率。UE最大发送功率同时也会收到p-Max(配置在FrequencyInfoUL中)、以及p-UE-FR1(FR1上UE在所有服务小区上的总功率)的限制

示例中23表示23dBm。

3.2 pdsch-HARQ-ACK-Codebook

该参数指示PDSCH的HARQ-ACK码本、是半静态还是动态产生的。

  • Semi-Static:半静态码本, 也称为Type-1 HARQ-ACK codebook。即UE根据RRCPDSCH相关半静态配置, 生成需要发送的半静态的HARQ-ACK码本。
  • dynamic:动态码本, 也称为Type-2 HARQ-ACK codebook。即UE根据DCI下行动态调度的情况, 生成需要发送的动态HARQ-ACK码本

关于semi-static和dynamic码本的具体含义,比较复杂,详见38.213 9.1。

示例中参数的值为dynamic,指示使用动态HARQ-ACK码本。

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

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

相关文章

【MyBatis源码】深入分析TypeHandler原理和源码

文章目录 原始 JDBC 存在的问题自定义 TypeHandler 实现TypeHandler详解BaseTypeHandler类TypeReference类型参考器43个类型处理器类型注册表:3个注解类枚举类 原始 JDBC 存在的问题 MyBatis 之所以设计了 TypeHandler(类型处理器)&#xff…

运营篇|公众号小程序如何实现流量主变现

公众号小程序如何实现流量主变现?三步走: ①开通流量主; ②接入广告; ③裂变传播; 一、小程序开通流量主的运营要求 微信小程序开通流量主的前提条件主要包括以下几个方面: 日活跃用户(DAU…

丹摩征文活动 | 轻松上手图像生成:FLUX.1遇上ComfyUI,让复杂变简单!

一、背景 FLUX.1是由黑森林实验室推出的一款前沿图像生成模型,针对不同用户需求,提供了三种不同版本。 FLUX.1-pro是专为企业设计的闭源版本,拥有无与伦比的性能和生成能力。其在识别提示词、提升视觉质量、细节表现及输出多样性方面都有出…

PyTorch核心概念:从梯度、计算图到连续性的全面解析(三)

文章目录 Contiguous vs Non-Contiguous TensorTensor and ViewStrides非连续数据结构:Transpose( )在 PyTorch 中检查Contiguous and Non-Contiguous将不连续张量(或视图)转换为连续张量view() 和 reshape() 之间的区别总结 参考文献 Contig…

「IDE」集成开发环境专栏目录大纲

✨博客主页何曾参静谧的博客📌文章专栏「IDE」集成开发环境📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定…

Kafka经典面试题

1、kafka消息发送的流程? producer发送过程中启动两个线程 一个main线程 一个sender线程,在main线程中先创建一个双端队列(RecordAccumlator、producerbatch),main将我们需要发送的东西经过拦截器,序列化&a…

手把手写深度学习(29):将DDP训练代码改成DeepSpeed

手把手写深度学习(0):专栏文章导航 前言:deepspeed已经成为了大模型时代训练模型的常规武器,这篇博客以一个基于DDP的 Stable Diffusion模型训练为例,讲解如何从将DDP训练代码改成DeepSpeed。 目录 构建optimizer 构建scheduler…

信息收集系列(二):ASN分析及域名收集

内容预览 ≧∀≦ゞ 信息收集系列(二):ASN分析及域名收集前言一、ASN 分析1. 获取 ASN 码2. 使用 ASNMap 获取 IP 范围3. 将 IP 范围转化为 IP 列表 二、关联域名收集1. 顶级域(TLD)收集测试方法 2. 根域名收集常用方法…

《数学分析》中不等式及补充

说明:此文章用于本人复习巩固,如果也能帮到大家那就更加有意义了。 注:1)《数学分析》中的不等式及不等式的补充

HTML之图片和超链接的学习记录

图片 在HTML中&#xff0c;我们可以使用img标签来显示一张图片。对于img标签&#xff0c;我们只需要掌握它的三个属性&#xff1a;src、alt和title。 <img src"" alt"" title"" /> src用于指定图片所在的路径&#xff0c;这个路径可以是…

unity显示获取 年月日周几【日期】

unity显示获取 年月日周几【日期】 public void ShowDate(Text txt){//txt.text DateTime now DateTime.Now; // 获取当前时间int year now.Year; // 获取年份int month now.Month; // 获取月份&#xff08;1-12&#xff09;int day now.Day; // 获取天数&#xff08;1-31&…

【区块链】深入理解智能合约 ABI

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 深入理解智能合约 ABI&#xff08;应用程序二进制接口&#xff09;一、ABI 基础…

鸿蒙ZRouter动态路由框架—生命周期管理能力

文章目录 基本使用(单个页面生命周期&#xff09;页面的全局生命周期监听工作流程图源码 ZRouter从1.1.0版本开始支持生命周期函数管理能力&#xff0c;主要有以下特点&#xff1a; 不影响你原有的生命周期业务逻辑&#xff0c;对NavDestination页面保持着零侵入性&#xff0c;…

代码随想录算法训练营第十九天|理论基础、77. 组合、216.组合总和III、17.电话号码的字母组合

理论基础 文章链接&#xff1a;代码随想录 视频讲解&#xff1a;带你学透回溯算法&#xff08;理论篇&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili关于回溯算法&#xff0c;我公众号里已经讲完了&#xff0c;并且将回溯算法专题整理成一本PDF&#xff0c;该PDF共…

uniapp的基本使用(easycom规范和条件编译)和uview组件的安装和使用

文章目录 1、uniapp1.uview组件安装2.uview-plus组件安装 2、条件编译3、easycom规范1.组件路径符合规范2.自定义easycom配置的示例 总结 1、uniapp UniApp的UI组件库&#xff0c;如TMUI、uViewUI、FirstUI、TuniaoUI、ThorUI等&#xff0c;这些组件库适用于Vue3和TypeScript&…

深入探索GDB调试技巧及其底层实现原理

本文分为两个大模块&#xff0c;第一部分记录下本人常用到的GDB的调试方法和技巧&#xff0c;第二部分则尝试分析GDB调试的底层原理。 一、GDB调试 要让程序能被调试&#xff0c;首先得编译成debug版本&#xff0c;当然release版本的也能通过导入符号表来实现调试&#xff0c…

Kubernetes的基本概念

Kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目,Kubernetes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。 一、资源对象概述 Kubernetes中的基本概念和术语大多是围绕资源对象(Resource Object)来说的,而资…

JavaWeb后端开发案例——苍穹外卖day01

day1遇到问题&#xff1a; 1.前端界面打不开&#xff0c;把nginx.conf文件中localhost:80改成81即可 2.前后端联调时&#xff0c;前端登录没反应&#xff0c;application.yml中默认用的8080端口被占用&#xff0c;就改用了8081端口&#xff0c;修改的时候需要改两个地方&…

(一)<江科大STM32>——软件环境搭建+新建工程步骤

一、软件环境搭建 &#xff08;1&#xff09;安装 Keil5 MDK 文件路径&#xff1a;江科大stm32入门教程资料/Keil5 MDK/MDK524a.EXE&#xff0c;安装即可&#xff0c;路径不能有中文。 &#xff08;2&#xff09;安装器件支持包 文件路径&#xff1a;江科大stm32入门教程资料…

软件开发的各类模型

目录 软件的生命周期 常见开发模型 瀑布模型 螺旋模型 增量模型、迭代模型 敏捷模型 Scrum模型 常见测试模型 V模型 W模型&#xff08;双V模型&#xff09; 软件的生命周期 软件的生命周期包括需求分析&#xff0c;计划&#xff0c;设计&#xff0c;编码&#xff0c;…