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
17c94ff8
Commit
17c94ff8
authored
Aug 23, 2017
by
Matthieu Kanj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
renaming in file: openair2/RRC/LITE/extern_NB_IoT.h
parent
443af7af
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
183 additions
and
183 deletions
+183
-183
openair2/RRC/LITE/L2_interface_NB_IoT.c
openair2/RRC/LITE/L2_interface_NB_IoT.c
+27
-27
openair2/RRC/LITE/defs_NB_IoT.h
openair2/RRC/LITE/defs_NB_IoT.h
+2
-2
openair2/RRC/LITE/extern.h
openair2/RRC/LITE/extern.h
+1
-1
openair2/RRC/LITE/extern_NB_IoT.h
openair2/RRC/LITE/extern_NB_IoT.h
+12
-12
openair2/RRC/LITE/proto_NB_IoT.h
openair2/RRC/LITE/proto_NB_IoT.h
+4
-4
openair2/RRC/LITE/rrc_common_NB_IoT.c
openair2/RRC/LITE/rrc_common_NB_IoT.c
+16
-16
openair2/RRC/LITE/rrc_eNB_NB_IoT.c
openair2/RRC/LITE/rrc_eNB_NB_IoT.c
+100
-100
openair2/RRC/LITE/rrc_eNB_UE_context.c
openair2/RRC/LITE/rrc_eNB_UE_context.c
+5
-5
openair2/RRC/LITE/rrc_eNB_UE_context.h
openair2/RRC/LITE/rrc_eNB_UE_context.h
+5
-5
openair2/RRC/LITE/vars_NB_IoT.c
openair2/RRC/LITE/vars_NB_IoT.c
+11
-11
No files found.
openair2/RRC/LITE/L2_interface_NB_IoT.c
View file @
17c94ff8
...
...
@@ -1129,33 +1129,33 @@ int8_t mac_rrc_data_req_eNB_NB_IoT(
if
(
mib_flag
==
MIB_FLAG_YES
){
//XXX to be check when MIB-NB should be initialized
if
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
==
255
)
{
if
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
==
255
)
{
LOG_E
(
RRC
,
"[eNB %d] MAC Request for MIB-NB and MIB-NB not initialized
\n
"
,
Mod_idP
);
mac_xface
->
macphy_exit
(
"mac_rrc_data_req_eNB_NB_IoT: MAC Request for MIB-NB and MIB-NB not initialized"
);
}
memcpy
(
&
buffer_pP
[
0
],
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
MIB_NB
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
);
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
MIB_NB
,
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
);
//XXX RRC_MAC_BCCH_DATA_REQ message not implemented in MAC layer (eNB_scheduler.c under ITTI)
#ifdef DEBUG_RRC
LOG_T
(
RRC
,
"[eNB %d] Frame %d : BCCH request => MIB_NB
\n
"
,
Mod_idP
,
frameP
);
for
(
i
=
0
;
i
<
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
;
i
++
)
{
for
(
i
=
0
;
i
<
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
;
i
++
)
{
LOG_T
(
RRC
,
"%x."
,
buffer_pP
[
i
]);
}
LOG_T
(
RRC
,
"
\n
"
);
#endif
return
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
);
//exit from the function
return
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_MIB_NB
);
//exit from the function
}
//Requesting for SI Message
//XXX to be check when it is initialized
if
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
SI
.
Active
==
0
)
{
//is set when we call openair_rrc_on function
if
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
SI
.
Active
==
0
)
{
//is set when we call openair_rrc_on function
LOG_E
(
RRC
,
"SI value on the carrier = 0"
);
return
0
;
}
...
...
@@ -1168,12 +1168,12 @@ int8_t mac_rrc_data_req_eNB_NB_IoT(
/*check if SIBs are initialized*/
//FIXME to be check when both are initialize and if make sense to have it
if
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
==
255
)
{
if
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
==
255
)
{
LOG_E
(
RRC
,
"[eNB %d] MAC Request for SIB1-NB and SIB1-NB not initialized
\n
"
,
Mod_idP
);
mac_xface
->
macphy_exit
(
"mac_rrc_data_req_eNB_NB_IoT: MAC Request for SIB1-NB and SIB1-NB not initialized"
);
}
if
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
==
255
)
{
if
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
==
255
)
{
LOG_E
(
RRC
,
"[eNB %d] MAC Request for SIB23-NB and SIB23-NB not initialized
\n
"
,
Mod_idP
);
mac_xface
->
macphy_exit
(
"mac_rrc_data_req_eNB_NB_IoT: MAC Request for SIB23-NB and SIB23-NB not initialized"
);
}
...
...
@@ -1185,8 +1185,8 @@ int8_t mac_rrc_data_req_eNB_NB_IoT(
if
(
subframeP
==
4
&&
is_SIB1_start_NB_IoT
(
frameP
,
schedulingInfoSIB1
,
physCellId
)
!=
-
1
){
memcpy
(
&
buffer_pP
[
0
],
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
SIB1_NB
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
);
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
SIB1_NB
,
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
);
//XXX RRC_MAC_BCCH_DATA_REQ message not implemented in MAC layer (eNB_scheduler.c under ITTI)
...
...
@@ -1194,41 +1194,41 @@ int8_t mac_rrc_data_req_eNB_NB_IoT(
#ifdef DEBUG_RRC
LOG_T
(
RRC
,
"[eNB %d] Frame %d : BCCH request => SIB1_NB
\n
"
,
Mod_idP
,
frameP
);
for
(
i
=
0
;
i
<
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
;
i
++
)
{
for
(
i
=
0
;
i
<
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
;
i
++
)
{
LOG_T
(
RRC
,
"%x."
,
buffer_pP
[
i
]);
}
LOG_T
(
RRC
,
"
\n
"
);
#endif
return
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
);
return
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB1_NB
);
}
//check for SIB23-Transmission
for
(
int
i
=
0
;
i
<
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
schedulingInfoList_r13
.
list
.
count
;
i
++
){
for
(
int
i
=
0
;
i
<
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
schedulingInfoList_r13
.
list
.
count
;
i
++
){
if
(
is_SIB23_NB_IoT
(
frameP
,
h_frameP
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
schedulingInfoList_r13
.
list
.
array
[
i
]
->
si_Periodicity_r13
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
si_WindowLength_r13
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
si_RadioFrameOffset_r13
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
schedulingInfoList_r13
.
list
.
array
[
i
]
->
si_RepetitionPattern_r13
))
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
schedulingInfoList_r13
.
list
.
array
[
i
]
->
si_Periodicity_r13
,
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
si_WindowLength_r13
,
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
si_RadioFrameOffset_r13
,
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sib1_NB
->
schedulingInfoList_r13
.
list
.
array
[
i
]
->
si_RepetitionPattern_r13
))
{
memcpy
(
&
buffer_pP
[
0
],
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
SIB23_NB
,
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
);
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
SIB23_NB
,
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
);
#ifdef DEBUG_RRC
LOG_T
(
RRC
,
"[eNB %d] Frame %d BCCH request => SIB 2-3
\n
"
,
Mod_idP
,
frameP
);
for
(
i
=
0
;
i
<
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
;
i
++
)
{
for
(
i
=
0
;
i
<
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
;
i
++
)
{
LOG_T
(
RRC
,
"%x."
,
buffer_pP
[
i
]);
}
LOG_T
(
RRC
,
"
\n
"
);
#endif
return
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
);
return
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
sizeof_SIB23_NB
);
}
}
return
(
0
);
...
...
@@ -1238,12 +1238,12 @@ int8_t mac_rrc_data_req_eNB_NB_IoT(
if
(
(
Srb_id
&
RAB_OFFSET
)
==
CCCH
)
{
LOG_T
(
RRC
,
"[eNB %d] Frame %d CCCH request (Srb_id %d)
\n
"
,
Mod_idP
,
frameP
,
Srb_id
);
if
(
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
Srb0
.
Active
==
0
)
{
if
(
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
Srb0
.
Active
==
0
)
{
LOG_E
(
RRC
,
"[eNB %d] CCCH Not active
\n
"
,
Mod_idP
);
return
-
1
;
}
Srb_info
=&
eNB_rrc_inst_NB
[
Mod_idP
].
carrier
[
CC_id
].
Srb0
;
Srb_info
=&
eNB_rrc_inst_NB
_IoT
[
Mod_idP
].
carrier
[
CC_id
].
Srb0
;
// check if data is there for MAC
if
(
Srb_info
->
Tx_buffer
.
payload_size
>
0
)
{
//Fill buffer
...
...
@@ -1286,7 +1286,7 @@ int8_t NB_mac_rrc_data_ind_eNB(
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_YES
,
rntiP
,
frameP
,
sub_frameP
,
module_idP
);
Srb_info
=
&
eNB_rrc_inst_NB
[
module_idP
].
carrier
[
CC_id
].
Srb0
;
Srb_info
=
&
eNB_rrc_inst_NB
_IoT
[
module_idP
].
carrier
[
CC_id
].
Srb0
;
LOG_T
(
RRC
,
"[eNB %d] Received SDU for CCCH on SRB %d
\n
"
,
module_idP
,
Srb_info
->
Srb_id
);
...
...
@@ -1337,7 +1337,7 @@ void mac_eNB_rrc_ul_failure_NB_IoT(
{
struct
rrc_eNB_ue_context_NB_s
*
ue_context_p
=
NULL
;
ue_context_p
=
rrc_eNB_get_ue_context_NB
(
&
eNB_rrc_inst_NB
[
mod_idP
],
&
eNB_rrc_inst_NB
_IoT
[
mod_idP
],
rntiP
);
if
(
ue_context_p
!=
NULL
)
{
...
...
@@ -1443,7 +1443,7 @@ void mac_eNB_rrc_ul_in_sync_NB_IoT(
{
struct
rrc_eNB_ue_context_NB_s
*
ue_context_p
=
NULL
;
ue_context_p
=
rrc_eNB_get_ue_context_NB
(
&
eNB_rrc_inst_NB
[
mod_idP
],
&
eNB_rrc_inst_NB
_IoT
[
mod_idP
],
rntiP
);
if
(
ue_context_p
!=
NULL
)
{
...
...
@@ -1464,7 +1464,7 @@ int mac_eNB_get_rrc_status_NB_IoT(
{
struct
rrc_eNB_ue_context_NB_s
*
ue_context_p
=
NULL
;
ue_context_p
=
rrc_eNB_get_ue_context_NB
(
&
eNB_rrc_inst_NB
[
Mod_idP
],
&
eNB_rrc_inst_NB
_IoT
[
Mod_idP
],
rntiP
);
if
(
ue_context_p
!=
NULL
)
{
...
...
openair2/RRC/LITE/defs_NB_IoT.h
View file @
17c94ff8
...
...
@@ -501,7 +501,7 @@ typedef struct {
//---NB-IoT---(completely change)---------------------
typedef
struct
eNB_RRC_INST_NB_s
{
typedef
struct
eNB_RRC_INST_NB_
IoT_
s
{
rrc_eNB_carrier_data_NB_t
carrier
[
MAX_NUM_CCs
];
...
...
@@ -532,7 +532,7 @@ typedef struct eNB_RRC_INST_NB_s {
int
srs_enable
[
MAX_NUM_CCs
];
}
eNB_RRC_INST_NB
;
}
eNB_RRC_INST_NB
_IoT
;
#define MAX_UE_CAPABILITY_SIZE 255
...
...
openair2/RRC/LITE/extern.h
View file @
17c94ff8
...
...
@@ -38,7 +38,7 @@
///NB_IoT
#include "defs_NB_IoT.h"
extern
eNB_RRC_INST_NB
*
eNB_rrc_inst_NB
;
extern
eNB_RRC_INST_NB
_IoT
*
eNB_rrc_inst_NB_IoT
;
extern
UE_RRC_INST
*
UE_rrc_inst
;
extern
eNB_RRC_INST
*
eNB_rrc_inst
;
...
...
openair2/RRC/LITE/extern_NB_IoT.h
View file @
17c94ff8
...
...
@@ -40,20 +40,20 @@
//MP: NOTE:XXX some of the parameters defined in vars_nb_iot are called by the extern.h file so not replicated here
extern
eNB_RRC_INST_NB
*
eNB_rrc_inst_NB
;
extern
eNB_RRC_INST_NB
_IoT
*
eNB_rrc_inst_NB_IoT
;
extern
PHY_Config_t
*
config_INFO
;
extern
rlc_info_t
Rlc_info_am_NB
,
Rlc_info_am_config_NB
;
extern
uint8_t
DRB2LCHAN_NB
[
2
];
extern
LogicalChannelConfig_NB_r13_t
SRB1bis_
NB_logicalChannelConfig_defaultValue
;
extern
LogicalChannelConfig_NB_r13_t
SRB1_
NB_logicalChannelConfig_defaultValue
;
extern
uint16_t
T300_NB
[
8
];
extern
uint16_t
T301_NB
[
8
];
extern
uint16_t
T310_NB
[
8
];
extern
uint16_t
T311_NB
[
8
];
extern
uint16_t
N310_NB
[
8
];
extern
uint16_t
N311_NB
[
8
];
extern
rlc_info_t
Rlc_info_am_NB
_IoT
,
Rlc_info_am_config_NB_IoT
;
extern
uint8_t
DRB2LCHAN_NB
_IoT
[
2
];
extern
LogicalChannelConfig_NB_r13_t
SRB1bis_
logicalChannelConfig_defaultValue_NB_IoT
;
extern
LogicalChannelConfig_NB_r13_t
SRB1_
logicalChannelConfig_defaultValue_NB_IoT
;
extern
uint16_t
T300_NB
_IoT
[
8
];
extern
uint16_t
T301_NB
_IoT
[
8
];
extern
uint16_t
T310_NB
_IoT
[
8
];
extern
uint16_t
T311_NB
_IoT
[
8
];
extern
uint16_t
N310_NB
_IoT
[
8
];
extern
uint16_t
N311_NB
_IoT
[
8
];
#endif
...
...
openair2/RRC/LITE/proto_NB_IoT.h
View file @
17c94ff8
...
...
@@ -102,10 +102,10 @@ int rrc_mac_config_req_eNB_NB_IoT(
* called by phy_procedure_eNB_Tx before calling the npdsch_procedure
*/
uint32_t
is_SIB1_NB_IoT
(
const
frame_t
frameP
,
long
schedulingInfoSIB1
,
//from the mib
int
physCellId
,
//by configuration
NB_IoT_eNB_NDLSCH_t
*
ndlsch_SIB1
const
frame_t
frameP
,
long
schedulingInfoSIB1
,
//from the mib
int
physCellId
,
//by configuration
NB_IoT_eNB_NDLSCH_t
*
ndlsch_SIB1
);
//--------------------------------------
...
...
openair2/RRC/LITE/rrc_common_NB_IoT.c
View file @
17c94ff8
...
...
@@ -94,7 +94,7 @@ rrc_t310_expiration_NB(
SRB_FLAG_YES
,
CONFIG_ACTION_REMOVE
,
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Srb_info
.
Srb_id
,
Rlc_info_am_NB
);
Rlc_info_am_NB
_IoT
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Active
=
0
;
...
...
@@ -123,10 +123,10 @@ void openair_eNB_rrc_on_NB_IoT(
LOG_I
(
RRC
,
PROTOCOL_RRC_CTXT_FMT
" OPENAIR RRC-NB IN....
\n
"
,
PROTOCOL_RRC_CTXT_ARGS
(
ctxt_pP
));
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
rrc_config_buffer_NB_IoT
(
&
eNB_rrc_inst_NB
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
SI
,
BCCH
,
1
);
eNB_rrc_inst_NB
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
SI
.
Active
=
1
;
rrc_config_buffer_NB_IoT
(
&
eNB_rrc_inst_NB
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
Srb0
,
CCCH
,
1
);
eNB_rrc_inst_NB
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
Srb0
.
Active
=
1
;
rrc_config_buffer_NB_IoT
(
&
eNB_rrc_inst_NB
_IoT
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
SI
,
BCCH
,
1
);
eNB_rrc_inst_NB
_IoT
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
SI
.
Active
=
1
;
rrc_config_buffer_NB_IoT
(
&
eNB_rrc_inst_NB
_IoT
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
Srb0
,
CCCH
,
1
);
eNB_rrc_inst_NB
_IoT
[
ctxt_pP
->
module_id
].
carrier
[
CC_id
].
Srb0
.
Active
=
1
;
}
//no UE side
}
...
...
@@ -162,10 +162,10 @@ int rrc_init_global_param_NB_IoT( void )
//DCCH_LCHAN_DESC.transport_block_size = 4;....
//Setting of this values????
Rlc_info_am_config_NB
.
rlc_mode
=
RLC_MODE_AM
;
//only allowed for NB-IoT
Rlc_info_am_config_NB
.
rlc
.
rlc_am_info_NB
.
max_retx_threshold_NB
=
50
;
Rlc_info_am_config_NB
.
rlc
.
rlc_am_info_NB
.
t_poll_retransmit_NB
=
15
;
Rlc_info_am_config_NB
.
rlc
.
rlc_am_info_NB
.
enableStatusReportSN_Gap
=
NULL
;
//should be disabled
Rlc_info_am_config_NB
_IoT
.
rlc_mode
=
RLC_MODE_AM
;
//only allowed for NB-IoT
Rlc_info_am_config_NB
_IoT
.
rlc
.
rlc_am_info_NB
.
max_retx_threshold_NB
=
50
;
Rlc_info_am_config_NB
_IoT
.
rlc
.
rlc_am_info_NB
.
t_poll_retransmit_NB
=
15
;
Rlc_info_am_config_NB
_IoT
.
rlc
.
rlc_am_info_NB
.
enableStatusReportSN_Gap
=
NULL
;
//should be disabled
#ifndef NO_RRM
...
...
@@ -251,16 +251,16 @@ void openair_rrc_top_init_eNB_NB_IoT(void)//MP: XXX Raymond put this directly th
//not consider UE part
if
(
NB_eNB_INST
>
0
)
{
eNB_rrc_inst_NB
=
(
eNB_RRC_INST_NB
*
)
malloc16
(
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB
));
memset
(
eNB_rrc_inst_NB
,
0
,
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB
));
LOG_D
(
RRC
,
"ALLOCATE %d Bytes for eNB_RRC_INST NB-IoT @ %p
\n
"
,
(
unsigned
int
)(
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB
)),
eNB_rrc_inst_NB
);
eNB_rrc_inst_NB
_IoT
=
(
eNB_RRC_INST_NB_IoT
*
)
malloc16
(
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB_IoT
));
memset
(
eNB_rrc_inst_NB
_IoT
,
0
,
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB_IoT
));
LOG_D
(
RRC
,
"ALLOCATE %d Bytes for eNB_RRC_INST NB-IoT @ %p
\n
"
,
(
unsigned
int
)(
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB
_IoT
)),
eNB_rrc_inst_NB_IoT
);
//no CBA, no LOcalization, no MBMS flag
LOG_D
(
RRC
,
"ALLOCATE %d Bytes for eNB_RRC_INST_NB @ %p
\n
"
,
(
unsigned
int
)(
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB
)),
eNB_rrc_inst_NB
);
"ALLOCATE %d Bytes for eNB_RRC_INST_NB @ %p
\n
"
,
(
unsigned
int
)(
NB_eNB_INST
*
sizeof
(
eNB_RRC_INST_NB
_IoT
)),
eNB_rrc_inst_NB_IoT
);
}
else
{
eNB_rrc_inst_NB
=
NULL
;
eNB_rrc_inst_NB
_IoT
=
NULL
;
}
...
...
@@ -293,7 +293,7 @@ rrc_rx_tx_NB_IoT(
"[UE %d][RAPROC] Frame %d T300 Count %d ms
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
,
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
enb_indexP
].
T300_cnt
);
if
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
enb_indexP
].
T300_cnt
==
T300_NB
[
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib2
[
enb_indexP
]
->
ue_TimersAndConstants
.
t300
])
{
==
T300_NB
_IoT
[
UE_rrc_inst
[
ctxt_pP
->
module_id
].
sib2
[
enb_indexP
]
->
ue_TimersAndConstants
.
t300
])
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
enb_indexP
].
T300_active
=
0
;
// ALLOW CCCH to be used
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
enb_indexP
].
Tx_buffer
.
payload_size
=
0
;
...
...
@@ -384,7 +384,7 @@ rrc_rx_tx_NB_IoT(
// counter, and get the value and aggregate
// check for UL failure
RB_FOREACH
(
ue_context_p
,
rrc_ue_tree_NB_s
,
&
(
eNB_rrc_inst_NB
[
ctxt_pP
->
module_id
].
rrc_ue_head
))
{
RB_FOREACH
(
ue_context_p
,
rrc_ue_tree_NB_s
,
&
(
eNB_rrc_inst_NB
_IoT
[
ctxt_pP
->
module_id
].
rrc_ue_head
))
{
if
((
ctxt_pP
->
frame
==
0
)
&&
(
ctxt_pP
->
subframe
==
0
))
{
if
(
ue_context_p
->
ue_context
.
Initialue_identity_s_TMSI
.
presence
==
TRUE
)
{
LOG_I
(
RRC
,
"UE rnti %x:S-TMSI %x failure timer %d/20000
\n
"
,
...
...
openair2/RRC/LITE/rrc_eNB_NB_IoT.c
View file @
17c94ff8
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/rrc_eNB_UE_context.c
View file @
17c94ff8
...
...
@@ -207,7 +207,7 @@ uid_linear_allocator_init_NB(
//------------------------------------------------------------------------------
uid_t
uid_linear_allocator_new_NB
(
eNB_RRC_INST_NB
*
const
rrc_instance_pP
eNB_RRC_INST_NB
_IoT
*
const
rrc_instance_pP
)
//------------------------------------------------------------------------------
{
...
...
@@ -237,7 +237,7 @@ uid_linear_allocator_new_NB(
//------------------------------------------------------------------------------
void
uid_linear_allocator_free_NB
(
eNB_RRC_INST_NB
*
rrc_instance_pP
,
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
,
uid_t
uidP
)
//------------------------------------------------------------------------------
...
...
@@ -276,7 +276,7 @@ RB_GENERATE(rrc_ue_tree_NB_s, rrc_eNB_ue_context_NB_s, entries,
//------------------------------------------------------------------------------
struct
rrc_eNB_ue_context_NB_s
*
rrc_eNB_allocate_new_UE_context_NB
(
eNB_RRC_INST_NB
*
rrc_instance_pP
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
)
//------------------------------------------------------------------------------
{
...
...
@@ -296,7 +296,7 @@ rrc_eNB_allocate_new_UE_context_NB(
struct
rrc_eNB_ue_context_NB_s
*
rrc_eNB_get_ue_context_NB
(
eNB_RRC_INST_NB
*
rrc_instance_pP
,
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
,
rnti_t
rntiP
)
//------------------------------------------------------------------------------
{
...
...
@@ -310,7 +310,7 @@ rrc_eNB_get_ue_context_NB(
//------------------------------------------------------------------------------
void
rrc_eNB_remove_ue_context_NB
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
eNB_RRC_INST_NB
*
rrc_instance_pP
,
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
,
struct
rrc_eNB_ue_context_NB_s
*
ue_context_pP
)
//------------------------------------------------------------------------------
{
...
...
openair2/RRC/LITE/rrc_eNB_UE_context.h
View file @
17c94ff8
...
...
@@ -92,12 +92,12 @@ uid_linear_allocator_init_NB(
uid_t
uid_linear_allocator_new_NB
(
eNB_RRC_INST_NB
*
const
rrc_instance_pP
eNB_RRC_INST_NB
_IoT
*
const
rrc_instance_pP
);
void
uid_linear_allocator_free_NB
(
eNB_RRC_INST_NB
*
rrc_instance_pP
,
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
,
uid_t
uidP
);
...
...
@@ -109,17 +109,17 @@ RB_PROTOTYPE(rrc_ue_tree_NB_s, rrc_eNB_ue_context_NB_s, entries, rrc_eNB_compare
struct
rrc_eNB_ue_context_NB_s
*
rrc_eNB_allocate_new_UE_context_NB
(
eNB_RRC_INST_NB
*
rrc_instance_pP
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
);
struct
rrc_eNB_ue_context_NB_s
*
rrc_eNB_get_ue_context_NB
(
eNB_RRC_INST_NB
*
rrc_instance_pP
,
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
,
rnti_t
rntiP
);
void
rrc_eNB_remove_ue_context_NB
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
eNB_RRC_INST_NB
*
rrc_instance_pP
,
eNB_RRC_INST_NB
_IoT
*
rrc_instance_pP
,
struct
rrc_eNB_ue_context_NB_s
*
ue_context_pP
);
#endif
openair2/RRC/LITE/vars_NB_IoT.c
View file @
17c94ff8
...
...
@@ -66,8 +66,8 @@ unsigned short Data_to_read;
#include "LAYER2/MAC/extern.h"
#define MAX_U32 0xFFFFFFFF
eNB_RRC_INST_NB
*
eNB_rrc_inst_NB
;
uint8_t
DRB2LCHAN_NB
[
2
];
//max can be 2 DRBs for NB_IoT --> it used for saving the LCID of DRBs
eNB_RRC_INST_NB
_IoT
*
eNB_rrc_inst_NB_IoT
;
uint8_t
DRB2LCHAN_NB
_IoT
[
2
];
//max can be 2 DRBs for NB_IoT --> it used for saving the LCID of DRBs
//structure for FAPI-like configuration (memory for this is allocated in init_SI)
PHY_Config_t
*
config_INFO
;
...
...
@@ -76,11 +76,11 @@ BOOLEAN_t logicalChannelSR_Prohibit = 1;
long
priority
=
1
;
// Default SRB configurations from 36.331 (9.2.1.1 pag 641 V14.2.1)
struct
LogicalChannelConfig_NB_r13
SRB1bis_
NB_logicalChannelConfig_defaultValue
=
{
struct
LogicalChannelConfig_NB_r13
SRB1bis_
logicalChannelConfig_defaultValue_NB_IoT
=
{
priority_r13:
&
priority
,
//priority
logicalChannelSR_Prohibit_r13:
&
logicalChannelSR_Prohibit
//set to TRUE
};
struct
LogicalChannelConfig_NB_r13
SRB1_
NB_logicalChannelConfig_defaultValue
=
{
struct
LogicalChannelConfig_NB_r13
SRB1_
logicalChannelConfig_defaultValue_NB_IoT
=
{
priority_r13:
&
priority
,
//priority
logicalChannelSR_Prohibit_r13:
&
logicalChannelSR_Prohibit
//set to TRUE
};
...
...
@@ -88,18 +88,18 @@ struct LogicalChannelConfig_NB_r13 SRB1_NB_logicalChannelConfig_defaultValue = {
//CONSTANTS
rlc_info_t
Rlc_info_am_NB
,
Rlc_info_am_config_NB
;
rlc_info_t
Rlc_info_am_NB
_IoT
,
Rlc_info_am_config_NB_IoT
;
//MP: LCHAN_DESC (mac_rrc_primitives) is not needed, was only an old implementation for storing LCH information
// timers (TS 36.331 v14.2.1 "UE-TimersAndConstants-NB" pag 622) (milliseconds)
//seems to be not used or only at UE side
uint16_t
T300_NB
[
8
]
=
{
2500
,
4000
,
6000
,
10000
,
15000
,
25000
,
40000
,
60000
};
uint16_t
T301_NB
[
8
]
=
{
2500
,
4000
,
6000
,
10000
,
15000
,
25000
,
40000
,
60000
};
//MP: this start at RRCconnectionReestablishmentReq (not implemented in OAI)
uint16_t
T310_NB
[
8
]
=
{
0
,
200
,
500
,
1000
,
2000
,
4000
,
8000
};
uint16_t
T311_NB
[
8
]
=
{
1000
,
3000
,
5000
,
10000
,
15000
,
20000
,
30000
};
//MP: may not used
uint16_t
N310_NB
[
8
]
=
{
1
,
2
,
3
,
4
,
6
,
8
,
10
,
20
};
uint16_t
N311_NB
[
8
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
8
,
10
};
uint16_t
T300_NB
_IoT
[
8
]
=
{
2500
,
4000
,
6000
,
10000
,
15000
,
25000
,
40000
,
60000
};
uint16_t
T301_NB
_IoT
[
8
]
=
{
2500
,
4000
,
6000
,
10000
,
15000
,
25000
,
40000
,
60000
};
//MP: this start at RRCconnectionReestablishmentReq (not implemented in OAI)
uint16_t
T310_NB
_IoT
[
8
]
=
{
0
,
200
,
500
,
1000
,
2000
,
4000
,
8000
};
uint16_t
T311_NB
_IoT
[
8
]
=
{
1000
,
3000
,
5000
,
10000
,
15000
,
20000
,
30000
};
//MP: may not used
uint16_t
N310_NB
_IoT
[
8
]
=
{
1
,
2
,
3
,
4
,
6
,
8
,
10
,
20
};
uint16_t
N311_NB
_IoT
[
8
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
8
,
10
};
// MP: TimeToTrigger not used in NB-IoT
...
...
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