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
wangjie
OpenXG-RAN
Commits
f49d9651
Commit
f49d9651
authored
Sep 24, 2019
by
chenhsunyang0922
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add LTE prefix in rrc_eNB_NB_IoT.c
parent
813b7bc5
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
83 additions
and
97 deletions
+83
-97
openair2/LAYER2/MAC/defs_NB_IoT.h
openair2/LAYER2/MAC/defs_NB_IoT.h
+1
-15
openair2/RRC/NBIOT/rrc_eNB_NB_IoT.c
openair2/RRC/NBIOT/rrc_eNB_NB_IoT.c
+82
-82
No files found.
openair2/LAYER2/MAC/defs_NB_IoT.h
View file @
f49d9651
...
@@ -522,19 +522,7 @@ typedef struct{
...
@@ -522,19 +522,7 @@ typedef struct{
uint32_t
ss_start_css
;
uint32_t
ss_start_css
;
}
NPDCCH_config_common_NB_IoT_t
;
}
NPDCCH_config_common_NB_IoT_t
;
/*36331 NPDCCH-ConfigDedicated-NB_IoT*/
typedef
struct
{
//npdcch-NumRepetitions-r13
uint32_t
R_max
;
//npdcch-StartSF-CSS-r13
double
G
;
//npdcch-Offset-USS-r13
double
a_offset
;
//NPDCCH period
uint32_t
T
;
//Starting subfrane of Search Space which is mod T
uint32_t
ss_start_css
;
}
NPDCCH_config_common_NB_IoT_t
;
/*! \brief top level eNB MAC structure */
/*! \brief top level eNB MAC structure */
...
@@ -578,8 +566,6 @@ typedef struct mac_NB_IoT_s{
...
@@ -578,8 +566,6 @@ typedef struct mac_NB_IoT_s{
//uint32_t schedule_subframe_UL;
//uint32_t schedule_subframe_UL;
NPDCCH_config_common_NB_IoT_t
npdcch_config_common
[
3
];
NPDCCH_config_common_NB_IoT_t
npdcch_config_common
[
3
];
NPDCCH_config_common_NB_IoT_t
npdcch_config_common
[
3
];
rrc_config_NB_IoT_t
rrc_config
;
rrc_config_NB_IoT_t
rrc_config
;
nfapi_config_request_t
config
;
nfapi_config_request_t
config
;
...
...
openair2/RRC/NBIOT/rrc_eNB_NB_IoT.c
View file @
f49d9651
...
@@ -56,10 +56,10 @@
...
@@ -56,10 +56,10 @@
#include "asn1_conversions.h"
#include "asn1_conversions.h"
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "LAYER2/RLC/rlc.h"
#include "LAYER2/RLC/rlc.h"
#include "
UTIL
/LOG/log.h"
#include "
common/utils
/LOG/log.h"
#include "COMMON/mac_rrc_primitives.h"
#include "COMMON/mac_rrc_primitives.h"
#include "rlc.h"
#include "rlc.h"
#include "SIMULATION/ETH_TRANSPORT/extern.h"
#include "
openair1/
SIMULATION/ETH_TRANSPORT/extern.h"
#include "rrc_eNB_UE_context.h" // used by NB-IoT branch
#include "rrc_eNB_UE_context.h" // used by NB-IoT branch
#include "platform_types.h"
#include "platform_types.h"
#include "msc.h"
#include "msc.h"
...
@@ -129,7 +129,7 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier)
...
@@ -129,7 +129,7 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier)
ue_context_pP_NB_IoT
=
(
rrc_eNB_ue_context_NB_IoT_t
*
)
malloc
(
sizeof
(
rrc_eNB_ue_context_NB_IoT_t
));
ue_context_pP_NB_IoT
=
(
rrc_eNB_ue_context_NB_IoT_t
*
)
malloc
(
sizeof
(
rrc_eNB_ue_context_NB_IoT_t
));
SRB_ToAddModList_NB_r13_t
**
SRB_configList_NB_IoT
;
LTE_
SRB_ToAddModList_NB_r13_t
**
SRB_configList_NB_IoT
;
SRB_configList_NB_IoT
=
&
ue_context_pP_NB_IoT
->
ue_context
.
SRB_configList
;
SRB_configList_NB_IoT
=
&
ue_context_pP_NB_IoT
->
ue_context
.
SRB_configList
;
...
@@ -175,8 +175,8 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
...
@@ -175,8 +175,8 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
((
uint8_t
*
)
srb_info
->
Rx_buffer
.
Payload
)[
8
],
((
uint8_t
*
)
srb_info
->
Rx_buffer
.
Payload
)[
8
],
(
uint8_t
*
)
srb_info
->
Rx_buffer
.
Payload
);
(
uint8_t
*
)
srb_info
->
Rx_buffer
.
Payload
);
RRCConnectionRequest_NB_r13_IEs_t
*
rrcConnectionRequest_NB
=
NULL
;
LTE_
RRCConnectionRequest_NB_r13_IEs_t
*
rrcConnectionRequest_NB
=
NULL
;
UL_CCCH_Message_NB_t
*
ul_ccch_msg_NB
=
NULL
;
LTE_
UL_CCCH_Message_NB_t
*
ul_ccch_msg_NB
=
NULL
;
dec_rval
=
uper_decode
(
dec_rval
=
uper_decode
(
NULL
,
NULL
,
&
asn_DEF_UL_CCCH_Message_NB
,
&
asn_DEF_UL_CCCH_Message_NB
,
...
@@ -185,11 +185,11 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
...
@@ -185,11 +185,11 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
100
,
100
,
0
,
0
,
0
);
0
);
if
(
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
present
==
UL_CCCH_MessageType_NB__c1_PR_rrcConnectionRequest_r13
)
if
(
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
present
==
LTE_
UL_CCCH_MessageType_NB__c1_PR_rrcConnectionRequest_r13
)
{
{
LOG_I
(
RRC
,
"The decode CCH MSG is RRC connection Request NB
\n
"
);
LOG_I
(
RRC
,
"The decode CCH MSG is RRC connection Request NB
\n
"
);
rrcConnectionRequest_NB
=
&
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
choice
.
rrcConnectionRequest_r13
.
criticalExtensions
.
choice
.
rrcConnectionRequest_r13
;
rrcConnectionRequest_NB
=
&
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
choice
.
rrcConnectionRequest_r13
.
criticalExtensions
.
choice
.
rrcConnectionRequest_r13
;
if
(
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
==
InitialUE_Identity_PR_randomValue
)
if
(
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
==
LTE_
InitialUE_Identity_PR_randomValue
)
{
{
uint8_t
*
da
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
buf
;
/* BIT STRING body */
uint8_t
*
da
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
buf
;
/* BIT STRING body */
int
length
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
size
;
/* Size of the above buffer */
int
length
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
size
;
/* Size of the above buffer */
...
@@ -197,7 +197,7 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
...
@@ -197,7 +197,7 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
for
(
int
a
=
0
;
a
<
length
;
a
++
)
for
(
int
a
=
0
;
a
<
length
;
a
++
)
printf
(
"%02x "
,
da
[
a
]);
printf
(
"%02x "
,
da
[
a
]);
printf
(
"
\n
"
);
printf
(
"
\n
"
);
}
else
if
(
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
==
InitialUE_Identity_PR_s_TMSI
)
}
else
if
(
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
==
LTE_
InitialUE_Identity_PR_s_TMSI
)
{
{
uint8_t
*
da
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
s_TMSI
.
m_TMSI
.
buf
;
/* BIT STRING body */
uint8_t
*
da
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
s_TMSI
.
m_TMSI
.
buf
;
/* BIT STRING body */
int
length
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
s_TMSI
.
m_TMSI
.
size
;
/* Size of the above buffer */
int
length
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
s_TMSI
.
m_TMSI
.
size
;
/* Size of the above buffer */
...
@@ -386,8 +386,8 @@ void init_testing_NB_IoT(uint8_t Mod_id, int CC_id, rrc_eNB_carrier_data_NB_IoT_
...
@@ -386,8 +386,8 @@ void init_testing_NB_IoT(uint8_t Mod_id, int CC_id, rrc_eNB_carrier_data_NB_IoT_
CC_id
,
CC_id
,
0
,
0
,
carrier
,
carrier
,
(
SystemInformationBlockType1_NB_t
*
)
carrier
[
CC_id
].
sib1_NB_IoT
,
(
LTE_
SystemInformationBlockType1_NB_t
*
)
carrier
[
CC_id
].
sib1_NB_IoT
,
(
RadioResourceConfigCommonSIB_NB_r13_t
*
)
&
carrier
[
CC_id
].
sib2_NB_IoT
->
radioResourceConfigCommon_r13
,
(
LTE_
RadioResourceConfigCommonSIB_NB_r13_t
*
)
&
carrier
[
CC_id
].
sib2_NB_IoT
->
radioResourceConfigCommon_r13
,
(
struct
PhysicalConfigDedicated_NB_r13
*
)
NULL
,
(
struct
PhysicalConfigDedicated_NB_r13
*
)
NULL
,
(
struct
LogicalChannelConfig_NB_r13
*
)
NULL
,
(
struct
LogicalChannelConfig_NB_r13
*
)
NULL
,
0
,
0
,
...
@@ -838,9 +838,9 @@ void rrc_eNB_generate_RRCConnectionSetup_NB_IoT(
...
@@ -838,9 +838,9 @@ void rrc_eNB_generate_RRCConnectionSetup_NB_IoT(
// SRB_ToAddMod_NB_r13_t *SRB1_config; //may not needed now
// SRB_ToAddMod_NB_r13_t *SRB1_config; //may not needed now
// LogicalChannelConfig_NB_r13_t *SRB1_logicalChannelConfig;
// LogicalChannelConfig_NB_r13_t *SRB1_logicalChannelConfig;
SRB_ToAddModList_NB_r13_t
**
SRB_configList
;
//for both SRB1 and SRB1bis
LTE_
SRB_ToAddModList_NB_r13_t
**
SRB_configList
;
//for both SRB1 and SRB1bis
SRB_ToAddMod_NB_r13_t
*
SRB1bis_config
;
LTE_
SRB_ToAddMod_NB_r13_t
*
SRB1bis_config
;
LogicalChannelConfig_NB_r13_t
*
SRB1bis_logicalChannelConfig
;
L
TE_L
ogicalChannelConfig_NB_r13_t
*
SRB1bis_logicalChannelConfig
;
int
cnt
;
int
cnt
;
...
@@ -884,7 +884,7 @@ void rrc_eNB_generate_RRCConnectionSetup_NB_IoT(
...
@@ -884,7 +884,7 @@ void rrc_eNB_generate_RRCConnectionSetup_NB_IoT(
SRB1bis_config
=
(
*
SRB_configList
)
->
list
.
array
[
cnt
];
SRB1bis_config
=
(
*
SRB_configList
)
->
list
.
array
[
cnt
];
if
(
SRB1bis_config
->
logicalChannelConfig_r13
)
{
if
(
SRB1bis_config
->
logicalChannelConfig_r13
)
{
if
(
SRB1bis_config
->
logicalChannelConfig_r13
->
present
==
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue
)
if
(
SRB1bis_config
->
logicalChannelConfig_r13
->
present
==
LTE_
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue
)
{
{
SRB1bis_logicalChannelConfig
=
&
SRB1bis_config
->
logicalChannelConfig_r13
->
choice
.
explicitValue
;
SRB1bis_logicalChannelConfig
=
&
SRB1bis_config
->
logicalChannelConfig_r13
->
choice
.
explicitValue
;
}
}
...
@@ -981,8 +981,8 @@ void rrc_eNB_process_RRCConnectionReconfigurationComplete_NB_IoT(
...
@@ -981,8 +981,8 @@ void rrc_eNB_process_RRCConnectionReconfigurationComplete_NB_IoT(
uint8_t
*
kUPenc
=
NULL
;
uint8_t
*
kUPenc
=
NULL
;
DRB_ToAddModList_NB_r13_t
*
DRB_configList2
=
ue_context_pP
->
ue_context
.
DRB_configList2
[
xid
];
LTE_
DRB_ToAddModList_NB_r13_t
*
DRB_configList2
=
ue_context_pP
->
ue_context
.
DRB_configList2
[
xid
];
SRB_ToAddModList_NB_r13_t
*
SRB_configList2
=
ue_context_pP
->
ue_context
.
SRB_configList2
[
xid
];
LTE_
SRB_ToAddModList_NB_r13_t
*
SRB_configList2
=
ue_context_pP
->
ue_context
.
SRB_configList2
[
xid
];
T
(
T_ENB_RRC_CONNECTION_RECONFIGURATION_COMPLETE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T
(
T_ENB_RRC_CONNECTION_RECONFIGURATION_COMPLETE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
...
@@ -1020,7 +1020,7 @@ void rrc_eNB_process_RRCConnectionReconfigurationComplete_NB_IoT(
...
@@ -1020,7 +1020,7 @@ void rrc_eNB_process_RRCConnectionReconfigurationComplete_NB_IoT(
ctxt_pP
,
ctxt_pP
,
SRB_configList2
,
SRB_configList2
,
DRB_configList2
,
DRB_configList2
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
0xff
,
//security mode already configured during the securitymodecommand --> they comes from S1AP_INITIAL_CONTEXT_SETUP_REQ(msg_p).security_capabilities
0xff
,
//security mode already configured during the securitymodecommand --> they comes from S1AP_INITIAL_CONTEXT_SETUP_REQ(msg_p).security_capabilities
kRRCenc
,
kRRCenc
,
kRRCint
,
kRRCint
,
...
@@ -1033,7 +1033,7 @@ void rrc_eNB_process_RRCConnectionReconfigurationComplete_NB_IoT(
...
@@ -1033,7 +1033,7 @@ void rrc_eNB_process_RRCConnectionReconfigurationComplete_NB_IoT(
ctxt_pP
,
ctxt_pP
,
SRB_configList2
,
SRB_configList2
,
DRB_configList2
,
DRB_configList2
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
SRB1BIS_FLAG_NO
SRB1BIS_FLAG_NO
);
);
...
@@ -1271,11 +1271,11 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
...
@@ -1271,11 +1271,11 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
//no UL specific parameters
//no UL specific parameters
DRB_ToAddModList_NB_r13_t
*
DRB_configList
=
ue_context_pP
->
ue_context
.
DRB_configList
;
LTE_
DRB_ToAddModList_NB_r13_t
*
DRB_configList
=
ue_context_pP
->
ue_context
.
DRB_configList
;
DRB_ToAddModList_NB_r13_t
**
DRB_configList2
=
NULL
;
LTE_
DRB_ToAddModList_NB_r13_t
**
DRB_configList2
=
NULL
;
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
dedicatedInfoNASList_NB_IoT
=
NULL
;
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
dedicatedInfoNASList_NB_IoT
=
NULL
;
DedicatedInfoNAS_t
*
dedicatedInfoNas
=
NULL
;
LTE_
DedicatedInfoNAS_t
*
dedicatedInfoNas
=
NULL
;
/* for no gcc warnings */
/* for no gcc warnings */
(
void
)
dedicatedInfoNas
;
(
void
)
dedicatedInfoNas
;
...
@@ -1327,7 +1327,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
...
@@ -1327,7 +1327,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
DRB_pdcp_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_pdcp_config
));
DRB_pdcp_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_pdcp_config
));
DRB_config
->
pdcp_Config_r13
=
DRB_pdcp_config
;
DRB_config
->
pdcp_Config_r13
=
DRB_pdcp_config
;
DRB_pdcp_config
->
discardTimer_r13
=
CALLOC
(
1
,
sizeof
(
long
));
DRB_pdcp_config
->
discardTimer_r13
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
DRB_pdcp_config
->
discardTimer_r13
)
=
PDCP_Config_NB_r13__discardTimer_r13_infinity
;
*
(
DRB_pdcp_config
->
discardTimer_r13
)
=
LTE_
PDCP_Config_NB_r13__discardTimer_r13_infinity
;
/*XXX MP:old implementation foresee a switch case on e_context_pP->ue_context.e_rab[i].param.qos.qci (TS 36.413 and TS 23.401)
/*XXX MP:old implementation foresee a switch case on e_context_pP->ue_context.e_rab[i].param.qos.qci (TS 36.413 and TS 23.401)
...
@@ -1337,17 +1337,17 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
...
@@ -1337,17 +1337,17 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
// RLC conf
// RLC conf
//TODO: set properly the following parameters for the DRBs establishment
//TODO: set properly the following parameters for the DRBs establishment
DRB_rlc_config
->
present
=
RLC_Config_NB_r13_PR_am
;
DRB_rlc_config
->
present
=
LTE_
RLC_Config_NB_r13_PR_am
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
t_PollRetransmit_r13
=
T_PollRetransmit_NB_r13_ms250
;
//random
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
t_PollRetransmit_r13
=
LTE_
T_PollRetransmit_NB_r13_ms250
;
//random
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
maxRetxThreshold_r13
=
UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t8
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
maxRetxThreshold_r13
=
LTE_
UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t8
;
DRB_rlc_config
->
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
=
CALLOC
(
1
,
sizeof
(
long
));
/* OPTIONAL */
DRB_rlc_config
->
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
=
CALLOC
(
1
,
sizeof
(
long
));
/* OPTIONAL */
*
(
DRB_rlc_config
->
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
)
=
DL_AM_RLC_NB_r13__enableStatusReportSN_Gap_r13_true
;
*
(
DRB_rlc_config
->
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
)
=
LTE_
DL_AM_RLC_NB_r13__enableStatusReportSN_Gap_r13_true
;
//XXX MP: TS 36.323 v14.2.0 ch5.3.2 PDCP status report operation is not applicable for NB-IoT
//XXX MP: TS 36.323 v14.2.0 ch5.3.2 PDCP status report operation is not applicable for NB-IoT
//(in any case they set to FALSE in the LTE DRBs setup in OAI)
//(in any case they set to FALSE in the LTE DRBs setup in OAI)
//MP: not used header compression PDCP fr DRBs in OAI
//MP: not used header compression PDCP fr DRBs in OAI
DRB_pdcp_config
->
headerCompression_r13
.
present
=
PDCP_Config_NB_r13__headerCompression_r13_PR_notUsed
;
DRB_pdcp_config
->
headerCompression_r13
.
present
=
LTE_
PDCP_Config_NB_r13__headerCompression_r13_PR_notUsed
;
DRB_lchan_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_lchan_config
));
DRB_lchan_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_lchan_config
));
DRB_config
->
logicalChannelConfig_r13
=
DRB_lchan_config
;
DRB_config
->
logicalChannelConfig_r13
=
DRB_lchan_config
;
...
@@ -1379,7 +1379,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
...
@@ -1379,7 +1379,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
{
{
if
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
if
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
dedicatedInfoNas
=
CALLOC
(
1
,
sizeof
(
DedicatedInfoNAS_t
));
dedicatedInfoNas
=
CALLOC
(
1
,
sizeof
(
LTE_
DedicatedInfoNAS_t
));
memset
(
dedicatedInfoNas
,
0
,
sizeof
(
OCTET_STRING_t
));
memset
(
dedicatedInfoNas
,
0
,
sizeof
(
OCTET_STRING_t
));
OCTET_STRING_fromBuf
(
dedicatedInfoNas
,
OCTET_STRING_fromBuf
(
dedicatedInfoNas
,
(
char
*
)
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
,
(
char
*
)
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
,
...
@@ -1416,9 +1416,9 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
...
@@ -1416,9 +1416,9 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
size
=
do_RRCConnectionReconfiguration_NB_IoT
(
ctxt_pP
,
size
=
do_RRCConnectionReconfiguration_NB_IoT
(
ctxt_pP
,
buffer
,
buffer
,
xid
,
xid
,
(
SRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
LTE_
SRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
DRB_ToAddModList_NB_r13_t
*
)
*
DRB_configList2
,
(
LTE_
DRB_ToAddModList_NB_r13_t
*
)
*
DRB_configList2
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
// DRB2_list,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
// DRB2_list,
NULL
,
NULL
,
//physical an MAC config dedicated
NULL
,
NULL
,
//physical an MAC config dedicated
(
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
)
dedicatedInfoNASList_NB_IoT
(
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
)
dedicatedInfoNASList_NB_IoT
);
);
...
@@ -1481,7 +1481,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
...
@@ -1481,7 +1481,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_NB_IoT(
void
rrc_eNB_process_RRCConnectionSetupComplete_NB_IoT
(
void
rrc_eNB_process_RRCConnectionSetupComplete_NB_IoT
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
protocol_ctxt_t
*
const
ctxt_pP
,
rrc_eNB_ue_context_NB_IoT_t
*
ue_context_pP
,
rrc_eNB_ue_context_NB_IoT_t
*
ue_context_pP
,
RRCConnectionSetupComplete_NB_r13_IEs_t
*
rrcConnectionSetupComplete_NB
LTE_
RRCConnectionSetupComplete_NB_r13_IEs_t
*
rrcConnectionSetupComplete_NB
)
)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
{
{
...
@@ -1664,18 +1664,18 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1664,18 +1664,18 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
struct
SRB_ToAddMod_NB_r13__rlc_Config_r13
*
SRB1_rlc_config
=
NULL
;
struct
SRB_ToAddMod_NB_r13__rlc_Config_r13
*
SRB1_rlc_config
=
NULL
;
struct
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13
*
SRB1_lchan_config
=
NULL
;
struct
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13
*
SRB1_lchan_config
=
NULL
;
SRB_ToAddModList_NB_r13_t
*
SRB_configList
=
ue_context_pP
->
ue_context
.
SRB_configList
;
//both SRB1 and SRB1bis
LTE_
SRB_ToAddModList_NB_r13_t
*
SRB_configList
=
ue_context_pP
->
ue_context
.
SRB_configList
;
//both SRB1 and SRB1bis
SRB_ToAddModList_NB_r13_t
**
SRB_configList2
=
NULL
;
//only SRB1
LTE_
SRB_ToAddModList_NB_r13_t
**
SRB_configList2
=
NULL
;
//only SRB1
struct
DRB_ToAddMod_NB_r13
*
DRB_config
=
NULL
;
struct
DRB_ToAddMod_NB_r13
*
DRB_config
=
NULL
;
struct
RLC_Config_NB_r13
*
DRB_rlc_config
=
NULL
;
struct
RLC_Config_NB_r13
*
DRB_rlc_config
=
NULL
;
struct
PDCP_Config_NB_r13
*
DRB_pdcp_config
=
NULL
;
struct
PDCP_Config_NB_r13
*
DRB_pdcp_config
=
NULL
;
struct
LogicalChannelConfig_NB_r13
*
DRB_lchan_config
=
NULL
;
struct
LogicalChannelConfig_NB_r13
*
DRB_lchan_config
=
NULL
;
DRB_ToAddModList_NB_r13_t
**
DRB_configList
=
&
ue_context_pP
->
ue_context
.
DRB_configList
;
LTE_
DRB_ToAddModList_NB_r13_t
**
DRB_configList
=
&
ue_context_pP
->
ue_context
.
DRB_configList
;
DRB_ToAddModList_NB_r13_t
**
DRB_configList2
=
NULL
;
LTE_
DRB_ToAddModList_NB_r13_t
**
DRB_configList2
=
NULL
;
MAC_MainConfig_NB_r13_t
*
mac_MainConfig_NB_IoT
=
NULL
;
LTE_
MAC_MainConfig_NB_r13_t
*
mac_MainConfig_NB_IoT
=
NULL
;
long
*
periodicBSR_Timer
;
long
*
periodicBSR_Timer
;
long
*
enableStatusReportSN_Gap
=
NULL
;
//should be disabled
long
*
enableStatusReportSN_Gap
=
NULL
;
//should be disabled
...
@@ -1684,7 +1684,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1684,7 +1684,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
//RSRP_Range_t *rsrp = NULL; //may not used
//RSRP_Range_t *rsrp = NULL; //may not used
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
dedicatedInfoNASList_NB_IoT
=
NULL
;
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
dedicatedInfoNASList_NB_IoT
=
NULL
;
DedicatedInfoNAS_t
*
dedicatedInfoNas
=
NULL
;
LTE_
DedicatedInfoNAS_t
*
dedicatedInfoNas
=
NULL
;
/* for no gcc warnings */
/* for no gcc warnings */
(
void
)
dedicatedInfoNas
;
(
void
)
dedicatedInfoNas
;
...
@@ -1707,16 +1707,16 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1707,16 +1707,16 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
SRB1_config
->
rlc_Config_r13
=
SRB1_rlc_config
;
SRB1_config
->
rlc_Config_r13
=
SRB1_rlc_config
;
//parameters values set as in the TS 36.331 specs ( pag 640)
//parameters values set as in the TS 36.331 specs ( pag 640)
SRB1_rlc_config
->
present
=
SRB_ToAddMod__rlc_Config_PR_explicitValue
;
SRB1_rlc_config
->
present
=
LTE_
SRB_ToAddMod__rlc_Config_PR_explicitValue
;
SRB1_rlc_config
->
choice
.
explicitValue
.
present
=
RLC_Config_NB_r13_PR_am
;
SRB1_rlc_config
->
choice
.
explicitValue
.
present
=
LTE_
RLC_Config_NB_r13_PR_am
;
SRB1_rlc_config
->
choice
.
explicitValue
.
choice
.
am
.
ul_AM_RLC_r13
.
t_PollRetransmit_r13
=
T_PollRetransmit_NB_r13_ms25000
;
SRB1_rlc_config
->
choice
.
explicitValue
.
choice
.
am
.
ul_AM_RLC_r13
.
t_PollRetransmit_r13
=
LTE_
T_PollRetransmit_NB_r13_ms25000
;
SRB1_rlc_config
->
choice
.
explicitValue
.
choice
.
am
.
ul_AM_RLC_r13
.
maxRetxThreshold_r13
=
UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t4
;
SRB1_rlc_config
->
choice
.
explicitValue
.
choice
.
am
.
ul_AM_RLC_r13
.
maxRetxThreshold_r13
=
LTE_
UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t4
;
SRB1_rlc_config
->
choice
.
explicitValue
.
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
=
enableStatusReportSN_Gap
;
SRB1_rlc_config
->
choice
.
explicitValue
.
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
=
enableStatusReportSN_Gap
;
SRB1_lchan_config
=
CALLOC
(
1
,
sizeof
(
*
SRB1_lchan_config
));
SRB1_lchan_config
=
CALLOC
(
1
,
sizeof
(
*
SRB1_lchan_config
));
SRB1_config
->
logicalChannelConfig_r13
=
SRB1_lchan_config
;
SRB1_config
->
logicalChannelConfig_r13
=
SRB1_lchan_config
;
SRB1_lchan_config
->
present
=
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue
;
SRB1_lchan_config
->
present
=
LTE_
SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue
;
priority
=
CALLOC
(
1
,
sizeof
(
long
));
priority
=
CALLOC
(
1
,
sizeof
(
long
));
*
priority
=
1
;
*
priority
=
1
;
...
@@ -1760,7 +1760,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1760,7 +1760,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
//FIXME: MP: I'm not sure that in NB-IoT the first 0..4 eps-bearerIdentity will be reserved for NSAPI (NEtwork Service Access Point Identifier)
//FIXME: MP: I'm not sure that in NB-IoT the first 0..4 eps-bearerIdentity will be reserved for NSAPI (NEtwork Service Access Point Identifier)
*
(
DRB_config
->
eps_BearerIdentity_r13
)
=
5L
;
// LW set to first value, allowed value 5..15, value : x+4
*
(
DRB_config
->
eps_BearerIdentity_r13
)
=
5L
;
// LW set to first value, allowed value 5..15, value : x+4
// NN/MP: this is the 1st DRB for this ue, so set it to 1
// NN/MP: this is the 1st DRB for this ue, so set it to 1
DRB_config
->
drb_Identity_r13
=
(
DRB_Identity_t
)
1
;
//allowed values INTEGER (1..32), value: x
DRB_config
->
drb_Identity_r13
=
(
LTE_
DRB_Identity_t
)
1
;
//allowed values INTEGER (1..32), value: x
DRB_config
->
logicalChannelIdentity_r13
=
CALLOC
(
1
,
sizeof
(
long
));
DRB_config
->
logicalChannelIdentity_r13
=
CALLOC
(
1
,
sizeof
(
long
));
//MP: logical channel identity =3 is reserved for SRB1bis, seee TS 36.331 pag 616
//MP: logical channel identity =3 is reserved for SRB1bis, seee TS 36.331 pag 616
*
(
DRB_config
->
logicalChannelIdentity_r13
)
=
(
long
)
4
;
//allowed value (4..10), value : x+3
*
(
DRB_config
->
logicalChannelIdentity_r13
)
=
(
long
)
4
;
//allowed value (4..10), value : x+3
...
@@ -1771,20 +1771,20 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1771,20 +1771,20 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
//set as TS 36.331 specs
//set as TS 36.331 specs
///RLC-AM
///RLC-AM
DRB_rlc_config
->
present
=
RLC_Config_NB_r13_PR_am
;
DRB_rlc_config
->
present
=
LTE_
RLC_Config_NB_r13_PR_am
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
t_PollRetransmit_r13
=
T_PollRetransmit_NB_r13_ms25000
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
t_PollRetransmit_r13
=
LTE_
T_PollRetransmit_NB_r13_ms25000
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
maxRetxThreshold_r13
=
UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t4
;
DRB_rlc_config
->
choice
.
am
.
ul_AM_RLC_r13
.
maxRetxThreshold_r13
=
LTE_
UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t4
;
DRB_rlc_config
->
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
=
enableStatusReportSN_Gap
;
DRB_rlc_config
->
choice
.
am
.
dl_AM_RLC_r13
.
enableStatusReportSN_Gap_r13
=
enableStatusReportSN_Gap
;
///PDCP
///PDCP
DRB_pdcp_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_pdcp_config
));
DRB_pdcp_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_pdcp_config
));
DRB_config
->
pdcp_Config_r13
=
DRB_pdcp_config
;
DRB_config
->
pdcp_Config_r13
=
DRB_pdcp_config
;
DRB_pdcp_config
->
discardTimer_r13
=
CALLOC
(
1
,
sizeof
(
long
));
DRB_pdcp_config
->
discardTimer_r13
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
DRB_pdcp_config
->
discardTimer_r13
)
=
PDCP_Config_NB_r13__discardTimer_r13_infinity
;
*
(
DRB_pdcp_config
->
discardTimer_r13
)
=
LTE_
PDCP_Config_NB_r13__discardTimer_r13_infinity
;
//no UM modality for RLC in NB-IoT
//no UM modality for RLC in NB-IoT
DRB_pdcp_config
->
headerCompression_r13
.
present
=
PDCP_Config_NB_r13__headerCompression_r13_PR_notUsed
;
DRB_pdcp_config
->
headerCompression_r13
.
present
=
LTE_
PDCP_Config_NB_r13__headerCompression_r13_PR_notUsed
;
DRB_lchan_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_lchan_config
));
DRB_lchan_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_lchan_config
));
DRB_config
->
logicalChannelConfig_r13
=
DRB_lchan_config
;
DRB_config
->
logicalChannelConfig_r13
=
DRB_lchan_config
;
...
@@ -1807,21 +1807,21 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1807,21 +1807,21 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
//no maxARQtx
//no maxARQtx
periodicBSR_Timer
=
CALLOC
(
1
,
sizeof
(
long
));
periodicBSR_Timer
=
CALLOC
(
1
,
sizeof
(
long
));
*
periodicBSR_Timer
=
PeriodicBSR_Timer_NB_r13_pp8
;
*
periodicBSR_Timer
=
LTE_
PeriodicBSR_Timer_NB_r13_pp8
;
mac_MainConfig_NB_IoT
->
ul_SCH_Config_r13
->
periodicBSR_Timer_r13
=
periodicBSR_Timer
;
mac_MainConfig_NB_IoT
->
ul_SCH_Config_r13
->
periodicBSR_Timer_r13
=
periodicBSR_Timer
;
mac_MainConfig_NB_IoT
->
ul_SCH_Config_r13
->
retxBSR_Timer_r13
=
RetxBSR_Timer_NB_r13_infinity
;
mac_MainConfig_NB_IoT
->
ul_SCH_Config_r13
->
retxBSR_Timer_r13
=
LTE_
RetxBSR_Timer_NB_r13_infinity
;
mac_MainConfig_NB_IoT
->
timeAlignmentTimerDedicated_r13
=
TimeAlignmentTimer_infinity
;
mac_MainConfig_NB_IoT
->
timeAlignmentTimerDedicated_r13
=
LTE_
TimeAlignmentTimer_infinity
;
mac_MainConfig_NB_IoT
->
drx_Config_r13
=
NULL
;
mac_MainConfig_NB_IoT
->
drx_Config_r13
=
NULL
;
//no phr_config
//no phr_config
mac_MainConfig_NB_IoT
->
logicalChannelSR_Config_r13
=
CALLOC
(
1
,
sizeof
(
struct
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13
));
mac_MainConfig_NB_IoT
->
logicalChannelSR_Config_r13
=
CALLOC
(
1
,
sizeof
(
struct
LTE_
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13
));
mac_MainConfig_NB_IoT
->
logicalChannelSR_Config_r13
->
present
=
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13_PR_setup
;
mac_MainConfig_NB_IoT
->
logicalChannelSR_Config_r13
->
present
=
LTE_
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13_PR_setup
;
//depends if previously activated
//depends if previously activated
mac_MainConfig_NB_IoT
->
logicalChannelSR_Config_r13
->
choice
.
setup
.
logicalChannelSR_ProhibitTimer_r13
=
mac_MainConfig_NB_IoT
->
logicalChannelSR_Config_r13
->
choice
.
setup
.
logicalChannelSR_ProhibitTimer_r13
=
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13__setup__logicalChannelSR_ProhibitTimer_r13_pp2
;
//value in PP=PDCCH periods
LTE_
MAC_MainConfig_NB_r13__logicalChannelSR_Config_r13__setup__logicalChannelSR_ProhibitTimer_r13_pp2
;
//value in PP=PDCCH periods
if
(
*
physicalConfigDedicated_NB_IoT
)
{
if
(
*
physicalConfigDedicated_NB_IoT
)
{
...
@@ -1851,12 +1851,12 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1851,12 +1851,12 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
//#if defined(ENABLE_ITTI).....
//#if defined(ENABLE_ITTI).....
/* Initialize NAS list */
/* Initialize NAS list */
dedicatedInfoNASList_NB_IoT
=
CALLOC
(
1
,
sizeof
(
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
));
dedicatedInfoNASList_NB_IoT
=
CALLOC
(
1
,
sizeof
(
struct
LTE_
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
));
/* Add all NAS PDUs to the list */
/* Add all NAS PDUs to the list */
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_e_rabs
;
i
++
)
{
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_e_rabs
;
i
++
)
{
if
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
if
(
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
dedicatedInfoNas
=
CALLOC
(
1
,
sizeof
(
DedicatedInfoNAS_t
));
dedicatedInfoNas
=
CALLOC
(
1
,
sizeof
(
LTE_
DedicatedInfoNAS_t
));
memset
(
dedicatedInfoNas
,
0
,
sizeof
(
OCTET_STRING_t
));
memset
(
dedicatedInfoNas
,
0
,
sizeof
(
OCTET_STRING_t
));
OCTET_STRING_fromBuf
(
dedicatedInfoNas
,
OCTET_STRING_fromBuf
(
dedicatedInfoNas
,
(
char
*
)
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
,
(
char
*
)
ue_context_pP
->
ue_context
.
e_rab
[
i
].
param
.
nas_pdu
.
buffer
,
...
@@ -1889,12 +1889,12 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
...
@@ -1889,12 +1889,12 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration_NB_IoT(const protocol_
size
=
do_RRCConnectionReconfiguration_NB_IoT
(
ctxt_pP
,
size
=
do_RRCConnectionReconfiguration_NB_IoT
(
ctxt_pP
,
buffer
,
buffer
,
xid
,
//Transaction_id,
xid
,
//Transaction_id,
(
SRB_ToAddModList_NB_r13_t
*
)
*
SRB_configList2
,
//only SRB1
(
LTE_
SRB_ToAddModList_NB_r13_t
*
)
*
SRB_configList2
,
//only SRB1
(
DRB_ToAddModList_NB_r13_t
*
)
*
DRB_configList
,
(
LTE_
DRB_ToAddModList_NB_r13_t
*
)
*
DRB_configList
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
// DRB2_list,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
// DRB2_list,
(
struct
PhysicalConfigDedicated_NB_r13
*
)
*
physicalConfigDedicated_NB_IoT
,
(
struct
LTE_
PhysicalConfigDedicated_NB_r13
*
)
*
physicalConfigDedicated_NB_IoT
,
(
MAC_MainConfig_t
*
)
mac_MainConfig_NB_IoT
,
(
LTE_
MAC_MainConfig_t
*
)
mac_MainConfig_NB_IoT
,
(
struct
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
)
dedicatedInfoNASList_NB_IoT
(
struct
LTE_
RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13
*
)
dedicatedInfoNASList_NB_IoT
);
);
#ifdef RRC_MSG_PRINT
#ifdef RRC_MSG_PRINT
...
@@ -2082,7 +2082,7 @@ static void init_SI_NB_IoT(
...
@@ -2082,7 +2082,7 @@ static void init_SI_NB_IoT(
//aka openair_rrc_eNB_init
//aka openair_rrc_eNB_init
char
openair_rrc_eNB_configuration_NB_IoT
(
char
openair_rrc_eNB_configuration_NB_IoT
(
const
module_id_t
enb_mod_idP
,
const
module_id_t
enb_mod_idP
,
RrcConfigurationReq
*
configuration
//MP: previously was insiede ITTI but actually I put it out
NbIoT
RrcConfigurationReq
*
configuration
//MP: previously was insiede ITTI but actually I put it out
)
)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
{
{
...
@@ -2174,8 +2174,8 @@ rrc_eNB_decode_ccch_NB_IoT(
...
@@ -2174,8 +2174,8 @@ rrc_eNB_decode_ccch_NB_IoT(
((
uint8_t
*
)
Srb_info
->
Rx_buffer
.
Payload
)[
8
],
((
uint8_t
*
)
Srb_info
->
Rx_buffer
.
Payload
)[
8
],
(
uint8_t
*
)
Srb_info
->
Rx_buffer
.
Payload
);
(
uint8_t
*
)
Srb_info
->
Rx_buffer
.
Payload
);
RRCConnectionRequest_NB_r13_IEs_t
*
rrcConnectionRequest_NB
=
NULL
;
LTE_
RRCConnectionRequest_NB_r13_IEs_t
*
rrcConnectionRequest_NB
=
NULL
;
UL_CCCH_Message_NB_t
*
ul_ccch_msg_NB
=
NULL
;
LTE_
UL_CCCH_Message_NB_t
*
ul_ccch_msg_NB
=
NULL
;
dec_rval
=
uper_decode
(
dec_rval
=
uper_decode
(
NULL
,
NULL
,
&
asn_DEF_UL_CCCH_Message_NB
,
&
asn_DEF_UL_CCCH_Message_NB
,
...
@@ -2190,11 +2190,11 @@ rrc_eNB_decode_ccch_NB_IoT(
...
@@ -2190,11 +2190,11 @@ rrc_eNB_decode_ccch_NB_IoT(
uint64_t
random_value
=
0
;
uint64_t
random_value
=
0
;
int
stmsi_received
=
0
;
int
stmsi_received
=
0
;
if
(
ul_ccch_msg_NB
->
message
.
present
==
UL_CCCH_MessageType_PR_c1
)
if
(
ul_ccch_msg_NB
->
message
.
present
==
LTE_
UL_CCCH_MessageType_PR_c1
)
{
{
switch
(
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
present
)
switch
(
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
present
)
{
{
case
UL_CCCH_MessageType_NB__c1_PR_rrcConnectionRequest_r13
:
case
LTE_
UL_CCCH_MessageType_NB__c1_PR_rrcConnectionRequest_r13
:
T
(
T_ENB_RRC_CONNECTION_REQUEST
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T
(
T_ENB_RRC_CONNECTION_REQUEST
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
...
@@ -2230,7 +2230,7 @@ rrc_eNB_decode_ccch_NB_IoT(
...
@@ -2230,7 +2230,7 @@ rrc_eNB_decode_ccch_NB_IoT(
}
else
{
}
else
{
rrcConnectionRequest_NB
=
&
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
choice
.
rrcConnectionRequest_r13
.
criticalExtensions
.
choice
.
rrcConnectionRequest_r13
;
rrcConnectionRequest_NB
=
&
ul_ccch_msg_NB
->
message
.
choice
.
c1
.
choice
.
rrcConnectionRequest_r13
.
criticalExtensions
.
choice
.
rrcConnectionRequest_r13
;
{
{
if
(
InitialUE_Identity_PR_randomValue
==
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
)
{
if
(
LTE_
InitialUE_Identity_PR_randomValue
==
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
)
{
AssertFatal
(
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
size
==
5
,
AssertFatal
(
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
size
==
5
,
"wrong InitialUE-Identity randomValue size, expected 5, provided %d"
,
"wrong InitialUE-Identity randomValue size, expected 5, provided %d"
,
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
size
);
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
randomValue
.
size
);
...
@@ -2249,9 +2249,9 @@ rrc_eNB_decode_ccch_NB_IoT(
...
@@ -2249,9 +2249,9 @@ rrc_eNB_decode_ccch_NB_IoT(
}
else
{
}
else
{
ue_context_p
=
rrc_eNB_get_next_free_ue_context
(
ctxt_pP
,
random_value
);
ue_context_p
=
rrc_eNB_get_next_free_ue_context
(
ctxt_pP
,
random_value
);
}
}
}
else
if
(
InitialUE_Identity_PR_s_TMSI
==
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
)
{
}
else
if
(
LTE_
InitialUE_Identity_PR_s_TMSI
==
rrcConnectionRequest_NB
->
ue_Identity_r13
.
present
)
{
/* Save s-TMSI */
/* Save s-TMSI */
S_TMSI_t
s_TMSI
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
s_TMSI
;
LTE_
S_TMSI_t
s_TMSI
=
rrcConnectionRequest_NB
->
ue_Identity_r13
.
choice
.
s_TMSI
;
mme_code_t
mme_code
=
BIT_STRING_to_uint8
(
&
s_TMSI
.
mmec
);
mme_code_t
mme_code
=
BIT_STRING_to_uint8
(
&
s_TMSI
.
mmec
);
m_tmsi_t
m_tmsi
=
BIT_STRING_to_uint32
(
&
s_TMSI
.
m_TMSI
);
m_tmsi_t
m_tmsi
=
BIT_STRING_to_uint32
(
&
s_TMSI
.
m_TMSI
);
random_value
=
(((
uint64_t
)
mme_code
)
<<
32
)
|
m_tmsi
;
random_value
=
(((
uint64_t
)
mme_code
)
<<
32
)
|
m_tmsi
;
...
@@ -2392,8 +2392,8 @@ rrc_eNB_decode_ccch_NB_IoT(
...
@@ -2392,8 +2392,8 @@ rrc_eNB_decode_ccch_NB_IoT(
rrc_pdcp_config_asn1_req_NB_IoT
(
ctxt_pP
,
rrc_pdcp_config_asn1_req_NB_IoT
(
ctxt_pP
,
ue_context_p
->
ue_context
.
SRB_configList
,
//contain SRB1bis but used as SRB1
ue_context_p
->
ue_context
.
SRB_configList
,
//contain SRB1bis but used as SRB1
(
DRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
0xff
,
0xff
,
NULL
,
NULL
,
NULL
,
NULL
,
...
@@ -2403,15 +2403,15 @@ rrc_eNB_decode_ccch_NB_IoT(
...
@@ -2403,15 +2403,15 @@ rrc_eNB_decode_ccch_NB_IoT(
//Configure RLC for SRB1bis
//Configure RLC for SRB1bis
rrc_rlc_config_asn1_req_NB_IoT
(
ctxt_pP
,
rrc_rlc_config_asn1_req_NB_IoT
(
ctxt_pP
,
ue_context_p
->
ue_context
.
SRB_configList
,
ue_context_p
->
ue_context
.
SRB_configList
,
(
DRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
SRB1BIS_FLAG_YES
SRB1BIS_FLAG_YES
);
);
//Configure RLC for SRB1
//Configure RLC for SRB1
rrc_rlc_config_asn1_req_NB_IoT
(
ctxt_pP
,
rrc_rlc_config_asn1_req_NB_IoT
(
ctxt_pP
,
ue_context_p
->
ue_context
.
SRB_configList
,
ue_context_p
->
ue_context
.
SRB_configList
,
(
DRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToAddModList_NB_r13_t
*
)
NULL
,
(
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
(
LTE_
DRB_ToReleaseList_NB_r13_t
*
)
NULL
,
SRB1BIS_FLAG_NO
SRB1BIS_FLAG_NO
);
);
#endif //NO_RRM
#endif //NO_RRM
...
@@ -2446,8 +2446,8 @@ int rrc_eNB_decode_dcch_NB_IoT(
...
@@ -2446,8 +2446,8 @@ int rrc_eNB_decode_dcch_NB_IoT(
asn_dec_rval_t
dec_rval
;
asn_dec_rval_t
dec_rval
;
UL_DCCH_Message_NB_t
*
ul_dcch_msg_NB_IoT
=
NULL
;
LTE_
UL_DCCH_Message_NB_t
*
ul_dcch_msg_NB_IoT
=
NULL
;
UE_Capability_NB_r13_t
*
UE_Capability_NB
=
NULL
;
LTE_
UE_Capability_NB_r13_t
*
UE_Capability_NB
=
NULL
;
int
i
;
int
i
;
struct
rrc_eNB_ue_context_s
*
ue_context_p
=
NULL
;
struct
rrc_eNB_ue_context_s
*
ue_context_p
=
NULL
;
...
@@ -2505,11 +2505,11 @@ int rrc_eNB_decode_dcch_NB_IoT(
...
@@ -2505,11 +2505,11 @@ int rrc_eNB_decode_dcch_NB_IoT(
&
eNB_rrc_inst
[
ctxt_pP
->
module_id
],
&
eNB_rrc_inst
[
ctxt_pP
->
module_id
],
ctxt_pP
->
rnti
);
ctxt_pP
->
rnti
);
if
(
ul_dcch_msg_NB_IoT
->
message
.
present
==
UL_DCCH_MessageType_NB_PR_c1
)
{
if
(
ul_dcch_msg_NB_IoT
->
message
.
present
==
LTE_
UL_DCCH_MessageType_NB_PR_c1
)
{
switch
(
ul_dcch_msg_NB_IoT
->
message
.
choice
.
c1
.
present
)
{
switch
(
ul_dcch_msg_NB_IoT
->
message
.
choice
.
c1
.
present
)
{
case
UL_DCCH_MessageType_NB__c1_PR_rrcConnectionSetupComplete_r13
:
case
LTE_
UL_DCCH_MessageType_NB__c1_PR_rrcConnectionSetupComplete_r13
:
//MP: Ts 36.331 V14.2.1 RRCConnectionSetupComplete is transmitted over SRB1bis (pag 585)
//MP: Ts 36.331 V14.2.1 RRCConnectionSetupComplete is transmitted over SRB1bis (pag 585)
#ifdef RRC_MSG_PRINT
#ifdef RRC_MSG_PRINT
...
@@ -2540,7 +2540,7 @@ int rrc_eNB_decode_dcch_NB_IoT(
...
@@ -2540,7 +2540,7 @@ int rrc_eNB_decode_dcch_NB_IoT(
sdu_sizeP
);
sdu_sizeP
);
if
(
ul_dcch_msg_NB_IoT
->
message
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r13
.
criticalExtensions
.
present
==
if
(
ul_dcch_msg_NB_IoT
->
message
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r13
.
criticalExtensions
.
present
==
RRCConnectionSetupComplete_NB__criticalExtensions_PR_rrcConnectionSetupComplete_r13
)
{
LTE_
RRCConnectionSetupComplete_NB__criticalExtensions_PR_rrcConnectionSetupComplete_r13
)
{
LOG_I
(
RRC
,
"selectedPLMN_Identity_r13 : %ld
\n
"
,
ul_dcch_msg_NB_IoT
->
message
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r13
.
criticalExtensions
.
choice
.
rrcConnectionSetupComplete_r13
.
selectedPLMN_Identity_r13
);
LOG_I
(
RRC
,
"selectedPLMN_Identity_r13 : %ld
\n
"
,
ul_dcch_msg_NB_IoT
->
message
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r13
.
criticalExtensions
.
choice
.
rrcConnectionSetupComplete_r13
.
selectedPLMN_Identity_r13
);
...
...
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