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
promise
OpenXG-RAN
Commits
b08cf2ee
Commit
b08cf2ee
authored
6 years ago
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix problem at PHY DCI procedure (haven't test with UE yet)
parent
9d1737f2
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
18 deletions
+28
-18
openair1/PHY/LTE_TRANSPORT/dci_tools_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/dci_tools_NB_IoT.c
+13
-11
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
+1
-1
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
+2
-1
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
+2
-1
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
+10
-4
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools_NB_IoT.c
View file @
b08cf2ee
...
...
@@ -153,7 +153,8 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
NB_IoT_eNB_NPDCCH_t
*
ndlcch
,
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
aggregation
,
//////????? maybe add the ncce index ??????????
uint8_t
npdcch_start_symbol
)
uint8_t
npdcch_start_symbol
,
uint8_t
ncce_index
)
{
// NB_IoT_eNB_NPDCCH_t *ndlcch = ;
...
...
@@ -162,7 +163,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//eNB->DCI_pdu = (DCI_PDU_NB_IoT*) malloc(sizeof(DCI_PDU_NB_IoT));
//N1 parameters
uint8_t
ncce_index
=
0
;
//
uint8_t ncce_index = 0;
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t
type
=
0
;
...
...
@@ -227,10 +228,10 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
((
DCIN1_RAR_t
*
)
DLSCH_DCI_NB_IoT
)
->
DCIRep
=
DCIRep
;
add_dci_NB_IoT
(
eNB
->
DCI_pdu
,
DLSCH_DCI_NB_IoT
,
rnti
,
sizeof
(
DCIN1_RAR_t
),
aggregation
,
sizeof_DCIN1_RAR_t
,
DCIFormatN1_RAR
,
npdcch_start_symbol
);
//
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN1_RAR_t),aggregation,sizeof_DCIN1_RAR_t,DCIFormatN1_RAR, npdcch_start_symbol);
/*Now configure the n
dls
ch structure*/
/*Now configure the n
pdc
ch structure*/
// ndlcch->ncce_index = NCCE_index;
// ndlcch->aggregation_level = aggregation;
...
...
@@ -239,7 +240,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//ndlcch->subframe_tx[subframe] = 1; // check if it's OK
ndlcch
->
rnti
[
ncce_index
]
=
rnti
;
//we store the RNTI (e.g. for RNTI will be used later)
ndlcch
->
active
[
ncce_index
]
=
0
;
//will be activated by the corresponding NDSLCH pdu
ndlcch
->
active
[
ncce_index
]
=
1
;
//will be activated by the corresponding NDSLCH pdu
// use this value to configure PHY both harq_processes and resource mapping.
ndlcch
->
scheduling_delay
[
ncce_index
]
=
Sched_delay
;
...
...
@@ -251,7 +252,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//ndlcch->status[ncce_index] = ACTIVE_NB_IoT;
ndlcch
->
mcs
[
ncce_index
]
=
mcs
;
ndlcch
->
pdu
[
ncce_index
]
=
DLSCH_DCI_NB_IoT
;
/*
* TS 36.213 ch 16.4.1.5
* ITBS is always set equivalent to IMCS for data
...
...
@@ -268,7 +269,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//ndlsch-> sqrt_rho_a?? set in dlsch_modulation
//ndlsch-> sqrt_rho_b??? set in dlsch_modulation
LOG_
D
(
PHY
,
"DCI packing for N1RAR done
\n
"
);
LOG_
I
(
PHY
,
"DCI packing for N1RAR done
\n
"
);
//set in new_eNB_dlsch (initialization)
/*
...
...
@@ -306,9 +307,9 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
((
DCIN1_t
*
)
DLSCH_DCI_NB_IoT
)
->
DCIRep
=
DCIRep
;
add_dci_NB_IoT
(
eNB
->
DCI_pdu
,
DLSCH_DCI_NB_IoT
,
rnti
,
sizeof
(
DCIN1_t
),
aggregation
,
sizeof_DCIN1_t
,
DCIFormatN1
,
npdcch_start_symbol
);
//
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN1_t),aggregation,sizeof_DCIN1_t,DCIFormatN1,npdcch_start_symbol);
/*Now configure the n
dls
ch structure*/
/*Now configure the n
pdc
ch structure*/
ndlcch
->
A
[
ncce_index
]
=
sizeof
(
DCIN1_t
);
// number of bits in DCI
// ndlcch->ncce_index = NCCE_index;
...
...
@@ -316,7 +317,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//ndlcch->subframe_tx[subframe] = 1; // check if it's OK
ndlcch
->
rnti
[
ncce_index
]
=
rnti
;
//we store the RNTI (e.g. for RNTI will be used later)
ndlcch
->
active
[
ncce_index
]
=
0
;
//will be activated by the corresponding NDSLCH pdu
ndlcch
->
active
[
ncce_index
]
=
1
;
//will be activated by the corresponding NDSLCH pdu
// use this value to configure PHY both harq_processes and resource mapping.
ndlcch
->
scheduling_delay
[
ncce_index
]
=
Sched_delay
;
...
...
@@ -329,6 +330,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
//ndlcch->status[ncce_index] = ACTIVE_NB_IoT;
ndlcch
->
mcs
[
ncce_index
]
=
mcs
;
ndlcch
->
TBS
[
ncce_index
]
=
TBStable_NB_IoT
[
mcs
][
ResAssign
];
// this table should be rewritten for nb-iot
ndlcch
->
pdu
[
ncce_index
]
=
DLSCH_DCI_NB_IoT
;
ndlcch
->
counter_repetition_number
[
ncce_index
]
=
DCIRep
;
////??????? should be repalce by the value in spec table 16.6-3, check also Rmax
...
...
@@ -351,7 +353,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
((
DCIN2_Ind_t
*
)
DLSCH_DCI_NB_IoT
)
->
resInfoBits
=
resInfoBits
;
add_dci_NB_IoT
(
eNB
->
DCI_pdu
,
DLSCH_DCI_NB_IoT
,
rnti
,
sizeof
(
DCIN2_Ind_t
),
aggregation
,
sizeof_DCIN2_Ind_t
,
DCIFormatN2_Ind
,
npdcch_start_symbol
);
//
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN2_Ind_t),aggregation,sizeof_DCIN2_Ind_t,DCIFormatN2_Ind,npdcch_start_symbol);
// use this value to configure PHY both harq_processes and resource mapping.
break
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
View file @
b08cf2ee
...
...
@@ -721,7 +721,7 @@ typedef struct {
uint8_t
npdcch_w
[
2
][
3
*
3
*
(
16
+
NPDCCH_A
)];
uint8_t
npdcch_e
[
2
][
MAX_BITS_IN_SF
];
///pdu of the npbch message
uint8_t
pdu
[
2
][
3
];
uint8_t
*
pdu
[
2
];
}
NB_IoT_eNB_NPDCCH_t
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
View file @
b08cf2ee
...
...
@@ -212,7 +212,8 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
NB_IoT_eNB_NPDCCH_t
*
ndlcch
,
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
aggregation
,
uint8_t
npdcch_start_symbol
);
uint8_t
npdcch_start_symbol
,
uint8_t
ncce_index
);
/*Function for DCI encoding, scrambling, modulation*/
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
View file @
b08cf2ee
...
...
@@ -197,7 +197,8 @@ void handle_nfapi_dlsch_pdu_NB_IoT(PHY_VARS_eNB *eNB,
//printf("rel13->rnti: %d, eNB->ndlsch_RAR->rnti: %d\n",rel13->rnti,eNB->ndlsch_RAR->rnti);
//eNB->ndlsch_RAR->rnti = rel13->rnti;
//check if the PDU is for RAR
if
(
eNB
->
ndlsch_RAR
!=
NULL
&&
rel13
->
rnti
==
eNB
->
ndlsch_RAR
->
rnti
)
//rnti for the RAR should have been set priviously by the DCI
if
(
eNB
->
ndlsch_RAR
!=
NULL
&&
eNB
->
ndlsch_RAR
->
ndlsch_type
==
RAR
)
//rnti for the RAR should have been set priviously by the DCI
//if(eNB->ndlsch_RAR != NULL && rel13->rnti == eNB->ndlsch_RAR->rnti) //rnti for the RAR should have been set priviously by the DCI
{
eNB
->
ndlsch_RAR
->
active
=
1
;
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
View file @
b08cf2ee
...
...
@@ -783,6 +783,10 @@ void generate_eNB_dlsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t * proc,n
ndlsch
=
eNB
->
ndlsch_RAR
;
ndlsch
->
ndlsch_type
=
RAR
;
ndlsch
->
rnti
=
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
rnti
;
npdcch
=
eNB
->
npdcch_DCI
;
//LOG_I(PHY,"Generating dlsch params for RA_RNTI and packing DCI\n");
generate_eNB_dlsch_params_from_dci_NB_IoT
(
eNB
,
frame
,
...
...
@@ -790,10 +794,11 @@ void generate_eNB_dlsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t * proc,n
DCI_Content
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
rnti
,
DCI_format
,
n
dls
ch
,
n
pdc
ch
,
fp
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
aggregation_level
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
start_symbol
);
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
start_symbol
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
ncce_index
);
//printf("PHY_vars_eNB_g[0][0]->ndlsch_RAR->rnti = %d\n",PHY_vars_eNB_g[0][0]->ndlsch_RAR->rnti);
//eNB->dlsch_ra_NB->nCCE[subframe] = eNB->DCI_pdu->dci_alloc.firstCCE;
...
...
@@ -849,10 +854,11 @@ void generate_eNB_dlsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t * proc,n
DCI_Content
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
rnti
,
DCI_format
,
n
dls
ch
,
n
pdc
ch
,
fp
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
aggregation_level
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
start_symbol
);
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
start_symbol
,
dl_config_pdu
->
npdcch_pdu
.
npdcch_pdu_rel13
.
ncce_index
);
//eNB->ndlsch[(uint8_t)UE_id]->nCCE[subframe] = eNB->DCI_pdu->dci_alloc[i].firstCCE;
...
...
This diff is collapsed.
Click to expand it.
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