Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
littleBu
OpenXG-RAN
Commits
aff8b57c
Commit
aff8b57c
authored
6 years ago
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding support for N300 to gNB config
parent
83e9908a
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
316 additions
and
3 deletions
+316
-3
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+2
-0
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+3
-2
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
+289
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
+1
-0
targets/RT/USER/nr-ru.c
targets/RT/USER/nr-ru.c
+21
-1
No files found.
openair2/GNB_APP/gnb_paramdef.h
View file @
aff8b57c
...
...
@@ -91,6 +91,8 @@ typedef enum {
#define CONFIG_STRING_RU_MAX_RXGAIN "max_rxgain"
#define CONFIG_STRING_RU_IF_COMPRESSION "if_compression"
#define CONFIG_STRING_RU_NBIOTRRC_LIST "NbIoT_RRC_instances"
#define CONFIG_STRING_RU_SDR_ADDRS "sdr_addrs"
#define CONFIG_STRING_RU_SDR_CLK_SRC "clock_src"
#define RU_LOCAL_IF_NAME_IDX 0
#define RU_LOCAL_ADDRESS_IDX 1
...
...
This diff is collapsed.
Click to expand it.
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
View file @
aff8b57c
...
...
@@ -1056,7 +1056,7 @@ extern "C" {
#endif
sscanf
(
uhd
::
get_version_string
().
c_str
(),
"%d.%d.%d"
,
&
vers
,
&
subvers
,
&
subsubvers
);
LOG_I
(
PHY
,
"
Checking for USRPs : UHD
%s (%d.%d.%d)
\n
"
,
LOG_I
(
PHY
,
"
UHD version
%s (%d.%d.%d)
\n
"
,
uhd
::
get_version_string
().
c_str
(),
vers
,
subvers
,
subsubvers
);
std
::
string
args
;
...
...
@@ -1064,12 +1064,13 @@ extern "C" {
args
=
"type=b200"
;
}
else
{
args
=
openair0_cfg
[
0
].
sdr_addrs
;
LOG_I
(
PHY
,
"Checking for USRP with args %s
\n
"
,
openair0_cfg
[
0
].
sdr_addrs
);
}
uhd
::
device_addrs_t
device_adds
=
uhd
::
device
::
find
(
args
);
if
(
device_adds
.
size
()
==
0
)
{
std
::
cerr
<<
"No USRP Device Found. "
<<
std
::
endl
;
std
::
cerr
<<
"No USRP Device Found. "
<<
args
<<
std
::
endl
;
free
(
s
);
return
-
1
;
}
else
if
(
device_adds
.
size
()
>
1
)
{
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
0 → 100644
View file @
aff8b57c
Active_gNBs
= (
"gNB-Eurecom-5GNRBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
gNBs
=
(
{
//////////
Identification
parameters
:
gNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_GNB"
;
gNB_name
=
"gNB-Eurecom-5GNRBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= ({
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
;});
tr_s_preference
=
"local_mac"
//////////
Physical
parameters
:
component_carriers
= (
{
node_function
=
"3GPP_gNODEB"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
DL_prefix_type
=
"NORMAL"
;
UL_prefix_type
=
"NORMAL"
;
eutra_band
=
22
;
downlink_frequency
=
3510000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
106
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
90
;
rx_gain
=
125
;
MIB_subCarrierSpacingCommon
=
30
;
MIB_ssb_SubcarrierOffset
=
0
;
MIB_dmrs_TypeA_Position
=
2
;
pdcch_ConfigSIB1
=
0
;
SIB1_frequencyOffsetSSB
=
"khz5"
;
SIB1_ssb_PeriodicityServingCell
=
5
;
SIB1_ss_PBCH_BlockPower
= -
60
;
absoluteFrequencySSB
=
0
;
DL_FreqBandIndicatorNR
=
15
;
DL_absoluteFrequencyPointA
=
15
;
DL_offsetToCarrier
=
15
;
DL_SCS_SubcarrierSpacing
=
"kHz30"
;
DL_SCS_SpecificCarrier_k0
=
0
;
DL_carrierBandwidth
=
15
;
DL_locationAndBandwidth
=
15
;
DL_BWP_SubcarrierSpacing
=
"kHz30"
;
DL_BWP_prefix_type
=
"NORMAL"
;
UL_FreqBandIndicatorNR
=
15
;
UL_absoluteFrequencyPointA
=
13
;
UL_additionalSpectrumEmission
=
3
;
UL_p_Max
= -
1
;
UL_frequencyShift7p5khz
=
"TRUE"
;
UL_offsetToCarrier
=
10
;
UL_SCS_SubcarrierSpacing
=
"kHz30"
;
UL_SCS_SpecificCarrier_k0
=
0
;
UL_carrierBandwidth
=
15
;
UL_locationAndBandwidth
=
15
;
UL_BWP_SubcarrierSpacing
=
"kHz30"
;
UL_BWP_prefix_type
=
"NORMAL"
;
UL_timeAlignmentTimerCommon
=
"infinity"
;
ServingCellConfigCommon_n_TimingAdvanceOffset
=
"n0"
ServingCellConfigCommon_ssb_PositionsInBurst_PR
=
"shortBitmap"
;
ServingCellConfigCommon_ssb_periodicityServingCell
=
10
;
ServingCellConfigCommon_dmrs_TypeA_Position
=
2
;
NIA_SubcarrierSpacing
=
"kHz15"
;
ServingCellConfigCommon_ss_PBCH_BlockPower
= -
60
;
referenceSubcarrierSpacing
=
"kHz15"
;
dl_UL_TransmissionPeriodicity
=
"ms0p5"
;
nrofDownlinkSlots
=
10
;
nrofDownlinkSymbols
=
10
;
nrofUplinkSlots
=
10
;
nrofUplinkSymbols
=
10
;
rach_totalNumberOfRA_Preambles
=
63
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice
=
"oneEighth"
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth
=
4
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth
=
8
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf
=
16
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one
=
24
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two
=
32
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four
=
8
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight
=
4
;
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen
=
2
;
rach_groupBconfigured
=
"ENABLE"
;
rach_ra_Msg3SizeGroupA
=
56
;
rach_messagePowerOffsetGroupB
=
"dB0"
;
rach_numberOfRA_PreamblesGroupA
=
32
;
rach_ra_ContentionResolutionTimer
=
8
;
rsrp_ThresholdSSB
=
64
;
rsrp_ThresholdSSB_SUL
=
64
;
prach_RootSequenceIndex_choice
=
"l839"
;
prach_RootSequenceIndex_l839
=
0
;
prach_RootSequenceIndex_l139
=
0
;
prach_msg1_SubcarrierSpacing
=
"kHz30"
;
restrictedSetConfig
=
"unrestrictedSet"
;
msg3_transformPrecoding
=
"ENABLE"
;
prach_ConfigurationIndex
=
10
;
prach_msg1_FDM
=
"one"
;
prach_msg1_FrequencyStart
=
10
;
zeroCorrelationZoneConfig
=
10
;
preambleReceivedTargetPower
= -
150
;
preambleTransMax
=
6
;
powerRampingStep
=
"dB0"
;
ra_ResponseWindow
=
8
;
groupHoppingEnabledTransformPrecoding
=
"ENABLE"
;
msg3_DeltaPreamble
=
0
;
p0_NominalWithGrant
=
0
;
PUSCH_TimeDomainResourceAllocation_k2
=
0
;
PUSCH_TimeDomainResourceAllocation_mappingType
=
"typeA"
;
PUSCH_TimeDomainResourceAllocation_startSymbolAndLength
=
0
;
pucch_ResourceCommon
=
0
;
pucch_GroupHopping
=
"neither"
;
hoppingId
=
0
;
p0_nominal
= -
30
;
PDSCH_TimeDomainResourceAllocation_k0
=
2
;
PDSCH_TimeDomainResourceAllocation_mappingType
=
"typeA"
;
PDSCH_TimeDomainResourceAllocation_startSymbolAndLength
=
0
;
rateMatchPatternId
=
0
;
RateMatchPattern_patternType
=
"bitmaps"
;
symbolsInResourceBlock
=
"oneSlot"
;
periodicityAndPattern
=
2
;
RateMatchPattern_controlResourceSet
=
5
;
RateMatchPattern_subcarrierSpacing
=
"kHz30"
;
RateMatchPattern_mode
=
"dynamic"
;
controlResourceSetZero
=
0
;
searchSpaceZero
=
0
;
searchSpaceSIB1
=
10
;
searchSpaceOtherSystemInformation
=
10
;
pagingSearchSpace
=
10
;
ra_SearchSpace
=
10
;
PDCCH_common_controlResourceSetId
=
5
;
PDCCH_common_ControlResourceSet_duration
=
2
;
PDCCH_cce_REG_MappingType
=
"nonInterleaved"
;
PDCCH_reg_BundleSize
=
3
;
PDCCH_interleaverSize
=
3
;
PDCCH_shiftIndex
=
10
;
PDCCH_precoderGranularity
=
"sameAsREG-bundle"
;
PDCCH_TCI_StateId
=
32
;
tci_PresentInDCI
=
"ENABLE"
;
PDCCH_DMRS_ScramblingID
=
0
;
SearchSpaceId
=
10
;
commonSearchSpaces_controlResourceSetId
=
5
;
SearchSpace_monitoringSlotPeriodicityAndOffset_choice
=
"sl1"
;
SearchSpace_monitoringSlotPeriodicityAndOffset_value
=
0
;
SearchSpace_duration
=
2
;
SearchSpace_nrofCandidates_aggregationLevel1
=
0
;
SearchSpace_nrofCandidates_aggregationLevel2
=
0
;
SearchSpace_nrofCandidates_aggregationLevel4
=
0
;
SearchSpace_nrofCandidates_aggregationLevel8
=
0
;
SearchSpace_nrofCandidates_aggregationLevel16
=
0
;
SearchSpace_searchSpaceType
=
"common"
;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1
=
1
;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2
=
1
;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4
=
1
;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8
=
1
;
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16
=
1
;
Common_dci_Format2_3_monitoringPeriodicity
=
1
;
Common_dci_Format2_3_nrofPDCCH_Candidates
=
1
;
ue_Specific__dci_Formats
=
"formats0-0-And-1-0"
;
RateMatchPatternLTE_CRS_carrierFreqDL
=
6
;
RateMatchPatternLTE_CRS_carrierBandwidthDL
=
6
;
RateMatchPatternLTE_CRS_nrofCRS_Ports
=
1
;
RateMatchPatternLTE_CRS_v_Shift
=
0
;
RateMatchPatternLTE_CRS_radioframeAllocationPeriod
=
1
;
RateMatchPatternLTE_CRS_radioframeAllocationOffset
=
0
;
RateMatchPatternLTE_CRS_subframeAllocation_choice
=
"oneFrame"
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.26"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
GNB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
GNB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.111/24"
;
GNB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
GNB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.111/24"
;
GNB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
}
);
MACRLCs
= (
{
num_cc
=
1
;
tr_s_preference
=
"local_L1"
;
tr_n_preference
=
"local_RRC"
;
}
);
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"local_mac"
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
0
att_rx
=
0
;
bands
= [
7
];
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
114
;
eNB_instances
= [
0
];
sdr_addrs
=
"addr=192.168.10.2,second_addr=192.168.20.2,mgmt_addr=192.168.100.8"
;
}
);
NETWORK_CONTROLLER
:
{
FLEXRAN_ENABLED
=
"no"
;
FLEXRAN_INTERFACE_NAME
=
"lo"
;
FLEXRAN_IPV4_ADDRESS
=
"127.0.0.1"
;
FLEXRAN_PORT
=
2210
;
FLEXRAN_CACHE
=
"/mnt/oai_agent_cache"
;
FLEXRAN_AWAIT_RECONF
=
"no"
;
};
log_config
:
{
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
View file @
aff8b57c
...
...
@@ -254,6 +254,7 @@ RUs = (
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
114
;
eNB_instances
= [
0
];
sdr_addrs
=
"addr=192.168.30.2"
;
}
);
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/nr-ru.c
View file @
aff8b57c
...
...
@@ -1417,7 +1417,7 @@ static void* ru_thread( void* param ) {
AssertFatal
(
ru
->
start_if
(
ru
,
NULL
)
==
0
,
"Could not start the IF device
\n
"
);
if
(
ru
->
if_south
==
LOCAL_RF
)
ret
=
connect_rau
(
ru
);
else
ret
=
attach_rru
(
ru
);
AssertFatal
(
ret
==
0
,
"Cannot connect to radio
\n
"
);
AssertFatal
(
ret
==
0
,
"Cannot connect to r
emote r
adio
\n
"
);
}
if
(
ru
->
if_south
==
LOCAL_RF
)
{
// configure RF parameters only
fill_rf_config
(
ru
,
ru
->
rf_config_file
);
...
...
@@ -1426,6 +1426,7 @@ static void* ru_thread( void* param ) {
nr_phy_init_RU
(
ru
);
ret
=
openair0_device_load
(
&
ru
->
rfdevice
,
&
ru
->
openair0_cfg
);
AssertFatal
(
ret
==
0
,
"Cannot connect to local radio
\n
"
);
}
if
(
setup_RU_buffers
(
ru
)
!=
0
)
{
printf
(
"Exiting, cannot initialize RU Buffers
\n
"
);
...
...
@@ -2085,6 +2086,7 @@ void set_function_spec_param(RU_t *ru)
ru
->
start_rf
=
start_rf
;
// need to start the local RF interface
ru
->
stop_rf
=
stop_rf
;
printf
(
"configuring ru_id %d (start_rf %p)
\n
"
,
ru
->
idx
,
start_rf
);
/*
if (ru->function == gNodeB_3GPP) { // configure RF parameters only for 3GPP eNodeB, we need to get them from RAU otherwise
fill_rf_config(ru,rf_config_file);
...
...
@@ -2305,6 +2307,24 @@ void RCconfig_RU(void) {
RC
.
ru
[
j
]
->
num_gNB
=
0
;
for
(
i
=
0
;
i
<
RC
.
ru
[
j
]
->
num_gNB
;
i
++
)
RC
.
ru
[
j
]
->
gNB_list
[
i
]
=
RC
.
gNB
[
RUParamList
.
paramarray
[
j
][
RU_ENB_LIST_IDX
].
iptr
[
i
]][
0
];
if
(
config_isparamset
(
RUParamList
.
paramarray
[
j
],
RU_SDR_ADDRS
))
{
RC
.
ru
[
j
]
->
openair0_cfg
.
sdr_addrs
=
strdup
(
*
(
RUParamList
.
paramarray
[
j
][
RU_SDR_ADDRS
].
strptr
));
}
if
(
config_isparamset
(
RUParamList
.
paramarray
[
j
],
RU_SDR_CLK_SRC
))
{
if
(
strcmp
(
*
(
RUParamList
.
paramarray
[
j
][
RU_SDR_CLK_SRC
].
strptr
),
"internal"
)
==
0
)
{
RC
.
ru
[
j
]
->
openair0_cfg
.
clock_source
=
internal
;
LOG_D
(
PHY
,
"RU clock source set as internal
\n
"
);
}
else
if
(
strcmp
(
*
(
RUParamList
.
paramarray
[
j
][
RU_SDR_CLK_SRC
].
strptr
),
"external"
)
==
0
)
{
RC
.
ru
[
j
]
->
openair0_cfg
.
clock_source
=
external
;
LOG_D
(
PHY
,
"RU clock source set as external
\n
"
);
}
else
if
(
strcmp
(
*
(
RUParamList
.
paramarray
[
j
][
RU_SDR_CLK_SRC
].
strptr
),
"gpsdo"
)
==
0
)
{
RC
.
ru
[
j
]
->
openair0_cfg
.
clock_source
=
gpsdo
;
LOG_D
(
PHY
,
"RU clock source set as gpsdo
\n
"
);
}
else
{
LOG_E
(
PHY
,
"Erroneous RU clock source in the provided configuration file: '%s'
\n
"
,
*
(
RUParamList
.
paramarray
[
j
][
RU_SDR_CLK_SRC
].
strptr
));
}
}
if
(
strcmp
(
*
(
RUParamList
.
paramarray
[
j
][
RU_LOCAL_RF_IDX
].
strptr
),
"yes"
)
==
0
)
{
if
(
!
(
config_isparamset
(
RUParamList
.
paramarray
[
j
],
RU_LOCAL_IF_NAME_IDX
))
)
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment