|
1 | | -# LTE-based 5G Broadcast Transmitter |
2 | | - |
3 | | -This repository holds the standalone LTE-based 5G Broadcast transmitter part of the 5G-MAG Reference Tools |
| 1 | +# LTE-based 5G Broadcast Transmitter |
4 | 2 |
|
5 | 3 | ## Introduction |
6 | 4 |
|
7 | | -[] |
| 5 | +This repository holds the standalone LTE-based 5G Broadcast transmitter part of the 5G-MAG Reference Tools. |
8 | 6 |
|
9 | 7 | ### Specifications |
10 | 8 |
|
11 | | -A list of specification related to this repository is available in the [Standards Wiki](https://github.com/5G-MAG/Standards/wiki/MBMS-&-LTE-based-5G-Broadcast:-Relevant-Specifications). |
| 9 | +A list of specification related to this repository is available in |
| 10 | +the [Standards Wiki](https://github.com/5G-MAG/Standards/wiki/MBMS-&-LTE-based-5G-Broadcast:-Relevant-Specifications). |
12 | 11 |
|
13 | 12 | ### About the implementation |
14 | 13 |
|
15 | | -This implementation of an LTE-Based 5G Broadcast transmitter is based on the existing MBMS implementation in [srsRAN_4G](https://github.com/srsran/srsRAN_4G) eNodeB, modified to include a feature set of 3GPP Rel-17 LTE-based 5G Terrestrial Broadcast. It also includes a basic MBMS gateway which creates a virtual network interface sgi_mb which receives IP multimedia traffic. Note that an instance of an EPC is also required to be executed as part of the srsRAN_4G implementation. The eNodeB generates an LTE-based 5G Broadcast radio-frequency signal (I/Q samples) which can then be input to a USRP. |
| 14 | +This implementation of an LTE-Based 5G Broadcast transmitter is based on the existing MBMS implementation |
| 15 | +in [srsRAN_4G](https://github.com/srsran/srsRAN_4G) eNodeB, modified to include a feature set of 3GPP Rel-17 LTE-based |
| 16 | +5G Terrestrial Broadcast. It also includes a basic MBMS gateway which creates a virtual network interface sgi_mb which |
| 17 | +receives IP multimedia traffic. Note that an instance of an EPC is also required to be executed as part of the srsRAN_4G |
| 18 | +implementation. The eNodeB generates an LTE-based 5G Broadcast radio-frequency signal (I/Q samples) which can then be |
| 19 | +input to a USRP. |
16 | 20 |
|
17 | | -Note that the implementation lacks an M2 interface, therefore control plane data is obtained from configuration files. Only a single MCH can be transmitted. |
| 21 | +Note that the implementation lacks an M2 interface, therefore control plane data is obtained from configuration files. |
| 22 | +Only a single MCH can be transmitted. |
18 | 23 |
|
19 | | -Additional information can be found in the srsRAN documentation: https://docs.srsran.com/projects/4g/en/latest/app_notes/source/embms/source/index.html |
| 24 | +Additional information can be found in the srsRAN |
| 25 | +documentation: https://docs.srsran.com/projects/4g/en/latest/app_notes/source/embms/source/index.html |
20 | 26 |
|
21 | 27 | A list of currently supported features is available [here](https://github.com/5G-MAG/rt-mbms-tx/wiki/Features). |
22 | 28 |
|
23 | 29 | ## Install dependencies |
24 | 30 |
|
25 | 31 | In Ubuntu: |
| 32 | + |
26 | 33 | ```` |
27 | 34 | sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev |
28 | 35 | ```` |
@@ -62,36 +69,46 @@ srsran_install_configs.sh user |
62 | 69 |
|
63 | 70 | ## Running |
64 | 71 |
|
65 | | -Enter to the build directory and lunch the MBMS gateway, and the srsEPC, in diferent terminals. |
66 | | - |
| 72 | +Open the `build` directory and launch the MBMS gateway, and the srsEPC, in different terminals. |
| 73 | + |
67 | 74 | ```` |
68 | 75 | sudo ./srsepc/src/srsmbms |
69 | 76 | sudo ./srsepc/src/srsepc |
70 | 77 | ```` |
71 | | - |
72 | | -It could be launch in background appending `` & `` at the end of the command |
73 | | - |
74 | | -After running the MBMS gateway, executing `` ip a `` in the terminal we should see a network interface called `` sgi_mb ``. We need now to route the IP traffic to this new interface. Since it's a multicast interface we use smcroutectl. |
75 | | - |
76 | | -Restarting the multicast route table: |
77 | | - |
78 | | -`` sudo smcroutectl restart `` |
79 | | - |
80 | | -Add a rule to redirect the traffic from the physical network interface of the PC with a specific IP address, to the sgi_mb. To know whats the name of the physical network interface run `` ip a `` in the termianl an look for one with a name similar to en0 or enp0. |
81 | | - |
82 | | -`` sudo smcroutectl add eno0 239.255.1.1 sgi_mb `` |
83 | | - |
84 | | -The IP address is the IP address source of the incoming IP traffic. |
85 | | - |
86 | | -If the IP traffic is been generated in the PC using PCAP, ffmpeg or similar, it is recommended to create a rule that avoids the multicast traffic goes to the network where the PC are connected, flooding it with multicast traffic. That can be avoided with the following: |
87 | | - |
88 | | -`` sudo route add -net 239.255.1.0 netmask 255.255.255.0 dev sgi_mb `` |
89 | | - |
90 | | -At this point we can create an IP transmission from a multimedia file using ffmpeg, from example, with the following command we will transmit a MPEG TS to the transmitter endlessly: |
91 | | - |
92 | | -`` while true; do ffmpeg -re -i file.ts -c copy -map 0 -f rtp_mpegts rtp://239.255.1.1:9988; done `` |
93 | | - |
94 | | -The last step is to lunch the eNodeB. The eNode needs the conf files where it reads the configuration values. Copy `` the sib.conf.mbsfn `` to the folder `` rt-tx-poc/build/ ``, and enb.conf to `` /root/.config/srsran/enb.conf ``. Lunch the eNB with `` sudo ./srsenb``. |
| 78 | + |
| 79 | +Both can be launched in the background appending `` & `` at the end of the command. |
| 80 | + |
| 81 | +After running the MBMS gateway, executing `` ip a `` in the terminal should show a network interface |
| 82 | +called `` sgi_mb ``. The IP traffic needs to be routed to this new interface. Since it's a multicast interface |
| 83 | +`smcroutectl` is used. |
| 84 | + |
| 85 | +Run the following command to restart the multicast route table: |
| 86 | + |
| 87 | +`` sudo smcroutectl restart `` |
| 88 | + |
| 89 | +Add a rule to redirect the traffic from the physical network interface of the PC with a specific IP address, to the |
| 90 | +sgi_mb. To get the name of the physical network interface run `` ip a `` in the terminal and look for an interface with |
| 91 | +a |
| 92 | +name similar to en0 or enp0. |
| 93 | + |
| 94 | +`` sudo smcroutectl add eno0 239.255.1.1 sgi_mb `` |
| 95 | + |
| 96 | +The IP address is the source of the incoming IP traffic. |
| 97 | + |
| 98 | +If the IP traffic is been generated on the PC using PCAP, ffmpeg or similar, it is recommended to create a rule that |
| 99 | +avoids the multicast traffic to go to the network where the PC is connected to avoid flooding it with multicast traffic. |
| 100 | +For that reason run the following command: |
| 101 | + |
| 102 | +`` sudo route add -net 239.255.1.0 netmask 255.255.255.0 dev sgi_mb `` |
| 103 | + |
| 104 | +At this point an IP transmission from a multimedia file using ffmpeg can be created. As an example, execute the following |
| 105 | +command to transmit an infinite running MPEG TS to the transmitter: |
| 106 | + |
| 107 | +`` while true; do ffmpeg -re -i file.ts -c copy -map 0 -f rtp_mpegts rtp://239.255.1.1:9988; done `` |
| 108 | + |
| 109 | +The last step is to launch the eNodeB. The eNodeB needs the following configuration files: |
| 110 | +Copy `` the sib.conf.mbsfn `` to the folder `` rt-tx-poc/build/ ``, and `enb.conf` to `` /root/.config/srsran/enb.conf ``. |
| 111 | +Launch the eNB with `` sudo ./srsenb``. |
95 | 112 |
|
96 | 113 | ## Development |
97 | 114 |
|
|
0 commit comments