1. 22 Jan, 2024 2 commits
  2. 19 Jan, 2024 6 commits
    • Kirill Smelkov's avatar
      software/ors-amarisoft: Merge gnb.jinja2.cfg into enb.jinja2.cfg · f365a440
      Kirill Smelkov authored
      In MultiRU there will be only one ENB which supports all TDD, FDD, LTE and NR
      cells and different types of radio units - all at the same time. This patch is
      preparatory step for that: it merges gnb configuration template into enb
      configuration template, so that enb.jinja2.cfg now serves both enb and gnb
      instances.
      
      In this patch for now we only move code from gnb.jinja2.cfg without changing
      it(*) and wrap parts with `if do_lte` and `if do_nr` correspondingly.
      
      The end result of rendered enb.cfg and gnb.cfg stays the same modulo space
      changes and added innoccent `#define TDD` as Appendix shows.
      
      (*) the only exception is set up of gtp_addr which has practically the same
      code, was wrapped with `if mme_list` in enb and `if amf_list` in gnb, and is now
      wrapped with `if mme_list or amf_list`.
      
      /cc @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1512
      
      --------
      
      Appendix. Diff for rendered enb.cfg and gnb.cfg before and after this patch.
      
      ```
      $ ./pythonwitheggs slapos-render-config.py && (git diff -w --no-index config/enb.cfg.old config/enb.cfg ; git diff -w --no-index config/gnb.cfg.old config/gnb.cfg)
      ```
      
      ```diff
      diff --git a/config/enb.cfg.old b/config/enb.cfg
      index fdf3ab24d..cb46697ea 100644
      --- a/config/enb.cfg.old
      +++ b/config/enb.cfg
      @@ -1,11 +1,15 @@
      
      +
       #define TDD                 1
      
       #define N_RB_DL             50
      +
       #define N_ANTENNA_DL        2
      +
       #define N_ANTENNA_UL        2
      
      +
       {
      
         log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rota>
      @@ -24,7 +28,6 @@
         rx_gain: 43,
      
         com_addr: "127.0.1.2:9001",
      -
         mme_list: [
      
           {
      @@ -33,9 +36,9 @@
      
         ],
      
      +
         gtp_addr: "127.0.1.1",
      
      -
         enb_id: 0x1A2D0,
      
         cell_list: [{
      @@ -49,7 +52,6 @@
             ],
           }
         ],
      -
         cell_default: {
           plmn_list: [
             "00101",
      @@ -226,4 +228,6 @@
         meas_gap_config: "gp0",
         ho_from_meas: true,
         },
      +
      +
       }
      \ No newline at end of file
      diff --git a/config/gnb.cfg.old b/config/gnb.cfg
      index e3d671e09..4e47a2094 100644
      --- a/config/gnb.cfg.old
      +++ b/config/gnb.cfg
      @@ -1,15 +1,21 @@
      
      +
      +#define TDD                 1
      +
      +
       #define N_ANTENNA_DL        2
      
       #define N_ANTENNA_UL        2
      
      +
       {
      
         log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rota>
      
         log_filename: "log/gnb.log",
      
      +
         rf_driver: {
             name: "sdr",
             args: "dev0=/dev/sdr0",
      @@ -30,15 +36,17 @@
         ],
      
      -
      -
         gtp_addr: "127.0.1.1",
      
         gnb_id_bits: 28,
         gnb_id: 0x12345,
         en_dc_support: true,
      -  cell_list: [],
      +
      +  cell_list: [
      +  ],
      +
      +
         nr_cell_list: [
         {
           rf_port: 0,
      ```
      f365a440
    • Kirill Smelkov's avatar
      software/ors-amarisoft: enb.jinja2.cfg: Remove unused cell_count · d078060c
      Kirill Smelkov authored
      It stopped to be used after 49ce8ef5 (software/ors-amarisoft: Provide dedicated
      TAP interface for each Radio Unit).
      
      /cc @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1512
      d078060c
    • Kirill Smelkov's avatar
      software/ors-amarisoft: Push amarisoft-stats.jinja2.py and amarisoft-rf-info.jinja2.py into ru/ · 7502f5a1
      Kirill Smelkov authored
      Because
      
      1) those services are needed and used only by ru/ promises like check_cpri_lock
         and check_rx_saturated.
      2) in general we will need to initialize and setup radio units not only in eNB -
         for example UEsim will use the same code library to initialize radio units.
         Thus the proper place to keep everything required for RU to be operational have to
         be located inside ru/ and activated by that radio-units library.
      
      Push corresponding code from instance-enb to ru/ and do only minor adjustments
      to instance-gnb trying not to break it, since gnb does not currently use rulib,
      and because in the future gnb will be replaced by enb which will be serving
      both lte and nr cells in the same service.
      
      /cc @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1511
      7502f5a1
    • Kirill Smelkov's avatar
      software/ors-amarisoft: Push SSH server code into ru/lopcomm/ · d29ece87
      Kirill Smelkov authored
      Because:
      
      - ssh server is needed for and used by ru/lopcomm/ only
      - in general we will need to initialize and setup radio units not only in eNB -
        for example UEsim will use the same code library to initialize radio units.
        Thus the proper place to keep everything required for RU to be operational have to
        be located inside ru/ and activated by that radio-units library.
      
      /cc @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1510
      d29ece87
    • Kirill Smelkov's avatar
      software/ors-amarisoft: Do not give RU more than /64 · 055bdf14
      Kirill Smelkov authored
      Dnsmasq insists on dhcp-range's prefixlen to be at most 64, which
      triggers the following error if original slaptap is wider than that:
      
          dnsmasq: prefix length must be at least 64 at line 5 of /srv/slapgrid/slappart6/etc/dnsmasq.cfg
      
      -> Fix it by capping provided range to /64
      
      /cc @tomo, @xavier_thompson, @Daetalus
      /reported-by @lu.xu
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1509
      055bdf14
    • Thomas Gambier's avatar
      1494d6d5
  3. 13 Jan, 2024 1 commit
  4. 12 Jan, 2024 1 commit
  5. 11 Jan, 2024 3 commits
  6. 05 Jan, 2024 1 commit
    • Kirill Smelkov's avatar
      format-json, test: Don't force ASCII · cd75648d
      Kirill Smelkov authored
      Currently, due to ensure_ascii=True default of json.dumps, we are
      insisting on our JSON schemas to be ascii-only and all other characters
      to be represented by \uxxxx escapes. So far this was not problematic as
      all our schemas contains only ASCII characters, but upcoming
      ors-amarisoft changes want to use e.g. "→" symbol:
      
          https://lab.nexedi.com/kirr/slapos/blob/b51f5523/software/ors-amarisoft/software.cfg.json#L15
      
      which currently results in failure of json-schema test:
      
          FAIL: test_ors-amarisoft_software_cfg_json_format (slapos.test.test_json_schema.TestJSONSchemaValidation)
          ...
      
          First differing element 14:
          '      "title": "\\u2192  eNB/gNB | Radio Unit",'
          '      "title": "→  eNB/gNB | Radio Unit",'
      
      And in general, in 2023 I think there is no reason to insist on our schemas to
      be ASCII-only: say if one wants to describe something about "α" parameter. It
      would be good to use that α character directly and seeing it in the editor,
      instead of using escapes all the time.
      
      As indicated by below stackoverflow answer "JSON spec requires UTF-8 support by
      decoders": https://stackoverflow.com/a/594881/9456786 , and indeed checking
      JSON specification also confirms that by default JSON decoders shall use UTF-8:
      
          https://datatracker.ietf.org/doc/html/rfc7159#section-8.1
      
      This way, I think, we can switch to UTF-8 safely.
      
      /reviewed-by @jerome, @lu.xu
      /reviewed-on nexedi/slapos!1498
      cd75648d
  7. 04 Jan, 2024 1 commit
  8. 02 Jan, 2024 3 commits
  9. 29 Dec, 2023 1 commit
  10. 28 Dec, 2023 3 commits
  11. 25 Dec, 2023 8 commits
  12. 20 Dec, 2023 1 commit
    • Titouan Soulard's avatar
      software/rapid-cdn: avoid RegExp to validate hostnames · 11336190
      Titouan Soulard authored
      Using RegExp to validate hostnames is a bad practice, and has a lot of reasons to be wrong.
      On top of that, the JSON Schema specification allows, since draft 7, to validate hostnames
      against an IDN hostname, by using the `idn-hostname` format.
      
      With these changes, IDN are now supported (.рф and .中國 for instance), and long TLD
      should not be a problem anymore.
      11336190
  13. 19 Dec, 2023 1 commit
  14. 18 Dec, 2023 2 commits
  15. 15 Dec, 2023 1 commit
  16. 14 Dec, 2023 5 commits