├── docs ├── source │ ├── .imgs │ │ ├── logo.png │ │ ├── favicon.png │ │ ├── logo_old.png │ │ ├── srs_architecture.png │ │ ├── srsran_architecture.png │ │ └── srsran_4g_architecture.png │ ├── .static │ │ └── css │ │ │ ├── favicon.png │ │ │ └── custom.css │ ├── app_notes │ │ ├── source │ │ │ ├── .imgs │ │ │ │ ├── logo.png │ │ │ │ ├── favicon.png │ │ │ │ ├── srs_architecture.png │ │ │ │ └── srsran_architecture.png │ │ │ ├── pi4 │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── usb.png │ │ │ │ │ │ ├── htop.png │ │ │ │ │ │ ├── logo.png │ │ │ │ │ │ ├── Pi4eNB.jpg │ │ │ │ │ │ └── favicon.png │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── 2ca │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── logo.png │ │ │ │ │ │ ├── favicon.png │ │ │ │ │ │ └── srs_architecture.png │ │ │ │ │ ├── conf.py │ │ │ │ │ └── index.rst │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── cots_ue │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── apn_ue.jpg │ │ │ │ │ │ ├── route.png │ │ │ │ │ │ ├── apn_epc.png │ │ │ │ │ │ ├── cots_ue.png │ │ │ │ │ │ ├── dub_loc.png │ │ │ │ │ │ ├── enb_conf.png │ │ │ │ │ │ ├── enb_setup.png │ │ │ │ │ │ ├── epc_conf.png │ │ │ │ │ │ ├── epc_setup.png │ │ │ │ │ │ ├── networks.jpg │ │ │ │ │ │ ├── real_imp.jpg │ │ │ │ │ │ ├── user_db.png │ │ │ │ │ │ ├── enb_attach.png │ │ │ │ │ │ ├── enb_connect.png │ │ │ │ │ │ ├── epc_attach.png │ │ │ │ │ │ ├── epc_config.png │ │ │ │ │ │ ├── sim_options.jpg │ │ │ │ │ │ ├── ue_settings.jpg │ │ │ │ │ │ ├── sim_settings.jpg │ │ │ │ │ │ ├── enb_connect_msg.png │ │ │ │ │ │ └── network_attach_full.png │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── embms │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── logo.png │ │ │ │ │ │ └── favicon.png │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── zeromq │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── logo.png │ │ │ │ │ │ ├── favicon.png │ │ │ │ │ │ ├── grc_SP.png │ │ │ │ │ │ └── grc_standard.png │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── 5g_nsa_zmq │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── gui.png │ │ │ │ │ │ ├── nsa_zmq.png │ │ │ │ │ │ └── 5G_NSA_mode3.png │ │ │ │ │ ├── conf.py │ │ │ │ │ └── .configs │ │ │ │ │ │ └── rr_example.conf │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── cv2x │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── pssch_ue.jpg │ │ │ │ │ │ ├── pssch_ue2.jpg │ │ │ │ │ │ ├── spectrum.png │ │ │ │ │ │ └── slsch_wireshark.png │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── 5g_nsa_amari │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── gui.png │ │ │ │ │ │ ├── nsa.jpg │ │ │ │ │ │ ├── wiring.png │ │ │ │ │ │ └── 5G_NSA_mode3.png │ │ │ │ │ ├── conf.py │ │ │ │ │ └── sib23.asn │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── 5g_sa_COTS │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── 5G_SA.png │ │ │ │ │ │ ├── NSG_1.png │ │ │ │ │ │ └── NSG_2.png │ │ │ │ │ ├── conf.py │ │ │ │ │ └── .configs │ │ │ │ │ │ └── rr.conf │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── handover │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── ue_creds.png │ │ │ │ │ │ ├── gnu_slider.png │ │ │ │ │ │ ├── grc_intra.png │ │ │ │ │ │ ├── intra_arch.png │ │ │ │ │ │ └── s1_handover.png │ │ │ │ │ ├── conf.py │ │ │ │ │ └── .config │ │ │ │ │ │ ├── intra │ │ │ │ │ │ └── rr.conf │ │ │ │ │ │ └── s1 │ │ │ │ │ │ └── rr.conf │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── nbiot │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── nbIoT_TxRx.png │ │ │ │ │ │ ├── nbIoT_cell.png │ │ │ │ │ │ ├── nbiot_wireshark.png │ │ │ │ │ │ ├── npdsch_ue_example.png │ │ │ │ │ │ └── spectrum_guardband.png │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── 5g_nsa_cots │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── apn_ue.jpg │ │ │ │ │ │ ├── NSA_COTS.png │ │ │ │ │ │ ├── networks.jpg │ │ │ │ │ │ ├── 5G_NSA_mode3.png │ │ │ │ │ │ ├── sim_settings.jpg │ │ │ │ │ │ └── ue_settings.jpg │ │ │ │ │ ├── user_db.csv │ │ │ │ │ ├── rr.conf │ │ │ │ │ ├── epc.conf │ │ │ │ │ └── conf.py │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── 5g_sa_E2E │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ └── srsRAN_SA_ZMQ.png │ │ │ │ │ ├── conf.py │ │ │ │ │ └── .configs │ │ │ │ │ │ └── rr.conf │ │ │ │ ├── README │ │ │ │ └── Makefile │ │ │ ├── hw_packs │ │ │ │ ├── README │ │ │ │ ├── source │ │ │ │ │ ├── pack1.csv │ │ │ │ │ ├── pack2.csv │ │ │ │ │ ├── pack3.csv │ │ │ │ │ └── conf.py │ │ │ │ └── Makefile │ │ │ ├── 5g_sa_amari │ │ │ │ ├── README │ │ │ │ ├── Makefile │ │ │ │ └── source │ │ │ │ │ ├── .config │ │ │ │ │ └── ue.conf │ │ │ │ │ └── conf.py │ │ │ ├── index.rst │ │ │ └── conf.py │ │ └── README │ ├── general │ │ ├── source │ │ │ ├── SRS-CLA-Entity.pdf │ │ │ ├── .imgs │ │ │ │ ├── basic_arch.png │ │ │ │ └── download_decision.png │ │ │ ├── SRS-CLA-Individual.pdf │ │ │ ├── 4_troubleshooting.rst │ │ │ ├── conf.py │ │ │ ├── 3_contributions.rst │ │ │ └── 1_installation.rst │ │ └── README │ ├── usermanuals │ │ ├── source │ │ │ ├── .imgs │ │ │ │ └── basic_arch.png │ │ │ ├── srsenb │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── 5G_SA.png │ │ │ │ │ │ ├── enb_basic.png │ │ │ │ │ │ ├── 5G_NSA_mode3.png │ │ │ │ │ │ ├── NSA_Signaling.png │ │ │ │ │ │ └── srsenb_logo.png │ │ │ │ │ ├── index.rst │ │ │ │ │ ├── 5_enb_configref.rst │ │ │ │ │ ├── 6_enb_commandref.rst │ │ │ │ │ ├── conf.py │ │ │ │ │ └── 4_enb_advanced.rst │ │ │ │ └── README │ │ │ ├── srsue │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── ue_basic.png │ │ │ │ │ │ ├── srsue_logo.png │ │ │ │ │ │ └── UE_Architecture_Detailed.png │ │ │ │ │ ├── 5_ue_configref.rst │ │ │ │ │ ├── index.rst │ │ │ │ │ ├── 6_ue_commandref.rst │ │ │ │ │ └── conf.py │ │ │ │ └── README │ │ │ ├── srsepc │ │ │ │ ├── source │ │ │ │ │ ├── .imgs │ │ │ │ │ │ ├── epc_basic.png │ │ │ │ │ │ └── srsepc_logo.png │ │ │ │ │ ├── index.rst │ │ │ │ │ ├── 4_epc_configref.rst │ │ │ │ │ ├── conf.py │ │ │ │ │ ├── 3_epc_trouble.rst │ │ │ │ │ └── 1_epc_intro.rst │ │ │ │ └── README │ │ │ ├── conf.py │ │ │ └── 1_setup.rst │ │ └── README │ ├── reporting_issues.rst │ ├── getting_started.rst │ ├── .templates │ │ └── layout.html │ ├── dev_status.rst │ ├── index.rst │ └── feature_list.rst └── README ├── requirements.txt ├── .readthedocs.yaml └── README.md /docs/source/.imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.imgs/logo.png -------------------------------------------------------------------------------- /docs/source/.imgs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.imgs/favicon.png -------------------------------------------------------------------------------- /docs/source/.imgs/logo_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.imgs/logo_old.png -------------------------------------------------------------------------------- /docs/source/.static/css/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.static/css/favicon.png -------------------------------------------------------------------------------- /docs/source/.imgs/srs_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.imgs/srs_architecture.png -------------------------------------------------------------------------------- /docs/source/.imgs/srsran_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.imgs/srsran_architecture.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/.imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/.imgs/logo.png -------------------------------------------------------------------------------- /docs/source/.imgs/srsran_4g_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/.imgs/srsran_4g_architecture.png -------------------------------------------------------------------------------- /docs/source/general/source/SRS-CLA-Entity.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/general/source/SRS-CLA-Entity.pdf -------------------------------------------------------------------------------- /docs/source/app_notes/source/.imgs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/.imgs/favicon.png -------------------------------------------------------------------------------- /docs/source/general/source/.imgs/basic_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/general/source/.imgs/basic_arch.png -------------------------------------------------------------------------------- /docs/source/general/source/SRS-CLA-Individual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/general/source/SRS-CLA-Individual.pdf -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/source/.imgs/usb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/pi4/source/.imgs/usb.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/.imgs/basic_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/.imgs/basic_arch.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/.imgs/srs_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/.imgs/srs_architecture.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/source/.imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/2ca/source/.imgs/logo.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/.imgs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/.imgs -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/source/.imgs/htop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/pi4/source/.imgs/htop.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/source/.imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/pi4/source/.imgs/logo.png -------------------------------------------------------------------------------- /docs/source/general/source/.imgs/download_decision.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/general/source/.imgs/download_decision.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/.imgs/srsran_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/.imgs/srsran_architecture.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/source/.imgs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/2ca/source/.imgs/favicon.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/embms/source/.imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/embms/source/.imgs/logo.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/source/.imgs/Pi4eNB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/pi4/source/.imgs/Pi4eNB.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/source/.imgs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/pi4/source/.imgs/favicon.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/source/.imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/zeromq/source/.imgs/logo.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/source/.imgs/gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_zmq/source/.imgs/gui.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/apn_ue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/apn_ue.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/route.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/route.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/source/.imgs/pssch_ue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cv2x/source/.imgs/pssch_ue.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/source/.imgs/pssch_ue2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cv2x/source/.imgs/pssch_ue2.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/source/.imgs/spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cv2x/source/.imgs/spectrum.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/embms/source/.imgs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/embms/source/.imgs/favicon.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/source/.imgs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/zeromq/source/.imgs/favicon.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/source/.imgs/grc_SP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/zeromq/source/.imgs/grc_SP.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/.imgs/5G_SA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsenb/source/.imgs/5G_SA.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/source/.imgs/gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_amari/source/.imgs/gui.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/source/.imgs/nsa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_amari/source/.imgs/nsa.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/source/.imgs/5G_SA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_sa_COTS/source/.imgs/5G_SA.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/source/.imgs/NSG_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_sa_COTS/source/.imgs/NSG_1.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/source/.imgs/NSG_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_sa_COTS/source/.imgs/NSG_2.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/apn_epc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/apn_epc.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/cots_ue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/cots_ue.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/dub_loc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/dub_loc.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/enb_conf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/enb_conf.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/enb_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/enb_setup.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/epc_conf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/epc_conf.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/epc_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/epc_setup.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/networks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/networks.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/real_imp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/real_imp.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/user_db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/user_db.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.imgs/ue_creds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/handover/source/.imgs/ue_creds.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/source/.imgs/nbIoT_TxRx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/nbiot/source/.imgs/nbIoT_TxRx.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/source/.imgs/nbIoT_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/nbiot/source/.imgs/nbIoT_cell.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/.imgs/ue_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsue/source/.imgs/ue_basic.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/source/.imgs/wiring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_amari/source/.imgs/wiring.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/.imgs/apn_ue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_cots/source/.imgs/apn_ue.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/source/.imgs/nsa_zmq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_zmq/source/.imgs/nsa_zmq.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/enb_attach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/enb_attach.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/enb_connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/enb_connect.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/epc_attach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/epc_attach.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/epc_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/epc_config.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/sim_options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/sim_options.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/ue_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/ue_settings.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.imgs/gnu_slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/handover/source/.imgs/gnu_slider.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.imgs/grc_intra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/handover/source/.imgs/grc_intra.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.imgs/intra_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/handover/source/.imgs/intra_arch.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/source/.imgs/grc_standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/zeromq/source/.imgs/grc_standard.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/.imgs/enb_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsenb/source/.imgs/enb_basic.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/.imgs/epc_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsepc/source/.imgs/epc_basic.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/.imgs/srsue_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsue/source/.imgs/srsue_logo.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/source/.imgs/srs_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/2ca/source/.imgs/srs_architecture.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/.imgs/NSA_COTS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_cots/source/.imgs/NSA_COTS.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/.imgs/networks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_cots/source/.imgs/networks.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/sim_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/sim_settings.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/source/.imgs/slsch_wireshark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cv2x/source/.imgs/slsch_wireshark.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.imgs/s1_handover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/handover/source/.imgs/s1_handover.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/source/.imgs/nbiot_wireshark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/nbiot/source/.imgs/nbiot_wireshark.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/.imgs/5G_NSA_mode3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsenb/source/.imgs/5G_NSA_mode3.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/.imgs/NSA_Signaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsenb/source/.imgs/NSA_Signaling.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/.imgs/srsenb_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsenb/source/.imgs/srsenb_logo.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/.imgs/srsepc_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsepc/source/.imgs/srsepc_logo.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/.imgs/5G_NSA_mode3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_cots/source/.imgs/5G_NSA_mode3.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/.imgs/sim_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_cots/source/.imgs/sim_settings.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/.imgs/ue_settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_cots/source/.imgs/ue_settings.jpg -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/source/.imgs/5G_NSA_mode3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_zmq/source/.imgs/5G_NSA_mode3.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_E2E/source/.imgs/srsRAN_SA_ZMQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_sa_E2E/source/.imgs/srsRAN_SA_ZMQ.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/enb_connect_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/enb_connect_msg.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/source/.imgs/npdsch_ue_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/nbiot/source/.imgs/npdsch_ue_example.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/source/.imgs/spectrum_guardband.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/nbiot/source/.imgs/spectrum_guardband.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/source/.imgs/5G_NSA_mode3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/5g_nsa_amari/source/.imgs/5G_NSA_mode3.png -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/.imgs/network_attach_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/app_notes/source/cots_ue/source/.imgs/network_attach_full.png -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/.imgs/UE_Architecture_Detailed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srsran/srsRAN_4G_docs/HEAD/docs/source/usermanuals/source/srsue/source/.imgs/UE_Architecture_Detailed.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx 2 | sphinx_rtd_theme 3 | sphinxcontrib-seqdiag 4 | sphinxcontrib-blockdiag 5 | sphinx-autobuild 6 | docutils 7 | funcparserlib 8 | sphinx-toolbox 9 | sphinx-copybutton 10 | sphinx-hoverxref 11 | sphinxcontrib-plantuml 12 | sphinxcontrib-googleanalytics 13 | -------------------------------------------------------------------------------- /docs/source/usermanuals/README: -------------------------------------------------------------------------------- 1 | # docs 2 | The docs require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main folder 8 | -------------------------------------------------------------------------------- /docs/source/general/README: -------------------------------------------------------------------------------- 1 | # srsgeneral-docs 2 | The general docs of srsRAN require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/README: -------------------------------------------------------------------------------- 1 | # 2ca-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main 2ca folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/README: -------------------------------------------------------------------------------- 1 | # cv2x-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/embms/README: -------------------------------------------------------------------------------- 1 | # embms-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/README: -------------------------------------------------------------------------------- 1 | # nbiot-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main folder 8 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/5_ue_configref.rst: -------------------------------------------------------------------------------- 1 | .. _ue_configref: 2 | 3 | Configuration Reference 4 | ======================= 5 | 6 | The srsUE `example configuration file `_ contains detailed descriptions of all UE configuration parameters. 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/README: -------------------------------------------------------------------------------- 1 | # pi4-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/README: -------------------------------------------------------------------------------- 1 | # srsue-docs 2 | The docs of srsUE require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main ./srsDOC/srsue folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/README: -------------------------------------------------------------------------------- 1 | # application notes 2 | The application notes require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main srslte_application_notes folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/hw_packs/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/README: -------------------------------------------------------------------------------- 1 | # srsenb-docs 2 | The docs of srsENB require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main ./srsDOC/srsenb folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_E2E/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_amari/README: -------------------------------------------------------------------------------- 1 | # zeromq-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main norf folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/README: -------------------------------------------------------------------------------- 1 | # cots_ue-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main cots_ue folder 8 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/README: -------------------------------------------------------------------------------- 1 | # cots_ue-docs 2 | The docs of the application note require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main cots_ue folder 8 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/README: -------------------------------------------------------------------------------- 1 | # srsepc-docs 2 | The docs of srsEPC require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python-sphinx python-sphinxcontrib.seqdiag python-sphinxcontrib.blockdiag 6 | 7 | To make the documentation do 'make html' on the main ./srsDOC/user_manuals/srsepc folder 8 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/index.rst: -------------------------------------------------------------------------------- 1 | 2 | .. srsEPC documentation master file, created by 3 | sphinx-quickstart on Dec 13 2018. 4 | You can adapt this file completely to your liking, but it should at least 5 | contain the root `toctree` directive. 6 | 7 | EPC User Manual 8 | =============== 9 | 10 | 11 | .. toctree:: 12 | :maxdepth: 2 13 | 14 | 1_epc_intro.rst 15 | 2_epc_getstarted.rst 16 | 3_epc_trouble.rst 17 | 4_epc_configref.rst 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/README: -------------------------------------------------------------------------------- 1 | # srsran-docs 2 | The docs of srsRAN require sphinx, and the sphinx-seqdiag and sphinx-blockdiag extensions. 3 | 4 | On Ubuntu, you can do: 5 | sudo apt install python3-sphinx python3-sphinxcontrib.seqdiag python3-sphinxcontrib.blockdiag python3-sphinx-copybutton 6 | 7 | For newer version you might also have to do: 8 | sudo apt-get install python3-pip 9 | sudo pip3 install sphinx_rtd_theme 10 | 11 | To make the documentation do 'make html' on the main ./srsDOC/srsran_user_manuals folder 12 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/index.rst: -------------------------------------------------------------------------------- 1 | 2 | .. srsUE documentation master file, created by 3 | sphinx-quickstart on Dec 13 2018. 4 | You can adapt this file completely to your liking, but it should at least 5 | contain the root `toctree` directive. 6 | 7 | UE User Manual 8 | ============== 9 | 10 | .. toctree:: 11 | :maxdepth: 2 12 | 13 | 1_ue_intro.rst 14 | 2_ue_getstarted.rst 15 | 3_ue_trouble.rst 16 | 4_ue_advanced.rst 17 | 5_ue_configref.rst 18 | 6_ue_commandref.rst 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/hw_packs/source/pack1.csv: -------------------------------------------------------------------------------- 1 | SDR,PC 2 | `Lime SDR mini 2.0 `_,`Raspberry Pi 4 `_ 3 | **Price:** TBC,**Price:** $34.87 - $75.90 4 | **Driver:** SoapySDR,**# Cores:** 4 5 | **Frequency Range:** 10 Mhz – 3.5 GHz,**Frequency:** 1.5 Ghz 6 | **RF Bandwidth:** 40 Mhz,**Cache SIze:** 1 MiB 7 | **Clock:** 30.72 MHz onboard VCTCXO,**# Threads:** 4 8 | **# Channels:** 1x1, 9 | **FPGA:** Lattice ECP5, 10 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/index.rst: -------------------------------------------------------------------------------- 1 | 2 | .. srsENB documentation master file, created by 3 | sphinx-quickstart on Dec 13 2018. 4 | You can adapt this file completely to your liking, but it should at least 5 | contain the root `toctree` directive. 6 | 7 | eNodeB User Manual 8 | ================== 9 | 10 | 11 | .. toctree:: 12 | :maxdepth: 2 13 | 14 | 1_enb_intro.rst 15 | 2_enb_getstarted.rst 16 | 3_enb_trouble.rst 17 | 4_enb_advanced.rst 18 | 5_enb_configref.rst 19 | 6_enb_commandref.rst 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/hw_packs/source/pack2.csv: -------------------------------------------------------------------------------- 1 | SDR,PC 2 | `BladeRF micro 2.0 xA4 `_,`HP Omen 16 Intel i5-12500H `_ 3 | **Price:** $540,**Price:** $1099.99 4 | **Driver:** SoapySDR,**# Cores:** 12 5 | **Frequency Range:** 47 Mhz – 6 Ghz,**Frequency:** 1.8 – 4.5 GHz 6 | **RF Bandwidth:** 56 Mhz,**L3 Cache SIze:** 18 MB 7 | **Clock:** 38.4 MHz onboard VCTCXO,**# Threads:** 16 8 | **# Channels:** 2x2, 9 | **FPGA:** Altera Cyclone V (49 kLE), 10 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/4_epc_configref.rst: -------------------------------------------------------------------------------- 1 | .. _epc_configref: 2 | 3 | Configuration Reference 4 | ======================= 5 | 6 | The srsEPC `example configuration file `_ contains detailed descriptions of all EPC configuration parameters. 7 | 8 | In addition to the top-level configuration file, srsEPC uses a separate file `user_db.csv `_ to store user details in the HSS. This user database file uses CSV format. 9 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/hw_packs/source/pack3.csv: -------------------------------------------------------------------------------- 1 | SDR,PC 2 | `Ettus x310 `_,`Dell Precision 3460 Workstation Intel i7-12700 `_ 3 | **Price:** $8065,**Price:** $1509.00 4 | **Driver:** UHD,**# Cores:** 12 5 | **Frequency Range:** DC - 6GHz (w/ Daughter Cards),**Frequency:** 2.1 - 4.9 GHz 6 | **RF Bandwidth:** 160 MHz (w/ Daughter Cards),**Cache SIze:** 35 MB 7 | **Clock:** Configurable,**# Threads:** 20 8 | **# Channels:** 2x2, 9 | **FPGA:** KINTEX7-410T, 10 | -------------------------------------------------------------------------------- /docs/source/.static/css/custom.css: -------------------------------------------------------------------------------- 1 | /*---SRS COLOURS---*/ 2 | /* 3 | # Deep blue - #1A283D 4 | # Grey - #758592 5 | # Green - #07E8CB 6 | # Blue - #00B2E3 7 | */ 8 | 9 | /*--- Page Formatting ---*/ 10 | 11 | .wy-nav-content { 12 | max-width: none; 13 | } 14 | 15 | .web-icon{ 16 | content: url(favicon.png); 17 | width: 1.28571em; 18 | text-align: center; 19 | } 20 | 21 | /*--- Other Styling/ Formatting ---*/ 22 | 23 | .rst-content code.literal, .rst-content tt.literal { 24 | color: #00B2E3; 25 | } 26 | 27 | /*--- FONT ---*/ 28 | body, h1, h2, h3, h4, h5, h6, legend{ 29 | font-family: "Ubuntu", sans-serif; 30 | } 31 | 32 | .rst-content .toctree-wrapper>p.caption { 33 | font-family: "Ubuntu", sans-serif; 34 | } -------------------------------------------------------------------------------- /docs/source/reporting_issues.rst: -------------------------------------------------------------------------------- 1 | .. _reporting_issues: 2 | 3 | Reporting Issues 4 | ---------------- 5 | 6 | For contributing code and reporting issues we generally encourage users to directly use the Github's `pull request `_ or 7 | `issue `_ tracking system. This allows easy tracking and also make enhancements and fixes coming from public users available to everyone immediately. 8 | 9 | For issues or fixes that could potentially affect the security of users we also provide a dedicated mail address ``security@srs.io`` that shall be used for 10 | private communication. The srsRAN team will carefully check and analyse each submission and assign a threat category to make sure it is addressed appropriately. 11 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/5_enb_configref.rst: -------------------------------------------------------------------------------- 1 | .. _enb_configref: 2 | 3 | Configuration Reference 4 | ======================= 5 | 6 | The srsENB `example configuration file `_ contains detailed descriptions of all eNodeB configuration parameters. 7 | 8 | In addition to the top-level configuration file, srsENB uses separate files to configure SIBs `sib.conf `_, radio resources `rr.conf `_ and data bearers `rb.conf `_. These files use `libconfig `_ format. 9 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Set the version of Python and other tools you might need 9 | build: 10 | os: ubuntu-22.04 11 | tools: 12 | python: "3.11" 13 | # You can also specify other tool versions: 14 | # nodejs: "19" 15 | # rust: "1.64" 16 | # golang: "1.19" 17 | 18 | # Build documentation in the docs/ directory with Sphinx 19 | sphinx: 20 | configuration: docs/source/conf.py 21 | 22 | # If using Sphinx, optionally build your docs in additional formats such as PDF 23 | formats: 24 | - pdf 25 | 26 | # Optionally declare the Python requirements required to build your docs 27 | python: 28 | install: 29 | - requirements: requirements.txt 30 | -------------------------------------------------------------------------------- /docs/source/getting_started.rst: -------------------------------------------------------------------------------- 1 | .. _getting_started: 2 | 3 | Getting Started 4 | --------------- 5 | 6 | | Get srsRAN 4G installed on your computer: 7 | | - :ref:`Installation ` 8 | 9 | | Get a network up and running: 10 | | - :ref:`End-to-end Network Setup ` 11 | 12 | | Read the user manuals: 13 | | - :ref:`UE User Manual ` 14 | | - :ref:`eNodeB User Manual ` 15 | | - :ref:`EPC User Manual ` 16 | 17 | | Read the srsRAN 4G Application Notes: 18 | | - :ref:`Application Notes ` 19 | 20 | | Take a look at the source code: 21 | | - `srsRAN 4G on GitHub `_ 22 | 23 | | Learn about the team behind srsRAN 4G: 24 | | - `Software Radio Systems `_ 25 | 26 | | Join our mailing list for news and user support: 27 | | - `Mailing List `_ 28 | 29 | -------------------------------------------------------------------------------- /docs/source/.templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | 3 | {% block menu %} 4 | {{ super() }} 5 | 6 | {% if sidebar_external_links %} 7 |

