Skip to content

XAPP simple_rc_xapp.py fail to enforce PRB allocation on CU-DU split with USRP B210 and quectel RM520N-GL on slicing #1366

@mfuentesg2021

Description

@mfuentesg2021

I am testing the oran-sc-ric slicing XAPP (simple_rc_xapp.py) enforcement with two slices, and Open5gs and a CU/DU split with a DU connected to the USRP B210 as an antenna, two UE with different slice configuration using Quectel modules. When setting the --gnb_cu_ue_f1ap_id on the XAPP with values diffferent from 0 the enforcement fails.
Success cases happened when the gNB-CU-UE-F1AP-ID value was zero, which is almost difficult to set up on the Quectel due to the behaviour of the module of performing a Registration request by setting the gNB-CU-UE-F1AP-ID increased to 1 or more.

The UE PRB allocation fail to be enforced without further information besides E2 RIC Control Failure. My impression is when the mapping of DU-UE-ID counter increases, it does not properly work to enforce the RIC policy.

Using the following configuration:

f1ap:
  cu_cp_addr: 127.0.10.1
  bind_addr: 127.0.10.2

f1u:
  socket:
    -
      bind_addr: 127.0.10.2

ru_sdr:
  device_driver: uhd
  device_args: type=b200,num_recv_frames=64,num_send_frames=64,serial=34A03E8
  srate: 23.04
  otw_format: sc12
  tx_gain: 80
  rx_gain: 40

cell_cfg:
  dl_arfcn: 650000                  # ARFCN of the downlink carrier (center frequency).
  band: 78                          # The NR band.
  channel_bandwidth_MHz: 20         # Bandwith in MHz. Number of PRBs will be automatically derived.
  common_scs: 30                    # Subcarrier spacing in kHz used for data.
  plmn: "00101"                     # PLMN broadcasted by the gNB.
  tac: 7                            # Tracking area code (needs to match the core configuration).
  pci: 1
  slicing:                              # Optional TEXT. Configure network slicing options. This can only be set via the configuration file.
    -                                     # Configure Slice 1
      sst: 1                                  # Optional UINT (1). Sets the Slice Service Type. Supported: [0 - 255].
      sd: 0x000001                           # Optional UINT (0). Sets the Service Differentiator. Supported: [0-16777215].
      #sched_cfg:                              # Scheduler configuration for the slice
        #min_prb_policy_ratio: 0                 # Optional UINT (0). Sets the minimum percentage of PRBs to be allocated to the slice. Supported [0 - 100].
        #max_prb_policy_ratio: 100  
    -                                     # Configure Slice 1
      sst: 2                                  # Optional UINT (1). Sets the Slice Service Type. Supported: [0 - 255].
      sd: 0x000002                                   # Optional UINT (0). Sets the Service Differentiator. Supported: [0-16777215].
      #sched_cfg:                              # Scheduler configuration for the slice
      #  min_prb_policy_ratio: 0                 # Optional UINT (0). Sets the minimum percentage of PRBs to be allocated to the slice. Supported [0 - 100].
      #  max_prb_policy_ratio: 100

log:
  filename: /tmp/du.log
  all_level: debug
  f1ap_level: debug
  mac_level: debug
  du_level: debug
  e2ap_level: debug
  radio_level: info

pcap:
  mac_enable: false
  mac_filename: /tmp/du_mac.pcap
  f1ap_enable: false
  f1ap_filename: /tmp/du_f1ap.pcap
  f1u_enable: false
  f1u_filename: /tmp/du_f1u.pcap

e2:
  enable_du_e2: true                # Enable DU E2 agent (one for each DU instance)
  e2sm_kpm_enabled: true            # Enable KPM service module
  e2sm_rc_enabled: true             # Enable RC service module
  addr: 10.0.2.10                   # RIC IP address
  bind_addr: 10.0.2.1               # A local IP that the E2 agent binds to for traffic from the RIC. ONLY required if running the RIC on a separate machine. 
  port: 36421  

du.log on failing part:

2025-09-22T09:28:17.597774 [E2-DU   ] [I] Handling E2 PDU of type initiatingMessage
2025-09-22T09:28:17.597781 [E2-DU   ] [I] E2AP SDU, "initiatingMessage.RICcontrolRequest"
2025-09-22T09:28:17.597783 [E2-DU   ] [I] Received RIC Control Request
2025-09-22T09:28:17.597806 [E2SM-RC ] [I] Slice-level PRB quota Control Request for UE gNB-DU-UE-F1AP-ID=1:
RRM Policy Ratio Group:
 RRM Policy:
  Min PRB Policy Ratio: 10
  Max PRB Policy Ratio: 30
  Dedicated PRB Policy Ratio: 100
  RRM Policy Member List:
  - PLMN:00101, SST:1, SD:1
2025-09-22T09:28:17.597816 [E2-DU   ] [I] Sending E2 RIC Control Failure
2025-09-22T09:28:17.598098 [FAPI    ] [D] [   164.4] Sector#0: Slot.indication time_point=1758533297600597994

I tested correctly mapping of sending a not existing UE-ID also:
du.log on failing part:

2025-09-22T09:28:28.858749 [E2-DU   ] [I] Handling E2 PDU of type initiatingMessage
2025-09-22T09:28:28.858749 [E2-DU   ] [I] E2AP SDU, "initiatingMessage.RICcontrolRequest"
2025-09-22T09:28:28.858751 [E2-DU   ] [I] Received RIC Control Request
2025-09-22T09:28:28.858775 [E2SM-RC ] [I] Slice-level PRB quota Control Request received but UE not found, gNB-CU-UE-F1AP-ID=2
2025-09-22T09:28:28.858780 [E2-DU   ] [I] Sending E2 RIC Control Failure

I attach the complete logs of CU/DU.

cuv1.zip
duv1_logInfo.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions