Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
a6406d0f
Commit
a6406d0f
authored
Jul 07, 2016
by
Sandeep Kumar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixes from bbu/rrh trial run
parent
041d7d07
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
18 deletions
+40
-18
openair1/PHY/LTE_TRANSPORT/if5_tools.c
openair1/PHY/LTE_TRANSPORT/if5_tools.c
+16
-4
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+24
-14
No files found.
openair1/PHY/LTE_TRANSPORT/if5_tools.c
View file @
a6406d0f
...
...
@@ -59,9 +59,12 @@ void send_IF5(PHY_VARS_eNB *eNB, openair0_timestamp proc_timestamp, int subframe
txp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
txdata
[
0
][
i
][
subframe
*
fp
->
samples_per_tti
];
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
+=
packet_id
*
spp_eth
;
eNB
->
ifdevice
.
trx_write_func
(
&
eNB
->
ifdevice
,
(
proc_timestamp
-
eNB
->
ifdevice
.
openair0_cfg
->
tx_sample_advance
+
packet_id
*
spp_eth
),
(
txp
+
packet_id
*
spp_eth
)
,
txp
,
spp_eth
,
fp
->
nb_antennas_tx
,
0
);
...
...
@@ -75,9 +78,12 @@ void send_IF5(PHY_VARS_eNB *eNB, openair0_timestamp proc_timestamp, int subframe
rxp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
rxdata
[
0
][
i
][
subframe
*
fp
->
samples_per_tti
];
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
rxp
[
i
]
+=
packet_id
*
spp_eth
;
eNB
->
ifdevice
.
trx_write_func
(
&
eNB
->
ifdevice
,
(
proc_timestamp
+
packet_id
*
spp_eth
),
(
rxp
+
packet_id
*
spp_eth
)
,
rxp
,
spp_eth
,
fp
->
nb_antennas_rx
,
0
);
...
...
@@ -156,9 +162,12 @@ void recv_IF5(PHY_VARS_eNB *eNB, openair0_timestamp *proc_timestamp, int subfram
txp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
txdata
[
0
][
i
][
subframe
*
fp
->
samples_per_tti
];
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
+=
packet_id
*
spp_eth
;
eNB
->
ifdevice
.
trx_read_func
(
&
eNB
->
ifdevice
,
&
timestamp
[
packet_id
],
(
txp
+
packet_id
*
spp_eth
)
,
txp
,
spp_eth
,
fp
->
nb_antennas_tx
);
}
...
...
@@ -175,9 +184,12 @@ void recv_IF5(PHY_VARS_eNB *eNB, openair0_timestamp *proc_timestamp, int subfram
rxp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
rxdata
[
0
][
i
][
subframe
*
fp
->
samples_per_tti
];
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
rxp
[
i
]
+=
packet_id
*
spp_eth
;
eNB
->
ifdevice
.
trx_read_func
(
&
eNB
->
ifdevice
,
&
timestamp
[
packet_id
],
(
rxp
+
packet_id
*
spp_eth
)
,
rxp
,
spp_eth
,
fp
->
nb_antennas_rx
);
}
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
a6406d0f
...
...
@@ -2592,29 +2592,33 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
}
else
if
(
eNB
->
node_function
==
eNodeB_3GPP_BBU
)
{
// acquisition from IF
/// **** recv_IF5 of rxdata from RRH **** ///
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5
,
1
);
recv_IF5
(
eNB
,
&
proc
->
timestamp_rx
,
proc
->
subframe_rx
,
IF5_RRH_GW_UL
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5
,
0
);
nanosleep
(
&
time_req
,
&
time_rem
);
proc
->
timestamp_rx
+=
fp
->
samples_per_tti
;
//nanosleep(&time_req, &time_rem);
//proc->timestamp_rx += fp->samples_per_tti;
proc
->
frame_rx
=
(
proc
->
timestamp_rx
/
(
fp
->
samples_per_tti
*
10
))
&
1023
;
proc
->
subframe_rx
=
(
proc
->
timestamp_rx
/
fp
->
samples_per_tti
)
%
10
;
if
(
proc
->
first_rx
==
0
)
{
if
(
proc
->
subframe_rx
!=
subframe
){
LOG_E
(
PHY
,
"Received Timestamp doesn't correspond to the time we think it is (proc->subframe_rx %d, subframe %d)
\n
"
,
proc
->
subframe_rx
,
subframe
);
//exit_fun("Exiting");
}
if
(
proc
->
frame_rx
!=
frame
)
{
LOG_E
(
PHY
,
"Received Timestamp doesn't correspond to the time we think it is (proc->frame_rx %d frame %d)
\n
"
,
proc
->
frame_rx
,
frame
);
//exit_fun("Exiting");
}
}
else
{
proc
->
first_rx
=
0
;
}
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_TS
,
proc
->
timestamp_rx
&
0xffffffff
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX_ENB
,
proc
->
frame_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX_ENB
,
proc
->
subframe_rx
);
}
if
(
eNB
->
node_function
==
NGFI_RRU_IF5
)
{
/// **** send_IF5 of rxdata to BBU **** ///
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5
,
1
);
send_IF5
(
eNB
,
proc
->
timestamp_rx
,
proc
->
subframe_rx
,
&
seqno
,
IF5_RRH_GW_UL
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5
,
0
);
}
if
((
eNB
->
node_function
==
NGFI_RRU_IF4
)
||
(
eNB
->
node_function
==
eNodeB_3GPP
)
||
(
eNB
->
node_function
==
eNodeB_3GPP_BBU
))
{
// front-end processing
...
...
@@ -2679,6 +2683,12 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
}
}
}
else
if
(
eNB
->
node_function
==
NGFI_RRU_IF5
)
{
/// **** send_IF5 of rxdata to BBU **** ///
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5
,
1
);
send_IF5
(
eNB
,
proc
->
timestamp_rx
,
proc
->
subframe_rx
,
&
seqno
,
IF5_RRH_GW_UL
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5
,
0
);
}
else
if
(
eNB
->
node_function
==
NGFI_RCC_IF4
)
{
/// **** recv_IF4 of rxdataF from RRU **** ///
/// **** recv_IF4 of rxsigF from RRU **** ///
...
...
@@ -2734,11 +2744,11 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
if
(
proc
->
first_rx
==
0
)
{
if
(
proc
->
subframe_rx
!=
subframe
){
LOG_E
(
PHY
,
"Received Timestamp doesn't correspond to the time we think it is (proc->subframe_rx %d, subframe %d)
\n
"
,
proc
->
subframe_rx
,
subframe
);
//
exit_fun("Exiting");
//
exit_fun("Exiting");
}
if
(
proc
->
frame_rx
!=
frame
)
{
LOG_E
(
PHY
,
"Received Timestamp doesn't correspond to the time we think it is (proc->frame_rx %d frame %d)
\n
"
,
proc
->
frame_rx
,
frame
);
//
exit_fun("Exiting");
//
exit_fun("Exiting");
}
}
else
{
proc
->
first_rx
=
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