An error occurred fetching the project authors.
  1. 11 Dec, 2024 1 commit
    • Joanne Hugé's avatar
      simpleran/ue: fixes · b50f7e03
      Joanne Hugé authored
      - add power_on parameter
      - fix amarisoft_version parameter in ue
      - fix com address in UE configuration
      - add nginx for the websocket
      b50f7e03
  2. 26 Nov, 2024 1 commit
  3. 09 Oct, 2024 4 commits
  4. 13 Feb, 2024 5 commits
    • Kirill Smelkov's avatar
      software/ors-amarisoft: ue: Generalize UEsim · 30179be5
      Kirill Smelkov authored
      Rework UEsim to be able to work with multiple cells, multiple radio units(*),
      multiple UE all at the same time. RU, CELLs and UEs are now configured,
      simiularly to eNB, via shared instances. Add tests.
      
      Contrary to ORS don't care about backward compatibility here because currently
      we have just a few UEsim deployments and migrating them should be easy.
      
      Please see added schemas, tests and updates slapos-render-config on how to use
      the new system.
      
      (*) contrary to eNB UEsim does not allow to use one RU for two cells,
      30179be5
    • Kirill Smelkov's avatar
      software/ors-amarisoft: enb+ue: Switch to JSON schemas as the primary source... · bd55f250
      Kirill Smelkov authored
      software/ors-amarisoft: enb+ue: Switch to JSON schemas as the primary source of defaults; stop rendering them
      
      JSON schemas for eNB/gNB and UE specify defaults for many parameters and the
      software release use those defaults when parameters are not explicitly
      specified on the instantiation.
      
      Some primary defaults - for bandwidth and n_antenna DL/UL - were setup in
      render-templates and propagated through all places to avoid duplicating them.
      
      Defaults for many other parameters were duplicated in both JSON schemas and in
      the code that handles those parameters.
      
      To avoid this duplication we either need to extend render-templates and put
      defaults for all the other many parameters there, or just switch to JSON
      schemas to be primary source of those defaults, and use the schemas on
      instantiation by automatically loading them and extracting defaults for all
      parameters from there.
      
      I decided to go the second way because it avoids additional layer of rendering
      and the need to keep on remembering not to put raw defaults in the JSON
      schemas. Evidently this is the same approach that Rapid CDN is going to take
      (see nexedi/slapos!1380 for details).
      
      In this patch we stop rendering JSON schemas and keep their last rendered
      result. In the later patches we will handle formed duplication there and go on
      to further merge enb and gnb.
      
      UE is handled brutally for now, because it will be much reworked after.
      
      Actually loading JSON schemas is left as TODO as I do not have resources to
      implement that now. Still this step is needed as precondition for further
      patches. I hope bit of duplication for enb/gnb parameters is ok, given that
      they are now centrally maintained and corresponding TODO warning is in place.
      bd55f250
    • Kirill Smelkov's avatar
      software/ors-amarisoft: ue: Switch UE type to be runtime parameter · e0743e89
      Kirill Smelkov authored
      Previously type of emulated UE was static parameter of particular software
      release - it was possible to simulate UE and attach to cells only of the RAT of
      particular template.
      
      In MultiRU it will be possible to generally emulate all kind of UEs - both LTE
      and NR all at the same time, and attach them to LTE and NR cells
      simultaneously.
      
      -> Switch type of UE to be runtime parameter as a preparatory step for that.
      
      URLs of software releases changes (we remove lte and nr in names), but here we
      do not care about backward compatibility because currently there are just a few
      UEsim deployments and migration should be easy.
      e0743e89
    • Kirill Smelkov's avatar
      software/ors-amarisoft: ue: Make default K and IMSI to be common for LTE and NR · af96697d
      Kirill Smelkov authored
      K and IMSI are orthogonal to RAT and, similarly to how we keep default
      n_antenna_dl/ul independent of RAT we can do so with this default UE parameters.
      af96697d
    • Kirill Smelkov's avatar
      software/ors-amarisoft: enb+ue: Stop using slap_configuration to propagate LTE and NR defaults · 563a21ca
      Kirill Smelkov authored
      instance-enb and instance-ue currently setup that slap_configuration with
      LTE/NR defaults to be accessible from enb.jinja2.cfg and ue.jinja2.cfg. But we
      will soon need to have access to those defaults from slaplte.jinja2 as well,
      and it will break if left as is because when slaplte is imported from e.g.
      enb.jinja2 - it will work, but when slaplte is imported from instance-enb it
      will break because parent of instance-enb (instance.cfg) does not setup
      defaults in slap_configuration at that level.
      
      The fix is to either duplicate slap_configuration at instance.cfg level, or to
      switch access to the defaults to go via original default_* parameters.
      
      We go the second way for simplicity.
      563a21ca
  5. 30 Jan, 2024 1 commit
    • Kirill Smelkov's avatar
      software/ors-amarisoft: test: Preprocess enb.cfg & co on YAML loading · d8b0a558
      Kirill Smelkov authored
      Current enb config is already quite complex and with MultiRU it will be growing
      more - both with added features and with more sections emitted because there
      will be multiple radio units, multiple cells and cross cell interactions. So
      for clarity we will want to annotate with a comment to which cell or ru object
      a section belongs, or to which cell-cell pair a particular interaction belongs.
      
      Amarisoft supports C-style comments and preprocessor directives out of the box,
      but if we use them in the configuration files, yaml.load, that we use in the
      test to load generated configs, will break, because // and /* ... */ is not
      valid YAML. It looks like Amarisoft does preprocessing as a separate step
      before further loading given configuration via yaml.
      
      So to be able to use the comments and still have tests working we need to do
      the same - in the tests preprocess the files before feeding them to yaml loader.
      
      -> Do that with the help of https://pypi.org/project/pcpp/
      
      In my view that library has good quality and in my experience it worked
      flawlessly. Anyway we need it to only handle comments, not sophisticated CPP
      features, and for that it works just ok.
      
      Add some comments to existing enb.cfg and ue.cfg to make sure it really works.
      Those are simple comments, and in current state it they might seem as not 100%
      necessary, but with more upcoming config changes it would be good to have those
      descriptionary anchors present in the generated configs, so I suggest we add them.
      Anyway they should not do any harm at all.
      
      /cc @jhuge, @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /proposed-for-review-on !1526
      /reviewed-by TrustMe
      d8b0a558
  6. 25 Jan, 2024 1 commit
    • Kirill Smelkov's avatar
      software/ors-amarisoft: ue.jinja2.cfg: Fix thinko regarding LTE bandwidth · 052606f2
      Kirill Smelkov authored
      As Amarisoft documentation says in UEsim LTE bandwidth is defined in MHz, nor in RB:
      
          https://tech-academy.amarisoft.com/lteue.doc#prop.bandwidth
      
      I checked the history and it was like this since 2015-10-28 release.
      
      -> Fix emitted bandwidth for LTE cell.
      
      Diff for rendered ue-lte.cfg:
      
      ```
      $ git diff --no-index config/{old,out}
      ```
      
      ```diff
      --- a/config/old/ue-lte.cfg
      +++ b/config/out/ue-lte.cfg
      @@ -1,5 +1,4 @@
      
      -#define N_RB_DL             50
      
       {
         log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
      @@ -20,7 +19,7 @@ rf_driver: {
           multi_ue: true,
           cells: [
             {
      -        bandwidth: N_RB_DL,
      +        bandwidth: 10,
               dl_earfcn: 0,
               n_antenna_dl: 2,
               n_antenna_ul: 2,
      ```
      
      By coincidence this removes last usage of C Preprocessor from ue.jinja2.cfg
      and, similarly to enb.jinja2.cfg, makes it to be Jinja2-only.
      
      /cc @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1521
      052606f2
  7. 23 Jan, 2024 1 commit
    • Kirill Smelkov's avatar
      software/ors-amarisoft: Merge ue-lte.jinja2.cfg and ue-nr.jinja2.cfg into ue.jinja2.cfg · 9179f739
      Kirill Smelkov authored
      Similarly to f365a440 (software/ors-amarisoft: Merge gnb.jinja2.cfg into
      enb.jinja2.cfg) merge LTE and NR configuration files for UEsim into single
      config as the preparation for MultiRU - there UEsim will be also handling TDD,
      FDD, LTE and NR cells and UEs all at the same time.
      
      In this patch for now we only move code without changing it and wrap parts with
      `if do_lte` and `if do_nr` correspondingly.  The end result of rendered
      ue-lte.cfg and ue-nr.cfg stays practically the same as shown in the appendix.
      
      /cc @lu.xu, @tomo, @xavier_thompson, @Daetalus
      /reviewed-by @jhuge
      /reviewed-on nexedi/slapos!1513
      
      --------
      
      Appendix. Diff for rendered ue-*.cfg before and after this patch.
      
      ```
      $ ./pythonwitheggs slapos-render-config.py && git diff --no-index -w config/old/ config/out/
      ```
      
      ```diff
      diff --git a/config/old/ue-lte.cfg b/config/out/ue-lte.cfg
      index 7f1530daf..836a95e79 100644
      --- a/config/old/ue-lte.cfg
      +++ b/config/out/ue-lte.cfg
      @@ -1,5 +1,6 @@
      
       #define N_RB_DL             50
      +
       {
         log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
         log_filename: "log/ue.log",
      @@ -14,7 +15,8 @@ rf_driver: {
       },
         tx_gain: 60,
         rx_gain: 40,
      -  cell_groups: [{
      +  cell_groups: [
      +  {
           multi_ue: true,
           cells: [
             {
      @@ -27,7 +29,8 @@ rf_driver: {
           ],
           pdcch_decode_opt: false,
           pdcch_decode_opt_threshold: 0.1,
      -  }],
      +  },
      +  ],
         ue_list: [
           {
           sim_algo: "milenage",
      @@ -38,8 +41,8 @@ rf_driver: {
           impi: "",
           imsi: "001010123456789",
           K: "00112233445566778899aabbccddeeff",
      -    rue_addr: "host1",
           ue_category: 12,
      +    rue_addr: "host1",
           tun_setup_script: "ue-ifup",
           apn: "internet",
           }
      diff --git a/config/old/ue-nr.cfg b/config/out/ue-nr.cfg
      index 41758ab6f..631e1ab1e 100644
      --- a/config/old/ue-nr.cfg
      +++ b/config/out/ue-nr.cfg
      @@ -1,3 +1,5 @@
      +
      +
       {
         log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
         log_filename: "log/ue.log",
      @@ -12,7 +14,8 @@ rf_driver: {
       },
         tx_gain: 60,
         rx_gain: 40,
      -    cell_groups: [{
      +  cell_groups: [
      +  {
           group_type: "nr",
           multi_ue: false,
           cells: [{
      @@ -26,7 +29,8 @@ rf_driver: {
             n_antenna_ul: 2,
             }
           ],
      -    }],
      +  },
      +  ],
         ue_list: [
           {
           sim_algo: "milenage",
      @@ -37,11 +41,11 @@ rf_driver: {
           impi: "",
           imsi: "001010123456789",
           K: "00112233445566778899aabbccddeeff",
      -      rue_addr: "host2",
           as_release: 15,
           ue_category: "nr",
      +    rue_addr: "host2",
           tun_setup_script: "ue-ifup",
           apn: "internet",
           }
      -    ]
      +  ],
       }
      ```
      9179f739
  8. 04 Sep, 2023 1 commit
  9. 19 Jul, 2023 1 commit
  10. 13 Oct, 2022 1 commit
  11. 11 Oct, 2022 1 commit
  12. 05 Oct, 2022 1 commit