From 661def8dd25fdebb5dfc2ba6f549757078da354e Mon Sep 17 00:00:00 2001 From: herlesupreeth Date: Fri, 17 Jan 2025 18:14:21 +0100 Subject: [PATCH] Refactor to facilitate deployment of multiple instances of a service --- 4g-external-ims-deploy.yaml | 18 +- 4g-volte-deploy.yaml | 26 +- base/open5gs_init.sh | 90 ++-- custom_deployments/with_eupf/nr-gnb.yaml | 2 +- custom_deployments/with_eupf/nr-ue.yaml | 2 +- custom_deployments/with_eupf/sa-deploy.yaml | 22 +- .../with_eupf/sa-vonr-deploy.yaml | 30 +- deploy-all.yaml | 44 +- ims_base/kamailio_init.sh | 16 +- nr-gnb.yaml | 2 +- nr-ue.yaml | 2 +- sa-deploy.yaml | 22 +- sa-vonr-deploy.yaml | 30 +- srslte/gnb.conf | 435 ++++++++++++++++++ srslte/{rb.conf => rb_enb.conf} | 0 srslte/rb_enb_zmq.conf | 310 +++++++++++++ srslte/rb_gnb.conf | 310 +++++++++++++ srslte/rb_gnb_zmq.conf | 310 +++++++++++++ srslte/rr_enb.conf | 118 +++++ srslte/{rr.conf => rr_enb_zmq.conf} | 0 srslte/{sib.conf => sib_enb.conf} | 0 srslte/sib_enb_zmq.conf | 294 ++++++++++++ srslte/sib_gnb.conf | 294 ++++++++++++ srslte/sib_gnb_zmq.conf | 294 ++++++++++++ srslte/srslte_init.sh | 40 +- srsran/srsran_init.sh | 8 +- .../{open5gs-gnb.yaml => ueransim-gnb.yaml} | 0 ...en5gs_gnb_init.sh => ueransim-gnb_init.sh} | 10 +- .../{open5gs-ue.yaml => ueransim-ue.yaml} | 0 ...open5gs_ue_init.sh => ueransim-ue_init.sh} | 20 +- ueransim/ueransim_image_init.sh | 12 +- 31 files changed, 2563 insertions(+), 198 deletions(-) create mode 100644 srslte/gnb.conf rename srslte/{rb.conf => rb_enb.conf} (100%) create mode 100644 srslte/rb_enb_zmq.conf create mode 100644 srslte/rb_gnb.conf create mode 100644 srslte/rb_gnb_zmq.conf create mode 100644 srslte/rr_enb.conf rename srslte/{rr.conf => rr_enb_zmq.conf} (100%) rename srslte/{sib.conf => sib_enb.conf} (100%) create mode 100644 srslte/sib_enb_zmq.conf create mode 100644 srslte/sib_gnb.conf create mode 100644 srslte/sib_gnb_zmq.conf rename ueransim/{open5gs-gnb.yaml => ueransim-gnb.yaml} (100%) rename ueransim/{open5gs_gnb_init.sh => ueransim-gnb_init.sh} (81%) rename ueransim/{open5gs-ue.yaml => ueransim-ue.yaml} (100%) rename ueransim/{open5gs_ue_init.sh => ueransim-ue_init.sh} (67%) diff --git a/4g-external-ims-deploy.yaml b/4g-external-ims-deploy.yaml index 0ce2615..75ac9a3 100644 --- a/4g-external-ims-deploy.yaml +++ b/4g-external-ims-deploy.yaml @@ -42,7 +42,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=hss-1 + - COMPONENT_NAME=hss volumes: - ./hss:/mnt/hss - ./log:/open5gs/install/var/log/open5gs @@ -67,7 +67,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=sgwc-1 + - COMPONENT_NAME=sgwc volumes: - ./sgwc:/mnt/sgwc - ./log:/open5gs/install/var/log/open5gs @@ -88,7 +88,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=sgwu-1 + - COMPONENT_NAME=sgwu volumes: - ./sgwu:/mnt/sgwu - ./log:/open5gs/install/var/log/open5gs @@ -108,7 +108,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=4G volumes: - ./smf:/mnt/smf @@ -135,7 +135,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=upf-1 + - COMPONENT_NAME=upf volumes: - ./upf:/mnt/upf - ./log:/open5gs/install/var/log/open5gs @@ -165,7 +165,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=mme-1 + - COMPONENT_NAME=mme volumes: - ./mme:/mnt/mme - ./log:/open5gs/install/var/log/open5gs @@ -190,7 +190,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcrf-1 + - COMPONENT_NAME=pcrf depends_on: - mongo volumes: @@ -275,7 +275,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=osmomsc-1 + - COMPONENT_NAME=osmomsc depends_on: - osmohlr expose: @@ -295,7 +295,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=osmohlr-1 + - COMPONENT_NAME=osmohlr expose: - "4222/tcp" networks: diff --git a/4g-volte-deploy.yaml b/4g-volte-deploy.yaml index 2edc162..7024ab9 100644 --- a/4g-volte-deploy.yaml +++ b/4g-volte-deploy.yaml @@ -42,7 +42,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=hss-1 + - COMPONENT_NAME=hss volumes: - ./hss:/mnt/hss - ./log:/open5gs/install/var/log/open5gs @@ -69,7 +69,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=sgwc-1 + - COMPONENT_NAME=sgwc volumes: - ./sgwc:/mnt/sgwc - ./log:/open5gs/install/var/log/open5gs @@ -90,7 +90,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=sgwu-1 + - COMPONENT_NAME=sgwu volumes: - ./sgwu:/mnt/sgwu - ./log:/open5gs/install/var/log/open5gs @@ -110,7 +110,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=4G volumes: - ./smf:/mnt/smf @@ -139,7 +139,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=upf-1 + - COMPONENT_NAME=upf volumes: - ./upf:/mnt/upf - ./log:/open5gs/install/var/log/open5gs @@ -170,7 +170,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=mme-1 + - COMPONENT_NAME=mme volumes: - ./mme:/mnt/mme - ./log:/open5gs/install/var/log/open5gs @@ -197,7 +197,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcrf-1 + - COMPONENT_NAME=pcrf depends_on: - mongo volumes: @@ -308,7 +308,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=icscf-1 + - COMPONENT_NAME=icscf depends_on: - dns - mysql @@ -332,7 +332,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=scscf-1 + - COMPONENT_NAME=scscf depends_on: - dns - mysql @@ -359,7 +359,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcscf-1 + - COMPONENT_NAME=pcscf - DEPLOY_MODE=4G depends_on: - dns @@ -390,7 +390,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smsc-1 + - COMPONENT_NAME=smsc depends_on: - dns - mysql @@ -411,7 +411,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=osmomsc-1 + - COMPONENT_NAME=osmomsc depends_on: - osmohlr expose: @@ -431,7 +431,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=osmohlr-1 + - COMPONENT_NAME=osmohlr expose: - "4222/tcp" networks: diff --git a/base/open5gs_init.sh b/base/open5gs_init.sh index 05a0e98..b74a7e4 100755 --- a/base/open5gs_init.sh +++ b/base/open5gs_init.sh @@ -11,8 +11,8 @@ # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation +# 2. Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" @@ -30,70 +30,70 @@ export LD_LIBRARY_PATH=/open5gs/install/lib/$(uname -m)-linux-gnu if [[ -z "$COMPONENT_NAME" ]]; then echo "Error: COMPONENT_NAME environment variable not set"; exit 1; -elif [[ "$COMPONENT_NAME" =~ ^(amf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(amf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/amf/amf_init.sh && \ + /mnt/amf/${COMPONENT_NAME}_init.sh && \ cd install/bin && ./open5gs-amfd -elif [[ "$COMPONENT_NAME" =~ ^(ausf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(ausf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/ausf/ausf_init.sh && \ + /mnt/ausf/${COMPONENT_NAME}_init.sh && \ cd install/bin && ./open5gs-ausfd -elif [[ "$COMPONENT_NAME" =~ ^(bsf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(bsf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/bsf/bsf_init.sh && sleep 10 && \ + /mnt/bsf/${COMPONENT_NAME}_init.sh && sleep 10 && \ cd install/bin && ./open5gs-bsfd -elif [[ "$COMPONENT_NAME" =~ ^(hss-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(hss[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/hss/hss_init.sh && \ + /mnt/hss/${COMPONENT_NAME}_init.sh && \ cd install/bin && sleep 10 && ./open5gs-hssd -elif [[ "$COMPONENT_NAME" =~ ^(mme-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(mme[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/mme/mme_init.sh && \ + /mnt/mme/${COMPONENT_NAME}_init.sh && \ cd install/bin && ./open5gs-mmed -elif [[ "$COMPONENT_NAME" =~ ^(nrf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(nrf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/nrf/nrf_init.sh && \ - cd install/bin && ./open5gs-nrfd -elif [[ "$COMPONENT_NAME" =~ ^(scp-[[:digit:]]+$) ]]; then + /mnt/nrf/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-nrfd +elif [[ "$COMPONENT_NAME" =~ ^(scp[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/scp/scp_init.sh && \ - cd install/bin && ./open5gs-scpd -elif [[ "$COMPONENT_NAME" =~ ^(nssf-[[:digit:]]+$) ]]; then + /mnt/scp/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-scpd +elif [[ "$COMPONENT_NAME" =~ ^(nssf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/nssf/nssf_init.sh && \ - cd install/bin && ./open5gs-nssfd -elif [[ "$COMPONENT_NAME" =~ ^(pcf-[[:digit:]]+$) ]]; then + /mnt/nssf/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-nssfd +elif [[ "$COMPONENT_NAME" =~ ^(pcf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/pcf/pcf_init.sh && sleep 10 && \ - cd install/bin && ./open5gs-pcfd -elif [[ "$COMPONENT_NAME" =~ ^(pcrf-[[:digit:]]+$) ]]; then + /mnt/pcf/${COMPONENT_NAME}_init.sh && sleep 10 && \ + cd install/bin && ./open5gs-pcfd +elif [[ "$COMPONENT_NAME" =~ ^(pcrf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/pcrf/pcrf_init.sh && sleep 10 && \ - cd install/bin && ./open5gs-pcrfd -elif [[ "$COMPONENT_NAME" =~ ^(sgwc-[[:digit:]]+$) ]]; then + /mnt/pcrf/${COMPONENT_NAME}_init.sh && sleep 10 && \ + cd install/bin && ./open5gs-pcrfd +elif [[ "$COMPONENT_NAME" =~ ^(sgwc[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/sgwc/sgwc_init.sh && \ - cd install/bin && ./open5gs-sgwcd -elif [[ "$COMPONENT_NAME" =~ ^(sgwu-[[:digit:]]+$) ]]; then + /mnt/sgwc/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-sgwcd +elif [[ "$COMPONENT_NAME" =~ ^(sgwu[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/sgwu/sgwu_init.sh && \ - cd install/bin && ./open5gs-sgwud -elif [[ "$COMPONENT_NAME" =~ ^(smf-[[:digit:]]+$) ]]; then + /mnt/sgwu/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-sgwud +elif [[ "$COMPONENT_NAME" =~ ^(smf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/smf/smf_init.sh && \ - cd install/bin && ./open5gs-smfd -elif [[ "$COMPONENT_NAME" =~ ^(udm-[[:digit:]]+$) ]]; then + /mnt/smf/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-smfd +elif [[ "$COMPONENT_NAME" =~ ^(udm[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/udm/udm_init.sh && \ - cd install/bin && ./open5gs-udmd -elif [[ "$COMPONENT_NAME" =~ ^(udr-[[:digit:]]+$) ]]; then + /mnt/udm/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-udmd +elif [[ "$COMPONENT_NAME" =~ ^(udr[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/udr/udr_init.sh && sleep 10 && \ - cd install/bin && ./open5gs-udrd -elif [[ "$COMPONENT_NAME" =~ ^(upf-[[:digit:]]+$) ]]; then + /mnt/udr/${COMPONENT_NAME}_init.sh && sleep 10 && \ + cd install/bin && ./open5gs-udrd +elif [[ "$COMPONENT_NAME" =~ ^(upf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/upf/upf_init.sh && \ - cd install/bin && ./open5gs-upfd + /mnt/upf/${COMPONENT_NAME}_init.sh && \ + cd install/bin && ./open5gs-upfd elif [[ "$COMPONENT_NAME" =~ ^(webui) ]]; then echo "Deploying component: '$COMPONENT_NAME'" sleep 10 && /mnt/webui/webui_init.sh diff --git a/custom_deployments/with_eupf/nr-gnb.yaml b/custom_deployments/with_eupf/nr-gnb.yaml index 0f9aaa0..c37d54e 100644 --- a/custom_deployments/with_eupf/nr-gnb.yaml +++ b/custom_deployments/with_eupf/nr-gnb.yaml @@ -12,7 +12,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=ueransim-gnb-1 + - COMPONENT_NAME=ueransim-gnb expose: - "38412/sctp" - "2152/udp" diff --git a/custom_deployments/with_eupf/nr-ue.yaml b/custom_deployments/with_eupf/nr-ue.yaml index 1938d4b..b2d47ee 100644 --- a/custom_deployments/with_eupf/nr-ue.yaml +++ b/custom_deployments/with_eupf/nr-ue.yaml @@ -12,7 +12,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=ueransim-ue-1 + - COMPONENT_NAME=ueransim-ue expose: - "4997/udp" cap_add: diff --git a/custom_deployments/with_eupf/sa-deploy.yaml b/custom_deployments/with_eupf/sa-deploy.yaml index 6560c96..684c4f3 100644 --- a/custom_deployments/with_eupf/sa-deploy.yaml +++ b/custom_deployments/with_eupf/sa-deploy.yaml @@ -42,7 +42,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=nrf-1 + - COMPONENT_NAME=nrf volumes: - ../../nrf:/mnt/nrf - ../../log:/open5gs/install/var/log/open5gs @@ -59,7 +59,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=scp-1 + - COMPONENT_NAME=scp volumes: - ../../scp:/mnt/scp - ../../log:/open5gs/install/var/log/open5gs @@ -79,7 +79,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=ausf-1 + - COMPONENT_NAME=ausf volumes: - ../../ausf:/mnt/ausf - ../../log:/open5gs/install/var/log/open5gs @@ -100,7 +100,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=udr-1 + - COMPONENT_NAME=udr volumes: - ../../udr:/mnt/udr - ../../log:/open5gs/install/var/log/open5gs @@ -120,7 +120,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=udm-1 + - COMPONENT_NAME=udm volumes: - ../../udm:/mnt/udm - ../../log:/open5gs/install/var/log/open5gs @@ -141,7 +141,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=5G volumes: - ../../smf:/mnt/smf @@ -172,7 +172,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=eupf-1 + - COMPONENT_NAME=eupf volumes: - ../../eupf:/mnt/eupf - /sys/fs/bpf:/sys/fs/bpf @@ -228,7 +228,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=amf-1 + - COMPONENT_NAME=amf volumes: - ../../amf:/mnt/amf - ../../log:/open5gs/install/var/log/open5gs @@ -253,7 +253,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=pcf-1 + - COMPONENT_NAME=pcf volumes: - ../../pcf:/mnt/pcf - ../../log:/open5gs/install/var/log/open5gs @@ -275,7 +275,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=bsf-1 + - COMPONENT_NAME=bsf volumes: - ../../bsf:/mnt/bsf - ../../log:/open5gs/install/var/log/open5gs @@ -296,7 +296,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=nssf-1 + - COMPONENT_NAME=nssf volumes: - ../../nssf:/mnt/nssf - ../../log:/open5gs/install/var/log/open5gs diff --git a/custom_deployments/with_eupf/sa-vonr-deploy.yaml b/custom_deployments/with_eupf/sa-vonr-deploy.yaml index 50c0712..16a980e 100644 --- a/custom_deployments/with_eupf/sa-vonr-deploy.yaml +++ b/custom_deployments/with_eupf/sa-vonr-deploy.yaml @@ -42,7 +42,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=nrf-1 + - COMPONENT_NAME=nrf volumes: - ../../nrf:/mnt/nrf - ../../log:/open5gs/install/var/log/open5gs @@ -59,7 +59,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=scp-1 + - COMPONENT_NAME=scp volumes: - ../../scp:/mnt/scp - ../../log:/open5gs/install/var/log/open5gs @@ -79,7 +79,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=ausf-1 + - COMPONENT_NAME=ausf volumes: - ../../ausf:/mnt/ausf - ../../log:/open5gs/install/var/log/open5gs @@ -100,7 +100,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=udr-1 + - COMPONENT_NAME=udr volumes: - ../../udr:/mnt/udr - ../../log:/open5gs/install/var/log/open5gs @@ -120,7 +120,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=udm-1 + - COMPONENT_NAME=udm volumes: - ../../udm:/mnt/udm - ../../log:/open5gs/install/var/log/open5gs @@ -141,7 +141,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=5G volumes: - ../../smf:/mnt/smf @@ -172,7 +172,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=eupf-1 + - COMPONENT_NAME=eupf volumes: - ../../eupf:/mnt/eupf - /sys/fs/bpf:/sys/fs/bpf @@ -228,7 +228,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=amf-1 + - COMPONENT_NAME=amf volumes: - ../../amf:/mnt/amf - ../../log:/open5gs/install/var/log/open5gs @@ -253,7 +253,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=pcf-1 + - COMPONENT_NAME=pcf volumes: - ../../pcf:/mnt/pcf - ../../log:/open5gs/install/var/log/open5gs @@ -275,7 +275,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=bsf-1 + - COMPONENT_NAME=bsf volumes: - ../../bsf:/mnt/bsf - ../../log:/open5gs/install/var/log/open5gs @@ -296,7 +296,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=nssf-1 + - COMPONENT_NAME=nssf volumes: - ../../nssf:/mnt/nssf - ../../log:/open5gs/install/var/log/open5gs @@ -417,7 +417,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=icscf-1 + - COMPONENT_NAME=icscf depends_on: - dns - mysql @@ -441,7 +441,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=scscf-1 + - COMPONENT_NAME=scscf depends_on: - dns - mysql @@ -468,7 +468,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=pcscf-1 + - COMPONENT_NAME=pcscf - DEPLOY_MODE=5G depends_on: - dns @@ -499,7 +499,7 @@ services: env_file: - .custom_env environment: - - COMPONENT_NAME=smsc-1 + - COMPONENT_NAME=smsc depends_on: - dns - mysql diff --git a/deploy-all.yaml b/deploy-all.yaml index 349fd84..a841122 100644 --- a/deploy-all.yaml +++ b/deploy-all.yaml @@ -42,7 +42,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=nrf-1 + - COMPONENT_NAME=nrf volumes: - ./nrf:/mnt/nrf - ./log:/open5gs/install/var/log/open5gs @@ -59,7 +59,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=scp-1 + - COMPONENT_NAME=scp volumes: - ./scp:/mnt/scp - ./log:/open5gs/install/var/log/open5gs @@ -79,7 +79,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=ausf-1 + - COMPONENT_NAME=ausf volumes: - ./ausf:/mnt/ausf - ./log:/open5gs/install/var/log/open5gs @@ -100,7 +100,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=udr-1 + - COMPONENT_NAME=udr volumes: - ./udr:/mnt/udr - ./log:/open5gs/install/var/log/open5gs @@ -120,7 +120,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=udm-1 + - COMPONENT_NAME=udm volumes: - ./udm:/mnt/udm - ./log:/open5gs/install/var/log/open5gs @@ -141,7 +141,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcf-1 + - COMPONENT_NAME=pcf volumes: - ./pcf:/mnt/pcf - ./log:/open5gs/install/var/log/open5gs @@ -163,7 +163,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=bsf-1 + - COMPONENT_NAME=bsf volumes: - ./bsf:/mnt/bsf - ./log:/open5gs/install/var/log/open5gs @@ -184,7 +184,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=nssf-1 + - COMPONENT_NAME=nssf volumes: - ./nssf:/mnt/nssf - ./log:/open5gs/install/var/log/open5gs @@ -201,7 +201,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=hss-1 + - COMPONENT_NAME=hss volumes: - ./hss:/mnt/hss - ./log:/open5gs/install/var/log/open5gs @@ -228,7 +228,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=sgwc-1 + - COMPONENT_NAME=sgwc volumes: - ./sgwc:/mnt/sgwc - ./log:/open5gs/install/var/log/open5gs @@ -249,7 +249,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=sgwu-1 + - COMPONENT_NAME=sgwu volumes: - ./sgwu:/mnt/sgwu - ./log:/open5gs/install/var/log/open5gs @@ -273,7 +273,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=ALL volumes: - ./smf:/mnt/smf @@ -304,7 +304,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=upf-1 + - COMPONENT_NAME=upf volumes: - ./upf:/mnt/upf - ./log:/open5gs/install/var/log/open5gs @@ -339,7 +339,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=amf-1 + - COMPONENT_NAME=amf volumes: - ./amf:/mnt/amf - ./log:/open5gs/install/var/log/open5gs @@ -367,7 +367,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=mme-1 + - COMPONENT_NAME=mme volumes: - ./mme:/mnt/mme - ./log:/open5gs/install/var/log/open5gs @@ -394,7 +394,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcrf-1 + - COMPONENT_NAME=pcrf depends_on: - mongo volumes: @@ -507,7 +507,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=icscf-1 + - COMPONENT_NAME=icscf depends_on: - dns - mysql @@ -531,7 +531,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=scscf-1 + - COMPONENT_NAME=scscf depends_on: - dns - mysql @@ -558,7 +558,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcscf-1 + - COMPONENT_NAME=pcscf - DEPLOY_MODE=ALL depends_on: - dns @@ -598,7 +598,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smsc-1 + - COMPONENT_NAME=smsc depends_on: - dns - mysql @@ -619,7 +619,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=osmomsc-1 + - COMPONENT_NAME=osmomsc depends_on: - osmohlr expose: @@ -639,7 +639,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=osmohlr-1 + - COMPONENT_NAME=osmohlr expose: - "4222/tcp" networks: diff --git a/ims_base/kamailio_init.sh b/ims_base/kamailio_init.sh index d48ad37..34c31ee 100755 --- a/ims_base/kamailio_init.sh +++ b/ims_base/kamailio_init.sh @@ -28,27 +28,27 @@ if [[ -z "$COMPONENT_NAME" ]]; then echo "Error: COMPONENT_NAME environment variable not set"; exit 1; -elif [[ "$COMPONENT_NAME" =~ ^(icscf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(icscf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/icscf/icscf_init.sh && \ + /mnt/icscf/${COMPONENT_NAME}_init.sh && \ mkdir -p /var/run/kamailio_icscf && \ rm -f /kamailio_icscf.pid && \ kamailio -f /etc/kamailio_icscf/kamailio_icscf.cfg -P /kamailio_icscf.pid -DD -E -e -elif [[ "$COMPONENT_NAME" =~ ^(scscf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(scscf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/scscf/scscf_init.sh && \ + /mnt/scscf/${COMPONENT_NAME}_init.sh && \ mkdir -p /var/run/kamailio_scscf && \ rm -f /kamailio_scscf.pid && \ kamailio -f /etc/kamailio_scscf/kamailio_scscf.cfg -P /kamailio_scscf.pid -DD -E -e -elif [[ "$COMPONENT_NAME" =~ ^(pcscf-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(pcscf[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/pcscf/pcscf_init.sh && \ + /mnt/pcscf/${COMPONENT_NAME}_init.sh && \ mkdir -p /var/run/kamailio_pcscf && \ rm -f /kamailio_pcscf.pid && \ kamailio -f /etc/kamailio_pcscf/kamailio_pcscf.cfg -P /kamailio_pcscf.pid -DD -E -e -elif [[ "$COMPONENT_NAME" =~ ^(smsc-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(smsc[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/smsc/smsc_init.sh && \ + /mnt/smsc/${COMPONENT_NAME}_init.sh && \ mkdir -p /var/run/kamailio_smsc && \ rm -f /kamailio_smsc.pid && \ kamailio -f /etc/kamailio_smsc/kamailio_smsc.cfg -P /kamailio_smsc.pid -DD -E -e diff --git a/nr-gnb.yaml b/nr-gnb.yaml index a18b696..18652e5 100644 --- a/nr-gnb.yaml +++ b/nr-gnb.yaml @@ -12,7 +12,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=ueransim-gnb-1 + - COMPONENT_NAME=ueransim-gnb expose: - "38412/sctp" - "2152/udp" diff --git a/nr-ue.yaml b/nr-ue.yaml index 687c05c..7fb2dc7 100644 --- a/nr-ue.yaml +++ b/nr-ue.yaml @@ -12,7 +12,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=ueransim-ue-1 + - COMPONENT_NAME=ueransim-ue expose: - "4997/udp" cap_add: diff --git a/sa-deploy.yaml b/sa-deploy.yaml index b0c0dc4..0b8f0af 100644 --- a/sa-deploy.yaml +++ b/sa-deploy.yaml @@ -42,7 +42,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=nrf-1 + - COMPONENT_NAME=nrf volumes: - ./nrf:/mnt/nrf - ./log:/open5gs/install/var/log/open5gs @@ -59,7 +59,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=scp-1 + - COMPONENT_NAME=scp volumes: - ./scp:/mnt/scp - ./log:/open5gs/install/var/log/open5gs @@ -79,7 +79,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=ausf-1 + - COMPONENT_NAME=ausf volumes: - ./ausf:/mnt/ausf - ./log:/open5gs/install/var/log/open5gs @@ -100,7 +100,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=udr-1 + - COMPONENT_NAME=udr volumes: - ./udr:/mnt/udr - ./log:/open5gs/install/var/log/open5gs @@ -120,7 +120,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=udm-1 + - COMPONENT_NAME=udm volumes: - ./udm:/mnt/udm - ./log:/open5gs/install/var/log/open5gs @@ -141,7 +141,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=5G volumes: - ./smf:/mnt/smf @@ -172,7 +172,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=upf-1 + - COMPONENT_NAME=upf volumes: - ./upf:/mnt/upf - ./log:/open5gs/install/var/log/open5gs @@ -207,7 +207,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=amf-1 + - COMPONENT_NAME=amf volumes: - ./amf:/mnt/amf - ./log:/open5gs/install/var/log/open5gs @@ -232,7 +232,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcf-1 + - COMPONENT_NAME=pcf volumes: - ./pcf:/mnt/pcf - ./log:/open5gs/install/var/log/open5gs @@ -254,7 +254,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=bsf-1 + - COMPONENT_NAME=bsf volumes: - ./bsf:/mnt/bsf - ./log:/open5gs/install/var/log/open5gs @@ -275,7 +275,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=nssf-1 + - COMPONENT_NAME=nssf volumes: - ./nssf:/mnt/nssf - ./log:/open5gs/install/var/log/open5gs diff --git a/sa-vonr-deploy.yaml b/sa-vonr-deploy.yaml index f124f84..330bf53 100644 --- a/sa-vonr-deploy.yaml +++ b/sa-vonr-deploy.yaml @@ -42,7 +42,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=nrf-1 + - COMPONENT_NAME=nrf volumes: - ./nrf:/mnt/nrf - ./log:/open5gs/install/var/log/open5gs @@ -59,7 +59,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=scp-1 + - COMPONENT_NAME=scp volumes: - ./scp:/mnt/scp - ./log:/open5gs/install/var/log/open5gs @@ -79,7 +79,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=ausf-1 + - COMPONENT_NAME=ausf volumes: - ./ausf:/mnt/ausf - ./log:/open5gs/install/var/log/open5gs @@ -100,7 +100,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=udr-1 + - COMPONENT_NAME=udr volumes: - ./udr:/mnt/udr - ./log:/open5gs/install/var/log/open5gs @@ -120,7 +120,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=udm-1 + - COMPONENT_NAME=udm volumes: - ./udm:/mnt/udm - ./log:/open5gs/install/var/log/open5gs @@ -141,7 +141,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smf-1 + - COMPONENT_NAME=smf - DEPLOY_MODE=5G volumes: - ./smf:/mnt/smf @@ -172,7 +172,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=upf-1 + - COMPONENT_NAME=upf volumes: - ./upf:/mnt/upf - ./log:/open5gs/install/var/log/open5gs @@ -207,7 +207,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=amf-1 + - COMPONENT_NAME=amf volumes: - ./amf:/mnt/amf - ./log:/open5gs/install/var/log/open5gs @@ -232,7 +232,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcf-1 + - COMPONENT_NAME=pcf volumes: - ./pcf:/mnt/pcf - ./log:/open5gs/install/var/log/open5gs @@ -254,7 +254,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=bsf-1 + - COMPONENT_NAME=bsf volumes: - ./bsf:/mnt/bsf - ./log:/open5gs/install/var/log/open5gs @@ -275,7 +275,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=nssf-1 + - COMPONENT_NAME=nssf volumes: - ./nssf:/mnt/nssf - ./log:/open5gs/install/var/log/open5gs @@ -396,7 +396,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=icscf-1 + - COMPONENT_NAME=icscf depends_on: - dns - mysql @@ -420,7 +420,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=scscf-1 + - COMPONENT_NAME=scscf depends_on: - dns - mysql @@ -447,7 +447,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=pcscf-1 + - COMPONENT_NAME=pcscf - DEPLOY_MODE=5G depends_on: - dns @@ -478,7 +478,7 @@ services: env_file: - .env environment: - - COMPONENT_NAME=smsc-1 + - COMPONENT_NAME=smsc depends_on: - dns - mysql diff --git a/srslte/gnb.conf b/srslte/gnb.conf new file mode 100644 index 0000000..1aa9c47 --- /dev/null +++ b/srslte/gnb.conf @@ -0,0 +1,435 @@ +##################################################################### +# srsENB configuration file +##################################################################### + +##################################################################### +# eNB configuration +# +# enb_id: 20-bit eNB identifier. +# mcc: Mobile Country Code +# mnc: Mobile Network Code +# mme_addr: IP address of MME for S1 connnection +# gtp_bind_addr: Local IP address to bind for GTP connection +# gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic +# s1c_bind_addr: Local IP address to bind for S1AP connection +# s1c_bind_port: Source port for S1AP connection (0 means any) +# n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100) +# tm: Transmission mode 1-4 (TM1 default) +# nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4) +# +##################################################################### +[enb] +enb_id = 0x19B +mcc = MCC +mnc = MNC +mme_addr = MME_IP +gtp_bind_addr = SRS_ENB_IP +s1c_bind_addr = SRS_ENB_IP +s1c_bind_port = 0 +n_prb = 50 +#tm = 4 +#nof_ports = 2 + +##################################################################### +# eNB configuration files +# +# sib_config: SIB1, SIB2 and SIB3 configuration file +# note: When enabling MBMS, use the sib.conf.mbsfn configuration file which includes SIB13 +# rr_config: Radio Resources configuration file +# rb_config: SRB/DRB configuration file +##################################################################### +[enb_files] +sib_config = /etc/srsran/sib.conf +rr_config = /etc/srsran/rr.conf +rb_config = /etc/srsran/rb.conf + +##################################################################### +# RF configuration +# +# dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf) +# tx_gain: Transmit gain (dB). +# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled +# +# Optional parameters: +# dl_freq: Override DL frequency corresponding to dl_earfcn +# ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set) +# device_name: Device driver family +# Supported options: "auto" (uses first driver found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq" +# device_args: Arguments for the device driver. Options are "auto" or any string. +# Default for UHD: "recv_frame_size=9232,send_frame_size=9232" +# Default for bladeRF: "" +# time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay +# from antenna to timestamp insertion. +# Default "auto". B210 USRP: 100 samples, bladeRF: 27 +##################################################################### +[rf] +#dl_earfcn = 3150 +tx_gain = 80 +rx_gain = 40 +#tx_gain = 56 +#rx_gain = 38 +#device_name = soapy +#device_args = id=1 +#device_args = id=1,rxant=LNAW,txant=BAND2 +#device_name = lime +#device_args = index=0,cal=all,refclk=10e6 +#device_args = index=0,cal=none,refclk=10e6 +#device_args = clock=external + +#device_name = auto + +# For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings: +# USRP B210: num_recv_frames=64,num_send_frames=64 +# And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args + +# For best performance when BW<5 MHz (25 PRB), use the following device_args settings: +# USRP B210: send_frame_size=512,recv_frame_size=512 + +#device_args = auto +#time_adv_nsamples = auto + +# Example for ZMQ-based operation with TCP transport for I/Q samples +#device_name = zmq +#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6 + +##################################################################### +# Packet capture configuration +# +# MAC-layer packets are captured to a file in the compact format which can +# be decoded by Wireshark. For decoding, use the UDP dissector and the UDP +# heuristic dissection. Edit the preferences (Edit > Preferences > +# Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with +# Protocol=udp. Further, enable the heuristic dissection in UDP under: +# Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp +# For more information see: https://wiki.wireshark.org/MAC-LTE +# Configuring this Wireshark preferences is needed for decoding the MAC PCAP +# files as well as for the live network capture option. +# +# Please note that this setting will by default only capture MAC +# frames on dedicated channels, and not SIB. You have to build with +# WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want +# SIB to be part of the MAC pcap file. +# +# S1AP Packets are captured to a file in the compact format which can +# be decoded by the Wireshark s1ap dissector with DLT 150. +# To use the dissector, edit the preferences for DLT_USER to +# add an entry with DLT=150, Payload Protocol=s1ap. +# +# mac_enable: Enable MAC layer packet captures (true/false) +# filename: File path to use for LTE MAC packet captures +# nr_filename: File path to use for NR MAC packet captures +# s1ap_enable: Enable or disable the PCAP. +# s1ap_filename: File name where to save the PCAP. +# +# mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false) +# bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0") +# bind_port: Bind port for MAC network trace (default: 5687) +# client_ip: Client IP address for MAC network trace (default: "127.0.0.1") +# client_port Client IP address for MAC network trace (default: 5847) +##################################################################### +[pcap] +#enable = false +#filename = /mnt/srslte/enb_mac.pcap +#nr_filename = /mnt/srslte/enb_mac_nr.pcap +#s1ap_enable = false +#s1ap_filename = /mnt/srslte/enb_s1ap.pcap + +#mac_net_enable = false +#bind_ip = 0.0.0.0 +#bind_port = 5687 +#client_ip = 127.0.0.1 +#client_port = 5847 + +##################################################################### +# Log configuration +# +# Log levels can be set for individual layers. "all_level" sets log +# level for all layers unless otherwise configured. +# Format: e.g. phy_level = info +# +# In the same way, packet hex dumps can be limited for each level. +# "all_hex_limit" sets the hex limit for all layers unless otherwise +# configured. +# Format: e.g. phy_hex_limit = 32 +# +# Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all +# Logging levels: debug, info, warning, error, none +# +# filename: File path to use for log output. Can be set to stdout +# to print logs to standard output +# file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created. +# If set to negative, a single log file will be created. +##################################################################### +[log] +all_level = warning +all_hex_limit = 32 +filename = /mnt/srslte/enb.log +file_max_size = -1 + +[gui] +enable = false + +##################################################################### +# Scheduler configuration options +# +# sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf) +# min_aggr_level: Optional minimum aggregation level index (l=log2(L) can be 0, 1, 2 or 3) +# max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3) +# adaptive_aggr_level: Boolean flag to enable/disable adaptive aggregation level based on target BLER +# pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified) +# pdsch_max_mcs: Optional PDSCH MCS limit +# pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified) +# pusch_max_mcs: Optional PUSCH MCS limit +# min_nof_ctrl_symbols: Minimum number of control symbols +# max_nof_ctrl_symbols: Maximum number of control symbols +# pucch_multiplex_enable: Allow PUCCH HARQ to collide with PUSCH and other PUCCH +# pucch_harq_max_rb: Maximum number of RB to be used for PUCCH on the edges of the grid. +# If defined and greater than 0, the scheduler will avoid DL PDCCH allocations if +# PUCCH HARQ falls outside this region +# target_bler: Target BLER (in decimal) to achieve via adaptive link +# max_delta_dl_cqi: Maximum shift in CQI for adaptive DL link +# max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link +# adaptive_dl_mcs_step_size: Step size or learning rate used in adaptive DL MCS link +# adaptive_ul_mcs_step_size: Step size or learning rate used in adaptive UL MCS link +# min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1 +# ul_snr_avg_alpha: Exponential Average alpha coefficient used in estimation of UL SNR +# init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant +# init_dl_cqi: DL CQI value used before any CQI report is available to the eNB +# max_sib_coderate: Upper bound on SIB and RAR grants coderate +# pdcch_cqi_offset: CQI offset in derivation of PDCCH aggregation level +# nr_pdsch_mcs: Optional fixed NR PDSCH MCS (ignores reported CQIs if specified) +# nr_pusch_mcs: Optional fixed NR PUSCH MCS (ignores reported CQIs if specified) +# +##################################################################### +[scheduler] +#policy = time_pf +#policy_args = 2 +#min_aggr_level = 0 +#max_aggr_level = 3 +#adaptive_aggr_level = false +#pdsch_mcs = -1 +#pdsch_max_mcs = -1 +#pusch_mcs = -1 +#pusch_max_mcs = 16 +#min_nof_ctrl_symbols = 1 +#max_nof_ctrl_symbols = 3 +#pucch_multiplex_enable = false +#pucch_harq_max_rb = 0 +#target_bler = 0.05 +#max_delta_dl_cqi = 5 +#max_delta_ul_snr = 5 +#adaptive_dl_mcs_step_size = 0.001 +#adaptive_ul_mcs_step_size = 0.001 +#min_tpc_tti_interval = 1 +#ul_snr_avg_alpha=0.05 +#init_ul_snr_value=5 +#init_dl_cqi=5 +#max_sib_coderate=0.3 +#pdcch_cqi_offset=0 +#nr_pdsch_mcs=15 +#nr_pusch_mcs=12 + +##################################################################### +# eMBMS configuration options +# +# enable: Enable MBMS transmission in the eNB +# m1u_multiaddr: Multicast address the M1-U socket will register to +# m1u_if_addr: Address of the interface the M1-U interface will listen to for multicast packets +# mcs: Modulation and Coding scheme for MBMS traffic +# +##################################################################### +[embms] +#enable = false +#m1u_multiaddr = 239.255.0.1 +#m1u_if_addr = 127.0.1.201 +#mcs = 20 + + + +##################################################################### +# Channel emulator options: +# enable: Enable/disable internal Downlink/Uplink channel emulator +# +# -- AWGN Generator +# awgn.enable: Enable/disable AWGN generator +# awgn.snr: Target SNR in dB +# +# -- Fading emulator +# fading.enable: Enable/disable fading simulator +# fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc) +# +# -- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2 +# Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period +# delay.enable: Enable/disable delay simulator +# delay.period_s: Delay period in seconds +# delay.init_time_s: Delay initial time in seconds +# delay.maximum_us: Maximum delay in microseconds +# delay.minumum_us: Minimum delay in microseconds +# +# -- Radio-Link Failure (RLF) Emulator +# rlf.enable: Enable/disable RLF simulator +# rlf.t_on_ms: Time for On state of the channel (ms) +# rlf.t_off_ms: Time for Off state of the channel (ms) +# +# -- High Speed Train Doppler model simulator +# hst.enable: Enable/disable HST simulator +# hst.period_s: HST simulation period in seconds +# hst.fd_hz: Doppler frequency in Hz +# hst.init_time_s: Initial time in seconds +##################################################################### +[channel.dl] +#enable = false + +[channel.dl.awgn] +#enable = false +#snr = 30 + +[channel.dl.fading] +#enable = false +#model = none + +[channel.dl.delay] +#enable = false +#period_s = 3600 +#init_time_s = 0 +#maximum_us = 100 +#minimum_us = 10 + +[channel.dl.rlf] +#enable = false +#t_on_ms = 10000 +#t_off_ms = 2000 + +[channel.dl.hst] +#enable = false +#period_s = 7.2 +#fd_hz = 750.0 +#init_time_s = 0.0 + +[channel.ul] +#enable = false + +[channel.ul.awgn] +#enable = false +#n0 = -30 + +[channel.ul.fading] +#enable = false +#model = none + +[channel.ul.delay] +#enable = false +#period_s = 3600 +#init_time_s = 0 +#maximum_us = 100 +#minimum_us = 10 + +[channel.ul.rlf] +#enable = false +#t_on_ms = 10000 +#t_off_ms = 2000 + +[channel.ul.hst] +#enable = false +#period_s = 7.2 +#fd_hz = -750.0 +#init_time_s = 0.0 + +##################################################################### +# CFR configuration options +# +# The CFR module provides crest factor reduction for the transmitted signal. +# +# enable: Enable or disable the CFR. Default: disabled +# +# mode: manual: CFR threshold is set by cfr_manual_thres (default). +# auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average. +# The time constant of the averaging can be tweaked with the ema_alpha parameter. +# auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average. +# Use with care, as CMA's increasingly slow response may be unsuitable for most use cases. +# +# strength: Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1 +# manual_thres: Fixed manual clipping threshold for CFR manual mode. Default: 0.5 +# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 8 +# ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7 +# +##################################################################### +[cfr] +#enable = false +#mode = manual +#manual_thres = 0.5 +#strength = 1 +#auto_target_papr = 8 +#ema_alpha = 0.0143 + +##################################################################### +# Expert configuration options +# +# pusch_max_its: Maximum number of turbo decoder iterations (default: 4) +# nr_pusch_max_its: Maximum number of LDPC iterations for NR (Default 10) +# pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (experimental) +# nof_phy_threads: Selects the number of PHY threads (maximum: 4, minimum: 1, default: 3) +# metrics_period_secs: Sets the period at which metrics are requested from the eNB +# metrics_csv_enable: Write eNB metrics to CSV file. +# metrics_csv_filename: File path to use for CSV metrics +# report_json_enable: Write eNB report to JSON file (default: disabled) +# report_json_filename: Report JSON filename (default: /mnt/srslte/enb_report.json) +# report_json_asn1_oct: Prints ASN1 messages encoded as an octet string instead of plain text in the JSON report file +# alarms_log_enable: Enable Alarms logging (default: disabled) +# alarms_filename: Alarms logging filename (default: /mnt/srslte/alarms.log) +# tracing_enable: Write source code tracing information to a file +# tracing_filename: File path to use for tracing information +# tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store +# stdout_ts_enable: Prints once per second the timestamp into stdout +# tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR) +# rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds) +# max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100) +# max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100) +# max_prach_offset_us: Maximum allowed RACH offset (in us) +# nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8) +# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF +# eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1) +# eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0) +# gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer) +# ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds +# ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds +# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF +# rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko +# s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity. +# rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings +##################################################################### +[expert] +#pusch_max_its = 8 # These are half iterations +#nr_pusch_max_its = 10 +#pusch_8bit_decoder = false +#nof_phy_threads = 3 +#metrics_period_secs = 1 +#metrics_csv_enable = false +#metrics_csv_filename = /mnt/srslte/enb_metrics.csv +#report_json_enable = true +#report_json_filename = /mnt/srslte/enb_report.json +#report_json_asn1_oct = false +#alarms_log_enable = true +#alarms_filename = /mnt/srslte/enb_alarms.log +#tracing_enable = true +#tracing_filename = /mnt/srslte/enb_tracing.log +#tracing_buffcapacity = 1000000 +#stdout_ts_enable = false +#tx_amplitude = 0.6 +#rrc_inactivity_timer = 30000 +#max_mac_dl_kos = 100 +#max_mac_ul_kos = 100 +#max_prach_offset_us = 30 +#nof_prealloc_ues = 8 +#rlf_release_timer_ms = 4000 +#lcid_padding = 3 +#eea_pref_list = EEA0, EEA2, EEA1 +#eia_pref_list = EIA2, EIA1, EIA0 +#gtpu_tunnel_timeout = 0 +#extended_cp = false +#ts1_reloc_prep_timeout = 10000 +#ts1_reloc_overall_timeout = 10000 +#rlf_release_timer_ms = 4000 +#rlf_min_ul_snr_estim = -2 +#s1_setup_max_retries = -1 +#rx_gain_offset = 62 diff --git a/srslte/rb.conf b/srslte/rb_enb.conf similarity index 100% rename from srslte/rb.conf rename to srslte/rb_enb.conf diff --git a/srslte/rb_enb_zmq.conf b/srslte/rb_enb_zmq.conf new file mode 100644 index 0000000..bc09454 --- /dev/null +++ b/srslte/rb_enb_zmq.conf @@ -0,0 +1,310 @@ +// All times are in ms. Use -1 for infinity, where available + +// 4G Section + +// srb1_config = { +// rlc_config = { +// ul_am = { +// t_poll_retx = 45; +// poll_pdu = -1; +// poll_byte = -1; +// max_retx_thresh = 4; +// }; +// dl_am = { +// t_reordering = 35; +// t_status_prohibit = 0; +// }; +// enb_specific = { +// dl_max_retx_thresh = 32; +// }; +// }; +// } + +// srb2_config = { +// rlc_config = { +// ul_am = { +// t_poll_retx = 45; +// poll_pdu = -1; +// poll_byte = -1; +// max_retx_thresh = 4; +// }; +// dl_am = { +// t_reordering = 35; +// t_status_prohibit = 0; +// }; +// enb_specific = { +// dl_max_retx_thresh = 32; +// }; +// }; +// } + +qci_config = ( +{ + qci=1; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 50; + }; + }; + logical_channel_config = { + priority = 2; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 1; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci=2; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 50; + }; + }; + logical_channel_config = { + priority = 4; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 1; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci=5; + pdcp_config = { + discard_timer = -1; + status_report_required = true; + } + rlc_config = { + ul_am = { + t_poll_retx = 80; + poll_pdu = 128; + poll_byte = 125; + max_retx_thresh = 4; + }; + dl_am = { + t_reordering = 80; + t_status_prohibit = 60; + }; + }; + logical_channel_config = { + priority = 11; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 2; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci = 7; + pdcp_config = { + discard_timer = -1; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 45; + }; + }; + logical_channel_config = { + priority = 13; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 2; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci = 9; + pdcp_config = { + discard_timer = 150; + status_report_required = true; + } + rlc_config = { + ul_am = { + t_poll_retx = 120; + poll_pdu = 64; + poll_byte = 750; + max_retx_thresh = 16; + }; + dl_am = { + t_reordering = 50; + t_status_prohibit = 50; + }; + }; + logical_channel_config = { + priority = 11; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 3; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +} +); + +// 5G Section +srb1_5g_config = { + rlc_config = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 45; + poll_pdu = -1; + poll_byte = -1; + max_retx_thres = 8; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 35; + t_status_prohibit = 10; + }; + }; +} + +srb2_5g_config = { + rlc_config = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 45; + poll_pdu = -1; + poll_byte = -1; + max_retx_thres = 8; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 35; + t_status_prohibit = 10; + }; + }; +} + +five_qi_config = ( +{ + five_qi = 2; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + um_bi_dir = { + ul_um = { + sn_field_len = 12; + }; + dl_um = { + sn_field_len = 12; + t_reassembly = 50; + }; + }; + }; +}, +{ + five_qi = 5; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + am = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 50; + poll_pdu = 4; + poll_byte = 3000; + max_retx_thres = 4; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 50; + t_status_prohibit = 50; + }; + }; + }; +}, +{ + five_qi = 7; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + um_bi_dir = { + ul_um = { + sn_field_len = 12; + }; + dl_um = { + sn_field_len = 12; + t_reassembly = 50; + }; + }; + }; +}, +{ + five_qi = 9; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + am = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 50; + poll_pdu = 4; + poll_byte = 3000; + max_retx_thres = 4; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 50; + t_status_prohibit = 50; + }; + }; + }; +} +); + diff --git a/srslte/rb_gnb.conf b/srslte/rb_gnb.conf new file mode 100644 index 0000000..bc09454 --- /dev/null +++ b/srslte/rb_gnb.conf @@ -0,0 +1,310 @@ +// All times are in ms. Use -1 for infinity, where available + +// 4G Section + +// srb1_config = { +// rlc_config = { +// ul_am = { +// t_poll_retx = 45; +// poll_pdu = -1; +// poll_byte = -1; +// max_retx_thresh = 4; +// }; +// dl_am = { +// t_reordering = 35; +// t_status_prohibit = 0; +// }; +// enb_specific = { +// dl_max_retx_thresh = 32; +// }; +// }; +// } + +// srb2_config = { +// rlc_config = { +// ul_am = { +// t_poll_retx = 45; +// poll_pdu = -1; +// poll_byte = -1; +// max_retx_thresh = 4; +// }; +// dl_am = { +// t_reordering = 35; +// t_status_prohibit = 0; +// }; +// enb_specific = { +// dl_max_retx_thresh = 32; +// }; +// }; +// } + +qci_config = ( +{ + qci=1; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 50; + }; + }; + logical_channel_config = { + priority = 2; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 1; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci=2; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 50; + }; + }; + logical_channel_config = { + priority = 4; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 1; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci=5; + pdcp_config = { + discard_timer = -1; + status_report_required = true; + } + rlc_config = { + ul_am = { + t_poll_retx = 80; + poll_pdu = 128; + poll_byte = 125; + max_retx_thresh = 4; + }; + dl_am = { + t_reordering = 80; + t_status_prohibit = 60; + }; + }; + logical_channel_config = { + priority = 11; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 2; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci = 7; + pdcp_config = { + discard_timer = -1; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 45; + }; + }; + logical_channel_config = { + priority = 13; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 2; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci = 9; + pdcp_config = { + discard_timer = 150; + status_report_required = true; + } + rlc_config = { + ul_am = { + t_poll_retx = 120; + poll_pdu = 64; + poll_byte = 750; + max_retx_thresh = 16; + }; + dl_am = { + t_reordering = 50; + t_status_prohibit = 50; + }; + }; + logical_channel_config = { + priority = 11; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 3; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +} +); + +// 5G Section +srb1_5g_config = { + rlc_config = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 45; + poll_pdu = -1; + poll_byte = -1; + max_retx_thres = 8; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 35; + t_status_prohibit = 10; + }; + }; +} + +srb2_5g_config = { + rlc_config = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 45; + poll_pdu = -1; + poll_byte = -1; + max_retx_thres = 8; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 35; + t_status_prohibit = 10; + }; + }; +} + +five_qi_config = ( +{ + five_qi = 2; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + um_bi_dir = { + ul_um = { + sn_field_len = 12; + }; + dl_um = { + sn_field_len = 12; + t_reassembly = 50; + }; + }; + }; +}, +{ + five_qi = 5; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + am = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 50; + poll_pdu = 4; + poll_byte = 3000; + max_retx_thres = 4; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 50; + t_status_prohibit = 50; + }; + }; + }; +}, +{ + five_qi = 7; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + um_bi_dir = { + ul_um = { + sn_field_len = 12; + }; + dl_um = { + sn_field_len = 12; + t_reassembly = 50; + }; + }; + }; +}, +{ + five_qi = 9; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + am = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 50; + poll_pdu = 4; + poll_byte = 3000; + max_retx_thres = 4; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 50; + t_status_prohibit = 50; + }; + }; + }; +} +); + diff --git a/srslte/rb_gnb_zmq.conf b/srslte/rb_gnb_zmq.conf new file mode 100644 index 0000000..bc09454 --- /dev/null +++ b/srslte/rb_gnb_zmq.conf @@ -0,0 +1,310 @@ +// All times are in ms. Use -1 for infinity, where available + +// 4G Section + +// srb1_config = { +// rlc_config = { +// ul_am = { +// t_poll_retx = 45; +// poll_pdu = -1; +// poll_byte = -1; +// max_retx_thresh = 4; +// }; +// dl_am = { +// t_reordering = 35; +// t_status_prohibit = 0; +// }; +// enb_specific = { +// dl_max_retx_thresh = 32; +// }; +// }; +// } + +// srb2_config = { +// rlc_config = { +// ul_am = { +// t_poll_retx = 45; +// poll_pdu = -1; +// poll_byte = -1; +// max_retx_thresh = 4; +// }; +// dl_am = { +// t_reordering = 35; +// t_status_prohibit = 0; +// }; +// enb_specific = { +// dl_max_retx_thresh = 32; +// }; +// }; +// } + +qci_config = ( +{ + qci=1; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 50; + }; + }; + logical_channel_config = { + priority = 2; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 1; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci=2; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 50; + }; + }; + logical_channel_config = { + priority = 4; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 1; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci=5; + pdcp_config = { + discard_timer = -1; + status_report_required = true; + } + rlc_config = { + ul_am = { + t_poll_retx = 80; + poll_pdu = 128; + poll_byte = 125; + max_retx_thresh = 4; + }; + dl_am = { + t_reordering = 80; + t_status_prohibit = 60; + }; + }; + logical_channel_config = { + priority = 11; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 2; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci = 7; + pdcp_config = { + discard_timer = -1; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 10; + }; + dl_um = { + sn_field_length = 10; + t_reordering = 45; + }; + }; + logical_channel_config = { + priority = 13; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 2; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +}, +{ + qci = 9; + pdcp_config = { + discard_timer = 150; + status_report_required = true; + } + rlc_config = { + ul_am = { + t_poll_retx = 120; + poll_pdu = 64; + poll_byte = 750; + max_retx_thresh = 16; + }; + dl_am = { + t_reordering = 50; + t_status_prohibit = 50; + }; + }; + logical_channel_config = { + priority = 11; + prioritized_bit_rate = -1; + bucket_size_duration = 100; + log_chan_group = 3; + }; + enb_specific = { + dl_max_retx_thresh = 32; + }; +} +); + +// 5G Section +srb1_5g_config = { + rlc_config = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 45; + poll_pdu = -1; + poll_byte = -1; + max_retx_thres = 8; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 35; + t_status_prohibit = 10; + }; + }; +} + +srb2_5g_config = { + rlc_config = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 45; + poll_pdu = -1; + poll_byte = -1; + max_retx_thres = 8; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 35; + t_status_prohibit = 10; + }; + }; +} + +five_qi_config = ( +{ + five_qi = 2; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + um_bi_dir = { + ul_um = { + sn_field_len = 12; + }; + dl_um = { + sn_field_len = 12; + t_reassembly = 50; + }; + }; + }; +}, +{ + five_qi = 5; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + am = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 50; + poll_pdu = 4; + poll_byte = 3000; + max_retx_thres = 4; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 50; + t_status_prohibit = 50; + }; + }; + }; +}, +{ + five_qi = 7; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + um_bi_dir = { + ul_um = { + sn_field_len = 12; + }; + dl_um = { + sn_field_len = 12; + t_reassembly = 50; + }; + }; + }; +}, +{ + five_qi = 9; + pdcp_nr_config = { + drb = { + discard_timer = 50; + pdcp_sn_size_ul = 18; + pdcp_sn_size_dl = 18; + }; + t_reordering = 50; + }; + rlc_config = { + am = { + ul_am = { + sn_field_len = 12; + t_poll_retx = 50; + poll_pdu = 4; + poll_byte = 3000; + max_retx_thres = 4; + }; + dl_am = { + sn_field_len = 12; + t_reassembly = 50; + t_status_prohibit = 50; + }; + }; + }; +} +); + diff --git a/srslte/rr_enb.conf b/srslte/rr_enb.conf new file mode 100644 index 0000000..0f8593f --- /dev/null +++ b/srslte/rr_enb.conf @@ -0,0 +1,118 @@ +mac_cnfg = +{ + phr_cnfg = + { + dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY + periodic_phr_timer = 50; + prohibit_phr_timer = 0; + }; + ulsch_cnfg = + { + max_harq_tx = 4; + periodic_bsr_timer = 20; // in ms + retx_bsr_timer = 320; // in ms + }; + + time_alignment_timer = -1; // -1 is infinity +}; + +phy_cnfg = +{ + phich_cnfg = + { + duration = "Normal"; + resources = "1/6"; + }; + + pusch_cnfg_ded = + { + beta_offset_ack_idx = 6; + beta_offset_ri_idx = 6; + beta_offset_cqi_idx = 6; + }; + + // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. + sched_request_cnfg = + { + dsr_trans_max = 64; + period = 20; // in ms + //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) + nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) + }; + cqi_report_cnfg = + { + mode = "periodic"; + simultaneousAckCQI = true; + period = 40; // in ms + //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) + m_ri = 8; // RI period in CQI period + //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 + }; +}; + +cell_list = +( + { + // rf_port = 0; + cell_id = 0x01; + tac = 0x0001; + pci = 1; + // root_seq_idx = 204; + dl_earfcn = 3350; + //dl_earfcn = 6300; + //ul_earfcn = 21400; + ho_active = false; + //meas_gap_period = 0; // 0 (inactive), 40 or 80 + //meas_gap_offset_subframe = [6, 12, 18, 24, 30]; + // target_pusch_sinr = -1; + // target_pucch_sinr = -1; + // enable_phr_handling = false; + // min_phr_thres = 0; + // allowed_meas_bw = 6; + // t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000 + + // CA cells + scell_list = ( + // {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} + ) + + // Cells available for handover + meas_cell_list = + ( + { + eci = 0x19C02; + dl_earfcn = 2850; + pci = 2; + //direct_forward_path_available = false; + //allowed_meas_bw = 6; + //cell_individual_offset = 0; + } + ); + + // Select measurement report configuration (all reports are combined with all measurement objects) + meas_report_desc = + ( + { + eventA = 3 + a3_offset = 6; + hysteresis = 0; + time_to_trigger = 480; + trigger_quant = "RSRP"; + max_report_cells = 1; + report_interv = 120; + report_amount = 1; + } + ); + meas_quant_desc = { + // averaging filter coefficient + rsrq_config = 4; + rsrp_config = 4; + }; + } + // Add here more cells +); + +nr_cell_list = +( + // no NR cells +); \ No newline at end of file diff --git a/srslte/rr.conf b/srslte/rr_enb_zmq.conf similarity index 100% rename from srslte/rr.conf rename to srslte/rr_enb_zmq.conf diff --git a/srslte/sib.conf b/srslte/sib_enb.conf similarity index 100% rename from srslte/sib.conf rename to srslte/sib_enb.conf diff --git a/srslte/sib_enb_zmq.conf b/srslte/sib_enb_zmq.conf new file mode 100644 index 0000000..c38cdbe --- /dev/null +++ b/srslte/sib_enb_zmq.conf @@ -0,0 +1,294 @@ +sib1 = +{ + intra_freq_reselection = "Allowed"; + q_rx_lev_min = -65; + //p_max = 3; + cell_barred = "NotBarred" + si_window_length = 20; + sched_info = + ( + { + si_periodicity = 16; + + // comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2 + si_mapping_info = [ 3 ]; + } + ); + system_info_value_tag = 0; +}; + +sib2 = +{ + rr_config_common_sib = + { + rach_cnfg = + { + num_ra_preambles = 52; + preamble_init_rx_target_pwr = -104; + pwr_ramping_step = 6; // in dB + preamble_trans_max = 10; + ra_resp_win_size = 10; // in ms + mac_con_res_timer = 64; // in ms + max_harq_msg3_tx = 4; + }; + bcch_cnfg = + { + modification_period_coeff = 16; // in ms + }; + pcch_cnfg = + { + default_paging_cycle = 32; // in rf + nB = "1"; + }; + prach_cnfg = + { + root_sequence_index = 128; + prach_cnfg_info = + { + high_speed_flag = false; + prach_config_index = 3; + prach_freq_offset = 4; + zero_correlation_zone_config = 5; + }; + }; + pdsch_cnfg = + { + /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1 + */ + p_b = 1; + rs_power = 0; + }; + pusch_cnfg = + { + n_sb = 1; + hopping_mode = "inter-subframe"; + pusch_hopping_offset = 2; + enable_64_qam = false; // 64QAM PUSCH is not currently enabled + ul_rs = + { + cyclic_shift = 0; + group_assignment_pusch = 0; + group_hopping_enabled = false; + sequence_hopping_enabled = false; + }; + }; + pucch_cnfg = + { + delta_pucch_shift = 1; + n_rb_cqi = 1; + n_cs_an = 0; + n1_pucch_an = 12; + }; + ul_pwr_ctrl = + { + p0_nominal_pusch = -85; + alpha = 0.7; + p0_nominal_pucch = -107; + delta_flist_pucch = + { + format_1 = 0; + format_1b = 3; + format_2 = 1; + format_2a = 2; + format_2b = 2; + }; + delta_preamble_msg3 = 6; + }; + ul_cp_length = "len1"; + }; + + ue_timers_and_constants = + { + t300 = 2000; // in ms + t301 = 100; // in ms + t310 = 200; // in ms + n310 = 1; + t311 = 10000; // in ms + n311 = 1; + }; + + freqInfo = + { + ul_carrier_freq_present = true; + ul_bw_present = true; + additional_spectrum_emission = 1; + }; + + time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. +}; + +sib3 = +{ + cell_reselection_common = { + q_hyst = 2; // in dB + }, + cell_reselection_serving = { + s_non_intra_search = 3, + thresh_serving_low = 2, + cell_resel_prio = 6 + }, + intra_freq_reselection = { + q_rx_lev_min = -61, + p_max = 23, + s_intra_search = 5, + presence_ant_port_1 = true, + neigh_cell_cnfg = 1, + t_resel_eutra = 1 + } +}; + +##################################################################### +# sib5 configuration options (See TS 36.331) +# Contains information relevant for inter-frequency cell re-selection. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# inter_freq_carrier_freq_list: A list of neighbouring inter-frequencies. +# dl_carrier_freq: The EARFCN for the EUTRA carrier frequency. +# q_rx_lev_min: Minimum received RSRP level in the E-UTRA cell, ([field_val] * 2) = [level in dBm]. +# p_max: Optional maximum allowed transmission power for the neighbouring E-UTRA cells on this carrier frequency. +# t_resel_eutra: Cell reselection timer (seconds). +# t_resel_eutra_sf: Optional speed dependent ScalingFactor for t_resel_eutra. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency. +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency. +# allowed_meas_bw: Maximum allowed measurement bandwidth on a carrier frequency . +# presence_ant_port_1: whether all the neighbouring cells use Antenna Port 1. +# cell_resel_prio: Optional absolute priority of the carrier frequency group. +# neigh_cell_cfg: Information related to MBSFN and TDD UL/DL configuration of neighbour cells. +# q_offset_freq: Frequency specific offset for equal priority E-UTRAN frequencies. +# inter_freq_neigh_cell_list: A List of inter-frequency neighbouring cells with specific cell re-selection parameters. +# phys_cell_id: Physical layer identity of the cell. +# q_offset_cell: Cell spcific offset. +# inter_freq_black_cell_list: A List of blacklisted inter-frequency neighbouring cells. +# start: The lowest physical cell identity in the range. +# range: The number of physical cell identities in the range. +# +##################################################################### +sib5 = +{ + inter_freq_carrier_freq_list = + ( + { + dl_carrier_freq = 1450; + q_rx_lev_min = -70; + t_resel_eutra = 2; + t_resel_eutra_sf = { + sf_medium = "0.25"; + sf_high = "1.0"; + }; + thresh_x_high = 3; + thresh_x_low = 2; + allowed_meas_bw = 75; + presence_ant_port_1 = True; + cell_resel_prio = 4; + neigh_cell_cfg = 2; + q_offset_freq = -6; + inter_freq_neigh_cell_list = + ( + { + phys_cell_id = 500; + q_offset_cell = 2; + } + ); + inter_freq_black_cell_list = + ( + { + start = 123; + range = 4; + } + ); + } + ); +}; + +##################################################################### +# sib6 configuration options (See TS 36.331) +# Contains UTRA neighbor information for inter-rat handover. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# t_resel_utra: Cell reselection timer (seconds) +# t_resel_utra_sf: Optional speed dependent ScalingFactor for t_resel_utra. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# carrier_freq_list_utra_fdd / carrier_freq_list_utra_tdd: A list of carrier frequencies of UTRA FDD / TDD. +# carrier_freq: The UARFCN for the UTRA carrier frequency. +# cell_resel_prio: Optional absolute priority of the carrier frequency group. +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency. +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency. +# q_rx_lev_min: Minimum receive level in UTRA cell, ([field_val] * 2) + 1 = [level in dBm]. +# p_max_utra: The maximum allowed transmission power on the (uplink) carrier frequency. +# q_qual_min: Minimum required quality leve in UTRA cell, applicable only for FDD cells. +# +##################################################################### +sib6 = +{ + t_resel_utra = 1; + t_resel_utra_sf = { + sf_medium = "0.25"; + sf_high = "1.0"; + } + carrier_freq_list_utra_fdd = + ( + { + carrier_freq = 9613; + cell_resel_prio = 6; + thresh_x_high = 3; + thresh_x_low = 2; + q_rx_lev_min = -50; + p_max_utra = 4; + q_qual_min = -10; + } + ); + carrier_freq_list_utra_tdd = + ( + { + carrier_freq = 9505; + thresh_x_high = 1; + thresh_x_low = 2; + q_rx_lev_min = -50; + p_max_utra = -3; + } + ); +}; + +##################################################################### +# sib7 configuration options (See TS 36.331) +# Contains GERAN neighbor information for CSFB and inter-rat handover. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# t_resel_geran: Cell reselection timer (seconds) +# t_resel_geran_sf: Optional speed dependent ScalingFactor for t_resel_geran. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# carrier_freqs_info_list: A list of carrier frequency groups. +# cell_resel_prio: Absolute priority of the carrier frequency group +# ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring +# q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm] +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency +# start_arfcn: Initial search ARFCN value +# band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs. +# explicit_list_of_arfcns: List of ARFCN numbers in the group +# +##################################################################### +sib7 = +{ + t_resel_geran = 1; + carrier_freqs_info_list = + ( + { + cell_resel_prio = 0; + ncc_permitted = 255; + q_rx_lev_min = 0; + thresh_x_high = 2; + thresh_x_low = 2; + + start_arfcn = 871; + band_ind = "dcs1800"; + explicit_list_of_arfcns = ( + 871 + ); + } + ); +}; diff --git a/srslte/sib_gnb.conf b/srslte/sib_gnb.conf new file mode 100644 index 0000000..c38cdbe --- /dev/null +++ b/srslte/sib_gnb.conf @@ -0,0 +1,294 @@ +sib1 = +{ + intra_freq_reselection = "Allowed"; + q_rx_lev_min = -65; + //p_max = 3; + cell_barred = "NotBarred" + si_window_length = 20; + sched_info = + ( + { + si_periodicity = 16; + + // comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2 + si_mapping_info = [ 3 ]; + } + ); + system_info_value_tag = 0; +}; + +sib2 = +{ + rr_config_common_sib = + { + rach_cnfg = + { + num_ra_preambles = 52; + preamble_init_rx_target_pwr = -104; + pwr_ramping_step = 6; // in dB + preamble_trans_max = 10; + ra_resp_win_size = 10; // in ms + mac_con_res_timer = 64; // in ms + max_harq_msg3_tx = 4; + }; + bcch_cnfg = + { + modification_period_coeff = 16; // in ms + }; + pcch_cnfg = + { + default_paging_cycle = 32; // in rf + nB = "1"; + }; + prach_cnfg = + { + root_sequence_index = 128; + prach_cnfg_info = + { + high_speed_flag = false; + prach_config_index = 3; + prach_freq_offset = 4; + zero_correlation_zone_config = 5; + }; + }; + pdsch_cnfg = + { + /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1 + */ + p_b = 1; + rs_power = 0; + }; + pusch_cnfg = + { + n_sb = 1; + hopping_mode = "inter-subframe"; + pusch_hopping_offset = 2; + enable_64_qam = false; // 64QAM PUSCH is not currently enabled + ul_rs = + { + cyclic_shift = 0; + group_assignment_pusch = 0; + group_hopping_enabled = false; + sequence_hopping_enabled = false; + }; + }; + pucch_cnfg = + { + delta_pucch_shift = 1; + n_rb_cqi = 1; + n_cs_an = 0; + n1_pucch_an = 12; + }; + ul_pwr_ctrl = + { + p0_nominal_pusch = -85; + alpha = 0.7; + p0_nominal_pucch = -107; + delta_flist_pucch = + { + format_1 = 0; + format_1b = 3; + format_2 = 1; + format_2a = 2; + format_2b = 2; + }; + delta_preamble_msg3 = 6; + }; + ul_cp_length = "len1"; + }; + + ue_timers_and_constants = + { + t300 = 2000; // in ms + t301 = 100; // in ms + t310 = 200; // in ms + n310 = 1; + t311 = 10000; // in ms + n311 = 1; + }; + + freqInfo = + { + ul_carrier_freq_present = true; + ul_bw_present = true; + additional_spectrum_emission = 1; + }; + + time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. +}; + +sib3 = +{ + cell_reselection_common = { + q_hyst = 2; // in dB + }, + cell_reselection_serving = { + s_non_intra_search = 3, + thresh_serving_low = 2, + cell_resel_prio = 6 + }, + intra_freq_reselection = { + q_rx_lev_min = -61, + p_max = 23, + s_intra_search = 5, + presence_ant_port_1 = true, + neigh_cell_cnfg = 1, + t_resel_eutra = 1 + } +}; + +##################################################################### +# sib5 configuration options (See TS 36.331) +# Contains information relevant for inter-frequency cell re-selection. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# inter_freq_carrier_freq_list: A list of neighbouring inter-frequencies. +# dl_carrier_freq: The EARFCN for the EUTRA carrier frequency. +# q_rx_lev_min: Minimum received RSRP level in the E-UTRA cell, ([field_val] * 2) = [level in dBm]. +# p_max: Optional maximum allowed transmission power for the neighbouring E-UTRA cells on this carrier frequency. +# t_resel_eutra: Cell reselection timer (seconds). +# t_resel_eutra_sf: Optional speed dependent ScalingFactor for t_resel_eutra. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency. +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency. +# allowed_meas_bw: Maximum allowed measurement bandwidth on a carrier frequency . +# presence_ant_port_1: whether all the neighbouring cells use Antenna Port 1. +# cell_resel_prio: Optional absolute priority of the carrier frequency group. +# neigh_cell_cfg: Information related to MBSFN and TDD UL/DL configuration of neighbour cells. +# q_offset_freq: Frequency specific offset for equal priority E-UTRAN frequencies. +# inter_freq_neigh_cell_list: A List of inter-frequency neighbouring cells with specific cell re-selection parameters. +# phys_cell_id: Physical layer identity of the cell. +# q_offset_cell: Cell spcific offset. +# inter_freq_black_cell_list: A List of blacklisted inter-frequency neighbouring cells. +# start: The lowest physical cell identity in the range. +# range: The number of physical cell identities in the range. +# +##################################################################### +sib5 = +{ + inter_freq_carrier_freq_list = + ( + { + dl_carrier_freq = 1450; + q_rx_lev_min = -70; + t_resel_eutra = 2; + t_resel_eutra_sf = { + sf_medium = "0.25"; + sf_high = "1.0"; + }; + thresh_x_high = 3; + thresh_x_low = 2; + allowed_meas_bw = 75; + presence_ant_port_1 = True; + cell_resel_prio = 4; + neigh_cell_cfg = 2; + q_offset_freq = -6; + inter_freq_neigh_cell_list = + ( + { + phys_cell_id = 500; + q_offset_cell = 2; + } + ); + inter_freq_black_cell_list = + ( + { + start = 123; + range = 4; + } + ); + } + ); +}; + +##################################################################### +# sib6 configuration options (See TS 36.331) +# Contains UTRA neighbor information for inter-rat handover. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# t_resel_utra: Cell reselection timer (seconds) +# t_resel_utra_sf: Optional speed dependent ScalingFactor for t_resel_utra. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# carrier_freq_list_utra_fdd / carrier_freq_list_utra_tdd: A list of carrier frequencies of UTRA FDD / TDD. +# carrier_freq: The UARFCN for the UTRA carrier frequency. +# cell_resel_prio: Optional absolute priority of the carrier frequency group. +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency. +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency. +# q_rx_lev_min: Minimum receive level in UTRA cell, ([field_val] * 2) + 1 = [level in dBm]. +# p_max_utra: The maximum allowed transmission power on the (uplink) carrier frequency. +# q_qual_min: Minimum required quality leve in UTRA cell, applicable only for FDD cells. +# +##################################################################### +sib6 = +{ + t_resel_utra = 1; + t_resel_utra_sf = { + sf_medium = "0.25"; + sf_high = "1.0"; + } + carrier_freq_list_utra_fdd = + ( + { + carrier_freq = 9613; + cell_resel_prio = 6; + thresh_x_high = 3; + thresh_x_low = 2; + q_rx_lev_min = -50; + p_max_utra = 4; + q_qual_min = -10; + } + ); + carrier_freq_list_utra_tdd = + ( + { + carrier_freq = 9505; + thresh_x_high = 1; + thresh_x_low = 2; + q_rx_lev_min = -50; + p_max_utra = -3; + } + ); +}; + +##################################################################### +# sib7 configuration options (See TS 36.331) +# Contains GERAN neighbor information for CSFB and inter-rat handover. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# t_resel_geran: Cell reselection timer (seconds) +# t_resel_geran_sf: Optional speed dependent ScalingFactor for t_resel_geran. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# carrier_freqs_info_list: A list of carrier frequency groups. +# cell_resel_prio: Absolute priority of the carrier frequency group +# ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring +# q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm] +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency +# start_arfcn: Initial search ARFCN value +# band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs. +# explicit_list_of_arfcns: List of ARFCN numbers in the group +# +##################################################################### +sib7 = +{ + t_resel_geran = 1; + carrier_freqs_info_list = + ( + { + cell_resel_prio = 0; + ncc_permitted = 255; + q_rx_lev_min = 0; + thresh_x_high = 2; + thresh_x_low = 2; + + start_arfcn = 871; + band_ind = "dcs1800"; + explicit_list_of_arfcns = ( + 871 + ); + } + ); +}; diff --git a/srslte/sib_gnb_zmq.conf b/srslte/sib_gnb_zmq.conf new file mode 100644 index 0000000..c38cdbe --- /dev/null +++ b/srslte/sib_gnb_zmq.conf @@ -0,0 +1,294 @@ +sib1 = +{ + intra_freq_reselection = "Allowed"; + q_rx_lev_min = -65; + //p_max = 3; + cell_barred = "NotBarred" + si_window_length = 20; + sched_info = + ( + { + si_periodicity = 16; + + // comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2 + si_mapping_info = [ 3 ]; + } + ); + system_info_value_tag = 0; +}; + +sib2 = +{ + rr_config_common_sib = + { + rach_cnfg = + { + num_ra_preambles = 52; + preamble_init_rx_target_pwr = -104; + pwr_ramping_step = 6; // in dB + preamble_trans_max = 10; + ra_resp_win_size = 10; // in ms + mac_con_res_timer = 64; // in ms + max_harq_msg3_tx = 4; + }; + bcch_cnfg = + { + modification_period_coeff = 16; // in ms + }; + pcch_cnfg = + { + default_paging_cycle = 32; // in rf + nB = "1"; + }; + prach_cnfg = + { + root_sequence_index = 128; + prach_cnfg_info = + { + high_speed_flag = false; + prach_config_index = 3; + prach_freq_offset = 4; + zero_correlation_zone_config = 5; + }; + }; + pdsch_cnfg = + { + /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1 + */ + p_b = 1; + rs_power = 0; + }; + pusch_cnfg = + { + n_sb = 1; + hopping_mode = "inter-subframe"; + pusch_hopping_offset = 2; + enable_64_qam = false; // 64QAM PUSCH is not currently enabled + ul_rs = + { + cyclic_shift = 0; + group_assignment_pusch = 0; + group_hopping_enabled = false; + sequence_hopping_enabled = false; + }; + }; + pucch_cnfg = + { + delta_pucch_shift = 1; + n_rb_cqi = 1; + n_cs_an = 0; + n1_pucch_an = 12; + }; + ul_pwr_ctrl = + { + p0_nominal_pusch = -85; + alpha = 0.7; + p0_nominal_pucch = -107; + delta_flist_pucch = + { + format_1 = 0; + format_1b = 3; + format_2 = 1; + format_2a = 2; + format_2b = 2; + }; + delta_preamble_msg3 = 6; + }; + ul_cp_length = "len1"; + }; + + ue_timers_and_constants = + { + t300 = 2000; // in ms + t301 = 100; // in ms + t310 = 200; // in ms + n310 = 1; + t311 = 10000; // in ms + n311 = 1; + }; + + freqInfo = + { + ul_carrier_freq_present = true; + ul_bw_present = true; + additional_spectrum_emission = 1; + }; + + time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. +}; + +sib3 = +{ + cell_reselection_common = { + q_hyst = 2; // in dB + }, + cell_reselection_serving = { + s_non_intra_search = 3, + thresh_serving_low = 2, + cell_resel_prio = 6 + }, + intra_freq_reselection = { + q_rx_lev_min = -61, + p_max = 23, + s_intra_search = 5, + presence_ant_port_1 = true, + neigh_cell_cnfg = 1, + t_resel_eutra = 1 + } +}; + +##################################################################### +# sib5 configuration options (See TS 36.331) +# Contains information relevant for inter-frequency cell re-selection. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# inter_freq_carrier_freq_list: A list of neighbouring inter-frequencies. +# dl_carrier_freq: The EARFCN for the EUTRA carrier frequency. +# q_rx_lev_min: Minimum received RSRP level in the E-UTRA cell, ([field_val] * 2) = [level in dBm]. +# p_max: Optional maximum allowed transmission power for the neighbouring E-UTRA cells on this carrier frequency. +# t_resel_eutra: Cell reselection timer (seconds). +# t_resel_eutra_sf: Optional speed dependent ScalingFactor for t_resel_eutra. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency. +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency. +# allowed_meas_bw: Maximum allowed measurement bandwidth on a carrier frequency . +# presence_ant_port_1: whether all the neighbouring cells use Antenna Port 1. +# cell_resel_prio: Optional absolute priority of the carrier frequency group. +# neigh_cell_cfg: Information related to MBSFN and TDD UL/DL configuration of neighbour cells. +# q_offset_freq: Frequency specific offset for equal priority E-UTRAN frequencies. +# inter_freq_neigh_cell_list: A List of inter-frequency neighbouring cells with specific cell re-selection parameters. +# phys_cell_id: Physical layer identity of the cell. +# q_offset_cell: Cell spcific offset. +# inter_freq_black_cell_list: A List of blacklisted inter-frequency neighbouring cells. +# start: The lowest physical cell identity in the range. +# range: The number of physical cell identities in the range. +# +##################################################################### +sib5 = +{ + inter_freq_carrier_freq_list = + ( + { + dl_carrier_freq = 1450; + q_rx_lev_min = -70; + t_resel_eutra = 2; + t_resel_eutra_sf = { + sf_medium = "0.25"; + sf_high = "1.0"; + }; + thresh_x_high = 3; + thresh_x_low = 2; + allowed_meas_bw = 75; + presence_ant_port_1 = True; + cell_resel_prio = 4; + neigh_cell_cfg = 2; + q_offset_freq = -6; + inter_freq_neigh_cell_list = + ( + { + phys_cell_id = 500; + q_offset_cell = 2; + } + ); + inter_freq_black_cell_list = + ( + { + start = 123; + range = 4; + } + ); + } + ); +}; + +##################################################################### +# sib6 configuration options (See TS 36.331) +# Contains UTRA neighbor information for inter-rat handover. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# t_resel_utra: Cell reselection timer (seconds) +# t_resel_utra_sf: Optional speed dependent ScalingFactor for t_resel_utra. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# carrier_freq_list_utra_fdd / carrier_freq_list_utra_tdd: A list of carrier frequencies of UTRA FDD / TDD. +# carrier_freq: The UARFCN for the UTRA carrier frequency. +# cell_resel_prio: Optional absolute priority of the carrier frequency group. +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency. +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency. +# q_rx_lev_min: Minimum receive level in UTRA cell, ([field_val] * 2) + 1 = [level in dBm]. +# p_max_utra: The maximum allowed transmission power on the (uplink) carrier frequency. +# q_qual_min: Minimum required quality leve in UTRA cell, applicable only for FDD cells. +# +##################################################################### +sib6 = +{ + t_resel_utra = 1; + t_resel_utra_sf = { + sf_medium = "0.25"; + sf_high = "1.0"; + } + carrier_freq_list_utra_fdd = + ( + { + carrier_freq = 9613; + cell_resel_prio = 6; + thresh_x_high = 3; + thresh_x_low = 2; + q_rx_lev_min = -50; + p_max_utra = 4; + q_qual_min = -10; + } + ); + carrier_freq_list_utra_tdd = + ( + { + carrier_freq = 9505; + thresh_x_high = 1; + thresh_x_low = 2; + q_rx_lev_min = -50; + p_max_utra = -3; + } + ); +}; + +##################################################################### +# sib7 configuration options (See TS 36.331) +# Contains GERAN neighbor information for CSFB and inter-rat handover. +# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted +# +# t_resel_geran: Cell reselection timer (seconds) +# t_resel_geran_sf: Optional speed dependent ScalingFactor for t_resel_geran. +# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0". +# carrier_freqs_info_list: A list of carrier frequency groups. +# cell_resel_prio: Absolute priority of the carrier frequency group +# ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring +# q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm] +# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency +# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency +# start_arfcn: Initial search ARFCN value +# band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs. +# explicit_list_of_arfcns: List of ARFCN numbers in the group +# +##################################################################### +sib7 = +{ + t_resel_geran = 1; + carrier_freqs_info_list = + ( + { + cell_resel_prio = 0; + ncc_permitted = 255; + q_rx_lev_min = 0; + thresh_x_high = 2; + thresh_x_low = 2; + + start_arfcn = 871; + band_ind = "dcs1800"; + explicit_list_of_arfcns = ( + 871 + ); + } + ); +}; diff --git a/srslte/srslte_init.sh b/srslte/srslte_init.sh index b4f994c..abb8aec 100755 --- a/srslte/srslte_init.sh +++ b/srslte/srslte_init.sh @@ -30,37 +30,37 @@ export IP_ADDR=$(awk 'END{print $1}' /etc/hosts) mkdir -p /etc/srsran -cp /mnt/srslte/rb.conf /etc/srsran -cp /mnt/srslte/sib.conf /etc/srsran +cp /mnt/srslte/rb_${COMPONENT_NAME}.conf /etc/srsran/rb.conf +cp /mnt/srslte/sib_${COMPONENT_NAME}.conf /etc/srsran/sib.conf if [[ -z "$COMPONENT_NAME" ]]; then echo "Error: COMPONENT_NAME environment variable not set"; exit 1; -elif [[ "$COMPONENT_NAME" =~ ^(gnb$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(gnb[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/rr_gnb.conf /etc/srsran/rr.conf - cp /mnt/srslte/enb.conf /etc/srsran + cp /mnt/srslte/rr_${COMPONENT_NAME}.conf /etc/srsran/rr.conf + cp /mnt/srslte/${COMPONENT_NAME}.conf /etc/srsran/enb.conf sed -i 's|MME_IP|'$AMF_IP'|g' /etc/srsran/enb.conf -elif [[ "$COMPONENT_NAME" =~ ^(enb$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(enb[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/rr.conf /etc/srsran - cp /mnt/srslte/enb.conf /etc/srsran + cp /mnt/srslte/rr_${COMPONENT_NAME}.conf /etc/srsran/rr.conf + cp /mnt/srslte/${COMPONENT_NAME}.conf /etc/srsran/enb.conf sed -i 's|MME_IP|'$MME_IP'|g' /etc/srsran/enb.conf -elif [[ "$COMPONENT_NAME" =~ ^(enb_zmq$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(enb_zmq[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/rr.conf /etc/srsran - cp /mnt/srslte/enb_zmq.conf /etc/srsran/enb.conf + cp /mnt/srslte/rr_${COMPONENT_NAME}.conf /etc/srsran/rr.conf + cp /mnt/srslte/${COMPONENT_NAME}.conf /etc/srsran/enb.conf sed -i 's|MME_IP|'$MME_IP'|g' /etc/srsran/enb.conf -elif [[ "$COMPONENT_NAME" =~ ^(gnb_zmq$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(gnb_zmq[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/rr_gnb_zmq.conf /etc/srsran/rr.conf - cp /mnt/srslte/gnb_zmq.conf /etc/srsran/enb.conf + cp /mnt/srslte/rr_${COMPONENT_NAME}.conf /etc/srsran/rr.conf + cp /mnt/srslte/${COMPONENT_NAME}.conf /etc/srsran/enb.conf sed -i 's|MME_IP|'$AMF_IP'|g' /etc/srsran/enb.conf -elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/ue_zmq.conf /etc/srsran/ue.conf -elif [[ "$COMPONENT_NAME" =~ ^(ue_5g_zmq$) ]]; then + cp /mnt/srslte/${COMPONENT_NAME}.conf /etc/srsran/ue.conf +elif [[ "$COMPONENT_NAME" =~ ^(ue_5g_zmq[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/ue_5g_zmq.conf /etc/srsran/ue.conf + cp /mnt/srslte/${COMPONENT_NAME}.conf /etc/srsran/ue.conf else echo "Error: Invalid component name: '$COMPONENT_NAME'" fi @@ -81,10 +81,10 @@ service dbus start && service avahi-daemon start if [[ -z "$COMPONENT_NAME" ]]; then echo "Error: COMPONENT_NAME environment variable not set"; exit 1; -elif [[ "$COMPONENT_NAME" =~ ^(gnb$) || "$COMPONENT_NAME" =~ ^(enb$) || "$COMPONENT_NAME" =~ ^(enb_zmq$) || "$COMPONENT_NAME" =~ ^(gnb_zmq$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(gnb[[:digit:]]*$) || "$COMPONENT_NAME" =~ ^(enb[[:digit:]]*$) || "$COMPONENT_NAME" =~ ^(enb_zmq[[:digit:]]*$) || "$COMPONENT_NAME" =~ ^(gnb_zmq[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" /usr/local/bin/srsenb -elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq$) || "$COMPONENT_NAME" =~ ^(ue_5g_zmq$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq[[:digit:]]*$) || "$COMPONENT_NAME" =~ ^(ue_5g_zmq[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" /usr/local/bin/srsue else diff --git a/srsran/srsran_init.sh b/srsran/srsran_init.sh index 11db21a..e607dd0 100755 --- a/srsran/srsran_init.sh +++ b/srsran/srsran_init.sh @@ -32,12 +32,12 @@ mkdir -p /etc/srsran if [[ -z "$COMPONENT_NAME" ]]; then echo "Error: COMPONENT_NAME environment variable not set"; exit 1; -elif [[ "$COMPONENT_NAME" =~ ^(gnb$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(gnb[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srsran/gnb.yml /etc/srsran/gnb.yml -elif [[ "$COMPONENT_NAME" =~ ^(gnb_zmq$) ]]; then + cp /mnt/srsran/${COMPONENT_NAME}.yml /etc/srsran/gnb.yml +elif [[ "$COMPONENT_NAME" =~ ^(gnb_zmq[[:digit:]]*$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srsran/gnb_zmq.yml /etc/srsran/gnb.yml + cp /mnt/srsran/${COMPONENT_NAME}.yml /etc/srsran/gnb.yml else echo "Error: Invalid component name: '$COMPONENT_NAME'" fi diff --git a/ueransim/open5gs-gnb.yaml b/ueransim/ueransim-gnb.yaml similarity index 100% rename from ueransim/open5gs-gnb.yaml rename to ueransim/ueransim-gnb.yaml diff --git a/ueransim/open5gs_gnb_init.sh b/ueransim/ueransim-gnb_init.sh similarity index 81% rename from ueransim/open5gs_gnb_init.sh rename to ueransim/ueransim-gnb_init.sh index 1c6997b..227a83f 100755 --- a/ueransim/open5gs_gnb_init.sh +++ b/ueransim/ueransim-gnb_init.sh @@ -28,12 +28,12 @@ export IP_ADDR=$(awk 'END{print $1}' /etc/hosts) -cp /mnt/ueransim/open5gs-gnb.yaml /UERANSIM/config/open5gs-gnb.yaml +cp /mnt/ueransim/${COMPONENT_NAME}.yaml /UERANSIM/config/${COMPONENT_NAME}.yaml -sed -i 's|MNC|'$MNC'|g' /UERANSIM/config/open5gs-gnb.yaml -sed -i 's|MCC|'$MCC'|g' /UERANSIM/config/open5gs-gnb.yaml -sed -i 's|NR_GNB_IP|'$NR_GNB_IP'|g' /UERANSIM/config/open5gs-gnb.yaml -sed -i 's|AMF_IP|'$AMF_IP'|g' /UERANSIM/config/open5gs-gnb.yaml +sed -i 's|MNC|'$MNC'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|MCC|'$MCC'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|NR_GNB_IP|'$NR_GNB_IP'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|AMF_IP|'$AMF_IP'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml # Sync docker time #ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/ueransim/open5gs-ue.yaml b/ueransim/ueransim-ue.yaml similarity index 100% rename from ueransim/open5gs-ue.yaml rename to ueransim/ueransim-ue.yaml diff --git a/ueransim/open5gs_ue_init.sh b/ueransim/ueransim-ue_init.sh similarity index 67% rename from ueransim/open5gs_ue_init.sh rename to ueransim/ueransim-ue_init.sh index 5fddb99..a11ecca 100755 --- a/ueransim/open5gs_ue_init.sh +++ b/ueransim/ueransim-ue_init.sh @@ -28,17 +28,17 @@ export IP_ADDR=$(awk 'END{print $1}' /etc/hosts) -cp /mnt/ueransim/open5gs-ue.yaml /UERANSIM/config/open5gs-ue.yaml -sed -i 's|MNC|'$MNC'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|MCC|'$MCC'|g' /UERANSIM/config/open5gs-ue.yaml +cp /mnt/ueransim/${COMPONENT_NAME}.yaml /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|MNC|'$MNC'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|MCC|'$MCC'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml -sed -i 's|UE1_KI|'$UE1_KI'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|UE1_OP|'$UE1_OP'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|UE1_AMF|'$UE1_AMF'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|UE1_IMEISV|'$UE1_IMEISV'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|UE1_IMEI|'$UE1_IMEI'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|UE1_IMSI|'$UE1_IMSI'|g' /UERANSIM/config/open5gs-ue.yaml -sed -i 's|NR_GNB_IP|'$NR_GNB_IP'|g' /UERANSIM/config/open5gs-ue.yaml +sed -i 's|UE1_KI|'$UE1_KI'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|UE1_OP|'$UE1_OP'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|UE1_AMF|'$UE1_AMF'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|UE1_IMEISV|'$UE1_IMEISV'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|UE1_IMEI|'$UE1_IMEI'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|UE1_IMSI|'$UE1_IMSI'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml +sed -i 's|NR_GNB_IP|'$NR_GNB_IP'|g' /UERANSIM/config/${COMPONENT_NAME}.yaml # Sync docker time #ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/ueransim/ueransim_image_init.sh b/ueransim/ueransim_image_init.sh index 50b54b6..7c65e32 100755 --- a/ueransim/ueransim_image_init.sh +++ b/ueransim/ueransim_image_init.sh @@ -28,15 +28,15 @@ if [[ -z "$COMPONENT_NAME" ]]; then echo "Error: COMPONENT_NAME environment variable not set"; exit 1; -elif [[ "$COMPONENT_NAME" =~ ^(ueransim-gnb-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(ueransim-gnb[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/ueransim/open5gs_gnb_init.sh && \ - ./nr-gnb -c ../config/open5gs-gnb.yaml & \ + /mnt/ueransim/${COMPONENT_NAME}_init.sh && \ + ./nr-gnb -c ../config/${COMPONENT_NAME}.yaml & \ bash -elif [[ "$COMPONENT_NAME" =~ ^(ueransim-ue-[[:digit:]]+$) ]]; then +elif [[ "$COMPONENT_NAME" =~ ^(ueransim-ue[[:digit:]]*$) ]]; then echo "Deploying component: '$COMPONENT_NAME'" - /mnt/ueransim/open5gs_ue_init.sh && \ - ./nr-ue -c ../config/open5gs-ue.yaml & \ + /mnt/ueransim/${COMPONENT_NAME}_init.sh && \ + ./nr-ue -c ../config/${COMPONENT_NAME}.yaml & \ bash else echo "Error: Invalid component name: '$COMPONENT_NAME'"