zoukankan      html  css  js  c++  java
  • LTE Module User Documentation(翻译11)——配置用户测量

     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 = 41;
    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
     
  • 相关阅读:
    Jquery不同版本共用的解决方案(插件编写)
    事务
    快应用开发
    编码问题
    spring事物配置,声明式事务管理和基于@Transactional注解的使用
    spring管理事务回滚
    Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
    tomcat 会话超时设置
    自动化测试基础篇--Selenium中数据参数化之TXT
    自动化测试基础篇--Selenium中JS处理浏览器弹窗
  • 原文地址:https://www.cnblogs.com/alice123/p/5503146.html
Copyright © 2011-2022 走看看