diff --git a/ci-scripts/conf_files/channelmod_rfsimu.conf b/ci-scripts/conf_files/channelmod_rfsimu.conf
index c7abffa8785c00c9b8d3ec89fa1a8fdbca61c359..ba115df04cc6f63accc503f2d6e3061e0b97f473 100644
--- a/ci-scripts/conf_files/channelmod_rfsimu.conf
+++ b/ci-scripts/conf_files/channelmod_rfsimu.conf
@@ -1,6 +1,6 @@
-/* configuration for channel modelisation */
-/* To be included in main config file when */
-/* channel modelisation is used (rfsimulator with chanmod options enabled) */
+#/* configuration for channel modelisation */
+#/* To be included in main config file when */
+#/* channel modelisation is used (rfsimulator with chanmod options enabled) */
 channelmod = { 
   max_chan=10;
   modellist="modellist_rfsimu_1";
@@ -15,14 +15,14 @@ channelmod = {
         ds_tdl                           = 0;      
     },
     {
-        model_name                       = "rfsimu_channel_ue0"
+        model_name                       = "rfsimu_channel_ue1"
       	type                             = "AWGN";			  
       	ploss_dB                         = 0;
         noise_power_dB                   = 0; 
         forgetfact                       = 0;  
         offset                           = 0;      
         ds_tdl                           = 0;      
-    },    
+    }    
   );
   modellist_rfsimu_2 = (
     {
@@ -35,14 +35,23 @@ channelmod = {
         ds_tdl                           = 0;      
     },
     {
-        model_name                       = "rfsimu_channel_ue0"
+        model_name                       = "rfsimu_channel_ue1"
+      	type                             = "AWGN";			  
+      	ploss_dB                         = 0;
+        noise_power_dB                   = 0; 
+        forgetfact                       = 0;  
+        offset                           = 0;      
+        ds_tdl                           = 0;      
+    },
+    {
+        model_name                       = "rfsimu_channel_ue2"
       	type                             = "AWGN";			  
       	ploss_dB                         = 0;
         noise_power_dB                   = 0; 
         forgetfact                       = 0;  
         offset                           = 0;      
         ds_tdl                           = 0;      
-    },    
+    }    
   );  
 };
 
