Merge remote-tracking branch 'origin/update_72_doc_with_das' into integration_2026_w03 (!3620)
update multi-RU 7.2 documentation for DAS scenario
This commit is contained in:
+20
-15
@@ -1123,24 +1123,32 @@ The assumed configuration is that with N RUs each having an M×M configuration,
|
|||||||
we effectively reach an (N×M)×(N×M) configuration.
|
we effectively reach an (N×M)×(N×M) configuration.
|
||||||
|
|
||||||
Some caveats:
|
Some caveats:
|
||||||
- Since it's a distributed antenna, this implies that this setup will deploy a
|
- Even in case of a distributed antenna, this setup will deploy a
|
||||||
single cell only -- multiple cells on different RUs are not supported.
|
single cell only -- multiple cells on different RUs are not supported.
|
||||||
- All RUs should use the same MTU, so either "normal" (1500 byte) MTU or jumbo
|
- All RUs should use the same MTU, so either "normal" (1500 byte) MTU or jumbo
|
||||||
frames, but not a mix of both.
|
frames, but not a mix of both.
|
||||||
- We tested only two RUs as of now, i.e., an 8×8 configuration.
|
- We tested only two RUs as of now, i.e., an 8×8 configuration.
|
||||||
- Testing is currently limited to 4 logical antenna ports in DL; in UL, up to 8 can be used.
|
- In case of a single array is currently limited to 4 logical antenna ports in DL;
|
||||||
|
in UL, up to 8 can be used.
|
||||||
|
|
||||||
For two RUs each using a 4x4 configuration, make sure to configure the 8x8
|
For two RUs using a 8x8 configuration, i.e. a single antenna system, the reference DU configuration file is
|
||||||
configuration, i.e., set `nb_tx` and `nb_rx` under `RUs` to 8 each (NOT two
|
[`gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf`](../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf).
|
||||||
`RUs`!). Also, set the antenna port information as listed above, i.e.,
|
|
||||||
|
|
||||||
```
|
For two RUs each using a 4x4 configuration, i.e. a distributed antenna system (DAS),
|
||||||
pdsch_AntennaPorts_XP = 2;
|
we use the analog beamforming implementation. More details can be found in
|
||||||
pdsch_AntennaPorts_N1 = 2;
|
[this document](./analog_beamforming.md). It is important to note that
|
||||||
pusch_AntennaPorts = 8;
|
the configuration file should be set as a 4x4 scenario and each RU would be given a
|
||||||
maxMIMO_layers = 2;
|
different beam. The reference DU configuration file is [`gnb-du.sa.band77.273prb.fhi72.4x4-das-benetel650_650.conf`](../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.4x4-das-benetel650_650.conf).
|
||||||
```
|
|
||||||
Once testing for 8 antenna ports in DL is complete, we will change pdsch_AntennaPorts_N1 to 4.
|
DAS is enabled by setting to 1 the parameter `enable_das` in `L1` section.
|
||||||
|
|
||||||
|
The following parameters shall be configured on the gNB in the `MACRLC` section:
|
||||||
|
- `set_analog_beamforming`
|
||||||
|
- `beam_duration`
|
||||||
|
- `beams_per_period`
|
||||||
|
|
||||||
|
For guidance on how to set these parameters please refer to
|
||||||
|
the [analog beamforming document](./analog_beamforming.md).
|
||||||
|
|
||||||
Next, configure the `fhi_72` section as indicated below:
|
Next, configure the `fhi_72` section as indicated below:
|
||||||
|
|
||||||
@@ -1202,9 +1210,6 @@ fhi_72 = {
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Compare also with the example (DU) configuration in
|
|
||||||
[`gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf`](../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf).
|
|
||||||
|
|
||||||
Afterwards, start the gNB with the modified configuration file. If everything
|
Afterwards, start the gNB with the modified configuration file. If everything
|
||||||
went well, you should see the RU counters for both RUs go up:
|
went well, you should see the RU counters for both RUs go up:
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ In the `MACRLC` section of configuration files, there are three new parameters:
|
|||||||
|
|
||||||
Setting analog beamforming to 1 or 2 changes the way FAPI beam index is treated. By setting 1, we instruct L1 to look up in Hi-PHY preconfigured DBM beam index. By setting 2, we instruct L2 to directly signal to Lo-PHY the beam index (e.g. over 7.2x fronthaul).
|
Setting analog beamforming to 1 or 2 changes the way FAPI beam index is treated. By setting 1, we instruct L1 to look up in Hi-PHY preconfigured DBM beam index. By setting 2, we instruct L2 to directly signal to Lo-PHY the beam index (e.g. over 7.2x fronthaul).
|
||||||
|
|
||||||
DAS is enabled by setting to 1 the parameter `enable_das` in the L1 section of the configuration file. In case of DAS enabled, the field `beam_weights` in `MACRLC` section can be omitted.
|
DAS is enabled by setting to 1 the parameter `enable_das` in the L1 section of the configuration file. In case of DAS enabled, the field `beam_weights` in `MACRLC` section can be omitted and the number of beams per period equals the total number of beams.
|
||||||
|
|
||||||
# Implementation in OAI scheduler
|
# Implementation in OAI scheduler
|
||||||
|
|
||||||
|
|||||||
+268
@@ -0,0 +1,268 @@
|
|||||||
|
Active_gNBs = ( "gNB-OAI-DU");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
gNB_DU_ID = 0xe00;
|
||||||
|
gNB_name = "gNB-OAI-DU";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ( { sst = 1; }); });
|
||||||
|
|
||||||
|
nr_cellid = 1;
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
pdsch_AntennaPorts_XP = 2;
|
||||||
|
pdsch_AntennaPorts_N1 = 2;
|
||||||
|
pusch_AntennaPorts = 4;
|
||||||
|
do_CSIRS = 1;
|
||||||
|
do_SRS = 0;
|
||||||
|
force_UL256qam_off = 1;
|
||||||
|
maxMIMO_layers = 2;
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
# n_TimingAdvanceOffset = 0;
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# center frequency = 3950.4 MHz
|
||||||
|
# selected SSB frequency = 3950.4 MHz
|
||||||
|
absoluteFrequencySSB = 663360;
|
||||||
|
dl_frequencyBand = 77;
|
||||||
|
# frequency point A = 3901.26 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 660084;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 273;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialDLBWPlocationAndBandwidth = 1099; #38.101-1 Table 5.3.2-1
|
||||||
|
#
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 11;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 77;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 273;
|
||||||
|
pMax = 23;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 1099;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 152;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 0;
|
||||||
|
preambleReceivedTargetPower = -100;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 8;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 3;
|
||||||
|
#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,
|
||||||
|
|
||||||
|
# this is the offset between the last PRACH preamble power and the Msg3 PUSCH, 2 times the field value in dB
|
||||||
|
msg3_DeltaPreamble = 2;
|
||||||
|
p0_NominalWithGrant = -96;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 0;
|
||||||
|
p0_nominal = -96;
|
||||||
|
|
||||||
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
|
# 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 = 5;
|
||||||
|
nrofDownlinkSlots = 3;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 1;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "f1";
|
||||||
|
local_n_address = "172.21.16.51";
|
||||||
|
remote_n_address = "172.21.6.90";
|
||||||
|
local_n_portd = 2153;
|
||||||
|
remote_n_portd = 2153;
|
||||||
|
pusch_TargetSNRx10 = 120;
|
||||||
|
pucch_TargetSNRx10 = 200;
|
||||||
|
dl_bler_target_upper = .35;
|
||||||
|
dl_bler_target_lower = .15;
|
||||||
|
ul_bler_target_upper = .35;
|
||||||
|
ul_bler_target_lower = .15;
|
||||||
|
pusch_FailureThres = 100;
|
||||||
|
ul_max_mcs = 28;
|
||||||
|
min_grant_prb = 1;
|
||||||
|
set_analog_beamforming = 1;
|
||||||
|
beam_duration = 1;
|
||||||
|
beams_per_period = 2;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
enable_das = 1;
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
prach_dtx_threshold = 100;
|
||||||
|
pucch0_dtx_threshold = 80;
|
||||||
|
pusch_dtx_threshold = 10;
|
||||||
|
max_ldpc_iterations = 10;
|
||||||
|
tx_amp_backoff_dB = 12; # needs to match O-RU configuration
|
||||||
|
L1_rx_thread_core = 8;
|
||||||
|
L1_tx_thread_core = 10; # relevant after merge of l1_tx_thread
|
||||||
|
phase_compensation = 0; # needs to match O-RU configuration
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "no";
|
||||||
|
nb_tx = 4;
|
||||||
|
nb_rx = 4;
|
||||||
|
att_tx = 0;
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [77];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
sf_extension = 0;
|
||||||
|
eNB_instances = [0];
|
||||||
|
ru_thread_core = 9;
|
||||||
|
sl_ahead = 10;
|
||||||
|
tr_preference = "raw_if4p5"; # important: activate FHI7.2
|
||||||
|
do_precoding = 0; # needs to match O-RU configuration
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
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 = "info";
|
||||||
|
f1ap_log_level = "info";
|
||||||
|
};
|
||||||
|
|
||||||
|
fhi_72 = {
|
||||||
|
dpdk_devices = ("0000:01:01.0", "0000:01:01.1", "0000:01:01.2", "0000:01:01.3"); # two VFs can be used as well
|
||||||
|
system_core = 0;
|
||||||
|
io_core = 1;
|
||||||
|
worker_cores = (2);
|
||||||
|
ru_addr = ("8c:1f:64:d1:10:46","8c:1f:64:d1:10:46","8c:1f:64:d1:10:43","8c:1f:64:d1:10:43"); # if two VFs, set two RU MAC addresses (one per RU)
|
||||||
|
mtu = 9600;
|
||||||
|
fh_config = (
|
||||||
|
# RAN650 #1
|
||||||
|
{
|
||||||
|
T1a_cp_dl = (419, 470);
|
||||||
|
T1a_cp_ul = (285, 336);
|
||||||
|
T1a_up = (294, 345);
|
||||||
|
Ta4 = (0, 200);
|
||||||
|
ru_config = {
|
||||||
|
iq_width = 9;
|
||||||
|
iq_width_prach = 9;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
# RAN650 #2
|
||||||
|
{
|
||||||
|
T1a_cp_dl = (419, 470);
|
||||||
|
T1a_cp_ul = (285, 336);
|
||||||
|
T1a_up = (294, 345);
|
||||||
|
Ta4 = (0, 200);
|
||||||
|
ru_config = {
|
||||||
|
iq_width = 9;
|
||||||
|
iq_width_prach = 9;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user