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
lizhongxiao
OpenXG-RAN
Commits
03decb04
Commit
03decb04
authored
Dec 21, 2017
by
rdoost
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding mme addresses to conf file, added SF_DL check to TX, cosmetic changes to iris_lib
parent
57009d1d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
32 deletions
+49
-32
targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
+12
-9
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.iris030.tdd.conf
...ECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.iris030.tdd.conf
+15
-10
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.iris030.conf
.../PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.iris030.conf
+16
-11
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+6
-2
No files found.
targets/ARCH/IRIS/USERSPACE/LIB/iris_lib.cpp
View file @
03decb04
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
#include "UTIL/LOG/log_extern.h"
#include "UTIL/LOG/log_extern.h"
#include "common_lib.h"
#include "common_lib.h"
#define SAMPLE_RATE_DOWN
4
#define SAMPLE_RATE_DOWN
1
/*! \brief Iris Configuration */
/*! \brief Iris Configuration */
typedef
struct
typedef
struct
...
@@ -170,6 +170,7 @@ static int trx_iris_write(openair0_device *device, openair0_timestamp timestamp,
...
@@ -170,6 +170,7 @@ static int trx_iris_write(openair0_device *device, openair0_timestamp timestamp,
printf
(
"Unable to write stream!
\n
"
);
printf
(
"Unable to write stream!
\n
"
);
break
;
break
;
}
}
flag
=
0
;
samples_sent
+=
ret
;
samples_sent
+=
ret
;
samps
[
0
]
+=
ret
;
samps
[
0
]
+=
ret
;
if
(
cc
%
2
==
0
)
if
(
cc
%
2
==
0
)
...
@@ -482,6 +483,7 @@ extern "C" {
...
@@ -482,6 +483,7 @@ extern "C" {
// Initialize Iris device
// Initialize Iris device
device
->
openair0_cfg
=
openair0_cfg
;
device
->
openair0_cfg
=
openair0_cfg
;
SoapySDR
::
Kwargs
args
;
for
(
card
=
0
;
card
<
MAX_CARDS
;
card
++
)
for
(
card
=
0
;
card
<
MAX_CARDS
;
card
++
)
{
{
char
*
remote_addr
=
device
->
openair0_cfg
[
card
].
remote_addr
;
char
*
remote_addr
=
device
->
openair0_cfg
[
card
].
remote_addr
;
...
@@ -491,7 +493,8 @@ extern "C" {
...
@@ -491,7 +493,8 @@ extern "C" {
while
(
srl
!=
NULL
)
while
(
srl
!=
NULL
)
{
{
LOG_I
(
HW
,
"Attempting to open Iris device: %s
\n
"
,
srl
);
LOG_I
(
HW
,
"Attempting to open Iris device: %s
\n
"
,
srl
);
std
::
string
args
=
"driver="
+
std
::
string
(
drvtype
)
+
",serial="
+
std
::
string
(
srl
)
+
",remote:prot=tcp"
;
args
[
"driver"
]
=
drvtype
;
args
[
"serial"
]
=
srl
;
s
->
iris
.
push_back
(
SoapySDR
::
Device
::
make
(
args
));
s
->
iris
.
push_back
(
SoapySDR
::
Device
::
make
(
args
));
srl
=
strtok
(
NULL
,
","
);
srl
=
strtok
(
NULL
,
","
);
}
}
...
@@ -523,7 +526,7 @@ extern "C" {
...
@@ -523,7 +526,7 @@ extern "C" {
//openair0_cfg[0].samples_per_packet = 1024;
//openair0_cfg[0].samples_per_packet = 1024;
//openair0_cfg[0].tx_sample_advance = 80;
//openair0_cfg[0].tx_sample_advance = 80;
openair0_cfg
[
0
].
tx_bw
=
30e6
;
openair0_cfg
[
0
].
tx_bw
=
30e6
;
openair0_cfg
[
0
].
rx_bw
=
5
e6
;
openair0_cfg
[
0
].
rx_bw
=
30
e6
;
break
;
break
;
case
1920000
:
case
1920000
:
//openair0_cfg[0].samples_per_packet = 1024;
//openair0_cfg[0].samples_per_packet = 1024;
...
@@ -577,7 +580,7 @@ extern "C" {
...
@@ -577,7 +580,7 @@ extern "C" {
s
->
iris
[
r
]
->
setGain
(
SOAPY_SDR_RX
,
i
,
openair0_cfg
[
0
].
rx_gain
[
i
]
-
openair0_cfg
[
0
].
rx_gain_offset
[
i
]);
s
->
iris
[
r
]
->
setGain
(
SOAPY_SDR_RX
,
i
,
openair0_cfg
[
0
].
rx_gain
[
i
]
-
openair0_cfg
[
0
].
rx_gain_offset
[
i
]);
if
(
openair0_cfg
[
0
].
duplex_mode
==
1
)
//duplex_mode_TDD
if
(
openair0_cfg
[
0
].
duplex_mode
==
1
)
//duplex_mode_TDD
s
->
iris
[
r
]
->
setAntenna
(
SOAPY_SDR_RX
,
i
,
(
i
==
0
)
?
"TRXA"
:
"TRXB"
);
s
->
iris
[
r
]
->
setAntenna
(
SOAPY_SDR_RX
,
i
,
s
->
iris
[
r
]
->
listAntennas
(
SOAPY_SDR_RX
,
i
)[
0
]
);
s
->
iris
[
r
]
->
setDCOffsetMode
(
SOAPY_SDR_RX
,
i
,
true
);
// move somewhere else
s
->
iris
[
r
]
->
setDCOffsetMode
(
SOAPY_SDR_RX
,
i
,
true
);
// move somewhere else
}
}
}
}
...
@@ -590,19 +593,19 @@ extern "C" {
...
@@ -590,19 +593,19 @@ extern "C" {
}
}
// create tx & rx streamer
// create tx & rx streamer
const
SoapySDR
::
Kwargs
&
arg
=
SoapySDR
::
Kwargs
();
//
const SoapySDR::Kwargs &arg = SoapySDR::Kwargs();
std
::
vector
<
size_t
>
channels
=
{}
;
std
::
vector
<
size_t
>
channels
;
for
(
i
=
0
;
i
<
s
->
rx_num_channels
;
i
++
)
for
(
i
=
0
;
i
<
s
->
rx_num_channels
;
i
++
)
if
(
i
<
s
->
iris
[
r
]
->
getNumChannels
(
SOAPY_SDR_RX
))
if
(
i
<
s
->
iris
[
r
]
->
getNumChannels
(
SOAPY_SDR_RX
))
channels
.
push_back
(
i
);
channels
.
push_back
(
i
);
s
->
rxStream
.
push_back
(
s
->
iris
[
r
]
->
setupStream
(
SOAPY_SDR_RX
,
SOAPY_SDR_CS16
,
channels
,
arg
));
s
->
rxStream
.
push_back
(
s
->
iris
[
r
]
->
setupStream
(
SOAPY_SDR_RX
,
SOAPY_SDR_CS16
,
channels
));
//
, arg));
std
::
vector
<
size_t
>
tx_channels
=
{};
std
::
vector
<
size_t
>
tx_channels
=
{};
for
(
i
=
0
;
i
<
s
->
tx_num_channels
;
i
++
)
for
(
i
=
0
;
i
<
s
->
tx_num_channels
;
i
++
)
if
(
i
<
s
->
iris
[
r
]
->
getNumChannels
(
SOAPY_SDR_TX
))
if
(
i
<
s
->
iris
[
r
]
->
getNumChannels
(
SOAPY_SDR_TX
))
tx_channels
.
push_back
(
i
);
tx_channels
.
push_back
(
i
);
s
->
txStream
.
push_back
(
s
->
iris
[
r
]
->
setupStream
(
SOAPY_SDR_TX
,
SOAPY_SDR_CS16
,
tx_channels
,
arg
));
s
->
txStream
.
push_back
(
s
->
iris
[
r
]
->
setupStream
(
SOAPY_SDR_TX
,
SOAPY_SDR_CS16
,
tx_channels
));
//
, arg));
s
->
iris
[
r
]
->
setHardwareTime
(
0
,
""
);
//
s->iris[r]->setHardwareTime(0, "");
for
(
i
=
0
;
i
<
s
->
rx_num_channels
;
i
++
)
{
for
(
i
=
0
;
i
<
s
->
rx_num_channels
;
i
++
)
{
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.iris030.tdd.conf
View file @
03decb04
...
@@ -17,7 +17,7 @@ eNBs =
...
@@ -17,7 +17,7 @@ eNBs =
mobile_country_code
=
"208"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"9
4
"
;
mobile_network_code
=
"9
2
"
;
//////////
Physical
parameters
:
//////////
Physical
parameters
:
...
@@ -31,7 +31,7 @@ eNBs =
...
@@ -31,7 +31,7 @@ eNBs =
tdd_config_s
=
0
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
prefix_type
=
"NORMAL"
;
eutra_band
=
38
;
eutra_band
=
38
;
downlink_frequency
=
2
60
0000000
L
;
downlink_frequency
=
2
58
0000000
L
;
uplink_frequency_offset
=
0
;
uplink_frequency_offset
=
0
;
Nid_cell
=
57
;
Nid_cell
=
57
;
N_RB_DL
=
25
;
N_RB_DL
=
25
;
...
@@ -137,8 +137,8 @@ eNBs =
...
@@ -137,8 +137,8 @@ eNBs =
//////////
MME
parameters
:
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"1
92.168.12.70
"
;
mme_ip_address
= ( {
ipv4
=
"1
0.224.20.11
"
;
ipv6
=
"
192:168:30::17
"
;
ipv6
=
"
fe80::6a6:9555:ded:fafa/64
"
;
active
=
"yes"
;
active
=
"yes"
;
preference
=
"ipv4"
;
preference
=
"ipv4"
;
}
}
...
@@ -146,7 +146,7 @@ eNBs =
...
@@ -146,7 +146,7 @@ eNBs =
rrh_gw_config
= ({
rrh_gw_config
= ({
local_if_name
=
"eth0"
;
local_if_name
=
"eth0"
;
remote_address
=
"
remote,0127
"
;
remote_address
=
"
iris,0205
"
;
local_address
=
"10.224.20.40"
;
local_address
=
"10.224.20.40"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
remote_port
=
50000
;
...
@@ -162,11 +162,16 @@ rrh_gw_config = ({
...
@@ -162,11 +162,16 @@ rrh_gw_config = ({
NETWORK_INTERFACES
:
NETWORK_INTERFACES
:
{
{
#ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth1"
;
#ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.146/24";
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.146/24"
;
#ENB_INTERFACE_NAME_FOR_S1U = "eth1";
ENB_INTERFACE_NAME_FOR_S1U
=
"eth1"
;
#ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.146/24";
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.146/24"
;
#ENB_PORT_FOR_S1U = 2152; # Spec 2152
ENB_INTERFACE_NAME_FOR_S1_MME
=
"enp1s0f0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"10.224.20.35/26"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"enp1s0f0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"10.224.20.35/26"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
};
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.iris030.conf
View file @
03decb04
...
@@ -17,7 +17,7 @@ eNBs =
...
@@ -17,7 +17,7 @@ eNBs =
mobile_country_code
=
"208"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"9
4
"
;
mobile_network_code
=
"9
2
"
;
//////////
Physical
parameters
:
//////////
Physical
parameters
:
...
@@ -50,7 +50,7 @@ eNBs =
...
@@ -50,7 +50,7 @@ eNBs =
pucch_nRB_CQI
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
6
0
;
pdsch_referenceSignalPower
= -
3
0
;
pdsch_p_b
=
0
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_enable64QAM
=
"DISABLE"
;
...
@@ -68,7 +68,7 @@ eNBs =
...
@@ -68,7 +68,7 @@ eNBs =
srs_ackNackST
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
9
0
;
pusch_p0_Nominal
= -
7
0
;
pusch_alpha
=
"AL1"
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
96
;
pucch_p0_Nominal
= -
96
;
msg3_delta_Preamble
=
6
;
msg3_delta_Preamble
=
6
;
...
@@ -137,8 +137,8 @@ eNBs =
...
@@ -137,8 +137,8 @@ eNBs =
//////////
MME
parameters
:
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"1
92.168.12.70
"
;
mme_ip_address
= ( {
ipv4
=
"1
0.224.20.11
"
;
ipv6
=
"
192:168:30::17
"
;
ipv6
=
"
fe80::6a6:9555:ded:fafa
"
;
active
=
"yes"
;
active
=
"yes"
;
preference
=
"ipv4"
;
preference
=
"ipv4"
;
}
}
...
@@ -146,7 +146,7 @@ eNBs =
...
@@ -146,7 +146,7 @@ eNBs =
rrh_gw_config
= ({
rrh_gw_config
= ({
local_if_name
=
"eth0"
;
local_if_name
=
"eth0"
;
remote_address
=
"
remote,0106
"
;
remote_address
=
"
iris,0205
"
;
local_address
=
"10.224.20.47"
local_address
=
"10.224.20.47"
local_port
=
50000
;
#for raw option local port must be the same to remote
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
remote_port
=
50000
;
...
@@ -161,12 +161,17 @@ rrh_gw_config = ({
...
@@ -161,12 +161,17 @@ rrh_gw_config = ({
NETWORK_INTERFACES
:
NETWORK_INTERFACES
:
{
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"enp1s0f0"
;
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth1"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"10.224.20.35/26"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.146/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"enp1s0f0"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth1"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"10.224.20.35/26"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.146/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
#ENB_INTERFACE_NAME_FOR_S1_MME = "enp1s0f0";
#ENB_IPV4_ADDRESS_FOR_S1_MME = "10.224.20.35/26";
#ENB_INTERFACE_NAME_FOR_S1U = "enp1s0f0";
#ENB_IPV4_ADDRESS_FOR_S1U = "10.224.20.35/26";
#ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
};
log_config
:
log_config
:
...
...
targets/RT/USER/lte-enb.c
View file @
03decb04
...
@@ -875,7 +875,10 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -875,7 +875,10 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
void
*
rxp
[
fp
->
nb_antennas_rx
],
*
txp
[
fp
->
nb_antennas_tx
];
void
*
rxp
[
fp
->
nb_antennas_rx
],
*
txp
[
fp
->
nb_antennas_tx
];
unsigned
int
rxs
,
txs
;
unsigned
int
rxs
,
txs
;
int
i
;
int
i
;
int
flag
=
1
;
int
tx_sfoffset
=
3
;
//(eNB->single_thread_flag == 1) ? 3 : 3;
int
tx_sfoffset
=
3
;
//(eNB->single_thread_flag == 1) ? 3 : 3;
//lte_subframe_t TXSF_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset)%10);
//if (proc->first_rx==0 && TXSF_type != SF_UL) {
if
(
proc
->
first_rx
==
0
)
{
if
(
proc
->
first_rx
==
0
)
{
// Transmit TX buffer based on timestamp from RX
// Transmit TX buffer based on timestamp from RX
...
@@ -886,13 +889,14 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -886,13 +889,14 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
txdata
[
0
][
i
][((
proc
->
subframe_rx
+
tx_sfoffset
)
%
10
)
*
fp
->
samples_per_tti
];
txp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
txdata
[
0
][
i
][((
proc
->
subframe_rx
+
tx_sfoffset
)
%
10
)
*
fp
->
samples_per_tti
];
//lte_subframe_t SFnext_type = subframe_select(fp,(proc->subframe_rx+tx_sfoffset+1)%10);
//if (SFnext_type == SF_UL) flag = 3;
txs
=
eNB
->
rfdevice
.
trx_write_func
(
&
eNB
->
rfdevice
,
txs
=
eNB
->
rfdevice
.
trx_write_func
(
&
eNB
->
rfdevice
,
proc
->
timestamp_rx
+
(
tx_sfoffset
*
fp
->
samples_per_tti
)
-
openair0_cfg
[
0
].
tx_sample_advance
,
proc
->
timestamp_rx
+
(
tx_sfoffset
*
fp
->
samples_per_tti
)
-
openair0_cfg
[
0
].
tx_sample_advance
,
txp
,
txp
,
fp
->
samples_per_tti
,
fp
->
samples_per_tti
,
fp
->
nb_antennas_tx
,
fp
->
nb_antennas_tx
,
1
);
flag
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
0
);
...
...
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