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
Michael Black
OpenXG-RAN
Commits
03640f23
Commit
03640f23
authored
Nov 18, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix_multiple_drbs' into integration_2022_wk46
parents
2b7aacd3
e469278b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
7 deletions
+9
-7
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+1
-1
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+8
-6
No files found.
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
03640f23
...
@@ -1241,7 +1241,7 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
...
@@ -1241,7 +1241,7 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
// DRB Configuration
// DRB Configuration
for
(
int
i
=
bearer_id_start
;
i
<
bearer_id_start
+
nb_bearers_to_setup
;
i
++
){
for
(
int
i
=
bearer_id_start
;
i
<
bearer_id_start
+
nb_bearers_to_setup
;
i
++
){
const
NR_RLC_Config_PR
rlc_conf
=
use_rlc_um_for_drb
?
NR_RLC_Config_PR_um_Bi_Directional
:
NR_RLC_Config_PR_am
;
const
NR_RLC_Config_PR
rlc_conf
=
use_rlc_um_for_drb
?
NR_RLC_Config_PR_um_Bi_Directional
:
NR_RLC_Config_PR_am
;
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
get_DRB_RLC_BearerConfig
(
3
+
i
,
i
,
rlc_conf
,
priority
[
i
-
bearer_id_start
]);
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
get_DRB_RLC_BearerConfig
(
3
+
i
,
i
,
rlc_conf
,
priority
[
i
-
1
]);
ASN_SEQUENCE_ADD
(
&
cellGroupConfig
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
cellGroupConfig
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
ue_context_mastercellGroup
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
ue_context_mastercellGroup
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
}
}
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
03640f23
...
@@ -784,7 +784,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
...
@@ -784,7 +784,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
int
qos_flow_index
=
0
;
int
qos_flow_index
=
0
;
int
pdu_sessions_done
=
0
;
int
pdu_sessions_done
=
0
;
int
i
;
int
i
;
uint8_t
drb_id_to_setup_start
=
1
;
uint8_t
drb_id_to_setup_start
=
0
;
uint8_t
nb_drb_to_setup
=
rrc
->
configuration
.
drbs
;
uint8_t
nb_drb_to_setup
=
rrc
->
configuration
.
drbs
;
long
drb_priority
[
NGAP_MAX_DRBS_PER_UE
];
long
drb_priority
[
NGAP_MAX_DRBS_PER_UE
];
NR_CellGroupConfig_t
*
cellGroupConfig
=
NULL
;
NR_CellGroupConfig_t
*
cellGroupConfig
=
NULL
;
...
@@ -903,6 +903,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
...
@@ -903,6 +903,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
rrc
->
configuration
.
enable_sdap
,
rrc
->
configuration
.
enable_sdap
,
rrc
->
security
.
do_drb_integrity
,
rrc
->
security
.
do_drb_integrity
,
rrc
->
security
.
do_drb_ciphering
);
rrc
->
security
.
do_drb_ciphering
);
if
(
drb_id_to_setup_start
==
0
)
drb_id_to_setup_start
=
DRB_config
->
drb_Identity
;
ASN_SEQUENCE_ADD
(
&
(
*
DRB_configList
)
->
list
,
DRB_config
);
ASN_SEQUENCE_ADD
(
&
(
*
DRB_configList
)
->
list
,
DRB_config
);
ASN_SEQUENCE_ADD
(
&
(
*
DRB_configList2
)
->
list
,
DRB_config
);
ASN_SEQUENCE_ADD
(
&
(
*
DRB_configList2
)
->
list
,
DRB_config
);
}
}
...
@@ -3238,9 +3239,6 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
...
@@ -3238,9 +3239,6 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
}
}
}
}
uint8_t
drb_id_to_setup_start
=
0
;
uint8_t
nb_drb_to_setup
=
0
;
long
drb_priority
[
1
]
=
{
13
};
// For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
/* Configure SRB2 */
/* Configure SRB2 */
NR_SRB_ToAddMod_t
*
SRB2_config
=
NULL
;
NR_SRB_ToAddMod_t
*
SRB2_config
=
NULL
;
...
@@ -3264,6 +3262,9 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
...
@@ -3264,6 +3262,9 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
/* Configure DRB */
/* Configure DRB */
NR_DRB_ToAddMod_t
*
DRB_config
=
NULL
;
NR_DRB_ToAddMod_t
*
DRB_config
=
NULL
;
NR_DRB_ToAddModList_t
*
DRB_configList
=
NULL
;
NR_DRB_ToAddModList_t
*
DRB_configList
=
NULL
;
uint8_t
drb_id_to_setup_start
=
0
;
uint8_t
nb_drb_to_setup
=
0
;
long
drb_priority
[
1
]
=
{
13
};
// For now, we assume only one drb per pdu session with a default priority (will be dynamic in future)
if
(
req
->
drbs_to_be_setup_length
>
0
){
if
(
req
->
drbs_to_be_setup_length
>
0
){
if
(
ue_context_p
->
ue_context
.
DRB_configList
==
NULL
){
if
(
ue_context_p
->
ue_context
.
DRB_configList
==
NULL
){
ue_context_p
->
ue_context
.
DRB_configList
=
CALLOC
(
1
,
sizeof
(
*
ue_context_p
->
ue_context
.
DRB_configList
));
ue_context_p
->
ue_context
.
DRB_configList
=
CALLOC
(
1
,
sizeof
(
*
ue_context_p
->
ue_context
.
DRB_configList
));
...
@@ -3273,13 +3274,13 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
...
@@ -3273,13 +3274,13 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
for
(
int
i
=
0
;
i
<
req
->
drbs_to_be_setup_length
;
i
++
){
for
(
int
i
=
0
;
i
<
req
->
drbs_to_be_setup_length
;
i
++
){
DRB_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_config
));
DRB_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_config
));
DRB_config
->
drb_Identity
=
req
->
drbs_to_be_setup
[
i
].
drb_id
;
DRB_config
->
drb_Identity
=
req
->
drbs_to_be_setup
[
i
].
drb_id
;
if
(
drb_id_to_setup_start
==
0
)
drb_id_to_setup_start
=
DRB_config
->
drb_Identity
;
ASN_SEQUENCE_ADD
(
&
DRB_configList
->
list
,
DRB_config
);
ASN_SEQUENCE_ADD
(
&
DRB_configList
->
list
,
DRB_config
);
f1ap_drb_to_be_setup_t
drb_p
=
req
->
drbs_to_be_setup
[
i
];
f1ap_drb_to_be_setup_t
drb_p
=
req
->
drbs_to_be_setup
[
i
];
transport_layer_addr_t
addr
;
transport_layer_addr_t
addr
;
memcpy
(
addr
.
buffer
,
&
drb_p
.
up_ul_tnl
[
0
].
tl_address
,
sizeof
(
drb_p
.
up_ul_tnl
[
0
].
tl_address
));
memcpy
(
addr
.
buffer
,
&
drb_p
.
up_ul_tnl
[
0
].
tl_address
,
sizeof
(
drb_p
.
up_ul_tnl
[
0
].
tl_address
));
addr
.
length
=
sizeof
(
drb_p
.
up_ul_tnl
[
0
].
tl_address
)
*
8
;
addr
.
length
=
sizeof
(
drb_p
.
up_ul_tnl
[
0
].
tl_address
)
*
8
;
extern
instance_t
DUuniqInstance
;
extern
instance_t
DUuniqInstance
;
if
(
!
drb_id_to_setup_start
)
drb_id_to_setup_start
=
drb_p
.
drb_id
;
incoming_teid
=
newGtpuCreateTunnel
(
DUuniqInstance
,
incoming_teid
=
newGtpuCreateTunnel
(
DUuniqInstance
,
req
->
rnti
,
req
->
rnti
,
drb_p
.
drb_id
,
drb_p
.
drb_id
,
...
@@ -3408,6 +3409,7 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
...
@@ -3408,6 +3409,7 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
NR_DRB_ToAddMod_t
*
DRB_config
=
NULL
;
NR_DRB_ToAddMod_t
*
DRB_config
=
NULL
;
NR_DRB_ToAddModList_t
*
DRB_configList
=
NULL
;
NR_DRB_ToAddModList_t
*
DRB_configList
=
NULL
;
int
drb_id_to_setup_start
=
0
;
int
drb_id_to_setup_start
=
0
;
long
drb_priority
[
1
]
=
{
13
};
// For now, we assume only one drb per pdu session with a default priority (will be dynamic in future)
if
(
req
->
drbs_to_be_setup_length
>
0
){
if
(
req
->
drbs_to_be_setup_length
>
0
){
if
(
ue_context_p
->
ue_context
.
DRB_configList
==
NULL
){
if
(
ue_context_p
->
ue_context
.
DRB_configList
==
NULL
){
ue_context_p
->
ue_context
.
DRB_configList
=
CALLOC
(
1
,
sizeof
(
*
ue_context_p
->
ue_context
.
DRB_configList
));
ue_context_p
->
ue_context
.
DRB_configList
=
CALLOC
(
1
,
sizeof
(
*
ue_context_p
->
ue_context
.
DRB_configList
));
...
@@ -3416,6 +3418,7 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
...
@@ -3416,6 +3418,7 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
for
(
int
i
=
0
;
i
<
req
->
drbs_to_be_setup_length
;
i
++
){
for
(
int
i
=
0
;
i
<
req
->
drbs_to_be_setup_length
;
i
++
){
DRB_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_config
));
DRB_config
=
CALLOC
(
1
,
sizeof
(
*
DRB_config
));
DRB_config
->
drb_Identity
=
req
->
drbs_to_be_setup
[
i
].
drb_id
;
DRB_config
->
drb_Identity
=
req
->
drbs_to_be_setup
[
i
].
drb_id
;
if
(
drb_id_to_setup_start
==
0
)
drb_id_to_setup_start
=
DRB_config
->
drb_Identity
;
ASN_SEQUENCE_ADD
(
&
DRB_configList
->
list
,
DRB_config
);
ASN_SEQUENCE_ADD
(
&
DRB_configList
->
list
,
DRB_config
);
f1ap_drb_to_be_setup_t
drb_p
=
req
->
drbs_to_be_setup
[
i
];
f1ap_drb_to_be_setup_t
drb_p
=
req
->
drbs_to_be_setup
[
i
];
transport_layer_addr_t
addr
;
transport_layer_addr_t
addr
;
...
@@ -3438,7 +3441,6 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
...
@@ -3438,7 +3441,6 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
if
(
req
->
srbs_to_be_setup_length
>
0
||
req
->
drbs_to_be_setup_length
>
0
){
if
(
req
->
srbs_to_be_setup_length
>
0
||
req
->
drbs_to_be_setup_length
>
0
){
cellGroupConfig
=
calloc
(
1
,
sizeof
(
NR_CellGroupConfig_t
));
cellGroupConfig
=
calloc
(
1
,
sizeof
(
NR_CellGroupConfig_t
));
long
drb_priority
[
1
]
=
{
13
};
// For now, we assume only one drb per pdu sessions with a default preiority (will be dynamique in future)
fill_mastercellGroupConfig
(
cellGroupConfig
,
fill_mastercellGroupConfig
(
cellGroupConfig
,
ue_context_p
->
ue_context
.
masterCellGroup
,
ue_context_p
->
ue_context
.
masterCellGroup
,
rrc
->
um_on_default_drb
,
rrc
->
um_on_default_drb
,
...
...
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