8 | 9 | {% if sidebar_external_links_caption %} 10 | {{ sidebar_external_links_caption }} 11 | {% else %} 12 | External links 13 | {% endif %} 14 | 15 |

16 |
    17 | {% for text, link in sidebar_external_links %} 18 | {% if hasdoc(link) %} 19 |
  • {{ text }}
  • 20 | {% else %} 21 |
  • {{ text }}
  • 22 | {% endif %} 23 | {% endfor %} 24 |
25 | {% endif %} 26 | 27 | {% endblock %} -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/embms/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/hw_packs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_E2E/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_amari/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Put it first so that "make" without argument is like "make help". 16 | help: 17 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 18 | 19 | .PHONY: help Makefile 20 | 21 | # Catch-all target: route all unknown targets to Sphinx using the new 22 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 23 | %: Makefile 24 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_amari/source/.config/ue.conf: -------------------------------------------------------------------------------- 1 | [rf] 2 | tx_gain = 3 3 | freq_offset = 0 4 | 5 | nof_antennas = 1 6 | 7 | srate = 11.52e6 8 | 9 | device_name = uhd 10 | device_args = type=x300,serial=30B8658,clock=external,sampling_rate=23.04e6,lo_freq_offset_hz=23.04e6,None 11 | 12 | [rat.eutra] 13 | dl_earfcn = 2850 14 | nof_carriers = 0 15 | 16 | [rat.nr] 17 | nof_carriers = 1 18 | bands = 3 19 | 20 | [pcap] 21 | enable = none 22 | mac_filename = /tmp/srsue.pcap 23 | mac_nr_filename = /tmp/srsue.pcap 24 | nas_filename = /tmp/ue_nas.pcap 25 | 26 | [log] 27 | all_level = warning 28 | phy_lib_level = none 29 | all_hex_limit = 32 30 | filename = /tmp/srsue.log 31 | file_max_size = -1 32 | nas_level = warning 33 | 34 | [usim] 35 | mode = soft 36 | algo = milenage 37 | opc = 63bfa50ee6523365ff14c1f45f88737d 38 | k = 00112233445566778899aabbccddeeff 39 | imsi = 001010123456780 40 | imei = 353490069873319 41 | 42 | [rrc] 43 | release = 15 44 | ue_category = 4 45 | mbms_service_id = -1 46 | 47 | [nas] 48 | apn = srsapn 49 | 50 | [phy] 51 | 52 | [sim] 53 | airplane_t_on_ms = -1 54 | airplane_t_off_ms = -1 55 | 56 | [general] 57 | metrics_csv_enable = true 58 | metrics_csv_filename = /tmp/srsue_metrics.csv 59 | -------------------------------------------------------------------------------- /docs/source/dev_status.rst: -------------------------------------------------------------------------------- 1 | .. _dev_status: 2 | 3 | Development Status 4 | ################## 5 | 6 | 7 | +-----------------+-------------+-----------------+-------------------+----------------+ 8 | | Repository Name | Application | Target Scenario | Status | Alternative | 9 | +=================+=============+=================+===================+================+ 10 | | | 4G UE | Deployment | | | 11 | | +-------------+ | +----------------+ 12 | | | 4G eNB | | Under Maintenance | | 13 | | +-------------+-----------------+-------------------+----------------+ 14 | | | 4G EPC | Testing | | | 15 | | +-------------+ | +----------------+ 16 | | | 5G UE | | End-of-life | | 17 | | +-------------+-----------------+ +----------------+ 18 | | srsRAN_4G | 5G gNB | N/A | | srsRAN_Project | 19 | +-----------------+-------------+-----------------+-------------------+----------------+ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # srsRAN_docs 2 | Documentation for the srsRAN project - see [docs.srsran.com](http://docs.srsran.com) 3 | 4 | # Local Installation 5 | 6 | The docs require following Sphinx extensions: 7 | - sphinxcontrib-seqdiag 8 | - sphinxcontrib-blockdiag 9 | 10 | On Ubuntu, they can be installed with: 11 | ``` 12 | sudo apt install python3-pip 13 | pip3 install -r requirements.txt 14 | ``` 15 | 16 | Once dependenceies are installed, 17 | 18 | ``` 19 | git clone https://github.com/srsRAN/srsRAN_docs.git 20 | cd srsRAN_docs/srsran_user_manuals 21 | make html 22 | ``` 23 | 24 | Then load the compiled doc in your browser 25 | ``` 26 | firefox build/html/index.html 27 | google-chrome build/html/index.html 28 | ``` 29 | 30 | To enable live build previews when editing documentation install the following extension: 31 | - sphinx-autobuild 32 | 33 | This can be installed from the requirements file. 34 | ``` 35 | pip install -r requirements.txt 36 | ``` 37 | 38 | To build the docs first run from /srs_user_manuals/source 39 | ``` 40 | sphinx-build -b html . _build 41 | ``` 42 | 43 | Then run the following command from the docs main folder 44 | ``` 45 | sphinx-autobuild srsran_user_manuals/source/ srsran_user_manuals/source/_build/html 46 | ``` 47 | This will start a server at http://127.0.0.1:8000 which can be viewed in your browser, any changes to the docs will be shown here once saved. 48 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/user_db.csv: -------------------------------------------------------------------------------- 1 | # 2 | # .csv to store UE's information in HSS 3 | # Kept in the following format: "Name,Auth,IMSI,Key,OP_Type,OP,AMF,SQN,QCI,IP_alloc" 4 | # 5 | # Name: Human readable name to help distinguish UE's. Ignored by the HSS 6 | # IMSI: UE's IMSI value 7 | # Auth: Authentication algorithm used by the UE. Valid algorithms are XOR 8 | # (xor) and MILENAGE (mil) 9 | # Key: UE's key, where other keys are derived from. Stored in hexadecimal 10 | # OP_Type: Operator's code type, either OP or OPc 11 | # OP/OPc: Operator Code/Cyphered Operator Code, stored in hexadecimal 12 | # AMF: Authentication management field, stored in hexadecimal 13 | # SQN: UE's Sequence number for freshness of the authentication 14 | # QCI: QoS Class Identifier for the UE's default bearer. 15 | # IP_alloc: IP allocation stratagy for the SPGW. 16 | # With 'dynamic' the SPGW will automatically allocate IPs 17 | # With a valid IPv4 (e.g. '172.16.0.2') the UE will have a statically assigned IP. 18 | # 19 | # Note: Lines starting by '#' are ignored and will be overwritten 20 | #ue2,mil,001010123456780,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic 21 | #ue1,xor,001010123456789,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9001,000000001255,7,dynamic 22 | 5g_ue,xor,001010123456789,00112233445566778899aabbccddeeff,opc,,8000,000000001234,7,dynamic -------------------------------------------------------------------------------- /docs/source/general/source/4_troubleshooting.rst: -------------------------------------------------------------------------------- 1 | .. _gen_troubleshooting: 2 | 3 | Troubleshooting 4 | ================== 5 | 6 | Building with Debug Symbols 7 | ************************************** 8 | 9 | First make sure srsRAN 4G has been downloaded, and you have created and navigated to the build folder:: 10 | 11 | git clone https://github.com/srsran/srsran_4g.git 12 | cd srsRAN_4G 13 | mkdir build 14 | cd build 15 | 16 | To build srsRAN 4G with debug symbols, the following steps can be taken. If srsRAN 4G has already been built, the original build folder should be cleared before proceeding. 17 | This can be done with the following command:: 18 | 19 | rm -rf * 20 | make clean 21 | 22 | The following command can then be used to build srsRAN 4G with debug symbols enabled:: 23 | 24 | cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ../ 25 | make 26 | make test 27 | 28 | The log file containing the debug info can be found in the ``srsran_backtrace.log`` file. 29 | 30 | .. _wireshark: 31 | 32 | Examining PCAPs with Wireshark 33 | ****************************** 34 | 35 | The srsRAN 4G applications support packet capture at the MAC and NAS layers of the network stack. 36 | 37 | Packet capture files (pcaps) can be viewed using Wireshark (www.wireshark.org). pcaps are encoded in compact MAC-LTE and MAC-NR form. They can be found in the */tmp* folder where other logs are located. 38 | To view in wireshark, edit the preferences of the DLT_USER dissector. 39 | 40 | To decode MAC pcaps add an entry with the following: 41 | 42 | * DLT=149 43 | * Payload Protocol=udp 44 | 45 | Further, enable the heuristic dissection in UDP under: 46 | *Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp* and *MAC-NR > mac_nr_udp* 47 | 48 | Using the same filename for mac_filename and mac_nr_filename writes both 49 | MAC-LTE and MAC-NR to the same file allowing a better analysis. 50 | 51 | To decode NAS pcaps add and entry with the following: 52 | 53 | * DLT=148 54 | * Payload Protocol=nas-eps 55 | 56 | For more information, see https://wiki.wireshark.org/MAC-LTE. 57 | 58 | The srsEPC application supports packet capture (pcap) of S1AP messages between the MME and eNodeBs. Enable packet captures in *epc.conf* or on the command line, by setting the *pcap.enable* value to *true*. 59 | To view in wireshark, edit the preferences of the DLT_USER dissector. 60 | 61 | To decode S1AP pcaps add an entry with: 62 | 63 | * DLT=150 64 | * Payload Protocol=s1ap 65 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // vector of subframe indices allowed for SR transmissions 40 | 41 | // number of PRBs on each extreme used for SR (total prb is twice this number) 42 | nof_prb = 1; 43 | }; 44 | cqi_report_cnfg = 45 | { 46 | mode = "periodic"; 47 | simultaneousAckCQI = true; 48 | period = 40; // in ms 49 | //subframe = [0, 10, 20, 30]; 50 | nof_prb = 1; 51 | m_ri = 8; // RI period in CQI period 52 | }; 53 | }; 54 | 55 | cell_list = 56 | ( 57 | 58 | { 59 | rf_port = 0; 60 | cell_id = 1; 61 | tac = 7; 62 | pci = 1; 63 | root_seq_idx = 120; 64 | dl_earfcn = 6300; 65 | //ul_earfcn = 20850; 66 | ho_active = true; 67 | 68 | // CA cells 69 | scell_list = ( 70 | ) 71 | 72 | // Cells available for handover 73 | meas_cell_list = 74 | ( 75 | ); 76 | 77 | // Select measurement triggers (A3 and A4 events are all mapped to all cells in meas_cell_list) 78 | meas_report_desc = 79 | ( 80 | { 81 | eventA = 3 82 | a3_offset = 6; 83 | hysteresis = 0; 84 | time_to_trigger = 480; 85 | trigger_quant = "RSRP"; 86 | max_report_cells = 1; 87 | report_interv = 120; 88 | report_amount = 1; 89 | } 90 | ); 91 | meas_quant_desc = { 92 | // averaging filter coefficient 93 | rsrq_config = 4; 94 | rsrp_config = 4; 95 | }; 96 | } 97 | ); 98 | 99 | nr_cell_list = 100 | ( 101 | 102 | { 103 | rf_port = 1; 104 | cell_id = 2; 105 | root_seq_idx = 204; 106 | tac = 7; 107 | pci = 500; 108 | dl_arfcn = 368500; 109 | band = 3; 110 | } 111 | ); -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | 2 | .. srsRAN 4G documentation master file, created by 3 | sphinx-quickstart on Dec 13 2018. 4 | You can adapt this file completely to your liking, but it should at least 5 | contain the root `toctree` directive. 6 | 7 | srsRAN 4G |version| Documentation 8 | ================================= 9 | 10 | .. image:: .imgs/srsran_4g_architecture.png 11 | 12 | .. meta:: 13 | :description lang=en: 14 | Documentation for the srsRAN 4G open-source software suite. User manuals for the srsRAN 4G UE, 15 | eNodeB, gNodeB and EPC applications. Up-to-date installation guides. Step-by-step 16 | application notes for some of the most interesting srsRAN 4G use-cases. 17 | 18 | 19 | srsRAN 4G is an open-source 4G software radio suite from `SRS `_. For 5G RAN, see our new O-RAN CU/DU solution - `srsRAN Project `_. 20 | 21 | Featuring UE, eNodeB and lightweight EPC applications, srsRAN 4G can be used to build a complete end-to-end LTE mobile wireless network. For more information, see `www.srsran.com `_. 22 | 23 | The srsRAN 4G suite currently includes: 24 | 25 | - **srsUE:** a full-stack 4G UE application with prototype 5G features 26 | - **srsENB:** a full-stack 4G eNodeB 27 | - **srsEPC:** a light-weight 4G EPC implementation with MME, HSS and S/P-GW 28 | 29 | All srsRAN 4G software runs in linux with off-the-shelf compute and radio hardware. 30 | 31 | For our ORAN-native 5G CU/DU solution, see the **srsRAN Project** `documentation `_. 32 | 33 | ----- 34 | 35 | 36 | .. toctree:: 37 | :maxdepth: 2 38 | :caption: General 39 | 40 | getting_started.rst 41 | feature_list.rst 42 | reporting_issues.rst 43 | dev_status.rst 44 | 45 | .. toctree:: 46 | :maxdepth: 2 47 | :caption: First Steps 48 | 49 | general/source/1_installation.rst 50 | general/source/2_release_notes.rst 51 | general/source/3_contributions.rst 52 | general/source/4_troubleshooting.rst 53 | 54 | .. toctree:: 55 | :maxdepth: 2 56 | :caption: User Manuals 57 | 58 | usermanuals/source/1_setup.rst 59 | usermanuals/source/srsue/source/index.rst 60 | usermanuals/source/srsenb/source/index.rst 61 | usermanuals/source/srsepc/source/index.rst 62 | 63 | .. toctree:: 64 | :maxdepth: 2 65 | :caption: Application Notes 66 | 67 | app_notes/source/zeromq/source/index.rst 68 | app_notes/source/cots_ue/source/index.rst 69 | app_notes/source/handover/source/index.rst 70 | app_notes/source/2ca/source/index.rst 71 | app_notes/source/cv2x/source/index.rst 72 | app_notes/source/embms/source/index.rst 73 | app_notes/source/nbiot/source/index 74 | app_notes/source/pi4/source/index.rst 75 | app_notes/source/hw_packs/source/index.rst 76 | 77 | .. toctree:: 78 | :maxdepth: 2 79 | :caption: 5G Prototyping 80 | 81 | app_notes/source/5g_sa_amari/source/index.rst 82 | app_notes/source/5g_nsa_amari/source/index.rst 83 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/epc.conf: -------------------------------------------------------------------------------- 1 | # srsEPC configuration file 2 | 3 | # MME configuration 4 | # 5 | # mme_code: 8-bit MME code identifies the MME within a group. 6 | # mme_group: 16-bit MME group identifier. 7 | # tac: 16-bit Tracking Area Code. 8 | # mcc: Mobile Country Code 9 | # mnc: Mobile Network Code 10 | # apn: Set Access Point Name (APN) 11 | # mme_bind_addr: IP bind addr to listen for eNB S1-MME connnections 12 | # dns_addr: DNS server address for the UEs 13 | # encryption_algo: Preferred encryption algorithm for NAS layer 14 | # (default: EEA0, support: EEA1, EEA2) 15 | # integrity_algo: Preferred integrity protection algorithm for NAS 16 | # (default: EIA1, support: EIA1, EIA2 (EIA0 not support) 17 | # paging_timer: Value of paging timer in seconds (T3413) 18 | # 19 | [mme] 20 | mme_code = 0x1a 21 | mme_group = 0x0001 22 | tac = 0x0007 23 | mcc = 001 24 | mnc = 01 25 | mme_bind_addr = 10.12.1.235 26 | apn = srsapn 27 | dns_addr = 8.8.8.8 28 | encryption_algo = EEA0 29 | integrity_algo = EIA1 30 | paging_timer = 12 31 | 32 | # HSS configuration 33 | # 34 | # db_file: Location of .csv file that stores UEs information. 35 | # 36 | [hss] 37 | db_file = user_db.csv 38 | 39 | # SP-GW configuration 40 | # 41 | # gtpu_bind_addr: GTP-U bind address. 42 | # sgi_if_addr: SGi TUN interface IP address. 43 | # sgi_if_name: SGi TUN interface name. 44 | # max_paging_queue: Maximum packets in paging queue (per UE). 45 | # 46 | 47 | [spgw] 48 | gtpu_bind_addr = 10.12.1.235 49 | sgi_if_addr = 172.16.0.1 50 | sgi_if_name = srs_spgw_sgi 51 | max_paging_queue = 100 52 | 53 | # PCAP configuration 54 | # 55 | # Packets are captured to file in the compact format decoded by 56 | # the Wireshark s1ap dissector and with DLT 150. 57 | # To use the dissector, edit the preferences for DLT_USER to 58 | # add an entry with DLT=150, Payload Protocol=s1ap. 59 | # 60 | # enable: Enable or disable the PCAP. 61 | # filename: File name where to save the PCAP. 62 | # 63 | [pcap] 64 | enable = true 65 | filename = epc.pcap 66 | 67 | # Log configuration 68 | # 69 | # Log levels can be set for individual layers. "all_level" sets log 70 | # level for all layers unless otherwise configured. 71 | # Format: e.g. s1ap_level = info 72 | # 73 | # In the same way, packet hex dumps can be limited for each level. 74 | # "all_hex_limit" sets the hex limit for all layers unless otherwise 75 | # configured. 76 | # Format: e.g. s1ap_hex_limit = 32 77 | # 78 | # Logging layers: nas, s1ap, mme_gtpc, spgw_gtpc, gtpu, spgw, hss, all 79 | # Logging levels: debug, info, warning, error, none 80 | # 81 | # filename: File path to use for log output. Can be set to stdout 82 | # to print logs to standard output 83 | [log] 84 | all_level = info 85 | all_hex_limit = 32 86 | filename = epc.log 87 | 88 | #nas_level = debug 89 | #s1ap_level = debug 90 | #mme_gtpc_level = debug 91 | #spgw_gtpc_level = debug 92 | #gtpu_level = debug 93 | #spgw_level = debug 94 | #hss_level = debug -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/6_ue_commandref.rst: -------------------------------------------------------------------------------- 1 | .. _ue_commandref: 2 | 3 | Command Line Reference 4 | ======================= 5 | 6 | The srsUE application runs in the console. When running, type ``t`` in the console to enable the metrics trace. 7 | 8 | **4G LTE console trace**:: 9 | 10 | ---------Signal-----------|-----------------DL-----------------|-----------UL----------- 11 | cc pci rsrp pl cfo | mcs snr iter brate bler ta_us | mcs buff brate bler 12 | 0 1 50 -50 -1.4u | 26 141 1.0 3.2M 0% 0.0 | 21 56 151k 0% 13 | 0 1 50 -50 -899n | 26 140 1.0 3.5M 0% 0.0 | 22 169 110k 0% 14 | 0 1 50 -50 -349n | 26 140 1.0 3.5M 0% 0.0 | 23 112 100k 0% 15 | 0 1 50 -50 -842n | 26 140 1.0 3.5M 0% 0.0 | 23 56 98k 0% 16 | 0 1 50 -50 -760n | 26 140 1.0 3.5M 0% 0.0 | 23 167 100k 0% 17 | 0 1 50 -50 -754n | 26 140 1.0 3.5M 0% 0.0 | 23 114 100k 0% 18 | 0 1 50 -50 106n | 26 140 1.0 3.1M 0% 0.0 | 23 169 88k 0% 19 | 20 | **5G NR console trace**:: 21 | 22 | ---------Signal-----------|-----------------DL-----------------|-----------UL----------- 23 | rat pci rsrp pl cfo | mcs snr iter brate bler ta_us | mcs buff brate bler 24 | lte 1 -11 11 -1.4u | 0 142 0.0 0.0 0% 0.0 | 0 0.0 0.0 0% 25 | nr 500 1 0 23u | 27 70 1.0 8.5M 0% 0.0 | 28 36k 8.3M 0% 26 | lte 1 -11 11 -1.4u | 0 142 0.0 0.0 0% 0.0 | 0 0.0 0.0 0% 27 | nr 500 1 0 23u | 27 70 1.0 9.2M 0% 0.0 | 28 24k 8.1M 0% 28 | lte 1 -11 11 -1.4u | 0 142 0.0 0.0 0% 0.0 | 0 0.0 0.0 0% 29 | nr 500 2 0 23u | 27 69 1.0 4.6M 0% 0.0 | 28 19k 4.2M 0% 30 | 31 | Metrics are generated once per second by default. This can be configured using the *expert.metrics_period_secs* parameter in ``ue.conf``. 32 | 33 | Metrics are provided for the received signal (Signal), downlink (DL) and uplink (UL) respectively. The following metrics are provided: 34 | 35 | :rat: Component carrier, will be either LTE or NR 36 | :cc: Component carrier (LTE) 37 | :pci: `Physical Cell Identifier `_ 38 | :rsrp: `Reference Signal Receive Power `_ (dBm) 39 | :pl: `Pathloss `_ (dB) 40 | :cfo: `Carrier Frequency Offset `_ (Hz) 41 | :mcs: `Modulation and coding scheme `_ (0-28) 42 | :snr: `Signal-to-Noise Ratio `_ (dB) 43 | :iter: Average number of turbo decoder iterations 44 | :brate: Bitrate (bits/sec) 45 | :bler: Block error rate 46 | :ta_us: `Timing advance `_ (uS) 47 | :buff: `Uplink buffer status `_ - data waiting to be transmitted (bytes) 48 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/index.rst: -------------------------------------------------------------------------------- 1 | .. _app_notes: 2 | 3 | .. srsRAN 4G documentation master file, created by 4 | sphinx-quickstart on Dec 13 2018. 5 | You can adapt this file completely to your liking, but it should at least 6 | contain the root `toctree` directive. 7 | 8 | srsRAN 4G Application Notes 9 | =========================== 10 | 11 | srsRAN 4G is a free and open-source 4G and 5G software radio suite. 12 | 13 | Featuring both UE and eNodeB/gNodeB applications, srsRAN 4G can be used with third-party core network solutions to build complete end-to-end mobile wireless networks. For more information, see `www.srsran.com `_. 14 | 15 | These application notes provide guides for specific srsRAN 4G use-cases, using external applications, and guides on hardware choices and use. 16 | 17 | .. image:: .imgs/srsran_architecture.png 18 | 19 | | Set-up and test an end-to-end 5G SA network using srsRAN 4G and a third party 5G Core: 20 | | - :ref:`5G SA Application Note<5g_sa_e2e_appnote>` 21 | 22 | | Connect a 5G SA COTS UE to the srsRAN 4G eNodeB and a third party 5G Core: 23 | | - :ref:`5G SA COTS UE Application Note<5g_sa_cots_appnote>` 24 | 25 | | Connect the srsRAN 4G UE to a 5G SA network: 26 | | - :ref:`srsUE & 3rd Party gNB for 5G SA Application Note<5g_sa_amari_appnote>` 27 | 28 | | Set-up and test an end-to-end 5G NSA network: 29 | | - :ref:`5G NSA Application Note<5g_nsa_zmq_appnote>` 30 | 31 | | Connect a 5G NSA COTS UE to the srsRAN 4G eNodeB: 32 | | - :ref:`5G NSA COTS UE Application Note<5g_nsa_cots_appnote>` 33 | 34 | | Connect the srsRAN 4G UE to a 5G NSA network: 35 | | - :ref:`srsUE & 3rd Party gNB for 5G NSA Application Note<5g_nsa_amari_appnote>` 36 | 37 | | Create an end-to-end network using virtual radios: 38 | | - :ref:`srsRAN 4G with ZMQ Virtual Radios ` 39 | 40 | | Connect a COTS UE to the srsRAN 4G eNodeB: 41 | | - :ref:`COTS UE Application Note` 42 | 43 | | Run srsRAN 4G on the Raspberry Pi 4: 44 | | - :ref:`Raspberry Pi 4 Application Note ` 45 | 46 | | Explore Intra-eNB & S1 Handover: 47 | | - :ref:`Handover Application Note` 48 | 49 | | Carrier Aggregation: 50 | | - :ref:`Carrier Aggregation Application Note <2ca_appnote>` 51 | 52 | | Use eMBMS to support multicast/broadcast traffic: 53 | | - :ref:`eMBMS Application Note ` 54 | 55 | | Explore NB-IoT signalling: 56 | | - :ref:`NB-IoT Application Note ` 57 | 58 | | Experiment with CV2X signalling: 59 | | - :ref:`CV2X Application Note ` 60 | 61 | | Hardware options for experimentation & development: 62 | | - :ref:`Suggested Hardware Packages` 63 | 64 | .. toctree:: 65 | :maxdepth: 1 66 | 67 | 5g_sa_E2E/source/index.rst 68 | 69 | 5g_sa_COTS/source/index.rst 70 | 71 | 5g_sa_amari/source/index.rst 72 | 73 | 5g_nsa_zmq/source/index.rst 74 | 75 | 5g_nsa_cots/source/index.rst 76 | 77 | 5g_nsa_amari/source/index.rst 78 | 79 | zeromq/source/index.rst 80 | 81 | cots_ue/source/index.rst 82 | 83 | pi4/source/index.rst 84 | 85 | handover/source/index.rst 86 | 87 | 2ca/source/index.rst 88 | 89 | embms/source/index.rst 90 | 91 | nbiot/source/index.rst 92 | 93 | cv2x/source/index.rst 94 | 95 | hw_packs/source/index.rst 96 | 97 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsue/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsUE Documentation' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTML output ---------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsUEdoc' 39 | 40 | # -- Options for LaTeX output --------------------------------------------- 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | #'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | #'pointsize': '10pt', 48 | 49 | # Additional stuff for the LaTeX preamble. 50 | #'preamble': '', 51 | 52 | # Latex figure (float) alignment 53 | #'figure_align': 'htbp', 54 | } 55 | 56 | # Grouping the document tree into LaTeX files. List of tuples 57 | # (source start file, target name, title, 58 | # author, documentclass [howto, manual, or own class]). 59 | latex_documents = [ 60 | (master_doc, 'srsUE.tex', u'srsUE Documentation', 61 | u'Software Radio Systems', 'manual'), 62 | ] 63 | 64 | 65 | # -- Options for manual page output --------------------------------------- 66 | 67 | # One entry per manual page. List of tuples 68 | # (source start file, name, description, authors, manual section). 69 | man_pages = [ 70 | (master_doc, 'srsUE', u'srsUE Documentation', 71 | [author], 1) 72 | ] 73 | 74 | 75 | # -- Options for Texinfo output ------------------------------------------- 76 | 77 | # Grouping the document tree into Texinfo files. List of tuples 78 | # (source start file, target name, title, author, 79 | # dir menu entry, description, category) 80 | texinfo_documents = [ 81 | (master_doc, 'srsUE', u'srsUE Documentation', 82 | author, 'srsUE', 'One line description of project.', 83 | 'Miscellaneous'), 84 | ] 85 | 86 | # -- Options for Epub output ------------------------------------------------- 87 | 88 | # Bibliographic Dublin Core info. 89 | epub_title = project 90 | 91 | # The unique identifier of the text. This can be a ISBN number 92 | # or the project homepage. 93 | # 94 | # epub_identifier = '' 95 | 96 | # A unique identification for the text. 97 | # 98 | # epub_uid = '' 99 | 100 | # A list of files that should not be packed into the epub file. 101 | epub_exclude_files = ['search.html'] 102 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/6_enb_commandref.rst: -------------------------------------------------------------------------------- 1 | .. _enb_commandref: 2 | 3 | Command Line Reference 4 | ###################### 5 | 6 | The srsENB application runs in the console. When running, type ``t`` in the console to enable the metrics trace. 7 | 8 | **4G LTE Output**:: 9 | 10 | -----------------DL----------------|-------------------------UL------------------------- 11 | rat pci rnti cqi ri mcs brate ok nok (%) | pusch pucch phr mcs brate ok nok (%) bsr 12 | lte 1 47 15 0 26 1.3M 321 0 0% | 99.9 99.9 30 21 84k 53 0 0% 0.0 13 | lte 1 47 15 0 26 3.5M 875 0 0% | 99.9 99.9 30 23 98k 48 0 0% 0.0 14 | lte 1 47 15 0 26 3.5M 876 0 0% | 99.9 99.9 30 22 111k 56 0 0% 0.0 15 | lte 1 47 15 0 26 3.5M 876 0 0% | 99.9 99.9 30 23 100k 49 0 0% 0.0 16 | lte 1 47 15 0 26 3.5M 878 0 0% | 99.9 99.9 30 23 98k 48 0 0% 0.0 17 | lte 1 47 15 0 26 3.5M 874 0 0% | 99.9 99.9 30 22 110k 56 0 0% 0.0 18 | lte 1 47 15 0 26 3.5M 877 0 0% | 99.9 99.9 30 23 100k 49 0 0% 0.0 19 | 20 | **5G NR Output**:: 21 | 22 | -----------------DL----------------|-------------------------UL------------------------- 23 | rat rnti cqi ri mcs brate ok nok (%) | pusch pucch phr mcs brate ok nok (%) bsr 24 | lte 46 15 0 0 0 0 0 0% | n/a n/a 0 0 0 0 0 0% 0.0 25 | nr 4601 n/a 0 27 6.9M 124 0 0% | n/a n/a 0 0 6.1M 95 0 0% 0.0 26 | lte 46 15 0 0 0 0 0 0% | n/a n/a 0 0 0 0 0 0% 0.0 27 | nr 4601 n/a 0 27 4.4M 92 0 0% | n/a n/a 0 0 4.2M 76 0 0% 0.0 28 | 29 | Metrics are generated once per second by default. This can be configured using the *expert.metrics_period_secs* parameter in ``enb.conf``. 30 | 31 | Metrics are provided on a per-UE basis for the downlink (DL) and uplink (UL) respectively. The following metrics are provided: 32 | 33 | :rat: The RAT being used, either NR or LTE 34 | :pci: `Physical Cell Identifier `_ 35 | :rnti: `Radio Network Temporary Identifier `_ (UE identifier) 36 | :cqi: `Channel Quality Indicator `_ reported by the UE (1-15) 37 | :ri: `Rank Indicator `_ reported by the UE (dB) 38 | :mcs: `Modulation and coding scheme `_ (0-28) 39 | :brate: Bitrate (bits/sec) 40 | :ok: Number of packets successfully sent 41 | :nok: Number of packets dropped 42 | :(%): % of packets dropped 43 | :pusch: PUSCH SNIR (Signal-to-Interference-plus-Noise Ratio) 44 | :pucch: PUCCH SNIR 45 | :phr: `Power Headroom `_ (dB) 46 | :bsr: `Buffer Status Report `_ - data waiting to be transmitted as reported by the UE (bytes) -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsENB Documentation' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTML output ---------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsENBdoc' 39 | 40 | # -- Options for LaTeX output --------------------------------------------- 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | #'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | #'pointsize': '10pt', 48 | 49 | # Additional stuff for the LaTeX preamble. 50 | #'preamble': '', 51 | 52 | # Latex figure (float) alignment 53 | #'figure_align': 'htbp', 54 | } 55 | 56 | # Grouping the document tree into LaTeX files. List of tuples 57 | # (source start file, target name, title, 58 | # author, documentclass [howto, manual, or own class]). 59 | latex_documents = [ 60 | (master_doc, 'srsENB.tex', u'srsENB Documentation', 61 | u'Software Radio Systems', 'manual'), 62 | ] 63 | 64 | 65 | # -- Options for manual page output --------------------------------------- 66 | 67 | # One entry per manual page. List of tuples 68 | # (source start file, name, description, authors, manual section). 69 | man_pages = [ 70 | (master_doc, 'srsENB', u'srsENB Documentation', 71 | [author], 1) 72 | ] 73 | 74 | 75 | # -- Options for Texinfo output ------------------------------------------- 76 | 77 | # Grouping the document tree into Texinfo files. List of tuples 78 | # (source start file, target name, title, author, 79 | # dir menu entry, description, category) 80 | texinfo_documents = [ 81 | (master_doc, 'srsENB', u'srsENB Documentation', 82 | author, 'srsENB', 'One line description of project.', 83 | 'Miscellaneous'), 84 | ] 85 | 86 | # -- Options for Epub output ------------------------------------------------- 87 | 88 | # Bibliographic Dublin Core info. 89 | epub_title = project 90 | 91 | # The unique identifier of the text. This can be a ISBN number 92 | # or the project homepage. 93 | # 94 | # epub_identifier = '' 95 | 96 | # A unique identification for the text. 97 | # 98 | # epub_uid = '' 99 | 100 | # A list of files that should not be packed into the epub file. 101 | epub_exclude_files = ['search.html'] 102 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsEPC Documentation' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTML output ---------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsEPCdoc' 39 | 40 | # -- Options for LaTeX output --------------------------------------------- 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | #'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | #'pointsize': '10pt', 48 | 49 | # Additional stuff for the LaTeX preamble. 50 | #'preamble': '', 51 | 52 | # Latex figure (float) alignment 53 | #'figure_align': 'htbp', 54 | } 55 | 56 | # Grouping the document tree into LaTeX files. List of tuples 57 | # (source start file, target name, title, 58 | # author, documentclass [howto, manual, or own class]). 59 | latex_documents = [ 60 | (master_doc, 'srsEPC.tex', u'srsEPC Documentation', 61 | u'Software Radio Systems', 'manual'), 62 | ] 63 | 64 | 65 | # -- Options for manual page output --------------------------------------- 66 | 67 | # One entry per manual page. List of tuples 68 | # (source start file, name, description, authors, manual section). 69 | man_pages = [ 70 | (master_doc, 'srsEPC', u'srsEPC Documentation', 71 | [author], 1) 72 | ] 73 | 74 | 75 | # -- Options for Texinfo output ------------------------------------------- 76 | 77 | # Grouping the document tree into Texinfo files. List of tuples 78 | # (source start file, target name, title, author, 79 | # dir menu entry, description, category) 80 | texinfo_documents = [ 81 | (master_doc, 'srsEPC', u'srsEPC Documentation', 82 | author, 'srsEPC', 'One line description of project.', 83 | 'Miscellaneous'), 84 | ] 85 | 86 | # -- Options for Epub output ------------------------------------------------- 87 | 88 | # Bibliographic Dublin Core info. 89 | epub_title = project 90 | 91 | # The unique identifier of the text. This can be a ISBN number 92 | # or the project homepage. 93 | # 94 | # epub_identifier = '' 95 | 96 | # A unique identification for the text. 97 | # 98 | # epub_uid = '' 99 | 100 | # A list of files that should not be packed into the epub file. 101 | epub_exclude_files = ['search.html'] 102 | -------------------------------------------------------------------------------- /docs/source/general/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'General Documentation' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | # -- Options for HTMLHelp output --------------------------------------------- 35 | 36 | # Output file base name for HTML help builder. 37 | htmlhelp_basename = 'generaldocs' 38 | 39 | 40 | # -- Options for LaTeX output ------------------------------------------------ 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | # 45 | # 'papersize': 'letterpaper', 46 | 47 | # The font size ('10pt', '11pt' or '12pt'). 48 | # 49 | # 'pointsize': '10pt', 50 | 51 | # Additional stuff for the LaTeX preamble. 52 | # 53 | # 'preamble': '', 54 | 55 | # Latex figure (float) alignment 56 | # 57 | # 'figure_align': 'htbp', 58 | } 59 | 60 | # Grouping the document tree into LaTeX files. List of tuples 61 | # (source start file, target name, title, 62 | # author, documentclass [howto, manual, or own class]). 63 | latex_documents = [ 64 | (master_doc, 'generaldocs.tex', u'General Documentation', 65 | u'SRS', 'manual'), 66 | ] 67 | 68 | 69 | # -- Options for manual page output ------------------------------------------ 70 | 71 | # One entry per manual page. List of tuples 72 | # (source start file, name, description, authors, manual section). 73 | man_pages = [ 74 | (master_doc, 'generaldocs', u'General Documentation', 75 | [author], 1) 76 | ] 77 | 78 | 79 | # -- Options for Texinfo output ---------------------------------------------- 80 | 81 | # Grouping the document tree into Texinfo files. List of tuples 82 | # (source start file, target name, title, author, 83 | # dir menu entry, description, category) 84 | texinfo_documents = [ 85 | (master_doc, 'generaldocs', u'General Documentation', 86 | author, 'generaldocs', 'One line description of project.', 87 | 'Miscellaneous'), 88 | ] 89 | 90 | 91 | # -- Options for Epub output ------------------------------------------------- 92 | 93 | # Bibliographic Dublin Core info. 94 | epub_title = project 95 | 96 | # The unique identifier of the text. This can be a ISBN number 97 | # or the project homepage. 98 | # 99 | # epub_identifier = '' 100 | 101 | # A unique identification for the text. 102 | # 103 | # epub_uid = '' 104 | 105 | # A list of files that should not be packed into the epub file. 106 | epub_exclude_files = ['search.html'] 107 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/hw_packs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'Recommended Hardware Packages' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | # -- Options for HTMLHelp output --------------------------------------------- 34 | 35 | # Output file base name for HTML help builder. 36 | htmlhelp_basename = 'hwpacksapplicationnotedoc' 37 | 38 | 39 | # -- Options for LaTeX output ------------------------------------------------ 40 | 41 | latex_elements = { 42 | # The paper size ('letterpaper' or 'a4paper'). 43 | # 44 | # 'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | # 48 | # 'pointsize': '10pt', 49 | 50 | # Additional stuff for the LaTeX preamble. 51 | # 52 | # 'preamble': '', 53 | 54 | # Latex figure (float) alignment 55 | # 56 | # 'figure_align': 'htbp', 57 | } 58 | 59 | # Grouping the document tree into LaTeX files. List of tuples 60 | # (source start file, target name, title, 61 | # author, documentclass [howto, manual, or own class]). 62 | latex_documents = [ 63 | (master_doc, 'hwpacks.tex', u'Recommended Hardware Packages', 64 | u'SRS', 'manual'), 65 | ] 66 | 67 | 68 | # -- Options for manual page output ------------------------------------------ 69 | 70 | # One entry per manual page. List of tuples 71 | # (source start file, name, description, authors, manual section). 72 | man_pages = [ 73 | (master_doc, 'hwpacks', u'Recommended Hardware Packages', 74 | [author], 1) 75 | ] 76 | 77 | 78 | # -- Options for Texinfo output ---------------------------------------------- 79 | 80 | # Grouping the document tree into Texinfo files. List of tuples 81 | # (source start file, target name, title, author, 82 | # dir menu entry, description, category) 83 | texinfo_documents = [ 84 | (master_doc, 'hw_packs', u'Recommended Hardware Packages', 85 | [author], 'hw_packs', 'One line description of project.', 86 | 'Miscellaneous'), 87 | ] 88 | 89 | 90 | # -- Options for Epub output ------------------------------------------------- 91 | 92 | # Bibliographic Dublin Core info. 93 | epub_title = project 94 | 95 | # The unique identifier of the text. This can be a ISBN number 96 | # or the project homepage. 97 | # 98 | # epub_identifier = '' 99 | 100 | # A unique identification for the text. 101 | # 102 | # epub_uid = '' 103 | 104 | # A list of files that should not be packed into the epub file. 105 | epub_exclude_files = ['search.html'] 106 | 107 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsRAN 4G User Manuals' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'21.04' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'21.04' 32 | 33 | # -- Options for HTMLHelp output --------------------------------------------- 34 | 35 | # Output file base name for HTML help builder. 36 | htmlhelp_basename = 'srsRAN4GUserManualsdoc' 37 | 38 | 39 | # -- Options for LaTeX output ------------------------------------------------ 40 | 41 | latex_elements = { 42 | # The paper size ('letterpaper' or 'a4paper'). 43 | # 44 | # 'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | # 48 | # 'pointsize': '10pt', 49 | 50 | # Additional stuff for the LaTeX preamble. 51 | # 52 | # 'preamble': '', 53 | 54 | # Latex figure (float) alignment 55 | # 56 | # 'figure_align': 'htbp', 57 | } 58 | 59 | # Grouping the document tree into LaTeX files. List of tuples 60 | # (source start file, target name, title, 61 | # author, documentclass [howto, manual, or own class]). 62 | latex_documents = [ 63 | (master_doc, 'srsRAN4GUserManuals.tex', u'srsRAN 4G User Manuals', 64 | u'SRS', 'manual'), 65 | ] 66 | 67 | 68 | # -- Options for manual page output ------------------------------------------ 69 | 70 | # One entry per manual page. List of tuples 71 | # (source start file, name, description, authors, manual section). 72 | man_pages = [ 73 | (master_doc, 'srsRAN4GUserManuals', u'srsRAN 4G User Manuals Documentation', 74 | [author], 1) 75 | ] 76 | 77 | 78 | # -- Options for Texinfo output ---------------------------------------------- 79 | 80 | # Grouping the document tree into Texinfo files. List of tuples 81 | # (source start file, target name, title, author, 82 | # dir menu entry, description, category) 83 | texinfo_documents = [ 84 | (master_doc, 'srsRAN4GUserManuals', u'srsRAN 4G User Manuals Documentation', 85 | author, 'srsRAN4GUserManuals', 'One line description of project.', 86 | 'Miscellaneous'), 87 | ] 88 | 89 | 90 | # -- Options for Epub output ------------------------------------------------- 91 | 92 | # Bibliographic Dublin Core info. 93 | epub_title = project 94 | 95 | # The unique identifier of the text. This can be a ISBN number 96 | # or the project homepage. 97 | # 98 | # epub_identifier = '' 99 | 100 | # A unique identification for the text. 101 | # 102 | # epub_uid = '' 103 | 104 | # A list of files that should not be packed into the epub file. 105 | epub_exclude_files = ['search.html'] 106 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/cv2x/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'cv2x application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | # -- Options for HTMLHelp output --------------------------------------------- 34 | 35 | # Output file base name for HTML help builder. 36 | htmlhelp_basename = 'cv2xapplicationnotedoc' 37 | 38 | 39 | # -- Options for LaTeX output ------------------------------------------------ 40 | 41 | latex_elements = { 42 | # The paper size ('letterpaper' or 'a4paper'). 43 | # 44 | # 'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | # 48 | # 'pointsize': '10pt', 49 | 50 | # Additional stuff for the LaTeX preamble. 51 | # 52 | # 'preamble': '', 53 | 54 | # Latex figure (float) alignment 55 | # 56 | # 'figure_align': 'htbp', 57 | } 58 | 59 | # Grouping the document tree into LaTeX files. List of tuples 60 | # (source start file, target name, title, 61 | # author, documentclass [howto, manual, or own class]). 62 | latex_documents = [ 63 | (master_doc, 'cv2xapplicationnote.tex', u'cv2x application note Documentation', 64 | u'SRS', 'manual'), 65 | ] 66 | 67 | 68 | # -- Options for manual page output ------------------------------------------ 69 | 70 | # One entry per manual page. List of tuples 71 | # (source start file, name, description, authors, manual section). 72 | man_pages = [ 73 | (master_doc, 'cv2xapplicationnote', u'cv2x application note Documentation', 74 | [author], 1) 75 | ] 76 | 77 | 78 | # -- Options for Texinfo output ---------------------------------------------- 79 | 80 | # Grouping the document tree into Texinfo files. List of tuples 81 | # (source start file, target name, title, author, 82 | # dir menu entry, description, category) 83 | texinfo_documents = [ 84 | (master_doc, 'cv2xapplicationnote', u'cv2x application note Documentation', 85 | author, 'cv2xapplicationnote', 'One line description of project.', 86 | 'Miscellaneous'), 87 | ] 88 | 89 | 90 | # -- Options for Epub output ------------------------------------------------- 91 | 92 | # Bibliographic Dublin Core info. 93 | epub_title = project 94 | 95 | # The unique identifier of the text. This can be a ISBN number 96 | # or the project homepage. 97 | # 98 | # epub_identifier = '' 99 | 100 | # A unique identification for the text. 101 | # 102 | # epub_uid = '' 103 | 104 | # A list of files that should not be packed into the epub file. 105 | epub_exclude_files = ['search.html'] 106 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/pi4/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'pi4 application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | # -- Options for HTMLHelp output --------------------------------------------- 35 | 36 | # Output file base name for HTML help builder. 37 | htmlhelp_basename = 'pi4applicationnotedoc' 38 | 39 | 40 | # -- Options for LaTeX output ------------------------------------------------ 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | # 45 | # 'papersize': 'letterpaper', 46 | 47 | # The font size ('10pt', '11pt' or '12pt'). 48 | # 49 | # 'pointsize': '10pt', 50 | 51 | # Additional stuff for the LaTeX preamble. 52 | # 53 | # 'preamble': '', 54 | 55 | # Latex figure (float) alignment 56 | # 57 | # 'figure_align': 'htbp', 58 | } 59 | 60 | # Grouping the document tree into LaTeX files. List of tuples 61 | # (source start file, target name, title, 62 | # author, documentclass [howto, manual, or own class]). 63 | latex_documents = [ 64 | (master_doc, 'pi4applicationnote.tex', u'pi4 application note Documentation', 65 | u'SRS', 'manual'), 66 | ] 67 | 68 | 69 | # -- Options for manual page output ------------------------------------------ 70 | 71 | # One entry per manual page. List of tuples 72 | # (source start file, name, description, authors, manual section). 73 | man_pages = [ 74 | (master_doc, 'pi4applicationnote', u'pi4 application note Documentation', 75 | [author], 1) 76 | ] 77 | 78 | 79 | # -- Options for Texinfo output ---------------------------------------------- 80 | 81 | # Grouping the document tree into Texinfo files. List of tuples 82 | # (source start file, target name, title, author, 83 | # dir menu entry, description, category) 84 | texinfo_documents = [ 85 | (master_doc, 'pi4applicationnote', u'pi4 application note Documentation', 86 | author, 'pi4applicationnote', 'One line description of project.', 87 | 'Miscellaneous'), 88 | ] 89 | 90 | 91 | # -- Options for Epub output ------------------------------------------------- 92 | 93 | # Bibliographic Dublin Core info. 94 | epub_title = project 95 | 96 | # The unique identifier of the text. This can be a ISBN number 97 | # or the project homepage. 98 | # 99 | # epub_identifier = '' 100 | 101 | # A unique identification for the text. 102 | # 103 | # epub_uid = '' 104 | 105 | # A list of files that should not be packed into the epub file. 106 | epub_exclude_files = ['search.html'] 107 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/embms/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'embms application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | # -- Options for HTMLHelp output --------------------------------------------- 34 | 35 | # Output file base name for HTML help builder. 36 | htmlhelp_basename = 'embmsapplicationnotedoc' 37 | 38 | 39 | # -- Options for LaTeX output ------------------------------------------------ 40 | 41 | latex_elements = { 42 | # The paper size ('letterpaper' or 'a4paper'). 43 | # 44 | # 'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | # 48 | # 'pointsize': '10pt', 49 | 50 | # Additional stuff for the LaTeX preamble. 51 | # 52 | # 'preamble': '', 53 | 54 | # Latex figure (float) alignment 55 | # 56 | # 'figure_align': 'htbp', 57 | } 58 | 59 | # Grouping the document tree into LaTeX files. List of tuples 60 | # (source start file, target name, title, 61 | # author, documentclass [howto, manual, or own class]). 62 | latex_documents = [ 63 | (master_doc, 'embmsapplicationnote.tex', u'embms application note Documentation', 64 | u'SRS', 'manual'), 65 | ] 66 | 67 | 68 | # -- Options for manual page output ------------------------------------------ 69 | 70 | # One entry per manual page. List of tuples 71 | # (source start file, name, description, authors, manual section). 72 | man_pages = [ 73 | (master_doc, 'embmsapplicationnote', u'embms application note Documentation', 74 | [author], 1) 75 | ] 76 | 77 | 78 | # -- Options for Texinfo output ---------------------------------------------- 79 | 80 | # Grouping the document tree into Texinfo files. List of tuples 81 | # (source start file, target name, title, author, 82 | # dir menu entry, description, category) 83 | texinfo_documents = [ 84 | (master_doc, 'embmsapplicationnote', u'embms application note Documentation', 85 | author, 'embmsapplicationnote', 'One line description of project.', 86 | 'Miscellaneous'), 87 | ] 88 | 89 | 90 | # -- Options for Epub output ------------------------------------------------- 91 | 92 | # Bibliographic Dublin Core info. 93 | epub_title = project 94 | 95 | # The unique identifier of the text. This can be a ISBN number 96 | # or the project homepage. 97 | # 98 | # epub_identifier = '' 99 | 100 | # A unique identification for the text. 101 | # 102 | # epub_uid = '' 103 | 104 | # A list of files that should not be packed into the epub file. 105 | epub_exclude_files = ['search.html'] 106 | -------------------------------------------------------------------------------- /docs/source/general/source/3_contributions.rst: -------------------------------------------------------------------------------- 1 | .. _gen_contributions: 2 | 3 | Contributions 4 | ############# 5 | 6 | Contributions to the srsRAN 4G software suite are always welcome. The easiest way to contribute is by issuing a pull request on the `srsRAN 4G repository `_. We use clang-format to maintain consistent code style - see our `default format `_. 7 | 8 | We ask srsRAN 4G contributors to agree to a Copyright License Agreement. This provides us with necessary permissions to use contributed code. For more information, see the FAQ below. Viewing and accepting the CLA agreement is integrated into the GitHub pull request workflow using `CLAassistant `_. 9 | 10 | FAQ 11 | ***** 12 | 13 | 14 | 1. What is a Copyright License Agreement (CLA) and why do I need one? 15 | ===================================================================== 16 | 17 | A Copyright License Agreement is a legal document in which you state you are entitled to contribute the code/documentation/translation to the project you’re contributing to and are willing to have it used in distributions and derivative works. This means that should there be any kind of legal issue in the future as to the origins and ownership of any particular piece of code, then that project has the necessary forms on file from the contributor(s) saying they were permitted to make this contribution. 18 | 19 | The CLA also ensures that once you have provided a contribution, you cannot try to withdraw permission for its use at a later date. People and companies can therefore use that software, confident that they will not be asked to stop using pieces of the code at a later date. 20 | 21 | The agreements used by the srsRAN 4G project are standard documents provided by Project Harmony, a community-centered group focused on contributor agreements for free and open source software (FOSS). For more information, see www.harmonyagreements.org. 22 | 23 | 24 | 2. How do I complete and submit the CLA? 25 | ======================================== 26 | 27 | The srsRAN 4G CLA for Individual contributions can be found :download:`here `. The srsRAN 4G CLA for Entity contributions can be found :download:`here `. Download the appropriate CLA, then print, sign and scan the document before sending by email to licensing@softwareradiosystems.com. 28 | 29 | 30 | 3. How will my contributions to srsRAN 4G be used? 31 | ================================================== 32 | 33 | The srsRAN 4G project was created and is maintained by Software Radio Systems (SRS), a private limited company headquartered in Ireland. SRS provides srsRAN 4G under both the open-source AGPLv3 license and commercial licenses. SRS also sells proprietary software products which build upon the srsRAN 4G codebase. In this way, we attempt to ensure the ongoing development, evolution and sustainability of the srsRAN 4G project. 34 | 35 | Through the license agreements, we ask you to grant us permission to use your contributions within srsRAN 4G and to continue to provide srsRAN 4G under open-source and commercial licenses and within proprietary products. As we do not ask for copyright assignment, you retain complete ownership of your contributions and have the same rights to use or license those contributions which you would have had without entering into a license agreement. 36 | 37 | If you have any questions about srsRAN 4G licensing and contributions, please contact us at licensing@softwareradiosystems.com 38 | 39 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/nbiot/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'nbiot application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | # -- Options for HTMLHelp output --------------------------------------------- 35 | 36 | # Output file base name for HTML help builder. 37 | htmlhelp_basename = 'nbiotapplicationnotedoc' 38 | 39 | 40 | # -- Options for LaTeX output ------------------------------------------------ 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | # 45 | # 'papersize': 'letterpaper', 46 | 47 | # The font size ('10pt', '11pt' or '12pt'). 48 | # 49 | # 'pointsize': '10pt', 50 | 51 | # Additional stuff for the LaTeX preamble. 52 | # 53 | # 'preamble': '', 54 | 55 | # Latex figure (float) alignment 56 | # 57 | # 'figure_align': 'htbp', 58 | } 59 | 60 | # Grouping the document tree into LaTeX files. List of tuples 61 | # (source start file, target name, title, 62 | # author, documentclass [howto, manual, or own class]). 63 | latex_documents = [ 64 | (master_doc, 'nbiotapplicationnote.tex', u'nbiot application note Documentation', 65 | u'SRS', 'manual'), 66 | ] 67 | 68 | 69 | # -- Options for manual page output ------------------------------------------ 70 | 71 | # One entry per manual page. List of tuples 72 | # (source start file, name, description, authors, manual section). 73 | man_pages = [ 74 | (master_doc, 'nbiotapplicationnote', u'nbiot application note Documentation', 75 | [author], 1) 76 | ] 77 | 78 | 79 | # -- Options for Texinfo output ---------------------------------------------- 80 | 81 | # Grouping the document tree into Texinfo files. List of tuples 82 | # (source start file, target name, title, author, 83 | # dir menu entry, description, category) 84 | texinfo_documents = [ 85 | (master_doc, 'nbiotapplicationnote', u'nbiot application note Documentation', 86 | author, 'nbiotapplicationnote', 'One line description of project.', 87 | 'Miscellaneous'), 88 | ] 89 | 90 | 91 | # -- Options for Epub output ------------------------------------------------- 92 | 93 | # Bibliographic Dublin Core info. 94 | epub_title = project 95 | 96 | # The unique identifier of the text. This can be a ISBN number 97 | # or the project homepage. 98 | # 99 | # epub_identifier = '' 100 | 101 | # A unique identification for the text. 102 | # 103 | # epub_uid = '' 104 | 105 | # A list of files that should not be packed into the epub file. 106 | epub_exclude_files = ['search.html'] 107 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_amari/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'5G SA srsUE & Amarisoft gNB' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'SA_UE_amari_gNBdoc' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, 'SA_UE_amari_gNB.tex', u'5G SA srsUE & Amarisoft gNB Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, 'SA_UE_amari_gNB', u'5G SA srsUE & Amarisoft gNB Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, 'SA_UE_amari_gNB', u'5G SA srsUE & Amarisoft gNB Documentation', 87 | author, 'SA_UE_amari_gNB', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'5gNSA application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = '5gNSAapplicationnotedoc' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, '5gNSAapplicationnote.tex', u'5gNSA application note Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, '5gNSAapplicationnote', u'5gNSA application note Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, '5gNSAapplicationnote', u'5gNSA application note Documentation', 87 | author, '5gNSAapplicationnote', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/zeromq/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'zeromq application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | # -- Options for HTMLHelp output --------------------------------------------- 35 | 36 | # Output file base name for HTML help builder. 37 | htmlhelp_basename = 'zeromqapplicationnotedoc' 38 | 39 | 40 | # -- Options for LaTeX output ------------------------------------------------ 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | # 45 | # 'papersize': 'letterpaper', 46 | 47 | # The font size ('10pt', '11pt' or '12pt'). 48 | # 49 | # 'pointsize': '10pt', 50 | 51 | # Additional stuff for the LaTeX preamble. 52 | # 53 | # 'preamble': '', 54 | 55 | # Latex figure (float) alignment 56 | # 57 | # 'figure_align': 'htbp', 58 | } 59 | 60 | # Grouping the document tree into LaTeX files. List of tuples 61 | # (source start file, target name, title, 62 | # author, documentclass [howto, manual, or own class]). 63 | latex_documents = [ 64 | (master_doc, 'zeromqapplicationnote.tex', u'zeromq application note Documentation', 65 | u'SRS', 'manual'), 66 | ] 67 | 68 | 69 | # -- Options for manual page output ------------------------------------------ 70 | 71 | # One entry per manual page. List of tuples 72 | # (source start file, name, description, authors, manual section). 73 | man_pages = [ 74 | (master_doc, 'zeromqapplicationnote', u'zeromq application note Documentation', 75 | [author], 1) 76 | ] 77 | 78 | 79 | # -- Options for Texinfo output ---------------------------------------------- 80 | 81 | # Grouping the document tree into Texinfo files. List of tuples 82 | # (source start file, target name, title, author, 83 | # dir menu entry, description, category) 84 | texinfo_documents = [ 85 | (master_doc, 'zeromqapplicationnote', u'zeromq application note Documentation', 86 | author, 'zeromqapplicationnote', 'One line description of project.', 87 | 'Miscellaneous'), 88 | ] 89 | 90 | 91 | # -- Options for Epub output ------------------------------------------------- 92 | 93 | # Bibliographic Dublin Core info. 94 | epub_title = project 95 | 96 | # The unique identifier of the text. This can be a ISBN number 97 | # or the project homepage. 98 | # 99 | # epub_identifier = '' 100 | 101 | # A unique identification for the text. 102 | # 103 | # epub_uid = '' 104 | 105 | # A list of files that should not be packed into the epub file. 106 | epub_exclude_files = ['search.html'] 107 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/cots_ue/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'COTS UE application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | # -- Options for HTMLHelp output --------------------------------------------- 35 | 36 | # Output file base name for HTML help builder. 37 | htmlhelp_basename = 'cotsueapplicationnotedoc' 38 | 39 | 40 | # -- Options for LaTeX output ------------------------------------------------ 41 | 42 | latex_elements = { 43 | # The paper size ('letterpaper' or 'a4paper'). 44 | # 45 | # 'papersize': 'letterpaper', 46 | 47 | # The font size ('10pt', '11pt' or '12pt'). 48 | # 49 | # 'pointsize': '10pt', 50 | 51 | # Additional stuff for the LaTeX preamble. 52 | # 53 | # 'preamble': '', 54 | 55 | # Latex figure (float) alignment 56 | # 57 | # 'figure_align': 'htbp', 58 | } 59 | 60 | # Grouping the document tree into LaTeX files. List of tuples 61 | # (source start file, target name, title, 62 | # author, documentclass [howto, manual, or own class]). 63 | latex_documents = [ 64 | (master_doc, 'cotsueapplicationnote.tex', u'COTS UE application note Documentation', 65 | u'SRS', 'manual'), 66 | ] 67 | 68 | 69 | # -- Options for manual page output ------------------------------------------ 70 | 71 | # One entry per manual page. List of tuples 72 | # (source start file, name, description, authors, manual section). 73 | man_pages = [ 74 | (master_doc, 'cotsueapplicationnote', u'COTS UE application note Documentation', 75 | [author], 1) 76 | ] 77 | 78 | 79 | # -- Options for Texinfo output ---------------------------------------------- 80 | 81 | # Grouping the document tree into Texinfo files. List of tuples 82 | # (source start file, target name, title, author, 83 | # dir menu entry, description, category) 84 | texinfo_documents = [ 85 | (master_doc, 'cotsueapplicationnote', u'COTS UE application note Documentation', 86 | author, 'cotsueapplicationnote', 'One line description of project.', 87 | 'Miscellaneous'), 88 | ] 89 | 90 | 91 | # -- Options for Epub output ------------------------------------------------- 92 | 93 | # Bibliographic Dublin Core info. 94 | epub_title = project 95 | 96 | # The unique identifier of the text. This can be a ISBN number 97 | # or the project homepage. 98 | # 99 | # epub_identifier = '' 100 | 101 | # A unique identification for the text. 102 | # 103 | # epub_uid = '' 104 | 105 | # A list of files that should not be packed into the epub file. 106 | epub_exclude_files = ['search.html'] 107 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'Handover application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | # -- Options for HTMLHelp output --------------------------------------------- 34 | 35 | # Output file base name for HTML help builder. 36 | htmlhelp_basename = 'handoverapplicationnotedoc' 37 | 38 | 39 | # -- Options for LaTeX output ------------------------------------------------ 40 | 41 | latex_elements = { 42 | # The paper size ('letterpaper' or 'a4paper'). 43 | # 44 | # 'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | # 48 | # 'pointsize': '10pt', 49 | 50 | # Additional stuff for the LaTeX preamble. 51 | # 52 | # 'preamble': '', 53 | 54 | # Latex figure (float) alignment 55 | # 56 | # 'figure_align': 'htbp', 57 | } 58 | 59 | # Grouping the document tree into LaTeX files. List of tuples 60 | # (source start file, target name, title, 61 | # author, documentclass [howto, manual, or own class]). 62 | latex_documents = [ 63 | (master_doc, 'handoverapplicationnote.tex', u'Handover application note Documentation', 64 | u'SRS', 'manual'), 65 | ] 66 | 67 | 68 | # -- Options for manual page output ------------------------------------------ 69 | 70 | # One entry per manual page. List of tuples 71 | # (source start file, name, description, authors, manual section). 72 | man_pages = [ 73 | (master_doc, 'handoverapplicationnote', u'Handover application note Documentation', 74 | [author], 1) 75 | ] 76 | 77 | 78 | # -- Options for Texinfo output ---------------------------------------------- 79 | 80 | # Grouping the document tree into Texinfo files. List of tuples 81 | # (source start file, target name, title, author, 82 | # dir menu entry, description, category) 83 | texinfo_documents = [ 84 | (master_doc, 'handoverapplicationnote', u'Handover application note Documentation', 85 | author, 'handoverapplicationnote', 'One line description of project.', 86 | 'Miscellaneous'), 87 | ] 88 | 89 | 90 | # -- Options for Epub output ------------------------------------------------- 91 | 92 | # Bibliographic Dublin Core info. 93 | epub_title = project 94 | 95 | # The unique identifier of the text. This can be a ISBN number 96 | # or the project homepage. 97 | # 98 | # epub_identifier = '' 99 | 100 | # A unique identification for the text. 101 | # 102 | # epub_uid = '' 103 | 104 | # A list of files that should not be packed into the epub file. 105 | epub_exclude_files = ['search.html'] 106 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_E2E/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsRAN 4G SA E2E App Note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsRAN_4G_5GSA_appnote' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, 'srsRAN_4G_5GSA_appnote.tex', u'srsRAN 4G SA E2E App Note Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, 'srsRAN_4G_5GSA_appnote', u'srsRAN 4G SA E2E App Note Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, 'srsRAN_4G_5GSA_appnote', u'srsRAN 4G SA E2E App Note Documentation', 87 | author, 'srsRAN_4G_5GSA_appnote', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsRAN 4G Application Notes' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'21.04' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'21.04' 32 | 33 | # -- Options for HTMLHelp output --------------------------------------------- 34 | 35 | # Output file base name for HTML help builder. 36 | htmlhelp_basename = 'srsRAN4Gapplicationnotesdoc' 37 | 38 | 39 | # -- Options for LaTeX output ------------------------------------------------ 40 | 41 | latex_elements = { 42 | # The paper size ('letterpaper' or 'a4paper'). 43 | # 44 | # 'papersize': 'letterpaper', 45 | 46 | # The font size ('10pt', '11pt' or '12pt'). 47 | # 48 | # 'pointsize': '10pt', 49 | 50 | # Additional stuff for the LaTeX preamble. 51 | # 52 | # 'preamble': '', 53 | 54 | # Latex figure (float) alignment 55 | # 56 | # 'figure_align': 'htbp', 57 | } 58 | 59 | # Grouping the document tree into LaTeX files. List of tuples 60 | # (source start file, target name, title, 61 | # author, documentclass [howto, manual, or own class]). 62 | latex_documents = [ 63 | (master_doc, 'srsRAN4Gapplicationnotes.tex', u'srsRAN 4G Application Notes Documentation', 64 | u'SRS', 'manual'), 65 | ] 66 | 67 | 68 | # -- Options for manual page output ------------------------------------------ 69 | 70 | # One entry per manual page. List of tuples 71 | # (source start file, name, description, authors, manual section). 72 | man_pages = [ 73 | (master_doc, 'srsRAN4Gapplicationnotes', u'srsRAN 4G Application Notes Documentation', 74 | [author], 1) 75 | ] 76 | 77 | 78 | # -- Options for Texinfo output ---------------------------------------------- 79 | 80 | # Grouping the document tree into Texinfo files. List of tuples 81 | # (source start file, target name, title, author, 82 | # dir menu entry, description, category) 83 | texinfo_documents = [ 84 | (master_doc, 'srsRAN4Gapplicationnotes', u'srsRAN 4G Application Notes Documentation', 85 | author, 'srsRAN4Gapplicationnotes', 'One line description of project.', 86 | 'Miscellaneous'), 87 | ] 88 | 89 | 90 | # -- Options for Epub output ------------------------------------------------- 91 | 92 | # Bibliographic Dublin Core info. 93 | epub_title = project 94 | 95 | # The unique identifier of the text. This can be a ISBN number 96 | # or the project homepage. 97 | # 98 | # epub_identifier = '' 99 | 100 | # A unique identification for the text. 101 | # 102 | # epub_uid = '' 103 | 104 | # A list of files that should not be packed into the epub file. 105 | epub_exclude_files = ['search.html'] 106 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/3_epc_trouble.rst: -------------------------------------------------------------------------------- 1 | .. _epc_trouble: 2 | 3 | Troubleshooting 4 | =============== 5 | 6 | This section describes some of the most common issues with srsEPC and how to troubleshoot them. 7 | 8 | UE did not attach 9 | +++++++++++++++++ 10 | 11 | If the UE could not attach it is important to see at what point the attach procedure broke down. 12 | The easiest way to do this is to inspect the NAS messages on the EPC PCAP. See the :ref:`observing_res` section for instructions on how to obtain a PCAP from srsEPC. 13 | 14 | The most common reasons for an attach failure are either an :ref:`auth_failure` or a :ref:`mismatch_apn`. Some instructions on addressing these issues can be found on the subsections below. 15 | 16 | .. _auth_failure: 17 | 18 | Authentication failure 19 | ---------------------- 20 | 21 | The most common case of attach failure is authentication failure. In LTE, not only the network must authenticate the UE, but the UE must also authenticate the network. 22 | For that reason, there is an authentication procedure within the attach procedure. 23 | 24 | An simplified illustration of the messages involved in the authentication procedure can be found bellow: 25 | 26 | .. seqdiag:: 27 | 28 | seqdiag { 29 | === User Authentication Procedure === 30 | UE -> MME [label = "Attach Request, PDN Connection Request"]; 31 | MME -> HSS [label = "Auth Info Request (IMSI)"]; 32 | MME <- HSS [label = "Auth Info Answer (Kasme, AUTN, RAND, XRES)"] 33 | UE <- MME [label = "NAS Authentication Request"]; 34 | UE -> MME [label = "Authentication Response (RES)", note = "MME compares RES with XRES"]; 35 | } 36 | 37 | If when the MME compares the RES and XRES and these values do not match, that means that the keys used to generate those values are different and authentication fails. 38 | 39 | For authentication, there are four important parameters that must be configured correctly both at the UE and the HSS: the IMSI, the authentication algorithm, the UE key and OP/OPc. 40 | If you misconfigure your IMSI, you will see an `User not found. IMSI ` message in the epc.log. If you misconfigure the other parameters, you will see a "NAS Authentication Failure" message in the epc.pcap, with the failure code "MAC Code Failure." 41 | 42 | Instructions on how to configure these parameters can be found in the :ref:`config_csv` section. 43 | 44 | .. _mismatch_apn: 45 | 46 | Mismatched APN 47 | -------------- 48 | 49 | Within the attach procedure, the UEs sends an APN setting, either in the "PDN connectivity request" message or in the "ESM information transfer" message. 50 | It is necessary that the configuration of the APN in the UE and the EPC match. Important parameters to check are the APN name, the PDN type (must be IPv4), and that no PAP/CHAP authentication is being used. 51 | 52 | In srsUE you can configure these parameters in the NAS section of the ue.conf. 53 | If using a COTS UE, go to your APN settings and make sure that the APN configured in the UE matches the one configured in the EPC. 54 | 55 | I cannot access the Internet 56 | ++++++++++++++++++++++++++++ 57 | 58 | If the UE attached successfully and can ping the SPGW, that means that the attach procedure went well and that the UE was able to obtain the IP. 59 | 60 | That means that not being able to access the Internet is a problem not with srsRAN 4G, but with the network configuration of the system. 61 | The most likely issue is that, by default, Linux will not forward packets from one subnet to another. See the :ref:`connecting_to_net` section on how to enable IP packet forwarding in Linux. 62 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'2CA application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = '2caapplicationnotedoc' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, '2caapplicationnote.tex', u'Two Carrier Aggregation application note Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, '2caapplicationnote', u'Two Carrier Aggregation application note Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, '2caapplicationnote', u'Two Carrier Aggregation application note Documentation', 87 | author, '2caapplicationnote', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsRAN 4G - 5G SA COTS App Note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsRAN4G_5GsaCOTS_appnote' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, 'srsRAN4G_5GsaCOTS_appnote.tex', u'srsRAN 4G - 5G SA COTS App Note Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, 'srsRAN4G_5GsaCOTS_appnote', u'srsRAN 4G - 5G SA COTS App Note Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, 'srsRAN4G_5GsaCOTS_appnote', u'srsRAN 4G - 5G SA COTS App Note Documentation', 87 | author, 'srsRAN4G_5GsaCOTS_appnote', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.config/intra/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | m_ri = 8; // RI period in CQI period 49 | //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | { 56 | rf_port = 0; 57 | cell_id = 0x01; 58 | tac = 0x0007; 59 | pci = 1; 60 | root_seq_idx = 204; 61 | dl_earfcn = 3350; 62 | ho_active = true; 63 | 64 | // Cells available for handover (in other eNB -- S1 handover) 65 | meas_cell_list = 66 | ( 67 | ); 68 | 69 | // Select measurement report configuration (all reports are combined with all measurement objects) 70 | meas_report_desc = 71 | ( 72 | { 73 | eventA = 3 74 | a3_offset = 6; 75 | hysteresis = 0; 76 | time_to_trigger = 480; 77 | trigger_quant = "RSRP"; 78 | max_report_cells = 1; 79 | report_interv = 120; 80 | report_amount = 1; 81 | } 82 | ); 83 | meas_quant_desc = { 84 | // averaging filter coefficient 85 | rsrq_config = 4; 86 | rsrp_config = 4; 87 | }; 88 | }, 89 | { 90 | rf_port = 1; 91 | cell_id = 0x02; 92 | tac = 0x0007; 93 | pci = 6; 94 | root_seq_idx = 268; 95 | dl_earfcn = 3350; 96 | ho_active = true; 97 | 98 | // Cells available for handover (in other eNB -- S1 handover) 99 | meas_cell_list = 100 | ( 101 | ); 102 | 103 | // Select measurement report configuration (all reports are combined with all measurement objects) 104 | meas_report_desc = 105 | ( 106 | { 107 | eventA = 3 108 | a3_offset = 6; 109 | hysteresis = 0; 110 | time_to_trigger = 480; 111 | trigger_quant = "RSRP"; 112 | max_report_cells = 1; 113 | report_interv = 120; 114 | report_amount = 1; 115 | } 116 | ); 117 | meas_quant_desc = { 118 | // averaging filter coefficient 119 | rsrq_config = 4; 120 | rsrp_config = 4; 121 | }; 122 | } 123 | // Add here more cells 124 | ); 125 | 126 | nr_cell_list = 127 | ( 128 | // no NR cells 129 | ); 130 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/handover/source/.config/s1/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | m_ri = 8; // RI period in CQI period 49 | //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | { 56 | rf_port = 0; 57 | cell_id = 0x01; 58 | tac = 0x0007; 59 | pci = 1; 60 | root_seq_idx = 204; 61 | dl_earfcn = 3350; 62 | ho_active = true; 63 | 64 | // Cells available for handover (in other eNB -- S1 handover) 65 | meas_cell_list = 66 | ( 67 | ); 68 | 69 | // Select measurement report configuration (all reports are combined with all measurement objects) 70 | meas_report_desc = 71 | ( 72 | { 73 | eventA = 3 74 | a3_offset = 6; 75 | hysteresis = 0; 76 | time_to_trigger = 480; 77 | trigger_quant = "RSRP"; 78 | max_report_cells = 1; 79 | report_interv = 120; 80 | report_amount = 1; 81 | } 82 | ); 83 | meas_quant_desc = { 84 | // averaging filter coefficient 85 | rsrq_config = 4; 86 | rsrp_config = 4; 87 | }; 88 | }, 89 | { 90 | rf_port = 1; 91 | cell_id = 0x02; 92 | tac = 0x0007; 93 | pci = 6; 94 | root_seq_idx = 268; 95 | dl_earfcn = 3350; 96 | ho_active = true; 97 | 98 | // Cells available for handover (in other eNB -- S1 handover) 99 | meas_cell_list = 100 | ( 101 | ); 102 | 103 | // Select measurement report configuration (all reports are combined with all measurement objects) 104 | meas_report_desc = 105 | ( 106 | { 107 | eventA = 3 108 | a3_offset = 6; 109 | hysteresis = 0; 110 | time_to_trigger = 480; 111 | trigger_quant = "RSRP"; 112 | max_report_cells = 1; 113 | report_interv = 120; 114 | report_amount = 1; 115 | } 116 | ); 117 | meas_quant_desc = { 118 | // averaging filter coefficient 119 | rsrq_config = 4; 120 | rsrp_config = 4; 121 | }; 122 | } 123 | // Add here more cells 124 | ); 125 | 126 | nr_cell_list = 127 | ( 128 | // no NR cells 129 | ); 130 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsRAN 4G - 5G NSA application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsRAN4G_5Gnsa_applicationnotedoc' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, 'srsRAN4G_5Gnsa_applicationnote.tex', u'srsRAN 4G - 5G NSA application note Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, 'srsRAN4G_5Gnsa_applicationnote', u'srsRAN 4G - 5G NSA application note Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, 'srsRAN4G_5Gnsa_applicationnote', u'srsRAN 4G - 5G NSA application note Documentation', 87 | author, 'srsRAN4G_5Gnsa_applicationnote', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_cots/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | import os 16 | import sys 17 | sys.path.insert(0, os.path.abspath('../../../..')) 18 | 19 | from docs.source.conf import * 20 | 21 | 22 | # -- Project information ----------------------------------------------------- 23 | 24 | project = u'srsRAN_4G_NSA_cotsUE application note' 25 | #copyright = u'2019-2021, SRS' 26 | #author = u'SRS' 27 | 28 | # The short X.Y version 29 | #version = u'' 30 | # The full version, including alpha/beta/rc tags 31 | #release = u'' 32 | 33 | 34 | 35 | # -- Options for HTMLHelp output --------------------------------------------- 36 | 37 | # Output file base name for HTML help builder. 38 | htmlhelp_basename = 'srsRAN_4G_NSA_cotsUEapplicationnotedoc' 39 | 40 | 41 | # -- Options for LaTeX output ------------------------------------------------ 42 | 43 | latex_elements = { 44 | # The paper size ('letterpaper' or 'a4paper'). 45 | # 46 | # 'papersize': 'letterpaper', 47 | 48 | # The font size ('10pt', '11pt' or '12pt'). 49 | # 50 | # 'pointsize': '10pt', 51 | 52 | # Additional stuff for the LaTeX preamble. 53 | # 54 | # 'preamble': '', 55 | 56 | # Latex figure (float) alignment 57 | # 58 | # 'figure_align': 'htbp', 59 | } 60 | 61 | # Grouping the document tree into LaTeX files. List of tuples 62 | # (source start file, target name, title, 63 | # author, documentclass [howto, manual, or own class]). 64 | latex_documents = [ 65 | (master_doc, 'srsRAN_4G_NSA_cotsUEapplicationnote.tex', u'srsRAN_4G_NSA_cotsUE application note Documentation', 66 | u'SRS', 'manual'), 67 | ] 68 | 69 | 70 | # -- Options for manual page output ------------------------------------------ 71 | 72 | # One entry per manual page. List of tuples 73 | # (source start file, name, description, authors, manual section). 74 | man_pages = [ 75 | (master_doc, 'srsRAN_4G_NSA_cotsUEapplicationnote', u'srsRAN_4G_NSA_cotsUE application note Documentation', 76 | [author], 1) 77 | ] 78 | 79 | 80 | # -- Options for Texinfo output ---------------------------------------------- 81 | 82 | # Grouping the document tree into Texinfo files. List of tuples 83 | # (source start file, target name, title, author, 84 | # dir menu entry, description, category) 85 | texinfo_documents = [ 86 | (master_doc, 'srsRAN_4G_NSA_cotsUEapplicationnote', u'srsRAN_4G_NSA_cotsUE application note Documentation', 87 | author, 'srsRAN_4G_NSA_cotsUEapplicationnote', 'One line description of project.', 88 | 'Miscellaneous'), 89 | ] 90 | 91 | 92 | # -- Options for Epub output ------------------------------------------------- 93 | 94 | # Bibliographic Dublin Core info. 95 | epub_title = project 96 | 97 | # The unique identifier of the text. This can be a ISBN number 98 | # or the project homepage. 99 | # 100 | # epub_identifier = '' 101 | 102 | # A unique identification for the text. 103 | # 104 | # epub_uid = '' 105 | 106 | # A list of files that should not be packed into the epub file. 107 | epub_exclude_files = ['search.html'] 108 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsepc/source/1_epc_intro.rst: -------------------------------------------------------------------------------- 1 | .. _epc_intro: 2 | 3 | Introduction 4 | ============ 5 | 6 | .. image:: .imgs/srsepc_logo.png 7 | 8 | Overview 9 | ******** 10 | 11 | srsEPC is a lightweight implementation of a complete LTE core network (EPC). The srsEPC application runs as a single binary but provides the key EPC components of Home Subscriber Service (HSS), Mobility Management Entity (MME), Service Gateway (S-GW) and Packet Data Network Gateway (P-GW). 12 | 13 | .. figure:: .imgs/epc_basic.png 14 | :align: center 15 | :alt: alternate text 16 | :figclass: align-center 17 | 18 | EPC overall architecture 19 | 20 | The figure above illustrates the main components of the EPC, along with the main interfaces between them. 21 | 22 | * *HSS*: The Home Subscriber Service (HSS) is the user database. It stores information such as the user's id, key, usage limits, etc. It is responsible for authenticating an authorizing the user's access to the network. 23 | 24 | * *MME*: Mobility Managment Entity (MME) is the main control element in the network. It handles mobility and attach control messages. It is also responsible for paging UEs in idle mode. 25 | 26 | * *S-GW*: The S-GW is the main dataplane gateway for the users, as it provides the mobility anchor for the UEs. It works as an IP router and helps setting up GTP sessions between the eNB and the P-GW. 27 | 28 | * *P-GW*: The Packet Gateway (P-GW) is the point of contact with external networks. It enforces the QoS parameters for subscriber sessions. 29 | 30 | To provide a complete end-to-end LTE network, use srsEPC with srsENB and srsUE. 31 | 32 | This User Guide provides all the information needed to get up and running with the srsEPC application, to become familiar with all of the key features and to achieve optimal performance. For information on extending or modifying the srsEPC source code, please see the srsEPC Developers Guide. 33 | 34 | Features 35 | ******** 36 | 37 | The srsEPC LTE core network includes the implementation of the MME, HSS and SPGW entities. 38 | The features of each of these entities is further described below. 39 | 40 | MME Features 41 | ++++++++++++ 42 | 43 | The srsEPC MME entity provides support for standard compliant NAS and S1AP protocols to provide control plane communication between the EPC and the UEs and eNBs. 44 | 45 | At the NAS level, this includes: 46 | 47 | * Attach procedure, detach procedure, service request procedure 48 | * NAS Security Mode Command, Identity request/response, authentication 49 | * Support for the setup of integrity protection (EIA1 and EIA2) and ciphering (EEA0, EEA1 and EEA2) 50 | 51 | At the S1AP level, this includes: 52 | 53 | * S1-MME Setup/Tear-down 54 | * Transport of NAS messages 55 | * Context setup/release procedures 56 | * Paging procedures 57 | 58 | HSS Features 59 | ++++++++++++ 60 | 61 | The srsEPC HSS entity provides support for configuring UE's authentication parameters and other parameters that can be configured on a per-UE basis. 62 | The HSS entity includes the following features: 63 | 64 | * Simple CSV based database 65 | * XOR and MILENAGE authentication algorithms, specified per UE. 66 | * QCI information 67 | * Dynamic or static IP configuration of UEs 68 | 69 | SPGW Features 70 | +++++++++++++ 71 | 72 | The srsEPC SPGW entity provides support for to user plane communication between the EPC and the and eNBs, using S1-U and SGi interfaces. 73 | 74 | The SPGW supports the following features: 75 | 76 | * SGi interface exposed as a virtual network interface (TUN device) 77 | * SGi < − > S1-U Forwarding using standard compliant GTP-U protocol 78 | * Support of GTP-C procedures to setup/teardown GTP-U tunnels 79 | * Support for Downlink Data Notification procedures 80 | 81 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_zmq/source/.configs/rr_example.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | m_ri = 8; // RI period in CQI period 49 | //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | { 56 | // rf_port = 0; 57 | cell_id = 0x01; 58 | tac = 0x0007; 59 | pci = 1; 60 | // root_seq_idx = 204; 61 | dl_earfcn = 3350; 62 | //ul_earfcn = 21400; 63 | ho_active = false; 64 | //meas_gap_period = 0; // 0 (inactive), 40 or 80 65 | //meas_gap_offset_subframe = [6, 12, 18, 24, 30]; 66 | // target_pusch_sinr = -1; 67 | // target_pucch_sinr = -1; 68 | // enable_phr_handling = false; 69 | // min_phr_thres = 0; 70 | // allowed_meas_bw = 6; 71 | // t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000 72 | 73 | // CA cells 74 | scell_list = ( 75 | // {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 76 | ) 77 | 78 | // Cells available for handover 79 | meas_cell_list = 80 | ( 81 | { 82 | eci = 0x19C02; 83 | dl_earfcn = 2850; 84 | pci = 2; 85 | //direct_forward_path_available = false; 86 | //allowed_meas_bw = 6; 87 | } 88 | ); 89 | 90 | // Select measurement report configuration (all reports are combined with all measurement objects) 91 | meas_report_desc = 92 | ( 93 | { 94 | eventA = 3 95 | a3_offset = 6; 96 | hysteresis = 0; 97 | time_to_trigger = 480; 98 | trigger_quant = "RSRP"; 99 | max_report_cells = 1; 100 | report_interv = 120; 101 | report_amount = 1; 102 | } 103 | ); 104 | meas_quant_desc = { 105 | // averaging filter coefficient 106 | rsrq_config = 4; 107 | rsrp_config = 4; 108 | }; 109 | } 110 | // Add here more cells 111 | ); 112 | 113 | nr_cell_list = 114 | ( 115 | { 116 | rf_port = 1; 117 | cell_id = 0x02; 118 | tac = 0x0007; 119 | pci = 500; 120 | root_seq_idx = 204; 121 | // TDD: 122 | //dl_arfcn = 634240; 123 | //band = 78; 124 | // FDD: 125 | dl_arfcn = 368500; 126 | band = 3; 127 | } 128 | ); -------------------------------------------------------------------------------- /docs/source/feature_list.rst: -------------------------------------------------------------------------------- 1 | .. _feature_list: 2 | 3 | srsRAN 4G Features 4 | ------------------ 5 | 6 | srsUE 7 | ***** 8 | 9 | srsUE is a 4G LTE UE modem with prototype 5G NR features implemented entirely in software. Running as 10 | an application on a standard Linux-based operating system, srsUE connects to any LTE 11 | network and provides a standard network interface with high-speed mobile connectivity. 12 | 13 | The SRS UE includes the following features: 14 | 15 | - LTE Release 10 aligned with features up to release 15 16 | - Prototype 5G NSA and SA support 17 | - TDD and FDD configurations 18 | - Tested LTE bandwidths: 1.4, 3, 5, 10, 15 and 20 MHz 19 | - Tested 5G SA bandwidths: 5, 10, 15 and 20 MHz 20 | - Transmission modes 1 (single antenna), 2 (transmit diversity), 3 (CCD) and 4 (closed-loop spatial multiplexing) 21 | - Manually configurable DL/UL carrier frequencies 22 | - Soft USIM supporting XOR/Milenage authentication 23 | - Hard USIM support via PC/SC 24 | - Snow3G and AES integrity/ciphering support 25 | - TUN virtual network kernel interface integration for Linux OS 26 | - Detailed log system with per-layer log levels and hex dumps 27 | - MAC and NAS layer wireshark packet captures 28 | - Command-line trace metrics 29 | - Detailed input configuration files 30 | - Evolved multimedia broadcast and multicast service (eMBMS) 31 | - Frequency-based ZF and MMSE equalizers 32 | - Highly optimized Turbo Decoder available in Intel SSE4.1/AVX2 (+150 Mbps) 33 | - Channel simulator for EPA, EVA, and ETU 3GPP channels 34 | - QoS support 35 | - 150 Mbps DL in 20 MHz MIMO TM3/TM4 or 2xCA configuration (195 Mbps with QAM256) 36 | - 75 Mbps DL in 20 MHz SISO configuration (98 Mbps with QAM256) 37 | - 36 Mbps DL in 10 MHz SISO configuration 38 | - Supports Ettus USRP B2x0/X3x0 families, BladeRF, LimeSDR 39 | 40 | Read the :ref:`UE User Manual `. for further info on the UE. 41 | 42 | srsENB 43 | ****** 44 | 45 | The srsENB LTE eNodeB includes the following features: 46 | 47 | - LTE Release 10 aligned with features up to release 15 48 | - Prototype 5G NR support for both 5G NSA and SA 49 | - FDD configuration 50 | - Tested bandwidths: 1.4, 3, 5, 10, 15 and 20 MHz 51 | - Transmission mode 1 (single antenna), 2 (transmit diversity), 3 (CCD) and 4 (closed-loop spatial multiplexing) 52 | - Frequency-based ZF and MMSE equalizer 53 | - Evolved multimedia broadcast and multicast service (eMBMS) 54 | - Highly optimized Turbo Decoder available in Intel SSE4.1/AVX2 (+150 Mbps) 55 | - Detailed log system with per-layer log levels and hex dumps 56 | - MAC layer wireshark packet capture 57 | - Command-line trace metrics 58 | - Detailed input configuration files 59 | - Channel simulator for EPA, EVA, and ETU 3GPP channels 60 | - ZeroMQ-based fake RF driver for I/Q over IPC/network 61 | - Intra-ENB and Inter-ENB (S1) mobility support 62 | - Proportional-fair and round-robin MAC scheduler with FAPI-like C++ API 63 | - SR support 64 | - Periodic and Aperiodic CQI feedback support 65 | - Standard S1AP and GTP-U interfaces to the Core Network 66 | - 150 Mbps DL in 20 MHz MIMO TM3/TM4 with commercial UEs (195 Mbps with QAM256) 67 | - 75 Mbps DL in SISO configuration with commercial UEs 68 | - 50 Mbps UL in 20 MHz with commercial UEs 69 | - User-plane encryption 70 | 71 | Read the :ref:`ENB User Manual `. for further info on the eNB. 72 | 73 | srsEPC 74 | ****** 75 | 76 | srsEPC is a lightweight implementation of a complete LTE core network (EPC). The 77 | srsEPC application runs as a single binary but provides the key EPC components 78 | of Home Subscriber Service (HSS), Mobility Management Entity (MME), Service Gateway 79 | (S-GW) and Packet Data Network Gateway (P-GW). The srsEPC application is not intended 80 | for deployment but can be used for testing. 81 | 82 | Read the :ref:`EPC User Manual `. for further info on the EPC. 83 | 84 | 85 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_COTS/source/.configs/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | m_ri = 8; // RI period in CQI period 49 | //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | //--- COMMMENT OUT LTE CELLS ---// 56 | /* 57 | { 58 | // rf_port = 0; 59 | cell_id = 0x01; 60 | tac = 0x0007; 61 | pci = 1; 62 | // root_seq_idx = 204; 63 | dl_earfcn = 3350; 64 | //ul_earfcn = 21400; 65 | ho_active = false; 66 | //meas_gap_period = 0; // 0 (inactive), 40 or 80 67 | //meas_gap_offset_subframe = [6, 12, 18, 24, 30]; 68 | // target_pusch_sinr = -1; 69 | // target_pucch_sinr = -1; 70 | // enable_phr_handling = false; 71 | // min_phr_thres = 0; 72 | // allowed_meas_bw = 6; 73 | // t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000 74 | 75 | // CA cells 76 | scell_list = ( 77 | // {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 78 | ) 79 | 80 | // Cells available for handover 81 | meas_cell_list = 82 | ( 83 | { 84 | eci = 0x19C02; 85 | dl_earfcn = 2850; 86 | pci = 2; 87 | //direct_forward_path_available = false; 88 | //allowed_meas_bw = 6; 89 | //cell_individual_offset = 0; 90 | } 91 | ); 92 | 93 | // Select measurement report configuration (all reports are combined with all measurement objects) 94 | meas_report_desc = 95 | ( 96 | { 97 | eventA = 3 98 | a3_offset = 6; 99 | hysteresis = 0; 100 | time_to_trigger = 480; 101 | trigger_quant = "RSRP"; 102 | max_report_cells = 1; 103 | report_interv = 120; 104 | report_amount = 1; 105 | } 106 | ); 107 | meas_quant_desc = { 108 | // averaging filter coefficient 109 | rsrq_config = 4; 110 | rsrp_config = 4; 111 | }; 112 | } 113 | */ 114 | // Add here more cells 115 | ); 116 | 117 | nr_cell_list = 118 | ( 119 | { 120 | rf_port = 0; 121 | cell_id = 1; 122 | root_seq_idx = 1; 123 | tac = 7; 124 | pci = 500; 125 | dl_arfcn = 368500; 126 | coreset0_idx = 6; 127 | band = 3; 128 | } 129 | ); -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_sa_E2E/source/.configs/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | m_ri = 8; // RI period in CQI period 49 | //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | //--- COMMMENT OUT LTE CELLS WHEN USING 5G SA ---// 56 | /* 57 | { 58 | // rf_port = 0; 59 | cell_id = 0x01; 60 | tac = 0x0007; 61 | pci = 1; 62 | // root_seq_idx = 204; 63 | dl_earfcn = 3350; 64 | //ul_earfcn = 21400; 65 | ho_active = false; 66 | //meas_gap_period = 0; // 0 (inactive), 40 or 80 67 | //meas_gap_offset_subframe = [6, 12, 18, 24, 30]; 68 | // target_pusch_sinr = -1; 69 | // target_pucch_sinr = -1; 70 | // enable_phr_handling = false; 71 | // min_phr_thres = 0; 72 | // allowed_meas_bw = 6; 73 | // t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000 74 | 75 | // CA cells 76 | scell_list = ( 77 | // {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 78 | ) 79 | 80 | // Cells available for handover 81 | meas_cell_list = 82 | ( 83 | { 84 | eci = 0x19C02; 85 | dl_earfcn = 2850; 86 | pci = 2; 87 | //direct_forward_path_available = false; 88 | //allowed_meas_bw = 6; 89 | //cell_individual_offset = 0; 90 | } 91 | ); 92 | 93 | // Select measurement report configuration (all reports are combined with all measurement objects) 94 | meas_report_desc = 95 | ( 96 | { 97 | eventA = 3 98 | a3_offset = 6; 99 | hysteresis = 0; 100 | time_to_trigger = 480; 101 | trigger_quant = "RSRP"; 102 | max_report_cells = 1; 103 | report_interv = 120; 104 | report_amount = 1; 105 | } 106 | ); 107 | meas_quant_desc = { 108 | // averaging filter coefficient 109 | rsrq_config = 4; 110 | rsrp_config = 4; 111 | }; 112 | } 113 | */ 114 | 115 | // Add here more cells 116 | ); 117 | 118 | nr_cell_list = 119 | ( 120 | { 121 | rf_port = 0; 122 | cell_id = 1; 123 | root_seq_idx = 1; 124 | tac = 7; 125 | pci = 500; 126 | dl_arfcn = 368500; 127 | coreset0_idx = 6; 128 | band = 3; 129 | } 130 | ); -------------------------------------------------------------------------------- /docs/source/app_notes/source/5g_nsa_amari/source/sib23.asn: -------------------------------------------------------------------------------- 1 | { 2 | message c1: systemInformation: { 3 | criticalExtensions systemInformation-r8: { 4 | sib-TypeAndInfo { 5 | sib2: { 6 | radioResourceConfigCommon { 7 | rach-ConfigCommon { 8 | preambleInfo { 9 | numberOfRA-Preambles n52 10 | }, 11 | powerRampingParameters { 12 | powerRampingStep dB2, 13 | preambleInitialReceivedTargetPower dBm-104 14 | }, 15 | ra-SupervisionInfo { 16 | preambleTransMax n10, 17 | ra-ResponseWindowSize sf10, 18 | mac-ContentionResolutionTimer sf40 19 | }, 20 | maxHARQ-Msg3Tx 5 21 | }, 22 | bcch-Config { 23 | modificationPeriodCoeff n4 24 | }, 25 | pcch-Config { 26 | defaultPagingCycle rf128, 27 | nB oneT 28 | }, 29 | prach-Config { 30 | rootSequenceIndex 0, /* patched by eNB */ 31 | prach-ConfigInfo { 32 | prach-ConfigIndex 4, /* patched by eNB */ 33 | highSpeedFlag FALSE, 34 | zeroCorrelationZoneConfig 11, 35 | prach-FreqOffset 4 /* patched by eNB */ 36 | } 37 | }, 38 | pdsch-ConfigCommon { 39 | referenceSignalPower -8, /* patched by eNB */ 40 | p-b 1 /* patched by eNB */ 41 | }, 42 | pusch-ConfigCommon { 43 | pusch-ConfigBasic { 44 | n-SB 1, 45 | hoppingMode interSubFrame, 46 | pusch-HoppingOffset 8, /* patched by eNB */ 47 | enable64QAM FALSE /* patched by eNB */ 48 | }, 49 | ul-ReferenceSignalsPUSCH { 50 | groupHoppingEnabled FALSE, 51 | groupAssignmentPUSCH 0, 52 | sequenceHoppingEnabled FALSE, 53 | cyclicShift 0 54 | } 55 | }, 56 | pucch-ConfigCommon { 57 | deltaPUCCH-Shift ds2, 58 | nRB-CQI 4, /* patched by eNB */ 59 | nCS-AN 0, 60 | n1PUCCH-AN 12 /* patched by eNB */ 61 | }, 62 | soundingRS-UL-ConfigCommon setup: { 63 | srs-BandwidthConfig bw2, /* patched by eNB */ 64 | srs-SubframeConfig sc3, /* patched by eNB */ 65 | ackNackSRS-SimultaneousTransmission TRUE 66 | }, 67 | uplinkPowerControlCommon { 68 | p0-NominalPUSCH -85, 69 | alpha al1, 70 | p0-NominalPUCCH -117, 71 | deltaFList-PUCCH { 72 | deltaF-PUCCH-Format1 deltaF0, 73 | deltaF-PUCCH-Format1b deltaF3, 74 | deltaF-PUCCH-Format2 deltaF1, 75 | deltaF-PUCCH-Format2a deltaF2, 76 | deltaF-PUCCH-Format2b deltaF2 77 | }, 78 | deltaPreambleMsg3 4 79 | }, 80 | ul-CyclicPrefixLength len1 81 | }, 82 | ue-TimersAndConstants { 83 | t300 ms200, 84 | t301 ms200, 85 | t310 ms200, 86 | n310 n6, 87 | t311 ms10000, 88 | n311 n5 89 | }, 90 | freqInfo { 91 | additionalSpectrumEmission 1 92 | }, 93 | timeAlignmentTimerCommon infinity 94 | }, 95 | sib3: { 96 | cellReselectionInfoCommon { 97 | q-Hyst dB2 98 | }, 99 | cellReselectionServingFreqInfo { 100 | s-NonIntraSearch 3, 101 | threshServingLow 2, 102 | cellReselectionPriority 6 103 | }, 104 | intraFreqCellReselectionInfo { 105 | q-RxLevMin -61, 106 | p-Max 23, 107 | s-IntraSearch 5, 108 | presenceAntennaPort1 TRUE, 109 | neighCellConfig '01'B, 110 | t-ReselectionEUTRA 1 111 | } 112 | } 113 | } 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/1_setup.rst: -------------------------------------------------------------------------------- 1 | .. _gen_4g: 2 | 3 | LTE Setup Guide 4 | =============== 5 | 6 | Baseline Hardware Requirements 7 | ********************************* 8 | 9 | .. figure:: .imgs/basic_arch.png 10 | :width: 800px 11 | :align: center 12 | :alt: Architecture block diagram 13 | :figclass: align-center 14 | 15 | Basic srsRAN 4G LTE set-up with USRPs 16 | 17 | The overall system requires 2 x RF-frontends and 2 x PCs with a Linux based OS. 18 | This can be broken down as follows: 19 | 20 | .. list-table:: System Hardware Requirements 21 | :widths: 25 20 25 22 | :header-rows: 1 23 | 24 | * - Network Element 25 | - RF-Frontend 26 | - Linux based PC 27 | * - srsUE 28 | - X 29 | - X 30 | * - srsENB 31 | - X 32 | - X 33 | * - srsEPC 34 | - 35 | - X 36 | 37 | The UE will be instantiated on machine 1 with an RF-frontend attached. The eNB will run on machine 2 with an RF-frontend attached 38 | to communicate over the air with the UE. The EPC will be instantiated on the same machine as the eNB. See the following figure which outlines 39 | the overall system architecture. 40 | 41 | A list of supported RF front-end drivers is outlined :ref:`here`. We also have some suggested hardware packages, which can be found :ref:`here`. 42 | 43 | Running a 4G End-to-end System 44 | ***************************************************** 45 | 46 | The following execution instructions are for users that have the appropriate RF-hardware 47 | to simulate a network. If you would like to test the use of srsRAN 4G without RF-hardware please 48 | see the :ref:`ZeroMQ application note `. 49 | 50 | The srsUE, srsENB and srsEPC applications include example configuration files 51 | that should be copied (manually or by using the convenience script) and modified, 52 | if needed, to meet the system configuration. 53 | On many systems they should work out of the box. 54 | 55 | By default, all applications will search for config files in the user's home 56 | directory (~/.srs) upon startup. 57 | 58 | Note that you have to execute the applications with root privileges to enable 59 | real-time thread priorities and to permit creation of virtual network interfaces. 60 | 61 | srsENB and srsEPC can run on the same machine as a network-in-the-box configuration. 62 | srsUE needs to run on a separate machine. 63 | 64 | If you have installed the software suite using ```sudo make install``` and 65 | have installed the example config files using ```sudo srsRAN_4G_install_configs.sh```, 66 | you may just start all applications with their default parameters. 67 | 68 | srsEPC 69 | ------ 70 | 71 | On machine 1, run srsEPC as follows:: 72 | 73 | sudo srsepc 74 | 75 | Using the default configuration, this creates a virtual network interface 76 | named "srs_spgw_sgi" on machine 1 with IP 172.16.0.1. All connected UEs 77 | will be assigned an IP in this network. 78 | 79 | srsENB 80 | ------ 81 | 82 | Also on machine 1, but in another console, run srsENB as follows:: 83 | 84 | sudo srsenb 85 | 86 | 87 | srsUE 88 | ----- 89 | 90 | On machine 2, run srsUE as follows:: 91 | 92 | sudo srsue 93 | 94 | Using the default configuration, this creates a virtual network interface 95 | named "tun_srsue" on machine 2 with an IP in the network 172.16.0.x. 96 | Assuming the UE has been assigned IP 172.16.0.2, you may now exchange 97 | IP traffic with machine 1 over the LTE link. For example, run a ping to 98 | the default SGi IP address:: 99 | 100 | ping 172.16.0.1 101 | 102 | 103 | Examples 104 | ********************** 105 | If srsRAN 4G is built from source, then pre-configured example use-cases can be found in the following folder: ```./srsRAN_4G/build/lib/examples``` 106 | 107 | The following list outlines some of the use-cases covered: 108 | 109 | * Cell Search 110 | * NB-IoT Cell Search 111 | * A UE capable of decoding PDSCH packets 112 | * An eNB capable of creating and transmitting PDSCH packets 113 | 114 | Note, the above examples require RF-hardware to run. These examples also support the use 115 | of `srsGUI `_ for real time plotting of data. 116 | -------------------------------------------------------------------------------- /docs/source/usermanuals/source/srsenb/source/4_enb_advanced.rst: -------------------------------------------------------------------------------- 1 | .. _enb_advanced: 2 | 3 | Advanced Usage 4 | ############## 5 | 6 | MIMO 7 | **** 8 | 9 | The srsENB supports MIMO transmission modes 2, 3, and 4. You only need to set up the transmission mode and the number of eNb ports in the ``enb.conf`` file: 10 | 11 | .. code:: 12 | 13 | ... 14 | [enb] 15 | ... 16 | tm = 3 17 | nof_ports = 2 18 | ... 19 | 20 | The eNb configures the UE for reporting the Rank Indicator for transmission modes 3 and 4. You can set the rank indicator periodic report in the file ``rr.conf`` field ``m_ri``. This value is multiples of CQI report period. For example, if the CQI period is 40ms and ``m_ri`` is 8, the rank indicator will be reported every 320ms. 21 | 22 | .. 23 | 5G NR 24 | ****** 25 | 26 | The srsENB supports prototype 5G features for both NSA and SA modes of operation however, these features are no longer under active development. Instead we recommend the `srsRAN Project `_, our ORAN-native 5G CU/DU solution. 27 | 28 | .. _5G_NSA: 29 | 30 | 5G NSA 31 | ====== 32 | 33 | 5G Non-Standalone (NSA) mode adds 5G support on top of existing 4G infrastructure. This is the approach used for many commercial 5G network deployments to date, supporting higher data rates on a secondary 5G carrier while continuing to carry control traffic on the legacy 4G carrier. New 5G NSA-capable UEs can take advantage of 5G NSA services, but existing 4G devices on the network are not disrupted. 34 | 35 | What is 5G NSA Mode? 36 | -------------------- 37 | 38 | .. figure:: .imgs/5G_NSA_mode3.png 39 | :align: center 40 | 41 | 5G NSA Mode 3 42 | 43 | To activate the secondary 5G NSA carrier, the UE first connects to the 4G network. If both the UE and eNB support NSA, and a 5G secondary cell is present then a secondary bearer will be activated on that 5G cell. The NR node is deployed as a Secondary Node (SN) to the LTE Master Node (MN). The 4G anchor carrier is used for control plane signaling while the secondary 5G carrier is used for high-speed data plane traffic. This can result in improved data rates compared to a standard LTE connection. 44 | 45 | The following signaling procedure is used when initiating a 5G NSA link: 46 | 47 | .. figure:: .imgs/NSA_Signaling.png 48 | :align: center 49 | 50 | 5G NSA Signaling Procedure. Modified from `here `_. 51 | 52 | The above signaling procedure for secondary bearer activation occurs after the initial LTE connection between the UE and eNB is made. The NR connection is then made via the RRC Connection Reconfiguration process. 53 | 54 | 55 | Implementing 5G NSA with srsENB 56 | ------------------------------- 57 | 58 | To enable a 5G NSA connection with srsENB you will need to modify the configuration files for srsENB. Namely, the *rr.conf* file, by enabling an NR secondary carrier for the existing eNB. This is covered in more detail in the relevant :ref:`app note<5g_nsa_zmq_appnote>` detailing how to use ZMQ to create an E2E 5G NSA network using 4G. 59 | 60 | .. _5G_SA: 61 | 62 | 5G SA 63 | ====== 64 | 65 | 5G SA, or 5G Standalone, is a 5G NR transmission mode that uses 5G cells for both control and data traffic. It also uses a full 5G Packet Core in place of a 4G EPC. This is considered to be end-to-end 5G, and removes the need for 66 | 4G LTE hardware to manage control traffic as seen in 5G NSA. 67 | 68 | What is 5G SA Mode? 69 | -------------------- 70 | 71 | .. figure:: .imgs/5G_SA.png 72 | :align: center 73 | 74 | As shown in the above figure, 5G SA allows a 5G SA UE to connect to a 5G SA gNB, which is inturn connected to the 5G Core (namely the AMF and UPF) by the N2 and N3 interfaces. This UE has access to the full 5G SA network, and 75 | full 5G data-plane and control-plane rates. Unlike 5G NSA which only allows the UE to use a 5G connection for its data-plane traffic. 76 | 77 | Implementing 5G SA with srsENB 78 | ------------------------------- 79 | 80 | 81 | To enable a 5G SA connection with srsENB you will need to modify the configuration files for srsENB. Much like for 5G NSA, a NR cell must be added to the *rr.conf* file. The difference for 5G SA is that all 82 | 4G LTE cells must be removed. 83 | 84 | This is covered in more detail in the relevant :ref:`app note<5g_sa_e2e_appnote>` detailing how to use ZMQ to create an E2E 5G SA network using srsRAN 4G and Open5GS. 85 | -------------------------------------------------------------------------------- /docs/source/general/source/1_installation.rst: -------------------------------------------------------------------------------- 1 | .. _gen_installation: 2 | 3 | Installation Guide 4 | ================== 5 | 6 | Which Installation Should I Use? 7 | ************************************** 8 | 9 | srsRAN 4G can be installed from packages or from source. The following decision tree should help users decide which is best for them: 10 | 11 | .. figure:: .imgs/download_decision.png 12 | :align: center 13 | 14 | In short, users looking for a simple installation who only expect to run basic srsRAN 4G applications with USRP front-ends should use the package installation. 15 | Users who wish to modify srsRAN 4G and/or use alternative RF front-ends such as limeSDR and BladeRF should install from source. 16 | 17 | Package Installation 18 | ********************* 19 | 20 | The srsRAN 4G software suite can be installed using packages on Ubuntu:: 21 | 22 | sudo add-apt-repository ppa:softwareradiosystems/srsran 23 | sudo apt-get update 24 | sudo apt-get install srsran -y 25 | 26 | Package installs are also available for other distributions. 27 | 28 | - `openSUSE `_ 29 | - `Arch Linux `_ 30 | - `Debian (Pop OS, Mint, etc) `_ 31 | 32 | Note, only the Launchpad packages for Ubuntu are maintained by SRS. Different distributions will maintain their own packages for srsRAN 4G, which may or may not be up to date. Check the available version before installing 33 | to ensure you are using the desired version of srsRAN 4G. 34 | 35 | Fedora does not yet have support for a package installation of srsRAN 4G. 36 | 37 | Installation from Source 38 | ************************ 39 | 40 | * Mandatory requirements: 41 | 42 | * Common: 43 | 44 | * `cmake `_ 45 | * `libfftw `_ 46 | * `mbedTLS `_ 47 | 48 | * srsUE: 49 | 50 | * `Boost `_ 51 | 52 | * srsENB: 53 | 54 | * `Boost `_ 55 | * `lksctp `_ 56 | * `config `_ 57 | 58 | * srsEPC: 59 | 60 | * `Boost `_ 61 | * `lksctp `_ 62 | * `config `_ 63 | 64 | For example, on Ubuntu, one can install the required libraries with:: 65 | 66 | sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev 67 | 68 | or on Fedora:: 69 | 70 | dnf install cmake fftw3-devel mbedtls-devel lksctp-tools-devel libconfig-devel boost-devel 71 | 72 | For CentOS, use the Fedora packages but replace `libconfig-devel` with just `libconfig`. 73 | 74 | Note that depending on your flavor and version of Linux, the actual package names may be different. 75 | 76 | * Optional requirements: 77 | 78 | * `srsGUI `_ - for real-time plotting. 79 | * `libpcsclite-dev `_ - for accessing smart card readers 80 | * libdw-dev libdw - for truly informative backtraces using backward-cpp 81 | 82 | .. _Drivers: 83 | 84 | * RF front-end driver: 85 | 86 | * `UHD `_ 87 | * `SoapySDR `_ 88 | * `BladeRF `_ 89 | * `ZeroMQ `_ 90 | 91 | .. note:: 92 | If using UHD we recommended the LTS version of UHD, i.e. either 3.9.7 or 3.15. 93 | 94 | .. warning:: 95 | All mandatory requirements, optional requirements, and RF front-end drivers must be installed **prior** to building srsRAN 4G. Failing to do this will result in 96 | errors at run-time or prevent srsRAN 4G from building correctly. 97 | 98 | Download and build srsRAN 4G:: 99 | 100 | git clone https://github.com/srsRAN/srsRAN_4G.git 101 | cd srsRAN_4G 102 | mkdir build 103 | cd build 104 | cmake ../ 105 | make 106 | make test 107 | 108 | Install srsRAN 4G:: 109 | 110 | sudo make install 111 | srsran_install_configs.sh user 112 | 113 | This installs srsRAN 4G and also copies the default srsRAN 4G config files to *~/.config/srsran*. 114 | 115 | Getting Support 116 | *************** 117 | 118 | Join the community on the `srsRAN 4G users `_ mailing list. 119 | The mailing list is a great place to ask questions, get support from the community and learn more about the various projects 120 | users are working on. 121 | 122 | -------------------------------------------------------------------------------- /docs/source/app_notes/source/2ca/source/index.rst: -------------------------------------------------------------------------------- 1 | .. srsRAN 4G Carrier Aggregation Application Note 2 | 3 | .. _2ca_appnote: 4 | 5 | Carrier Aggregation 6 | =================== 7 | 8 | 9 | Introduction 10 | ************ 11 | 12 | Before getting hands-on we recommend reading about `Carrier Aggregation `_. 13 | 14 | The srsRAN 4G software suite supports 2-carrier aggregation in both srsENB and srsUE. To experiment with carrier aggregation using srsRAN 4G over-the-air, you will need an RF device that can tune different frequencies in different channels, for example the USRP X300 series from Ettus Research (NI). We've tested with UHD 3.15 LTS and UHD 4.0. 15 | 16 | Alternatively, experiment with carrier aggregation without SDR hardware using our ZeroMQ-based RF layer emulation. See our :ref:`ZeroMQ Application Note ` for more information about RF layer emulation. 17 | 18 | Carrier Aggregation using SDR Hardware 19 | ************************************** 20 | 21 | eNodeB Configuration 22 | -------------------- 23 | 24 | To configure the eNodeB for carrier aggregation, we must first configure the RF front-end. We must then configure srsENB for multiple cells and define the primary/secondary relationships between them. 25 | 26 | If you're using a real RF device such as the USRP X300 it's advisable to use an external clock reference, either using the 10 MHz/1 PPS input (``clock=external``) or the GPSDO (``clock=gpsdo``). 27 | For the X300, especially for newer UHD versions, it's also required to specific the sample rate upon radio initialization. For example, if you're planning to use 10 MHz cells (50 PRB) 28 | the sample rate of the radio will be 11.52 Msamples/s, hence a ``sampling_rate=11.52e6`` shall be used. For 20 MHz cells (100 PRB) the sample rate will be 23.04 Msamples/s, hence ``sampling_rate=23.04e6`` shall be used. 29 | 30 | .. code:: 31 | 32 | [rf] 33 | device_name = uhd 34 | device_args = type=x300,clock=external,sampling_rate=23.04e6 35 | 36 | 37 | The second step is to configure srsENB with two cells. For this, one needs to modify ``rr.conf``: 38 | 39 | .. code:: 40 | 41 | 42 | cell_list = 43 | ( 44 | { 45 | rf_port = 0; 46 | cell_id = 0x01; 47 | tac = 0x0007; 48 | pci = 1; 49 | root_seq_idx = 204; 50 | dl_earfcn = 2850; 51 | 52 | // CA cells 53 | scell_list = ( 54 | {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x01; ul_allowed = true} 55 | ) 56 | }, 57 | { 58 | rf_port = 1; 59 | cell_id = 0x02; 60 | tac = 0x0007; 61 | pci = 4; 62 | root_seq_idx = 268; 63 | dl_earfcn = 3050; 64 | 65 | // CA cells 66 | scell_list = ( 67 | {cell_id = 0x01; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 68 | ) 69 | } 70 | ) 71 | 72 | With these changes, simply run srsENB as usual. 73 | 74 | 75 | UE Configuration 76 | ---------------- 77 | 78 | In the UE, we must again set the RF configuration and configure the UE capabilities. 79 | 80 | For the RF configuration, we need to set the list 81 | of EARFCNs according to the cells configured in the eNodeB and set the 82 | number of carriers to 2: 83 | 84 | .. code:: 85 | 86 | [rf] 87 | dl_earfcn = 2850,3050 88 | nof_carriers = 2 89 | 90 | Adding more EARFCNs in the list makes the UE scan these frequencies 91 | and the number of carriers makes the UE use more RF channels. 92 | 93 | 94 | For the UE capabilities, we need to report at least release 95 | 10 and category 7: 96 | 97 | .. code:: 98 | 99 | [rrc] 100 | ue_category = 7 101 | ue_category_dl = 10 102 | release = 10 103 | 104 | With these changes, simply run srsUE as usual. 105 | 106 | 107 | Carrier Aggregation using ZeroMQ RF emulation 108 | ********************************************* 109 | 110 | To experiment with carrier aggregation using the ZeroMQ RF emulation instead of SDR hardware, 111 | we simply need to configure srsENB and srsUE to use the ``zmq`` RF device. 112 | 113 | eNodeB Configuration 114 | -------------------- 115 | 116 | For srsENB, configure the ``zmq`` RF device as follows: 117 | 118 | .. code:: 119 | 120 | [rf] 121 | device_name = zmq 122 | device_args = fail_on_disconnect=true,id=enb,tx_port0=tcp://*:2000,tx_port1=tcp://*:2002,rx_port0=tcp://localhost:2001,rx_port1=tcp://localhost:2003 123 | 124 | 125 | UE Configuration 126 | ---------------- 127 | 128 | For srsUE, configure the ``zmq`` RF device as follows: 129 | 130 | .. code:: 131 | 132 | [rf] 133 | device_name = zmq 134 | device_args = tx_port0=tcp://*:2001,tx_port1=tcp://*:2003,rx_port0=tcp://localhost:2000,rx_port1=tcp://localhost:2002,id=ue,tx_freq0=2510e6,tx_freq1=2530e6,rx_freq0=2630e6,rx_freq1=2650e6 135 | 136 | 137 | Since the ZMQ module is frequency agnostic, it is important that Tx and 138 | Rx frequencies are set in ZMQ config. This makes internal carrier 139 | switching possible. 140 | 141 | Known issues 142 | ************ 143 | 144 | * The eNodeB ignores UE's band capabilities 145 | * CPU hungry and real time errors for more than 10 MHz 146 | --------------------------------------------------------------------------------