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
b2faf814
Commit
b2faf814
authored
Jun 06, 2024
by
Robert Schmidt
Committed by
francescomani
Jun 06, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Address review: to be squashed into respective commits
parent
26181c6e
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
27 additions
and
21 deletions
+27
-21
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/mac_rrc_dl_handler.c
openair2/LAYER2/NR_MAC_gNB/mac_rrc_dl_handler.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/LAYER2/NR_MAC_gNB/main.c
+1
-1
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+14
-12
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
+4
-2
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+4
-2
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
b2faf814
...
...
@@ -3136,7 +3136,7 @@ void prepare_initial_ul_rrc_message(gNB_MAC_INST *mac, NR_UE_info_t *UE)
DevAssert
(
cellGroupConfig
->
rlc_BearerToAddModList
->
list
.
count
==
1
);
const
NR_RLC_BearerConfig_t
*
bearer
=
cellGroupConfig
->
rlc_BearerToAddModList
->
list
.
array
[
0
];
DevAssert
(
bearer
->
servedRadioBearer
->
choice
.
srb_Identity
==
srb_id
);
nr_rlc_add_srb
(
UE
->
rnti
,
bearer
->
servedRadioBearer
->
choice
.
srb_Identity
,
bearer
,
NULL
);
nr_rlc_add_srb
(
UE
->
rnti
,
bearer
->
servedRadioBearer
->
choice
.
srb_Identity
,
bearer
);
int
priority
=
bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
priority
;
nr_lc_config_t
c
=
{.
lcid
=
bearer
->
logicalChannelIdentity
,
.
priority
=
priority
};
...
...
openair2/LAYER2/NR_MAC_gNB/mac_rrc_dl_handler.c
View file @
b2faf814
...
...
@@ -161,7 +161,7 @@ static int handle_ue_context_srbs_setup(NR_UE_info_t *UE,
for
(
int
i
=
0
;
i
<
srbs_len
;
i
++
)
{
const
f1ap_srb_to_be_setup_t
*
srb
=
&
req_srbs
[
i
];
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
get_bearerconfig_from_srb
(
srb
);
nr_rlc_add_srb
(
UE
->
rnti
,
srb
->
srb_id
,
rlc_BearerConfig
,
NULL
);
nr_rlc_add_srb
(
UE
->
rnti
,
srb
->
srb_id
,
rlc_BearerConfig
);
int
priority
=
rlc_BearerConfig
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
priority
;
nr_lc_config_t
c
=
{.
lcid
=
rlc_BearerConfig
->
logicalChannelIdentity
,
.
priority
=
priority
};
...
...
@@ -226,7 +226,7 @@ static int handle_ue_context_drbs_setup(NR_UE_info_t *UE,
const
f1ap_drb_to_be_setup_t
*
drb
=
&
req_drbs
[
i
];
f1ap_drb_to_be_setup_t
*
resp_drb
=
&
(
*
resp_drbs
)[
i
];
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
get_bearerconfig_from_drb
(
drb
);
nr_rlc_add_drb
(
UE
->
rnti
,
drb
->
drb_id
,
rlc_BearerConfig
,
NULL
);
nr_rlc_add_drb
(
UE
->
rnti
,
drb
->
drb_id
,
rlc_BearerConfig
);
nr_lc_config_t
c
=
{.
lcid
=
rlc_BearerConfig
->
logicalChannelIdentity
,
.
nssai
=
drb
->
nssai
};
int
prio
=
100
;
...
...
openair2/LAYER2/NR_MAC_gNB/main.c
View file @
b2faf814
...
...
@@ -299,7 +299,7 @@ void mac_top_init_gNB(ngran_node_t node_type,
* the noS1 mode. Hence, below, we simply hardcode ENB_FLAG_NO */
// setup PDCP, RLC
nr_pdcp_add_drbs
(
ENB_FLAG_NO
,
0x1234
,
rbconfig
->
drb_ToAddModList
,
0
,
NULL
,
NULL
);
nr_rlc_add_drb
(
0x1234
,
rbconfig
->
drb_ToAddModList
->
list
.
array
[
0
]
->
drb_Identity
,
rlc_rbconfig
,
NULL
);
nr_rlc_add_drb
(
0x1234
,
rbconfig
->
drb_ToAddModList
->
list
.
array
[
0
]
->
drb_Identity
,
rlc_rbconfig
);
// free memory
free_nr_noS1_bearer_config
(
&
rbconfig
,
&
rlc_rbconfig
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
b2faf814
...
...
@@ -626,6 +626,14 @@ rb_found:
LOG_W
(
RLC
,
"UE %04x: RLF detected, but no callable RLF handler registered
\n
"
,
ue
->
ue_id
);
}
void
nr_rlc_set_rlf_handler
(
int
ue_id
,
rlf_handler_t
rlf_h
)
{
nr_rlc_manager_lock
(
nr_rlc_ue_manager
);
nr_rlc_ue_t
*
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
ue_id
);
ue
->
rlf_handler
=
rlf_h
;
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
void
nr_rlc_reestablish_entity
(
int
ue_id
,
int
lc_id
)
{
nr_rlc_manager_lock
(
nr_rlc_ue_manager
);
...
...
@@ -721,7 +729,7 @@ void nr_rlc_reconfigure_entity(int ue_id, int lc_id, NR_RLC_Config_t *rlc_Config
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
void
nr_rlc_add_srb
(
int
ue_id
,
int
srb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
,
rlf_handler_t
rlf_h
)
void
nr_rlc_add_srb
(
int
ue_id
,
int
srb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
)
{
struct
NR_RLC_Config
*
r
=
rlc_BearerConfig
->
rlc_Config
;
int
t_status_prohibit
;
...
...
@@ -770,8 +778,6 @@ void nr_rlc_add_srb(int ue_id, int srb_id, const NR_RLC_BearerConfig_t *rlc_Bear
int
local_id
=
rlc_BearerConfig
->
logicalChannelIdentity
-
1
;
// LCID 0 for SRB 0 not mapped
ue
->
lcid2rb
[
local_id
].
type
=
NR_RLC_SRB
;
ue
->
lcid2rb
[
local_id
].
choice
.
srb_id
=
rlc_BearerConfig
->
servedRadioBearer
->
choice
.
srb_Identity
;
if
(
rlf_h
!=
NULL
)
ue
->
rlf_handler
=
rlf_h
;
if
(
ue
->
srb
[
srb_id
-
1
]
!=
NULL
)
{
LOG_E
(
RLC
,
"SRB %d already exists for UE %d, do nothing
\n
"
,
srb_id
,
ue_id
);
}
else
{
...
...
@@ -791,7 +797,7 @@ void nr_rlc_add_srb(int ue_id, int srb_id, const NR_RLC_BearerConfig_t *rlc_Bear
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
static
void
add_drb_am
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
,
rlf_handler_t
rlf_h
)
static
void
add_drb_am
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
)
{
struct
NR_RLC_Config
*
r
=
rlc_BearerConfig
->
rlc_Config
;
...
...
@@ -837,8 +843,6 @@ static void add_drb_am(int ue_id, int drb_id, const NR_RLC_BearerConfig_t *rlc_B
int
local_id
=
rlc_BearerConfig
->
logicalChannelIdentity
-
1
;
// LCID 0 for SRB 0 not mapped
ue
->
lcid2rb
[
local_id
].
type
=
NR_RLC_DRB
;
ue
->
lcid2rb
[
local_id
].
choice
.
drb_id
=
rlc_BearerConfig
->
servedRadioBearer
->
choice
.
drb_Identity
;
if
(
rlf_h
!=
NULL
)
ue
->
rlf_handler
=
rlf_h
;
if
(
ue
->
drb
[
drb_id
-
1
]
!=
NULL
)
{
LOG_E
(
RLC
,
"DRB %d already exists for UE %d, do nothing
\n
"
,
drb_id
,
ue_id
);
}
else
{
...
...
@@ -858,7 +862,7 @@ static void add_drb_am(int ue_id, int drb_id, const NR_RLC_BearerConfig_t *rlc_B
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
static
void
add_drb_um
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
,
rlf_handler_t
rlf_h
)
static
void
add_drb_um
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
)
{
struct
NR_RLC_Config
*
r
=
rlc_BearerConfig
->
rlc_Config
;
...
...
@@ -894,8 +898,6 @@ static void add_drb_um(int ue_id, int drb_id, const NR_RLC_BearerConfig_t *rlc_B
int
local_id
=
rlc_BearerConfig
->
logicalChannelIdentity
-
1
;
// LCID 0 for SRB 0 not mapped
ue
->
lcid2rb
[
local_id
].
type
=
NR_RLC_DRB
;
ue
->
lcid2rb
[
local_id
].
choice
.
drb_id
=
rlc_BearerConfig
->
servedRadioBearer
->
choice
.
drb_Identity
;
if
(
rlf_h
!=
NULL
)
ue
->
rlf_handler
=
rlf_h
;
if
(
ue
->
drb
[
drb_id
-
1
]
!=
NULL
)
{
LOG_E
(
RLC
,
"DEBUG add_drb_um: warning DRB %d already exist for ue %d, do nothing
\n
"
,
drb_id
,
ue_id
);
}
else
{
...
...
@@ -911,14 +913,14 @@ static void add_drb_um(int ue_id, int drb_id, const NR_RLC_BearerConfig_t *rlc_B
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
}
void
nr_rlc_add_drb
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
,
rlf_handler_t
rlf_h
)
void
nr_rlc_add_drb
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
)
{
switch
(
rlc_BearerConfig
->
rlc_Config
->
present
)
{
case
NR_RLC_Config_PR_am
:
add_drb_am
(
ue_id
,
drb_id
,
rlc_BearerConfig
,
rlf_h
);
add_drb_am
(
ue_id
,
drb_id
,
rlc_BearerConfig
);
break
;
case
NR_RLC_Config_PR_um_Bi_Directional
:
add_drb_um
(
ue_id
,
drb_id
,
rlc_BearerConfig
,
rlf_h
);
add_drb_um
(
ue_id
,
drb_id
,
rlc_BearerConfig
);
break
;
default:
LOG_E
(
RLC
,
"Fatal: unhandled DRB type
\n
"
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
View file @
b2faf814
...
...
@@ -41,8 +41,10 @@
struct
NR_RLC_Config
;
struct
NR_LogicalChannelConfig
;
void
nr_rlc_add_srb
(
int
ue_id
,
int
srb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
,
rlf_handler_t
rlf_h
);
void
nr_rlc_add_drb
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
,
rlf_handler_t
rlf_h
);
void
nr_rlc_add_srb
(
int
ue_id
,
int
srb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
);
void
nr_rlc_add_drb
(
int
ue_id
,
int
drb_id
,
const
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
);
void
nr_rlc_set_rlf_handler
(
int
ue_id
,
rlf_handler_t
rlf_h
);
logical_chan_id_t
nr_rlc_get_lcid_from_rb
(
int
ue_id
,
bool
is_srb
,
int
rb_id
);
void
nr_rlc_reestablish_entity
(
int
ue_id
,
int
lc_id
);
...
...
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
b2faf814
...
...
@@ -402,7 +402,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *ue_context_p, x2a
const
NR_RLC_BearerConfig_t
*
bearer
=
bearer_list
->
list
.
array
[
0
];
DevAssert
(
bearer_list
->
list
.
count
==
1
);
DevAssert
(
drb
->
drb_Identity
==
bearer
->
servedRadioBearer
->
choice
.
drb_Identity
);
nr_rlc_add_drb
(
ctxt
.
rntiMaybeUEid
,
drb
->
drb_Identity
,
bearer
,
NULL
);
nr_rlc_add_drb
(
ctxt
.
rntiMaybeUEid
,
drb
->
drb_Identity
,
bearer
);
LOG_D
(
RRC
,
"%s:%d: done RRC PDCP/RLC ASN1 request for UE rnti %lx
\n
"
,
__FUNCTION__
,
__LINE__
,
ctxt
.
rntiMaybeUEid
);
}
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
b2faf814
...
...
@@ -807,10 +807,12 @@ static void nr_rrc_manage_rlc_bearers(NR_UE_RRC_INST_t *rrc,
"Invalid RB for RLC configuration
\n
"
);
if
(
rlc_bearer
->
servedRadioBearer
->
present
==
NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity
)
{
NR_SRB_Identity_t
srb_id
=
rlc_bearer
->
servedRadioBearer
->
choice
.
srb_Identity
;
nr_rlc_add_srb
(
rrc
->
ue_id
,
srb_id
,
rlc_bearer
,
nr_rrc_signal_maxrtxindication
);
nr_rlc_add_srb
(
rrc
->
ue_id
,
srb_id
,
rlc_bearer
);
nr_rlc_set_rlf_handler
(
rrc
->
ue_id
,
nr_rrc_signal_maxrtxindication
);
}
else
{
// DRB
NR_DRB_Identity_t
drb_id
=
rlc_bearer
->
servedRadioBearer
->
choice
.
drb_Identity
;
nr_rlc_add_drb
(
rrc
->
ue_id
,
drb_id
,
rlc_bearer
,
nr_rrc_signal_maxrtxindication
);
nr_rlc_add_drb
(
rrc
->
ue_id
,
drb_id
,
rlc_bearer
);
nr_rlc_set_rlf_handler
(
rrc
->
ue_id
,
nr_rrc_signal_maxrtxindication
);
}
}
}
...
...
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