Skip to content
Snippets Groups Projects

CDRX optimizations for Monolithic

Merged Louis-Adrien DUFRENE requested to merge 452-cdrx-better-support-cu-du-split into develop

Closes #452 (closed)

Edited by Louis-Adrien DUFRENE

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
399 400 LTE_DRB_ToReleaseList_t *DRB_ReleaseList = rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->drb_ToReleaseList;
400 401 LTE_MAC_MainConfig_t *mac_MainConfig = NULL;
402
401 403 for (i = 0; i< 8; i++){
402 404 DRB2LCHAN[i] = 0;
403 405 }
404 if (rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig)
406
407 if (rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig) {
405 408 mac_MainConfig = &rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue;
409
410 /* CDRX Configuration */
411 // Need to check if UE is a BR UE
412 int UE_id = find_UE_id(ctxt.module_id, ctxt.rnti);
413
414 if (UE_id != -1) {
  • 602 645
    603 646 }
    604 647
    605 int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance, const f1ap_ul_rrc_message_t *msg) {
    648 int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
    649 const f1ap_ul_rrc_message_t *msg)
    650 {
  • 312 312 if (ue_context_p->ue_context.Status != RRC_RECONFIGURED) {
    313 313 LOG_E(RRC,"[eNB %d] Received C-RNTI ,but UE %x status(%d) not RRC_RECONFIGURED\n",module_idP,rntiP,ue_context_p->ue_context.Status);
    314 314 return (-1);
    315 } else {
    316 rrc_eNB_generate_defaultRRCConnectionReconfiguration(&ctxt,ue_context_p,0);
    317 ue_context_p->ue_context.Status = RRC_RECONFIGURED;
    318 }
    315 }
    316 rrc_eNB_generate_defaultRRCConnectionReconfiguration(&ctxt,ue_context_p,0);
  • @Invalidname @defosseu I had a look and it looks fine to me. Maybe we can have a function to "install" CDRX in the MAC that is called from both the RRC and F1?! Apart from this I only have minor nitpicks...

    Edited by Robert Schmidt
  • @schmidtr Thanks Robert for the review, I agree with your remarks. Next week I will have some time to work on that, so I will keep you up to date

  • Ok I could test it on our testbench. The CDRX is not configured do to UE capabilities information missing at the DU.

    I will work on that this afternoon, I think there are some information that should stay in CU...

    Edited by Louis-Adrien DUFRENE
  • It seems that the F1 interface handles the CDRX configuration directly through UE Context Management messages.

    This is not completely implemented in OAI.

    My next steps are:

    • improve the code in case of monolithic (ITTI MAC)
    • provide these improvements in case of CU/DU split (thanks to the rrc message handling)
    • use the F1 ue context management messaging
  • Louis-Adrien DUFRENE marked as a Work In Progress

    marked as a Work In Progress

  • Louis-Adrien DUFRENE changed title from Resolve "CDRX better support CU/DU split" to WIP: CDRX optimizations and CU/DU split support

    changed title from Resolve "CDRX better support CU/DU split" to WIP: CDRX optimizations and CU/DU split support

  • added 23 commits

    • 206f17b2...4f55943b - 17 commits from branch develop
    • 34f0bdac - [to build] Monolithic: move RRC features in do_drxconfig
    • eddc13d2 - [to build] Check coverage extension through UE capabilities
    • d1f54a98 - [to test] Check CE from UECap and TDD from RRC config
    • 3187127b - [to test] Improvements added to F1AP interface (no UE management messaging)
    • 2306428e - Merge branch 'develop' into orange_cdrx
    • 940ce3fe - [tested] comment update

    Compare with previous version

  • @defosseu @schmidtr

    In the last commit:

    • Merge last develop.
    • I improved the IE generation in monolithic and CU/DU split. Current version should be cleaner.
    • Now I check if the UE supports coverage extension (CE) based on UE capabilities, since the current CDRX implementation doesn't support UE in CE. I don't know if there is a better way to look deeply into the UE capability structure.
    • I tested on my testbed: CDRX configuration is ok in Monolithic and CU/DU. I also checked that the CE in UE capabilities is correctly handled by the new code.

    The current code does not use the F1AP UE context management messaging. I have to look at the spec to determine the correct behavior.

    As it is I will remove WIP to see if the CI CDRX test passes.

    Next step: To configure the CDRX timers in MAC, we use the function eNB_Config_Local_DRX(). This function is called in RRC. It seems that the usual way for RRC to configure MAC is to call rrc_mac_config_req_eNB() directly from MAC (config.c). This function is inconvenient, with 38 input parameters, LTE_RRC_VERSION macro within the parameters and most of the time almost all parameters are set to 0 or NULL...

    Also, other configurations are usually done through ITTI, but in the case of RRC it directly calls these configuration functions (pdcp, rlc, mac).

    I would like to add an ITTI message that configures at reception only the CDRX timers of a UE.

    Maybe there is a reason why ITTI is not used in this case? Maybe other parameters configuration of rrc_mac_config_req_eNB() should be handle thanks to ITTI messaging?

    @florian.kaltenberger : Florian, I add you to the conversation, especially for the ITTI question, but others remarks are welcome :)

    Edited by Louis-Adrien DUFRENE
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading