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
db61edd7
Commit
db61edd7
authored
5 years ago
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
solve some issue at RX
parent
30bd3fbe
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
155 additions
and
29 deletions
+155
-29
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
+7
-7
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
+5
-2
openair2/LAYER2/MAC/defs_NB_IoT.h
openair2/LAYER2/MAC/defs_NB_IoT.h
+2
-1
openair2/LAYER2/MAC/eNB_scheduler_NB_IoT.c
openair2/LAYER2/MAC/eNB_scheduler_NB_IoT.c
+10
-0
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
+55
-3
openair2/LAYER2/MAC/eNB_scheduler_ulsch_NB_IoT.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch_NB_IoT.c
+20
-6
openair2/LAYER2/MAC/proto_NB_IoT.h
openair2/LAYER2/MAC/proto_NB_IoT.h
+2
-0
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
+8
-3
openair2/RRC/LITE/MESSAGES/asn1_msg_NB_IoT.c
openair2/RRC/LITE/MESSAGES/asn1_msg_NB_IoT.c
+45
-6
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+1
-1
No files found.
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
View file @
db61edd7
...
...
@@ -1655,7 +1655,7 @@ uint32_t turbo_decoding_NB_IoT(PHY_VARS_eNB *eNB,
}
else
{
fill_crc_indication_NB_IoT
(
eNB
,
0
,
rx_frame
,
rx_subframe
,
0
);
// indicate NAK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
0
);
printf
(
" NP
SU
CH NOT OK
\n
"
);
printf
(
" NP
US
CH NOT OK
\n
"
);
}
}
//////////// r loop end ////////////
...
...
@@ -1789,18 +1789,18 @@ void decode_NPUSCH_msg_NB_IoT(PHY_VARS_eNB *eNB,
ulsch_NB_IoT
->
Msg3_frame
);
///////////////////////////////// Decision ACK/NACK /////////////////////////////////////
printf
(
"
\n\n\n
"
);
//
printf("\n\n\n");
if
(
counter_ack
>
8
)
//hard decision
{
//fill_crc_indication_NB_IoT(eNB,0,rx_frame,rx_subframe,1); // indicate ACK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
1
);
printf
(
" decoded ACK of DL Data (include MSG4)
\n
"
);
LOG_I
(
PHY
,
" decoded ACK of DL Data (include MSG4)
\n
"
);
}
else
if
(
counter_ack
<
8
)
{
//hard decision
//fill_crc_indication_NB_IoT(eNB,0,rx_frame,rx_subframe,0); // indicate NAK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
0
);
printf
(
" decoded ACK of DL Data (include MSG4)
\n
"
);
LOG_I
(
PHY
,
" decoded ACK of DL Data (include MSG4)
\n
"
);
}
else
{
//when equality (8 bits 0 vs 8 bits 1), soft decision
...
...
@@ -1814,14 +1814,14 @@ void decode_NPUSCH_msg_NB_IoT(PHY_VARS_eNB *eNB,
{
// fill_crc_indication_NB_IoT(eNB,0,rx_frame,rx_subframe,1); // indicate ACK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
1
);
printf
(
" decoded msg5 (soft): ACK "
);
LOG_I
(
PHY
,
" decoded msg5 (soft): ACK "
);
}
else
{
//fill_crc_indication_NB_IoT(eNB,0,rx_frame,rx_subframe,0); // indicate NAK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
0
);
printf
(
" decoded msg5 (soft): NACK "
);
LOG_I
(
PHY
,
" decoded msg5 (soft): NACK "
);
}
}
printf
(
"
\n\n\n
"
);
// end decision for ACK/NACK
//
printf("\n\n\n"); // end decision for ACK/NACK
}
///// if last sf of the word
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/IF_Module_L1_primitives_NB_IoT.c
View file @
db61edd7
...
...
@@ -345,7 +345,7 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO)
//LOG_I(PHY, "number_dl_pdu: %d ,dl_config_pdu type: %d\n",number_dl_pdu,dl_config_pdu->pdu_type);
switch
(
dl_config_pdu
->
pdu_type
)
{
printf
(
"In case schedule_response_NB_IoT****************************************in schedule_response_NB_IoT
\n
"
);
//
printf("In case schedule_response_NB_IoT****************************************in schedule_response_NB_IoT\n");
case
NFAPI_DL_CONFIG_NPDCCH_PDU_TYPE
:
//printf("NFAPI_DL_CONFIG_NPDCCH_PDU_TYPE***********************\n");
//Remember: there is no DCI for SI information
...
...
@@ -444,8 +444,9 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO)
///////////////////////////////////////////////////////////////////////////////////////////
//maybe this condition should be replaced by another test ?!
if
(
nfapi_parameters_rel13
->
size
<
80
)
// msg3 data
if
(
(
nfapi_parameters_rel13
->
size
<
80
)
&&
(
nfapi_parameters_rel13
->
size
!=
41
))
// msg3 data
{
LOG_I
(
PHY
,
"MSG3 process at PHY
\n
"
);
nulsch
=
eNB
->
ulsch_NB_IoT
[
0
];
nulsch_harq
=
nulsch
->
harq_process
;
...
...
@@ -468,6 +469,8 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO)
nulsch_harq
->
new_data_indication
=
nfapi_parameters_rel13
->
new_data_indication
;
// valid only for DCI N0
nulsch_harq
->
TBS
=
nfapi_parameters_rel13
->
size
;
/// check if needed *8 or /8 or nothing to do
}
else
{
// other npusch data
LOG_I
(
PHY
,
"UL data process at PHY
\n
"
);
nulsch
=
eNB
->
ulsch_NB_IoT
[
0
];
nulsch_harq
=
nulsch
->
harq_process
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/defs_NB_IoT.h
View file @
db61edd7
...
...
@@ -258,7 +258,8 @@ typedef struct{
/*** the value of variable in this structure is able to be changed in Preprocessor**/
typedef
struct
{
uint8_t
resent_flag
;
uint16_t
TBS
;
uint8_t
index_tbs
;
uint32_t
total_sdu_size
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_NB_IoT.c
View file @
db61edd7
...
...
@@ -252,6 +252,8 @@ void schedule_uss_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, u
UE_TEMPLATE_NB_IoT
*
UE_template_temp
;
DCIFormatN1_t
*
DCI_N1
;
DCIFormatN0_t
*
DCI_N0
;
DCIFormatN0_t
*
DCI_N0_1
;
//SCHEDULE_NB_IoT_t *scheduler = &eNB->scheduler;
mac_inst
->
scheduling_flag
.
flag_uss
[
0
]
=
1
;
mac_inst
->
scheduling_flag
.
flag_uss
[
1
]
=
0
;
...
...
@@ -303,6 +305,14 @@ void schedule_uss_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, u
//generate DCI-N0 content
fill_DCI_N0
(
DCI_N0
,
UE_template_temp
,
UE_sched_ctrl_info
);
generate_scheduling_result_UL
(
UE_sched_ctrl_info
->
NPDCCH_sf_start
,
UE_sched_ctrl_info
->
NPDCCH_sf_end
,
UE_sched_ctrl_info
->
NPUSCH_sf_start
+
3
,
UE_sched_ctrl_info
->
NPUSCH_sf_end
+
3
,
DCI_N0
,
UE_template_temp
->
rnti
,
str22
,
str23
,
0
);
if
(
UE_sched_ctrl_info
->
resent_flag
==
1
)
{
DCI_N0_1
=
(
DCIFormatN0_t
*
)
malloc
(
sizeof
(
DCIFormatN0_t
));
UE_sched_ctrl_info
->
dci_n0_index_ndi
=
1
;
fill_DCI_N0
(
DCI_N0_1
,
UE_template_temp
,
UE_sched_ctrl_info
);
generate_scheduling_result_UL
(
UE_sched_ctrl_info
->
NPDCCH_sf_start
+
800
,
UE_sched_ctrl_info
->
NPDCCH_sf_end
+
800
,
UE_sched_ctrl_info
->
NPUSCH_sf_start
+
803
,
UE_sched_ctrl_info
->
NPUSCH_sf_end
+
803
,
DCI_N0_1
,
UE_template_temp
->
rnti
,
str22
,
str23
,
0
);
}
//sotre UE_template
UE_template_temp
->
R_dci
=
UE_sched_ctrl_info
->
R_dci
;
UE_template_temp
->
R_ul
=
UE_sched_ctrl_info
->
R_ul_data
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_RA_NB_IoT.c
View file @
db61edd7
...
...
@@ -763,9 +763,9 @@ void schedule_msg4_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
}
// check msg4 resource
rep
=
dl_rep
[
msg4_nodes
->
ce_level
];
msg4_length
=
fill_msg4_NB_IoT
(
mac_inst
,
msg4_nodes
);
I_mcs
=
get_I_mcs
(
msg4_nodes
->
ce_level
);
//I_mcs = 1
;
msg4_length
=
fill_msg4_NB_IoT
_dedicated
(
mac_inst
,
msg4_nodes
);
//
I_mcs = get_I_mcs(msg4_nodes->ce_level);
I_mcs
=
5
;
I_tbs
=
I_mcs
;
TBS
=
get_max_tbs
(
I_tbs
);
if
(
TBS
>
msg4_length
)
...
...
@@ -1018,6 +1018,58 @@ int fill_msg4_NB_IoT(
return
length
;
}
// Generate MSG4 MAC PDU
int
fill_msg4_NB_IoT_dedicated
(
eNB_MAC_INST_NB_IoT
*
inst
,
RA_TEMPLATE_NB_IoT
*
ra_template
)
{
int
length
=
0
;
uint8_t
*
dlsch_buffer
=
&
ra_template
->
msg4_buffer
[
0
];
// we have three subheader here: 1 for Control element of Contention resolution, 2 for CCCH
SCH_SUBHEADER_FIXED_NB_IoT
*
msg4_sub_1
=
(
SCH_SUBHEADER_FIXED_NB_IoT
*
)
dlsch_buffer
;
msg4_sub_1
->
R
=
0
;
msg4_sub_1
->
E
=
1
;
msg4_sub_1
->
LCID
=
UE_CONTENTION_RESOLUTION
;
length
+=
1
;
SCH_SUBHEADER_FIXED_NB_IoT
*
msg4_sub_2
=
(
SCH_SUBHEADER_FIXED_NB_IoT
*
)
(
msg4_sub_1
+
1
);
msg4_sub_2
->
R
=
0
;
msg4_sub_2
->
E
=
0
;
msg4_sub_2
->
LCID
=
CCCH_NB_IoT
;
length
+=
1
;
uint8_t
*
con_res
=
(
uint8_t
*
)(
dlsch_buffer
+
2
);
con_res
[
0
]
=
ra_template
->
ccch_buffer
[
0
];
con_res
[
1
]
=
ra_template
->
ccch_buffer
[
1
];
con_res
[
2
]
=
ra_template
->
ccch_buffer
[
2
];
con_res
[
3
]
=
ra_template
->
ccch_buffer
[
3
];
con_res
[
4
]
=
ra_template
->
ccch_buffer
[
4
];
con_res
[
5
]
=
ra_template
->
ccch_buffer
[
5
];
length
+=
6
;
uint8_t
*
msg4_rrc_sdu
=
(
uint8_t
*
)
(
dlsch_buffer
+
8
);
msg4_rrc_sdu
[
0
]
=
ra_template
->
msg4_rrc_buffer
[
0
];
msg4_rrc_sdu
[
1
]
=
ra_template
->
msg4_rrc_buffer
[
1
];
msg4_rrc_sdu
[
2
]
=
ra_template
->
msg4_rrc_buffer
[
2
];
msg4_rrc_sdu
[
3
]
=
ra_template
->
msg4_rrc_buffer
[
3
];
msg4_rrc_sdu
[
4
]
=
ra_template
->
msg4_rrc_buffer
[
4
];
msg4_rrc_sdu
[
5
]
=
ra_template
->
msg4_rrc_buffer
[
5
];
msg4_rrc_sdu
[
6
]
=
ra_template
->
msg4_rrc_buffer
[
6
];
msg4_rrc_sdu
[
7
]
=
ra_template
->
msg4_rrc_buffer
[
7
];
msg4_rrc_sdu
[
8
]
=
ra_template
->
msg4_rrc_buffer
[
8
];
msg4_rrc_sdu
[
9
]
=
ra_template
->
msg4_rrc_buffer
[
9
];
length
+=
10
;
/*
printf("MSG4 PDU = ");
for(int i=0; i<length;i++)
printf("%02x ",dlsch_buffer[i]);
printf("\n");
*/
return
length
;
}
// Generate MSG4 MAC PDU
int
fill_msg4_NB_IoT_fixed
(
eNB_MAC_INST_NB_IoT
*
inst
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_ulsch_NB_IoT.c
View file @
db61edd7
...
...
@@ -145,11 +145,25 @@ int schedule_UL_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst,UE_TEMPLATE_NB_IoT *UE_info
return 0;
*/
//Fill result to Output structure
UE_sched_ctrl_info
->
NPDCCH_sf_end
=
NPDCCH_info
->
sf_end
;
UE_sched_ctrl_info
->
NPDCCH_sf_start
=
NPDCCH_info
->
sf_start
;
UE_sched_ctrl_info
->
NPUSCH_sf_end
=
NPUSCH_info
->
sf_end
;
UE_sched_ctrl_info
->
NPUSCH_sf_start
=
NPUSCH_info
->
sf_start
;
if
(
UE_info
->
ul_total_buffer
==
39
)
{
UE_sched_ctrl_info
->
NPDCCH_sf_end
=
NPDCCH_info
->
sf_end
+
200
;
UE_sched_ctrl_info
->
NPDCCH_sf_start
=
NPDCCH_info
->
sf_start
+
200
;
UE_sched_ctrl_info
->
NPUSCH_sf_end
=
NPUSCH_info
->
sf_end
+
200
;
UE_sched_ctrl_info
->
NPUSCH_sf_start
=
NPUSCH_info
->
sf_start
+
200
;
UE_sched_ctrl_info
->
resent_flag
=
1
;
LOG_N
(
MAC
,
"Delay sending the DCI, and receive command
\n
"
);
UE_sched_ctrl_info
->
dci_n0_index_ndi
=
0
;
}
else
{
UE_sched_ctrl_info
->
NPDCCH_sf_end
=
NPDCCH_info
->
sf_end
;
UE_sched_ctrl_info
->
NPDCCH_sf_start
=
NPDCCH_info
->
sf_start
;
UE_sched_ctrl_info
->
NPUSCH_sf_end
=
NPUSCH_info
->
sf_end
;
UE_sched_ctrl_info
->
NPUSCH_sf_start
=
NPUSCH_info
->
sf_start
;
UE_sched_ctrl_info
->
dci_n0_index_ndi
=
ndi
;
}
UE_sched_ctrl_info
->
TBS
=
TBS
;
UE_sched_ctrl_info
->
dci_n0_index_mcs
=
mcs
;
UE_sched_ctrl_info
->
index_tbs
=
mcs
;
...
...
@@ -157,7 +171,7 @@ int schedule_UL_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst,UE_TEMPLATE_NB_IoT *UE_info
UE_sched_ctrl_info
->
dci_n0_n_ru
=
Nru
;
UE_sched_ctrl_info
->
dci_n0_index_delay
=
dly
;
UE_sched_ctrl_info
->
dci_n0_index_subcarrier
=
NPUSCH_info
->
subcarrier_indication
;
UE_sched_ctrl_info
->
dci_n0_index_ndi
=
ndi
;
//
UE_sched_ctrl_info->dci_n0_index_ndi=ndi;
//UE_sched_ctrl_info->dci_n0_index_R_dci=get_DCI_REP(UE_sched_ctrl_info->R_dci->R_dci,UE_info->R_max);
UE_sched_ctrl_info
->
dci_n0_index_R_data
=
I_rep
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/proto_NB_IoT.h
View file @
db61edd7
...
...
@@ -128,6 +128,8 @@ void fill_rar_NB_IoT(eNB_MAC_INST_NB_IoT *inst, RA_TEMPLATE_NB_IoT *ra_template,
void
receive_msg4_ack_NB_IoT
(
eNB_MAC_INST_NB_IoT
*
mac_inst
,
rnti_t
rnti
);
int
fill_msg4_NB_IoT
(
eNB_MAC_INST_NB_IoT
*
inst
,
RA_TEMPLATE_NB_IoT
*
ra_template
);
int
fill_msg4_NB_IoT_fixed
(
eNB_MAC_INST_NB_IoT
*
inst
,
RA_TEMPLATE_NB_IoT
*
ra_template
);
int
fill_msg4_NB_IoT_dedicated
(
eNB_MAC_INST_NB_IoT
*
inst
,
RA_TEMPLATE_NB_IoT
*
ra_template
);
//USS
void
schedule_uss_NB_IoT
(
module_id_t
module_id
,
eNB_MAC_INST_NB_IoT
*
mac_inst
,
uint32_t
subframe
,
uint32_t
frame
,
uint32_t
hypersfn
,
int
index_ss
);
...
...
This diff is collapsed.
Click to expand it.
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
View file @
db61edd7
...
...
@@ -4,6 +4,7 @@
int
tmp
=
0
;
int
block_rach
=
0
;
int
first_msg4
=
0
;
void
simulate_preamble
(
UL_IND_NB_IoT_t
*
UL_INFO
,
int
CE
,
int
sc
)
{
...
...
@@ -93,7 +94,7 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
//for(i=0;i<UL_INFO->nrach_ind.number_of_initial_scs_detected;i++)
for
(
i
=
0
;
i
<
1
;
i
++
)
{
if
(
block_rach
==
0
)
if
(
block_rach
==
0
)
{
// initiate_ra here, some useful inforamtion :
LOG_D
(
MAC
,
"Init_RA_NB_IoT in, index of sc = %d
\n
"
,(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
);
...
...
@@ -140,7 +141,7 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
{
LOG_I
(
MAC
,
"This UE get the response of HARQ DL : ACK, update the UL buffer for next message
\n
"
);
ue_info
->
direction
=
0
;
ue_info
->
ul_total_buffer
=
64
;
ue_info
->
ul_total_buffer
=
39
;
block_rach
=
1
;
//LOG_I(MAC,"This UE get the response of HARQ DL : NACK, and will start the next harq round : %d\n",ue_info->HARQ_round);
//ue_info->direction=1;
...
...
@@ -149,7 +150,11 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
}
else
{
receive_msg4_ack_NB_IoT
(
mac_inst
,
UL_INFO
->
nb_harq_ind
.
nb_harq_indication_body
.
nb_harq_pdu_list
[
0
].
rx_ue_information
.
rnti
);
if
(
first_msg4
==
0
)
{
receive_msg4_ack_NB_IoT
(
mac_inst
,
UL_INFO
->
nb_harq_ind
.
nb_harq_indication_body
.
nb_harq_pdu_list
[
0
].
rx_ue_information
.
rnti
);
first_msg4
=
1
;
}
}
}
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/MESSAGES/asn1_msg_NB_IoT.c
View file @
db61edd7
...
...
@@ -954,7 +954,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
long
*
npusch_repetitions
=
NULL
;
long
*
group_hopping_disabled
=
NULL
;
long
*
srpro
=
NULL
;
long
*
periodicBSR_Timer
=
NULL
;
// At the first moment of MSG4 testing we set NULL to those optional
struct
SRB_ToAddMod_NB_r13
*
SRB1_config_NB_IoT
=
NULL
;
...
...
@@ -965,6 +965,9 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
struct
SRB_ToAddMod_NB_r13__rlc_Config_r13
*
SRB1bis_rlc_config_NB_IoT
=
NULL
;
struct
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13
*
SRB1bis_lchan_config_NB_IoT
=
NULL
;
struct
RadioResourceConfigDedicated_NB_r13__mac_MainConfig_r13
*
mac_main_config_NB_IoT
=
NULL
;
struct
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13
*
logicalChannelSR_Config
=
NULL
;
struct
MAC_MainConfig_NB_r13__ul_SCH_Config_r13
*
ul_SCH_Config
=
NULL
;
PhysicalConfigDedicated_NB_r13_t
*
physicalConfigDedicated2_NB_IoT
=
NULL
;
DL_CCCH_Message_NB_t
dl_ccch_msg_NB_IoT
;
RRCConnectionSetup_NB_t
*
rrcConnectionSetup_NB_IoT
=
NULL
;
...
...
@@ -1099,6 +1102,35 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
// UplinkPowerControlDedicated
physicalConfigDedicated2_NB_IoT
->
uplinkPowerControlDedicated_r13
->
p0_UE_NPUSCH_r13
=
0
;
mac_main_config_NB_IoT
=
CALLOC
(
1
,
sizeof
(
*
mac_main_config_NB_IoT
));
mac_main_config_NB_IoT
->
present
=
RadioResourceConfigDedicated_NB_r13__mac_MainConfig_r13_PR_explicitValue_r13
;
//mac_main_config_NB_IoT->present = RadioResourceConfigDedicated_NB_r13__mac_MainConfig_r13_PR_defaultValue_r13;
//mac_main_config_NB_IoT->choice.explicitValue_r13.ul_SCH_Config_r13 =NULL;
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
ul_SCH_Config_r13
=
CALLOC
(
1
,
sizeof
(
*
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
ul_SCH_Config_r13
));
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
logicalChannelSR_Config_r13
=
CALLOC
(
1
,
sizeof
(
*
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
logicalChannelSR_Config_r13
));
//mac_main_config_NB_IoT->choice.explicitValue_r13.logicalChannelSR_Config_r13 = NULL;
//periodicBSR_Timer = CALLOC(1,sizeof(*periodicBSR_Timer));
//*periodicBSR_Timer = 2; // PeriodicBSR_Timer_NB_r13_pp8
//logicalChannelSR_Config = CALLOC(1,sizeof(*logicalChannelSR_Config));
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
logicalChannelSR_Config_r13
->
choice
.
setup
.
logicalChannelSR_ProhibitTimer_r13
=
6
;
//MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13__setup__logicalChannelSR_ProhibitTimer_r13_pp8
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
logicalChannelSR_Config_r13
->
present
=
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13_PR_setup
;
//ul_SCH_Config = CALLOC(1,sizeof(*ul_SCH_Config));
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
ul_SCH_Config_r13
->
periodicBSR_Timer_r13
=
CALLOC
(
1
,
sizeof
(
*
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
ul_SCH_Config_r13
->
periodicBSR_Timer_r13
));
*
(
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
ul_SCH_Config_r13
->
periodicBSR_Timer_r13
)
=
2
;
mac_main_config_NB_IoT
->
choice
.
explicitValue_r13
.
ul_SCH_Config_r13
->
retxBSR_Timer_r13
=
6
;
// RetxBSR_Timer_NB_r13_pp512, 6 = iffinitiy
//mac_main_config_NB_IoT->present = RadioResourceConfigDedicated_NB_r13__mac_MainConfig_r13_PR_explicitValue_r13;
//mac_main_config_NB_IoT->choice.explicitValue_r13.ul_SCH_Config_r13= NULL; //ul_SCH_Config
//mac_main_config_NB_IoT->choice.explicitValue_r13.timeAlignmentTimerDedicated_r13 = 0;//7= TimeAlignmentTimer_infinity
//mac_main_config_NB_IoT->choice.explicitValue_r13.logicalChannelSR_Config_r13 = logicalChannelSR_Config; // logicalChannelSR_Config
//mac_main_config_NB_IoT->choice.explicitValue_r13.ext1 = NULL;
//mac_main_config_NB_IoT->choice.explicitValue_r13.ext2 = NULL;
//mac_main_config_NB_IoT->choice.explicitValue_r13.drx_Config_r13 = NULL;
//Fill the rrcConnectionSetup-NB message
rrcConnectionSetup_NB_IoT
->
rrc_TransactionIdentifier
=
Transaction_id
;
//input value
...
...
@@ -1110,7 +1142,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
rrcConnectionSetup_NB_IoT
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetup_r13
.
radioResourceConfigDedicated_r13
.
drb_ToReleaseList_r13
=
NULL
;
rrcConnectionSetup_NB_IoT
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetup_r13
.
radioResourceConfigDedicated_r13
.
rlf_TimersAndConstants_r13
=
NULL
;
rrcConnectionSetup_NB_IoT
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetup_r13
.
radioResourceConfigDedicated_r13
.
physicalConfigDedicated_r13
=
physicalConfigDedicated2_NB_IoT
;
rrcConnectionSetup_NB_IoT
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetup_r13
.
radioResourceConfigDedicated_r13
.
mac_MainConfig_r13
=
NULL
;
rrcConnectionSetup_NB_IoT
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetup_r13
.
radioResourceConfigDedicated_r13
.
mac_MainConfig_r13
=
mac_main_config_NB_IoT
;
// mac_main_config_NB_IoT
#ifdef XER_PRINT
xer_fprint
(
stdout
,
&
asn_DEF_DL_CCCH_Message
,
(
void
*
)
&
dl_ccch_msg
);
...
...
@@ -1118,15 +1150,22 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_DL_CCCH_Message_NB
,
(
void
*
)
&
dl_ccch_msg_NB_IoT
,
buffer
,
100
);
255
);
AssertFatal
(
enc_rval
.
encoded
>
0
,
"ASN1 message encoding failed (%s, %lu)!
\n
"
,
enc_rval
.
failed_type
->
name
,
enc_rval
.
encoded
);
LOG_I
(
RRC
,
"[MSG] RRC Connection Setup NB-IoT: "
);
#ifdef USER_MODE
LOG_D
(
RRC
,
"RRCConnectionSetup-NB Encoded %d bits (%d bytes), ecause %d
\n
"
,
int
cnt
;
for
(
cnt
=
0
;
cnt
<
((
enc_rval
.
encoded
+
7
)
/
8
);
cnt
++
)
{
printf
(
"%02x "
,
buffer
[
cnt
]);
}
printf
(
"
\n
"
);
LOG_I
(
RRC
,
"RRCConnectionSetup-NB Encoded %d bits (%d bytes), ecause %d
\n
"
,
enc_rval
.
encoded
,(
enc_rval
.
encoded
+
7
)
/
8
,
ecause
);
#endif
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/rrc_eNB.c
View file @
db61edd7
...
...
@@ -155,7 +155,7 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier)
for
(
cnt
=
0
;
cnt
<
carrier
[
0
].
Srb0
.
Tx_buffer
.
payload_size
;
cnt
++
)
{
printf
(
"%02x "
,
carrier
[
0
].
Srb0
.
Tx_buffer
.
Payload
[
cnt
]);
printf
(
"%02x "
,
(
uint8_t
)
carrier
[
0
].
Srb0
.
Tx_buffer
.
Payload
[
cnt
]);
}
printf
(
"
\n
"
);
...
...
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