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
wangwenhui
OpenXG-RAN
Commits
e762ed5d
Commit
e762ed5d
authored
Jan 23, 2019
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
experimental changes v3
parent
9b442e05
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
29 additions
and
21 deletions
+29
-21
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+10
-13
openair1/PHY/MODULATION/ul_7_5_kHz.c
openair1/PHY/MODULATION/ul_7_5_kHz.c
+11
-1
openair1/SCHED/ru_procedures.c
openair1/SCHED/ru_procedures.c
+1
-1
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+7
-6
No files found.
openair1/PHY/LTE_TRANSPORT/if4_tools.c
View file @
e762ed5d
...
...
@@ -119,17 +119,14 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
blockoffsetF
+=
fp
->
ofdm_symbol_size
;
}
}
else
if
(
packet_type
==
IF4p5_PULCALIB
)
{
LOG_D
(
PHY
,
"send
UL
_IF4p5: RU %d frame %d, subframe %d
\n
"
,
ru
->
idx
,
frame
,
subframe
);
LOG_D
(
PHY
,
"send
PULCALIB
_IF4p5: RU %d frame %d, subframe %d
\n
"
,
ru
->
idx
,
frame
,
subframe
);
if
(
subframe_select
(
fp
,
subframe
)
==
SF_S
)
{
nsym
=
fp
->
ul_symbols_in_S_subframe
;
db_fulllength
=
12
*
fp
->
N_RB_UL
;
db_halflength
=
(
db_fulllength
)
>>
1
;
//slotoffsetF = 1;//(subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
//blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength - 1;
slotoffsetF
+=
(
fp
->
ofdm_symbol_size
*
(
fp
->
symbols_per_tti
-
nsym
));
blockoffsetF
+=
(
fp
->
ofdm_symbol_size
*
(
fp
->
symbols_per_tti
-
nsym
));
}
AssertFatal
(
subframe_select
(
fp
,
subframe
==
SF_S
),
"calling PULCALIB in non-S subframe
\n
"
);
db_fulllength
=
12
*
fp
->
N_RB_UL
;
db_halflength
=
(
db_fulllength
)
>>
1
;
slotoffsetF
+=
(
fp
->
ofdm_symbol_size
*
3
);
blockoffsetF
+=
(
fp
->
ofdm_symbol_size
*
3
);
if
(
eth
->
flags
==
ETH_RAW_IF4p5_MODE
)
{
packet_header
=
(
IF4p5_header_t
*
)(
tx_buffer
+
MAC_HEADER_SIZE_BYTES
);
...
...
@@ -141,7 +138,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
gen_IF4p5_ul_header
(
packet_header
,
packet_type
,
frame
,
subframe
);
AssertFatal
(
txdataF
[
0
]
!=
NULL
,
"txdataF_BF[0] is null
\n
"
);
for
(
symbol_id
=
0
;
symbol_id
<
nsym
;
symbol_id
++
)
{
for
(
symbol_id
=
3
;
symbol_id
<
11
;
symbol_id
=
10
)
{
for
(
int
antenna_id
=
0
;
antenna_id
<
ru
->
nb_tx
;
antenna_id
++
)
{
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
i
=
(
uint16_t
*
)
&
txdataF
[
antenna_id
][
blockoffsetF
+
element_id
];
...
...
@@ -167,8 +164,8 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
perror
(
"ETHERNET write for IF4p5_PULCALIB
\n
"
);
}
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
0
);
slotoffsetF
+=
fp
->
ofdm_symbol_size
;
blockoffsetF
+=
fp
->
ofdm_symbol_size
;
slotoffsetF
+=
fp
->
ofdm_symbol_size
*
7
;
blockoffsetF
+=
fp
->
ofdm_symbol_size
*
7
;
}
}
else
if
((
packet_type
==
IF4p5_PULFFT
)
||
(
packet_type
==
IF4p5_PULTICK
)){
...
...
openair1/PHY/MODULATION/ul_7_5_kHz.c
View file @
e762ed5d
...
...
@@ -157,7 +157,17 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot)
(
2
*
frame_parms
->
nb_prefix_samples
)
+
frame_parms
->
nb_prefix_samples0
],
(
frame_parms
->
ofdm_symbol_size
+
frame_parms
->
nb_prefix_samples
)
*
sizeof
(
int32_t
));
}
}
if
(
ru
->
is_slave
==
0
&&
slot
==
3
){
memcpy
((
void
*
)
&
rxdata_7_5kHz
[
aa
][(
10
*
frame_parms
->
ofdm_symbol_size
)
+
(
10
*
frame_parms
->
nb_prefix_samples
)
+
frame_parms
->
nb_prefix_samples0
],
(
void
*
)
&
rxdata
[
aa
][
slot_offset
+
ru
->
N_TA_offset
+
(
10
*
frame_parms
->
ofdm_symbol_size
)
+
(
9
*
frame_parms
->
nb_prefix_samples
)
+
frame_parms
->
nb_prefix_samples0
],
(
frame_parms
->
ofdm_symbol_size
+
frame_parms
->
nb_prefix_samples
)
*
sizeof
(
int32_t
));
}
}
}
openair1/SCHED/ru_procedures.c
View file @
e762ed5d
...
...
@@ -714,7 +714,7 @@ void ru_fep_full_2thread(RU_t *ru) {
}
if
(
proc
->
subframe_rx
==
1
&&
ru
->
is_slave
==
0
)
{
//LOG_I(PHY,"******************** Master receives DMRS from slave\n");
ulsch_extract_rbs_single
(
ru
->
common
.
rxdataF
,
calibration
->
rxdataF_ext
,
0
,
...
...
targets/RT/USER/lte-ru.c
View file @
e762ed5d
...
...
@@ -158,7 +158,7 @@ static inline void fh_if4p5_south_out(RU_t *ru) {
if
(
subframe_select
(
&
ru
->
frame_parms
,
ru
->
proc
.
subframe_tx
)
!=
SF_UL
)
{
send_IF4p5
(
ru
,
ru
->
proc
.
frame_tx
,
ru
->
proc
.
subframe_tx
,
IF4p5_PDLFFT
);
ru
->
south_out_cnt
++
;
//printf(
"south_out_cnt %d, frame %d, subframe %d, RU %d\n",ru->south_out_cnt,ru->proc.frame_tx,ru->proc.subframe_tx,ru->idx);
LOG_I
(
PHY
,
"south_out_cnt %d, frame %d, subframe %d, RU %d
\n
"
,
ru
->
south_out_cnt
,
ru
->
proc
.
frame_tx
,
ru
->
proc
.
subframe_tx
,
ru
->
idx
);
}
/*if (ru == RC.ru[0] || ru == RC.ru[1]) {
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU+ru->idx, ru->proc.frame_tx );
...
...
@@ -419,7 +419,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
symbol_number
=
0
;
symbol_mask
=
0
;
symbol_mask_full
=
((
subframe_select
(
fp
,
*
subframe
)
==
SF_S
)
?
(
1
<<
fp
->
dl_symbols_in_S_subframe
)
:
(
1
<<
fp
->
symbols_per_tti
))
-
1
;
LOG_D
(
PHY
,
"fh_if4p5_north_asynch_in: RU %d, frame %d, subframe %d
\n
"
,
ru
->
idx
,
*
frame
,
*
subfram
e
);
LOG_D
(
PHY
,
"fh_if4p5_north_asynch_in: RU %d, frame %d, subframe %d
, packet_type %x
\n
"
,
ru
->
idx
,
*
frame
,
*
subframe
,
packet_typ
e
);
do
{
recv_IF4p5
(
ru
,
&
frame_tx
,
&
subframe_tx
,
&
packet_type
,
&
symbol_number
);
LOG_D
(
PHY
,
"income frame.subframe %d.%d, our frame.subframe.symbol_number %d.%d.%d (symbol mask %x)
\n
"
,
frame_tx
,
subframe_tx
,
*
frame
,
*
subframe
,
symbol_number
,
symbol_mask
);
...
...
@@ -501,11 +501,11 @@ void fh_if4p5_north_out(RU_t *ru) {
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_OUT
,
proc
->
subframe_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_OUT
,
proc
->
frame_rx
);
}
LOG_D
(
PHY
,
"fh_if4p5_north_out: Sending IF4p5_PULFFT SFN.SF %d.%d
\n
"
,
proc
->
frame_rx
,
proc
->
subframe_rx
);
if
((
fp
->
frame_type
==
TDD
)
&&
(
subframe_select
(
fp
,
subframe
)
!=
SF_UL
))
{
/// **** in TDD during DL send_IF4 of ULTICK to RCC **** ///
//send_IF4p5(ru, proc->frame_rx, proc->subframe_rx, IF4p5_PULTICK);
send_IF4p5
(
ru
,
proc
->
frame_rx
,
proc
->
subframe_rx
,
IF4p5_PULCALIB
);
LOG_D
(
PHY
,
"fh_if4p5_north_out: Sending IF4p5_PULCALIB SFN.SF %d.%d
\n
"
,
proc
->
frame_rx
,
proc
->
subframe_rx
);
ru
->
north_out_cnt
++
;
return
;
}
...
...
@@ -803,9 +803,10 @@ void tx_rf(RU_t *ru) {
siglen
+
sf_extension
,
ru
->
nb_tx
,
flags
);
LOG_I
(
PHY
,
"************** RU_id %d,RU_tag %d,timestamp %d,offset %d,extension %d,olo %d
\n
"
,
ru
->
idx
,
ru
->
tag
,
proc
->
timestamp_tx
,
ru
->
ts_offset
,
sf_extension
,
proc
->
timestamp_tx
+
ru
->
ts_offset
-
ru
->
openair0_cfg
.
tx_sample_advance
-
sf_extension
);
if
(
ru
->
is_slave
==
1
&&
ru
->
state
==
RU_RUN
&&
proc
->
frame_tx
%
ru
->
p
==
ru
->
tag
-
1
&&
SF_type
==
SF_S
)
{
//LOG_I(PHY,"************** RU_id %d,RU_tag %d,timestamp %d,offset %d,extension %d,olo %d\n",ru->idx,ru->tag,proc->timestamp_tx,ru->ts_offset,sf_extension,
// proc->timestamp_tx+ru->ts_offset-ru->openair0_cfg.tx_sample_advance-sf_extension);
if
(
ru
->
is_slave
==
1
&&
ru
->
state
==
RU_RUN
&&
proc
->
frame_tx
%
ru
->
p
==
ru
->
tag
-
1
&&
proc
->
subframe_tx
==
1
)
{
//LOG_I(PHY,"******** subframe %d Slave sends DMRS\n",proc->subframe_tx);
txs
=
ru
->
rfdevice
.
trx_write_func
(
&
ru
->
rfdevice
,
proc
->
timestamp_tx
+
(
ru
->
ts_offset
+
10
*
1024
+
80
+
10
*
72
)
-
ru
->
openair0_cfg
.
tx_sample_advance
-
sf_extension
,
txp1
,
...
...
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