diff --git a/README.md b/README.md index 4a68f520a..8b025d79e 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,10 @@ srsUE Features -------------- * Cell search and synchronization procedure for the UE - * Soft USIM supporting Milenage and XOR authentication + * Soft USIM supporting Milenage and XOR authentication + * Hard USIM support using PCSC framework * Virtual network interface *tun_srsue* created upon network attach - * +100 Mbps DL in 20 MHz MIMO TM3/TM4 configuration in i7 Quad-Core CPU. + * 150 Mbps DL in 20 MHz MIMO TM3/TM4 configuration in i7 Quad-Core CPU. * 75 Mbps DL in 20 MHz SISO configuration in i7 Quad-Core CPU. * 36 Mbps DL in 10 MHz SISO configuration in i5 Dual-Core CPU. @@ -78,8 +79,8 @@ The library currently supports the Ettus Universal Hardware Driver (UHD) and the We have tested the following hardware: * USRP B210 * USRP X300 + * limeSDR * bladeRF - * limeSDR (currently, only the PHY-layer examples, i.e., pdsch_enodeb/ue are supported) Build Instructions ------------------ @@ -108,10 +109,11 @@ Note that depending on your flavor and version of Linux, the actual package name * Optional requirements: * srsgui: https://github.com/srslte/srsgui - for real-time plotting. - * libpcsclite-dev https://pcsclite.apdu.fr/ - for accessing smart card readers + * libpcsclite-dev: https://pcsclite.apdu.fr/ - for accessing smart card readers * RF front-end driver: * UHD: https://github.com/EttusResearch/uhd + * SoapySDR: https://github.com/pothosware/SoapySDR * BladeRF: https://github.com/Nuand/bladeRF Download and build srsLTE: @@ -125,75 +127,64 @@ make make test ``` -The software suite can also be installed using the command ```sudo make install```. +Install srsLTE: + +``` +sudo make install +sudo srslte_install_configs.sh +``` + +This installs srsLTE and also copies the default srsLTE config files to +the user's home directory (~/.srs). + Execution Instructions ---------------------- The srsUE, srsENB and srsEPC applications include example configuration files -that should be copied and modified, if needed, to meet the system configuration. -On many systems they should work out of the box. +that should be copied (manually or by using the convenience script) and modified, +if needed, to meet the system configuration. +On many systems they should work out of the box. + +By default, all applications will search for config files in the user's home +directory (~/.srs) upon startup. Note that you have to execute the applications with root privileges to enable real-time thread priorities and to permit creation of virtual network interfaces. -Also note that when you run the applications that all additional configuration files, -for example the UE database file needed by srsEPC, reside in your current working directory. -If that is not the case, you may need to specify the location of those files as -command line arguments, for example using the --hss.db_file parameter in srsEPC. - srsENB and srsEPC can run on the same machine as a network-in-the-box configuration. srsUE needs to run on a separate machine. -If you have installed the software suite using ```sudo make install```, you may just -change in the source directory and start the applications as follows. - +If you have installed the software suite using ```sudo make install``` and +have installed the example config files using ```sudo srslte_install_configs.sh```, +you may just start all applications with their default parameters. ### srsEPC -On machine 1, change back to the source directory and copy the srsEPC -config example and UE database file. -``` -cd .. -cp srsepc/epc.conf.example srsepc/epc.conf -cp srsepc/user_db.csv.example srsepc/user_db.csv -``` +On machine 1, run srsEPC as follows: -Now, run srsEPC with the default configuration as follows: ``` -sudo srsepc srsepc/epc.conf +sudo srsepc ``` +Using the default configuration, this creates a virtual network interface +named "srs_spgw_sgi" on machine 1 with IP 172.16.0.1. All connected UEs +will be assigned an IP in this network. + ### srsENB -On machine 1, but in another console, change back to the source directory -and copy the main srsENB config example as well as all additional config files for RR, SIB and DRB. +Also on machine 1, but in another console, run srsENB as follows: ``` -cd .. -cp srsenb/enb.conf.example srsenb/enb.conf -cp srsenb/rr.conf.example srsenb/rr.conf -cp srsenb/sib.conf.example srsenb/sib.conf -cp srsenb/drb.conf.example srsenb/drb.conf -``` - -Now, run the application as follows: -``` -sudo srsenb srsenb/enb.conf +sudo srsenb ``` ### srsUE -On machine 2, after having following the installation instructions above, -change back to the source directory and copy the srsUE example configuration: -``` -cd .. -cp srsue/ue.conf.example srsue/ue.conf -``` +On machine 2, run srsUE as follows: -Now run the srsUE application as follows: ``` -sudo srsue srsue/ue.conf +sudo srsue ``` Using the default configuration, this creates a virtual network interface @@ -201,6 +192,7 @@ named "tun_srsue" on machine 2 with an IP in the network 172.16.0.x. Assuming the UE has been assigned IP 172.16.0.2, you may now exchange IP traffic with machine 1 over the LTE link. For example, run a ping to the default SGi IP address: + ``` ping 172.16.0.1 ```