diff --git a/charts/physims/charts/dlsim.100rb+tm2/templates/job.yaml b/charts/physims/charts/dlsim.100rb+tm2/templates/job.yaml index d42742ffb8..fdd12deb8f 100644 --- a/charts/physims/charts/dlsim.100rb+tm2/templates/job.yaml +++ b/charts/physims/charts/dlsim.100rb+tm2/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.dlsim100rbtm2}} + nodeName: {{ .Values.global.nodeName.dlsim100rbtm2 }} + {{- end }} diff --git a/charts/physims/charts/dlsim.basic/templates/job.yaml b/charts/physims/charts/dlsim.basic/templates/job.yaml index 35e386b890..3c6d726217 100644 --- a/charts/physims/charts/dlsim.basic/templates/job.yaml +++ b/charts/physims/charts/dlsim.basic/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.dlsimbasic}} + nodeName: {{ .Values.global.nodeName.dlsimbasic }} + {{- end }} diff --git a/charts/physims/charts/ldpctest/templates/job.yaml b/charts/physims/charts/ldpctest/templates/job.yaml index 097c021626..8a1060599f 100644 --- a/charts/physims/charts/ldpctest/templates/job.yaml +++ b/charts/physims/charts/ldpctest/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.ldpctest}} + nodeName: {{ .Values.global.nodeName.ldpctest }} + {{- end }} diff --git a/charts/physims/charts/nr-dlschsim/templates/job.yaml b/charts/physims/charts/nr-dlschsim/templates/job.yaml index c696eb906c..e6d3b79f4a 100644 --- a/charts/physims/charts/nr-dlschsim/templates/job.yaml +++ b/charts/physims/charts/nr-dlschsim/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrdlschsim}} + nodeName: {{ .Values.global.nodeName.nrdlschsim }} + {{- end }} diff --git a/charts/physims/charts/nr-dlsim.basic/templates/job.yaml b/charts/physims/charts/nr-dlsim.basic/templates/job.yaml index 46dbbff0fa..2bf2a337c2 100644 --- a/charts/physims/charts/nr-dlsim.basic/templates/job.yaml +++ b/charts/physims/charts/nr-dlsim.basic/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrdlsimbasic}} + nodeName: {{ .Values.global.nodeName.nrdlsimbasic }} + {{- end }} diff --git a/charts/physims/charts/nr-dlsim.dmrs+ptrs/templates/job.yaml b/charts/physims/charts/nr-dlsim.dmrs+ptrs/templates/job.yaml index e319ae7b53..bbf2ff30de 100644 --- a/charts/physims/charts/nr-dlsim.dmrs+ptrs/templates/job.yaml +++ b/charts/physims/charts/nr-dlsim.dmrs+ptrs/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrdlsimdmrsptrs}} + nodeName: {{ .Values.global.nodeName.nrdlsimdmrsptrs }} + {{- end }} diff --git a/charts/physims/charts/nr-dlsim.mcs+mimo/templates/job.yaml b/charts/physims/charts/nr-dlsim.mcs+mimo/templates/job.yaml index 0649dc67b3..55a0345da6 100644 --- a/charts/physims/charts/nr-dlsim.mcs+mimo/templates/job.yaml +++ b/charts/physims/charts/nr-dlsim.mcs+mimo/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrdlsimmcsmimo}} + nodeName: {{ .Values.global.nodeName.nrdlsimmcsmimo }} + {{- end }} diff --git a/charts/physims/charts/nr-dlsim.offset/templates/job.yaml b/charts/physims/charts/nr-dlsim.offset/templates/job.yaml index 5a88c43ec2..6dd3efb4cf 100644 --- a/charts/physims/charts/nr-dlsim.offset/templates/job.yaml +++ b/charts/physims/charts/nr-dlsim.offset/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrdlsimoffset}} + nodeName: {{ .Values.global.nodeName.nrdlsimoffset }} + {{- end }} diff --git a/charts/physims/charts/nr-pbchsim.106rb/templates/job.yaml b/charts/physims/charts/nr-pbchsim.106rb/templates/job.yaml index 1af0be82e5..44b795c764 100644 --- a/charts/physims/charts/nr-pbchsim.106rb/templates/job.yaml +++ b/charts/physims/charts/nr-pbchsim.106rb/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrpbschsim106rb}} + nodeName: {{ .Values.global.nodeName.nrpbschsim106rb }} + {{- end }} diff --git a/charts/physims/charts/nr-pbchsim.217rb/templates/job.yaml b/charts/physims/charts/nr-pbchsim.217rb/templates/job.yaml index cad15d1491..bc5eef2db0 100644 --- a/charts/physims/charts/nr-pbchsim.217rb/templates/job.yaml +++ b/charts/physims/charts/nr-pbchsim.217rb/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrpbchsim217rb}} + nodeName: {{ .Values.global.nodeName.nrpbchsim217rb }} + {{- end }} diff --git a/charts/physims/charts/nr-pbchsim.273rb/templates/job.yaml b/charts/physims/charts/nr-pbchsim.273rb/templates/job.yaml index 65be9e4caa..a1c2afaa27 100644 --- a/charts/physims/charts/nr-pbchsim.273rb/templates/job.yaml +++ b/charts/physims/charts/nr-pbchsim.273rb/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrpbchsim273rb}} + nodeName: {{ .Values.global.nodeName.nrpbchsim273rb }} + {{- end }} diff --git a/charts/physims/charts/nr-prachsim/templates/job.yaml b/charts/physims/charts/nr-prachsim/templates/job.yaml index 872729550a..fa9b8952a0 100644 --- a/charts/physims/charts/nr-prachsim/templates/job.yaml +++ b/charts/physims/charts/nr-prachsim/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrprachsim}} + nodeName: {{ .Values.global.nodeName.nrprachsim }} + {{- end }} diff --git a/charts/physims/charts/nr-pucchsim/templates/job.yaml b/charts/physims/charts/nr-pucchsim/templates/job.yaml index a845215eeb..21f5e9a36a 100644 --- a/charts/physims/charts/nr-pucchsim/templates/job.yaml +++ b/charts/physims/charts/nr-pucchsim/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrpucchsim}} + nodeName: {{ .Values.global.nodeName.nrpucchsim }} + {{- end }} diff --git a/charts/physims/charts/nr-ulschsim/templates/job.yaml b/charts/physims/charts/nr-ulschsim/templates/job.yaml index 2916f0fc12..57d19d41c6 100644 --- a/charts/physims/charts/nr-ulschsim/templates/job.yaml +++ b/charts/physims/charts/nr-ulschsim/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrulschsim}} + nodeName: {{ .Values.global.nodeName.nrulschsim }} + {{- end }} diff --git a/charts/physims/charts/nr-ulsim.3gpp/templates/job.yaml b/charts/physims/charts/nr-ulsim.3gpp/templates/job.yaml index 2f8a445589..a0cf170d8d 100644 --- a/charts/physims/charts/nr-ulsim.3gpp/templates/job.yaml +++ b/charts/physims/charts/nr-ulsim.3gpp/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrulsim3gpp}} + nodeName: {{ .Values.global.nodeName.nrulsim3gpp }} + {{- end }} diff --git a/charts/physims/charts/nr-ulsim.mimo/templates/job.yaml b/charts/physims/charts/nr-ulsim.mimo/templates/job.yaml index d385551fcb..e37691a938 100644 --- a/charts/physims/charts/nr-ulsim.mimo/templates/job.yaml +++ b/charts/physims/charts/nr-ulsim.mimo/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrulsimmimo}} + nodeName: {{ .Values.global.nodeName.nrulsimmimo }} + {{- end }} diff --git a/charts/physims/charts/nr-ulsim.misc/templates/job.yaml b/charts/physims/charts/nr-ulsim.misc/templates/job.yaml index 492baab464..ec59b4a3b3 100644 --- a/charts/physims/charts/nr-ulsim.misc/templates/job.yaml +++ b/charts/physims/charts/nr-ulsim.misc/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrulsimmisc}} + nodeName: {{ .Values.global.nodeName.nrulsimmisc }} + {{- end }} diff --git a/charts/physims/charts/nr-ulsim.sc-fdma/templates/job.yaml b/charts/physims/charts/nr-ulsim.sc-fdma/templates/job.yaml index 8283c65f5e..d3b84cb369 100644 --- a/charts/physims/charts/nr-ulsim.sc-fdma/templates/job.yaml +++ b/charts/physims/charts/nr-ulsim.sc-fdma/templates/job.yaml @@ -35,5 +35,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.nrulsimscfdma}} + nodeName: {{ .Values.global.nodeName.nrulsimscfdma }} + {{- end }} diff --git a/charts/physims/charts/polartest/templates/job.yaml b/charts/physims/charts/polartest/templates/job.yaml index 61e82957ce..1b1d7d608e 100644 --- a/charts/physims/charts/polartest/templates/job.yaml +++ b/charts/physims/charts/polartest/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.polartest}} + nodeName: {{ .Values.global.nodeName.polartest }} + {{- end }} diff --git a/charts/physims/charts/smallblocktest/templates/job.yaml b/charts/physims/charts/smallblocktest/templates/job.yaml index f034db3e69..70d9bd653f 100644 --- a/charts/physims/charts/smallblocktest/templates/job.yaml +++ b/charts/physims/charts/smallblocktest/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.smallblocktest}} + nodeName: {{ .Values.global.nodeName.smallblocktest }} + {{- end }} diff --git a/charts/physims/charts/ulsim/templates/job.yaml b/charts/physims/charts/ulsim/templates/job.yaml index d61d793c3b..1ce4cf21f4 100644 --- a/charts/physims/charts/ulsim/templates/job.yaml +++ b/charts/physims/charts/ulsim/templates/job.yaml @@ -33,5 +33,10 @@ spec: schedulerName: default-scheduler serviceAccountName: {{ .Values.global.serviceAccountName }} terminationGracePeriodSeconds: 30 + {{- if .Values.global.nodeSelector}} nodeSelector: - {{- toYaml .Values.global.nodeSelector | nindent 12 }} \ No newline at end of file + {{- toYaml .Values.global.nodeSelector | nindent 12 }} + {{- end }} + {{- if .Values.global.nodeName.ulsim}} + nodeName: {{ .Values.global.nodeName.ulsim }} + {{- end }} diff --git a/charts/physims/values.yaml b/charts/physims/values.yaml index 462f8ff59b..bac4ed3eb5 100644 --- a/charts/physims/values.yaml +++ b/charts/physims/values.yaml @@ -11,6 +11,29 @@ global: version: TAG # pullPolicy: IfNotPresent or Never or Always pullPolicy: Always - nodeSelector: - worker: "telco" - + # removing the node selector + nodeSelector: {} + # It is not a good way of assigning pods to the nodes: this way we bypass the scheduler. At the moment we don't provide the resource information of these pods. + # Therefore, Openshift assigns the pods to the same node because it thinks the pods don't consume much resources. This isn't the case, they consume a lot of resources. + nodeName: + dlsim100rbtm2: acamas + dlsimbasic: acamas + ldpctest: acamas + nrdlschsim: acamas + nrdlsimbasic: acamas + nrdlsimdmrsptrs: acamas + nrdlsimmcsmimo: acamas + nrdlsimoffset: dedale + nrpbschsim106rb: dedale + nrpbchsim217rb: dedale + nrpbchsim273rb: dedale + nrprachsim: dedale + nrpucchsim: dedale + nrulschsim: theseus + nrulsim3gpp: theseus + nrulsimmimo: theseus + nrulsimmisc: theseus + nrulsimscfdma: theseus + polartest: theseus + smallblocktest: theseus + ulsim: theseus diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh index 05b74349e1..4df0d22e09 100755 --- a/ci-scripts/buildOnVM.sh +++ b/ci-scripts/buildOnVM.sh @@ -62,7 +62,7 @@ function build_on_vm { echo "ARCHIVES_LOC = $ARCHIVES_LOC" echo "BUILD_OPTIONS = $BUILD_OPTIONS" - if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-basic-sim"* ]] || [[ "$VM_NAME" == *"-flexran-rtc"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] + if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-basic-sim"* ]] || [[ "$VM_NAME" == *"-flexran-rtc"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] || [[ "$VM_NAME" == *"rf5g-sim"* ]] || [[ "$VM_NAME" == *"gnb-usrp"* ]] || [[ "$VM_NAME" == *"nr-ue-usrp"* ]] then echo "This VM type is no longer supported in the pipeline framework" return diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index ab621a7cd7..4540f2a8a0 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -153,11 +153,11 @@ def AnalyzeBuildLogs(buildRoot, images, globalStatus): def AnalyzeIperf(cliOptions, clientReport, serverReport): req_bw = 1.0 # default iperf throughput, in Mbps - result = re.search('-b *(?P[0-9\.]+)(?P[KMG])', cliOptions) + result = re.search('-b *(?P[0-9\.]+)(?P[kKMG])', cliOptions) if result is not None: req_bw = float(result.group('iperf_bandwidth')) magn = result.group('magnitude') - if magn == "K": + if magn == "k" or magn == "K": req_bw /= 1000 elif magn == "G": req_bw *= 1000 @@ -180,7 +180,7 @@ def AnalyzeIperf(cliOptions, clientReport, serverReport): reportLine = clientReportLines[l+1] logging.debug(f'found server report: "{reportLine}"') - statusTemplate = '(?:|\[ *\d+\].*) +0\.0-(?P[0-9\.]+) +sec +[0-9\.]+ [KMG]Bytes +(?P[0-9\.]+) (?P[KMG])bits\/sec +(?P[0-9\.]+) ms +(\d+\/ ..\d+) +(\((?P[0-9\.]+)%\))' + statusTemplate = '(?:|\[ *\d+\].*) +0\.0-\s*(?P[0-9\.]+) +sec +[0-9\.]+ [kKMG]Bytes +(?P[0-9\.]+) (?P[kKMG])bits\/sec +(?P[0-9\.]+) ms +(\d+\/ ..\d+) +(\((?P[0-9\.]+)%\))' # if we do not find a server report in the client logs, check the server logs # and use the last line which is typically close/identical to server report if reportLine is None: @@ -201,10 +201,10 @@ def AnalyzeIperf(cliOptions, clientReport, serverReport): duration = float(result.group('duration')) bitrate = float(result.group('bitrate')) magn = result.group('magnitude') - if magn == "K": - bitrate *= 1000 - elif magn == "G": # we assume bitrate in Mbps, therefore it must be G now + if magn == "k" or magn == "K": bitrate /= 1000 + elif magn == "G": # we assume bitrate in Mbps, therefore it must be G now + bitrate *= 1000 jitter = float(result.group('jitter')) packetloss = float(result.group('packetloss')) diff --git a/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf b/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf index 1defbf91ed..6419dedf43 100644 --- a/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf +++ b/ci-scripts/conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf @@ -166,7 +166,7 @@ gNBs = ////////// AMF parameters: - amf_ip_address = ( { ipv4 = "192.168.70.132"; + amf_ip_address = ( { ipv4 = "192.168.71.132"; ipv6 = "192:168:30::17"; active = "yes"; preference = "ipv4"; @@ -177,9 +177,9 @@ gNBs = NETWORK_INTERFACES : { GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai"; - GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129/24"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/24"; GNB_INTERFACE_NAME_FOR_NGU = "demo-oai"; - GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129/24"; + GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140/24"; GNB_PORT_FOR_S1U = 2152; # Spec 2152 }; diff --git a/ci-scripts/createVM.sh b/ci-scripts/createVM.sh index 8dc739f0ac..ec9b6169bd 100755 --- a/ci-scripts/createVM.sh +++ b/ci-scripts/createVM.sh @@ -87,7 +87,7 @@ function create_vm { echo "VM_CPU = $VM_CPU" echo "VM_DISK = $VM_DISK GBytes" - if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] + if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] || [[ "$VM_NAME" == *"rf5g-sim"* ]] then echo "This VM type is no longer supported in the pipeline framework" return diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh index a5994c6655..ad7e26be7c 100755 --- a/ci-scripts/runTestOnVM.sh +++ b/ci-scripts/runTestOnVM.sh @@ -1095,12 +1095,12 @@ function start_rf_sim_gnb { then if [ $LOC_RA_SA_TEST -eq 0 ] #no RA test => use --phy-test option then - echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor,time --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test --lowmem --noS1\" > ./my-nr-softmodem-run.sh " >> $1 + echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor,time --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test --noS1\" > ./my-nr-softmodem-run.sh " >> $1 elif [ $LOC_RA_SA_TEST -eq 1 ] #RA test => use --do-ra option then - echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor,time --parallel-config PARALLEL_SINGLE_THREAD --rfsim --do-ra --lowmem --noS1\" > ./my-nr-softmodem-run.sh " >> $1 + echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor,time --parallel-config PARALLEL_SINGLE_THREAD --rfsim --do-ra --noS1\" > ./my-nr-softmodem-run.sh " >> $1 else #SA test => use --sa option - echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor,time --parallel-config PARALLEL_SINGLE_THREAD --rfsim --sa --lowmem \" > ./my-nr-softmodem-run.sh " >> $1 + echo "echo \"./nr-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor,time --parallel-config PARALLEL_SINGLE_THREAD --rfsim --sa \" > ./my-nr-softmodem-run.sh " >> $1 fi fi echo "chmod 775 ./my-nr-softmodem-run.sh" >> $1 @@ -1305,14 +1305,8 @@ function run_test_on_vm { return elif [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf5g-sim.* )) ]] then - GNB_VM_NAME=`echo $VM_NAME | sed -e "s#rf5g-sim#gnb-usrp#"` - GNB_VM_CMDS=${GNB_VM_NAME}_cmds.txt - echo "GNB_VM_NAME = $GNB_VM_NAME" - echo "GNB_VM_CMD_FILE = $GNB_VM_CMDS" - NR_UE_VM_NAME=`echo $VM_NAME | sed -e "s#rf5g-sim#nr-ue-usrp#"` - NR_UE_VM_CMDS=${UE_VM_NAME}_cmds.txt - echo "NR_UE_VM_NAME = $NR_UE_VM_NAME" - echo "NR_UE_VM_CMD_FILE = $NR_UE_VM_CMDS" + echo "This VM test type is no longer supported in the pipeline framework" + return else echo "VM_NAME = $VM_NAME" echo "VM_CMD_FILE = $VM_CMDS" diff --git a/ci-scripts/waitBuildOnVM.sh b/ci-scripts/waitBuildOnVM.sh index bc67d0d6ac..8199215e2e 100755 --- a/ci-scripts/waitBuildOnVM.sh +++ b/ci-scripts/waitBuildOnVM.sh @@ -47,7 +47,7 @@ function wait_on_vm_build { echo "ARCHIVES_LOC = $ARCHIVES_LOC" echo "BUILD_OPTIONS = $BUILD_OPTIONS" - if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-basic-sim"* ]] || [[ "$VM_NAME" == *"-flexran-rtc"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] + if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-basic-sim"* ]] || [[ "$VM_NAME" == *"-flexran-rtc"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] || [[ "$VM_NAME" == *"rf5g-sim"* ]] || [[ "$VM_NAME" == *"gnb-usrp"* ]] || [[ "$VM_NAME" == *"nr-ue-usrp"* ]] then echo "This VM type is no longer supported in the pipeline framework" return @@ -93,7 +93,7 @@ function wait_on_vm_build { } function check_on_vm_build { - if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-basic-sim"* ]] || [[ "$VM_NAME" == *"-flexran-rtc"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] + if [[ "$VM_NAME" == *"-enb-usrp"* ]] || [[ "$VM_NAME" == *"-cppcheck"* ]] || [[ "$VM_NAME" == *"-phy-sim"* ]] || [[ "$VM_NAME" == *"-basic-sim"* ]] || [[ "$VM_NAME" == *"-flexran-rtc"* ]] || [[ "$VM_NAME" == *"-rf-sim"* ]] || [[ "$VM_NAME" == *"-ethernet"* ]] || [[ "$VM_NAME" == *"rf5g-sim"* ]] || [[ "$VM_NAME" == *"gnb-usrp"* ]] || [[ "$VM_NAME" == *"nr-ue-usrp"* ]] then echo "This VM type is no longer supported in the pipeline framework" return diff --git a/ci-scripts/xml_files/container_5g_rfsim.xml b/ci-scripts/xml_files/container_5g_rfsim.xml index b43265a8b4..86e5159264 100644 --- a/ci-scripts/xml_files/container_5g_rfsim.xml +++ b/ci-scripts/xml_files/container_5g_rfsim.xml @@ -22,7 +22,7 @@ --> rfsim-5gnr-tdd - Monolithic TDD gNB + Monolithic SA TDD gNB wrench 1 diff --git a/ci-scripts/xml_files/container_5g_rfsim_24prb.xml b/ci-scripts/xml_files/container_5g_rfsim_24prb.xml new file mode 100644 index 0000000000..fea7e03e5e --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_24prb.xml @@ -0,0 +1,124 @@ + + + rfsim-24prb-5gnr-tdd + Monolithic SA TDD gNB 24PRB + wrench + 1 + + 111111 + 100001 + 000000 + 000001 + 000002 + 000003 + 020001 + 020002 + 030001 + 030002 + 100001 + + + + + Pull_Local_Registry + Pull Images from Local Registry + 0 + oai-gnb oai-nr-ue + + + + DeployGenObject + Deploy MySql Database + yaml_files/5g_rfsimulator_24prb + mysql + 1 + + + + DeployGenObject + Deploy OAI 5G CoreNetwork + yaml_files/5g_rfsimulator_24prb + oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn + 6 + + + + DeployGenObject + Deploy OAI 5G gNB RF sim SA + yaml_files/5g_rfsimulator_24prb + oai-gnb + 7 + + + + DeployGenObject + Deploy OAI 5G NR-UE RF sim SA + yaml_files/5g_rfsimulator_24prb + oai-nr-ue + 8 + + + + PingFromContainer + Ping ext-dn from NR-UE + rfsim5g-oai-nr-ue + -I oaitun_ue1 -c 20 -i0.2 192.168.72.135 + 5 + + + + PingFromContainer + Ping NR-UE from ext-dn + rfsim5g-oai-ext-dn + -c 20 12.1.1.2 -i0.2 + 5 + + + + IperfFromContainer + Iperf UDP Downlink + rfsim5g-oai-nr-ue + rfsim5g-oai-ext-dn + -B 12.1.1.2 -u -i 1 -s + -c 12.1.1.2 -u -i 1 -t 5 -b 3M + + + + IperfFromContainer + Iperf UDP Uplink + rfsim5g-oai-ext-dn + rfsim5g-oai-nr-ue + -u -i 1 -s + -B 12.1.1.2 -c 192.168.72.135 -u -i 1 -t 5 -b 1M + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_24prb + 1,0,0,0 + 1,0,0,0 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_24prb_down.xml b/ci-scripts/xml_files/container_5g_rfsim_24prb_down.xml new file mode 100644 index 0000000000..9a16ed2723 --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_24prb_down.xml @@ -0,0 +1,45 @@ + + + rfsim-24prb-5gnr-down + CleanUp Monolithic SA TDD gNB 24PRB + trash + + 100002 + 222222 + + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_24prb + + + + Clean_Test_Server_Images + Clean Test Images on Test Server + 0 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_down.xml b/ci-scripts/xml_files/container_5g_rfsim_down.xml index a2f048a7f4..d1cfc340d4 100644 --- a/ci-scripts/xml_files/container_5g_rfsim_down.xml +++ b/ci-scripts/xml_files/container_5g_rfsim_down.xml @@ -22,7 +22,7 @@ --> rfsim-5gnr-down - CleanUp Monolithic TDD gNB + CleanUp SA Monolithic TDD gNB trash 100002 diff --git a/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml new file mode 100644 index 0000000000..4d86cd69ef --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml @@ -0,0 +1,106 @@ + + + rfsim-5gnr-fdd-phytest + Monolithic FDD phytest gNB + wrench + 1 + + 111111 + 100011 + 000010 + 000011 + 020011 + 020012 + 030011 + 030012 + 100011 + + + + + Pull_Local_Registry + Pull Images from Local Registry + 0 + oai-gnb oai-nr-ue + + + + DeployGenObject + Deploy OAI 5G gNB RF sim SA + yaml_files/5g_rfsimulator_fdd_phytest + oai-gnb + 1 + + + + DeployGenObject + Deploy OAI 5G NR-UE RF sim SA + yaml_files/5g_rfsimulator_fdd_phytest + oai-nr-ue + 2 + + + + PingFromContainer + Ping gNB from NR-UE + rfsim5g-oai-nr-ue + -c20 -i0.2 10.0.1.1 + 0 + + + + PingFromContainer + Ping NR-UE from gNB + rfsim5g-oai-gnb + -c20 -i0.2 10.0.1.2 + 0 + + + + IperfFromContainer + Iperf UDP Downlink + rfsim5g-oai-nr-ue + rfsim5g-oai-gnb + -sui1 -B10.0.1.2 + -uc10.0.1.2 -i1 -t10 -b30k -B10.0.1.1 + + + + IperfFromContainer + Iperf UDP Uplink + rfsim5g-oai-gnb + rfsim5g-oai-nr-ue + -sui1 -B10.0.1.1 + -uc10.0.1.1 -i1 -t10 -b30k -B10.0.1.2 + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_fdd_phytest + 10,100,100,100 + 10,100,100,100 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest_down.xml b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest_down.xml new file mode 100644 index 0000000000..69d44911b1 --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest_down.xml @@ -0,0 +1,45 @@ + + + rfsim-5gnr-fdd-phytest-down + CleanUp Monolithic FDD phytest gNB + trash + + 100012 + 222222 + + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_fdd_phytest + + + + Clean_Test_Server_Images + Clean Test Images on Test Server + 0 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml b/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml new file mode 100644 index 0000000000..b6209e871c --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml @@ -0,0 +1,86 @@ + + + rfsim-fr2-32prb-5gnr-tdd + Monolithic FR2 do-ra gNB + wrench + 1 + + 111111 + 100001 + 000000 + 000001 + 020001 + 020002 + 100001 + + + + + Pull_Local_Registry + Pull Images from Local Registry + 0 + oai-gnb oai-nr-ue + + + + DeployGenObject + Deploy OAI gNB + yaml_files/5g_rfsimulator_fr2_32prb + oai-gnb + 1 + + + + DeployGenObject + Deploy OAI NR-UE + yaml_files/5g_rfsimulator_fr2_32prb + oai-nr-ue + 2 + + + + PingFromContainer + Ping gNB from NR-UE + rfsim5g-oai-nr-ue + -c20 -i0.2 10.0.1.1 + 0 + + + + PingFromContainer + Ping NR-UE from gNB + rfsim5g-oai-gnb + -c20 -i0.2 10.0.1.2 + 0 + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_fr2_32prb + 0,0,0,0 + 0,0,0,0 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb_down.xml b/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb_down.xml new file mode 100644 index 0000000000..6dd65eaa85 --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb_down.xml @@ -0,0 +1,45 @@ + + + rfsim-fr2-32prb-5gnr-down + CleanUp Monolithic FR2 do-ra gNB + trash + + 100002 + 222222 + + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_fr2_32prb + + + + Clean_Test_Server_Images + Clean Test Images on Test Server + 0 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml b/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml new file mode 100644 index 0000000000..095986b751 --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml @@ -0,0 +1,86 @@ + + + rfsim-tdd-dora-5gnr-tdd + Monolithic do-ra TDD gNB + wrench + 1 + + 111111 + 100001 + 000000 + 000001 + 020001 + 020002 + 100001 + + + + + Pull_Local_Registry + Pull Images from Local Registry + 0 + oai-gnb oai-nr-ue + + + + DeployGenObject + Deploy OAI gNB + yaml_files/5g_rfsimulator_tdd_dora + oai-gnb + 1 + + + + DeployGenObject + Deploy OAI NR-UE + yaml_files/5g_rfsimulator_tdd_dora + oai-nr-ue + 2 + + + + PingFromContainer + Ping gNB from NR-UE + rfsim5g-oai-nr-ue + -c20 -i0.2 10.0.1.1 + 0 + + + + PingFromContainer + Ping NR-UE from gNB + rfsim5g-oai-gnb + -c20 -i0.2 10.0.1.2 + 0 + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_tdd_dora + 0,0,0,0 + 0,0,0,0 + + + diff --git a/ci-scripts/xml_files/container_5g_rfsim_tdd_dora_down.xml b/ci-scripts/xml_files/container_5g_rfsim_tdd_dora_down.xml new file mode 100644 index 0000000000..e0e6119ca2 --- /dev/null +++ b/ci-scripts/xml_files/container_5g_rfsim_tdd_dora_down.xml @@ -0,0 +1,45 @@ + + + rfsim-tdd-dora-5gnr-down + CleanUp Monolithic do-ra TDD gNB + trash + + 100002 + 222222 + + + + + UndeployGenObject + Undeploy all OAI 5G stack + yaml_files/5g_rfsimulator_tdd_dora + + + + Clean_Test_Server_Images + Clean Test Images on Test Server + 0 + + + diff --git a/ci-scripts/yaml_files/5g_rfsimulator_24prb/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_24prb/docker-compose.yaml new file mode 100644 index 0000000000..683c6bd9e6 --- /dev/null +++ b/ci-scripts/yaml_files/5g_rfsimulator_24prb/docker-compose.yaml @@ -0,0 +1,299 @@ +version: '3.8' +services: + oai-nrf: + container_name: "rfsim5g-oai-nrf" + image: oai-nrf:august-dev + environment: + - NRF_INTERFACE_NAME_FOR_SBI=eth0 + - NRF_INTERFACE_PORT_FOR_SBI=80 + - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - NRF_API_VERSION=v1 + - INSTANCE=0 + - PID_DIRECTORY=/var/run + networks: + public_net: + ipv4_address: 192.168.71.130 + volumes: + - ../5g_rfsimulator/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh + healthcheck: + test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" + interval: 10s + timeout: 5s + retries: 5 + + mysql: + container_name: "rfsim5g-mysql" + image: mysql:5.7 + volumes: + - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh + environment: + - TZ=Europe/Paris + - MYSQL_DATABASE=oai_db + - MYSQL_USER=test + - MYSQL_PASSWORD=test + - MYSQL_ROOT_PASSWORD=linux + healthcheck: + test: /bin/bash -c "/tmp/mysql-healthcheck.sh" + interval: 10s + timeout: 5s + retries: 5 + networks: + public_net: + ipv4_address: 192.168.71.131 + + oai-amf: + container_name: "rfsim5g-oai-amf" + image: oai-amf:august-dev + environment: + - TZ=Europe/paris + - INSTANCE=0 + - PID_DIRECTORY=/var/run + - MCC=208 + - MNC=99 + - REGION_ID=128 + - AMF_SET_ID=1 + - SERVED_GUAMI_MCC_0=208 + - SERVED_GUAMI_MNC_0=99 + - SERVED_GUAMI_REGION_ID_0=128 + - SERVED_GUAMI_AMF_SET_ID_0=1 + - SERVED_GUAMI_MCC_1=460 + - SERVED_GUAMI_MNC_1=11 + - SERVED_GUAMI_REGION_ID_1=10 + - SERVED_GUAMI_AMF_SET_ID_1=1 + - PLMN_SUPPORT_MCC=208 + - PLMN_SUPPORT_MNC=99 + - PLMN_SUPPORT_TAC=0x0001 + - SST_0=1 + - SD_0=0xffffff + - SST_1=1 + - SD_1=1 + - AMF_INTERFACE_NAME_FOR_NGAP=eth0 + - AMF_INTERFACE_NAME_FOR_N11=eth0 + - SMF_INSTANCE_ID_0=1 + - SMF_FQDN_0=oai-smf + - SMF_IPV4_ADDR_0=0.0.0.0 + - SMF_HTTP_VERSION_0=v1 + - SELECTED_0=true + - SMF_INSTANCE_ID_1=2 + - SMF_FQDN_1=oai-smf + - SMF_IPV4_ADDR_1=0.0.0.0 + - SMF_HTTP_VERSION_1=v1 + - SELECTED_1=false + - MYSQL_SERVER=192.168.71.131 + - MYSQL_USER=root + - MYSQL_PASS=linux + - MYSQL_DB=oai_db + - OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1 + - NRF_IPV4_ADDRESS=192.168.71.130 + - NRF_PORT=80 + - NF_REGISTRATION=yes + - SMF_SELECTION=yes + - USE_FQDN_DNS=yes + - NRF_API_VERSION=v1 + - NRF_FQDN=oai-nrf + - EXTERNAL_AUSF=no + - AUSF_IPV4_ADDRESS=0.0.0.0 + - AUSF_PORT=80 + - AUSF_API_VERSION=v1 + - AUSF_FQDN=localhost + depends_on: + - oai-nrf + - mysql + volumes: + - ../5g_rfsimulator/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + healthcheck: + test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" + interval: 10s + timeout: 15s + retries: 5 + networks: + public_net: + ipv4_address: 192.168.71.132 + + oai-smf: + container_name: "rfsim5g-oai-smf" + image: oai-smf:august-dev + environment: + - TZ=Europe/Paris + - INSTANCE=0 + - PID_DIRECTORY=/var/run + - SMF_INTERFACE_NAME_FOR_N4=eth0 + - SMF_INTERFACE_NAME_FOR_SBI=eth0 + - SMF_INTERFACE_PORT_FOR_SBI=80 + - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - SMF_API_VERSION=v1 + - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 + - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 + - AMF_IPV4_ADDRESS=0.0.0.0 + - AMF_PORT=80 + - AMF_API_VERSION=v1 + - AMF_FQDN=oai-amf + - UDM_IPV4_ADDRESS=127.0.0.1 + - UDM_PORT=80 + - UDM_API_VERSION=v1 + - UDM_FQDN=localhost + - UPF_IPV4_ADDRESS=192.168.71.134 + - UPF_FQDN_0=oai-spgwu + - NRF_IPV4_ADDRESS=192.168.71.130 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + - NRF_FQDN=oai-nrf + - REGISTER_NRF=yes + - DISCOVER_UPF=yes + - USE_FQDN_DNS=yes + - DNN_NI0=oai + - TYPE0=IPv4 + - DNN_RANGE0=12.1.1.2 - 12.1.1.127 + - NSSAI_SST0=1 + - NSSAI_SD0=0xFFFFFF + - SESSION_AMBR_UL0=200Mbps + - SESSION_AMBR_DL0=400Mbps + - DNN_NI2=oai.ipv4 + depends_on: + - oai-nrf + - oai-amf + volumes: + - ../5g_rfsimulator/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + healthcheck: + test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" + interval: 10s + timeout: 5s + retries: 5 + networks: + public_net: + ipv4_address: 192.168.71.133 + + oai-spgwu: + container_name: "rfsim5g-oai-spgwu" + image: oai-spgwu-tiny:august-dev + environment: + - TZ=Europe/Paris + - PID_DIRECTORY=/var/run + - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 + - SGW_INTERFACE_NAME_FOR_SX=eth0 + - PGW_INTERFACE_NAME_FOR_SGI=eth0 + - NETWORK_UE_NAT_OPTION=yes + - NETWORK_UE_IP=12.1.1.0/24 + - SPGWC0_IP_ADDRESS=192.168.71.133 + - BYPASS_UL_PFCP_RULES=no + - MCC=208 + - MNC=99 + - MNC03=099 + - TAC=1 + - GTP_EXTENSION_HEADER_PRESENT=yes + - GW_ID=1 + - REALM=openairinterface.org + - ENABLE_5G_FEATURES=yes + - REGISTER_NRF=yes + - USE_FQDN_NRF=yes + - UPF_FQDN_5G=oai-spgwu + - NRF_IPV4_ADDRESS=192.168.71.130 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + - NRF_FQDN=oai-nrf + - NSSAI_SST_0=1 + - NSSAI_SD_0=0xffffff + - DNN_0=oai + depends_on: + - oai-nrf + - oai-smf + cap_add: + - NET_ADMIN + - SYS_ADMIN + cap_drop: + - ALL + privileged: true + volumes: + - ../5g_rfsimulator/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + healthcheck: + test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" + interval: 10s + timeout: 5s + retries: 5 + networks: + public_net: + ipv4_address: 192.168.71.134 + traffic_net: + ipv4_address: 192.168.72.134 + + oai-ext-dn: + image: ubuntu:bionic + privileged: true + container_name: rfsim5g-oai-ext-dn + entrypoint: /bin/bash -c \ + "apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\ + "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ + "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" + depends_on: + - oai-spgwu + networks: + traffic_net: + ipv4_address: 192.168.72.135 + healthcheck: + test: /bin/bash -c "ping -c 2 192.168.72.134" + interval: 10s + timeout: 5s + retries: 5 + + oai-gnb: + image: oai-gnb:develop + privileged: true + container_name: rfsim5g-oai-gnb + environment: + RFSIMULATOR: server + USE_VOLUMED_CONF: 'yes' + USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + depends_on: + - oai-ext-dn + networks: + public_net: + ipv4_address: 192.168.71.140 + volumes: + - ../../conf_files/gnb.sa.band78.fr1.24PRB.usrpb210.conf:/opt/oai-gnb/etc/mounted.conf + healthcheck: + test: /bin/bash -c "pgrep nr-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-nr-ue: + image: oai-nr-ue:develop + privileged: true + container_name: rfsim5g-oai-nr-ue + environment: + RFSIMULATOR: 192.168.71.140 + FULL_IMSI: '208990100001100' + FULL_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' + OPC: 'C42449363BBAD02B66D16BC975D77CC1' + DNN: oai + NSSAI_SST: 1 + USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 24 --ssb 24 --numerology 1 -C 3604320000 --nokrnmod --log_config.global_log_options level,nocolor,time + depends_on: + - oai-gnb + networks: + public_net: + ipv4_address: 192.168.71.150 + healthcheck: + test: /bin/bash -c "pgrep nr-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + +networks: + public_net: + driver: bridge + name: rfsim5g-oai-public-net + ipam: + config: + - subnet: 192.168.71.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-public" + traffic_net: + driver: bridge + name: rfsim5g-oai-traffic-net + ipam: + config: + - subnet: 192.168.72.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-traffic" diff --git a/ci-scripts/yaml_files/5g_rfsimulator_fdd_phytest/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_fdd_phytest/docker-compose.yaml new file mode 100644 index 0000000000..1487aa26c0 --- /dev/null +++ b/ci-scripts/yaml_files/5g_rfsimulator_fdd_phytest/docker-compose.yaml @@ -0,0 +1,59 @@ +version: '3.8' +services: + oai-gnb: + image: oai-gnb:develop + privileged: true + container_name: rfsim5g-oai-gnb + environment: + RFSIMULATOR: server + USE_VOLUMED_CONF: 'yes' + USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --nokrnmod --log_config.global_log_options level,nocolor,time + networks: + public_net: + ipv4_address: 192.168.71.140 + volumes: + - ../../conf_files/gnb.band66.tm1.106PRB.usrpn300.conf:/opt/oai-gnb/etc/mounted.conf + - rrc.config:/opt/oai-gnb/ + healthcheck: + test: /bin/bash -c "pgrep nr-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-nr-ue: + image: oai-nr-ue:develop + privileged: true + container_name: rfsim5g-oai-nr-ue + environment: + RFSIMULATOR: 192.168.71.140 + FULL_IMSI: '208930100001100' + FULL_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' + OPC: 'C42449363BBAD02B66D16BC975D77CC1' + DNN: oai + NSSAI_SST: 1 + USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --nokrnmod --rrc_config_path etc/rrc/ --log_config.global_log_options level,nocolor,time + volumes: + - rrc.config:/opt/oai-nr-ue/etc/rrc/ + depends_on: + - oai-gnb + networks: + public_net: + ipv4_address: 192.168.71.150 + healthcheck: + test: /bin/bash -c "pgrep nr-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + +volumes: + rrc.config: + +networks: + public_net: + driver: bridge + name: rfsim5g-oai-public-net + ipam: + config: + - subnet: 192.168.71.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-public" diff --git a/ci-scripts/yaml_files/5g_rfsimulator_fr2_32prb/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_fr2_32prb/docker-compose.yaml new file mode 100644 index 0000000000..11264e5348 --- /dev/null +++ b/ci-scripts/yaml_files/5g_rfsimulator_fr2_32prb/docker-compose.yaml @@ -0,0 +1,59 @@ +version: '3.8' +services: + oai-gnb: + image: oai-gnb:develop + privileged: true + container_name: rfsim5g-oai-gnb + environment: + RFSIMULATOR: server + USE_VOLUMED_CONF: 'yes' + USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --nokrnmod --log_config.global_log_options level,nocolor,time + networks: + public_net: + ipv4_address: 192.168.71.140 + volumes: + - ../../conf_files/gnb.band261.tm1.32PRB.usrpn300.conf:/opt/oai-gnb/etc/mounted.conf + - rrc.config:/opt/oai-gnb/ + healthcheck: + test: /bin/bash -c "pgrep nr-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-nr-ue: + image: oai-nr-ue:develop + privileged: true + container_name: rfsim5g-oai-nr-ue + environment: + RFSIMULATOR: 192.168.71.140 + FULL_IMSI: '311480100001100' + FULL_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' + OPC: 'C42449363BBAD02B66D16BC975D77CC1' + DNN: oai + NSSAI_SST: 1 + USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --rrc_config_path etc/rrc/ --nokrnmod --log_config.global_log_options level,nocolor,time + volumes: + - rrc.config:/opt/oai-nr-ue/etc/rrc/ + depends_on: + - oai-gnb + networks: + public_net: + ipv4_address: 192.168.71.150 + healthcheck: + test: /bin/bash -c "pgrep nr-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + +volumes: + rrc.config: + +networks: + public_net: + driver: bridge + name: rfsim5g-oai-public-net + ipam: + config: + - subnet: 192.168.71.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-public" diff --git a/ci-scripts/yaml_files/5g_rfsimulator_tdd_dora/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_tdd_dora/docker-compose.yaml new file mode 100644 index 0000000000..9f080478c7 --- /dev/null +++ b/ci-scripts/yaml_files/5g_rfsimulator_tdd_dora/docker-compose.yaml @@ -0,0 +1,59 @@ +version: '3.8' +services: + oai-gnb: + image: oai-gnb:develop + privileged: true + container_name: rfsim5g-oai-gnb + environment: + RFSIMULATOR: server + USE_VOLUMED_CONF: 'yes' + USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --nokrnmod --log_config.global_log_options level,nocolor,time + networks: + public_net: + ipv4_address: 192.168.71.140 + volumes: + - ../../conf_files/gnb.band78.tm1.106PRB.usrpn300.conf:/opt/oai-gnb/etc/mounted.conf + - rrc.config:/opt/oai-gnb/ + healthcheck: + test: /bin/bash -c "pgrep nr-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-nr-ue: + image: oai-nr-ue:develop + privileged: true + container_name: rfsim5g-oai-nr-ue + environment: + RFSIMULATOR: 192.168.71.140 + FULL_IMSI: '208930100001100' + FULL_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' + OPC: 'C42449363BBAD02B66D16BC975D77CC1' + DNN: oai + NSSAI_SST: 1 + USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --rrc_config_path etc/rrc/ --nokrnmod --log_config.global_log_options level,nocolor,time + volumes: + - rrc.config:/opt/oai-nr-ue/etc/rrc/ + depends_on: + - oai-gnb + networks: + public_net: + ipv4_address: 192.168.71.150 + healthcheck: + test: /bin/bash -c "pgrep nr-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + +volumes: + rrc.config: + +networks: + public_net: + driver: bridge + name: rfsim5g-oai-public-net + ipam: + config: + - subnet: 192.168.71.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-public" diff --git a/doc/RUN_NR_PRS.md b/doc/RUN_NR_PRS.md index 919796742e..9b69e0960b 100644 --- a/doc/RUN_NR_PRS.md +++ b/doc/RUN_NR_PRS.md @@ -71,7 +71,7 @@ If **N310 USRPs** are used, then run above command `without -E option` i.e witho To run using **rfsimulator**, execute following command: -```sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb0.sa.band78.fr1.106PRB.prs.usrpx310.conf --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test --lowmem``` +```sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb0.sa.band78.fr1.106PRB.prs.usrpx310.conf --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test``` ## FR2 test In FR2 mode, we need RF beamforming module to transmit signal in mmWave frequency range. **X310 USRPs** can be used with BasicTx daughtercard to transmit baseband signal at **Intermediate Frequncy(IF)** and then RF beamforming module would perform beamforming and the upconversion to FR2 frequencies. IF can be specified using `if_freq` in the RU section of gNB config. @@ -83,7 +83,7 @@ If RF beamforming module is NOT present, gNB can still be launched with USRP alo To run using **rfsimulator**, execute following command: -```sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb0.sa.band261.fr2.64PRB.prs.usrpx310.conf --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test --lowmem``` +```sudo RFSIMULATOR=server ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb0.sa.band261.fr2.64PRB.prs.usrpx310.conf --parallel-config PARALLEL_SINGLE_THREAD --noS1 --nokrnmod 1 --rfsim --phy-test``` ## Multiple gNB scenario PRS is primarily used for positioning and localization of the UE with multiple gNBs transmitting simultaneously. OAI PRS implementation supports multiple gNB transmission provided all the gNBs are tightely synchronized using GPSDO clock. Therefore before running this scenario, make sure the USRPs has built-in GPSDO and the GPS antennas are connected with good satellite visibility. Also every time a gNB is launched, wait until `GPS LOCKED` is printed on the terminal during gNB startup. If USRP fails to lock with GPSDO, try again until its locked. diff --git a/docker/Dockerfile.eNB.ubuntu18 b/docker/Dockerfile.eNB.ubuntu18 index 565ee9b85d..f2a6ee16ee 100644 --- a/docker/Dockerfile.eNB.ubuntu18 +++ b/docker/Dockerfile.eNB.ubuntu18 @@ -50,6 +50,7 @@ RUN apt-get update && \ libconfig9 \ openssl \ net-tools \ + iperf \ iputils-ping \ iproute2 \ iperf \ diff --git a/docker/Dockerfile.gNB.ubuntu18 b/docker/Dockerfile.gNB.ubuntu18 index 29b68507a0..4ed4929891 100644 --- a/docker/Dockerfile.gNB.ubuntu18 +++ b/docker/Dockerfile.gNB.ubuntu18 @@ -50,6 +50,7 @@ RUN apt-get update && \ libconfig9 \ openssl \ net-tools \ + iperf \ iproute2 \ iputils-ping \ gdb \ diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c index 63209862c4..852e805e6d 100644 --- a/executables/nr-gnb.c +++ b/executables/nr-gnb.c @@ -546,7 +546,7 @@ void init_eNB_afterRU(void) { gNB = RC.gNB[inst]; gNB->ldpc_offload_flag = ldpc_offload_flag; - phy_init_nr_gNB(gNB,0,0); + phy_init_nr_gNB(gNB); // map antennas and PRACH signals to gNB RX if (0) AssertFatal(gNB->num_RU>0,"Number of RU attached to gNB %d is zero\n",gNB->Mod_id); diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c index 61ba1bd49f..6f983f613c 100644 --- a/openair1/PHY/INIT/nr_init.c +++ b/openair1/PHY/INIT/nr_init.c @@ -469,9 +469,8 @@ int init_codebook_gNB(PHY_VARS_gNB *gNB) { return 0; } -int phy_init_nr_gNB(PHY_VARS_gNB *gNB, - unsigned char is_secondary_gNB, - unsigned char lowmem_flag) { +int phy_init_nr_gNB(PHY_VARS_gNB *gNB) +{ // shortcuts NR_DL_FRAME_PARMS *const fp = &gNB->frame_parms; nfapi_nr_config_request_scf_t *cfg = &gNB->gNB_config; @@ -490,14 +489,8 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB, while(gNB->configured == 0) usleep(10000); - if (lowmem_flag == 1) { - gNB->number_of_nr_dlsch_max = 2; - gNB->number_of_nr_ulsch_max = 2; - } - else { - gNB->number_of_nr_dlsch_max = NUMBER_OF_NR_DLSCH_MAX; - gNB->number_of_nr_ulsch_max = NUMBER_OF_NR_ULSCH_MAX; - } + gNB->number_of_nr_dlsch_max = NUMBER_OF_NR_DLSCH_MAX; + gNB->number_of_nr_ulsch_max = NUMBER_OF_NR_ULSCH_MAX; load_dftslib(); diff --git a/openair1/PHY/INIT/phy_init.h b/openair1/PHY/INIT/phy_init.h index 22f41ba492..ed4b83fa5d 100644 --- a/openair1/PHY/INIT/phy_init.h +++ b/openair1/PHY/INIT/phy_init.h @@ -401,7 +401,7 @@ void term_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB); void init_nr_ue_transport(PHY_VARS_NR_UE *ue); void init_N_TA_offset(PHY_VARS_NR_UE *ue); void nr_dump_frame_parms(NR_DL_FRAME_PARMS *frame_parms); -int phy_init_nr_gNB(PHY_VARS_gNB *gNB, unsigned char is_secondary_gNB, unsigned char lowmem_flag); +int phy_init_nr_gNB(PHY_VARS_gNB *gNB); int init_codebook_gNB(PHY_VARS_gNB *gNB); void nr_phy_config_request(NR_PHY_Config_t *gNB); void nr_phy_config_request_sim(PHY_VARS_gNB *gNB,int N_RB_DL,int N_RB_UL,int mu,int Nid_cell,uint64_t position_in_burst); diff --git a/openair1/SIMULATION/NR_PHY/dlschsim.c b/openair1/SIMULATION/NR_PHY/dlschsim.c index 518a655f19..46c5ed636d 100644 --- a/openair1/SIMULATION/NR_PHY/dlschsim.c +++ b/openair1/SIMULATION/NR_PHY/dlschsim.c @@ -366,7 +366,7 @@ int main(int argc, char **argv) frame_parms->Ncp = extended_prefix_flag ? EXTENDED : NORMAL; crcTableInit(); nr_phy_config_request_sim(gNB, N_RB_DL, N_RB_DL, mu, Nid_cell,SSB_positions); - phy_init_nr_gNB(gNB, 0, 1); //lowmem + phy_init_nr_gNB(gNB); //init_eNB_afterRU(); frame_length_complex_samples = frame_parms->samples_per_subframe; //frame_length_complex_samples_no_prefix = frame_parms->samples_per_subframe_wCP; diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c index 824d699c60..1e093a0ef6 100644 --- a/openair1/SIMULATION/NR_PHY/dlsim.c +++ b/openair1/SIMULATION/NR_PHY/dlsim.c @@ -869,7 +869,7 @@ int main(int argc, char **argv) // reset preprocessor to the one of DLSIM after it has been set during // rrc_mac_config_req_gNB gNB_mac->pre_processor_dl = nr_dlsim_preprocessor; - phy_init_nr_gNB(gNB,0,1); + phy_init_nr_gNB(gNB); N_RB_DL = gNB->frame_parms.N_RB_DL; NR_UE_info_t *UE_info = RC.nrmac[0]->UE_info.list[0]; diff --git a/openair1/SIMULATION/NR_PHY/pbchsim.c b/openair1/SIMULATION/NR_PHY/pbchsim.c index 16396de9eb..8a2e062a7d 100644 --- a/openair1/SIMULATION/NR_PHY/pbchsim.c +++ b/openair1/SIMULATION/NR_PHY/pbchsim.c @@ -471,7 +471,7 @@ int main(int argc, char **argv) frame_parms->freq_range = mu<2 ? nr_FR1 : nr_FR2; nr_phy_config_request_sim_pbchsim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions); - phy_init_nr_gNB(gNB,0,1); + phy_init_nr_gNB(gNB); frame_parms->ssb_start_subcarrier = 12 * gNB->gNB_config.ssb_table.ssb_offset_point_a.value + ssb_subcarrier_offset; uint8_t n_hf = 0; diff --git a/openair1/SIMULATION/NR_PHY/prachsim.c b/openair1/SIMULATION/NR_PHY/prachsim.c index 88c46b057a..2ec2faedde 100644 --- a/openair1/SIMULATION/NR_PHY/prachsim.c +++ b/openair1/SIMULATION/NR_PHY/prachsim.c @@ -673,7 +673,7 @@ int main(int argc, char **argv){ memcpy((void*)&ru->config,(void*)&RC.gNB[0]->gNB_config,sizeof(ru->config)); RC.nb_nr_L1_inst=1; - phy_init_nr_gNB(gNB,0,1); //lowmem + phy_init_nr_gNB(gNB); nr_phy_init_RU(ru); set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4); diff --git a/openair1/SIMULATION/NR_PHY/pucchsim.c b/openair1/SIMULATION/NR_PHY/pucchsim.c index 3f0e493f3e..04976c1dc0 100644 --- a/openair1/SIMULATION/NR_PHY/pucchsim.c +++ b/openair1/SIMULATION/NR_PHY/pucchsim.c @@ -404,7 +404,7 @@ int main(int argc, char **argv) cfg->carrier_config.num_tx_ant.value = n_tx; cfg->carrier_config.num_rx_ant.value = n_rx; nr_phy_config_request_sim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions); - phy_init_nr_gNB(gNB,0,0); + phy_init_nr_gNB(gNB); /* RU handles rxdataF, and gNB just has a pointer. Here, we don't have an RU, * so we need to allocate that memory as well. */ for (i = 0; i < n_rx; i++) diff --git a/openair1/SIMULATION/NR_PHY/ulschsim.c b/openair1/SIMULATION/NR_PHY/ulschsim.c index 27f21515cc..54e0f2b87d 100644 --- a/openair1/SIMULATION/NR_PHY/ulschsim.c +++ b/openair1/SIMULATION/NR_PHY/ulschsim.c @@ -419,7 +419,7 @@ int main(int argc, char **argv) nr_phy_config_request_sim(gNB, N_RB_UL, N_RB_UL, mu, Nid_cell, SSB_positions); - phy_init_nr_gNB(gNB, 0, 1); //lowmem + phy_init_nr_gNB(gNB); //configure UE UE = malloc(sizeof(PHY_VARS_NR_UE)); diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c index 2a46b40b71..631ef803d9 100644 --- a/openair1/SIMULATION/NR_PHY/ulsim.c +++ b/openair1/SIMULATION/NR_PHY/ulsim.c @@ -778,7 +778,7 @@ int main(int argc, char **argv) gNB->chest_freq = chest_type[0]; gNB->chest_time = chest_type[1]; - phy_init_nr_gNB(gNB,0,1); + phy_init_nr_gNB(gNB); /* RU handles rxdataF, and gNB just has a pointer. Here, we don't have an RU, * so we need to allocate that memory as well. */ for (i = 0; i < n_rx; i++) diff --git a/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c b/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c index d7162d9bf1..1e254ded42 100644 --- a/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c +++ b/openair2/LAYER2/NR_MAC_UE/main_ue_nr.c @@ -63,6 +63,7 @@ NR_UE_MAC_INST_t * nr_l2_init_ue(NR_UE_RRC_INST_t* rrc_inst) { if (IS_SOFTMODEM_NOS1){ pdcp_layer_init(); nr_DRB_preconfiguration(nr_ue_mac_inst->crnti); + nr_ue_mac_inst->logicalChannelBearer_exist[0] = true; } // Allocate memory for ul_config_request in the mac instance. This is now a pointer and will // point to a list of structures (one for each UL slot) to store PUSCH scheduling parameters diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c index d2193d5f63..5da2baa613 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c @@ -108,8 +108,7 @@ void clear_nr_nfapi_information(gNB_MAC_INST * gNB, } bool is_xlsch_in_slot(uint64_t bitmap, sub_frame_t slot) { - if (slot>=64) return false; //quickfix for FR2 where there are more than 64 slots (bitmap to be removed) - return (bitmap >> slot) & 0x01; + return (bitmap >> (slot % 64)) & 0x01; } void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c index d93a4ada98..28237903af 100644 --- a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c +++ b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c @@ -1141,9 +1141,10 @@ int nr_ue_ul_indication(nr_uplink_indication_t *ul_info){ __FUNCTION__, __LINE__, ul_info->ue_sched_mode, mac->ra.ra_state); ret = nr_ue_scheduler(NULL, ul_info); - if (is_nr_UL_slot(tdd_UL_DL_ConfigurationCommon, ul_info->slot_tx, mac->frame_type) && !get_softmodem_params()->phy_test) { + if (is_nr_UL_slot(tdd_UL_DL_ConfigurationCommon, ul_info->slot_tx, mac->frame_type)) { nr_ue_pucch_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx, ul_info->phy_data); - nr_ue_prach_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx); + if (!get_softmodem_params()->phy_test) + nr_ue_prach_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx); } switch(ret){ diff --git a/openair2/RRC/NR/rrc_gNB_nsa.c b/openair2/RRC/NR/rrc_gNB_nsa.c index 8f13d1213f..a6ce1b4a55 100644 --- a/openair2/RRC/NR/rrc_gNB_nsa.c +++ b/openair2/RRC/NR/rrc_gNB_nsa.c @@ -164,7 +164,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_ ue_context_p->ue_context.rb_config = calloc(1,sizeof(NR_RRCReconfiguration_t)); if (get_softmodem_params()->phy_test == 1 || get_softmodem_params()->do_ra == 1 || get_softmodem_params()->sa == 1){ fill_default_rbconfig(ue_context_p->ue_context.rb_config, - 5 /* EPS bearer ID */, + 10 /* EPS bearer ID */, 1 /* drb ID */, NR_CipheringAlgorithm_nea0, NR_SecurityConfig__keyToUse_master); @@ -374,6 +374,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_ } PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, rrc->module_id, GNB_FLAG_YES, ue_context_p->ue_id_rnti, 0, 0, rrc->module_id); + if (get_softmodem_params()->do_ra) ctxt.enb_flag = 0; LOG_W(RRC, "Calling RRC PDCP/RLC ASN1 request functions for protocol context %p with module_id %d, rnti %lx, frame %d, subframe %d eNB_index %d \n", &ctxt,