mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
Merge remote-tracking branch 'origin/ci-add-jetson-test' into integration_2026_w10 (!3784)
CI: Create new pipeline for testing with Aerial and Jetson
This commit is contained in:
@@ -795,6 +795,29 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("SA-AERIAL-OAIUE-CN5G") {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-AERIAL-OAIUE-CN5G', 'SA-AERIAL-OAIUE-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saAERIALOAIUEStatus = finalizeSlaveJob('RAN-SA-AERIAL-OAIUE-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
currentBuild.result = 'FAILURE'
|
||||
failingStages += saAERIALOAIUEStatus
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("SA-OAIUE-CN5G") {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
|
||||
@@ -101,6 +101,14 @@ oc-cn5g-20897-aerial:
|
||||
Undeploy: "! scripts/oc-cn5g-undeploy.sh /opt/oai-cn5g-fed-develop-2025-jan oaicicd-core-for-nvidia-aerial"
|
||||
LogCollect: "! scripts/oc-cn5g-logcollect.sh /opt/oai-cn5g-fed-develop-2025-jan oaicicd-core-for-nvidia-aerial %%log_dir%%"
|
||||
|
||||
oc-cn5g-00104:
|
||||
Host: gracehopper1-oai
|
||||
NetworkScript: echo "inet 172.21.6.105"
|
||||
RunIperf3Server: False
|
||||
Deploy: "! scripts/oc-cn5g-deploy.sh /opt/oai-cn5g-fed-develop-00104 oaicicd-core-for-nvidia-aerial"
|
||||
Undeploy: "! scripts/oc-cn5g-undeploy.sh /opt/oai-cn5g-fed-develop-00104 oaicicd-core-for-nvidia-aerial"
|
||||
LogCollect: "! scripts/oc-cn5g-logcollect.sh /opt/oai-cn5g-fed-develop-00104 oaicicd-core-for-nvidia-aerial %%log_dir%%"
|
||||
|
||||
matix-cn5g:
|
||||
Host: matix
|
||||
NetworkScript: docker exec prod-trf-gen ip a show dev eth0
|
||||
@@ -300,6 +308,14 @@ oai_ue_caracal:
|
||||
IF: oaitun_ue1
|
||||
MTU: 1500
|
||||
|
||||
oai_ue_jetson2:
|
||||
Host: jetson2-oai
|
||||
AttachScript: 'docker start oai-nr-ue'
|
||||
DetachScript: 'docker stop oai-nr-ue'
|
||||
NetworkScript: ip a show dev oaitun_ue1
|
||||
IF: oaitun_ue1
|
||||
MTU: 1500
|
||||
|
||||
lte_oai_ue_carabe:
|
||||
Host: carabe
|
||||
NetworkScript: docker exec lte-b200-ue-fdd-10Mhz-tm1 ip a show dev oaitun_ue1
|
||||
|
||||
226
ci-scripts/conf_files/gnb-vnf.sa.band78.78prb.aerial.conf
Normal file
226
ci-scripts/conf_files/gnb-vnf.sa.band78.78prb.aerial.conf
Normal file
@@ -0,0 +1,226 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
nfapi = "AERIAL";
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({mcc = 001; mnc = 04; mnc_length = 2; snssaiList = ({sst = 1;});});
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
pdsch_AntennaPorts_XP = 2;
|
||||
pdsch_AntennaPorts_N1 = 2;
|
||||
pusch_AntennaPorts = 2;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
min_rxtxtime = 6;
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
#spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# center frequency = 3350.01 MHz
|
||||
# selected SSB frequency = 3349.92 MHz
|
||||
absoluteFrequencySSB = 623328;
|
||||
dl_frequencyBand = 78;
|
||||
# frequency point A = 3300.87 MHz
|
||||
dl_absoluteFrequencyPointA = 622398;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 78;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart))
|
||||
initialDLBWPlocationAndBandwidth = 21175;
|
||||
#
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 12;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 78;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 21175;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 148;# testMAC 158; OAI gNB 98
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 12;
|
||||
preambleReceivedTargetPower = -96;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
#one (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant = -90;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -90;
|
||||
|
||||
ssb_PositionsInBurst_Bitmap = 1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6; #5;
|
||||
nrofDownlinkSlots = 6; #3;
|
||||
nrofDownlinkSymbols = 10; #6;
|
||||
nrofUplinkSlots = 3; #1;
|
||||
nrofUplinkSymbols = 0;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ({ ipv4 = "172.21.6.103"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.53";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.53";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50001; // vnf p5 port
|
||||
remote_s_portc = 50000; // pnf p5 port [!]
|
||||
local_s_portd = 50011; // vnf p7 port [!]
|
||||
remote_s_portd = 50010; // pnf p7 port [!]
|
||||
tr_s_preference = "aerial";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 180; # 150;
|
||||
pucch_TargetSNRx10 = 180; #200;
|
||||
ulsch_max_frame_inactivity = 10;
|
||||
dl_max_mcs = 28;
|
||||
ul_max_mcs = 28;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="debug";
|
||||
}
|
||||
93
ci-scripts/scripts/set-wnc-bandwidth.sh
Normal file
93
ci-scripts/scripts/set-wnc-bandwidth.sh
Normal file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <bandwidth> [reboot]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BANDWIDTH="$1"
|
||||
DO_REBOOT="$2"
|
||||
RU_IP="10.10.0.115"
|
||||
HOST="root@$RU_IP"
|
||||
LOGFILE="/tmp/radio_config_$(date +%Y%m%d_%H%M%S).log"
|
||||
|
||||
echo "=== Starting at $(date) ===" | tee "$LOGFILE"
|
||||
echo "Target bandwidth: $BANDWIDTH" | tee -a "$LOGFILE"
|
||||
echo "Reboot before configuration: ${DO_REBOOT:-no}" | tee -a "$LOGFILE"
|
||||
|
||||
if [ "$DO_REBOOT" == "reboot" ]; then
|
||||
echo "=== Rebooting RU ($RU_IP) ... ===" | tee -a "$LOGFILE"
|
||||
|
||||
expect <<EOF | tee -a "$LOGFILE" > /dev/null 2>&1
|
||||
set timeout 10
|
||||
spawn ssh -tt $HOST
|
||||
|
||||
expect "#"
|
||||
send "reboot\r"
|
||||
expect "Continue?"
|
||||
send "Y\r"
|
||||
# We expect disconnect now
|
||||
expect eof
|
||||
EOF
|
||||
|
||||
echo "→ Waiting for $RU_IP SSH to go down..." | tee -a "$LOGFILE"
|
||||
sleep 10
|
||||
|
||||
echo "→ Waiting for $RU_IP SSH port 22 to be open..." | tee -a "$LOGFILE"
|
||||
while ! nc -zv $RU_IP 22 >/dev/null 2>&1; do
|
||||
echo "SSH port 22 not open, waiting 5 seconds..." | tee -a "$LOGFILE"
|
||||
sleep 5
|
||||
done
|
||||
echo "✓ SSH port 22 is open on $RU_IP" | tee -a "$LOGFILE"
|
||||
fi
|
||||
|
||||
echo "=== Applying bandwidth configuration ===" | tee -a "$LOGFILE"
|
||||
|
||||
expect <<EOF | tee -a "$LOGFILE" > /dev/null 2>&1
|
||||
set timeout 10
|
||||
spawn ssh -tt $HOST
|
||||
|
||||
expect "#"
|
||||
send "radio disable\r"
|
||||
|
||||
expect "#"
|
||||
send "config\r"
|
||||
|
||||
expect "(config)#"
|
||||
send "radio 1\r"
|
||||
|
||||
expect "(conf-rf 1)#"
|
||||
send "bandwidth ${BANDWIDTH}\r"
|
||||
|
||||
expect "(conf-rf 1)#"
|
||||
send "exit\r"
|
||||
|
||||
expect "(config)#"
|
||||
send "exit\r"
|
||||
|
||||
expect "#"
|
||||
send "radio enable\r"
|
||||
|
||||
expect "#"
|
||||
send "show running-config\r"
|
||||
|
||||
expect "#"
|
||||
send "exit\r"
|
||||
EOF
|
||||
|
||||
echo "=== Checking bandwidth in running-config ===" | tee -a "$LOGFILE"
|
||||
|
||||
FOUND_BW=$(grep -E "bandwidth[[:space:]]+[0-9]+" "$LOGFILE" \
|
||||
| tail -n 1 \
|
||||
| awk '{print $2}' \
|
||||
| tr -d '\r[:space:]')
|
||||
|
||||
if [ "$FOUND_BW" -eq "$BANDWIDTH" ]; then
|
||||
echo "✓ SUCCESS: Bandwidth correctly set to $FOUND_BW" | tee -a "$LOGFILE"
|
||||
rm "$LOGFILE"
|
||||
exit 0
|
||||
else
|
||||
echo "✖ ERROR: Expected bandwidth $BANDWIDTH but found: $FOUND_BW" | tee -a "$LOGFILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -33,6 +33,15 @@
|
||||
<tag_prefix>arm_</tag_prefix>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Custom_Script</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Configure 100 MHz bandwidth on WNC RU</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<script>scripts/set-wnc-bandwidth.sh</script>
|
||||
<args>100</args>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Detach_UE</class>
|
||||
<always_exec>true</always_exec>
|
||||
|
||||
@@ -33,6 +33,15 @@
|
||||
<tag_prefix>arm_</tag_prefix>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Custom_Script</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Configure 100 MHz bandwidth on WNC RU</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<script>scripts/set-wnc-bandwidth.sh</script>
|
||||
<args>100</args>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Detach_UE</class>
|
||||
<always_exec>true</always_exec>
|
||||
|
||||
212
ci-scripts/xml_files/container_sa_b200_nrue_jetson.xml
Normal file
212
ci-scripts/xml_files/container_sa_b200_nrue_jetson.xml
Normal file
@@ -0,0 +1,212 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>JETSON-5G-NRUE</htmlTabRef>
|
||||
<htmlTabName>30 MHz TDD SA JETSON</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<testCase>
|
||||
<class>DeployCoreNetwork</class>
|
||||
<desc>Initialize 5G Core</desc>
|
||||
<cn_id>oc-cn5g-00104</cn_id>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Pull_Local_Registry</class>
|
||||
<desc>Pull Images from Local Registry</desc>
|
||||
<node>jetson2-oai</node>
|
||||
<images>oai-nr-ue</images>
|
||||
<tag_prefix>armv8_</tag_prefix>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Pull_Local_Registry</class>
|
||||
<desc>Pull Images from Local Registry</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<images>oai-gnb-aerial</images>
|
||||
<tag_prefix>arm_</tag_prefix>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Create_Workspace</class>
|
||||
<desc>Create new Workspace</desc>
|
||||
<node>jetson2-oai</node>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Create_Workspace</class>
|
||||
<desc>Create new Workspace</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Custom_Script</class>
|
||||
<desc>Configure 30 MHz bandwidth on WNC RU</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<script>scripts/set-wnc-bandwidth.sh</script>
|
||||
<args>30</args>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Deploy_Object</class>
|
||||
<desc>Deploy PNF/Nvidia CUBB in a container</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<yaml_path>ci-scripts/yaml_files/sa_gnb_aerial_30MHz</yaml_path>
|
||||
<services>nv-cubb</services>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Deploy_Object</class>
|
||||
<desc>Deploy VNF in a container</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<yaml_path>ci-scripts/yaml_files/sa_gnb_aerial_30MHz</yaml_path>
|
||||
<services>oai-gnb-aerial</services>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Deploy_Object</class>
|
||||
<desc>Deploy nrUE (TDD/Band78/40MHz/N310) in a container</desc>
|
||||
<yaml_path>ci-scripts/yaml_files/sa_b200_jetson_nrue</yaml_path>
|
||||
<node>jetson2-oai</node>
|
||||
<num_attempts>3</num_attempts>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Attach_UE</class>
|
||||
<desc>Attach OAIUE</desc>
|
||||
<id>oai_ue_jetson2</id>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Custom_Command</class>
|
||||
<desc>Configure IP route</desc>
|
||||
<node>jetson2-oai</node>
|
||||
<command>sudo ip route add 172.21.6.105 via 13.1.1.100 dev oaitun_ue1</command>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Ping</class>
|
||||
<desc>Ping: 20pings in 20sec</desc>
|
||||
<id>oai_ue_jetson2</id>
|
||||
<svr_id>oc-cn5g-00104</svr_id>
|
||||
<ping_args>-c 20</ping_args>
|
||||
<ping_packetloss_threshold>1</ping_packetloss_threshold>
|
||||
<ping_rttavg_threshold>25</ping_rttavg_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (UL/10Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 10M -t 30 -i 1</iperf_args>
|
||||
<id>oai_ue_jetson2</id>
|
||||
<svr_id>oc-cn5g-00104</svr_id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (DL/10Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 10M -t 30 -i 1 -R</iperf_args>
|
||||
<id>oai_ue_jetson2</id>
|
||||
<svr_id>oc-cn5g-00104</svr_id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (UL/30Mbps/UDP)(30 sec)</desc>
|
||||
<may_fail>true</may_fail>
|
||||
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
||||
<id>oai_ue_jetson2</id>
|
||||
<svr_id>oc-cn5g-00104</svr_id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (DL/30Mbps/UDP)(30 sec)</desc>
|
||||
<may_fail>true</may_fail>
|
||||
<iperf_args>-u -b 30M -t 30 -i 1 -R</iperf_args>
|
||||
<id>oai_ue_jetson2</id>
|
||||
<svr_id>oc-cn5g-00104</svr_id>
|
||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Undeploy_Object</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Undeploy nr UE</desc>
|
||||
<node>jetson2-oai</node>
|
||||
<yaml_path>ci-scripts/yaml_files/sa_b200_jetson_nrue</yaml_path>
|
||||
<analysis>
|
||||
<services>oai-nr-ue</services>
|
||||
</analysis>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Undeploy_Object</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Undeploy gNB</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<yaml_path>ci-scripts/yaml_files/sa_gnb_aerial_30MHz</yaml_path>
|
||||
<analysis>
|
||||
<services>oai-gnb-aerial=RetxCheck=20,100,100,100 oai-gnb-aerial=EndsWithBye</services>
|
||||
</analysis>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Custom_Script</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Configure 100 MHz bandwidth on WNC RU</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<script>scripts/set-wnc-bandwidth.sh</script>
|
||||
<args>100</args>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Clean_Test_Server_Images</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Clean Test Images on Test Server</desc>
|
||||
<node>gracehopper1-oai</node>
|
||||
<images>oai-gnb-aerial</images>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>Clean_Test_Server_Images</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Clean Test Images on Test Server</desc>
|
||||
<node>jetson2-oai</node>
|
||||
<images>oai-nr-ue</images>
|
||||
</testCase>
|
||||
|
||||
<testCase>
|
||||
<class>UndeployCoreNetwork</class>
|
||||
<always_exec>true</always_exec>
|
||||
<desc>Terminate 5G Core</desc>
|
||||
<cn_id>oc-cn5g-00104</cn_id>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
27
ci-scripts/yaml_files/sa_b200_jetson_nrue/docker-compose.yml
Normal file
27
ci-scripts/yaml_files/sa_b200_jetson_nrue/docker-compose.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
services:
|
||||
oai-nr-ue:
|
||||
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||
network_mode: host
|
||||
container_name: oai-nr-ue
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- NET_ADMIN # for interface bringup
|
||||
- NET_RAW # for ping
|
||||
- SYS_NICE # for performance
|
||||
- IPC_LOCK # for memory locking
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
- /dev/bus/usb/:/dev/bus/usb/
|
||||
environment:
|
||||
TZ: Europe/Paris
|
||||
USE_B2XX: 'yes'
|
||||
USE_ADDITIONAL_OPTIONS: --usrp-args type=b200 -C 3350010000 -r 78 --numerology 1 --band 78 --ssb 345 --ue-fo-compensation --uicc0.imsi 001040000000001 --uicc0.pdu_sessions.[0].dnn oai.ipv4 -A 60 --thread-pool 5,6,7,8,9 --ue-txgain 15 --ue-rxgain 90
|
||||
cpuset: "3-11"
|
||||
volumes:
|
||||
- ../../conf_files/ue.sa.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||
healthcheck:
|
||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
32
ci-scripts/yaml_files/sa_gnb_aerial_30MHz/aerial_l1_entrypoint.sh
Executable file
32
ci-scripts/yaml_files/sa_gnb_aerial_30MHz/aerial_l1_entrypoint.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if cuBB_SDK is defined, if not, use default path
|
||||
cuBB_Path="${cuBB_SDK:-/opt/nvidia/cuBB}"
|
||||
|
||||
cd "$cuBB_Path" || exit 1
|
||||
|
||||
# Restart MPS
|
||||
# Export variables
|
||||
export CUDA_DEVICE_MAX_CONNECTIONS=8
|
||||
export CUDA_MPS_PIPE_DIRECTORY=/var
|
||||
export CUDA_MPS_LOG_DIRECTORY=/var
|
||||
|
||||
# Stop existing MPS
|
||||
echo quit | sudo -E nvidia-cuda-mps-control
|
||||
|
||||
# Start MPS
|
||||
sudo -E nvidia-cuda-mps-control -d
|
||||
sudo -E echo start_server -uid 0 | sudo -E nvidia-cuda-mps-control
|
||||
|
||||
# Start cuphycontroller_scf
|
||||
# Check if an argument is provided
|
||||
if [ $# -eq 0 ]; then
|
||||
# No argument provided, use default value
|
||||
argument="P5G_WNC_GH"
|
||||
else
|
||||
# Argument provided, use it
|
||||
argument="$1"
|
||||
fi
|
||||
|
||||
sudo -E "$cuBB_Path"/build.$(uname -m)/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument"
|
||||
sudo -E ./build.$(uname -m)/cuPHY-CP/gt_common_libs/nvIPC/tests/pcap/pcap_collect
|
||||
@@ -0,0 +1,243 @@
|
||||
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
aerial_sdk_version: 25-3-cubb
|
||||
l2adapter_filename: l2_adapter_config_P5G_GH.yaml
|
||||
aerial_metrics_backend_address: 127.0.0.1:8081
|
||||
|
||||
# CPU core shared by all low-priority threads
|
||||
low_priority_core: 10
|
||||
enable_ptp_svc_monitoring: 0
|
||||
ptp_rms_threshold: 20 #ns
|
||||
nic_tput_alert_threshold_mbps: 85000
|
||||
|
||||
cuphydriver_config:
|
||||
standalone: 0
|
||||
validation: 0
|
||||
num_slots: 8
|
||||
log_level: DBG
|
||||
profiler_sec: 0
|
||||
dpdk_thread: 10
|
||||
dpdk_verbose_logs: 0
|
||||
accu_tx_sched_res_ns: 500
|
||||
accu_tx_sched_disable: 0 #Flag applicable only for CX6-DX : BF3/CX7 HW and beyond support accurate send scheduling directly on timestamp, for CX6-DX this is implemented via software emulation
|
||||
fh_stats_dump_cpu_core: -1
|
||||
pdump_client_thread: -1
|
||||
use_green_contexts: 0
|
||||
use_batched_memcpy: 0 # Experimental feature; requires >= CUDA 12.8
|
||||
mps_sm_pusch: 100
|
||||
mps_sm_pucch: 2
|
||||
mps_sm_prach: 2
|
||||
mps_sm_ul_order: 20
|
||||
mps_sm_pdsch: 102
|
||||
mps_sm_pdcch: 10
|
||||
mps_sm_pbch: 2
|
||||
mps_sm_gpu_comms: 16
|
||||
mps_sm_srs: 16
|
||||
pdsch_fallback: 0
|
||||
dpdk_file_prefix: cuphycontroller
|
||||
nics:
|
||||
- nic: '0000:01:00.0'
|
||||
mtu: 9216
|
||||
cpu_mbufs: 196608
|
||||
uplane_tx_handles: 64
|
||||
txq_size: 8192
|
||||
rxq_size: 16384
|
||||
gpu: 0
|
||||
cus_port_failover: 0
|
||||
gpus:
|
||||
- 0
|
||||
# Set GPUID to the GPU sharing the PCIe switch as NIC
|
||||
# run nvidia-smi topo -m to find out which GPU
|
||||
workers_ul: [4,5]
|
||||
workers_dl: [6,7,8]
|
||||
debug_worker: -1
|
||||
workers_sched_priority: 95
|
||||
prometheus_thread: -1
|
||||
start_section_id_srs: 3072
|
||||
start_section_id_prach: 2048
|
||||
enable_ul_cuphy_graphs: 1
|
||||
enable_dl_cuphy_graphs: 1
|
||||
ul_order_kernel_mode: 0 # 0: Ping-Pong, 1: dual CTA
|
||||
ul_order_timeout_cpu_ns: 8000000
|
||||
ul_order_timeout_log_interval_ns: 1000000000
|
||||
ul_order_timeout_gpu_ns: 3000000
|
||||
ul_order_timeout_gpu_srs_ns: 5200000
|
||||
ul_srs_aggr3_task_launch_offset_ns: 500000
|
||||
ul_order_timeout_gpu_log_enable: 0
|
||||
ul_order_max_rx_pkts: 512
|
||||
ul_order_rx_pkts_timeout_ns: 100000
|
||||
cplane_disable: 0
|
||||
gpu_init_comms_dl: 1
|
||||
cell_group: 1
|
||||
cell_group_num: 1
|
||||
fix_beta_dl: 0
|
||||
bfw_beta_prescaler: 16384
|
||||
pusch_workCancelMode: 2 # set cuphyPuschStatPrms_t workCancelMode field to PUSCH_DEVICE_GRAPHS; this only sets the mode and does not cancel work;
|
||||
# work cancellation (i.e., not launching some of the device graphs) can only occur after an explicit internal
|
||||
# memory write is timely observed by a PUSCH graph.
|
||||
pusch_sinr: 2
|
||||
pusch_rssi: 1
|
||||
pusch_tdi: 1
|
||||
pusch_cfo: 1
|
||||
pusch_dftsofdm: 0
|
||||
pusch_to: 1
|
||||
pusch_select_eqcoeffalgo: 3
|
||||
pusch_select_chestalgo: 1
|
||||
pusch_enable_perprgchest: 0
|
||||
pusch_tbsizecheck: 1
|
||||
pusch_deviceGraphLaunchEn: 1
|
||||
pusch_waitTimeOutPreEarlyHarqUs: 3000
|
||||
pusch_waitTimeOutPostEarlyHarqUs: 3000
|
||||
puxch_polarDcdrListSz: 8
|
||||
enable_cpu_task_tracing: 0
|
||||
enable_prepare_tracing: 0
|
||||
disable_empw: 0 #1=>Disables Multi packet WQE feature
|
||||
cqe_tracer_config:
|
||||
enable_dl_cqe_tracing: 0
|
||||
cqe_trace_cell_mask: 1 #[64 bit mask: Bit0->Cell0, Bit1->Cell1...]
|
||||
cqe_trace_slot_mask: 196800 #[20 bit mask: Bit0->Slot0, Bit1->Slot1...] 196800=>All *6,*7 DL Slots
|
||||
ul_rx_pkt_tracing_level: 0
|
||||
ul_rx_pkt_tracing_level_srs: 0
|
||||
pmu_metrics: 0 #Enable and select PMU metrics, 0=disabled, 1=General Counters (platform agnostic), 2=Topdown Metrics (Grace only), 3=Cache Metrics (Grace only)
|
||||
enable_h2d_copy_thread: 1
|
||||
h2d_copy_thread_cpu_affinity : 11
|
||||
h2d_copy_thread_sched_priority : 95 #0->SCHED_OTHER, >0->Actual
|
||||
split_ul_cuda_streams: 0 # 1=Put UL slot 4 and slot 5 on different streams for DDDSUUDDDD pattern
|
||||
serialize_pucch_pusch: 0 # 1=Force serialization of PUSCH/PUCCH
|
||||
# Note: for Early Harq (EH) order is PUSCH EH -> PUCCH -> PUSCH non EH
|
||||
# for non-Early Harq order is PUCCH -> all PUSCH processing
|
||||
aggr_obj_non_avail_th: 5 # Threshold for consecutive non-availability of Aggregated objects(UL/DL) or DL/UL buffers
|
||||
dl_wait_th_ns:
|
||||
- 500000 #H2D copy wait threshold
|
||||
- 4000000 #cuPHY DL channel wait threshold
|
||||
sendCPlane_timing_error_th_ns : 0
|
||||
sendCPlane_ulbfw_backoff_th_ns: 300000 # ULBFW must be completed by cplane send time - this is the backoff time
|
||||
sendCPlane_dlbfw_backoff_th_ns: 300000 # DLBFW must be completed by cplane send time - this is the backoff time
|
||||
pusch_forcedNumCsi2Bits: 0
|
||||
mMIMO_enable: 0
|
||||
enable_srs: 1
|
||||
ue_mode: 0
|
||||
mCh_segment_proc_enable: 0
|
||||
pusch_aggr_per_ctx: 3
|
||||
prach_aggr_per_ctx: 2
|
||||
pucch_aggr_per_ctx: 4
|
||||
srs_aggr_per_ctx: 3
|
||||
ul_input_buffer_per_cell: 10
|
||||
ul_input_buffer_per_cell_srs: 6
|
||||
max_harq_pools: 384
|
||||
max_harq_tx_count_bundled: 10
|
||||
max_harq_tx_count_non_bundled: 4
|
||||
ok_testbench_config:
|
||||
enable_ok_tb: 0
|
||||
num_ok_tb_slot: 0 #Presently not used
|
||||
max_ru_unhealthy_ul_slots: 100
|
||||
srs_chest_algo_type: 0
|
||||
srs_chest_tol2_normalization_algo_type: 1
|
||||
srs_chest_tol2_constant_scaler: 32768.0
|
||||
bfw_power_normalization_alg_selector: 1
|
||||
total_num_srs_chest_buffers: 6144
|
||||
send_static_bfw_wt_all_cplane: 1
|
||||
ul_pcap_capture_enable: 0
|
||||
ul_pcap_capture_thread_cpu_affinity: 10
|
||||
ul_pcap_capture_thread_sched_priority: 95
|
||||
pcap_logger_ul_cplane_enable: 0
|
||||
pcap_logger_dl_cplane_enable: 0
|
||||
pcap_logger_thread_cpu_affinity: 10
|
||||
pcap_logger_thread_sched_prio: 95
|
||||
pcap_logger_file_save_dir: ./
|
||||
dlc_bfw_enable_divide_per_cell: 0 # Enable/disable dividing DL BFW C-Plane transmission window among multiple cells in a slot
|
||||
ulc_bfw_enable_divide_per_cell: 0 # Enable/disable dividing UL BFW C-Plane transmission window among multiple cells in a slot
|
||||
dlc_alloc_cplane_bfw_txq: 0 # Allocates a second separate queue for BFW DL C-Plane transmission
|
||||
ulc_alloc_cplane_bfw_txq: 1 # Allocates a second separate queue for BFW UL C-Plane transmission
|
||||
#static beam id range
|
||||
static_beam_id_start: 1
|
||||
static_beam_id_end: 16527
|
||||
#dynamic beam id range
|
||||
dynamic_beam_id_start: 16528 #Dynamic beam ID start should be after static beam ID end
|
||||
dynamic_beam_id_end: 32767 #15bit max value
|
||||
bfw_c_plane_chaining_mode: 0 # 0: Default memcpy of BFW weights, 1: CPU mbuf chaining of BFW weights, 2: GPU mbuf chaining
|
||||
enable_l1_param_sanity_check: 0
|
||||
pusch_nMaxLdpcHetConfigs: 32
|
||||
notify_ul_harq_buffer_release: 0
|
||||
|
||||
# data_config:
|
||||
# datalake_core: 12 # This must be set for Data Lake and/or E3 Agent to be used
|
||||
# datalake_db_write_enable: 1 # Enable/disable ClickHouse writes based on datalake_data_types
|
||||
# datalake_samples: 1000000
|
||||
# datalake_address: localhost
|
||||
# datalake_engine: "MergeTree() PRIMARY KEY (TsTaiNs)"
|
||||
# # datalake_drop_tables: 0 # Set to 1 to drop Clickhouse tables at startup
|
||||
# datalake_data_types: [fh, pusch, hest] # Data types to write to ClickHouse DB (all types always collected in memory for E3 Agent):
|
||||
# fh = Fronthaul IQ samples,pusch = PUSCH/FAPI data, hest = channel estimates
|
||||
# datalake_store_failed_pdu: 0 # Set to 1 to store PDU data even when CRC fails
|
||||
# e3_agent_enable: 0 # Enable/disable E3 Agent and dApp capabilities
|
||||
# num_rows_fh: 120
|
||||
# num_rows_pusch: 200
|
||||
# num_rows_hest: 140
|
||||
# e3_pub_port: 5555 # E3 publisher port for indication messages
|
||||
# e3_rep_port: 5556 # E3 reply port for E3AP requests
|
||||
# e3_sub_port: 5560 # E3 subscriber port for Manager messages
|
||||
|
||||
cells:
|
||||
- name: O-RU 0
|
||||
cell_id: 1
|
||||
ru_type: 1
|
||||
# set to 00:00:00:00:00:00 to use the MAC address of the NIC port to use
|
||||
src_mac_addr: 00:00:00:00:00:00
|
||||
dst_mac_addr: e8:c7:cf:ad:12:0b #WNC n78
|
||||
nic: '0000:01:00.0'
|
||||
vlan: 500
|
||||
pcp: 7
|
||||
txq_count_uplane: 1
|
||||
eAxC_id_ssb_pbch: [0, 1, 2, 3]
|
||||
eAxC_id_pdcch: [0, 1, 2, 3]
|
||||
eAxC_id_pdsch: [0, 1, 2, 3]
|
||||
eAxC_id_csirs: [0, 1, 2, 3]
|
||||
eAxC_id_pusch: [0, 1, 2, 3]
|
||||
eAxC_id_pucch: [0, 1, 2, 3]
|
||||
eAxC_id_srs: [8, 9, 10, 11]
|
||||
eAxC_id_prach: [4, 5, 6, 7]
|
||||
dl_iq_data_fmt: {comp_meth: 1, bit_width: 9}
|
||||
ul_iq_data_fmt: {comp_meth: 1, bit_width: 9}
|
||||
section_3_time_offset: 484
|
||||
fs_offset_dl: 10
|
||||
exponent_dl: 4
|
||||
ref_dl: 0
|
||||
fs_offset_ul: -5
|
||||
exponent_ul: 4
|
||||
max_amp_ul: 65504
|
||||
mu: 1
|
||||
T1a_max_up_ns: 280000
|
||||
T1a_max_cp_ul_ns: 405000
|
||||
Ta4_min_ns: 50000
|
||||
Ta4_max_ns: 331000
|
||||
Tcp_adv_dl_ns: 125000
|
||||
ul_u_plane_tx_offset_ns: 280000
|
||||
fh_len_range: 0
|
||||
pusch_prb_stride: 273
|
||||
prach_prb_stride: 12
|
||||
srs_prb_stride: 273
|
||||
pusch_ldpc_max_num_itr_algo_type: 1
|
||||
pusch_fixed_max_num_ldpc_itrs: 10
|
||||
pusch_ldpc_early_termination: 0
|
||||
pusch_ldpc_algo_index: 0
|
||||
pusch_ldpc_flags: 2
|
||||
pusch_ldpc_use_half: 1
|
||||
pusch_nMaxPrb: 273
|
||||
pusch_nMaxRx: 4
|
||||
ul_gain_calibration: 78.68
|
||||
lower_guard_bw: 845
|
||||
tv_pusch: cuPhyChEstCoeffs.h5
|
||||
@@ -0,0 +1,67 @@
|
||||
services:
|
||||
nv-cubb:
|
||||
container_name: nv-cubb
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities:
|
||||
- gpu
|
||||
network_mode: host
|
||||
shm_size: 4096m
|
||||
privileged: true
|
||||
stdin_open: true
|
||||
tty: true
|
||||
volumes:
|
||||
- /lib/modules:/lib/modules
|
||||
- /dev/hugepages:/dev/hugepages
|
||||
- /usr/src:/usr/src
|
||||
- ./cuphycontroller_P5G_WNC_GH.yaml:/opt/nvidia/cuBB/cuPHY-CP/cuphycontroller/config/cuphycontroller_P5G_WNC_GH.yaml
|
||||
- ./aerial_l1_entrypoint.sh:/opt/nvidia/cuBB/aerial_l1_entrypoint.sh
|
||||
- /var/log/aerial:/var/log/aerial
|
||||
- ../../../cmake_targets/share:/opt/cuBB/share
|
||||
userns_mode: host
|
||||
ipc: "shareable"
|
||||
image: cubb-build:25-3
|
||||
environment:
|
||||
- cuBB_SDK=/opt/nvidia/cuBB
|
||||
command: bash -c "sudo rm -rf /tmp/phy.log && sudo chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL",'grep -q "L1 is ready!" /tmp/phy.log && echo 0 || echo 1']
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
oai-gnb-aerial:
|
||||
cpuset: "13-16"
|
||||
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb-aerial}:${TAG:-develop}
|
||||
depends_on:
|
||||
nv-cubb:
|
||||
condition: service_healthy
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- SYS_NICE
|
||||
- IPC_LOCK
|
||||
ipc: "container:nv-cubb"
|
||||
environment:
|
||||
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,utc_time
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities:
|
||||
- gpu
|
||||
network_mode: host
|
||||
shm_size: 4096m
|
||||
volumes:
|
||||
- ../../conf_files/gnb-vnf.sa.band78.78prb.aerial.conf:/opt/oai-gnb/etc/gnb.conf
|
||||
container_name: oai-gnb-aerial
|
||||
healthcheck:
|
||||
test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
Reference in New Issue
Block a user