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
lizhongxiao
OpenXG-RAN
Commits
4dd35c65
Commit
4dd35c65
authored
Jul 04, 2016
by
Cedric Roux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DL CQI reporting
parent
c21ac3b1
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
0 deletions
+56
-0
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+24
-0
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+27
-0
openair2/LAYER2/MAC/ff-mac.h
openair2/LAYER2/MAC/ff-mac.h
+3
-0
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+1
-0
openair2/PHY_INTERFACE/defs.h
openair2/PHY_INTERFACE/defs.h
+1
-0
No files found.
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
4dd35c65
...
...
@@ -3488,6 +3488,18 @@ printf("PHY RX f/sf %d/%d sched_sf %d\n", frame, subframe, sched_subframe);
phy_vars_eNB
->
lte_frame_parms
.
N_RB_DL
,
&
rnti
,
&
access_mode
);
phy_vars_eNB
->
eNB_UE_stats
[
i
].
rank
=
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
o_RI
[
0
];
#if FAPI
{
/* TODO: 2 TBs, other reporting modes - we suppose 3-0 (see 36.213 7.2.1) */
/* 13 is MAX_HL_SB */
int
cqi_subband
[
13
];
int
k
;
for
(
k
=
0
;
k
<
13
;
k
++
)
cqi_subband
[
k
]
=
phy_vars_eNB
->
eNB_UE_stats
[
i
].
DL_subband_cqi
[
0
][
k
];
mac_xface
->
fapi_dl_cqi_report
(
phy_vars_eNB
->
Mod_id
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
frame
,
subframe
,
phy_vars_eNB
->
eNB_UE_stats
[
i
].
DL_cqi
[
0
],
cqi_subband
,
phy_vars_eNB
->
eNB_UE_stats
[
i
].
rank
);
}
#endif
}
if
(
ret
==
(
1
+
MAX_TURBO_ITERATIONS
))
{
...
...
@@ -4234,6 +4246,18 @@ printf("PHY RX f/sf %d/%d sched_sf %d\n", frame, subframe, sched_subframe);
phy_vars_eNB
->
lte_frame_parms
.
N_RB_DL
,
&
rnti
,
&
access_mode
);
phy_vars_eNB
->
eNB_UE_stats
[
i
].
rank
=
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
o_RI
[
0
];
#if FAPI
{
/* TODO: 2 TBs, other reporting modes - we suppose 3-0 (see 36.213 7.2.1) */
/* 13 is MAX_HL_SB */
int
cqi_subband
[
13
];
int
k
;
for
(
k
=
0
;
k
<
13
;
k
++
)
cqi_subband
[
k
]
=
phy_vars_eNB
->
eNB_UE_stats
[
i
].
DL_subband_cqi
[
0
][
k
];
mac_xface
->
fapi_dl_cqi_report
(
phy_vars_eNB
->
Mod_id
,
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
,
frame
,
subframe
,
phy_vars_eNB
->
eNB_UE_stats
[
i
].
DL_cqi
[
0
],
cqi_subband
,
phy_vars_eNB
->
eNB_UE_stats
[
i
].
rank
);
}
#endif
}
/* LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d UE %d harq_pid %d resetting the sched_subframeuling_flag, total cba groups %d %d\n",
...
...
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
4dd35c65
...
...
@@ -264,6 +264,33 @@ printf("GOT lcid %d length %d (f/sf %d/%d)\n", lcid, length, frame, subframe);
fapi_ul_ack_nack_data
[
subframe
].
ack
[
pos
].
length
[
lcid
]
=
length
;
}
void
fapi_dl_cqi_report
(
int
module_id
,
int
rnti
,
int
frame
,
int
subframe
,
int
cqi_wideband
,
int
*
cqi_subband
,
int
rank_indication
)
{
/* TODO: 2 TBs, other reporting modes - we suppose 3-0 (see 36.213 7.2.1) */
fapi_interface_t
*
fapi
;
struct
SchedDlCqiInfoReqParameters
params
;
struct
CqiListElement_s
cqi
;
int
i
;
fapi
=
eNB_mac_inst
[
module_id
].
fapi
;
cqi
.
rnti
=
rnti
;
cqi
.
csiReport
.
ri
=
rank_indication
;
cqi
.
csiReport
.
mode
=
A30
;
/* TODO: get real value */
cqi
.
csiReport
.
report
.
A30Csi
.
wbCqi
=
cqi_wideband
;
for
(
i
=
0
;
i
<
MAX_HL_SB
;
i
++
)
cqi
.
csiReport
.
report
.
A30Csi
.
sbCqi
[
i
]
=
cqi_subband
[
i
];
cqi
.
servCellIndex
=
0
;
/* TODO: get correct value */
params
.
sfnSf
=
frame
*
16
+
subframe
;
params
.
nrcqiList
=
1
;
params
.
cqiList
=
&
cqi
;
params
.
nr_vendorSpecificList
=
0
;
params
.
vendorSpecificList
=
NULL
;
SchedDlCqiInfoReq
(
fapi
->
sched
,
&
params
);
}
static
void
fapi_convert_dl_1A_5MHz_FDD
(
struct
DlDciListElement_s
*
dci
,
DCI_ALLOC_t
*
a
)
{
DCI1A_5MHz_FDD_t
*
d
=
(
DCI1A_5MHz_FDD_t
*
)
a
->
dci_pdu
;
...
...
openair2/LAYER2/MAC/ff-mac.h
View file @
4dd35c65
...
...
@@ -51,6 +51,9 @@ void fapi_ul_lc_length(int frame, int subframe, int lcid, int length, int rnti);
/* signal downlink ACKs/NACKs */
void
fapi_dl_ack_nack
(
int
rnti
,
int
harq_pid
,
int
transport_block
,
int
ack
);
/* signal DL CQI (mode 3-0 only, see 36.213 7.2.1) */
void
fapi_dl_cqi_report
(
int
module_id
,
int
rnti
,
int
frame
,
int
subframe
,
int
cqi_wideband
,
int
*
cqi_subband
,
int
rank_indication
);
/*@}*/
#endif
/* FF_MAC_H */
openair2/LAYER2/MAC/main.c
View file @
4dd35c65
...
...
@@ -671,6 +671,7 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer,ui
#if FAPI
mac_xface
->
fapi_ul_ack_nack
=
fapi_ul_ack_nack
;
mac_xface
->
fapi_dl_ack_nack
=
fapi_dl_ack_nack
;
mac_xface
->
fapi_dl_cqi_report
=
fapi_dl_cqi_report
;
#endif
return
(
1
);
...
...
openair2/PHY_INTERFACE/defs.h
View file @
4dd35c65
...
...
@@ -339,6 +339,7 @@ typedef struct {
#if FAPI
void
(
*
fapi_ul_ack_nack
)(
int
frame
,
int
subframe
,
int
rnti
,
int
ack
);
void
(
*
fapi_dl_ack_nack
)(
int
rnti
,
int
harq_pid
,
int
transport_block
,
int
ack
);
void
(
*
fapi_dl_cqi_report
)(
int
module_id
,
int
rnti
,
int
frame
,
int
subframe
,
int
cqi_wideband
,
int
*
cqi_subband
,
int
rank_indication
);
#endif
}
MAC_xface
;
...
...
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