• Robert Schmidt's avatar
    Merge remote-tracking branch 'origin/liteon_develop_F' into integration_2026_w03 (!3668) · 91e03881
    Robert Schmidt authored
    Support beam index for LiteON FR2 RU that needs per symbol section in CP packets
    
    This branch supports beam index for LiteOn FR2 RU and others. It adds
    the support of beam index for LiteOn RU that uses per-symbol CP packet
    and is a sequel of MR !3605 (merged) that supports beam index for RU
    that uses per-slot CP packets.
    
    A. To support LiteOn FR2 RU, the following are needed.
    
    a. Per symbol beamforming. Need separate section for each symbol on CP packet.
    
    b. Handle these two bugs:
    
    - section ID on UP packet is set wrongly to 13 for all sections
    - prach eAxC offset starts from 0 instead of from last antenna port
      number used by other channels.
    
    B. Implementation
    
    a. set fh_config->RunSlotPrbMapBySymbolEnable based on the setting in the configuration file
    
    - if disable, the existing per-slot scheme is run on xran.
    - if enable, RunSlotPrbMapBySymbolEnable mode is on in xran so that xran
      will generate PrbElm per symbol (aka total of 14)and perform
      per-symbol processing on the corresponding PrbElm.
    
    b. set fh_config->LiteOnIgnoreUPSectionIdEnable based on the setting in
    the configuration file if enable, handle 2 "features" of Liteon:
    
    - To handle the section_id = 13 issue on Liteon where section ID is set
      wrongly to 13 for all sections
    - To handle the prach eAxC offset issue on Liteon where it starts from 0
      instead of from the end of last antenna port number
    
    c. if fh_config->RunSlotPrbMapBySymbolEnable, OAI FHI
    
    - invoke xran_fh_rx_read_slot_BySymbol() instead of xran_fh_rx_read_slot()
    - invoke xran_fh_tx_send_slot_BySymbol() instead of xran_fh_tx_send_slot()
    
    C. Testing
    
    a. Command to test benetel RU
    
        sudo LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ ./nr-softmodem -O /etc/ran_development/CONFs/gnb.sa.band77.273prb.fhi72.4x4-benetel550_c0.conf --thread-pool 21,22,23,24,25,26,27,28
    
        Results:
        iperf UDP uplink
        [  5]   0.00-10.22  sec  87.3 MBytes  71.6 Mbits/sec  0.100 ms  370/63081 (0.59%)  receiver
        iperf UDP downlink
        [  5]   0.00-10.00  sec   796 MBytes   668 Mbits/sec  0.017 ms  1824/586404 (0.31%)  receiver
    
    b. Command to test LiteOn FR2 RU
    
        sudo LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ ./nr-softmodem -O /etc/ran_development/CONFs/gnb.sa.band78.66prb.fhi72.2x2-liteon-F-Release.conf--thread-pool 21,22,23,24,25,26,27,28
    
        Result:
        iperf UDP uplink
        [  5]   0.00-10.20  sec  89.9 MBytes  73.9 Mbits/sec  0.156 ms  212/64848 (0.33%)  receiver
        iperf UDP downlink
        [  5]   0.00-10.00  sec   361 MBytes   303 Mbits/sec  0.077 ms  277662/542891 (51%)  receiver
    
    D. Difference between LiteOn FR2 E release configuration file and that for F release is
    
        diff gnb.sa.band78.66prb.fhi72.2x2-liteon-KB.conf gnb.sa.band78.66prb.fhi72.2x2-liteon-F-Release.conf 39d38
    
        <     beam_weights = [1, 1];
        225a225
        >     beam_weights = [1];
        312c312,313
        <   mtu = 1500; # check if xran uses this properly
        ---
        >   #mtu = 1500; # check if xran uses this properly
        >   mtu = 9000; # check if xran uses this properly
        313a315,316
        >   RunSlotPrbMapBySymbol = 1;
        >   LiteOnIgnoreUPSectionId = 1;
    91e03881
oran_isolate.c 13.2 KB