• Kirill Smelkov's avatar
    software/ors-amarisoft: enb: Switch RU to be a runtime parameter · c4ecf5a0
    Kirill Smelkov authored
    Previously RU type was static parameter of particular software - it was
    possible to instantiate cells only with selected RU type for particular template.
    
    In MultiRU it will be possible to generally instantiate all kind of cells -
    LTE/NR and TDD/FDD all at the same time and each served by a different kind of Radio Unit.
    
    -> Switch RU to be runtime parameter as a preparatory step for that.
    
    There is now only two software releases:
    
      - ORS (software-ors.cfg), and
      - generic (software.cfg).
    
    ORS behaviour stays the same as before here by patch.
    
    For generic each cell in cell_list now needs to explicitly specify which kind
    of RU it wants to use and with which parameters. There are less defaults: for
    example which CPRI board and SFP port to use now needs to be explicitly
    specified.
    
    Only ORS tests are left for now. The old test{LOPCOMM,M2RU,ANY} did not
    exercised any driver-specific functionality and until recently were not run at
    all due to '-' in their file name. We remove them for now and we will add tests
    for generic in a soon follow-up patch after switching LTE/NR cell type to also
    be a runtime parameter.
    
    Backward compatibility:
    
      * nothing changes for ORS
      * for generic all RU-related parameters are now moved from cell_list to
        cell_list.ru, there are several renames and besides ru_type ru_link_type also
        needs to be specified. Please see new RU-related JSON schemas added into
        ru/ for details. Cell_list itself now also does not provide a default with
        one cell - if no cells are configured no cells are instantiated.
    
    --------
    
    Appendix. Diff for rendered enb.cfg and gnb.cfg before and after this patch:
    
    ```
    $ ./pythonwitheggs slapos-render-config.py && xdiff -w config/{old,out}
    ```
    
    ```diff
    diff --git a/config/old/enb.cfg b/config/out/enb.cfg
    index 1b39f7044..89862f1d9 100644
    --- a/config/old/enb.cfg
    +++ b/config/out/enb.cfg
    @@ -6,7 +6,7 @@
    
       // Radio Units
       rf_driver: {
    -      // default-RU 2T2R  (ors)
    +      // CELL-RU 2T2R  (sdr)
           name: "sdr",
           args: "dev0=/dev/sdr0",
           rx_antenna:"tx_rx",
    @@ -27,7 +27,7 @@
       // LTE cells
       cell_list: [
    
    -    // default  (default-RU)
    +    // CELL  (CELL-RU)
         {
           rf_port:      0,
           n_antenna_dl: 2,
    @@ -90,11 +90,11 @@
           srs_hopping_bandwidth: 0,
         },
    
    -    drb_config: "default-drb.cfg",
    +    drb_config: "CELL-drb.cfg",
    
         sib_sched_list: [
           {
    -        filename: "default-sib23.asn",
    +        filename: "CELL-sib23.asn",
             si_periodicity: 16,
           },
         ],
    diff --git a/config/old/gnb.cfg b/config/out/gnb.cfg
    index 05deb5ada..1df699a22 100644
    --- a/config/old/gnb.cfg
    +++ b/config/out/gnb.cfg
    @@ -6,7 +6,7 @@
    
       // Radio Units
       rf_driver: {
    -      // default-RU 2T2R  (ors)
    +      // CELL-RU 2T2R  (sdr)
           name: "sdr",
           args: "dev0=/dev/sdr0",
           rx_antenna:"tx_rx",
    @@ -35,7 +35,7 @@
       // NR cells
       nr_cell_list: [
    
    -      // default  (default-RU)
    +      // CELL  (CELL-RU)
           {
             rf_port:      0,
             n_antenna_dl: 2,
    @@ -136,7 +136,7 @@
               ],
             },
    
    -        drb_config: "default-drb.cfg",
    +        drb_config: "CELL-drb.cfg",
           },
       ],
    ```
    c4ecf5a0
input-schema.json 258 Bytes