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
zzha zzha
OpenXG-RAN
Commits
59a5663d
Commit
59a5663d
authored
Sep 28, 2014
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@5810
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
fac3c604
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
23 deletions
+53
-23
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+40
-14
openair1/PHY/LTE_TRANSPORT/phich.c
openair1/PHY/LTE_TRANSPORT/phich.c
+1
-0
openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
+3
-3
openair1/SCHED/phy_procedures_lte_common.c
openair1/SCHED/phy_procedures_lte_common.c
+1
-1
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+8
-5
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
59a5663d
...
@@ -4199,14 +4199,17 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
...
@@ -4199,14 +4199,17 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
if
(
ulsch
->
harq_processes
[
harq_pid
]
->
first_tx
==
1
)
{
if
(
ulsch
->
harq_processes
[
harq_pid
]
->
first_tx
==
1
)
{
// ulsch->harq_processes[harq_pid]->Ndi = 1;
// ulsch->harq_processes[harq_pid]->Ndi = 1;
ulsch
->
harq_processes
[
harq_pid
]
->
first_tx
=
0
;
ulsch
->
harq_processes
[
harq_pid
]
->
first_tx
=
0
;
ulsch
->
harq_processes
[
harq_pid
]
->
round
=
0
;
}
}
else
{
else
{
if
(
ulsch
->
harq_processes
[
harq_pid
]
->
DCINdi
!=
ndi
)
{
// new SDU opportunity
if
(
ulsch
->
harq_processes
[
harq_pid
]
->
DCINdi
!=
ndi
)
{
// new SDU opportunity
// ulsch->harq_processes[harq_pid]->Ndi = 1;
// ulsch->harq_processes[harq_pid]->Ndi = 1;
ulsch
->
harq_processes
[
harq_pid
]
->
DCINdi
=
ndi
;
ulsch
->
harq_processes
[
harq_pid
]
->
DCINdi
=
ndi
;
ulsch
->
harq_processes
[
harq_pid
]
->
round
=
0
;
}
}
else
{
else
{
// ulsch->harq_processes[harq_pid]->Ndi = 0;
// ulsch->harq_processes[harq_pid]->Ndi = 0;
// ulsch->harq_processes[harq_pid->round++; // This is done in phich RX
}
}
}
}
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS
=
cshift
;
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS
=
cshift
;
...
@@ -4237,8 +4240,6 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
...
@@ -4237,8 +4240,6 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
else
if
(
cshift
==
7
)
else
if
(
cshift
==
7
)
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
=
9
;
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
=
9
;
LOG_D
(
PHY
,
"[UE %d][PUSCH %d] Frame %d, subframe %d : Programming PUSCH with n_DMRS2 %d (cshift %d)
\n
"
,
phy_vars_ue
->
Mod_id
,
harq_pid
,
phy_vars_ue
->
frame_rx
,
subframe
,
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
,
cshift
);
//reserved for cooperative communication
//reserved for cooperative communication
/*
/*
...
@@ -4400,15 +4401,24 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
...
@@ -4400,15 +4401,24 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
// msg("ulsch: saving pmi for DL %x\n",pmi2hex_2Ar1(((wideband_cqi_rank1_2A_5MHz *)ulsch->o)->pmi));
// msg("ulsch: saving pmi for DL %x\n",pmi2hex_2Ar1(((wideband_cqi_rank1_2A_5MHz *)ulsch->o)->pmi));
dlsch[0]->pmi_alloc = ((wideband_cqi_rank1_2A_5MHz *)ulsch->o)->pmi;
dlsch[0]->pmi_alloc = ((wideband_cqi_rank1_2A_5MHz *)ulsch->o)->pmi;
*/
*/
/*
if (frame_parms->frame_type == TDD)
// check this (see comment in generate_ue_ulsch_params_from_dci)
// 2bits if together with SR
if
(
frame_parms
->
frame_type
==
FDD
)
{
// 1 bit if ACK only?
int
dl_subframe
=
(
subframe
<
4
)
?
(
subframe
+
6
)
:
(
subframe
-
4
);
// check dai business
if
(
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_ack
[
dl_subframe
].
send_harq_status
>
0
)
{
// we have downlink transmission
ulsch->harq_processes[harq_pid]->O_ACK = 1; //(dai+1)&3;
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
}
else
{
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
0
;
}
}
else
{
if
(
ulsch
->
bundling
)
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
(
dai
==
3
)
?
0
:
1
;
else
else
*/
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
(
dai
+
1
)
&
3
;
// ulsch->harq_processes[harq_pid]->V_UL_DAI = dai+1;
}
ulsch
->
beta_offset_cqi_times8
=
beta_cqi
[
phy_vars_ue
->
pusch_config_dedicated
[
eNB_id
].
betaOffset_CQI_Index
];
//18;
ulsch
->
beta_offset_cqi_times8
=
beta_cqi
[
phy_vars_ue
->
pusch_config_dedicated
[
eNB_id
].
betaOffset_CQI_Index
];
//18;
ulsch
->
beta_offset_ri_times8
=
beta_ri
[
phy_vars_ue
->
pusch_config_dedicated
[
eNB_id
].
betaOffset_RI_Index
];
//10;
ulsch
->
beta_offset_ri_times8
=
beta_ri
[
phy_vars_ue
->
pusch_config_dedicated
[
eNB_id
].
betaOffset_RI_Index
];
//10;
...
@@ -4449,6 +4459,9 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
...
@@ -4449,6 +4459,9 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
// ulsch->harq_processes[harq_pid]->round++;
// ulsch->harq_processes[harq_pid]->round++;
}
}
LOG_D
(
PHY
,
"[UE %d][PUSCH %d] Frame %d, subframe %d : Programming PUSCH with n_DMRS2 %d (cshift %d), nb_rb %d, first_rb %d, round %d, rv %d
\n
"
,
phy_vars_ue
->
Mod_id
,
harq_pid
,
phy_vars_ue
->
frame_rx
,
subframe
,
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
,
cshift
,
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
,
ulsch
->
harq_processes
[
harq_pid
]
->
first_rb
,
ulsch
->
harq_processes
[
harq_pid
]
->
round
,
ulsch
->
harq_processes
[
harq_pid
]
->
rvidx
);
// ulsch->n_DMRS2 = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift;
// ulsch->n_DMRS2 = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift;
#ifdef DEBUG_DCI
#ifdef DEBUG_DCI
...
@@ -4754,9 +4767,22 @@ int generate_eNB_ulsch_params_from_dci(void *dci_pdu,
...
@@ -4754,9 +4767,22 @@ int generate_eNB_ulsch_params_from_dci(void *dci_pdu,
ulsch
->
uci_format
=
HLC_subband_cqi_nopmi
;
ulsch
->
uci_format
=
HLC_subband_cqi_nopmi
;
}
}
// check this (see comment in generate_ue_ulsch_params_from_dci)
if
(
frame_parms
->
frame_type
==
FDD
)
{
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
//(dai+1)&3;
int
dl_subframe
=
(
subframe
<
4
)
?
(
subframe
+
6
)
:
(
subframe
-
4
);
if
(
phy_vars_eNB
->
dlsch_eNB
[
UE_id
][
0
]
->
subframe_tx
[
dl_subframe
]
>
0
)
{
// we have downlink transmission
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
}
else
{
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
0
;
}
}
else
{
if
(
ulsch
->
bundling
)
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
(
dai
==
3
)
?
0
:
1
;
else
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
(
dai
+
1
)
&
3
;
ulsch
->
harq_processes
[
harq_pid
]
->
V_UL_DAI
=
dai
+
1
;
}
ulsch
->
beta_offset_cqi_times8
=
beta_cqi
[
phy_vars_eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_CQI_Index
];
//18;
ulsch
->
beta_offset_cqi_times8
=
beta_cqi
[
phy_vars_eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_CQI_Index
];
//18;
ulsch
->
beta_offset_ri_times8
=
beta_ri
[
phy_vars_eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_RI_Index
];
//10;
ulsch
->
beta_offset_ri_times8
=
beta_ri
[
phy_vars_eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_RI_Index
];
//10;
...
...
openair1/PHY/LTE_TRANSPORT/phich.c
View file @
59a5663d
...
@@ -1307,6 +1307,7 @@ void rx_phich(PHY_VARS_UE *phy_vars_ue,
...
@@ -1307,6 +1307,7 @@ void rx_phich(PHY_VARS_UE *phy_vars_ue,
}
}
ulsch
->
harq_processes
[
harq_pid
]
->
subframe_scheduling_flag
=
0
;
ulsch
->
harq_processes
[
harq_pid
]
->
subframe_scheduling_flag
=
0
;
ulsch
->
harq_processes
[
harq_pid
]
->
status
=
IDLE
;
ulsch
->
harq_processes
[
harq_pid
]
->
status
=
IDLE
;
ulsch
->
harq_processes
[
harq_pid
]
->
round
=
0
;
// inform MAC?
// inform MAC?
phy_vars_ue
->
ulsch_ue_Msg3_active
[
eNB_id
]
=
0
;
phy_vars_ue
->
ulsch_ue_Msg3_active
[
eNB_id
]
=
0
;
}
}
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
View file @
59a5663d
...
@@ -338,7 +338,7 @@ void ulsch_modulation(mod_sym_t **txdataF,
...
@@ -338,7 +338,7 @@ void ulsch_modulation(mod_sym_t **txdataF,
int
re_offset
,
re_offset0
,
i
,
Msymb
,
j
,
k
,
nsymb
,
Msc_PUSCH
,
l
;
int
re_offset
,
re_offset0
,
i
,
Msymb
,
j
,
k
,
nsymb
,
Msc_PUSCH
,
l
;
// uint8_t harq_pid = (rag_flag == 1) ? 0 : subframe2harq_pid_tdd(frame_parms->tdd_config,subframe);
// uint8_t harq_pid = (rag_flag == 1) ? 0 : subframe2harq_pid_tdd(frame_parms->tdd_config,subframe);
uint8_t
harq_pid
=
subframe2harq_pid
(
frame_parms
,
((
subframe
==
0
)
?
1
:
0
)
+
frame
,
subframe
);
uint8_t
harq_pid
=
subframe2harq_pid
(
frame_parms
,
frame
,
subframe
);
uint8_t
Q_m
;
uint8_t
Q_m
;
mod_sym_t
*
txptr
;
mod_sym_t
*
txptr
;
uint32_t
symbol_offset
;
uint32_t
symbol_offset
;
...
@@ -366,12 +366,12 @@ void ulsch_modulation(mod_sym_t **txdataF,
...
@@ -366,12 +366,12 @@ void ulsch_modulation(mod_sym_t **txdataF,
nb_rb
=
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
;
nb_rb
=
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
;
if
(
nb_rb
==
0
)
{
if
(
nb_rb
==
0
)
{
msg
(
"ulsch_modulation.c:
Illegal nb_rb %d
\n
"
,
nb_rb
);
msg
(
"ulsch_modulation.c:
Frame %d, Subframe %d Illegal nb_rb %d
\n
"
,
frame
,
subframe
,
nb_rb
);
return
;
return
;
}
}
if
(
first_rb
>
25
)
{
if
(
first_rb
>
25
)
{
msg
(
"ulsch_modulation.c:
Illegal first_rb %d
\n
"
,
first_rb
);
msg
(
"ulsch_modulation.c:
Frame %d, Subframe %d Illegal first_rb %d
\n
"
,
frame
,
subframe
,
first_rb
);
return
;
return
;
}
}
...
...
openair1/SCHED/phy_procedures_lte_common.c
View file @
59a5663d
...
@@ -325,7 +325,7 @@ uint8_t get_ack(LTE_DL_FRAME_PARMS *frame_parms,
...
@@ -325,7 +325,7 @@ uint8_t get_ack(LTE_DL_FRAME_PARMS *frame_parms,
uint8_t
status
=
0
;
uint8_t
status
=
0
;
uint8_t
subframe_dl
;
uint8_t
subframe_dl
;
printf
(
"get_ack: SF %d
\n
"
,
subframe
);
//
printf("get_ack: SF %d\n",subframe);
if
(
frame_parms
->
frame_type
==
FDD
)
{
if
(
frame_parms
->
frame_type
==
FDD
)
{
if
(
subframe
<
4
)
if
(
subframe
<
4
)
subframe_dl
=
subframe
+
6
;
subframe_dl
=
subframe
+
6
;
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
59a5663d
...
@@ -2930,7 +2930,7 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
...
@@ -2930,7 +2930,7 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
i
,
i
,
sched_subframe
,
sched_subframe
,
0
,
// control_only_flag
0
,
// control_only_flag
0
,
//Nbundled, to be updated!!!!
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
V_UL_DAI
,
0
);
0
);
}
}
#ifdef PHY_ABSTRACTION
#ifdef PHY_ABSTRACTION
...
@@ -3131,7 +3131,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
...
@@ -3131,7 +3131,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
frame
,
frame
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
);
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
,
harq_pid
);
/*
/*
mac_xface->terminate_ra_proc(phy_vars_eNB->Mod_id,
mac_xface->terminate_ra_proc(phy_vars_eNB->Mod_id,
frame,
frame,
...
@@ -3191,7 +3192,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
...
@@ -3191,7 +3192,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
frame
,
frame
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
);
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
,
harq_pid
);
//}
//}
/*
/*
else {
else {
...
@@ -3582,7 +3584,7 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
...
@@ -3582,7 +3584,7 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
i
,
i
,
sched_subframe
,
sched_subframe
,
0
,
// control_only_flag
0
,
// control_only_flag
0
,
//Nbundled, to be updated!!!!
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
V_UL_DAI
,
0
);
0
);
}
}
#ifdef PHY_ABSTRACTION
#ifdef PHY_ABSTRACTION
...
@@ -3660,7 +3662,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
...
@@ -3660,7 +3662,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
frame
,
frame
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
);
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
,
harq_pid
);
phy_vars_eNB
->
cba_last_reception
[
i
%
num_active_cba_groups
]
=
1
;
//(subframe);
phy_vars_eNB
->
cba_last_reception
[
i
%
num_active_cba_groups
]
=
1
;
//(subframe);
}
else
{
}
else
{
LOG_N
(
PHY
,
"[eNB %d] Frame %d subframe %d : CBA collision detected for UE%d for group %d, set the SR for this UE
\n
"
,
LOG_N
(
PHY
,
"[eNB %d] Frame %d subframe %d : CBA collision detected for UE%d for group %d, set the SR for this UE
\n
"
,
...
...
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