srsran / srsRAN_4G

Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g
https://www.srsran.com
GNU Affero General Public License v3.0
3.49k stars 1.15k forks source link

Is it possible to connect two B200mini to one ENB? #1119

Closed arsenijpavlov closed 1 year ago

arsenijpavlov commented 1 year ago

Issue Description

I need to run one eNodeB on two B200mini boards. I couldn't find this information on the documentation site. I want to clarify whether this is possible in the current implementation?

Setup Details

2 B200mini, Ubuntu 20.04.5 LTS, latest SRSRAN v. 22.10.0

enb.conf:

...
device_name = UHD
device_args = "serial0=18091172,serial1=171920C"
...

rr.conf:

...
cell_list =
(
  //--- COMMMENT OUT LTE CELLS ---//
  {
    rf_port = 0;
    cell_id = 0x01;
    tac = 0x0007;
    pci = 150;
    // root_seq_idx = 204;
    dl_earfcn = 2150;
    //ul_earfcn = 21400;
    ho_active = true;
    //meas_gap_period = 0; // 0 (inactive), 40 or 80
    //meas_gap_offset_subframe = [6, 12, 18, 24, 30];
    // target_pusch_sinr = -1;
    // target_pucch_sinr = -1;
    // enable_phr_handling = false;
    // min_phr_thres = 0;
    // allowed_meas_bw = 6;
    // t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000

    // CA cells
    scell_list = (
      {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true}
    )

    // Cells available for handover
    meas_cell_list =
    (
      {
        eci = 0x19C02;
        dl_earfcn = 2630;
        pci = 151;
        //direct_forward_path_available = false;
        //allowed_meas_bw = 6;
        //cell_individual_offset = 0;
      }
    );

    // Select measurement report configuration (all reports are combined with all measurement objects)
    meas_report_desc =
    (
        {
          eventA = 3
          a3_offset = 6;
          hysteresis = 0;
          time_to_trigger = 480;
          trigger_quant = "RSRP";
          max_report_cells = 1;
          report_interv = 120;
          report_amount = 1;
        }
    );
    meas_quant_desc = {
        // averaging filter coefficient
        rsrq_config = 4;
        rsrp_config = 4;
     };
  },
  {
    rf_port = 1;
    cell_id = 0x02;
    tac = 0x0007;
    pci = 151;
    // root_seq_idx = 204;
    dl_earfcn = 2150;
    //ul_earfcn = 21400;
    ho_active = true;
    //meas_gap_period = 0; // 0 (inactive), 40 or 80
    //meas_gap_offset_subframe = [6, 12, 18, 24, 30];
    // target_pusch_sinr = -1;
    // target_pucch_sinr = -1;
    // enable_phr_handling = false;
    // min_phr_thres = 0;
    // allowed_meas_bw = 6;
    // t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000

    // CA cells
    scell_list = (
      {cell_id = 0x01; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true}
    )

    // Cells available for handover
    meas_cell_list =
    (
      {
        eci = 0x19C01;
        dl_earfcn = 2630;
        pci = 150;
        //direct_forward_path_available = false;
        //allowed_meas_bw = 6;
        //cell_individual_offset = 0;
      }
    );

    // Select measurement report configuration (all reports are combined with all measurement objects)
    meas_report_desc =
    (
        {
          eventA = 3
          a3_offset = 6;
          hysteresis = 0;
          time_to_trigger = 480;
          trigger_quant = "RSRP";
          max_report_cells = 1;
          report_interv = 120;
          report_amount = 1;
        }
    );
    meas_quant_desc = {
        // averaging filter coefficient
        rsrq_config = 4;
        rsrp_config = 4;
     };
  }
  // Add here more cells
);
...

Expected Behavior

eNodeB starts using two USRPs

Actual Behaviour

Built in RelWithDebInfo mode using 22.10.0.

Opening 2 channels in RF device=UHD with args="serial0=18091172,serial1=171920C"
Supported RF device list: UHD file
[INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_3.15.0.0-release
[INFO] [LOGGING] Fastpath logging disabled at runtime.
Opening USRP channels=2, args: "serial0=18091172,serial1=171920C",type=b200,master_clock_rate=23.04e6
[INFO] [UHD RF] RF UHD Generic instance constructed
[INFO] [B200] Detected Device: B200mini
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test... 
[INFO] [B200] Register loopback test passed
[INFO] [B200] Asking for clock rate 23.040000 MHz... 
[INFO] [B200] Actually got clock rate 23.040000 MHz.
[INFO] [MULTI_USRP]     1) catch time transition at pps edge
[INFO] [MULTI_USRP]     2) set times next pps (synchronously)
/build/srsran-iu8p2h/srsran-22.10/lib/src/phy/rf/rf_uhd_imp.cc:932: uhd_init failed, freeing...
[ERROR] [UHD RF] LookupError: IndexError: multi_usrp: RX channel 1 out of range for configured RX frontends
Error initializing radio.
Saving MAC PCAP (DLT=149) to /tmp/enb_mac.pcap

enb2.log

ismagom commented 1 year ago

Hi, no, this is not possible unfortunately.