diff --git a/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf b/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
new file mode 100644
index 0000000000..2a6053ab46
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band78.fr1.106PRB.usrpb210.conf
@@ -0,0 +1,344 @@
+Active_gNBs = ( "gNB-OAI");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+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 = 222;
+ mnc = 01;
+ mnc_length = 2;
+ snssaiList = (
+ {
+ sst = 1;
+ #sd = 0x1; // 0 false, else true
+ }
+ );
+
+ });
+
+ nr_cellid = 12345678L;
+
+ ////////// Physical parameters:
+
+ min_rxtxtime = 2;
+ do_CSIRS = 1;
+ do_SRS = 1;
+
+ pdcch_ConfigSIB1 = (
+ {
+ controlResourceSetZero = 12;
+ searchSpaceZero = 0;
+ }
+ );
+
+ servingCellConfigCommon = (
+ {
+ #spCellConfigCommon
+
+ physCellId = 0;
+
+# downlinkConfigCommon
+ #frequencyInfoDL
+ # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
+ absoluteFrequencySSB = 641280;
+ dl_frequencyBand = 78;
+ # this is 3600 MHz
+ dl_absoluteFrequencyPointA = 640008;
+ #scs-SpecificCarrierList
+ dl_offstToCarrier = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_subcarrierSpacing = 1;
+ dl_carrierBandwidth = 106;
+ #initialDownlinkBWP
+ #genericParameters
+ # this is RBstart=27,L=48 (275*(L-1))+RBstart
+ initialDLBWPlocationAndBandwidth = 28875; # 6366 12925 12956 28875 12952
+# 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 = 106;
+ pMax = 20;
+ #initialUplinkBWP
+ #genericParameters
+ initialULBWPlocationAndBandwidth = 28875;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ initialULBWPsubcarrierSpacing = 1;
+ #rach-ConfigCommon
+ #rach-ConfigGeneric
+ prach_ConfigurationIndex = 98;
+#prach_msg1_FDM
+#0 = one, 1=two, 2=four, 3=eight
+ prach_msg1_FDM = 0;
+ prach_msg1_FrequencyStart = 0;
+ zeroCorrelationZoneConfig = 13;
+ 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;
+#ra_ReponseWindow
+#1,2,4,8,10,20,40,80
+ ra_ResponseWindow = 4;
+#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;
+#oneHalf (0..15) 4,8,12,16,...60,64
+ ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14;
+#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_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+ ssb_PositionsInBurst_PR = 2;
+ 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;
+ nrofDownlinkSlots = 7;
+ nrofDownlinkSymbols = 6;
+ nrofUplinkSlots = 2;
+ nrofUplinkSymbols = 4;
+
+ ssPBCH_BlockPower = -25;
+ }
+
+ );
+
+# Dedicated Serving Cell Configuration
+servingCellConfigDedicated = ({
+ # BWP-Downlink
+ # BWP 1 Configuration
+ dl_bwp-Id_1 = 1;
+ dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_bwp1_subcarrierSpacing = 1;
+
+ # BWP 2 Configuration
+ dl_bwp-Id_2 = 2;
+ dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_bwp2_subcarrierSpacing = 1;
+
+ # BWP 3 Configuration
+ dl_bwp-Id_3 = 3;
+ dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_bwp3_subcarrierSpacing = 1;
+
+ firstActiveDownlinkBWP-Id = 1; #BWP-Id
+ defaultDownlinkBWP-Id = 1; #BWP-Id
+
+ # bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
+ # ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
+ # ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
+ # spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+
+ # UplinkConfig
+ # BWP-Uplink
+ # BWP 1 Configuration
+ ul_bwp-Id_1 = 1;
+ ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ ul_bwp1_subcarrierSpacing = 1;
+
+ # BWP 2 Configuration
+ ul_bwp-Id_2 = 2;
+ ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ ul_bwp2_subcarrierSpacing = 1;
+
+ # BWP 3 Configuration
+ ul_bwp-Id_3 = 3;
+ ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ ul_bwp3_subcarrierSpacing = 1;
+
+ firstActiveUplinkBWP-Id = 1; #BWP-Id
+ }
+);
+
+ # ------- 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.16.136";
+ ipv6 = "192:168:30::17";
+ active = "yes";
+ preference = "ipv4";
+ }
+ );
+
+
+ NETWORK_INTERFACES :
+ {
+ GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
+ GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.137/24";
+ GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
+ GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.137/24";
+ GNB_PORT_FOR_S1U = 2152; # Spec 2152
+ };
+
+ }
+);
+
+MACRLCs = (
+{
+ num_cc = 1;
+ tr_s_preference = "local_L1";
+ tr_n_preference = "local_RRC";
+ pusch_TargetSNRx10 = 200;
+ pucch_TargetSNRx10 = 200;
+ ulsch_max_frame_inactivity = 0;
+}
+);
+
+L1s = (
+{
+ num_cc = 1;
+ tr_n_preference = "local_mac";
+ prach_dtx_threshold = 120;
+ pucch0_dtx_threshold = 100;
+ ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
+}
+);
+
+RUs = (
+{
+ local_rf = "yes"
+ nb_tx = 1
+ nb_rx = 1
+ att_tx = 10;
+ att_rx = 10;
+ bands = [78];
+ max_pdschReferenceSignalPower = -27;
+ max_rxgain = 114;
+ eNB_instances = [0];
+ #beamforming 1x4 matrix:
+ bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
+ clock_src = "internal";
+}
+);
+
+THREAD_STRUCT = (
+{
+ #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
+ parallel_config = "PARALLEL_SINGLE_THREAD";
+ #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+ worker_config = "WORKER_ENABLE";
+}
+);
+
+rfsimulator :
+{
+ serveraddr = "server";
+ serverport = "4043";
+ options = (); #("saviq"); or/and "chanmod"
+ modelname = "AWGN";
+ IQfile = "/tmp/rfsimulator.iqs";
+};
+
+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";
+};
+
diff --git a/ci-scripts/xml_files/container_sa_b200_quectel.xml b/ci-scripts/xml_files/container_sa_b200_quectel.xml
new file mode 100644
index 0000000000..971fd1deed
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_b200_quectel.xml
@@ -0,0 +1,169 @@
+
+
+ TEST-SA-FR1-B200
+ SA SanityCheck with QUECTEL
+ tasks
+ 1
+
+ 000001
+ 010002
+ 030000
+ 030101
+ 000001
+ 010000
+ 000001
+ 050000
+ 050001
+ 010002
+ 000001
+ 030201
+
+
+
+
+
+ Initialize_UE
+ Initialize Quectel
+ idefix
+
+
+
+
+ Terminate_UE
+ Terminate Quectel
+ idefix
+
+
+
+ Copy_Image_to_Test
+ Copy gNB image to test server
+ oai-gnb
+ 1
+ 0
+
+
+
+ Deploy_Object
+ Deploy gNB (TDD/Band78/40MHz/B200) in a container
+ ci-scripts/yaml_files/sa_b200_gnb
+ 0
+ 0
+
+
+
+ IdleSleep
+ Sleep
+ 5
+
+
+
+ IdleSleep
+ Sleep
+ 20
+
+
+
+
+ Ping
+ Ping: 20pings in 20sec
+ idefix
+ -c 20
+ 1
+ 15
+
+
+
+ Ping
+ Ping: 100pings in 20sec
+ idefix
+ -c 100 -i 0.2
+ 1
+ 15
+
+
+
+ Ping
+ Ping: 20pings in 20sec
+ idefix
+ -c 20
+ 1
+ 15
+
+
+
+ Ping
+ Ping: 100pings in 20sec
+ idefix
+ -c 100 -i 0.2
+ 1
+ 15
+
+
+
+ Iperf
+ iperf (DL/125Mbps/UDP)(60 sec)(single-ue profile)
+ -u -b 125M -t 60 -i 1 -fm
+ DL
+ idefix
+ 25
+ 80
+ single-ue
+
+
+
+ Iperf
+ iperf (UL/8Mbps/UDP)(60 sec)(single-ue profile)
+ -u -b 8M -t 60 -i 1 -fm
+ UL
+ idefix
+ 1
+ 95
+ single-ue
+
+
+
+ Iperf
+ iperf (BIDIR TCP)(10 sec)(single-ue profile)
+ -t 10 --bidir
+ BIDIR
+ idefix
+ single-ue
+
+
+
+ Undeploy_Object
+ Undeploy gNB
+ ci-scripts/yaml_files/sa_b200_gnb
+ 0
+ 0
+
+
+
+
diff --git a/ci-scripts/xml_files/container_sa_b200_terminate.xml b/ci-scripts/xml_files/container_sa_b200_terminate.xml
new file mode 100644
index 0000000000..5a2b6bd454
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_b200_terminate.xml
@@ -0,0 +1,42 @@
+
+
+ TEST-SA-FR1-B200-terminate
+ SA tear-down in case of problem
+ tasks
+ 1
+
+ 030201
+
+
+
+
+ Undeploy_Object
+ Undeploy gNB
+ ci-scripts/yaml_files/sa_b200_gnb
+ 1
+ 1
+ sa-test
+
+
+
diff --git a/ci-scripts/xml_files/fr1_5gc_closure.xml b/ci-scripts/xml_files/fr1_5gc_closure.xml
new file mode 100644
index 0000000000..e5e57fa694
--- /dev/null
+++ b/ci-scripts/xml_files/fr1_5gc_closure.xml
@@ -0,0 +1,37 @@
+
+
+ 5gc-closure
+ 5GC-Closure
+ log-out
+
+060000
+
+
+
+
+ Terminate_5GCN
+ Terminate 5GC
+
+
+
diff --git a/ci-scripts/xml_files/fr1_5gc_start.xml b/ci-scripts/xml_files/fr1_5gc_start.xml
new file mode 100644
index 0000000000..8758b761cd
--- /dev/null
+++ b/ci-scripts/xml_files/fr1_5gc_start.xml
@@ -0,0 +1,38 @@
+
+
+ 5gc-start-tab
+ 5GC-Start
+ log-in
+
+ 000100
+
+
+
+
+
+ Initialize_5GCN
+ Initialize 5GC
+
+
+
diff --git a/ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml b/ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml
new file mode 100644
index 0000000000..9ea52c1247
--- /dev/null
+++ b/ci-scripts/yaml_files/sa_b200_gnb/docker-compose.yml
@@ -0,0 +1,44 @@
+version: '3.8'
+
+services:
+ gnb_mono_tdd:
+ image: oai-gnb:latest
+ privileged: true
+ container_name: sa-b200-gnb
+ environment:
+ USE_SA_TDD_MONO_B2XX: 'yes'
+ USE_B2XX: 'yes'
+ GNB_NAME: gNB-in-docker
+ MCC: '222'
+ MNC: '01'
+ MNC_LENGTH: 2
+ TAC: 1
+ NSSAI_SST: 1
+ NSSAI_SD0: 1
+ AMF_IP_ADDRESS: 172.21.16.136
+ GNB_NGA_IF_NAME: eth0
+ GNB_NGA_IP_ADDRESS: 192.168.68.194
+ GNB_NGU_IF_NAME: eth0
+ GNB_NGU_IP_ADDRESS: 192.168.68.194
+ USE_ADDITIONAL_OPTIONS: --sa -E -q --RUs.[0].sdr_addrs serial=30C51D4 --continuous-tx --log_config.global_log_options level,nocolor,time,line_num,function
+ volumes:
+ - /dev:/dev
+ networks:
+ public_net:
+ ipv4_address: 192.168.68.194
+ #entrypoint: /bin/bash -c "sleep infinity"
+ healthcheck:
+ # pgrep does NOT work
+ test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+networks:
+ public_net:
+ name: sa-b200-gnb-net
+ ipam:
+ config:
+ - subnet: 192.168.68.192/26
+ driver_opts:
+ com.docker.network.bridge.name: "sa-gnb-net"
diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md
index 547fd5a23b..24e649ccc0 100644
--- a/doc/TESTBenches.md
+++ b/doc/TESTBenches.md
@@ -89,7 +89,10 @@ Webhook
currently only ping
- [RAN-NSA-B200-Module-LTEBOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX-Container/)
- obelix + B200, nepes + B200, idefix + Quectel, porcepix w/ ltebox
- - basic NSA test, known to be instable
+ - basic NSA test
+- [RAN-SA-B200-Module-SABOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-SA-B200-Module-SABOX-Container/)
+ - obelix + B200, nepes + B200, idefix + Quectel, porcepix w/ sabox
+ - basic SA test (40 MHz TDD)
- [RAN-PhySim-Cluster](https://jenkins-oai.eurecom.fr/job/RAN-PhySim-Cluster/)
- asterix (`Asterix-OC-oaicicd-session` resource), tests in OpenShift Cluster
- unitary simulators (`nr_dlsim`, etc.)
diff --git a/docker/scripts/generateTemplate.py b/docker/scripts/generateTemplate.py
index 850bb535a5..ec8f32ec6e 100644
--- a/docker/scripts/generateTemplate.py
+++ b/docker/scripts/generateTemplate.py
@@ -60,6 +60,7 @@ def main():
"rcc.band40.tm1.25PRB": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
"gnb.band78.tm1.fr1.106PRB.usrpb210.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
"gnb.band78.sa.fr1.106PRB.usrpn310.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
+ "gnb.sa.band78.fr1.106PRB.usrpb210.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
"gnb.sa.band66.fr1.106PRB.usrpn300.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
"gNB_SA_CU.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
"gNB_SA_DU.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
diff --git a/docker/scripts/gnb_entrypoint.sh b/docker/scripts/gnb_entrypoint.sh
index dd6256609c..ac0e0d4c88 100755
--- a/docker/scripts/gnb_entrypoint.sh
+++ b/docker/scripts/gnb_entrypoint.sh
@@ -10,6 +10,7 @@ THREAD_PARALLEL_CONFIG=${THREAD_PARALLEL_CONFIG:-PARALLEL_SINGLE_THREAD}
if [[ -v USE_NSA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.nsa.tdd.conf $PREFIX/etc/gnb.conf; fi
if [[ -v USE_SA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.tdd.conf $PREFIX/etc/gnb.conf; fi
+if [[ -v USE_SA_TDD_MONO_B2XX ]]; then cp $PREFIX/etc/gnb.sa.tdd.b2xx.conf $PREFIX/etc/gnb.conf; fi
if [[ -v USE_SA_FDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.fdd.conf $PREFIX/etc/gnb.conf; fi
if [[ -v USE_SA_CU ]]; then cp $PREFIX/etc/gnb.sa.cu.conf $PREFIX/etc/gnb.conf; fi
if [[ -v USE_SA_TDD_CU ]]; then cp $PREFIX/etc/gnb.sa.du.tdd.conf $PREFIX/etc/gnb.conf; fi
diff --git a/docker/scripts/gnb_parameters.yaml b/docker/scripts/gnb_parameters.yaml
index d5942f2c9b..420559ff3f 100644
--- a/docker/scripts/gnb_parameters.yaml
+++ b/docker/scripts/gnb_parameters.yaml
@@ -94,6 +94,36 @@
- key: parallel_config
env: "@THREAD_PARALLEL_CONFIG@"
+ - filePrefix: gnb.sa.band78.fr1.106PRB.usrpb210.conf
+ outputfilename: "gnb.sa.tdd.b2xx.conf"
+ config:
+ - key: Active_gNBs
+ env: "@GNB_NAME@"
+ - key: gNB_name
+ env: "@GNB_NAME@"
+ - key: mcc
+ env: "@MCC@"
+ - key: mnc
+ env: "@MNC@"
+ - key: mnc_length
+ env: "@MNC_LENGTH@"
+ - key: tracking_area_code
+ env: "@TAC@"
+ - key: sst
+ env: "@NSSAI_SST@"
+ - key: ipv4
+ env: "@AMF_IP_ADDRESS@"
+ - key: GNB_INTERFACE_NAME_FOR_NG_AMF
+ env: "@GNB_NGA_IF_NAME@"
+ - key: GNB_IPV4_ADDRESS_FOR_NG_AMF
+ env: "@GNB_NGA_IP_ADDRESS@"
+ - key: GNB_INTERFACE_NAME_FOR_NGU
+ env: "@GNB_NGU_IF_NAME@"
+ - key: GNB_IPV4_ADDRESS_FOR_NGU
+ env: "@GNB_NGU_IP_ADDRESS@"
+ - key: parallel_config
+ env: "@THREAD_PARALLEL_CONFIG@"
+
- filePrefix: gnb.sa.band66.fr1.106PRB.usrpn300.conf
outputfilename: "gnb.sa.fdd.conf"
config: