This commit fixes a bug that makes the dataplane traffic of all the
emulated UEs to go through the interface of the first UE (oaitun_ue1).
The fix uses the last octet of the IP assigned to each UE to map it to its
UE_id, which is then used to get its RNTI and the correct PDCP queue.
For the emulator to work properly, the routing tables of the emulated UEs
must also be set. This patch introduces a script (setup_routes.sh) in
cmake_targets/tools that configures the routing tables. This script
must be run at the UE host machine once the UEs have successfully attached,
passing the number of emulated UEs as the argument. For example, in the
case of 16 emulated UEs, one must run "./setup_routes.sh 16".
This completely removes the UESIM_EXPANSION define: it does not compile
at the moment. Its function was to multiplex multiple UEs on the same
TUN interface. However, this functionality is not needed since it is
possible to allocate many TUN devices (i.e., >= 32).
ACKNOWLEDGEMENT:
1. This commit was developed at Vicomtech (https://www.vicomtech.org) under UE project CDN-X-ALL: "CDN edge-cloud computing for efficient cache and reliable streaming aCROSS Aggregated unicast-multicast LinkS"
2. Project funded by Fed4FIRE+ OC5 (https://www.fed4fire.eu)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
-MBMS scheduler developed (oneFrame allocations implemented at this time)
-UE DSLCH schedulers updated: if an eMBMS session running UE DTCH, DCCH will be only scheduled at non MBSFN sufbframes
-eMBMS L2 procedures implemented
-Dedicated MBMS PDCP pipes src/sink enabled (only for TUN)
-BUGFIX eMBMS MAC procedures (wrong indexing at few loops)
-ENB FAPI updated to enable dynamic MBSFN configurations through M2AP (RRC<->MCE)
ACKNOWLEDGEMENT:
1. This commit was developed at Vicomtech (https://www.vicomtech.org) under UE project CDN-X-ALL: "CDN edge-cloud computing for efficient cache and reliable streaming aCROSS Aggregated unicast-multicast LinkS"
2. Project funded by Fed4FIRE+ OC5 (https://www.fed4fire.eu)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
* Instead of partly initializing in read_config_and_init(), everything of
PDCP is initialized in main() of lte-softmodem
* Omit RC.rrc access in RRU through checking of RC.nb_inst > 0
* Includes FlexRAN, i.e. do not start FlexRAN in RRU
* Function pointers to PDCP functions have to be set explicitly (avoid
confusion of multiply setting function pointers)