LTE user documentation(if there are inappropriate places, please correct me!) )Configure UE Measurements The user measurement configuration activated in the simulation depends on the selected "Consumers", such as the switching algorithm. Users may need to add their own configurations in the following ways:
- Directly configured in the base station RRC entity;
- Configure the existing switching algorithm;
- A new switching algorithm is developed.
This section only describes the first method. The second method is in chapter
Automatic handover trigger
, and the third method is in the
handover algorithm of the design document. The configuration of the RRC directly at the base station is as follows: The user first creates a new Lterrcsap::reportconfigeutra instance and then passes it to the function lteenbrrc::adduemeasreportconfig . The function returns MEASID (measurement identification)--the only reference for the base station instance configuration. The function must be called before the simulation begins. All users connected to the base station are activated during the entire simulation of the measurement configuration. During simulation, users can capture user-generated measurement reports by listening to existing Lteenbrrc::recvmeasurementreport trace source. The structural body
Reportconfigeutra conforms to the 3GPP specification. The definition of the struct and each member field is shown in section 6.3.5 of
[TS36331]. The following code sample is used to configure the Event A1 RSRP measurement for each base station in the container devs :
Lterrcsap::reportconfigeutra Config;config.eventid=Lterrcsap::reportconfigeutra::event_a1;config.threshold1.choice=Lterrcsap::thresholdeutra::threshold_rsrp;config.threshold1.range= A; 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 createdENBRRC->traceconnect ("Recvmeasurementreport", "Context", Makecallback (&recvmeasurementreportcallback));}
Note that the thresholds are scoped. In the example above, RSRP range 41 corresponds to -100 dBm. The conversion of the range format can refer to section 9.1.4 and 9.1.7 of
[TS36133]. There are several static functions in class eutranmeasurementmapping that can be used for this purpose. the definition of the corresponding callback function is similar to the following:
void recvmeasurementreportcallback (std::string context, uint64_t imsi, uint16_t cellid, uint16_t Rnti, Lterrcsap::measurementreport measreport);
This method registers the callback function as a user-measured consumer. In this case, there will be more than one consumers in the simulation (for example, a switching algorithm), and other consumers measurements are captured by the callback function. The user may use the Measid field in the argument contained in the callback function Lterrcsap::measurementreport to tell which measurement configuration triggered the report. in summary, this mechanism prevents one consumer from unknowingly interfering with another consumer's report configuration. Note that only the report configuration portion of the user measurement parameters (for example, Lterrcsap::reportconfigeutra) is open to consumers configurable, and the other parts are hidden from the invisible. In-frequency throttling is the main motivation for the API to make decisions:
- Since there is only one clear, unambiguous measurementobject (measuring object), no configuration is required;
- The measurement identities(measurement identification) remains hidden because the report configuration and the measurement ID are one by one mapped, so when a new report configuration is created, a new measurement ID is automatically set;
- Quantityconfiguration (quantity configuration) in other places, see performing measurements;
- Measurement Gaps( measurement interval) is not supported because it is only available for frequency-to-room settings.
Reference documents
Https://www.nsnam.org/docs/models/html/lte-user.html
LTE Module User documentation (translator 11)--Configure user measurement