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
canghaiwuhen
OpenXG-RAN
Commits
42e0929a
Commit
42e0929a
authored
Apr 04, 2019
by
Stefan Schaffelder
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
apply last diff from ssr to local orange_cdrx branch. Remove SSR comments
parent
81f04d29
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
147 additions
and
139 deletions
+147
-139
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+9
-9
openair2/ENB_APP/enb_paramdef.h
openair2/ENB_APP/enb_paramdef.h
+40
-40
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+1
-1
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+1
-5
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/MESSAGES/asn1_msg.h
+1
-1
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+1
-1
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+94
-82
No files found.
openair2/COMMON/rrc_messages_types.h
View file @
42e0929a
...
...
@@ -36,7 +36,7 @@
#include "LTE_SystemInformationBlockType2.h"
#include "LTE_SL-OffsetIndicator-r12.h"
#include "LTE_SubframeBitmapSL-r12.h"
#include "LTE_DRX-Config.h"
// Add DRX SSR 2018-10
#include "LTE_DRX-Config.h"
#include "LTE_SL-CP-Len-r12.h"
#include "LTE_SL-PeriodComm-r12.h"
#include "LTE_SL-DiscResourcePool-r12.h"
...
...
@@ -142,14 +142,14 @@ typedef struct RadioResourceConfig_s {
long
bcch_modificationPeriodCoeff
;
long
pcch_defaultPagingCycle
;
long
pcch_nB
;
LTE_DRX_Config_PR
drx_Config_present
;
// Add DRX SSR 2018-10
long
drx_onDurationTimer
;
// Add DRX SSR 2018-10
long
drx_InactivityTimer
;
// Add DRX SSR 2018-10
long
drx_RetransmissionTimer
;
// Add DRX SSR 2018-10
LTE_DRX_Config__setup__longDRX_CycleStartOffset_PR
drx_longDrx_CycleStartOffset_present
;
// Add DRX SSR 2018-10
long
drx_longDrx_CycleStartOffset
;
// Add DRX SSR 2018-10
long
drx_shortDrx_Cycle
;
// Add DRX SSR 2018-10
long
drx_shortDrx_ShortCycleTimer
;
// Add DRX SSR 2018-10
LTE_DRX_Config_PR
drx_Config_present
;
long
drx_onDurationTimer
;
long
drx_InactivityTimer
;
long
drx_RetransmissionTimer
;
LTE_DRX_Config__setup__longDRX_CycleStartOffset_PR
drx_longDrx_CycleStartOffset_present
;
long
drx_longDrx_CycleStartOffset
;
long
drx_shortDrx_Cycle
;
long
drx_shortDrx_ShortCycleTimer
;
long
ue_TimersAndConstants_t300
;
long
ue_TimersAndConstants_t301
;
long
ue_TimersAndConstants_t310
;
...
...
openair2/ENB_APP/enb_paramdef.h
View file @
42e0929a
...
...
@@ -363,14 +363,14 @@ typedef enum {
#define ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX "rach_maxHARQ_Msg3Tx"
#define ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE "pcch_default_PagingCycle"
#define ENB_CONFIG_STRING_PCCH_NB "pcch_nB"
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT "drx_Config_present"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER "drx_onDurationTimer"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER "drx_InactivityTimer"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER "drx_RetransmissionTimer"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT "drx_longDrx_CycleStartOffset_present"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET "drx_longDrx_CycleStartOffset"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE "drx_shortDrx_Cycle"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER "drx_shortDrx_ShortCycleTimer"
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT "drx_Config_present"
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER "drx_onDurationTimer"
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER "drx_InactivityTimer"
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER "drx_RetransmissionTimer"
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT "drx_longDrx_CycleStartOffset_present"
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET "drx_longDrx_CycleStartOffset"
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE "drx_shortDrx_Cycle"
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER "drx_shortDrx_ShortCycleTimer"
#define ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF "bcch_modificationPeriodCoeff"
#define ENB_CONFIG_STRING_UETIMERS_T300 "ue_TimersAndConstants_t300"
#define ENB_CONFIG_STRING_UETIMERS_T301 "ue_TimersAndConstants_t301"
...
...
@@ -589,14 +589,14 @@ typedef struct ccparams_lte_s {
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
/* Add DRX SSR 2018-10 */
\
{ .s5= {NULL }} ,
\
{ .s5= {NULL }} ,
\
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s5= {NULL }} , \
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} , \
...
...
@@ -711,14 +711,14 @@ typedef struct ccparams_lte_s {
{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&ccparams.rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&ccparams.pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \
{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&ccparams.pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_CONFIG_PRESENT, NULL, 0, strptr:&ccparams.drx_Config_present, defstrval:"prNothing", TYPE_STRING, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_ONDURATIONTIMER, NULL, 0, strptr:&ccparams.drx_onDurationTimer, defstrval:"psf10", TYPE_STRING, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_INACTIVITYTIMER, NULL, 0, strptr:&ccparams.drx_InactivityTimer, defstrval:"psf10", TYPE_STRING, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER, NULL, 0, strptr:&ccparams.drx_RetransmissionTimer, defstrval:"psf8", TYPE_STRING, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT, NULL, 0, strptr:&ccparams.drx_longDrx_CycleStartOffset_present, defstrval:"prSf128", TYPE_STRING, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET, NULL, 0, iptr:&ccparams.drx_longDrx_CycleStartOffset, defintval:0, TYPE_UINT, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE, NULL, 0, strptr:&ccparams.drx_shortDrx_Cycle, defstrval:"sf32", TYPE_STRING, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER, NULL, 0, iptr:&ccparams.drx_shortDrx_ShortCycleTimer, defintval:3, TYPE_UINT, 0},
/* Add DRX SSR 2018-10 */
\
{ENB_CONFIG_STRING_DRX_CONFIG_PRESENT, NULL, 0, strptr:&ccparams.drx_Config_present, defstrval:"prNothing", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_ONDURATIONTIMER, NULL, 0, strptr:&ccparams.drx_onDurationTimer, defstrval:"psf10", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_INACTIVITYTIMER, NULL, 0, strptr:&ccparams.drx_InactivityTimer, defstrval:"psf10", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER, NULL, 0, strptr:&ccparams.drx_RetransmissionTimer, defstrval:"psf8", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT, NULL, 0, strptr:&ccparams.drx_longDrx_CycleStartOffset_present, defstrval:"prSf128", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET, NULL, 0, iptr:&ccparams.drx_longDrx_CycleStartOffset, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE, NULL, 0, strptr:&ccparams.drx_shortDrx_Cycle, defstrval:"sf32", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER, NULL, 0, iptr:&ccparams.drx_shortDrx_ShortCycleTimer, defintval:3, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&ccparams.bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \
...
...
@@ -792,22 +792,22 @@ typedef struct ccparams_lte_s {
#define ENB_CONFIG_RACH_MAXHARQMSG3TX_IDX 57
#define ENB_CONFIG_PCCH_DEFAULT_PAGING_CYCLE_IDX 58
#define ENB_CONFIG_PCCH_NB_IDX 59
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT_IDX 60
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER_IDX 61
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER_IDX 62
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER_IDX 63
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT_IDX 64
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_IDX 65
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE_IDX 66
// Add DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER_IDX 67
// Add DRX SSR 2018-10
#define ENB_CONFIG_BCCH_MODIFICATIONPERIODCOEFF_IDX 68
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UETIMERS_T300_IDX 69
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UETIMERS_T301_IDX 70
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UETIMERS_T310_IDX 71
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UETIMERS_T311_IDX 72
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UETIMERS_N310_IDX 73
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UETIMERS_N311_IDX 74
// Modif DRX SSR 2018-10
#define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 75
// Modif DRX SSR 2018-10
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT_IDX 60
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER_IDX 61
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER_IDX 62
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER_IDX 63
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT_IDX 64
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_IDX 65
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE_IDX 66
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER_IDX 67
#define ENB_CONFIG_BCCH_MODIFICATIONPERIODCOEFF_IDX 68
#define ENB_CONFIG_UETIMERS_T300_IDX 69
#define ENB_CONFIG_UETIMERS_T301_IDX 70
#define ENB_CONFIG_UETIMERS_T310_IDX 71
#define ENB_CONFIG_UETIMERS_T311_IDX 72
#define ENB_CONFIG_UETIMERS_N310_IDX 73
#define ENB_CONFIG_UETIMERS_N311_IDX 74
#define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 75
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* SRB1 configuration parameters section name */
...
...
openair2/LAYER2/MAC/pre_processor.c
View file @
42e0929a
...
...
@@ -1653,7 +1653,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
UE_sched_ctrl
*
ue_sched_ctl
;
int
N_RB_UL
=
0
;
uint16_t
available_rbs
,
first_rb_offset
;
rnti_t
rntiTable
[
MAX_MOBILES_PER_ENB
];
// Rnti array => Add SSR 12-2018
rnti_t
rntiTable
[
MAX_MOBILES_PER_ENB
];
// sort ues
LOG_D
(
MAC
,
"In ulsch_preprocessor: sort ue
\n
"
);
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
42e0929a
...
...
@@ -317,10 +317,9 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
// Begin add DRX SSR 2018-11
LTE_DRX_Config_t
*
do_DrxConfig
(
uint8_t
Mod_id
,
int
CC_id
,
RrcConfigurationReq
*
configuration
,
LTE_UE_EUTRA_Capability_t
*
UEcap
)
{
// Begin add DRX SSR 2018-12
LTE_DRX_Config_t
*
drxConfig
=
NULL
;
BIT_STRING_t
*
featureGroupIndicators
=
NULL
;
bool
ueSupportCdrxShortFlag
=
false
;
...
...
@@ -335,7 +334,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
}
else
LOG_W
(
RRC
,
"[do_DrxConfig] Not enough featureGroupIndicators bits
\n
"
);
}
else
LOG_W
(
RRC
,
"[do_DrxConfig] No featureGroupIndicators pointer
\n
"
);
}
else
LOG_W
(
RRC
,
"[do_DrxConfig] No UEcap pointer
\n
"
);
// End add DRX SSR 2018-12
drxConfig
=
(
LTE_DRX_Config_t
*
)
malloc
(
sizeof
(
LTE_DRX_Config_t
));
if
(
drxConfig
==
NULL
)
return
NULL
;
...
...
@@ -419,8 +417,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
}
return
drxConfig
;
}
// End add DRX SSR 2018-11
uint8_t
do_SIB1
(
rrc_eNB_carrier_data_t
*
carrier
,
int
Mod_id
,
int
CC_id
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.h
View file @
42e0929a
...
...
@@ -71,7 +71,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
);
/**
\brief Generate configuration for DRX_Config
(Add DRX SSR 2018-11)
\brief Generate configuration for DRX_Config
@param Mod_id Instance of eNB
@param CC_id Id of component to configure
@param configuration Pointer Configuration Request structure
...
...
openair2/RRC/LTE/rrc_defs.h
View file @
42e0929a
...
...
@@ -200,7 +200,7 @@ void *send_UE_status_notification(void *);
/* for ImsiMobileIdentity_t */
#include "MobileIdentity.h"
#include "LTE_DRX-Config.h"
// Add DRX SSR 2018-11
#include "LTE_DRX-Config.h"
/* correct Rel(8|10)/Rel14 differences
* the code is in favor of Rel14, those defines do the translation
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
42e0929a
...
...
@@ -1286,123 +1286,136 @@ rrc_eNB_generate_RRCConnectionReestablishment(
const
int
CC_id
)
//-----------------------------------------------------------------------------
{
LTE_LogicalChannelConfig_t
*
SRB1_logicalChannelConfig
;
LTE_SRB_ToAddModList_t
**
SRB_configList
;
LTE_SRB_ToAddMod_t
*
SRB1_config
;
int
cnt
;
T
(
T_ENB_RRC_CONNECTION_REESTABLISHMENT
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
eNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
SRB_configList
=
&
ue_p
->
SRB_configList
;
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
=
do_RRCConnectionReestablishment
(
ctxt_pP
,
ue_context_pP
,
CC_id
,
(
uint8_t
*
)
ue_p
->
Srb0
.
Tx_buffer
.
Payload
,
(
uint8_t
)
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
carrier
[
CC_id
].
p_eNB
,
//at this point we do not have the UE capability information, so it can only be TM1 or TM2
rrc_eNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
),
SRB_configList
,
&
ue_context_pP
->
ue_context
.
physicalConfigDedicated
);
LOG_DUMPMSG
(
RRC
,
DEBUG_RRC
,
(
char
*
)(
ue_p
->
Srb0
.
Tx_buffer
.
Payload
),
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
,
"[MSG] RRCConnectionReestablishment
\n
"
);
// configure SRB1 for UE
int
UE_id
=
-
1
;
LTE_LogicalChannelConfig_t
*
SRB1_logicalChannelConfig
=
NULL
;
LTE_SRB_ToAddModList_t
**
SRB_configList
;
LTE_SRB_ToAddMod_t
*
SRB1_config
=
NULL
;
rrc_eNB_carrier_data_t
*
carrier
=
NULL
;
eNB_RRC_UE_t
*
ue_context
=
NULL
;
module_id_t
module_id
=
ctxt_pP
->
module_id
;
uint16_t
rnti
=
ctxt_pP
->
rnti
;
T
(
T_ENB_RRC_CONNECTION_REESTABLISHMENT
,
T_INT
(
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
rnti
));
SRB_configList
=
&
(
ue_context_pP
->
ue_context
.
SRB_configList
);
carrier
=
&
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
carrier
[
CC_id
]);
ue_context
=
&
(
ue_context_pP
->
ue_context
);
carrier
->
Srb0
.
Tx_buffer
.
payload_size
=
do_RRCConnectionReestablishment
(
ctxt_pP
,
ue_context_pP
,
CC_id
,
(
uint8_t
*
)
carrier
->
Srb0
.
Tx_buffer
.
Payload
,
(
uint8_t
)
carrier
->
p_eNB
,
// at this point we do not have the UE capability information, so it can only be TM1 or TM2
rrc_eNB_get_next_transaction_identifier
(
module_id
),
SRB_configList
,
&
(
ue_context
->
physicalConfigDedicated
));
LOG_DUMPMSG
(
RRC
,
DEBUG_RRC
,
(
char
*
)(
carrier
->
Srb0
.
Tx_buffer
.
Payload
),
carrier
->
Srb0
.
Tx_buffer
.
payload_size
,
"[MSG] RRCConnectionReestablishment
\n
"
);
/* Configure SRB1 for UE */
if
(
*
SRB_configList
!=
NULL
)
{
for
(
cnt
=
0
;
cnt
<
(
*
SRB_configList
)
->
list
.
count
;
cnt
++
)
{
for
(
int
cnt
=
0
;
cnt
<
(
*
SRB_configList
)
->
list
.
count
;
cnt
++
)
{
if
((
*
SRB_configList
)
->
list
.
array
[
cnt
]
->
srb_Identity
==
1
)
{
SRB1_config
=
(
*
SRB_configList
)
->
list
.
array
[
cnt
];
if
(
SRB1_config
->
logicalChannelConfig
)
{
if
(
SRB1_config
->
logicalChannelConfig
->
present
==
LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue
)
{
SRB1_logicalChannelConfig
=
&
SRB1_config
->
logicalChannelConfig
->
choice
.
explicitValue
;
if
(
SRB1_config
->
logicalChannelConfig
->
present
==
LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue
)
{
SRB1_logicalChannelConfig
=
&
(
SRB1_config
->
logicalChannelConfig
->
choice
.
explicitValue
);
}
else
{
SRB1_logicalChannelConfig
=
&
SRB1_logicalChannelConfig_defaultValue
;
SRB1_logicalChannelConfig
=
&
(
SRB1_logicalChannelConfig_defaultValue
)
;
}
}
else
{
SRB1_logicalChannelConfig
=
&
SRB1_logicalChannelConfig_defaultValue
;
SRB1_logicalChannelConfig
=
&
(
SRB1_logicalChannelConfig_defaultValue
)
;
}
LOG_D
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB
\n
"
,
LOG_D
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
));
if
(
NODE_IS_MONOLITHIC
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
rrc_mac_config_req_eNB
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
primaryCC_id
,
0
,
0
,
0
,
0
,
0
,
rrc_mac_config_req_eNB
(
module_id
,
ue_context
->
primaryCC_id
,
0
,
0
,
0
,
0
,
0
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0
,
#endif
ctxt_pP
->
rnti
,
rnti
,
(
LTE_BCCH_BCH_Message_t
*
)
NULL
,
(
LTE_RadioResourceConfigCommonSIB_t
*
)
NULL
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(
LTE_RadioResourceConfigCommonSIB_t
*
)
NULL
,
#endif
(
struct
LTE_PhysicalConfigDedicated
*
)
ue_context
_pP
->
ue_context
.
physicalConfigDedicated
,
(
struct
LTE_PhysicalConfigDedicated
*
)
ue_context
->
physicalConfigDedicated
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(
LTE_SCellToAddMod_r10_t
*
)
NULL
,
//(struct LTE_PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif
(
LTE_MeasObjectToAddMod_t
**
)
NULL
,
ue_context
_pP
->
ue_context
.
mac_MainConfig
,
ue_context
->
mac_MainConfig
,
1
,
SRB1_logicalChannelConfig
,
ue_context
_pP
->
ue_context
.
measGapConfig
,
ue_context
->
measGapConfig
,
(
LTE_TDD_Config_t
*
)
NULL
,
NULL
,
(
LTE_SchedulingInfoList_t
*
)
NULL
,
0
,
NULL
,
NULL
,
(
LTE_MBSFN_SubframeConfigList_t
*
)
NULL
0
,
NULL
,
NULL
,
(
LTE_MBSFN_SubframeConfigList_t
*
)
NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
,
0
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
0
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
#endif
#if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
,(
LTE_SystemInformationBlockType1_v1310_IEs_t
*
)
NULL
,(
LTE_SystemInformationBlockType1_v1310_IEs_t
*
)
NULL
#endif
);
);
break
;
}
}
}
}
}
// if ((*SRB_configList)->list.array[cnt]->srb_Identity == 1)
}
// for (int cnt = 0; cnt < (*SRB_configList)->list.count; cnt++)
}
// if (*SRB_configList != NULL)
MSC_LOG_TX_MESSAGE
(
MSC_RRC_ENB
,
MSC_RRC_UE
,
ue_p
->
Srb0
.
Tx_buffer
.
Header
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
,
carrier
->
Srb0
.
Tx_buffer
.
Header
,
carrier
->
Srb0
.
Tx_buffer
.
payload_size
,
MSC_AS_TIME_FMT
" LTE_RRCConnectionReestablishment UE %x size %u"
,
MSC_AS_TIME_ARGS
(
ctxt_pP
),
ue_context
_pP
->
ue_context
.
rnti
,
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
ue_context
->
rnti
,
carrier
->
Srb0
.
Tx_buffer
.
payload_size
);
LOG_I
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" [RAPROC] Logical Channel DL-CCCH, Generating LTE_RRCConnectionReestablishment (bytes %d)
\n
"
,
LOG_I
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" [RAPROC] Logical Channel DL-CCCH, Generating LTE_RRCConnectionReestablishment (bytes %d)
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
);
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
int
UE_id
=
find_UE_id
(
ctxt_pP
->
module_id
,
ctxt_pP
->
rnti
);
if
(
UE_id
!=
-
1
){
// activate release timer, if RRCComplete not received after 100 frames, remove UE
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
ue_reestablishment_reject_timer
=
1
;
// remove UE after 100 frames after RRCConnectionReestablishmentRelease is triggered
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
ue_reestablishment_reject_timer_thres
=
1000
;
}
else
{
LOG_E
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" Generating LTE_RRCConnectionReestablishment without UE_id(MAC) rnti %x
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ctxt_pP
->
rnti
);
}
}
// activate release timer, if RRCComplete not received after 100 frames, remove UE
carrier
->
Srb0
.
Tx_buffer
.
payload_size
);
UE_id
=
find_UE_id
(
module_id
,
rnti
);
if
(
UE_id
!=
-
1
)
{
/* Activate reject timer, if RRCComplete not received after 10 frames, reject UE */
RC
.
mac
[
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
ue_reestablishment_reject_timer
=
1
;
/* Reject UE after 10 frames, LTE_RRCConnectionReestablishmentReject is triggered */
RC
.
mac
[
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
ue_reestablishment_reject_timer_thres
=
100
;
}
else
{
LOG_E
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" Generating LTE_RRCConnectionReestablishment without UE_id(MAC) rnti %x
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
rnti
);
}
/* Activate release timer, if RRCComplete not received after 100 frames, remove UE */
ue_context_pP
->
ue_context
.
ue_reestablishment_timer
=
1
;
/
/ remove UE after 100 frames after LTE_RRCConnectionReestablishmentRelease is triggered
/
* Remove UE after 100 frames after LTE_RRCConnectionReestablishmentReject is triggered */
ue_context_pP
->
ue_context
.
ue_reestablishment_timer_thres
=
1000
;
}
//-----------------------------------------------------------------------------
...
...
@@ -2782,8 +2795,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
LTE_C_RNTI_t
*
cba_RNTI
=
NULL
;
int
x2_enabled
;
uint8_t
xid
=
rrc_eNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
);
//Transaction_id,
uint8_t
cc_id
=
ue_context_pP
->
ue_context
.
primaryCC_id
;
// Add DRX SSR 2018-11 => CC id
LTE_UE_EUTRA_Capability_t
*
UEcap
=
ue_context_pP
->
ue_context
.
UE_Capability
;
// Add DRX SSR 2018-12
uint8_t
cc_id
=
ue_context_pP
->
ue_context
.
primaryCC_id
;
LTE_UE_EUTRA_Capability_t
*
UEcap
=
ue_context_pP
->
ue_context
.
UE_Capability
;
#ifdef CBA
//struct PUSCH_CBAConfigDedicated_vlola *pusch_CBAConfigDedicated_vlola;
uint8_t
*
cba_RNTI_buf
;
...
...
@@ -2956,7 +2969,6 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
mac_MainConfig
->
phr_Config
->
choice
.
setup
.
prohibitPHR_Timer
=
LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf200
;
// sf20 = 20 subframes // LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf1000
mac_MainConfig
->
phr_Config
->
choice
.
setup
.
dl_PathlossChange
=
LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3
;
// Value dB1 =1 dB, dB3 = 3 dB
// Begin add DRX SSR 2018-11
if
(
rrc_inst
->
carrier
[
cc_id
].
sib1
->
tdd_Config
==
NULL
)
{
// CDRX configured in case of FDD
LOG_D
(
RRC
,
"Processing the DRX configuration in RRC Connection Reconfiguration
\n
"
);
...
...
@@ -3016,7 +3028,6 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
}
else
{
// CDRX not ready for TDD
mac_MainConfig
->
drx_Config
=
NULL
;
}
// End add DRX SSR 2018-11
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
sr_ProhibitTimer_r9
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
@@ -5481,7 +5492,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
)
//-----------------------------------------------------------------------------
{
int
drb_id
;
int
i
,
drb_id
;
int
oip_ifup
=
0
;
int
dest_ip_offset
=
0
;
uint8_t
*
kRRCenc
=
NULL
;
...
...
@@ -5505,6 +5516,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
#if defined(ENABLE_SECURITY)
/* Derive the keys from kenb */
if
(
DRB_configList
!=
NULL
)
{
derive_key_up_enc
(
ue_context_pP
->
ue_context
.
ciphering_algorithm
,
...
...
@@ -5826,10 +5838,10 @@ rrc_eNB_generate_RRCConnectionSetup(
SRB_configList
,
&
ue_context_pP
->
ue_context
.
physicalConfigDedicated
);
}
LOG_DUMPMSG
(
RRC
,
DEBUG_RRC
,
(
char
*
)(
ue_p
->
Srb0
.
Tx_buffer
.
Payload
),
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
,
"[MSG] RRC Connection Setup
\n
"
);
LOG_DUMPMSG
(
RRC
,
DEBUG_RRC
,
(
char
*
)(
ue_p
->
Srb0
.
Tx_buffer
.
Payload
),
ue_p
->
Srb0
.
Tx_buffer
.
payload_size
,
"[MSG] RRC Connection Setup
\n
"
);
// configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
switch
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
){
...
...
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