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
alex037yang
OpenXG-RAN
Commits
704e167b
Commit
704e167b
authored
May 12, 2020
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'NR_RRC_PDCP' of
https://gitlab.eurecom.fr/oai/openairinterface5g
into NR_RRC_PDCP
parents
dc5149e8
06d4ef61
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
212 additions
and
36 deletions
+212
-36
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+67
-6
openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
+4
-1
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+74
-23
openair2/RRC/NR/nr_rrc_proto.h
openair2/RRC/NR/nr_rrc_proto.h
+1
-1
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+50
-1
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+16
-4
No files found.
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
View file @
704e167b
...
...
@@ -631,7 +631,7 @@ static void add_srb(int rnti, struct LTE_SRB_ToAddMod *s)
TODO
;
}
static
void
add_drb_am
(
int
rnti
,
struct
LTE
_DRB_ToAddMod
*
s
)
static
void
add_drb_am
(
int
rnti
,
struct
NR
_DRB_ToAddMod
*
s
)
{
nr_pdcp_entity_t
*
pdcp_drb
;
nr_pdcp_ue_t
*
ue
;
...
...
@@ -661,13 +661,13 @@ printf("\n\n################# rnti %d add drb %d\n\n\n", rnti, drb_id);
nr_pdcp_manager_unlock
(
nr_pdcp_ue_manager
);
}
static
void
add_drb
(
int
rnti
,
struct
LTE_DRB_ToAddMod
*
s
)
static
void
add_drb
(
int
rnti
,
struct
NR_DRB_ToAddMod
*
s
,
NR_RLC_Config_t
*
rlc_Config
)
{
switch
(
s
->
rlc_Config
->
present
)
{
case
LTE
_RLC_Config_PR_am
:
switch
(
rlc_Config
->
present
)
{
case
NR
_RLC_Config_PR_am
:
add_drb_am
(
rnti
,
s
);
break
;
case
LTE
_RLC_Config_PR_um_Bi_Directional
:
case
NR
_RLC_Config_PR_um_Bi_Directional
:
//add_drb_um(rnti, s);
/* hack */
add_drb_am
(
rnti
,
s
);
...
...
@@ -679,6 +679,67 @@ static void add_drb(int rnti, struct LTE_DRB_ToAddMod *s)
}
}
boolean_t
nr_rrc_pdcp_config_asn1_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
NR_SRB_ToAddModList_t
*
const
srb2add_list
,
NR_DRB_ToAddModList_t
*
const
drb2add_list
,
NR_DRB_ToReleaseList_t
*
const
drb2release_list
,
const
uint8_t
security_modeP
,
uint8_t
*
const
kRRCenc
,
uint8_t
*
const
kRRCint
,
uint8_t
*
const
kUPenc
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,
LTE_PMCH_InfoList_r9_t
*
pmch_InfoList_r9
#endif
,
rb_id_t
*
const
defaultDRB
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_bearer2add_list
)
//struct NR_RLC_Config *rlc_Config)
{
int
rnti
=
ctxt_pP
->
rnti
;
int
i
;
if
(
//ctxt_pP->enb_flag != 1 ||
ctxt_pP
->
module_id
!=
0
||
ctxt_pP
->
instance
!=
0
||
ctxt_pP
->
eNB_index
!=
0
||
//ctxt_pP->configured != 2 ||
//srb2add_list == NULL ||
//drb2add_list != NULL ||
drb2release_list
!=
NULL
||
security_modeP
!=
255
||
//kRRCenc != NULL ||
//kRRCint != NULL ||
//kUPenc != NULL ||
pmch_InfoList_r9
!=
NULL
/*||
defaultDRB != NULL */
)
{
TODO
;
}
if
(
srb2add_list
!=
NULL
)
{
for
(
i
=
0
;
i
<
srb2add_list
->
list
.
count
;
i
++
)
{
add_srb
(
rnti
,
srb2add_list
->
list
.
array
[
i
]);
}
}
if
(
drb2add_list
!=
NULL
)
{
for
(
i
=
0
;
i
<
drb2add_list
->
list
.
count
;
i
++
)
{
LOG_I
(
PDCP
,
"Before calling add_drb
\n
"
);
add_drb
(
rnti
,
drb2add_list
->
list
.
array
[
i
],
rlc_bearer2add_list
->
list
.
array
[
i
]
->
rlc_Config
);
}
}
/* update security */
if
(
kRRCint
!=
NULL
)
{
/* todo */
}
free
(
kRRCenc
);
free
(
kRRCint
);
free
(
kUPenc
);
return
0
;
}
boolean_t
rrc_pdcp_config_asn1_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
LTE_SRB_ToAddModList_t
*
const
srb2add_list
,
...
...
@@ -721,7 +782,7 @@ boolean_t rrc_pdcp_config_asn1_req(
if
(
drb2add_list
!=
NULL
)
{
for
(
i
=
0
;
i
<
drb2add_list
->
list
.
count
;
i
++
)
{
add_drb
(
rnti
,
drb2add_list
->
list
.
array
[
i
]);
add_drb
(
rnti
,
drb2add_list
->
list
.
array
[
i
]
,
NULL
);
}
}
...
...
openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
View file @
704e167b
...
...
@@ -109,7 +109,8 @@ static void consider_retransmission(nr_rlc_entity_am_t *entity,
* upper layers should deal with this condition, internally it's better
* for the RLC code to keep going with this segment (we only remove
* a segment that was ACKed)
*/
*/
LOG_D
(
RLC
,
"RLC segment to be added at the ReTx list
\n
"
);
nr_rlc_sdu_segment_list_append
(
&
entity
->
retransmit_list
,
&
entity
->
retransmit_end
,
cur
);
...
...
@@ -1588,6 +1589,8 @@ void nr_rlc_entity_am_recv_sdu(nr_rlc_entity_t *_entity,
sdu
=
nr_rlc_new_sdu
(
buffer
,
size
,
sdu_id
);
LOG_I
(
RLC
,
"Created new RLC SDU and append it to the RLC list
\n
"
);
nr_rlc_sdu_segment_list_append
(
&
entity
->
tx_list
,
&
entity
->
tx_end
,
sdu
);
}
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
704e167b
...
...
@@ -27,6 +27,13 @@
#include "asn1_utils.h"
#include "nr_rlc_ue_manager.h"
#include "nr_rlc_entity.h"
#include "NR_RLC-BearerConfig.h"
#include "NR_DRB-ToAddMod.h"
#include "NR_DRB-ToAddModList.h"
#include "NR_SRB-ToAddModList.h"
#include "NR_DRB-ToReleaseList.h"
#include "NR_CellGroupConfig.h"
#include "NR_RLC-Config.h"
#include <stdint.h>
...
...
@@ -636,15 +643,15 @@ __attribute__ ((unused)) static void add_srb(int rnti, struct LTE_SRB_ToAddMod *
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
static
void
add_drb_am
(
int
rnti
,
struct
LTE_DRB_ToAddMod
*
s
)
static
void
add_drb_am
(
int
rnti
,
struct
NR_DRB_ToAddMod
*
s
,
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
)
{
nr_rlc_entity_t
*
nr_rlc_am
;
nr_rlc_ue_t
*
ue
;
struct
LTE_RLC_Config
*
r
=
s
->
rlc_Config
;
struct
LTE_LogicalChannelConfig
*
l
=
s
->
l
ogicalChannelConfig
;
struct
NR_RLC_Config
*
r
=
rlc_BearerConfig
->
rlc_Config
;
struct
NR_LogicalChannelConfig
*
l
=
rlc_BearerConfig
->
mac_L
ogicalChannelConfig
;
int
drb_id
=
s
->
drb_Identity
;
int
channel_id
=
*
s
->
logicalChannelIdentity
;
int
channel_id
=
rlc_BearerConfig
->
logicalChannelIdentity
;
int
logical_channel_group
;
//int t_reordering;
...
...
@@ -677,9 +684,9 @@ static void add_drb_am(int rnti, struct LTE_DRB_ToAddMod *s)
}
switch
(
r
->
present
)
{
case
LTE
_RLC_Config_PR_am
:
{
struct
LTE
_RLC_Config__am
*
am
;
am
=
&
r
->
choice
.
am
;
case
NR
_RLC_Config_PR_am
:
{
struct
NR
_RLC_Config__am
*
am
;
am
=
r
->
choice
.
am
;
//t_reordering = decode_t_reordering(am->dl_AM_RLC.t_Reordering);
t_status_prohibit
=
decode_t_status_prohibit
(
am
->
dl_AM_RLC
.
t_StatusProhibit
);
t_poll_retransmit
=
decode_t_poll_retransmit
(
am
->
ul_AM_RLC
.
t_PollRetransmit
);
...
...
@@ -724,15 +731,15 @@ static void add_drb_am(int rnti, struct LTE_DRB_ToAddMod *s)
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
static
void
add_drb_um
(
int
rnti
,
struct
LTE_DRB_ToAddMod
*
s
)
static
void
add_drb_um
(
int
rnti
,
struct
NR_DRB_ToAddMod
*
s
,
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
)
{
nr_rlc_entity_t
*
nr_rlc_um
;
nr_rlc_ue_t
*
ue
;
struct
LTE_RLC_Config
*
r
=
s
->
rlc_Config
;
struct
LTE_LogicalChannelConfig
*
l
=
s
->
l
ogicalChannelConfig
;
struct
NR_RLC_Config
*
r
=
rlc_BearerConfig
->
rlc_Config
;
struct
NR_LogicalChannelConfig
*
l
=
rlc_BearerConfig
->
mac_L
ogicalChannelConfig
;
int
drb_id
=
s
->
drb_Identity
;
int
channel_id
=
*
s
->
logicalChannelIdentity
;
int
channel_id
=
rlc_BearerConfig
->
logicalChannelIdentity
;
int
logical_channel_group
;
//int t_reordering;
...
...
@@ -760,15 +767,15 @@ static void add_drb_um(int rnti, struct LTE_DRB_ToAddMod *s)
}
switch
(
r
->
present
)
{
case
LTE
_RLC_Config_PR_um_Bi_Directional
:
{
struct
LTE
_RLC_Config__um_Bi_Directional
*
um
;
um
=
&
r
->
choice
.
um_Bi_Directional
;
case
NR
_RLC_Config_PR_um_Bi_Directional
:
{
struct
NR
_RLC_Config__um_Bi_Directional
*
um
;
um
=
r
->
choice
.
um_Bi_Directional
;
//t_reordering = decode_t_reordering(um->dl_UM_RLC.t_Reordering);
if
(
um
->
dl_UM_RLC
.
sn_FieldLength
!=
um
->
ul_UM_RLC
.
sn_FieldLength
)
{
if
(
*
um
->
dl_UM_RLC
.
sn_FieldLength
!=
*
um
->
ul_UM_RLC
.
sn_FieldLength
)
{
LOG_E
(
RLC
,
"%s:%d:%s: fatal
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
}
sn_field_length
=
decode_sn_field_length
(
um
->
dl_UM_RLC
.
sn_FieldLength
);
sn_field_length
=
decode_sn_field_length
(
*
um
->
dl_UM_RLC
.
sn_FieldLength
);
break
;
}
default:
...
...
@@ -798,14 +805,14 @@ static void add_drb_um(int rnti, struct LTE_DRB_ToAddMod *s)
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
__attribute__
((
unused
))
static
void
add_drb
(
int
rnti
,
struct
LTE_DRB_ToAddMod
*
s
)
__attribute__
((
unused
))
static
void
add_drb
(
int
rnti
,
struct
NR_DRB_ToAddMod
*
s
,
struct
NR_RLC_BearerConfig
*
rlc_BearerConfig
)
{
switch
(
s
->
rlc_Config
->
present
)
{
case
LTE
_RLC_Config_PR_am
:
add_drb_am
(
rnti
,
s
);
switch
(
rlc_BearerConfig
->
rlc_Config
->
present
)
{
case
NR
_RLC_Config_PR_am
:
add_drb_am
(
rnti
,
s
,
rlc_BearerConfig
);
break
;
case
LTE
_RLC_Config_PR_um_Bi_Directional
:
add_drb_um
(
rnti
,
s
);
case
NR
_RLC_Config_PR_um_Bi_Directional
:
add_drb_um
(
rnti
,
s
,
rlc_BearerConfig
);
break
;
default:
LOG_E
(
RLC
,
"%s:%d:%s: fatal: unhandled DRB type
\n
"
,
...
...
@@ -853,7 +860,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
if
(
drb2add_listP
!=
NULL
)
{
for
(
i
=
0
;
i
<
drb2add_listP
->
list
.
count
;
i
++
)
{
add_drb
(
rnti
,
drb2add_listP
->
list
.
array
[
i
]);
add_drb
(
rnti
,
drb2add_listP
->
list
.
array
[
i
]
,
NULL
);
}
}
...
...
@@ -861,6 +868,50 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
}
//#endif
rlc_op_status_t
nr_rrc_rlc_config_asn1_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
NR_SRB_ToAddModList_t
*
const
srb2add_listP
,
const
NR_DRB_ToAddModList_t
*
const
drb2add_listP
,
const
NR_DRB_ToReleaseList_t
*
const
drb2release_listP
,
const
LTE_PMCH_InfoList_r9_t
*
const
pmch_InfoList_r9_pP
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_bearer2add_list
)
{
int
rnti
=
ctxt_pP
->
rnti
;
int
i
;
if
(
/*ctxt_pP->enb_flag != 1 ||*/
ctxt_pP
->
module_id
!=
0
/*||
ctxt_pP->instance != 0 || ctxt_pP->eNB_index != 0 ||
ctxt_pP->configured != 1 || ctxt_pP->brOption != 0 */
)
{
LOG_E
(
RLC
,
"%s: ctxt_pP not handled (%d %d %d %d %d %d)
\n
"
,
__FUNCTION__
,
ctxt_pP
->
enb_flag
,
ctxt_pP
->
module_id
,
ctxt_pP
->
instance
,
ctxt_pP
->
eNB_index
,
ctxt_pP
->
configured
,
ctxt_pP
->
brOption
);
exit
(
1
);
}
if
(
pmch_InfoList_r9_pP
!=
NULL
)
{
LOG_E
(
RLC
,
"%s: pmch_InfoList_r9_pP not handled
\n
"
,
__FUNCTION__
);
exit
(
1
);
}
if
(
drb2release_listP
!=
NULL
)
{
LOG_E
(
RLC
,
"%s:%d:%s: TODO
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
}
if
(
srb2add_listP
!=
NULL
)
{
for
(
i
=
0
;
i
<
srb2add_listP
->
list
.
count
;
i
++
)
{
add_srb
(
rnti
,
srb2add_listP
->
list
.
array
[
i
]);
}
}
if
(
drb2add_listP
!=
NULL
)
{
for
(
i
=
0
;
i
<
drb2add_listP
->
list
.
count
;
i
++
)
{
add_drb
(
rnti
,
drb2add_listP
->
list
.
array
[
i
],
rlc_bearer2add_list
->
list
.
array
[
i
]);
}
}
return
RLC_OP_STATUS_OK
;
}
//#if 0
rlc_op_status_t
rrc_rlc_config_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
...
...
openair2/RRC/NR/nr_rrc_proto.h
View file @
704e167b
...
...
@@ -82,7 +82,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
int
n_physical_antenna_ports
,
int
initial_csi_index
);
void
fill_default_rbconfig
(
NR_RadioBearerConfig_t
*
rbconfig
);
void
fill_default_rbconfig
(
NR_RadioBearerConfig_t
*
rbconfig
,
long
eps_BearerIdentity
,
long
drb_Identity
);
int
generate_CG_Config
(
gNB_RRC_INST
*
rrc
,
NR_CG_Config_t
*
cg_Config
,
...
...
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
704e167b
...
...
@@ -36,9 +36,32 @@
//#include "NR_UE-CapabilityRAT-ContainerList.h"
#include "LTE_UE-CapabilityRAT-ContainerList.h"
#include "NR_CG-Config.h"
//#include "NR_SRB-ToAddModList.h"
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
#include "openair2/RRC/LTE/rrc_eNB_GTPV1U.h"
extern
boolean_t
nr_rrc_pdcp_config_asn1_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
NR_SRB_ToAddModList_t
*
const
srb2add_list
,
NR_DRB_ToAddModList_t
*
const
drb2add_list
,
NR_DRB_ToReleaseList_t
*
const
drb2release_list
,
const
uint8_t
security_modeP
,
uint8_t
*
const
kRRCenc
,
uint8_t
*
const
kRRCint
,
uint8_t
*
const
kUPenc
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,
LTE_PMCH_InfoList_r9_t
*
pmch_InfoList_r9
#endif
,
rb_id_t
*
const
defaultDRB
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_bearer2add_list
);
extern
rlc_op_status_t
nr_rrc_rlc_config_asn1_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
NR_SRB_ToAddModList_t
*
const
srb2add_listP
,
const
NR_DRB_ToAddModList_t
*
const
drb2add_listP
,
const
NR_DRB_ToReleaseList_t
*
const
drb2release_listP
,
const
LTE_PMCH_InfoList_r9_t
*
const
pmch_InfoList_r9_pP
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_bearer2add_list
);
void
rrc_parse_ue_capabilities
(
gNB_RRC_INST
*
rrc
,
LTE_UE_CapabilityRAT_ContainerList_t
*
UE_CapabilityRAT_ContainerList
,
x2ap_ENDC_sgnb_addition_req_t
*
m
)
{
struct
rrc_gNB_ue_context_s
*
ue_context_p
=
NULL
;
...
...
@@ -132,8 +155,13 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
carrier
->
initial_csi_index
[
rrc
->
Nb_ue
]);
ue_context_p
->
ue_context
.
rb_config
=
calloc
(
1
,
sizeof
(
NR_RRCReconfiguration_t
));
//NR_CellGroupConfig_t *secondaryCellGroup = ue_context_p->ue_context.secondaryCellGroup;
//secondaryCellGroup->rlc_BearerToAddModList->list.array[0]->rlc_Config
fill_default_rbconfig
(
ue_context_p
->
ue_context
.
rb_config
);
if
(
m
!=
NULL
)
fill_default_rbconfig
(
ue_context_p
->
ue_context
.
rb_config
,
m
->
e_rabs_tobeadded
[
0
].
e_rab_id
,
m
->
e_rabs_tobeadded
[
0
].
drb_ID
);
else
fill_default_rbconfig
(
ue_context_p
->
ue_context
.
rb_config
,
5
,
1
);
ue_context_p
->
ue_id_rnti
=
ue_context_p
->
ue_context
.
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
;
NR_CG_Config_t
*
CG_Config
=
calloc
(
1
,
sizeof
(
*
CG_Config
));
memset
((
void
*
)
CG_Config
,
0
,
sizeof
(
*
CG_Config
));
...
...
@@ -232,6 +260,27 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
1
,
// add_ue flag
ue_context_p
->
ue_id_rnti
,
ue_context_p
->
ue_context
.
secondaryCellGroup
);
nr_rrc_pdcp_config_asn1_req
(
&
ctxt
,
(
NR_SRB_ToAddModList_t
*
)
NULL
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToAddModList
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToReleaseList
,
0xff
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
ue_context_p
->
ue_context
.
secondaryCellGroup
->
rlc_BearerToAddModList
);
nr_rrc_rlc_config_asn1_req
(
&
ctxt
,
(
NR_SRB_ToAddModList_t
*
)
NULL
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToAddModList
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToReleaseList
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
ue_context_p
->
ue_context
.
secondaryCellGroup
->
rlc_BearerToAddModList
);
}
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
704e167b
...
...
@@ -62,7 +62,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
NR_RLC_BearerConfig_t
*
RLC_BearerConfig
=
calloc
(
1
,
sizeof
(
*
RLC_BearerConfig
));
RLC_BearerConfig
->
logicalChannelIdentity
=
4
;
RLC_BearerConfig
->
logicalChannelIdentity
=
3
;
RLC_BearerConfig
->
servedRadioBearer
=
calloc
(
1
,
sizeof
(
*
RLC_BearerConfig
->
servedRadioBearer
));
RLC_BearerConfig
->
servedRadioBearer
->
present
=
NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity
;
...
...
@@ -70,6 +70,18 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
RLC_BearerConfig
->
reestablishRLC
=
calloc
(
1
,
sizeof
(
*
RLC_BearerConfig
->
reestablishRLC
));
*
RLC_BearerConfig
->
reestablishRLC
=
NR_RLC_BearerConfig__reestablishRLC_true
;
RLC_BearerConfig
->
rlc_Config
=
calloc
(
1
,
sizeof
(
*
RLC_BearerConfig
->
rlc_Config
));
// RLC UM Bi-directional Bearer configuration
/*RLC_BearerConfig->rlc_Config->present = NR_RLC_Config_PR_um_Bi_Directional;
RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional = calloc(1,sizeof(*RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional));
RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->ul_UM_RLC.sn_FieldLength = calloc(1,sizeof(*RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->ul_UM_RLC.sn_FieldLength));
*RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->ul_UM_RLC.sn_FieldLength = NR_SN_FieldLengthUM_size12;
RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->dl_UM_RLC.sn_FieldLength = calloc(1,sizeof(*RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->dl_UM_RLC.sn_FieldLength));
*RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->dl_UM_RLC.sn_FieldLength = NR_SN_FieldLengthUM_size12;
RLC_BearerConfig->rlc_Config->choice.um_Bi_Directional->dl_UM_RLC.t_Reassembly = NR_T_Reassembly_ms15;*/
// RLC AM Bearer configuration
RLC_BearerConfig
->
rlc_Config
->
present
=
NR_RLC_Config_PR_am
;
RLC_BearerConfig
->
rlc_Config
->
choice
.
am
=
calloc
(
1
,
sizeof
(
*
RLC_BearerConfig
->
rlc_Config
->
choice
.
am
));
RLC_BearerConfig
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
*
RLC_BearerConfig
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
));
...
...
@@ -2046,7 +2058,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
reconfig
->
nonCriticalExtension
=
NULL
;
}
void
fill_default_rbconfig
(
NR_RadioBearerConfig_t
*
rbconfig
)
{
void
fill_default_rbconfig
(
NR_RadioBearerConfig_t
*
rbconfig
,
long
eps_BearerIdentity
,
long
drb_Identity
)
{
rbconfig
->
srb_ToAddModList
=
NULL
;
rbconfig
->
srb3_ToRelease
=
NULL
;
...
...
@@ -2054,8 +2066,8 @@ void fill_default_rbconfig(NR_RadioBearerConfig_t *rbconfig) {
NR_DRB_ToAddMod_t
*
drb_ToAddMod
=
calloc
(
1
,
sizeof
(
*
drb_ToAddMod
));
drb_ToAddMod
->
cnAssociation
=
calloc
(
1
,
sizeof
(
*
drb_ToAddMod
->
cnAssociation
));
drb_ToAddMod
->
cnAssociation
->
present
=
NR_DRB_ToAddMod__cnAssociation_PR_eps_BearerIdentity
;
drb_ToAddMod
->
cnAssociation
->
choice
.
eps_BearerIdentity
=
5
;
drb_ToAddMod
->
drb_Identity
=
1
;
drb_ToAddMod
->
cnAssociation
->
choice
.
eps_BearerIdentity
=
eps_BearerIdentity
;
//
5;
drb_ToAddMod
->
drb_Identity
=
drb_Identity
;
drb_ToAddMod
->
reestablishPDCP
=
NULL
;
drb_ToAddMod
->
recoverPDCP
=
NULL
;
drb_ToAddMod
->
pdcp_Config
=
calloc
(
1
,
sizeof
(
*
drb_ToAddMod
->
pdcp_Config
));
...
...
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