Merge branch 'integration_2025_w30' into 'develop'
Integration: `2025.w30` * !3529 Add CI RFsim5G test for second PDU session * !3532 Count bits in variable with mask * !3533 CI: test T2 with DPDK 22.11 * !3535 RAN-Container-Parent: Auto-generate artifact in failure case * !3542 bugfix: avoid segmentation fault when Redcap tries to connect to gNB * !3543 rfsimulator: fix model name for channel * !3540 CI: migrate RFSim4G to acamas machine See merge request oai/openairinterface5g!3539
This commit is contained in:
@@ -835,12 +835,14 @@ def finalizeSlaveJob(jobName) {
|
|||||||
selector: lastCompleted())
|
selector: lastCompleted())
|
||||||
if (fileExists(fileName)) {
|
if (fileExists(fileName)) {
|
||||||
sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' ${fileName}"
|
sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' ${fileName}"
|
||||||
|
} else {
|
||||||
|
sh "echo \"could not copy results from ${jobName}, please check pipeline ${BUILD_URL}\" > ${fileName}"
|
||||||
|
}
|
||||||
archiveArtifacts artifacts: fileName
|
archiveArtifacts artifacts: fileName
|
||||||
// BUILD_URL is like http://server:port/jenkins/job/foo/15/
|
// BUILD_URL is like http://server:port/jenkins/job/foo/15/
|
||||||
// no need to add a prefixed '/'
|
// no need to add a prefixed '/'
|
||||||
artifactUrl += 'artifact/' + fileName
|
artifactUrl += 'artifact/' + fileName
|
||||||
}
|
}
|
||||||
}
|
|
||||||
artifactUrl = "\n * [${jobName}](${artifactUrl})"
|
artifactUrl = "\n * [${jobName}](${artifactUrl})"
|
||||||
return artifactUrl
|
return artifactUrl
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -301,6 +301,15 @@ rfsim5g_ue:
|
|||||||
AttachScript: docker start rfsim5g-oai-nr-ue
|
AttachScript: docker start rfsim5g-oai-nr-ue
|
||||||
DetachScript: docker stop rfsim5g-oai-nr-ue
|
DetachScript: docker stop rfsim5g-oai-nr-ue
|
||||||
MTU: 1500
|
MTU: 1500
|
||||||
|
# for tests with second PDU session ID 2, needs to match requested PDU session name
|
||||||
|
rfsim5g_ue_pdu_2:
|
||||||
|
Host: "%%current_host%%"
|
||||||
|
NetworkScript: docker exec rfsim5g-oai-nr-ue ip a show dev oaitun_ue1p2
|
||||||
|
CmdPrefix: docker exec rfsim5g-oai-nr-ue
|
||||||
|
IF: oaitun_ue1p2
|
||||||
|
AttachScript: docker start rfsim5g-oai-nr-ue
|
||||||
|
DetachScript: docker stop rfsim5g-oai-nr-ue
|
||||||
|
MTU: 1500
|
||||||
|
|
||||||
rfsim5g_ue2:
|
rfsim5g_ue2:
|
||||||
Host: "%%current_host%%"
|
Host: "%%current_host%%"
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import cls_analysis
|
|||||||
import constants as CONST
|
import constants as CONST
|
||||||
|
|
||||||
LOG_PATH_PHYSIM = 'phy_sim_logs'
|
LOG_PATH_PHYSIM = 'phy_sim_logs'
|
||||||
|
DPDK_PATH = '/opt/dpdk-t2-22.11.0'
|
||||||
|
|
||||||
class Native():
|
class Native():
|
||||||
|
|
||||||
@@ -39,7 +40,7 @@ class Native():
|
|||||||
|
|
||||||
with cls_cmd.getConnection(host) as ssh:
|
with cls_cmd.getConnection(host) as ssh:
|
||||||
base = f"{directory}/cmake_targets"
|
base = f"{directory}/cmake_targets"
|
||||||
ret = ssh.run(f"{base}/build_oai {options} > {base}/log/build_oai.log", timeout=900)
|
ret = ssh.run(f"C_INCLUDE_PATH={DPDK_PATH}/include/ PKG_CONFIG_PATH={DPDK_PATH}/lib64/pkgconfig/ {base}/build_oai {options} > {base}/log/build_oai.log", timeout=900)
|
||||||
success = ret.returncode == 0
|
success = ret.returncode == 0
|
||||||
logs = ssh.run(f"cat {base}/log/build_oai.log", silent=True)
|
logs = ssh.run(f"cat {base}/log/build_oai.log", silent=True)
|
||||||
logging.debug(f"build finished with code {ret.returncode}, output:\n{logs.stdout}")
|
logging.debug(f"build finished with code {ret.returncode}, output:\n{logs.stdout}")
|
||||||
@@ -73,7 +74,7 @@ class Native():
|
|||||||
os.system(f'mkdir -p ./{LOG_PATH_PHYSIM}')
|
os.system(f'mkdir -p ./{LOG_PATH_PHYSIM}')
|
||||||
runLogFile=f'physim_{HTML.testCase_id}.log'
|
runLogFile=f'physim_{HTML.testCase_id}.log'
|
||||||
with cls_cmd.getConnection(host) as cmd:
|
with cls_cmd.getConnection(host) as cmd:
|
||||||
cmd.run(f'sudo {workSpacePath}/ran_build/build/{physim_test} {options} >> {workSpacePath}/{runLogFile}')
|
cmd.run(f'sudo LD_LIBRARY_PATH=.:{DPDK_PATH}/lib64/ {workSpacePath}/ran_build/build/{physim_test} {options} >> {workSpacePath}/{runLogFile}')
|
||||||
cmd.copyin(src=f'{workSpacePath}/{runLogFile}', tgt=f'{LOG_PATH_PHYSIM}/{runLogFile}')
|
cmd.copyin(src=f'{workSpacePath}/{runLogFile}', tgt=f'{LOG_PATH_PHYSIM}/{runLogFile}')
|
||||||
success, msg = cls_analysis.Analysis.analyze_physim(f'{LOG_PATH_PHYSIM}/{runLogFile}', physim_test, options, threshold)
|
success, msg = cls_analysis.Analysis.analyze_physim(f'{LOG_PATH_PHYSIM}/{runLogFile}', physim_test, options, threshold)
|
||||||
if success:
|
if success:
|
||||||
|
|||||||
@@ -108,16 +108,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -126,9 +126,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -141,8 +141,8 @@
|
|||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030011">
|
<testCase id="030011">
|
||||||
@@ -153,8 +153,8 @@
|
|||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100011">
|
<testCase id="100011">
|
||||||
|
|||||||
@@ -86,9 +86,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -97,9 +97,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from eNB</desc>
|
<desc>Ping LTE-UE from eNB</desc>
|
||||||
<id>rfsim4g_enb_nos1</id>
|
<id>rfsim4g_enb_nos1</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -108,9 +108,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -120,9 +120,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -108,16 +108,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -126,9 +126,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -137,9 +137,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -149,9 +149,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -108,16 +108,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -126,9 +126,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -137,9 +137,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -149,9 +149,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -83,9 +83,9 @@
|
|||||||
<class>Iperf2_Unidir</class>
|
<class>Iperf2_Unidir</class>
|
||||||
<desc>Iperf2 UDP DL</desc>
|
<desc>Iperf2 UDP DL</desc>
|
||||||
<id>rfsim4g_ue_fembms</id>
|
<id>rfsim4g_ue_fembms</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_enb_fembms</svr_id>
|
<svr_id>rfsim4g_enb_fembms</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M</iperf_args>
|
<iperf_args>-u -t 30 -b 2M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -83,9 +83,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -108,9 +108,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -119,9 +119,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -130,9 +130,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -142,9 +142,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>cacofonix</nodes>
|
<nodes>acamas</nodes>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>cacofonix</svr_node>
|
<svr_node>acamas</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -32,6 +32,8 @@
|
|||||||
000003
|
000003
|
||||||
020001
|
020001
|
||||||
020002
|
020002
|
||||||
|
000004
|
||||||
|
020003
|
||||||
030001
|
030001
|
||||||
030002
|
030002
|
||||||
100001
|
100001
|
||||||
@@ -98,6 +100,24 @@
|
|||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000004">
|
||||||
|
<class>Attach_UE</class>
|
||||||
|
<desc>Verify 2nd PDU session is up</desc>
|
||||||
|
<id>rfsim5g_ue_pdu_2</id>
|
||||||
|
<nodes>acamas</nodes>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="020003">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping ext-dn from NR-UE on PDU session ID 2</desc>
|
||||||
|
<id>rfsim5g_ue_pdu_2</id>
|
||||||
|
<nodes>acamas</nodes>
|
||||||
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
|
<svr_node>acamas</svr_node>
|
||||||
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>100</physim_time_threshold>
|
<physim_time_threshold>100</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m5 -r106 -R106 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m5 -r106 -R106 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010121">
|
<testCase id="010121">
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>150</physim_time_threshold>
|
<physim_time_threshold>150</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m15 -r106 -R106 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m15 -r106 -R106 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010131">
|
<testCase id="010131">
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>250</physim_time_threshold>
|
<physim_time_threshold>250</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m25 -r106 -R106 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m25 -r106 -R106 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010211">
|
<testCase id="010211">
|
||||||
@@ -116,7 +116,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>150</physim_time_threshold>
|
<physim_time_threshold>150</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m5 -r273 -R273 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m5 -r273 -R273 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010221">
|
<testCase id="010221">
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>350</physim_time_threshold>
|
<physim_time_threshold>350</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m15 -r273 -R273 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m15 -r273 -R273 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010231">
|
<testCase id="010231">
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>550</physim_time_threshold>
|
<physim_time_threshold>550</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m25 -r273 -R273 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m25 -r273 -R273 -C10 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010311">
|
<testCase id="010311">
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>250</physim_time_threshold>
|
<physim_time_threshold>250</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m5 -r273 -R273 -C10 -W2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m5 -r273 -R273 -C10 -W2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010321">
|
<testCase id="010321">
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>650</physim_time_threshold>
|
<physim_time_threshold>650</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m15 -r273 -R273 -C10 -W2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m15 -r273 -R273 -C10 -W2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="010331">
|
<testCase id="010331">
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_ulsim</physim_test>
|
<physim_test>nr_ulsim</physim_test>
|
||||||
<physim_time_threshold>1100</physim_time_threshold>
|
<physim_time_threshold>1100</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -m25 -r273 -R273 -C10 -W2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -m25 -r273 -R273 -C10 -W2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>100</physim_time_threshold>
|
<physim_time_threshold>100</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b106 -R106 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b106 -R106 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000121">
|
<testCase id="000121">
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>100</physim_time_threshold>
|
<physim_time_threshold>100</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b106 -R106 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b106 -R106 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000131">
|
<testCase id="000131">
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>200</physim_time_threshold>
|
<physim_time_threshold>200</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b106 -R106 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b106 -R106 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000211">
|
<testCase id="000211">
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>150</physim_time_threshold>
|
<physim_time_threshold>150</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b273 -R273 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b273 -R273 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000221">
|
<testCase id="000221">
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>250</physim_time_threshold>
|
<physim_time_threshold>250</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b273 -R273 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b273 -R273 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000231">
|
<testCase id="000231">
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>400</physim_time_threshold>
|
<physim_time_threshold>400</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b273 -R273 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b273 -R273 -X4,5,6,7,8,9 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000311">
|
<testCase id="000311">
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>200</physim_time_threshold>
|
<physim_time_threshold>200</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b273 -R273 -X4,5,6,7,8,9 -x2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b273 -R273 -X4,5,6,7,8,9 -x2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000321">
|
<testCase id="000321">
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>500</physim_time_threshold>
|
<physim_time_threshold>500</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b273 -R273 -X4,5,6,7,8,9 -x2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b273 -R273 -X4,5,6,7,8,9 -x2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000331">
|
<testCase id="000331">
|
||||||
@@ -207,7 +207,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>500</physim_time_threshold>
|
<physim_time_threshold>500</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b273 -R273 -X4,5,6,7,8,9 -x2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b273 -R273 -X4,5,6,7,8,9 -x2 -z2 -y2 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000411">
|
<testCase id="000411">
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>200</physim_time_threshold>
|
<physim_time_threshold>200</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b273 -R273 -X4,5,6,7,8,9 -x2 -z4 -y4 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e5 -b273 -R273 -X4,5,6,7,8,9 -x2 -z4 -y4 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000421">
|
<testCase id="000421">
|
||||||
@@ -243,7 +243,7 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>300</physim_time_threshold>
|
<physim_time_threshold>300</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b273 -R273 -X4,5,6,7,8,9 -x2 -z4 -y4 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e15 -b273 -R273 -X4,5,6,7,8,9 -x2 -z4 -y4 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000431">
|
<testCase id="000431">
|
||||||
@@ -261,6 +261,6 @@
|
|||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<physim_test>nr_dlsim</physim_test>
|
<physim_test>nr_dlsim</physim_test>
|
||||||
<physim_time_threshold>450</physim_time_threshold>
|
<physim_time_threshold>450</physim_time_threshold>
|
||||||
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b273 -R273 -X4,5,6,7,8,9 -x2 -z4 -y4 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev d8:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
<physim_run_args>-n1000 -s30 -S30.2 -e25 -b273 -R273 -X4,5,6,7,8,9 -x2 -z4 -y4 -P --loader.ldpc.shlibversion _t2 --nrLDPC_coding_t2.dpdk_dev af:00.0 --nrLDPC_coding_t2.dpdk_core_list 11-12</physim_run_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ services:
|
|||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
environment:
|
environment:
|
||||||
USE_ADDITIONAL_OPTIONS: --rfsim -r 25 --numerology 0 --uicc0.imsi 208990100001100 --band 66 -C 2152680000 --CO -400000000 --ssb 48 --rfsimulator.serveraddr 192.168.71.141 --log_config.global_log_options level,nocolor,time
|
USE_ADDITIONAL_OPTIONS: --rfsim -r 25 --numerology 0 --uicc0.imsi 208990100001100 --band 66 -C 2152680000 --CO -400000000 --ssb 48 --rfsimulator.serveraddr 192.168.71.141 --extra-pdu-id 2 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-pnf
|
- oai-pnf
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -252,6 +252,12 @@ static __attribute__((always_inline)) inline int count_bits64(uint64_t v)
|
|||||||
return __builtin_popcountll(v);
|
return __builtin_popcountll(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __attribute__((always_inline)) inline int count_bits64_with_mask(uint64_t v, int start, int num)
|
||||||
|
{
|
||||||
|
uint64_t mask = ((1LL << num) - 1) << start;
|
||||||
|
return count_bits64(v & mask);
|
||||||
|
}
|
||||||
|
|
||||||
uint64_t reverse_bits(uint64_t in, int n_bits);
|
uint64_t reverse_bits(uint64_t in, int n_bits);
|
||||||
void reverse_bits_u8(uint8_t const* in, size_t sz, uint8_t* out);
|
void reverse_bits_u8(uint8_t const* in, size_t sz, uint8_t* out);
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -23,6 +23,7 @@
|
|||||||
| matix | Matix | gNB (n77) | N310 |
|
| matix | Matix | gNB (n77) | N310 |
|
||||||
| gracehopper1-oai | Gracehopper1 | gNB (n78, PNF/Nvidia CUBB + VNF) | Foxconn RU, _Nvidia Aerial integration_ |
|
| gracehopper1-oai | Gracehopper1 | gNB (n78, PNF/Nvidia CUBB + VNF) | Foxconn RU, _Nvidia Aerial integration_ |
|
||||||
| gracehopper3-oai | Gracehopper3 | build | -- |
|
| gracehopper3-oai | Gracehopper3 | build | -- |
|
||||||
|
| acamas | Acamas | 4G and 5G rfsimulator| -- |
|
||||||
|
|
||||||
Note: The available resources, and their current usage, is indicated here:
|
Note: The available resources, and their current usage, is indicated here:
|
||||||
- [Lockable resources of jenkins-oai](https://jenkins-oai.eurecom.fr/lockable-resources/):
|
- [Lockable resources of jenkins-oai](https://jenkins-oai.eurecom.fr/lockable-resources/):
|
||||||
@@ -178,11 +179,11 @@ information on how the images are built.
|
|||||||
- see [`./physical-simulators.md`](./physical-simulators.md) for an overview
|
- see [`./physical-simulators.md`](./physical-simulators.md) for an overview
|
||||||
- [RAN-RF-Sim-Test-4G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-4G/)
|
- [RAN-RF-Sim-Test-4G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-4G/)
|
||||||
~4G-LTE
|
~4G-LTE
|
||||||
- cacofonix (eNB, lteUE, OAI EPC)
|
- acamas (eNB, lteUE, OAI EPC)
|
||||||
- uses RFsimulator, for FDD 5, 10, 20MHz with core, 5MHz noS1
|
- uses RFsimulator, for FDD 5, 10, 20MHz with core, 5MHz noS1
|
||||||
- [RAN-RF-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-5G/)
|
- [RAN-RF-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-5G/)
|
||||||
~5G-NR ~nrUE
|
~5G-NR ~nrUE
|
||||||
- cacofonix (gNB, nrUE, OAI 5GC)
|
- acamas (gNB, nrUE, OAI 5GC)
|
||||||
- uses RFsimulator, TDD 40MHz, FDD 40MHz, F1 split
|
- uses RFsimulator, TDD 40MHz, FDD 40MHz, F1 split
|
||||||
- [RAN-SA-AW2S-CN5G](https://jenkins-oai.eurecom.fr/job/RAN-SA-AW2S-CN5G/)
|
- [RAN-SA-AW2S-CN5G](https://jenkins-oai.eurecom.fr/job/RAN-SA-AW2S-CN5G/)
|
||||||
~5G-NR
|
~5G-NR
|
||||||
|
|||||||
@@ -307,16 +307,6 @@ int8_t get_next_dmrs_symbol_in_slot(uint16_t ul_dmrs_symb_pos, uint8_t counter,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* return the total number of dmrs symbol in a slot */
|
|
||||||
uint8_t get_dmrs_symbols_in_slot(uint16_t l_prime_mask, uint16_t nb_symb, uint8_t start)
|
|
||||||
{
|
|
||||||
uint8_t tmp = 0;
|
|
||||||
for (int i = start; i < start + nb_symb; i++) {
|
|
||||||
tmp += (l_prime_mask >> i) & 0x01;
|
|
||||||
}
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return the position of valid dmrs symbol in a slot for channel compensation */
|
/* return the position of valid dmrs symbol in a slot for channel compensation */
|
||||||
int8_t get_valid_dmrs_idx_for_channel_est(uint16_t dmrs_symb_pos, uint8_t counter)
|
int8_t get_valid_dmrs_idx_for_channel_est(uint16_t dmrs_symb_pos, uint8_t counter)
|
||||||
{
|
{
|
||||||
@@ -351,7 +341,7 @@ void nr_chest_time_domain_avg(NR_DL_FRAME_PARMS *frame_parms,
|
|||||||
simde__m128i *ul_ch128_1;
|
simde__m128i *ul_ch128_1;
|
||||||
int16_t *ul_ch16_0;
|
int16_t *ul_ch16_0;
|
||||||
int total_symbols = start_symbol + num_symbols;
|
int total_symbols = start_symbol + num_symbols;
|
||||||
int num_dmrs_symb = get_dmrs_symbols_in_slot(dmrs_bitmap, total_symbols, start_symbol);
|
int num_dmrs_symb = count_bits64_with_mask(dmrs_bitmap, start_symbol, total_symbols);
|
||||||
int first_dmrs_symb = get_next_dmrs_symbol_in_slot(dmrs_bitmap, start_symbol, total_symbols);
|
int first_dmrs_symb = get_next_dmrs_symbol_in_slot(dmrs_bitmap, start_symbol, total_symbols);
|
||||||
AssertFatal(first_dmrs_symb > -1, "No DMRS symbol present in this slot\n");
|
AssertFatal(first_dmrs_symb > -1, "No DMRS symbol present in this slot\n");
|
||||||
for (int aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
|
for (int aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ uint8_t allowed_xlsch_re_in_dmrs_symbol(uint16_t k,
|
|||||||
|
|
||||||
void nr_gen_ref_conj_symbols(const uint32_t *in, uint32_t length, int16_t *output, int mod_order);
|
void nr_gen_ref_conj_symbols(const uint32_t *in, uint32_t length, int16_t *output, int mod_order);
|
||||||
int8_t get_next_dmrs_symbol_in_slot(uint16_t ul_dmrs_symb_pos, uint8_t counter, uint8_t end_symbol);
|
int8_t get_next_dmrs_symbol_in_slot(uint16_t ul_dmrs_symb_pos, uint8_t counter, uint8_t end_symbol);
|
||||||
uint8_t get_dmrs_symbols_in_slot(uint16_t l_prime_mask, uint16_t nb_symb, uint8_t start);
|
|
||||||
int8_t get_valid_dmrs_idx_for_channel_est(uint16_t dmrs_symb_pos, uint8_t counter);
|
int8_t get_valid_dmrs_idx_for_channel_est(uint16_t dmrs_symb_pos, uint8_t counter);
|
||||||
void nr_chest_time_domain_avg(NR_DL_FRAME_PARMS *frame_parms,
|
void nr_chest_time_domain_avg(NR_DL_FRAME_PARMS *frame_parms,
|
||||||
int32_t **ch_estimates,
|
int32_t **ch_estimates,
|
||||||
|
|||||||
@@ -821,10 +821,8 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, N
|
|||||||
AssertFatal(ulsch_harq != NULL, "harq_pid %d is not allocated\n", ulsch->harq_pid);
|
AssertFatal(ulsch_harq != NULL, "harq_pid %d is not allocated\n", ulsch->harq_pid);
|
||||||
if ((ulsch->active == true) && (ulsch->frame == frame_rx) && (ulsch->slot == slot_rx) && (ulsch->handled == 0)) {
|
if ((ulsch->active == true) && (ulsch->frame == frame_rx) && (ulsch->slot == slot_rx) && (ulsch->handled == 0)) {
|
||||||
LOG_D(PHY, "PUSCH ID %d with RNTI %x detection started in frame %d slot %d\n", ULSCH_id, ulsch->rnti, frame_rx, slot_rx);
|
LOG_D(PHY, "PUSCH ID %d with RNTI %x detection started in frame %d slot %d\n", ULSCH_id, ulsch->rnti, frame_rx, slot_rx);
|
||||||
|
nfapi_nr_pusch_pdu_t *pdu = &ulsch_harq->ulsch_pdu;
|
||||||
int num_dmrs = 0;
|
int num_dmrs = count_bits64_with_mask(pdu->ul_dmrs_symb_pos, 0, NR_NUMBER_OF_SYMBOLS_PER_SLOT);
|
||||||
for (int s = 0; s < NR_NUMBER_OF_SYMBOLS_PER_SLOT; s++)
|
|
||||||
num_dmrs += (ulsch_harq->ulsch_pdu.ul_dmrs_symb_pos >> s) & 1;
|
|
||||||
|
|
||||||
#ifdef DEBUG_RXDATA
|
#ifdef DEBUG_RXDATA
|
||||||
NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms;
|
NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms;
|
||||||
@@ -832,7 +830,6 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, N
|
|||||||
int slot_offset = frame_parms->get_samples_slot_timestamp(slot_rx, frame_parms, 0);
|
int slot_offset = frame_parms->get_samples_slot_timestamp(slot_rx, frame_parms, 0);
|
||||||
slot_offset -= ru->N_TA_offset;
|
slot_offset -= ru->N_TA_offset;
|
||||||
int32_t sample_offset = gNB->common_vars.debugBuff_sample_offset;
|
int32_t sample_offset = gNB->common_vars.debugBuff_sample_offset;
|
||||||
nfapi_nr_pusch_pdu_t *pdu = &ulsch_harq->ulsch_pdu;
|
|
||||||
int16_t *buf = (int16_t *)&gNB->common_vars.debugBuff[offset];
|
int16_t *buf = (int16_t *)&gNB->common_vars.debugBuff[offset];
|
||||||
buf[0] = (int16_t)ulsch->rnti;
|
buf[0] = (int16_t)ulsch->rnti;
|
||||||
buf[1] = (int16_t)pdu->rb_size;
|
buf[1] = (int16_t)pdu->rb_size;
|
||||||
|
|||||||
@@ -847,14 +847,12 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
uint8_t length_dmrs = pusch_len1;
|
uint8_t length_dmrs = pusch_len1;
|
||||||
uint16_t l_prime_mask = get_l_prime(nb_symb_sch, mapping_type, add_pos, length_dmrs, start_symbol, NR_MIB__dmrs_TypeA_Position_pos2);
|
uint16_t l_prime_mask = get_l_prime(nb_symb_sch, mapping_type, add_pos, length_dmrs, start_symbol, NR_MIB__dmrs_TypeA_Position_pos2);
|
||||||
uint16_t number_dmrs_symbols = get_dmrs_symbols_in_slot(l_prime_mask, nb_symb_sch, start_symbol);
|
int number_dmrs_symbols = count_bits64_with_mask(l_prime_mask, start_symbol, nb_symb_sch);
|
||||||
uint8_t nb_re_dmrs = (dmrs_config_type == pusch_dmrs_type1) ? 6 : 4;
|
uint8_t nb_re_dmrs = (dmrs_config_type == pusch_dmrs_type1) ? 6 : 4;
|
||||||
|
|
||||||
uint32_t tbslbrm = 0;
|
uint32_t tbslbrm = 0;
|
||||||
if (ilbrm)
|
if (ilbrm)
|
||||||
tbslbrm = nr_compute_tbslbrm(mcs_table,
|
tbslbrm = nr_compute_tbslbrm(mcs_table, N_RB_UL, precod_nbr_layers);
|
||||||
N_RB_UL,
|
|
||||||
precod_nbr_layers);
|
|
||||||
|
|
||||||
if ((UE->frame_parms.nb_antennas_tx==4)&&(precod_nbr_layers==4))
|
if ((UE->frame_parms.nb_antennas_tx==4)&&(precod_nbr_layers==4))
|
||||||
num_dmrs_cdm_grps_no_data = 2;
|
num_dmrs_cdm_grps_no_data = 2;
|
||||||
|
|||||||
@@ -797,12 +797,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
|
|
||||||
int start_symbol = pusch_config_pdu->start_symbol_index;
|
int start_symbol = pusch_config_pdu->start_symbol_index;
|
||||||
int number_of_symbols = pusch_config_pdu->nr_of_symbols;
|
int number_of_symbols = pusch_config_pdu->nr_of_symbols;
|
||||||
int number_dmrs_symbols = 0;
|
int number_dmrs_symbols = count_bits64_with_mask(pusch_config_pdu->ul_dmrs_symb_pos, start_symbol, number_of_symbols);
|
||||||
for (int i = start_symbol; i < start_symbol + number_of_symbols; i++) {
|
|
||||||
if ((pusch_config_pdu->ul_dmrs_symb_pos >> i) & 0x01)
|
|
||||||
number_dmrs_symbols += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int nb_dmrs_re_per_rb =
|
int nb_dmrs_re_per_rb =
|
||||||
((pusch_config_pdu->dmrs_config_type == pusch_dmrs_type1) ? 6 : 4) * pusch_config_pdu->num_dmrs_cdm_grps_no_data;
|
((pusch_config_pdu->dmrs_config_type == pusch_dmrs_type1) ? 6 : 4) * pusch_config_pdu->num_dmrs_cdm_grps_no_data;
|
||||||
|
|
||||||
|
|||||||
@@ -293,9 +293,7 @@ static void schedule_nr_MsgA_pusch(NR_UplinkConfigCommon_t *uplinkConfigCommon,
|
|||||||
pusch_pdu->mcs_index = msgA_PUSCH_Resource->msgA_MCS_r16;
|
pusch_pdu->mcs_index = msgA_PUSCH_Resource->msgA_MCS_r16;
|
||||||
pusch_pdu->qam_mod_order = nr_get_Qm_dl(pusch_pdu->mcs_index, pusch_pdu->mcs_table);
|
pusch_pdu->qam_mod_order = nr_get_Qm_dl(pusch_pdu->mcs_index, pusch_pdu->mcs_table);
|
||||||
|
|
||||||
int num_dmrs_symb = 0;
|
int num_dmrs_symb = count_bits64_with_mask(pusch_pdu->ul_dmrs_symb_pos, 10, 3);
|
||||||
for (int i = 10; i < 10 + 3; i++)
|
|
||||||
num_dmrs_symb += (pusch_pdu->ul_dmrs_symb_pos >> i) & 1;
|
|
||||||
AssertFatal(pusch_pdu->mcs_index <= 28, "Exceeding MCS limit for MsgA PUSCH\n");
|
AssertFatal(pusch_pdu->mcs_index <= 28, "Exceeding MCS limit for MsgA PUSCH\n");
|
||||||
int R = nr_get_code_rate_ul(pusch_pdu->mcs_index, pusch_pdu->mcs_table);
|
int R = nr_get_code_rate_ul(pusch_pdu->mcs_index, pusch_pdu->mcs_table);
|
||||||
pusch_pdu->target_code_rate = R;
|
pusch_pdu->target_code_rate = R;
|
||||||
@@ -820,9 +818,7 @@ static void nr_generate_Msg3_retransmission(module_id_t module_idP,
|
|||||||
uint16_t *vrb_map_UL = &nr_mac->common_channels[CC_id].vrb_map_UL[beam_ul.idx][buffer_index * MAX_BWP_SIZE];
|
uint16_t *vrb_map_UL = &nr_mac->common_channels[CC_id].vrb_map_UL[beam_ul.idx][buffer_index * MAX_BWP_SIZE];
|
||||||
|
|
||||||
NR_pusch_dmrs_t dmrs_info = get_ul_dmrs_params(scc, ul_bwp, &tda_info, 1);
|
NR_pusch_dmrs_t dmrs_info = get_ul_dmrs_params(scc, ul_bwp, &tda_info, 1);
|
||||||
int num_dmrs_symb = 0;
|
int num_dmrs_symb = count_bits64_with_mask(dmrs_info.ul_dmrs_symb_pos, tda_info.startSymbolIndex, tda_info.nrOfSymbols);
|
||||||
for(int i = tda_info.startSymbolIndex; i < tda_info.startSymbolIndex + tda_info.nrOfSymbols; i++)
|
|
||||||
num_dmrs_symb += (dmrs_info.ul_dmrs_symb_pos >> i) & 1;
|
|
||||||
int TBS = 0, mcsindex = 0, R = 0, Qm = 0;
|
int TBS = 0, mcsindex = 0, R = 0, Qm = 0;
|
||||||
while(TBS < 7) { // TBS for msg3 is 7 bytes (except for RRCResumeRequest1 currently not implemented)
|
while(TBS < 7) { // TBS for msg3 is 7 bytes (except for RRCResumeRequest1 currently not implemented)
|
||||||
mcsindex++;
|
mcsindex++;
|
||||||
@@ -1157,9 +1153,7 @@ static void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, slot_
|
|||||||
|
|
||||||
NR_tda_info_t tda_info = get_ul_tda_info(ul_bwp, 0, NR_SearchSpace__searchSpaceType_PR_common, TYPE_TC_RNTI_, ra->Msg3_tda_id);
|
NR_tda_info_t tda_info = get_ul_tda_info(ul_bwp, 0, NR_SearchSpace__searchSpaceType_PR_common, TYPE_TC_RNTI_, ra->Msg3_tda_id);
|
||||||
NR_pusch_dmrs_t dmrs_info = get_ul_dmrs_params(scc, ul_bwp, &tda_info, 1);
|
NR_pusch_dmrs_t dmrs_info = get_ul_dmrs_params(scc, ul_bwp, &tda_info, 1);
|
||||||
int num_dmrs_symb = 0;
|
int num_dmrs_symb = count_bits64_with_mask(dmrs_info.ul_dmrs_symb_pos, tda_info.startSymbolIndex, tda_info.nrOfSymbols);
|
||||||
for(int i = tda_info.startSymbolIndex; i < tda_info.startSymbolIndex + tda_info.nrOfSymbols; i++)
|
|
||||||
num_dmrs_symb += (dmrs_info.ul_dmrs_symb_pos >> i) & 1;
|
|
||||||
int TBS = 0, mcsindex = 0, R = 0, Qm = 0;
|
int TBS = 0, mcsindex = 0, R = 0, Qm = 0;
|
||||||
while(TBS < 7) { // TBS for msg3 is 7 bytes (except for RRCResumeRequest1 currently not implemented)
|
while(TBS < 7) { // TBS for msg3 is 7 bytes (except for RRCResumeRequest1 currently not implemented)
|
||||||
mcsindex++;
|
mcsindex++;
|
||||||
|
|||||||
@@ -762,10 +762,7 @@ NR_pusch_dmrs_t get_ul_dmrs_params(const NR_ServingCellConfigCommon_t *scc,
|
|||||||
tda_info->startSymbolIndex,
|
tda_info->startSymbolIndex,
|
||||||
scc->dmrs_TypeA_Position);
|
scc->dmrs_TypeA_Position);
|
||||||
|
|
||||||
uint8_t num_dmrs_symb = 0;
|
dmrs.num_dmrs_symb = count_bits64_with_mask(dmrs.ul_dmrs_symb_pos, tda_info->startSymbolIndex, tda_info->nrOfSymbols);
|
||||||
for(int i = tda_info->startSymbolIndex; i < tda_info->startSymbolIndex + tda_info->nrOfSymbols; i++)
|
|
||||||
num_dmrs_symb += (dmrs.ul_dmrs_symb_pos >> i) & 1;
|
|
||||||
dmrs.num_dmrs_symb = num_dmrs_symb;
|
|
||||||
dmrs.N_PRB_DMRS = dmrs.num_dmrs_cdm_grps_no_data * (dmrs.dmrs_config_type == 0 ? 6 : 4);
|
dmrs.N_PRB_DMRS = dmrs.num_dmrs_cdm_grps_no_data * (dmrs.dmrs_config_type == 0 ? 6 : 4);
|
||||||
return dmrs;
|
return dmrs;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3503,7 +3503,8 @@ static bool verify_radio_configuration(int uid, const NR_ServingCellConfigCommon
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int n_dl_bwp = scd->downlinkBWP_ToAddModList ? scd->downlinkBWP_ToAddModList->list.count : 1;
|
/* for RedCap, scd is NULL */
|
||||||
|
int n_dl_bwp = scd && scd->downlinkBWP_ToAddModList ? scd->downlinkBWP_ToAddModList->list.count : 1;
|
||||||
int csi_offset = fs->numb_slots_period * n_dl_bwp;
|
int csi_offset = fs->numb_slots_period * n_dl_bwp;
|
||||||
// see set_csirs_periodicity
|
// see set_csirs_periodicity
|
||||||
if (csi_offset / 320 >= get_full_dl_slots_per_period(fs)) {
|
if (csi_offset / 320 >= get_full_dl_slots_per_period(fs)) {
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ static buffer_t *allocCirBuf(rfsimulator_state_t *bridge, int sock)
|
|||||||
sizeofArray(modelname),
|
sizeofArray(modelname),
|
||||||
"rfsimu_channel_%s%d",
|
"rfsimu_channel_%s%d",
|
||||||
(bridge->role == SIMU_ROLE_SERVER) ? "ue" : "enB",
|
(bridge->role == SIMU_ROLE_SERVER) ? "ue" : "enB",
|
||||||
bridge->nb_cnx);
|
bridge->nb_cnx - 1);
|
||||||
ptr->channel_model = find_channel_desc_fromname(modelname); // path_loss in dB
|
ptr->channel_model = find_channel_desc_fromname(modelname); // path_loss in dB
|
||||||
if (!ptr->channel_model) {
|
if (!ptr->channel_model) {
|
||||||
// Use legacy method to find channel model - this will use the same channel model for all clients
|
// Use legacy method to find channel model - this will use the same channel model for all clients
|
||||||
|
|||||||
Reference in New Issue
Block a user