diff --git a/openair1/SIMULATION/TOOLS/DOC/arch.md b/openair1/SIMULATION/TOOLS/DOC/arch.md
new file mode 100644
index 0000000000000000000000000000000000000000..30be337829d05000d6cfa42c5174c0bbd323d55a
--- /dev/null
+++ b/openair1/SIMULATION/TOOLS/DOC/arch.md
@@ -0,0 +1,9 @@
+# Channel simulation source files
+
+1. [random_channel.c](../random_channel.c) 
+1. [sim.h](../sim.h) 
+
+
+
+[channel simulation  main page](channel_simulation.md)
+[oai Wikis home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)
\ No newline at end of file
diff --git a/openair1/SIMULATION/TOOLS/DOC/channel_simulation.md b/openair1/SIMULATION/TOOLS/DOC/channel_simulation.md
new file mode 100644
index 0000000000000000000000000000000000000000..be2b987b409ed98363d516da1a11617b28409b65
--- /dev/null
+++ b/openair1/SIMULATION/TOOLS/DOC/channel_simulation.md
@@ -0,0 +1,13 @@
+# OAI channel simulation feature
+
+oai includes a channel simulation feature that any component can use to alter time domain samples of a RF channel by applying pre-defined models as defined, for example, in 3GPP TR 36.873 or TR 38.901
+
+Definition, configuration and run-time modification of a channel model are implemented in common code included in UEs, gNb, eNB and  used when running with  the rfsimulator or the L1 simulator. Phy simulators are also using channel simulation but configuration is done via dedicated command line options. The rfsimulator is the only option to get access to all the configurations and run-time modifications features of oai channel simulation.
+
+## Documentation
+
+* [runtime usage](rtusage.md)
+* [developer usage](devusage.md)
+* [module architecture](arch.md)
+
+[oai Wikis home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)
diff --git a/openair1/SIMULATION/TOOLS/DOC/devusage.md b/openair1/SIMULATION/TOOLS/DOC/devusage.md
new file mode 100644
index 0000000000000000000000000000000000000000..8fa6b3fe7a4761c4a969d2072d784a10a874548a
--- /dev/null
+++ b/openair1/SIMULATION/TOOLS/DOC/devusage.md
@@ -0,0 +1,7 @@
+### channel simulation  developer usage
+
+
+[Configuring the channel simulation](rtusage.md)
+
+[channel simulation main page](channel_simulation.md)
+[oai Wikis home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)
\ No newline at end of file
diff --git a/openair1/SIMULATION/TOOLS/DOC/rtusage.md b/openair1/SIMULATION/TOOLS/DOC/rtusage.md
new file mode 100644
index 0000000000000000000000000000000000000000..37fc62b496e9aa9769de4e2285f481c5f7ebe2d1
--- /dev/null
+++ b/openair1/SIMULATION/TOOLS/DOC/rtusage.md
@@ -0,0 +1,69 @@
+## configuring the channel simulation
+Oai channel simulation is using the [config module](../../../config/config.md) to get its parameters at init time. The [telnet server](../../telnetsrv/DOC/telnetsrv.md) includes a set of commands which can be used to dynamically modify some channel model parameters
+
+All channel simulation parameters are defined in the `channelmod` section. Most parameters are specific to a channel model and  are only used by the rfsimulator.
+
+### global parameters
+
+| name | type | default | description |
+|:---:|:---:|:---:|:----|
+| `max_chan` | integer | `25` | Maximum number of channel model that can be defined in the system. Must be greater than the number of model definitions  in the model list loaded at init time. |
+| `modellist` | character string | `DefaultChannelList` | Name of the channel models list to load at init time. |
+
+### Model lists
+
+Several model lists can be defined in the oai configuration file. One, defined by the `modellist` parameter is loaded at init time. In the configuration file each model list item describes a channel model using a group of parameters:
+
+| parameter name | type | default | description |
+|:---:|:---:|:---:|:----|
+| `model name` | character string | mandatory |name of the model, as used in the code to retrieve a model definition|
+| `type` |                  | `AWGN` | name of the channel modelization algorithm applied on rf signal. The list of available model types can be listed via the [telnet server](../../telnetsrv/DOC/telnetsrv.md) or by entering an invalid type name |
+| `ploss_dB` |   real (float)   |  | path loss of the channel, in dB |
+| `noise_power_dB` |  real (double)   |  | noise of the channel in dB |
+| `forgetfact` |  real (double)   |  |  |
+| `offset` |     integer      |  |  |
+| `ds_tdl` |   real double    |  |  |
+
+Channel simulation parameters can also be specified on the command line:
+
+```bash
+./lte-softmodem -O ../../../ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf --noS1 --rfsim --rfsimulator.options chanmod --rfsimulator.serveraddr enb --telnetsrv --channelmod.modellist modellist_rfsimu_2 --channelmod.modellist_rfsimu_2.[1].offset 120
+```
+### Using the telnet server to modify channel simulator parameters
+The telnet server includes a `channelmod` command which can be used to dynamically modify some channel model parameters. This command is only available when channel simulation is enabled (via `rfsimulator.options chanmod` option when running the rfsimulator.  `channelmod` command has its own help:
+
+```
+$ telnet 127.0.0.1 9090
+Trying 127.0.0.1...
+Connected to 127.0.0.1.
+Escape character is '^]'.
+ 
+softmodem_enb> help
+.....................................
+   module 6 = channelmod:
+      channelmod help 
+      channelmod show <predef,current>
+      channelmod modify <channelid> <param> <value>
+   module 7 = rfsimu:
+      rfsimu setmodel <model name> <model type>
+softmodem_enb> channelmod help
+channelmod commands can be used to display or modify channel models parameters
+channelmod show predef: display predefined model algorithms available in oai
+channelmod show current: display the currently used models in the running executable
+channelmod modify <model index> <param name> <param value>: set the specified parameters in a current model to the given value
+                  <model index> specifies the model, the show current model command can be used to list the current models indexes
+                  <param name> can be one of "riceanf", "aoa", "randaoa", "ploss", "noise_power_dB", "offset", "forgetf"
+softmodem_enb> 
+
+```
+
+
+
+
+
+
+
+The [rfsimulator documentation](../../../../targets/ARCH/rfsimulator/README.md ) has also some specific information when using the channel simulation via this tool. 
+
+[channel simulation main page](channel_simulation.md)
+[oai Wikis home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)
\ No newline at end of file
diff --git a/openair1/SIMULATION/TOOLS/random_channel.c b/openair1/SIMULATION/TOOLS/random_channel.c
index d45abeb711d28c120aaf7ff9c90d61c90058d344..dfe1d6a13d06d989ae2b7558e49362bbe923e3f6 100644
--- a/openair1/SIMULATION/TOOLS/random_channel.c
+++ b/openair1/SIMULATION/TOOLS/random_channel.c
@@ -2029,53 +2029,6 @@ void init_channelmod(void) {
   }
 } /* init_channelmod */
 
