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
常顺宇
OpenXG-RAN
Commits
59d527c9
Commit
59d527c9
authored
Jul 13, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'l1-sidelink' of
https://gitlab.eurecom.fr/matzakos/LTE-D2D
into l1-sidelink
parents
59fd807a
d795f85f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
39 deletions
+50
-39
openair1/PHY/LTE_TRANSPORT/slsch.c
openair1/PHY/LTE_TRANSPORT/slsch.c
+38
-25
openair1/PHY/LTE_TRANSPORT/slss.c
openair1/PHY/LTE_TRANSPORT/slss.c
+2
-2
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+9
-3
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+1
-9
No files found.
openair1/PHY/LTE_TRANSPORT/slsch.c
View file @
59d527c9
...
...
@@ -103,7 +103,7 @@ uint64_t sci_mapping(PHY_VARS_UE *ue) {
AssertFatal
(
slsch
->
group_destination_id
<
256
,
"slsch->group_destination_id %d >= 256
\n
"
,
slsch
->
group_destination_id
);
uint64_t
group_destination_id
=
(
uint64_t
)
slsch
->
group_destination_id
;
LOG_
I
(
PHY
,
"SCI : RAbits %d
\n
"
,
RAbits
);
LOG_
D
(
PHY
,
"SCI : RAbits %d
\n
"
,
RAbits
);
// map bitfields
// frequency-hopping 1-bit
return
(
(
freq_hopping_flag
<<
63
)
|
...
...
@@ -362,7 +362,7 @@ void pscch_codingmodulation(PHY_VARS_UE *ue,int frame_tx,int subframe_tx,uint32_
int
length
=
log2_approx
(
slsch
->
N_SL_RB_data
*
((
ue
->
slsch_rx
.
N_SL_RB_data
+
1
)
>>
1
))
+
32
;
LOG_
I
(
PHY
,
"sci %lx (%d bits): freq_hopping_flag %d,resource_block_coding %d,time_resource_pattern %d,mcs %d,timing_advance_indication %d, group_destination_id %d
\n
"
,
sci
,
length
,
LOG_
D
(
PHY
,
"sci %lx (%d bits): freq_hopping_flag %d,resource_block_coding %d,time_resource_pattern %d,mcs %d,timing_advance_indication %d, group_destination_id %d
\n
"
,
sci
,
length
,
slsch
->
freq_hopping_flag
,
slsch
->
resource_block_coding
,
slsch
->
time_resource_pattern
,
...
...
@@ -421,7 +421,7 @@ void pscch_codingmodulation(PHY_VARS_UE *ue,int frame_tx,int subframe_tx,uint32_
if
(
amod
<
(
slsch
->
N_SL_RB_SC
>>
1
))
nprb
=
slsch
->
prb_Start_SC
+
amod
;
else
nprb
=
slsch
->
prb_End_SC
-
(
slsch
->
N_SL_RB_SC
>>
1
)
+
amod
;
LOG_
I
(
PHY
,
"%d.%d: nprb %d, slot %d
\n
"
,
frame_tx
,
subframe_tx
,
nprb
,
slot
);
LOG_
D
(
PHY
,
"%d.%d: nprb %d, slot %d
\n
"
,
frame_tx
,
subframe_tx
,
nprb
,
slot
);
// Fill in power control later
// pssch_power_cntl(ue,proc,eNB_id,1, abstraction_flag);
// ue->tx_power_dBm[subframe_tx] = ue->slcch[eNB_id]->Po_PUSCH;
...
...
@@ -468,7 +468,7 @@ void pscch_codingmodulation(PHY_VARS_UE *ue,int frame_tx,int subframe_tx,uint32_
int32_t
*
txptr
;
if
(
ue
->
generate_ul_signal
[
subframe_tx
][
0
]
==
0
)
LOG_
I
(
PHY
,
"%d.%d: clearing ul_signal
\n
"
,
frame_tx
,
subframe_tx
);
LOG_
D
(
PHY
,
"%d.%d: clearing ul_signal
\n
"
,
frame_tx
,
subframe_tx
);
for
(
int
aa
=
0
;
aa
<
ue
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
memset
(
&
ue
->
common_vars
.
txdataF
[
aa
][
subframe_tx
*
ue
->
frame_parms
.
ofdm_symbol_size
*
ue
->
frame_parms
.
symbols_per_tti
],
0
,
...
...
@@ -584,13 +584,13 @@ void slsch_codingmodulation(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_tx,in
// scrambling
uint32_t
cinit
=
510
+
(((
uint32_t
)
slsch
->
group_destination_id
)
<<
14
)
+
(
ljmod10
<<
9
);
LOG_
I
(
PHY
,
"SLSCH cinit %x (%d,%d)
\n
"
,
cinit
,
slsch
->
group_destination_id
,
ljmod10
);
LOG_
D
(
PHY
,
"SLSCH cinit %x (%d,%d)
\n
"
,
cinit
,
slsch
->
group_destination_id
,
ljmod10
);
ulsch
->
harq_processes
[
0
]
->
nb_rb
=
slsch
->
L_CRBs
;
ulsch
->
harq_processes
[
0
]
->
first_rb
=
slsch
->
RB_start
+
slsch
->
prb_Start_data
;
ulsch
->
harq_processes
[
0
]
->
mcs
=
slsch
->
mcs
;
ulsch
->
Nsymb_pusch
=
((
Nsymb
-
1
)
<<
1
);
LOG_
I
(
PHY
,
"%d.%d : SLSCH nbrb %d, first rb %d
\n
"
,
frame_tx
,
subframe_tx
,
slsch
->
L_CRBs
,
slsch
->
RB_start
+
slsch
->
prb_Start_data
);
LOG_
D
(
PHY
,
"%d.%d : SLSCH nbrb %d, first rb %d
\n
"
,
frame_tx
,
subframe_tx
,
slsch
->
L_CRBs
,
slsch
->
RB_start
+
slsch
->
prb_Start_data
);
ue
->
sl_chan
=
PSSCH_12
;
...
...
@@ -748,7 +748,7 @@ void check_and_generate_pscch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) {
uint32_t
b2
=
(
slsch
->
n_pscch
+
1
+
(
a1
%
(
LPSCCH
-
1
)))
%
LPSCCH
;
LOG_
I
(
PHY
,
"Checking pscch for absSF %d / n_pscch %d (N_SL_RB_SC %d, LPSCCH %d, M_RB_PSCCH_RP %d, a1 %d, a2 %d, b1 %d, b2 %d) pscch_coded %d
\n
"
,
LOG_
D
(
PHY
,
"Checking pscch for absSF %d / n_pscch %d (N_SL_RB_SC %d, LPSCCH %d, M_RB_PSCCH_RP %d, a1 %d, a2 %d, b1 %d, b2 %d) pscch_coded %d
\n
"
,
absSF
,
slsch
->
n_pscch
,
slsch
->
N_SL_RB_SC
,
LPSCCH
,
M_RB_PSCCH_RP
,
a1
,
a2
,
b1
,
b2
,
ue
->
pscch_coded
);
ue
->
slsch_sdu_active
=
1
;
...
...
@@ -779,7 +779,7 @@ void generate_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,SLSCH_t *slsch,int fram
(
void
*
)
slsch
->
payload
,
slsch
->
payload_length
);
LOG_
I
(
PHY
,
"SLSCH configuration %lu bytes, TBS payload %d bytes => %lu bytes
\n
"
,
LOG_
D
(
PHY
,
"SLSCH configuration %lu bytes, TBS payload %d bytes => %lu bytes
\n
"
,
sizeof
(
SLSCH_t
)
-
sizeof
(
uint8_t
*
),
slsch
->
payload_length
,
slsch_header_len
+
sizeof
(
SLSCH_t
)
-
sizeof
(
uint8_t
*
)
+
slsch
->
payload_length
);
...
...
@@ -795,10 +795,10 @@ void generate_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,SLSCH_t *slsch,int fram
ue
->
slsch
=
slsch
;
}
// check and flll SCI portion
LOG_
I
(
PHY
,
"pscch: SFN.SF %d.%d
\n
"
,
frame_tx
,
subframe_tx
);
LOG_
D
(
PHY
,
"pscch: SFN.SF %d.%d
\n
"
,
frame_tx
,
subframe_tx
);
check_and_generate_pscch
(
ue
,
frame_tx
,
subframe_tx
);
// check and flll SLSCH portion
LOG_
I
(
PHY
,
"pssch: SFN.SF %d.%d
\n
"
,
frame_tx
,
subframe_tx
);
LOG_
D
(
PHY
,
"pssch: SFN.SF %d.%d
\n
"
,
frame_tx
,
subframe_tx
);
check_and_generate_pssch
(
ue
,
proc
,
frame_tx
,
subframe_tx
);
}
...
...
@@ -827,7 +827,7 @@ void pscch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
if
(
amod
<
(
slsch
->
N_SL_RB_SC
>>
1
))
nprb
=
slsch
->
prb_Start_SC
+
amod
;
else
nprb
=
slsch
->
prb_End_SC
-
(
slsch
->
N_SL_RB_SC
>>
1
)
+
amod
;
if
(
frame_rx
<
100
)
LOG_
I
(
PHY
,
"%d.%d: Running pscch decoding slot %d, nprb %d, a %d, amod %d,N_SL_RB_SC %d
\n
"
,
frame_rx
,
subframe_rx
,
slot
,
nprb
,
a
,
amod
,
slsch
->
N_SL_RB_SC
);
if
(
frame_rx
<
100
)
LOG_
D
(
PHY
,
"%d.%d: Running pscch decoding slot %d, nprb %d, a %d, amod %d,N_SL_RB_SC %d
\n
"
,
frame_rx
,
subframe_rx
,
slot
,
nprb
,
a
,
amod
,
slsch
->
N_SL_RB_SC
);
// slot FEP
if
(
proc
->
sl_fep_done
==
0
)
{
RU_t
ru_tmp
;
...
...
@@ -899,7 +899,7 @@ void pscch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
log2_maxh
=
(
log2_approx
(
avgs
)
/
2
)
+
log2_approx
(
ue
->
frame_parms
.
nb_antennas_rx
-
1
)
+
4
;
LOG_
I
(
PHY
,
"%d.%d: nprb %d slot %d, pssch log2_maxh %d
\n
"
,
frame_rx
,
subframe_rx
,
nprb
,
slot
,
log2_maxh
);
LOG_
D
(
PHY
,
"%d.%d: nprb %d slot %d, pssch log2_maxh %d
\n
"
,
frame_rx
,
subframe_rx
,
nprb
,
slot
,
log2_maxh
);
for
(
int
l
=
0
;
l
<
(
ue
->
frame_parms
.
symbols_per_tti
>>
1
)
-
slot
;
l
++
)
{
int
l2
=
l
+
slot
*
(
ue
->
frame_parms
.
symbols_per_tti
>>
1
);
...
...
@@ -1170,7 +1170,7 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
int32_t
avgU
[
2
];
LOG_
I
(
PHY
,
"slsch_decoding %d.%d => lmod10 %d
\n
"
,
frame_rx
,
subframe_rx
,
ljmod10
);
LOG_
D
(
PHY
,
"slsch_decoding %d.%d => lmod10 %d
\n
"
,
frame_rx
,
subframe_rx
,
ljmod10
);
// slot FEP
if
(
proc
->
sl_fep_done
==
0
)
{
...
...
@@ -1193,9 +1193,9 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
if
(
l
<
Nsymb
-
1
)
// skip last symbol in second slot
slot_fep_ul
(
&
ru_tmp
,
l
,(
subframe_rx
<<
1
)
+
1
,
0
);
}
LOG_
I
(
PHY
,
"SLSCH Slot FEP %d.%d
\n
"
,
frame_rx
,
subframe_rx
);
LOG_
D
(
PHY
,
"SLSCH Slot FEP %d.%d
\n
"
,
frame_rx
,
subframe_rx
);
}
LOG_
I
(
PHY
,
"SLSCH RBstart %d, L_CRBs %d
\n
"
,
slsch
->
RB_start
+
slsch
->
prb_Start_data
,
slsch
->
L_CRBs
);
LOG_
D
(
PHY
,
"SLSCH RBstart %d, L_CRBs %d
\n
"
,
slsch
->
RB_start
+
slsch
->
prb_Start_data
,
slsch
->
L_CRBs
);
// extract symbols from slot
for
(
int
l
=
0
;
l
<
Nsymb
;
l
++
)
{
ulsch_extract_rbs_single
((
int32_t
**
)
rxdataF
,
...
...
@@ -1231,7 +1231,7 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
uint32_t
v
=
0
;
uint32_t
cyclic_shift
=
(
slsch
->
group_destination_id
>>
1
)
&
7
;
LOG_
I
(
PHY
,
"SLSCH, u0 %d, cyclic_shift %d
\n
"
,
u
,
cyclic_shift
);
LOG_
D
(
PHY
,
"SLSCH, u0 %d, cyclic_shift %d (ljmod10 %d)
\n
"
,
u
,
cyclic_shift
,
ljmod10
);
lte_ul_channel_estimation
(
&
ue
->
frame_parms
,
(
int32_t
**
)
drs_ch_estimates
,
(
int32_t
**
)
NULL
,
...
...
@@ -1243,10 +1243,10 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
v
,
cyclic_shift
,
3
,
1
,
// interpolation
0
,
// interpolation
0
);
u
=
ue
->
gh
[
1
+
slsch
->
group_destination_id
][
1
+
(
ljmod10
<<
1
)];
LOG_
I
(
PHY
,
"SLSCH, u1 %d
\n
"
,
u
);
LOG_
D
(
PHY
,
"SLSCH, u1 %d
\n
"
,
u
);
lte_ul_channel_estimation
(
&
ue
->
frame_parms
,
(
int32_t
**
)
drs_ch_estimates
,
...
...
@@ -1259,7 +1259,7 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
v
,
cyclic_shift
,
10
,
1
,
// interpolation
0
,
// interpolation
0
);
ulsch_channel_level
(
drs_ch_estimates
,
...
...
@@ -1383,7 +1383,7 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
// unscrambling
uint32_t
x1
,
x2
=
510
+
(((
uint32_t
)
slsch
->
group_destination_id
)
<<
14
)
+
(
ljmod10
<<
9
);
LOG_
I
(
PHY
,
"Setting seed (unscrambling) for SL to %x (%x,%d)
\n
"
,
x2
,
slsch
->
group_destination_id
,
ljmod10
);
LOG_
D
(
PHY
,
"Setting seed (unscrambling) for SL to %x (%x,%d)
\n
"
,
x2
,
slsch
->
group_destination_id
,
ljmod10
);
uint32_t
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
1
);
int
k
=
0
;
...
...
@@ -1452,7 +1452,9 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
0
,
1
);
// printf("slsch decoding round %d ret %d\n",ue->dlsch_rx_slsch->harq_processes[0]->round,ret);
LOG_D
(
PHY
,
"slsch decoding round %d ret %d (%d,%d)
\n
"
,(
ue
->
dlsch_rx_slsch
->
harq_processes
[
0
]
->
round
+
3
)
&
3
,
ret
,
dB_fixed
(
ue
->
pusch_slsch
->
ulsch_power
[
0
]),
dB_fixed
(
ue
->
pusch_slsch
->
ulsch_power
[
1
]));
if
(
ret
<
ue
->
dlsch_rx_slsch
->
max_turbo_iterations
)
{
ue
->
slsch_decoded
=
1
;
LOG_D
(
PHY
,
"SLSCH received for group_id %d (L_CRBs %d, mcs %d,rvidx %d, iter %d)
\n
"
,
...
...
@@ -1472,8 +1474,19 @@ void slsch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
dB_fixed
(
ue
->
pusch_slsch
->
ulsch_power
[
1
]));
ue
->
slsch_errors
++
;
}
else
LOG_I
(
PHY
,
"sLSCH received in error for rvidx %d round %d (L_CRBs %d, mcs %d)
\n
"
,
slsch
->
rvidx
,(
ue
->
dlsch_rx_slsch
->
harq_processes
[
0
]
->
round
+
3
)
&
3
,
slsch
->
L_CRBs
,
slsch
->
mcs
);
else
{
LOG_D
(
PHY
,
"sLSCH received in error for rvidx %d round %d (L_CRBs %d, mcs %d)
\n
"
,
slsch
->
rvidx
,(
ue
->
dlsch_rx_slsch
->
harq_processes
[
0
]
->
round
+
3
)
&
3
,
slsch
->
L_CRBs
,
slsch
->
mcs
);
/*
if (slsch->rvidx == 0) {
write_output("slsch_rxF_comp.m","slschrxF_comp",rxdataF_comp[0],ue->frame_parms.N_RB_UL*12*14,1,1);
write_output("slsch_rxF_ext.m","slschrxF_ext",rxdataF_ext[0],14*12*ue->frame_parms.N_RB_DL,1,1);
write_output("drs_ext0.m","drsest0",drs_ch_estimates[0],ue->frame_parms.N_RB_UL*12*14,1,1);
exit(-1);
}
*/
}
}
...
...
@@ -1502,7 +1515,7 @@ void rx_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, int frame_rx,int subframe_rx
// This is the condition for short SCCH bitmap (slsch->SubframeBitmapSL_length bits), check that the current subframe is for SCCH
if
(
absSF_modP
<
slsch
->
SubframeBitmapSL_length
)
return
;
LOG_
I
(
PHY
,
"Checking pssch for absSF %d (trp mask %d, rv %d, slsch_decoded %d)
\n
"
,
LOG_
D
(
PHY
,
"Checking pssch for absSF %d (trp mask %d, rv %d, slsch_decoded %d)
\n
"
,
absSF
,
trp8
[
slsch
->
time_resource_pattern
][
absSF_modP
&
7
],
slsch
->
rvidx
,
ue
->
slsch_decoded
);
...
...
@@ -1525,7 +1538,7 @@ void rx_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, int frame_rx,int subframe_rx
else
if
(
slsch
->
rvidx
==
1
)
slsch
->
rvidx
=
0
;
else
AssertFatal
(
1
==
0
,
"rvidx %d isn't possible
\n
"
,
slsch
->
rvidx
);
}
LOG_
I
(
PHY
,
"%d.%d : returning
\n
"
,
frame_rx
,
subframe_rx
);
LOG_
D
(
PHY
,
"%d.%d : returning
\n
"
,
frame_rx
,
subframe_rx
);
}
openair1/PHY/LTE_TRANSPORT/slss.c
View file @
59d527c9
...
...
@@ -77,7 +77,7 @@ void check_and_generate_slss(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) {
if
(
ue
->
generate_ul_signal
[
subframe_tx
][
0
]
==
0
)
for
(
int
aa
=
0
;
aa
<
ue
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
LOG_
I
(
PHY
,
"%d.%d: clearing ul signal
\n
"
,
frame_tx
,
subframe_tx
);
LOG_
D
(
PHY
,
"%d.%d: clearing ul signal
\n
"
,
frame_tx
,
subframe_tx
);
memset
(
&
ue
->
common_vars
.
txdataF
[
aa
][
subframe_tx
*
ue
->
frame_parms
.
ofdm_symbol_size
*
ue
->
frame_parms
.
symbols_per_tti
],
0
,
ue
->
frame_parms
.
ofdm_symbol_size
*
ue
->
frame_parms
.
symbols_per_tti
*
sizeof
(
int32_t
));
...
...
@@ -133,7 +133,7 @@ void check_and_generate_slss(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) {
0
);
LOG_
I
(
PHY
,
"%d.%d : SLSS nbrb %d, first rb %d
\n
"
,
frame_tx
,
subframe_tx
,
6
,(
ue
->
frame_parms
.
N_RB_UL
/
2
)
-
3
);
LOG_
D
(
PHY
,
"%d.%d : SLSS nbrb %d, first rb %d
\n
"
,
frame_tx
,
subframe_tx
,
6
,(
ue
->
frame_parms
.
N_RB_UL
/
2
)
-
3
);
ue
->
generate_ul_signal
[
subframe_tx
][
0
]
=
1
;
ue
->
slss_generated
=
1
;
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
59d527c9
...
...
@@ -2398,8 +2398,11 @@ void phy_procedures_UE_SL_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc) {
}
if
(
frame_tx
==
0
&&
subframe_tx
==
0
)
if
(
frame_tx
==
0
&&
subframe_tx
==
0
)
for
(
int
i
=
0
;
i
<
MAX_SLDCH
;
i
++
)
if
(
ue
->
sldch_txcnt
[
i
]
>
0
)
LOG_I
(
PHY
,
"n_psdch %d TX count %d
\n
"
,
i
,
ue
->
sldch_txcnt
[
i
]);
}
void
phy_procedures_UE_TX
(
PHY_VARS_UE
*
ue
,
UE_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
,
relaying_type_t
r_type
)
{
...
...
@@ -4797,12 +4800,15 @@ void phy_procedures_UE_SL_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc) {
if
(
ue
->
is_SynchRef
==
0
&&
frame_rx
==
0
&&
subframe_rx
==
0
)
LOG_I
(
PHY
,
"Connected with SyncRef UE (slbch errors %d/%d)
\n
"
,
ue
->
slbch_errors
,
ue
->
slbch_rxops
);
if
(
frame_rx
==
0
&&
subframe_rx
==
0
)
for
(
int
i
=
0
;
i
<
MAX_SLDCH
;
i
++
)
if
(
ue
->
sldch_rxcnt
[
i
]
>
0
)
LOG_I
(
PHY
,
"n_psdch %d RX count %d
\n
"
,
i
,
ue
->
sldch_rxcnt
[
i
]);
rx_slcch
(
ue
,
proc
,
frame_rx
,
subframe_rx
);
rx_slsch
(
ue
,
proc
,
frame_rx
,
subframe_rx
);
if
(
frame_rx
==
0
&&
subframe_rx
==
0
)
{
for
(
int
i
=
0
;
i
<
MAX_SLDCH
;
i
++
)
if
(
ue
->
sldch_rxcnt
[
i
]
>
0
)
LOG_I
(
PHY
,
"n_psdch %d RX count %d
\n
"
,
i
,
ue
->
sldch_rxcnt
[
i
]);
for
(
int
i
=
0
;
i
<
4
;
i
++
)
if
(
ue
->
slsch_rxcnt
[
i
]
>
0
)
LOG_I
(
PHY
,
"n_pssch[%d] rx count %d
\n
"
,
i
,
ue
->
slsch_rxcnt
[
i
]);
}
}
int
phy_procedures_UE_RX
(
PHY_VARS_UE
*
ue
,
UE_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
...
...
openair2/LAYER2/MAC/ue_procedures.c
View file @
59d527c9
...
...
@@ -3420,15 +3420,6 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
}
*/
const
int
prblist
[
6
]
=
{
6
,
15
,
25
,
50
,
75
,
100
};
int
to_prb
(
int
sl_Bandwidth_r12
)
{
AssertFatal
(
sl_Bandwidth_r12
<
6
,
"illegal bandwidth index %d
\n
"
,
sl_Bandwidth_r12
);
return
(
prblist
[
sl_Bandwidth_r12
]);
}
extern
const
int
trp8
[
TRP8_MAX
+
1
][
8
];
SLSCH_t
*
ue_get_slsch
(
module_id_t
module_idP
,
int
CC_id
,
frame_t
frameP
,
sub_frame_t
subframeP
,
int
slsch_test
)
{
...
...
@@ -3504,6 +3495,7 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
}
if
(
ue
->
sltx_active
==
0
)
return
((
SLSCH_t
*
)
NULL
);
slsch
->
ljmod10
=
9
;
// note this will cause ljmod10 to be reset for first transmission of SLSCH
slsch
->
rvidx
=
1
;
slsch
->
RB_start
=
RB_start
;
...
...
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