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

Change of channel at runtime #629

Closed lucabaldesi closed 3 years ago

lucabaldesi commented 3 years ago

Hi, first, thank you for this project! I am experimenting with eNodeB and I am currently trying to reconfigure at runtime (according to a trigger function I still have to define) the channel frequency (or the earfcn). So far, I have identified two ways to accomplish this,

  1. Through direct RRC reconfigure messages, following TS 36.331 v.10.22.0;
  2. Defining multiple cells (sectors) for the same eNodeB (following [1]) and triggering a handover;

The first option, being more straightforward, makes more sense, but I could not find a direct mapping in the code API (rcc_mobility.h). I imagine I may accomplish this by using the function handle_ho_req() as a template.

Questions:

  1. is it possible to change the channel frequency (earfcn) of the eNodeB at runtime? In general, is it possible to change the values of its configuration after it has booted?
  2. can I add/remove new cells (sectors) to a running eNodeB dynamically?
  3. do you have any suggestion on how to implement the reconfiguration message function just to change the frequency/earfcn?

Best, Luca

[1] https://docs.srslte.com/en/latest/app_notes/source/handover/source/index.html#handover-appnote

andrepuschmann commented 3 years ago

Hey, I am afraid all what your asking for isn't implemented. Cells are statically configured and loaded at startup. They can't be changed at run time.

Thanks

SumitEurecom commented 8 months ago

Can we change the Tx and Rx gains at run time ?

stackprogramer commented 3 weeks ago

Did anyone find a solution for changing parameters in real time?

lucabaldesi commented 2 weeks ago

Hi, in the end I implemented an interface that at run time allows the change of the frequency. It is not possible to add/remove a cell but I configured two cells and kept one active while I was reconfiguring the other, then triggered a seamless handover of the clients from one cell to another (as described in the 3GPP standard).

For the technical explanation: https://baldesi.ovh/download/Baldesi2022Charm.pdf Code is available here: https://github.com/lucabaldesi/srsRAN

stackprogramer commented 2 weeks ago

@lucabaldesi Great. Thanks very much. I will examine it.