LTE用户文档

(如有不当的地方,欢迎指正!)

17 Configure UE measurements

 
仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法。用户可能需要添加自己的配置,有以下几种方式:
 
  1. 在基站 RRC 实体中直接配置;
  2. 配置现有的切换算法;并
  3. 开发一种新的切换算法。
 
本节只讲述第一种方法。第二种方法在章节 Automatic handover trigger 中,第三种方法在设计文档的 Handover algorithm 中有讲。
 
在基站 RRC 直接进行的配置如下:
 
用户首先创建一个新的 LteRrcSap::ReportConfigEutra 实例,然后把它传递给函数 LteEnbRrc::AddUeMeasReportConfig 。该函数会返回 measId (测量标识)——是基站实例配置的唯一参考。该函数必须在仿真开始前被调用。 所有连接到基站的用户在整个仿真期间的测量配置都是激活的。在仿真期间,用户可以通过监听现有的 LteEnbRrc::RecvMeasurementReport trace source 来捕捉由用户产生的测量报告。
 
结构体 ReportConfigEutra 符合 3GPP 规范。结构体和每个成员字段的定义见 Section 6.3.5 of [TS36331]
 
下面的代码样本用于给容器 devs  中的每个基站配置 Event A1 RSRP 测量:
 
LteRrcSap::ReportConfigEutra config;
config.eventId = LteRrcSap::ReportConfigEutra::EVENT_A1;
config.threshold1.choice = LteRrcSap::ThresholdEutra::THRESHOLD_RSRP;
config.threshold1.range = ;
config.triggerQuantity = LteRrcSap::ReportConfigEutra::RSRP;
config.reportInterval = LteRrcSap::ReportConfigEutra::MS480; std::vector<uint8_t> measIdList; NetDeviceContainer::Iterator it;
for (it = devs.Begin (); it != devs.End (); it++)
{
Ptr<NetDevice> dev = *it;
Ptr<LteEnbNetDevice> enbDev = dev->GetObject<LteEnbNetDevice> ();
Ptr<LteEnbRrc> enbRrc = enbDev->GetRrc (); uint8_t measId = enbRrc->AddUeMeasReportConfig (config);
measIdList.push_back (measId); // remember the measId created enbRrc->TraceConnect ("RecvMeasurementReport",
"context",
MakeCallback (&RecvMeasurementReportCallback));
}
注意阈值是有范围的。在上述例子中 RSRP 范围 41 对应 -100 dBm。 范围格式的转换可以参考 Section 9.1.4 和 9.1.7 of [TS36133]。 类 EutranMeasurementMapping 中有几种静态函数可以用于此目的。
 
相应的回调函数的定义类似于:
void
RecvMeasurementReportCallback (std::string context,
uint64_t imsi,
uint16_t cellId,
uint16_t rnti,
LteRrcSap::MeasurementReport measReport);
该方法将注册回调函数作为用户测量的 consumer 。 在这种情况下,仿真中将不止一个 consumers(例如,切换算法) ,其他 consumers 的测量也会被回调函数捕捉。用户可能利用包含在回调函数 LteRrcSap::MeasurementReport 的参数中的 measId 字段,来分辨哪种测量配置触发了报告。
 
总之,该机制阻止一个 consumer 在不知情的情况下干预另一个 consumer 的报告配置。
 
注意,只有用户测量参数的报告配置部分(例如 LteRrcSap::ReportConfigEutra)是对 consumers 开放可配置的,其他部分是隐藏不可见的。 频内限制是该 API 实现决策的主要动机:
 
  • 由于只存在一个清晰、明确的 measurement object(测量对象),因此不需要配置;
  • measurement identities(测量标识 )保持隐藏,原因是报告配置和测量标识之间是一一映射的,因此,当创建一个新的报告配置时,会自动设置一个新的测量标识;
  • quantity configuration(数量配置) 配置在其他地方,见 Performing measurements;并且
  • 不支持 measurement gaps(测量间隔), 因为它只适用于频率间设置。
 
 

参考文献

https://www.nsnam.org/docs/models/html/lte-user.html
 

