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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
3d824e39
Commit
3d824e39
authored
Aug 22, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
handling release of RLC entity
parent
f8464b9e
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
1 deletion
+44
-1
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+36
-0
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
+3
-0
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+5
-1
No files found.
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
3d824e39
...
@@ -71,6 +71,42 @@ static nr_rlc_entity_t *get_rlc_entity_from_lcid(nr_rlc_ue_t *ue, logical_chan_i
...
@@ -71,6 +71,42 @@ static nr_rlc_entity_t *get_rlc_entity_from_lcid(nr_rlc_ue_t *ue, logical_chan_i
}
}
}
}
void
nr_release_rlc_entity
(
int
rnti
,
logical_chan_id_t
channel_id
)
{
nr_rlc_manager_lock
(
nr_rlc_ue_manager
);
nr_rlc_ue_t
*
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
rnti
);
if
(
channel_id
==
0
)
{
if
(
ue
->
srb0
!=
NULL
)
{
free
(
ue
->
srb0
->
deliver_sdu_data
);
ue
->
srb0
->
delete
(
ue
->
srb0
);
}
else
LOG_E
(
RLC
,
"Trying to release a non-established enity with LCID %d
\n
"
,
channel_id
);
}
else
{
nr_rlc_rb_t
*
rb
=
&
ue
->
lcid2rb
[
channel_id
-
1
];
if
(
rb
->
type
==
NR_RLC_SRB
)
{
if
(
ue
->
srb
[
rb
->
choice
.
srb_id
-
1
]
!=
NULL
)
ue
->
srb
[
rb
->
choice
.
srb_id
-
1
]
->
delete
(
ue
->
srb
[
rb
->
choice
.
srb_id
-
1
]);
else
LOG_E
(
RLC
,
"Trying to release a non-established enity with LCID %d
\n
"
,
channel_id
);
}
else
{
AssertFatal
(
rb
->
type
==
NR_RLC_DRB
,
"Invalid RB type
\n
"
);
if
(
ue
->
drb
[
rb
->
choice
.
drb_id
-
1
]
!=
NULL
)
ue
->
drb
[
rb
->
choice
.
drb_id
-
1
]
->
delete
(
ue
->
drb
[
rb
->
choice
.
drb_id
-
1
]);
else
LOG_E
(
RLC
,
"Trying to release a non-established enity with LCID %d
\n
"
,
channel_id
);
}
}
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
void
mac_rlc_data_ind
(
const
module_id_t
module_idP
,
void
mac_rlc_data_ind
(
const
module_id_t
module_idP
,
const
rnti_t
rntiP
,
const
rnti_t
rntiP
,
const
eNB_index_t
eNB_index
,
const
eNB_index_t
eNB_index
,
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
View file @
3d824e39
...
@@ -51,6 +51,9 @@ bool nr_rlc_update_rnti(int from_rnti, int to_rnti);
...
@@ -51,6 +51,9 @@ bool nr_rlc_update_rnti(int from_rnti, int to_rnti);
/* test function for CI to trigger reestablishments */
/* test function for CI to trigger reestablishments */
void
nr_rlc_test_trigger_reestablishment
(
int
rnti
);
void
nr_rlc_test_trigger_reestablishment
(
int
rnti
);
void
nr_release_rlc_entity
(
int
rnti
,
logical_chan_id_t
channel_id
);
void
nr_rlc_reconfigure_entity
(
int
rnti
,
void
nr_rlc_reconfigure_entity
(
int
rnti
,
int
lc_id
,
int
lc_id
,
struct
NR_RLC_Config
*
rlc_Config
,
struct
NR_RLC_Config
*
rlc_Config
,
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
3d824e39
...
@@ -760,7 +760,11 @@ void nr_rrc_manage_rlc_bearers(const NR_CellGroupConfig_t *cellGroupConfig,
...
@@ -760,7 +760,11 @@ void nr_rrc_manage_rlc_bearers(const NR_CellGroupConfig_t *cellGroupConfig,
int
rnti
)
int
rnti
)
{
{
if
(
cellGroupConfig
->
rlc_BearerToReleaseList
!=
NULL
)
{
if
(
cellGroupConfig
->
rlc_BearerToReleaseList
!=
NULL
)
{
//TODO (perform RLC bearer release as specified in 5.3.5.5.3)
for
(
int
i
=
0
;
i
<
cellGroupConfig
->
rlc_BearerToReleaseList
->
list
.
count
;
i
++
)
{
NR_LogicalChannelIdentity_t
*
lcid
=
cellGroupConfig
->
rlc_BearerToReleaseList
->
list
.
array
[
i
];
AssertFatal
(
lcid
,
"LogicalChannelIdentity shouldn't be null here
\n
"
);
nr_release_rlc_entity
(
rnti
,
*
lcid
);
}
}
}
if
(
cellGroupConfig
->
rlc_BearerToAddModList
!=
NULL
)
{
if
(
cellGroupConfig
->
rlc_BearerToAddModList
!=
NULL
)
{
...
...
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