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
spbro
OpenXG-RAN
Commits
1893d640
Commit
1893d640
authored
Sep 07, 2022
by
Angelo Athanassopoulos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NR RLC - Removed DRB ID limitations
parent
6b465c71
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
14 deletions
+15
-14
openair2/LAYER2/nr_rlc/nr_rlc_entity.h
openair2/LAYER2/nr_rlc/nr_rlc_entity.h
+1
-0
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+13
-13
openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h
openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h
+1
-1
No files found.
openair2/LAYER2/nr_rlc/nr_rlc_entity.h
View file @
1893d640
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#define _NR_RLC_ENTITY_H_
#define _NR_RLC_ENTITY_H_
#include <stdint.h>
#include <stdint.h>
#include "openair2/RRC/NR/rrc_gNB_drbs.h"
#include "common/utils/time_stat.h"
#include "common/utils/time_stat.h"
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
1893d640
...
@@ -165,7 +165,7 @@ void mac_rlc_data_ind (
...
@@ -165,7 +165,7 @@ void mac_rlc_data_ind (
switch
(
channel_idP
)
{
switch
(
channel_idP
)
{
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
case
4
...
32
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
default:
rb
=
NULL
;
break
;
}
}
...
@@ -206,7 +206,7 @@ tbs_size_t mac_rlc_data_req(
...
@@ -206,7 +206,7 @@ tbs_size_t mac_rlc_data_req(
switch
(
channel_idP
)
{
switch
(
channel_idP
)
{
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
case
4
...
32
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
default:
rb
=
NULL
;
rb
=
NULL
;
LOG_E
(
RLC
,
"In %s:%d:%s: data request for unknown RB with LCID 0x%02x !
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
channel_idP
);
LOG_E
(
RLC
,
"In %s:%d:%s: data request for unknown RB with LCID 0x%02x !
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
channel_idP
);
...
@@ -254,7 +254,7 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
...
@@ -254,7 +254,7 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
switch
(
channel_idP
)
{
switch
(
channel_idP
)
{
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
case
4
...
32
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
default:
rb
=
NULL
;
break
;
}
}
...
@@ -317,7 +317,7 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
...
@@ -317,7 +317,7 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
switch
(
channel_idP
)
{
switch
(
channel_idP
)
{
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
case
4
...
32
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
default:
rb
=
NULL
;
break
;
}
}
...
@@ -379,7 +379,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
...
@@ -379,7 +379,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
if
(
rb_idP
>=
1
&&
rb_idP
<=
2
)
if
(
rb_idP
>=
1
&&
rb_idP
<=
2
)
rb
=
ue
->
srb
[
rb_idP
-
1
];
rb
=
ue
->
srb
[
rb_idP
-
1
];
}
else
{
}
else
{
if
(
rb_idP
>=
1
&&
rb_idP
<=
5
)
if
(
rb_idP
>=
1
&&
rb_idP
<=
MAX_DRBS_PER_UE
)
rb
=
ue
->
drb
[
rb_idP
-
1
];
rb
=
ue
->
drb
[
rb_idP
-
1
];
}
}
...
@@ -410,7 +410,7 @@ int nr_rlc_get_available_tx_space(
...
@@ -410,7 +410,7 @@ int nr_rlc_get_available_tx_space(
switch
(
channel_idP
)
{
switch
(
channel_idP
)
{
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
1
...
3
:
rb
=
ue
->
srb
[
channel_idP
-
1
];
break
;
case
4
...
8
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
case
4
...
32
:
rb
=
ue
->
drb
[
channel_idP
-
4
];
break
;
default:
rb
=
NULL
;
break
;
default:
rb
=
NULL
;
break
;
}
}
...
@@ -587,7 +587,7 @@ static void successful_delivery(void *_ue, nr_rlc_entity_t *entity, int sdu_id)
...
@@ -587,7 +587,7 @@ static void successful_delivery(void *_ue, nr_rlc_entity_t *entity, int sdu_id)
}
}
/* maybe DRB? */
/* maybe DRB? */
for
(
i
=
0
;
i
<
5
;
i
++
)
{
for
(
i
=
0
;
i
<
MAX_DRBS_PER_UE
;
i
++
)
{
if
(
entity
==
ue
->
drb
[
i
])
{
if
(
entity
==
ue
->
drb
[
i
])
{
is_srb
=
0
;
is_srb
=
0
;
rb_id
=
i
+
1
;
rb_id
=
i
+
1
;
...
@@ -645,7 +645,7 @@ static void max_retx_reached(void *_ue, nr_rlc_entity_t *entity)
...
@@ -645,7 +645,7 @@ static void max_retx_reached(void *_ue, nr_rlc_entity_t *entity)
}
}
/* maybe DRB? */
/* maybe DRB? */
for
(
i
=
0
;
i
<
5
;
i
++
)
{
for
(
i
=
0
;
i
<
MAX_DRBS_PER_UE
;
i
++
)
{
if
(
entity
==
ue
->
drb
[
i
])
{
if
(
entity
==
ue
->
drb
[
i
])
{
is_srb
=
0
;
is_srb
=
0
;
rb_id
=
i
+
1
;
rb_id
=
i
+
1
;
...
@@ -791,7 +791,7 @@ static void add_drb_am(int rnti, struct NR_DRB_ToAddMod *s, NR_RLC_BearerConfig_
...
@@ -791,7 +791,7 @@ static void add_drb_am(int rnti, struct NR_DRB_ToAddMod *s, NR_RLC_BearerConfig_
int
t_reassembly
;
int
t_reassembly
;
int
sn_field_length
;
int
sn_field_length
;
if
(
!
(
drb_id
>=
1
&&
drb_id
<=
5
))
{
if
(
!
(
drb_id
>=
1
&&
drb_id
<=
MAX_DRBS_PER_UE
))
{
LOG_E
(
RLC
,
"%s:%d:%s: fatal, bad srb id %d
\n
"
,
LOG_E
(
RLC
,
"%s:%d:%s: fatal, bad srb id %d
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
drb_id
);
__FILE__
,
__LINE__
,
__FUNCTION__
,
drb_id
);
exit
(
1
);
exit
(
1
);
...
@@ -868,7 +868,7 @@ static void add_drb_um(int rnti, struct NR_DRB_ToAddMod *s, NR_RLC_BearerConfig_
...
@@ -868,7 +868,7 @@ static void add_drb_um(int rnti, struct NR_DRB_ToAddMod *s, NR_RLC_BearerConfig_
int
sn_field_length
;
int
sn_field_length
;
int
t_reassembly
;
int
t_reassembly
;
if
(
!
(
drb_id
>=
1
&&
drb_id
<=
5
))
{
if
(
!
(
drb_id
>=
1
&&
drb_id
<=
MAX_DRBS_PER_UE
))
{
LOG_E
(
RLC
,
"%s:%d:%s: fatal, bad srb id %d
\n
"
,
LOG_E
(
RLC
,
"%s:%d:%s: fatal, bad srb id %d
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
drb_id
);
__FILE__
,
__LINE__
,
__FUNCTION__
,
drb_id
);
exit
(
1
);
exit
(
1
);
...
@@ -1041,7 +1041,7 @@ rlc_op_status_t rrc_rlc_config_req (
...
@@ -1041,7 +1041,7 @@ rlc_op_status_t rrc_rlc_config_req (
exit
(
1
);
exit
(
1
);
}
}
if
((
srb_flagP
&&
!
(
rb_idP
>=
1
&&
rb_idP
<=
2
))
||
if
((
srb_flagP
&&
!
(
rb_idP
>=
1
&&
rb_idP
<=
2
))
||
(
!
srb_flagP
&&
!
(
rb_idP
>=
1
&&
rb_idP
<=
5
)))
{
(
!
srb_flagP
&&
!
(
rb_idP
>=
1
&&
rb_idP
<=
MAX_DRBS_PER_UE
)))
{
LOG_E
(
RLC
,
"%s:%d:%s: bad rb_id (%ld) (is_srb %d)
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
rb_idP
,
srb_flagP
);
LOG_E
(
RLC
,
"%s:%d:%s: bad rb_id (%ld) (is_srb %d)
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
rb_idP
,
srb_flagP
);
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1066,10 +1066,10 @@ rlc_op_status_t rrc_rlc_config_req (
...
@@ -1066,10 +1066,10 @@ rlc_op_status_t rrc_rlc_config_req (
if
(
ue
->
srb
[
i
]
!=
NULL
)
if
(
ue
->
srb
[
i
]
!=
NULL
)
break
;
break
;
if
(
i
==
2
)
{
if
(
i
==
2
)
{
for
(
i
=
0
;
i
<
5
;
i
++
)
for
(
i
=
0
;
i
<
MAX_DRBS_PER_UE
;
i
++
)
if
(
ue
->
drb
[
i
]
!=
NULL
)
if
(
ue
->
drb
[
i
]
!=
NULL
)
break
;
break
;
if
(
i
==
5
)
if
(
i
==
MAX_DRBS_PER_UE
)
nr_rlc_manager_remove_ue
(
nr_rlc_ue_manager
,
ctxt_pP
->
rnti
);
nr_rlc_manager_remove_ue
(
nr_rlc_ue_manager
,
ctxt_pP
->
rnti
);
}
}
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h
View file @
1893d640
...
@@ -29,7 +29,7 @@ typedef void nr_rlc_ue_manager_t;
...
@@ -29,7 +29,7 @@ typedef void nr_rlc_ue_manager_t;
typedef
struct
nr_rlc_ue_t
{
typedef
struct
nr_rlc_ue_t
{
int
rnti
;
int
rnti
;
nr_rlc_entity_t
*
srb
[
3
];
nr_rlc_entity_t
*
srb
[
3
];
nr_rlc_entity_t
*
drb
[
5
];
nr_rlc_entity_t
*
drb
[
MAX_DRBS_PER_UE
];
}
nr_rlc_ue_t
;
}
nr_rlc_ue_t
;
/***********************************************************************/
/***********************************************************************/
...
...
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