LTE Module User Documentation(翻译11)——配置用户测量的更多相关文章

  1. LTE Module User Documentation(翻译1)——背景、使用概述、基本的仿真程序和配置LTE模型参数

    LTE用户文档 (如有不当的地方,欢迎指正!) 1.背景 假定读者已经熟悉 ns-3 simulator ,能运行一般的仿真程序.如果不是的话,强烈推荐读者参考 [ns3tutorial].   2. ...

  2. LTE Module User Documentation(翻译2)——配置LTE MAC 调度器

    LTE用户文档 (如有不当的地方,欢迎指正!) 5 配置 LTE MAC 调度器   这里有几种 LTE MAC 调度器用户可以选择.使用下面的代码定义调度器的类型: Ptr<LteHelper ...

  3. LTE Module User Documentation(翻译6)——物理误差模型、MIMO模型、天线模型

    LTE用户文档 (如有不当的地方,欢迎指正!) 9 PHY Error Model   物理误差模型包含数据误差模型和下行控制误差模型,两者默认为激活.可以使用 ns-3 属性系统去激活,具体为:   ...

  4. LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧

    LTE用户文档 (如有不当的地方,欢迎指正!)     21 Examples Programs(示例程序)   路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不 ...

  5. LTE Module User Documentation(翻译14)——Uplink Power Control(上行功率控制)

    LTE用户文档 (如有不当的地方,欢迎指正!) 20 Uplink Power Control(上行功率控制)   上行功率控制功能默认是开启的.用户可以通过设置布尔属性 ns3::LteUePhy: ...

  6. LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)

    LTE用户文档 (如有不当的地方,欢迎指正!)   19 Frequency Reuse Algorithms(频率复用算法)   本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...

  7. LTE Module User Documentation(翻译12)——X2切换(X2-based handover)

    LTE用户文档 (如有不当的地方,欢迎指正!) 18 X2-based handover   正如 3GPP 定义的,切换是改变用户服务小区的连接方式的过程.这一过程中涉及的两个基站通常称为源基站和目 ...

  8. LTE Module User Documentation(翻译8)——核心网(EPC)

    LTE用户文档 (如有不当的地方,欢迎指正!) 14 Evolved Packet Core (EPC)   我们现在讲解如何编写一个仿真程序——除了 LTE 无线接入网外,还允许仿真 EPC. EP ...

  9. LTE Module User Documentation(翻译7)——无线环境地图(REM)、AMC 模型 和 CQI 计算

    LTE用户文档 (如有不当的地方,欢迎指正!) 12 Radio Environment Maps   通过使用类 RadioEnvironmentMapHelper  是可能输出文件 Radio E ...

随机推荐

  1. ThinkPHP 3.2.3 关联模型的使用

    关于关联模型 ThinkPHP 3.2.3 的关联模型(手册地址)一般处理关联数据表的 CURD 操作,例如关联读取.关联写入.关联删除等. 实例 博客管理模块关于博客有 4 张数据表:博客表 crm ...

  2. centos同步北京时间

    yum install ntp ntpdate #ntpdate -u 202.120.2.101 //写入硬件 #hwclock -w 以下是国内常见的NTP服务器 ntp.sjtu.edu.cn ...

  3. DevExpress GridView加入DevExpress中的右键菜单PopuMenu

    1. 添加一个Barmanager控件 2. 加入popumenu控件,点击该控件右上角的黑色三角号,编辑选项,点击编辑的选项,选择事件,编辑事件. 3. 在使用该右键菜单的控件添加MouseUp事件 ...

  4. 理解Bitcode

    用Xcode 7 beta 3在真机(iOS 8.3)上运行一下我们的工程,结果发现工程编译不过.看了下问题,报的是以下错误: 1 ld: ‘/Users/**/Framework/SDKs/Poly ...

  5. 代理传值Delegate

    代理方法中加入参数:[delegate passMeToOther:(id)self]:把自己传给别人.

  6. 一个php的爬虫,将笔趣阁的书可以都下载下来。

    数据库:book 表id ---- 数据库: `book`-- -- -------------------------------------------------------- ---- 表的结 ...

  7. WIN2008 R2 安装SQLSERVER2008笔记

    系统升级到SERVER2008R2 有些地方和WIN2003区别很大 这里记下 1.IIS 2008已经自带了不需要再额外找安装包或者系统盘安装 只需要打开服务管理器“角色”中添加”“web服务器(I ...

  8. golang的cgo支持调用C++的方法

    1)swift,貌似官网的推荐 2)extern "C" 我使用后者,用起来比较爽,上代码 c.h #pragma once #ifdef __cplusplus extern & ...

  9. linux常用经典命令

    1.查看cpu # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数   # 查看物理CPU个数 #物理cpu个数 ...

  10. 使用百度编辑器时,报错:从客户端("...)中检测到有潜在危险的 Request.Form 值

    ajax请求失败,提交不上去 起初没找到报错的这句话,可能由于我用了其他第三方插件的原因,后来改动了一下,出现了这个错误 然后百度得到答案:http://www.cnblogs.com/tearer/ ...