-void load_channellist(uint8_t nb_tx, uint8_t nb_rx, double sampling_rate, double channel_bandwidth) {
-  
-  paramdef_t channelmod_params[] = CHANNELMOD_PARAMS_DESC;
-  
-  int numparams=sizeof(channelmod_params)/sizeof(paramdef_t);
-  int ret = config_get( channelmod_params,numparams,CHANNELMOD_SECTION);
-  AssertFatal(ret >= 0, "configuration couldn't be performed");
-    defined_channels=calloc(max_chan,sizeof( channel_desc_t*));
-  AssertFatal(defined_channels!=NULL, "couldn't allocate %u channel descriptors\n",max_chan);
-
-  
-  paramdef_t achannel_params[] = CHANNELMOD_MODEL_PARAMS_DESC;
-  paramlist_def_t channel_list;
-  memset(&channel_list,0,sizeof(paramlist_def_t));
-  strncpy(channel_list.listname,modellist_name,MAX_OPTNAME_SIZE-1);
-
-  numparams = sizeof(achannel_params)/sizeof(paramdef_t);
-  config_getlist( &channel_list,achannel_params,numparams, CHANNELMOD_SECTION);
-  AssertFatal(channel_list.numelt>0, "List %s.%s not found in config filee\n",CHANNELMOD_SECTION,CHANNELMOD_MODELLIST_PARANAME);
-  int pindex_NAME = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_NAME_PNAME);  
-  int pindex_DT = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_DT_PNAME );
-  int pindex_FF = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_FF_PNAME );
-  int pindex_CO = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_CO_PNAME );
-  int pindex_PL = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_PL_PNAME );
-  int pindex_NP = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_NP_PNAME );
-  int pindex_TYPE = config_paramidx_fromname(channelmod_params,numparams, CHANNELMOD_MODEL_TYPE_PNAME);
-  
-  for (int i=0; i<channel_list.numelt; i++) {
-
-    int modid = modelid_fromname( *(channel_list.paramarray[i][pindex_TYPE].strptr) );
-    if (modid <0) {
-     LOG_E(OCM,"Valid channel model types:\n");
-     for (int m=0; channelmod_names[i].name != NULL ; m++) {
-          printf(" %s ", map_int_to_str(channelmod_names,m ));
-      }
-      AssertFatal(0, "\n  Choose a valid model type\n");
-    }
-    channel_desc_t *channeldesc_p = new_channel_desc_scm(nb_tx,nb_rx,modid,sampling_rate,channel_bandwidth,
-				                                         *(channel_list.paramarray[i][pindex_DT].dblptr), *(channel_list.paramarray[i][pindex_FF].dblptr), 
-				                                         *(channel_list.paramarray[i][pindex_CO].iptr), *(channel_list.paramarray[i][pindex_PL].dblptr),
-				                                         *(channel_list.paramarray[i][pindex_NP].dblptr) );
-	AssertFatal( (channeldesc_p!= NULL), "Could not allocate channel %s type %s \n",*(channelmod_params[pindex_NAME].strptr), *(channelmod_params[pindex_TYPE].strptr));
-	channeldesc_p->model_name = strdup(*(channel_list.paramarray[i][pindex_NAME].strptr));
-	LOG_I(OCM,"Model %s type %s allocated from config file, list %s\n",*(channel_list.paramarray[i][pindex_NAME].strptr), 
-		  *(channel_list.paramarray[i][pindex_TYPE].strptr), modellist_name);
-  } /* for loop on channel_list */
-} /* init_channelmod */
 
 int load_channellist(uint8_t nb_tx, uint8_t nb_rx, double sampling_rate, double channel_bandwidth) {
   paramdef_t achannel_params[] = CHANNELMOD_MODEL_PARAMS_DESC;