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
94702d9e
Commit
94702d9e
authored
Dec 01, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/t-tracer-retx-dl' into integration_2021_wk48_d
parents
4be0407b
d4c4fdf7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
122 additions
and
61 deletions
+122
-61
common/utils/T/T_messages.txt
common/utils/T/T_messages.txt
+4
-0
common/utils/T/tracer/macpdu2wireshark.c
common/utils/T/tracer/macpdu2wireshark.c
+115
-61
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+3
-0
No files found.
common/utils/T/T_messages.txt
View file @
94702d9e
...
...
@@ -155,6 +155,10 @@ ID = GNB_MAC_DL_RAR_PDU_WITH_DATA
DESC = NR MAC downlink PDU for RAR
GROUP = ALL:MAC:GNB:WIRESHARK
FORMAT = int,gNB_ID : int,CC_id : int,rnti : int,frame : int,slot : int,harq_pid : buffer,data
ID = GNB_MAC_RETRANSMISSION_DL_PDU_WITH_DATA
DESC = NR MAC downlink retransmitted PDU for an UE
GROUP = ALL:MAC:GNB:WIRESHARK
FORMAT = int,gNB_ID : int,CC_id : int,rnti : int,frame : int,slot : int,harq_pid : int,round : buffer,data
#RLC logs
ID = ENB_RLC_DL
...
...
common/utils/T/tracer/macpdu2wireshark.c
View file @
94702d9e
...
...
@@ -59,12 +59,20 @@ typedef struct {
int
nr_ul_rnti
;
int
nr_ul_frame
;
int
nr_ul_slot
;
int
nr_ul_harq_pid
;
int
nr_ul_data
;
/* NR dl */
int
nr_dl_rnti
;
int
nr_dl_frame
;
int
nr_dl_slot
;
int
nr_dl_harq_pid
;
int
nr_dl_data
;
/* NR dl retx */
int
nr_dl_retx_rnti
;
int
nr_dl_retx_frame
;
int
nr_dl_retx_slot
;
int
nr_dl_retx_harq_pid
;
int
nr_dl_retx_data
;
/* NR mib */
int
nr_mib_frame
;
int
nr_mib_slot
;
...
...
@@ -254,6 +262,7 @@ void sr(void *_d, event e)
#define MAC_NR_PAYLOAD_TAG 0x01
#define MAC_NR_RNTI_TAG 0x02
#define MAC_NR_UEID_TAG 0x03
#define MAC_NR_HARQID 0x06
#define MAC_NR_FRAME_SLOT_TAG 0x07
#define NR_FDD_RADIO 1
...
...
@@ -267,7 +276,8 @@ void sr(void *_d, event e)
#define NR_C_RNTI 3
void
trace_nr
(
ev_data
*
d
,
int
direction
,
int
rnti_type
,
int
rnti
,
int
frame
,
int
slot
,
void
*
buf
,
int
bufsize
,
int
preamble
)
int
frame
,
int
slot
,
int
harq_pid
,
void
*
buf
,
int
bufsize
,
int
preamble
)
{
ssize_t
ret
;
int
i
;
...
...
@@ -307,6 +317,8 @@ void trace_nr(ev_data *d, int direction, int rnti_type, int rnti,
PUTC
(
&
d
->
buf
,
frame
&
255
);
PUTC
(
&
d
->
buf
,
(
slot
>>
8
)
&
255
);
PUTC
(
&
d
->
buf
,
slot
&
255
);
PUTC
(
&
d
->
buf
,
MAC_NR_HARQID
);
PUTC
(
&
d
->
buf
,
harq_pid
);
#endif
PUTC
(
&
d
->
buf
,
MAC_NR_PAYLOAD_TAG
);
...
...
@@ -326,7 +338,8 @@ void nr_ul(void *_d, event e)
trace_nr
(
d
,
NR_DIRECTION_UPLINK
,
NR_C_RNTI
,
e
.
e
[
d
->
nr_ul_rnti
].
i
,
e
.
e
[
d
->
nr_ul_frame
].
i
,
e
.
e
[
d
->
nr_ul_slot
].
i
,
e
.
e
[
d
->
nr_ul_data
].
b
,
e
.
e
[
d
->
nr_ul_data
].
bsize
,
NO_PREAMBLE
);
e
.
e
[
d
->
nr_ul_harq_pid
].
i
,
e
.
e
[
d
->
nr_ul_data
].
b
,
e
.
e
[
d
->
nr_ul_data
].
bsize
,
NO_PREAMBLE
);
}
void
nr_dl
(
void
*
_d
,
event
e
)
...
...
@@ -335,7 +348,18 @@ void nr_dl(void *_d, event e)
trace_nr
(
d
,
NR_DIRECTION_DOWNLINK
,
NR_C_RNTI
,
e
.
e
[
d
->
nr_dl_rnti
].
i
,
e
.
e
[
d
->
nr_dl_frame
].
i
,
e
.
e
[
d
->
nr_dl_slot
].
i
,
e
.
e
[
d
->
nr_dl_data
].
b
,
e
.
e
[
d
->
nr_dl_data
].
bsize
,
NO_PREAMBLE
);
e
.
e
[
d
->
nr_dl_harq_pid
].
i
,
e
.
e
[
d
->
nr_dl_data
].
b
,
e
.
e
[
d
->
nr_dl_data
].
bsize
,
NO_PREAMBLE
);
}
void
nr_dl_retx
(
void
*
_d
,
event
e
)
{
ev_data
*
d
=
_d
;
trace_nr
(
d
,
NR_DIRECTION_DOWNLINK
,
NR_C_RNTI
,
e
.
e
[
d
->
nr_dl_retx_rnti
].
i
,
e
.
e
[
d
->
nr_dl_retx_frame
].
i
,
e
.
e
[
d
->
nr_dl_retx_slot
].
i
,
e
.
e
[
d
->
nr_dl_retx_harq_pid
].
i
,
e
.
e
[
d
->
nr_dl_retx_data
].
b
,
e
.
e
[
d
->
nr_dl_retx_data
].
bsize
,
NO_PREAMBLE
);
}
void
nr_mib
(
void
*
_d
,
event
e
)
...
...
@@ -349,7 +373,7 @@ void nr_mib(void *_d, event e)
d
->
cur_mib
++
;
trace_nr
(
d
,
NR_DIRECTION_DOWNLINK
,
NR_NO_RNTI
,
0
,
e
.
e
[
d
->
nr_mib_frame
].
i
,
e
.
e
[
d
->
nr_mib_slot
].
i
,
e
.
e
[
d
->
nr_mib_frame
].
i
,
e
.
e
[
d
->
nr_mib_slot
].
i
,
0
/* harq pid */
,
e
.
e
[
d
->
nr_mib_data
].
b
,
e
.
e
[
d
->
nr_mib_data
].
bsize
,
NO_PREAMBLE
);
}
...
...
@@ -358,7 +382,7 @@ void nr_rar(void *_d, event e)
ev_data
*
d
=
_d
;
trace_nr
(
d
,
NR_DIRECTION_DOWNLINK
,
NR_RA_RNTI
,
e
.
e
[
d
->
nr_rar_rnti
].
i
,
e
.
e
[
d
->
nr_rar_frame
].
i
,
e
.
e
[
d
->
nr_rar_slot
].
i
,
e
.
e
[
d
->
nr_rar_frame
].
i
,
e
.
e
[
d
->
nr_rar_slot
].
i
,
0
/* harq pid */
,
e
.
e
[
d
->
nr_rar_data
].
b
,
e
.
e
[
d
->
nr_rar_data
].
bsize
,
NO_PREAMBLE
);
}
...
...
@@ -367,47 +391,55 @@ void nr_rar(void *_d, event e)
void
setup_data
(
ev_data
*
d
,
void
*
database
,
int
ul_id
,
int
dl_id
,
int
mib_id
,
int
preamble_id
,
int
rar_id
,
int
sr_id
,
int
nr_ul_id
,
int
nr_dl_id
,
int
nr_mib_id
,
int
nr_rar_id
)
int
nr_ul_id
,
int
nr_dl_id
,
int
nr_dl_retx_id
,
int
nr_mib_id
,
int
nr_rar_id
)
{
database_event_format
f
;
int
i
;
d
->
ul_rnti
=
-
1
;
d
->
ul_frame
=
-
1
;
d
->
ul_subframe
=
-
1
;
d
->
ul_data
=
-
1
;
d
->
dl_rnti
=
-
1
;
d
->
dl_frame
=
-
1
;
d
->
dl_subframe
=
-
1
;
d
->
dl_data
=
-
1
;
d
->
mib_frame
=
-
1
;
d
->
mib_subframe
=
-
1
;
d
->
mib_data
=
-
1
;
d
->
preamble_frame
=
-
1
;
d
->
preamble_subframe
=
-
1
;
d
->
preamble_preamble
=
-
1
;
d
->
rar_rnti
=
-
1
;
d
->
rar_frame
=
-
1
;
d
->
rar_subframe
=
-
1
;
d
->
rar_data
=
-
1
;
d
->
sr_rnti
=
-
1
;
d
->
sr_frame
=
-
1
;
d
->
sr_subframe
=
-
1
;
d
->
nr_ul_rnti
=
-
1
;
d
->
nr_ul_frame
=
-
1
;
d
->
nr_ul_slot
=
-
1
;
d
->
nr_ul_data
=
-
1
;
d
->
nr_dl_rnti
=
-
1
;
d
->
nr_dl_frame
=
-
1
;
d
->
nr_dl_slot
=
-
1
;
d
->
nr_dl_data
=
-
1
;
d
->
nr_mib_frame
=
-
1
;
d
->
nr_mib_slot
=
-
1
;
d
->
nr_mib_data
=
-
1
;
d
->
nr_rar_rnti
=
-
1
;
d
->
nr_rar_frame
=
-
1
;
d
->
nr_rar_slot
=
-
1
;
d
->
nr_rar_data
=
-
1
;
d
->
ul_rnti
=
-
1
;
d
->
ul_frame
=
-
1
;
d
->
ul_subframe
=
-
1
;
d
->
ul_data
=
-
1
;
d
->
dl_rnti
=
-
1
;
d
->
dl_frame
=
-
1
;
d
->
dl_subframe
=
-
1
;
d
->
dl_data
=
-
1
;
d
->
mib_frame
=
-
1
;
d
->
mib_subframe
=
-
1
;
d
->
mib_data
=
-
1
;
d
->
preamble_frame
=
-
1
;
d
->
preamble_subframe
=
-
1
;
d
->
preamble_preamble
=
-
1
;
d
->
rar_rnti
=
-
1
;
d
->
rar_frame
=
-
1
;
d
->
rar_subframe
=
-
1
;
d
->
rar_data
=
-
1
;
d
->
sr_rnti
=
-
1
;
d
->
sr_frame
=
-
1
;
d
->
sr_subframe
=
-
1
;
d
->
nr_ul_rnti
=
-
1
;
d
->
nr_ul_frame
=
-
1
;
d
->
nr_ul_slot
=
-
1
;
d
->
nr_ul_harq_pid
=
-
1
;
d
->
nr_ul_data
=
-
1
;
d
->
nr_dl_rnti
=
-
1
;
d
->
nr_dl_frame
=
-
1
;
d
->
nr_dl_slot
=
-
1
;
d
->
nr_dl_harq_pid
=
-
1
;
d
->
nr_dl_data
=
-
1
;
d
->
nr_dl_retx_rnti
=
-
1
;
d
->
nr_dl_retx_frame
=
-
1
;
d
->
nr_dl_retx_slot
=
-
1
;
d
->
nr_dl_retx_harq_pid
=
-
1
;
d
->
nr_dl_retx_data
=
-
1
;
d
->
nr_mib_frame
=
-
1
;
d
->
nr_mib_slot
=
-
1
;
d
->
nr_mib_data
=
-
1
;
d
->
nr_rar_rnti
=
-
1
;
d
->
nr_rar_frame
=
-
1
;
d
->
nr_rar_slot
=
-
1
;
d
->
nr_rar_data
=
-
1
;
#define G(var_name, var_type, var) \
if (!strcmp(f.name[i], var_name)) { \
...
...
@@ -490,32 +522,50 @@ void setup_data(ev_data *d, void *database, int ul_id, int dl_id, int mib_id,
if
(
d
->
sr_rnti
==
-
1
||
d
->
sr_frame
==
-
1
||
d
->
sr_subframe
==
-
1
)
goto
error
;
/* NR ul: rnti, frame, slot, data */
/* NR ul: rnti, frame, slot,
harq_pid,
data */
f
=
get_format
(
database
,
nr_ul_id
);
for
(
i
=
0
;
i
<
f
.
count
;
i
++
)
{
G
(
"rnti"
,
"int"
,
d
->
nr_ul_rnti
);
G
(
"frame"
,
"int"
,
d
->
nr_ul_frame
);
G
(
"slot"
,
"int"
,
d
->
nr_ul_slot
);
G
(
"data"
,
"buffer"
,
d
->
nr_ul_data
);
G
(
"rnti"
,
"int"
,
d
->
nr_ul_rnti
);
G
(
"frame"
,
"int"
,
d
->
nr_ul_frame
);
G
(
"slot"
,
"int"
,
d
->
nr_ul_slot
);
G
(
"harq_pid"
,
"int"
,
d
->
nr_ul_harq_pid
);
G
(
"data"
,
"buffer"
,
d
->
nr_ul_data
);
}
if
(
d
->
nr_ul_rnti
==
-
1
||
d
->
nr_ul_frame
==
-
1
||
d
->
nr_ul_slot
==
-
1
||
d
->
nr_ul_data
==
-
1
)
d
->
nr_ul_
harq_pid
==
-
1
||
d
->
nr_ul_
data
==
-
1
)
goto
error
;
/* NR dl: rnti, frame, slot, data */
/* NR dl: rnti, frame, slot,
harq_pid,
data */
f
=
get_format
(
database
,
nr_dl_id
);
for
(
i
=
0
;
i
<
f
.
count
;
i
++
)
{
G
(
"rnti"
,
"int"
,
d
->
nr_dl_rnti
);
G
(
"frame"
,
"int"
,
d
->
nr_dl_frame
);
G
(
"slot"
,
"int"
,
d
->
nr_dl_slot
);
G
(
"data"
,
"buffer"
,
d
->
nr_dl_data
);
G
(
"rnti"
,
"int"
,
d
->
nr_dl_rnti
);
G
(
"frame"
,
"int"
,
d
->
nr_dl_frame
);
G
(
"slot"
,
"int"
,
d
->
nr_dl_slot
);
G
(
"harq_pid"
,
"int"
,
d
->
nr_dl_harq_pid
);
G
(
"data"
,
"buffer"
,
d
->
nr_dl_data
);
}
if
(
d
->
nr_dl_rnti
==
-
1
||
d
->
nr_dl_frame
==
-
1
||
d
->
nr_dl_slot
==
-
1
||
d
->
nr_dl_data
==
-
1
)
d
->
nr_dl_harq_pid
==
-
1
||
d
->
nr_dl_data
==
-
1
)
goto
error
;
/* NR dl retx: rnti, frame, slot, harq_pid, data */
f
=
get_format
(
database
,
nr_dl_retx_id
);
for
(
i
=
0
;
i
<
f
.
count
;
i
++
)
{
G
(
"rnti"
,
"int"
,
d
->
nr_dl_retx_rnti
);
G
(
"frame"
,
"int"
,
d
->
nr_dl_retx_frame
);
G
(
"slot"
,
"int"
,
d
->
nr_dl_retx_slot
);
G
(
"harq_pid"
,
"int"
,
d
->
nr_dl_retx_harq_pid
);
G
(
"data"
,
"buffer"
,
d
->
nr_dl_retx_data
);
}
if
(
d
->
nr_dl_retx_rnti
==
-
1
||
d
->
nr_dl_retx_frame
==
-
1
||
d
->
nr_dl_retx_slot
==
-
1
||
d
->
nr_dl_retx_harq_pid
==
-
1
||
d
->
nr_dl_retx_data
==
-
1
)
goto
error
;
/* NR MIB: frame, slot, data */
...
...
@@ -612,7 +662,7 @@ int main(int n, char **v)
int
in
;
int
i
;
int
ul_id
,
dl_id
,
mib_id
,
preamble_id
,
rar_id
;
int
nr_ul_id
,
nr_dl_id
,
nr_mib_id
,
nr_rar_id
;
int
nr_ul_id
,
nr_dl_id
,
nr_
dl_retx_id
,
nr_
mib_id
,
nr_rar_id
;
int
sr_id
;
ev_data
d
;
char
*
ip
=
DEFAULT_IP
;
...
...
@@ -692,6 +742,7 @@ int main(int n, char **v)
on_off
(
database
,
"GNB_MAC_UL_PDU_WITH_DATA"
,
is_on
,
1
);
on_off
(
database
,
"GNB_MAC_DL_PDU_WITH_DATA"
,
is_on
,
1
);
on_off
(
database
,
"GNB_MAC_RETRANSMISSION_DL_PDU_WITH_DATA"
,
is_on
,
1
);
on_off
(
database
,
"GNB_PHY_MIB"
,
is_on
,
1
);
on_off
(
database
,
"GNB_MAC_DL_RAR_PDU_WITH_DATA"
,
is_on
,
1
);
...
...
@@ -715,11 +766,12 @@ int main(int n, char **v)
nr_ul_id
=
event_id_from_name
(
database
,
"GNB_MAC_UL_PDU_WITH_DATA"
);
nr_dl_id
=
event_id_from_name
(
database
,
"GNB_MAC_DL_PDU_WITH_DATA"
);
nr_dl_retx_id
=
event_id_from_name
(
database
,
"GNB_MAC_RETRANSMISSION_DL_PDU_WITH_DATA"
);
nr_mib_id
=
event_id_from_name
(
database
,
"GNB_PHY_MIB"
);
nr_rar_id
=
event_id_from_name
(
database
,
"GNB_MAC_DL_RAR_PDU_WITH_DATA"
);
setup_data
(
&
d
,
database
,
ul_id
,
dl_id
,
mib_id
,
preamble_id
,
rar_id
,
sr_id
,
nr_ul_id
,
nr_dl_id
,
nr_mib_id
,
nr_rar_id
);
nr_ul_id
,
nr_dl_id
,
nr_
dl_retx_id
,
nr_
mib_id
,
nr_rar_id
);
register_handler_function
(
h
,
ul_id
,
ul
,
&
d
);
register_handler_function
(
h
,
dl_id
,
dl
,
&
d
);
...
...
@@ -730,6 +782,7 @@ int main(int n, char **v)
register_handler_function
(
h
,
nr_ul_id
,
nr_ul
,
&
d
);
register_handler_function
(
h
,
nr_dl_id
,
nr_dl
,
&
d
);
register_handler_function
(
h
,
nr_dl_retx_id
,
nr_dl_retx
,
&
d
);
register_handler_function
(
h
,
nr_mib_id
,
nr_mib
,
&
d
);
register_handler_function
(
h
,
nr_rar_id
,
nr_rar
,
&
d
);
...
...
@@ -753,10 +806,11 @@ int main(int n, char **v)
if
(
e
.
type
==
-
1
)
break
;
if
(
!
(
e
.
type
==
ul_id
||
e
.
type
==
dl_id
||
e
.
type
==
mib_id
||
e
.
type
==
preamble_id
||
e
.
type
==
rar_id
||
e
.
type
==
sr_id
||
e
.
type
==
nr_ul_id
||
e
.
type
==
nr_dl_id
||
e
.
type
==
nr_mib_id
||
e
.
type
==
nr_rar_id
))
continue
;
if
(
!
(
e
.
type
==
ul_id
||
e
.
type
==
dl_id
||
e
.
type
==
mib_id
||
e
.
type
==
preamble_id
||
e
.
type
==
rar_id
||
e
.
type
==
sr_id
||
e
.
type
==
nr_ul_id
||
e
.
type
==
nr_dl_id
||
e
.
type
==
nr_dl_retx_id
||
e
.
type
==
nr_mib_id
||
e
.
type
==
nr_rar_id
))
continue
;
handle_event
(
h
,
e
);
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
94702d9e
...
...
@@ -1198,6 +1198,9 @@ void nr_schedule_ue_spec(module_id_t module_id,
"UE %d mismatch between scheduled TBS and buffered TB for HARQ PID %d
\n
"
,
UE_id
,
current_harq_pid
);
T
(
T_GNB_MAC_RETRANSMISSION_DL_PDU_WITH_DATA
,
T_INT
(
module_id
),
T_INT
(
CC_id
),
T_INT
(
rnti
),
T_INT
(
frame
),
T_INT
(
slot
),
T_INT
(
current_harq_pid
),
T_INT
(
harq
->
round
),
T_BUFFER
(
harq
->
tb
,
TBS
));
}
else
{
/* initial transmission */
LOG_D
(
NR_MAC
,
"[%s] Initial HARQ transmission in %d.%d
\n
"
,
__FUNCTION__
,
frame
,
slot
);
...
...
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