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
lizhongxiao
OpenXG-RAN
Commits
57982e79
Commit
57982e79
authored
Dec 01, 2023
by
lfq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add rnti in measurement and separate initial access 231130
parent
4e6db871
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
66 additions
and
22 deletions
+66
-22
executables/sever_manager_py.py
executables/sever_manager_py.py
+44
-7
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+6
-7
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+6
-0
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/LAYER2/NR_MAC_gNB/main.c
+1
-0
openair2/LAYER2/NR_MAC_gNB/slotmap.h
openair2/LAYER2/NR_MAC_gNB/slotmap.h
+9
-8
No files found.
executables/sever_manager_py.py
View file @
57982e79
...
...
@@ -41,14 +41,27 @@ rrc_gNB_to_UE = [
schedule_data
=
collections
.
OrderedDict
()
rrc_data
=
[]
random_access_data
=
dict
()
random_access_data
[
"msg1"
]
=
[]
random_access_data
[
"msg2"
]
=
[]
random_access_data
[
"msg3"
]
=
[]
random_access_data
[
"msg4"
]
=
[]
random_access_data
[
"msg1_frame"
]
=
0
random_access_data
[
"msg1_slot"
]
=
0
random_access_data
[
"msg2_frame"
]
=
0
random_access_data
[
"msg2_slot"
]
=
0
random_access_data
[
"msg3_frame"
]
=
0
random_access_data
[
"msg3_slot"
]
=
0
random_access_data
[
"msg4_frame"
]
=
0
random_access_data
[
"msg4_slot"
]
=
0
random_access_data
[
"rnti"
]
=
0
# 0 is first tag
schedule_data
[
"ssb"
]
=
[]
schedule_data
[
"sib1"
]
=
[]
schedule_data
[
"msg1"
]
=
[]
schedule_data
[
"msg2"
]
=
[]
schedule_data
[
"msg3"
]
=
[]
schedule_data
[
"msg4"
]
=
[]
schedule_data
[
"ssb"
]
=
[]
schedule_data
[
"sib1"
]
=
[]
schedule_data
[
"pdcch"
]
=
[]
schedule_data
[
"pdsch"
]
=
[]
schedule_data
[
"csirs"
]
=
[]
...
...
@@ -80,7 +93,7 @@ dl_recv_bytes_last = 0
ul_recv_bytes_last
=
0
frame_last
=
0
time_last
=
0
msg1_get
=
0
while
True
:
data
,
client_address
=
server_socket
.
recvfrom
(
BUFFER_SIZE
)
if
DEBUG_PRINT
:
...
...
@@ -100,8 +113,8 @@ while True:
print
(
"Send:gNB, Receive:UE(rnti:%x), RRC signaling:%s"
%
(
rnti
,
rrc_gNB_to_UE
[
rrc_signaling_type
-
1
]))
# print(rrc_data)
elif
(
message
==
3
):
dl_recv_bytes_high16
,
dl_recv_bytes_low16
,
ul_recv_bytes_high16
,
ul_recv_bytes_low16
,
\
dl_mcs
,
ul_mcs
,
dl_bler
,
ul_bler
,
pucch_snr
,
pusch_snr
,
rsrp
=
struct
.
unpack
(
"
8H3h"
,
data
[
4
:
4
+
22
])
rnti
,
dl_recv_bytes_high16
,
dl_recv_bytes_low16
,
ul_recv_bytes_high16
,
ul_recv_bytes_low16
,
\
dl_mcs
,
ul_mcs
,
dl_bler
,
ul_bler
,
pucch_snr
,
pusch_snr
,
rsrp
=
struct
.
unpack
(
"
9H3h"
,
data
[
4
:
4
+
24
])
dl_recv_bytes
=
(
dl_recv_bytes_high16
<<
16
)
+
dl_recv_bytes_low16
ul_recv_bytes
=
(
ul_recv_bytes_high16
<<
16
)
+
ul_recv_bytes_low16
if
DEBUG_PRINT
:
...
...
@@ -127,7 +140,7 @@ while True:
dl_recv_bytes_last
=
dl_recv_bytes
ul_recv_bytes_last
=
ul_recv_bytes
elif
(
message
==
2
):
CC_id
,
frame
,
slot
,
pbch_sched_flag
,
random_access_sched_flag
,
dl_sched_flag
,
ul_sched_flag
=
struct
.
unpack
(
"7H"
,
data
[
4
:
18
])
rnti
,
frame
,
slot
,
pbch_sched_flag
,
random_access_sched_flag
,
dl_sched_flag
,
ul_sched_flag
=
struct
.
unpack
(
"7H"
,
data
[
4
:
18
])
if
DEBUG_PRINT
:
print
(
"%d.%d pbch_sched_flag %x random_access_sched_flag %x dl_sched_flag %x ul_sched_flag %x"
%
(
frame
,
slot
,
pbch_sched_flag
,
random_access_sched_flag
,
dl_sched_flag
,
ul_sched_flag
))
schedule_timing
=
struct
.
unpack
(
"30H"
,
data
[
18
:
78
])
...
...
@@ -160,7 +173,31 @@ while True:
if
DEBUG_PRINT
:
print
(
schedule_data
[
map_type
])
count
=
count
+
1
if
(
random_access_sched_flag
!=
0
):
random_access_data
[
"rnti"
]
=
rnti
msg1_get
=
1
for
i
in
range
(
4
):
if
(
random_access_sched_flag
>>
(
i
+
1
))
&
1
:
random_access_data
[
"msg"
+
str
(
i
+
2
)
+
"_frame"
]
=
schedule_timing
[(
i
+
1
)
*
2
]
random_access_data
[
"msg"
+
str
(
i
+
2
)
+
"_slot"
]
=
schedule_timing
[(
i
+
1
)
*
2
+
1
]
random_access_data
[
"msg"
+
str
(
i
+
2
)]
=
schedule_data
[
"msg"
+
str
(
i
+
2
)]
count
=
0
for
time_pos
in
random_access_data
[
"msg"
+
str
(
i
+
2
)]:
time_pos
[
0
]
=
time_pos
[
0
]
+
(
280
-
random_access_data
[
"msg1_slot"
]
*
14
)
+
\
(
schedule_timing
[(
i
+
1
)
*
2
]
-
random_access_data
[
"msg1_frame"
]
-
1
)
*
280
time_pos
[
2
]
=
i
+
1
if
((
ul_sched_flag
&
0x20
)
and
msg1_get
==
0
):
random_access_data
[
"msg1_frame"
]
=
schedule_timing
[
18
]
random_access_data
[
"msg1_slot"
]
=
schedule_timing
[
19
]
random_access_data
[
"msg1"
]
=
schedule_data
[
"prach"
]
for
time_pos
in
random_access_data
[
"msg1"
]:
time_pos
[
0
]
=
time_pos
[
0
]
-
random_access_data
[
"msg1_slot"
]
*
14
time_pos
[
2
]
=
0
print
(
random_access_data
)
frame_last
=
frame
# shared_value_lock.acquire()
# socket_value = schedule_data
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
57982e79
...
...
@@ -213,7 +213,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frame, sub_frame_
memcpy
(
&
sim_socket_manager
.
vrb_map_srs_socket
,
&
gNB
->
ulprbbl
,
sizeof
(
uint16_t
)
*
RB_TOTAL_MAP_SOCKET
);
memcpy
(
&
sim_socket_manager
.
vrb_map_prach_socket
,
&
gNB
->
ulprbbl
,
sizeof
(
uint16_t
)
*
RB_TOTAL_MAP_SOCKET
);
sim_socket_manager
.
CC_id
=
CC_id
;
sim_socket_manager
.
slot
=
slot
;
sim_socket_manager
.
frame
=
frame
;
// sim_socket_manager.acknack_frame = sim_socket_manager.acknack_slot
...
...
@@ -227,7 +226,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frame, sub_frame_
if
((
slot
==
0
)
&&
(
frame
%
100
==
0
))
{
char
stats_output
[
16000
]
=
{
0
};
dump_mac_stats
(
gNB
,
stats_output
,
sizeof
(
stats_output
),
true
);
LOG_
I
(
NR_MAC
,
"Frame.Slot %d.%d
\n
%s
\n
"
,
frame
,
slot
,
stats_output
);
LOG_
D
(
NR_MAC
,
"Frame.Slot %d.%d
\n
%s
\n
"
,
frame
,
slot
,
stats_output
);
}
...
...
@@ -294,17 +293,17 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frame, sub_frame_
NR_SCHED_UNLOCK
(
&
gNB
->
sched_lock
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_OUT
);
if
(
sim_socket_manager
.
random_access_sched_flag
||
\
sim_socket_manager
.
dl_sched_flag
||
sim_socket_manager
.
ul_sched_flag
||
sim_socket_manager
.
pbch_sched_flag
){
if
(
sim_socket_manager
.
random_access_sched_flag
||
sim_socket_manager
.
dl_sched_flag
||
\
sim_socket_manager
.
ul_sched_flag
||
sim_socket_manager
.
pbch_sched_flag
){
pthread_mutex_lock
(
&
sim_mutex_socket
);
message_flag
=
2
;
// gnbSendToManager_buf = &sim_socket_manager;
sim_socket_manager
.
data_len
=
sizeof
(
sim_socket_t
);
sim_socket_manager
.
message
=
2
;
// gnbSendToManager_len = sim_socket_manager.data_len;
#if
def VRB_MAP_TEST_MANAGER
LOG_
I
(
NR_MAC
,
"data_len %d
\n
"
,
sim_socket_manager
.
data_len
);
LOG_
I
(
NR_MAC
,
"[%d.%d]pbch_sched_flag %x random_access_sched_flag %x dl_sched_flag %x ul_sched_flag %x "
#if
0
LOG_
D
(NR_MAC,"data_len %d\n", sim_socket_manager.data_len);
LOG_
D
(NR_MAC,"[%d.%d]pbch_sched_flag %x random_access_sched_flag %x dl_sched_flag %x ul_sched_flag %x "
"ssb %d.%d sib1 %d.%d msg1 %d.%d msg2 %d.%d msg3 %d.%d msg4 %d.%d pdcch %d.%d pdsch %d.%d "
"csirs %d.%d prach %d.%d ulsch %d.%d acknack %d.%d csi_report %d.%d sr %d.%d srs %d.%d\n",
sim_socket_manager.frame, sim_socket_manager.slot,sim_socket_manager.pbch_sched_flag,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
57982e79
...
...
@@ -666,6 +666,9 @@ void nr_initiate_ra_proc(module_id_t module_idP,
ra
->
Msg2_frame
=
msg2_frame
;
ra
->
Msg2_slot
=
msg2_slot
;
sim_socket_manager
.
msg1_frame
=
frameP
;
sim_socket_manager
.
msg1_slot
=
slotP
;
sim_socket_manager
.
random_access_sched_flag
|=
0x01
;
LOG_D
(
NR_MAC
,
"%s() Msg2[%04d%d] SFN/SF:%04d%d
\n
"
,
__FUNCTION__
,
ra
->
Msg2_frame
,
ra
->
Msg2_slot
,
frameP
,
slotP
);
...
...
@@ -1119,6 +1122,7 @@ static void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_f
sim_socket_manager
.
msg3_frame
=
ra
->
Msg3_frame
;
sim_socket_manager
.
msg3_slot
=
ra
->
Msg3_slot
;
sim_socket_manager
.
random_access_sched_flag
|=
0x04
;
sim_socket_manager
.
rnti
=
ra
->
rnti
;
for
(
int
i
=
0
;
i
<
ra
->
msg3_nb_rb
;
++
i
)
{
AssertFatal
(
!
(
vrb_map_UL
[
i
+
ra
->
msg3_first_rb
+
ra
->
msg3_bwp_start
]
&
mask
),
"RB %d in %4d.%2d is already taken, cannot allocate Msg3!
\n
"
,
...
...
@@ -1449,6 +1453,7 @@ static void nr_generate_Msg2(module_id_t module_idP,
sim_socket_manager
.
msg2_frame
=
frameP
;
sim_socket_manager
.
msg2_slot
=
slotP
;
sim_socket_manager
.
random_access_sched_flag
|=
0x02
;
sim_socket_manager
.
rnti
=
ra
->
rnti
;
// Mark the corresponding symbols RBs as used
fill_pdcch_vrb_map
(
nr_mac
,
CC_id
,
...
...
@@ -1916,6 +1921,7 @@ static void nr_generate_Msg4(module_id_t module_idP,
sim_socket_manager
.
pdcch_frame
=
frameP
;
sim_socket_manager
.
pdcch_slot
=
slotP
;
sim_socket_manager
.
dl_sched_flag
|=
0x10
;
sim_socket_manager
.
rnti
=
ra
->
rnti
;
// Mark the corresponding symbols and RBs as used
fill_pdcch_vrb_map
(
nr_mac
,
...
...
openair2/LAYER2/NR_MAC_gNB/main.c
View file @
57982e79
...
...
@@ -108,6 +108,7 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
message_flag
=
3
;
sim_measurement_manager
.
data_len
=
sizeof
(
sim_measurement_t
);
sim_measurement_manager
.
message
=
3
;
sim_measurement_manager
.
rnti
=
UE
->
rnti
;
sim_measurement_manager
.
dl_recv_bytes_high16
=
(
stats
->
dl
.
total_bytes
>>
16
)
&
0x0000ffff
;
sim_measurement_manager
.
dl_recv_bytes_low16
=
stats
->
dl
.
total_bytes
&
0x0000ffff
;
sim_measurement_manager
.
ul_recv_bytes_high16
=
(
stats
->
ul
.
total_bytes
>>
16
)
&
0x0000ffff
;
...
...
openair2/LAYER2/NR_MAC_gNB/slotmap.h
View file @
57982e79
...
...
@@ -17,7 +17,7 @@
typedef
struct
{
uint16_t
data_len
;
uint16_t
message
;
uint16_t
CC_id
;
uint16_t
rnti
;
uint16_t
frame
;
uint16_t
slot
;
/*LSB -> MSB : ssb || sib1*/
...
...
@@ -29,11 +29,6 @@ typedef struct {
/*LSB -> MSB : ulsch || acknack || csi-report || sr || srs || prach */
uint16_t
ul_sched_flag
;
uint16_t
ssb_frame
;
uint16_t
ssb_slot
;
uint16_t
sib1_frame
;
uint16_t
sib1_slot
;
uint16_t
msg1_frame
;
uint16_t
msg1_slot
;
uint16_t
msg2_frame
;
...
...
@@ -43,6 +38,11 @@ typedef struct {
uint16_t
msg4_frame
;
uint16_t
msg4_slot
;
uint16_t
ssb_frame
;
uint16_t
ssb_slot
;
uint16_t
sib1_frame
;
uint16_t
sib1_slot
;
uint16_t
pdcch_frame
;
uint16_t
pdcch_slot
;
uint16_t
pdsch_frame
;
...
...
@@ -63,12 +63,12 @@ typedef struct {
uint16_t
srs_frame
;
uint16_t
srs_slot
;
uint16_t
vrb_map_ssb_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_sib1_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_msg1_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_msg2_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_msg3_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_msg4_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_ssb_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_sib1_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_pdcch_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_pdsch_socket
[
RB_TOTAL_MAP_SOCKET
];
uint16_t
vrb_map_csirs_socket
[
RB_TOTAL_MAP_SOCKET
];
...
...
@@ -84,6 +84,7 @@ typedef struct {
typedef
struct
{
uint16_t
data_len
;
uint16_t
message
;
uint16_t
rnti
;
uint16_t
dl_recv_bytes_high16
;
uint16_t
dl_recv_bytes_low16
;
uint16_t
ul_recv_bytes_high16
;
...
...
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