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
canghaiwuhen
OpenXG-RAN
Commits
46b37aaa
Commit
46b37aaa
authored
Feb 21, 2017
by
gabrielC
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE 20 MHz fix + remove too restrictive assert
parent
38771f27
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
45 deletions
+51
-45
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+33
-31
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+16
-11
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+2
-3
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
46b37aaa
...
...
@@ -4225,37 +4225,39 @@ int generate_ue_dlsch_params_from_dci(int frame,
}
if
(
vrb_type
==
LOCALIZED
)
{
dlsch0_harq
->
rb_alloc_even
[
0
]
=
localRIV2alloc_LUT50_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
1
]
=
localRIV2alloc_LUT50_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
2
]
=
localRIV2alloc_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
3
]
=
localRIV2alloc_LUT100_3
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
0
]
=
localRIV2alloc_LUT50_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
1
]
=
localRIV2alloc_LUT50_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
2
]
=
localRIV2alloc_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
3
]
=
localRIV2alloc_LUT100_3
[
rballoc
];
}
else
{
if
((
rballoc
&
(
1
<<
10
))
==
0
)
{
//Gap 1
rballoc
=
rballoc
&
(
~
(
1
<<
12
));
dlsch0_harq
->
rb_alloc_even
[
0
]
=
distRIV2alloc_gap0_even_LUT50_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
1
]
=
distRIV2alloc_gap0_even_LUT50_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
2
]
=
distRIV2alloc_gap0_even_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
3
]
=
distRIV2alloc_gap0_even_LUT100_3
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
0
]
=
distRIV2alloc_gap0_odd_LUT50_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
1
]
=
distRIV2alloc_gap0_odd_LUT50_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
2
]
=
distRIV2alloc_gap0_odd_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
3
]
=
distRIV2alloc_gap0_odd_LUT100_3
[
rballoc
];
}
else
{
//Gap 2
rballoc
=
rballoc
&
(
~
(
1
<<
12
));
dlsch0_harq
->
rb_alloc_even
[
0
]
=
distRIV2alloc_gap1_even_LUT50_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
1
]
=
distRIV2alloc_gap1_even_LUT50_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
2
]
=
distRIV2alloc_gap1_even_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
3
]
=
distRIV2alloc_gap1_even_LUT100_3
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
0
]
=
distRIV2alloc_gap1_odd_LUT50_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
1
]
=
distRIV2alloc_gap1_odd_LUT50_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
2
]
=
distRIV2alloc_gap1_odd_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
3
]
=
distRIV2alloc_gap1_odd_LUT100_3
[
rballoc
];
}
dlsch0_harq
->
rb_alloc_even
[
0
]
=
localRIV2alloc_LUT100_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
1
]
=
localRIV2alloc_LUT100_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
2
]
=
localRIV2alloc_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
3
]
=
localRIV2alloc_LUT100_3
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
0
]
=
localRIV2alloc_LUT100_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
1
]
=
localRIV2alloc_LUT100_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
2
]
=
localRIV2alloc_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
3
]
=
localRIV2alloc_LUT100_3
[
rballoc
];
}
else
{
if
((
rballoc
&
(
1
<<
10
))
==
0
)
{
//Gap 1
rballoc
=
rballoc
&
(
~
(
1
<<
12
));
dlsch0_harq
->
rb_alloc_even
[
0
]
=
distRIV2alloc_gap0_even_LUT100_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
1
]
=
distRIV2alloc_gap0_even_LUT100_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
2
]
=
distRIV2alloc_gap0_even_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
3
]
=
distRIV2alloc_gap0_even_LUT100_3
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
0
]
=
distRIV2alloc_gap0_odd_LUT100_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
1
]
=
distRIV2alloc_gap0_odd_LUT100_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
2
]
=
distRIV2alloc_gap0_odd_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
3
]
=
distRIV2alloc_gap0_odd_LUT100_3
[
rballoc
];
}
else
{
//Gap 2
rballoc
=
rballoc
&
(
~
(
1
<<
12
));
dlsch0_harq
->
rb_alloc_even
[
0
]
=
distRIV2alloc_gap1_even_LUT100_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
1
]
=
distRIV2alloc_gap1_even_LUT100_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
2
]
=
distRIV2alloc_gap1_even_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_even
[
3
]
=
distRIV2alloc_gap1_even_LUT100_3
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
0
]
=
distRIV2alloc_gap1_odd_LUT100_0
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
1
]
=
distRIV2alloc_gap1_odd_LUT100_1
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
2
]
=
distRIV2alloc_gap1_odd_LUT100_2
[
rballoc
];
dlsch0_harq
->
rb_alloc_odd
[
3
]
=
distRIV2alloc_gap1_odd_LUT100_3
[
rballoc
];
}
}
dlsch0_harq
->
vrb_type
=
vrb_type
;
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
46b37aaa
...
...
@@ -364,7 +364,7 @@ void process_timing_advance(uint8_t Mod_id,uint8_t CC_id,int16_t timing_advance)
PHY_vars_UE_g
[
Mod_id
][
CC_id
]
->
timing_advance
=
PHY_vars_UE_g
[
Mod_id
][
CC_id
]
->
timing_advance
+
timing_advance
*
4
;
//this is for 25RB only!!!
LOG_
I
(
PHY
,
"[UE %d] Got timing advance %d from MAC, new value %d
\n
"
,
Mod_id
,
timing_advance
,
PHY_vars_UE_g
[
Mod_id
][
CC_id
]
->
timing_advance
);
LOG_
D
(
PHY
,
"[UE %d] Got timing advance %d from MAC, new value %d
\n
"
,
Mod_id
,
timing_advance
,
PHY_vars_UE_g
[
Mod_id
][
CC_id
]
->
timing_advance
);
}
...
...
@@ -1043,7 +1043,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
int
overflow
=
0
;
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
int
k
,
l
;
int
dummy_tx_buffer
[
3840
*
4
]
__attribute__
((
aligned
(
16
)));
int
dummy_tx_buffer
[
frame_parms
->
samples_per_tti
]
__attribute__
((
aligned
(
16
)));
#endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON
,
VCD_FUNCTION_IN
);
...
...
@@ -1076,11 +1076,15 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
overflow
=
ulsch_start
-
9
*
frame_parms
->
samples_per_tti
;
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_tx
;
aa
++
)
{
memset
(
&
ue
->
common_vars
.
txdata
[
aa
][
ulsch_start
],
0
,
4
*
cmin
(
frame_parms
->
samples_per_tti
-
overflow
,
frame_parms
->
samples_per_tti
));
if
(
overflow
>
0
)
memset
(
&
ue
->
common_vars
.
txdata
[
aa
][
0
],
0
,
4
*
overflow
);
if
(
overflow
>
0
)
{
memset
(
&
ue
->
common_vars
.
txdata
[
aa
][
ulsch_start
],
0
,
4
*
(
frame_parms
->
samples_per_tti
-
overflow
));
memset
(
&
ue
->
common_vars
.
txdata
[
aa
][
0
],
0
,
4
*
overflow
);
}
else
{
memset
(
&
ue
->
common_vars
.
txdata
[
aa
][
ulsch_start
],
0
,
4
*
frame_parms
->
samples_per_tti
);
}
}
/*#else
overflow = ulsch_start - 9*frame_parms->samples_per_tti;
...
...
@@ -1469,7 +1473,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
LOG_D
(
PHY
,
"[UE %d][PDSCH %x] AbsSubFrame %d.%d Generating ACK (%d,%d) for %d bits on PUSCH
\n
"
,
Mod_id
,
ue
->
ulsch
[
eNB_id
]
->
rnti
,
frame_tx
,
subframe_tx
,
frame_tx
%
1024
,
subframe_tx
,
ue
->
ulsch
[
eNB_id
]
->
o_ACK
[
0
],
ue
->
ulsch
[
eNB_id
]
->
o_ACK
[
1
],
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
O_ACK
);
}
...
...
@@ -1632,8 +1636,8 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
T
(
T_UE_PHY_PUSCH_TX_POWER
,
T_INT
(
eNB_id
),
T_INT
(
Mod_id
),
T_INT
(
frame_tx
%
1024
),
T_INT
(
subframe_tx
),
T_INT
(
ue
->
tx_power_dBm
[
subframe_tx
]),
T_INT
(
tx_amp
),
T_INT
(
ue
->
ulsch
[
eNB_id
]
->
f_pusch
),
T_INT
(
get_PL
(
Mod_id
,
0
,
eNB_id
)),
T_INT
(
nb_rb
));
#endif
LOG_D
(
PHY
,
"[UE %d][PUSCH %d]
Frame %d subframe
%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d
\n
"
,
Mod_id
,
harq_pid
,
frame_tx
,
subframe_tx
,
ue
->
tx_power_dBm
[
subframe_tx
],
ue
->
tx_power_max_dBm
,
tx_amp
);
LOG_D
(
PHY
,
"[UE %d][PUSCH %d]
AbsSubFrame %d.
%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d
\n
"
,
Mod_id
,
harq_pid
,
frame_tx
%
1024
,
subframe_tx
,
ue
->
tx_power_dBm
[
subframe_tx
],
ue
->
tx_power_max_dBm
,
tx_amp
);
start_meas
(
&
ue
->
ulsch_modulation_stats
);
ulsch_modulation
(
ue
->
common_vars
.
txdataF
,
tx_amp
,
...
...
@@ -1935,7 +1939,8 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
&
pucch_payload
,
&
len
);
LOG_D
(
PHY
,
"PUCCH feedback AbsSubframe %d.%d SR %d NbCW %d AckNack %d.%d CQI %d RI %d format %d pucch_resource %d pucch_payload %d %d
\n
"
,
frame_tx
,
subframe_tx
,
SR_payload
,
nb_cw
,
pucch_ack_payload
[
0
],
pucch_ack_payload
[
1
],
cqi_status
,
ri_status
,
format
,
pucch_resource
,
pucch_payload
[
0
],
pucch_payload
[
1
]);
LOG_D
(
PHY
,
"PUCCH feedback AbsSubframe %d.%d SR %d NbCW %d AckNack %d.%d CQI %d RI %d format %d pucch_resource %d pucch_payload %d %d
\n
"
,
frame_tx
%
1024
,
subframe_tx
,
SR_payload
,
nb_cw
,
pucch_ack_payload
[
0
],
pucch_ack_payload
[
1
],
cqi_status
,
ri_status
,
format
,
pucch_resource
,
pucch_payload
[
0
],
pucch_payload
[
1
]);
// Part - IV
...
...
targets/RT/USER/lte-ue.c
View file @
46b37aaa
...
...
@@ -674,12 +674,11 @@ void *UE_thread(void *arg) {
rxp
[
i
]
=
(
void
*
)
&
dummy_rx
[
i
][
0
];
for
(
int
sf
=
0
;
sf
<
10
;
sf
++
)
// printf("Reading dummy sf %d\n",sf);
AssertFatal
(
UE
->
frame_parms
.
samples_per_tti
==
UE
->
rfdevice
.
trx_read_func
(
&
UE
->
rfdevice
,
UE
->
rfdevice
.
trx_read_func
(
&
UE
->
rfdevice
,
&
timestamp
,
rxp
,
UE
->
frame_parms
.
samples_per_tti
,
UE
->
frame_parms
.
nb_antennas_rx
)
,
""
)
;
UE
->
frame_parms
.
nb_antennas_rx
);
}
}
...
...
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