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
9dc5255c
Commit
9dc5255c
authored
May 31, 2023
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code review comments
parent
de7e9e27
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
45 deletions
+15
-45
openair2/RRC/NR/cucp_cuup_direct.c
openair2/RRC/NR/cucp_cuup_direct.c
+1
-9
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+14
-36
No files found.
openair2/RRC/NR/cucp_cuup_direct.c
View file @
9dc5255c
...
@@ -150,15 +150,7 @@ static int drb_config_gtpu_create(const protocol_ctxt_t *const ctxt_p,
...
@@ -150,15 +150,7 @@ static int drb_config_gtpu_create(const protocol_ctxt_t *const ctxt_p,
/* Refresh SRBs/DRBs */
/* Refresh SRBs/DRBs */
LOG_D
(
NR_RRC
,
"Configuring PDCP DRBs/SRBs for UE %x
\n
"
,
UE
->
rnti
);
LOG_D
(
NR_RRC
,
"Configuring PDCP DRBs for UE %x
\n
"
,
UE
->
rnti
);
nr_pdcp_add_srbs
(
ctxt_p
->
enb_flag
,
ctxt_p
->
rntiMaybeUEid
,
NULL
,
(
UE
->
integrity_algorithm
<<
4
)
|
UE
->
ciphering_algorithm
,
kRRCenc
,
kRRCint
);
nr_pdcp_add_drbs
(
ctxt_p
->
enb_flag
,
nr_pdcp_add_drbs
(
ctxt_p
->
enb_flag
,
ctxt_p
->
rntiMaybeUEid
,
ctxt_p
->
rntiMaybeUEid
,
0
,
0
,
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
9dc5255c
...
@@ -304,8 +304,10 @@ unsigned int rrc_gNB_get_next_transaction_identifier(module_id_t gnb_mod_idP)
...
@@ -304,8 +304,10 @@ unsigned int rrc_gNB_get_next_transaction_identifier(module_id_t gnb_mod_idP)
static
NR_SRB_ToAddModList_t
*
createSRBlist
(
gNB_RRC_UE_t
*
ue
)
static
NR_SRB_ToAddModList_t
*
createSRBlist
(
gNB_RRC_UE_t
*
ue
)
{
{
if
(
!
ue
->
Srb
[
1
].
Active
)
if
(
!
ue
->
Srb
[
1
].
Active
)
{
LOG_E
(
NR_RRC
,
"Call SRB list while SRB1 doesn't exist
\n
"
);
return
NULL
;
return
NULL
;
}
NR_SRB_ToAddModList_t
*
list
=
CALLOC
(
sizeof
(
*
list
),
1
);
NR_SRB_ToAddModList_t
*
list
=
CALLOC
(
sizeof
(
*
list
),
1
);
for
(
int
i
=
0
;
i
<
maxSRBs
;
i
++
)
for
(
int
i
=
0
;
i
<
maxSRBs
;
i
++
)
if
(
ue
->
Srb
[
i
].
Active
)
{
if
(
ue
->
Srb
[
i
].
Active
)
{
...
@@ -321,7 +323,8 @@ static void freeSRBlist(NR_SRB_ToAddModList_t *l)
...
@@ -321,7 +323,8 @@ static void freeSRBlist(NR_SRB_ToAddModList_t *l)
for
(
int
i
=
0
;
i
<
l
->
list
.
count
;
i
++
)
for
(
int
i
=
0
;
i
<
l
->
list
.
count
;
i
++
)
free
(
l
->
list
.
array
[
i
]);
free
(
l
->
list
.
array
[
i
]);
free
(
l
);
free
(
l
);
}
}
else
LOG_E
(
NR_RRC
,
"Call free SRB list on NULL pointer
\n
"
);
}
}
static
void
apply_macrlc_config
(
gNB_RRC_INST
*
rrc
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
const
protocol_ctxt_t
*
const
ctxt_pP
)
static
void
apply_macrlc_config
(
gNB_RRC_INST
*
rrc
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
const
protocol_ctxt_t
*
const
ctxt_pP
)
...
@@ -1042,15 +1045,7 @@ static void rrc_gNB_process_RRCReconfigurationComplete(const protocol_ctxt_t *co
...
@@ -1042,15 +1045,7 @@ static void rrc_gNB_process_RRCReconfigurationComplete(const protocol_ctxt_t *co
}
}
}
}
}
}
NR_SRB_ToAddModList_t
*
SRBs
=
createSRBlist
(
ue_p
);
nr_pdcp_add_srbs
(
ctxt_pP
->
enb_flag
,
ctxt_pP
->
rntiMaybeUEid
,
SRBs
,
(
ue_p
->
integrity_algorithm
<<
4
)
|
ue_p
->
ciphering_algorithm
,
kRRCenc
,
kRRCint
);
freeSRBlist
(
SRBs
);
nr_pdcp_add_drbs
(
ctxt_pP
->
enb_flag
,
nr_pdcp_add_drbs
(
ctxt_pP
->
enb_flag
,
ctxt_pP
->
rntiMaybeUEid
,
ctxt_pP
->
rntiMaybeUEid
,
reestablish_ue_id
,
reestablish_ue_id
,
...
@@ -1060,12 +1055,11 @@ static void rrc_gNB_process_RRCReconfigurationComplete(const protocol_ctxt_t *co
...
@@ -1060,12 +1055,11 @@ static void rrc_gNB_process_RRCReconfigurationComplete(const protocol_ctxt_t *co
kUPint
,
kUPint
,
get_softmodem_params
()
->
sa
?
ue_p
->
masterCellGroup
->
rlc_BearerToAddModList
:
NULL
);
get_softmodem_params
()
->
sa
?
ue_p
->
masterCellGroup
->
rlc_BearerToAddModList
:
NULL
);
/* Refresh
SRBs/
DRBs */
/* Refresh DRBs */
if
(
!
NODE_IS_CU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
!
NODE_IS_CU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
LOG_D
(
NR_RRC
,
"Configuring RLC DRBs/SRBs for UE %04x
\n
"
,
ue_context_pP
->
ue_context
.
rnti
);
LOG_D
(
NR_RRC
,
"Configuring RLC DRBs/SRBs for UE %04x
\n
"
,
ue_context_pP
->
ue_context
.
rnti
);
const
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
bearer_list
=
const
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
bearer_list
=
ue_context_pP
->
ue_context
.
masterCellGroup
->
rlc_BearerToAddModList
;
ue_context_pP
->
ue_context
.
masterCellGroup
->
rlc_BearerToAddModList
;
nr_rrc_addmod_srbs
(
ctxt_pP
->
rntiMaybeUEid
,
ue_p
->
Srb
,
maxSRBs
,
bearer_list
);
nr_rrc_addmod_drbs
(
ctxt_pP
->
rntiMaybeUEid
,
DRB_configList
,
bearer_list
);
nr_rrc_addmod_drbs
(
ctxt_pP
->
rntiMaybeUEid
,
DRB_configList
,
bearer_list
);
}
}
...
@@ -1212,29 +1206,6 @@ void rrc_gNB_generate_RRCReestablishment(const protocol_ctxt_t *ctxt_pP,
...
@@ -1212,29 +1206,6 @@ void rrc_gNB_generate_RRCReestablishment(const protocol_ctxt_t *ctxt_pP,
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
}
}
/*
* Handle RRC Reestablishment Complete Functions
*/
/// @brief Function used in RRCReestablishmentComplete procedure to reestablish the SRB2.
/// @param old_xid The old RRC transaction id.
/// @param new_xid The new RRC transaction id.
void
RRCReestablishmentComplete_fill_SRB2_configList
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
rrc_gNB_ue_context_t
*
ue_context_pP
,
const
uint8_t
old_xid
,
const
uint8_t
new_xid
)
{
gNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
//*SRB2_config->reestablishPDCP = NR_SRB_ToAddMod__reestablishPDCP_true;
ue_p
->
Srb
[
1
].
Active
=
1
;
if
(
get_softmodem_params
()
->
sa
)
{
uint8_t
send_security_mode_command
=
false
;
nr_rrc_pdcp_config_security
(
ctxt_pP
,
ue_context_pP
,
send_security_mode_command
);
LOG_D
(
NR_RRC
,
"RRC Reestablishment - set security successfully
\n
"
);
}
}
/// @brief Function used in RRCReestablishmentComplete procedure to reestablish the DRBs
/// @brief Function used in RRCReestablishmentComplete procedure to reestablish the DRBs
/// that the UE previously had, it gets the information from the established_drbs
/// that the UE previously had, it gets the information from the established_drbs
/// struct.
/// struct.
...
@@ -1358,7 +1329,14 @@ void rrc_gNB_process_RRCReestablishmentComplete(const protocol_ctxt_t *const ctx
...
@@ -1358,7 +1329,14 @@ void rrc_gNB_process_RRCReestablishmentComplete(const protocol_ctxt_t *const ctx
uint8_t
new_xid
=
rrc_gNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
);
uint8_t
new_xid
=
rrc_gNB_get_next_transaction_identifier
(
ctxt_pP
->
module_id
);
ue_p
->
xids
[
new_xid
]
=
RRC_REESTABLISH_COMPLETE
;
ue_p
->
xids
[
new_xid
]
=
RRC_REESTABLISH_COMPLETE
;
ue_p
->
StatusRrc
=
NR_RRC_CONNECTED
;
ue_p
->
StatusRrc
=
NR_RRC_CONNECTED
;
RRCReestablishmentComplete_fill_SRB2_configList
(
ctxt_pP
,
ue_context_pP
,
xid
,
new_xid
);
//*SRB2_config->reestablishPDCP = NR_SRB_ToAddMod__reestablishPDCP_true;
ue_p
->
Srb
[
1
].
Active
=
1
;
if
(
get_softmodem_params
()
->
sa
)
{
uint8_t
send_security_mode_command
=
false
;
nr_rrc_pdcp_config_security
(
ctxt_pP
,
ue_context_pP
,
send_security_mode_command
);
LOG_D
(
NR_RRC
,
"RRC Reestablishment - set security successfully
\n
"
);
}
RRCReestablishmentComplete_fill_DRB_configList
(
ctxt_pP
,
ue_context_pP
,
new_xid
);
RRCReestablishmentComplete_fill_DRB_configList
(
ctxt_pP
,
ue_context_pP
,
new_xid
);
RRCReestablishmentComplete_update_ngu_tunnel
(
ctxt_pP
,
ue_context_pP
,
reestablish_rnti
);
RRCReestablishmentComplete_update_ngu_tunnel
(
ctxt_pP
,
ue_context_pP
,
reestablish_rnti
);
RRCReestablishmentComplete_nas_pdu_update
(
ue_context_pP
,
xid
);
RRCReestablishmentComplete_nas_pdu_update
(
ue_context_pP
,
xid
);
...
...
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