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
wangjie
OpenXG-RAN
Commits
92e89fa4
Commit
92e89fa4
authored
Nov 19, 2019
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RLC TRACE, optimize log display
parent
43b08e7b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
27 additions
and
25 deletions
+27
-25
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
+4
-4
openair2/LAYER2/MAC/output_handler_NB_IoT.c
openair2/LAYER2/MAC/output_handler_NB_IoT.c
+1
-1
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
+2
-0
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
+20
-20
No files found.
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
View file @
92e89fa4
...
...
@@ -1651,11 +1651,11 @@ uint32_t turbo_decoding_NB_IoT(PHY_VARS_eNB *eNB,
fill_crc_indication_NB_IoT
(
eNB
,
0
,
rx_frame
,
rx_subframe
,
1
);
// indicate ACK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
1
);
printf
(
"
MSG3 OK
"
);
printf
(
"
NPUSCH OK
\n
"
);
}
else
{
fill_crc_indication_NB_IoT
(
eNB
,
0
,
rx_frame
,
rx_subframe
,
0
);
// indicate NAK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
0
);
printf
(
"
MSG3 NOT OK
"
);
printf
(
"
NPSUCH NOT OK
\n
"
);
}
}
//////////// r loop end ////////////
...
...
@@ -1794,13 +1794,13 @@ void decode_NPUSCH_msg_NB_IoT(PHY_VARS_eNB *eNB,
{
//fill_crc_indication_NB_IoT(eNB,0,rx_frame,rx_subframe,1); // indicate ACK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
1
);
printf
(
" decoded
msg5: ACK
"
);
printf
(
" decoded
ACK of msg4: ACK
\n
"
);
}
else
if
(
counter_ack
<
8
)
{
//hard decision
//fill_crc_indication_NB_IoT(eNB,0,rx_frame,rx_subframe,0); // indicate NAK to MAC
fill_rx_indication_NB_IoT
(
eNB
,
proc
,
npusch_format
,
0
);
printf
(
" decoded
msg5: NACK
"
);
printf
(
" decoded
ACK of msg4: NACK
\n
"
);
}
else
{
//when equality (8 bits 0 vs 8 bits 1), soft decision
...
...
openair2/LAYER2/MAC/output_handler_NB_IoT.c
View file @
92e89fa4
...
...
@@ -110,7 +110,7 @@ int output_handler(eNB_MAC_INST_NB_IoT *mac_inst, module_id_t module_id, int CC_
else
if
(
SIB1_flag
==
1
)
// SIB1 flag, calculated by scheduler
{
// get SIB1 PDU from carrier and updated by time
uint8_t
*
SIB1_pdu
=
get_NB_IoT_SIB1
(
0
,
0
,
carrier
,
208
,
9
2
,
1
,
3584
,
28
,
2
,
subframe
,
frame
,
hypersfn
);
uint8_t
*
SIB1_pdu
=
get_NB_IoT_SIB1
(
0
,
0
,
carrier
,
208
,
9
3
,
1
,
3584
,
28
,
2
,
subframe
,
frame
,
hypersfn
);
// get the size of SIB1
SIB1_size
=
get_NB_IoT_SIB1_size
();
dl_config_pdu
=
SCHED_info
->
DL_req
->
dl_config_request_body
.
dl_config_pdu_list
;
...
...
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
View file @
92e89fa4
...
...
@@ -455,6 +455,7 @@ rlc_am_get_pdus (
// THEN TRY TO SEND RETRANS PDU
if
((
rlc_pP
->
retrans_num_bytes_to_retransmit
)
&&
(
rlc_pP
->
nb_bytes_requested_by_mac
>
2
))
{
LOG_I
(
RLC
,
"[NB-IoT] RLC SEND RETRANS DATA PDU
\n
"
);
/* Get 1 AM data PDU or PDU segment to retransmit */
mem_block_t
*
pdu_retx
=
rlc_am_get_pdu_to_retransmit
(
ctxt_pP
,
rlc_pP
);
...
...
@@ -468,6 +469,7 @@ rlc_am_get_pdus (
// THEN TRY TO SEND NEW DATA PDU
if
((
rlc_pP
->
nb_bytes_requested_by_mac
>
2
)
&&
(
rlc_pP
->
sdu_buffer_occupancy
)
&&
(
rlc_pP
->
vt_s
!=
rlc_pP
->
vt_ms
))
{
LOG_I
(
RLC
,
"[NB-IoT] RLC SEND NEW DATA PDU
\n
"
);
rlc_am_segment_10
(
ctxt_pP
,
rlc_pP
);
list_add_list
(
&
rlc_pP
->
segmentation_pdu_list
,
&
rlc_pP
->
pdus_to_mac_layer
);
...
...
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c
View file @
92e89fa4
...
...
@@ -159,7 +159,7 @@ void rlc_am_segment_10 (
unsigned
int
fi
=
0
;
signed
int
max_li_overhead
=
0
;
LOG_
T
(
RLC
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] rlc_pP->current_sdu_index %d rlc_pP->next_sdu_index %d rlc_pP->input_sdus[rlc_pP->current_sdu_index].mem_block %p sdu_buffer_occupancy %d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
rlc_pP
->
current_sdu_index
,
...
...
@@ -179,7 +179,7 @@ void rlc_am_segment_10 (
RLC_AM_MUTEX_LOCK
(
&
rlc_pP
->
lock_input_sdus
,
ctxt_pP
,
rlc_pP
);
while
((
rlc_pP
->
input_sdus
[
rlc_pP
->
current_sdu_index
].
mem_block
)
&&
(
nb_bytes_to_transmit
>
0
)
)
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] nb_bytes_to_transmit %d BO %d
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] nb_bytes_to_transmit %d BO %d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
nb_bytes_to_transmit
,
rlc_pP
->
sdu_buffer_occupancy
);
...
...
@@ -194,30 +194,30 @@ void rlc_am_segment_10 (
max_li_overhead
=
test_num_li
+
(
test_num_li
>>
1
)
+
(
test_num_li
&
1
);
}
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] max_li_overhead %d
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] max_li_overhead %d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
max_li_overhead
);
if
(
nb_bytes_to_transmit
>=
(
rlc_pP
->
sdu_buffer_occupancy
+
RLC_AM_HEADER_MIN_SIZE
+
max_li_overhead
))
{
data_pdu_size
=
rlc_pP
->
sdu_buffer_occupancy
+
RLC_AM_HEADER_MIN_SIZE
+
max_li_overhead
;
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] alloc PDU size %d bytes to contain not all bytes requested by MAC but all BO of RLC@1
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] alloc PDU size %d bytes to contain not all bytes requested by MAC but all BO of RLC@1
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
data_pdu_size
);
}
else
{
data_pdu_size
=
nb_bytes_to_transmit
;
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] alloc PDU size %d bytes to contain all bytes requested by MAC@1
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] alloc PDU size %d bytes to contain all bytes requested by MAC@1
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
data_pdu_size
);
}
if
(
!
(
pdu_mem_p
=
get_free_mem_block
(
data_pdu_size
+
sizeof
(
struct
mac_tb_req
),
__func__
)))
{
LOG_
C
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
));
RLC_AM_MUTEX_UNLOCK
(
&
rlc_pP
->
lock_input_sdus
);
return
;
}
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] get new PDU %d bytes
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] get new PDU %d bytes
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
data_pdu_size
);
pdu_remaining_size
=
data_pdu_size
-
RLC_AM_HEADER_MIN_SIZE
;
...
...
@@ -285,7 +285,7 @@ void rlc_am_segment_10 (
test_li_length_in_bytes
=
test_li_length_in_bytes
^
3
;
}
}
else
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] sdu_mngt_p->sdu_remaining_size=%d test_pdu_remaining_size=%d test_li_length_in_bytes=%d
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] sdu_mngt_p->sdu_remaining_size=%d test_pdu_remaining_size=%d test_li_length_in_bytes=%d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
->
sdu_remaining_size
,
test_pdu_remaining_size
,
...
...
@@ -314,7 +314,7 @@ void rlc_am_segment_10 (
//----------------------------------------
// Do the real filling of the pdu_p
//----------------------------------------
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
" data shift %d Bytes num_li %d
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
" data shift %d Bytes num_li %d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
((
test_num_li
*
3
)
+
1
)
>>
1
,
test_num_li
);
...
...
@@ -336,12 +336,12 @@ void rlc_am_segment_10 (
sdu_mngt_p
=
&
rlc_pP
->
input_sdus
[
rlc_pP
->
current_sdu_index
];
if
(
sdu_mngt_p
->
sdu_segmented_size
==
0
)
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] GET NEW SDU %p AVAILABLE SIZE %d Bytes
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] GET NEW SDU %p AVAILABLE SIZE %d Bytes
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
,
sdu_mngt_p
->
sdu_remaining_size
);
}
else
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] GET AGAIN SDU %p REMAINING AVAILABLE SIZE %d Bytes / %d Bytes LENGTH
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] GET AGAIN SDU %p REMAINING AVAILABLE SIZE %d Bytes / %d Bytes LENGTH
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
,
sdu_mngt_p
->
sdu_remaining_size
,
...
...
@@ -351,7 +351,7 @@ void rlc_am_segment_10 (
data_sdu_p
=
&
sdu_mngt_p
->
first_byte
[
sdu_mngt_p
->
sdu_segmented_size
];
if
(
sdu_mngt_p
->
sdu_remaining_size
>
pdu_remaining_size
)
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Filling all remaining PDU with %d bytes
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Filling all remaining PDU with %d bytes
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
pdu_remaining_size
);
//msg ("[FRAME %05d][%s][RLC_AM][MOD %u/%u][RB %u][SEGMENT] pdu_mem_p %p pdu_p %p pdu_p->data %p data %p data_sdu_p %p pdu_remaining_size %d\n", rlc_pP->module_id, rlc_pP->rb_id, ctxt_pP->frame, pdu_mem_p, pdu_p, pdu_p->data, data, data_sdu_p,pdu_remaining_size);
...
...
@@ -365,12 +365,12 @@ void rlc_am_segment_10 (
rlc_pP
->
sdu_buffer_occupancy
-=
pdu_remaining_size
;
continue_fill_pdu_with_sdu
=
0
;
pdu_remaining_size
=
0
;
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] sdu_remaining_size %d bytes sdu_segmented_size %d bytes
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] sdu_remaining_size %d bytes sdu_segmented_size %d bytes
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
->
sdu_remaining_size
,
sdu_mngt_p
->
sdu_segmented_size
);
}
else
if
(
sdu_mngt_p
->
sdu_remaining_size
==
pdu_remaining_size
)
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Exactly Filling remaining PDU with %d remaining bytes of SDU
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Exactly Filling remaining PDU with %d remaining bytes of SDU
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
pdu_remaining_size
);
memcpy
(
data
,
data_sdu_p
,
pdu_remaining_size
);
...
...
@@ -390,7 +390,7 @@ void rlc_am_segment_10 (
pdu_remaining_size
=
0
;
}
else
if
((
sdu_mngt_p
->
sdu_remaining_size
+
(
li_length_in_bytes
^
3
))
<
pdu_remaining_size
)
{
if
(
fill_num_li
==
(
RLC_AM_MAX_SDU_IN_PDU
-
1
))
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] [SIZE %d] REACHING RLC_AM_MAX_SDU_IN_PDU LIs -> STOP SEGMENTATION FOR THIS PDU SDU
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] [SIZE %d] REACHING RLC_AM_MAX_SDU_IN_PDU LIs -> STOP SEGMENTATION FOR THIS PDU SDU
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
->
sdu_remaining_size
);
memcpy
(
data
,
data_sdu_p
,
sdu_mngt_p
->
sdu_remaining_size
);
...
...
@@ -407,7 +407,7 @@ void rlc_am_segment_10 (
continue_fill_pdu_with_sdu
=
0
;
fi_last_byte_pdu_is_last_byte_sdu
=
1
;
}
else
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Filling PDU with %d all remaining bytes of SDU
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Filling PDU with %d all remaining bytes of SDU
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
->
sdu_remaining_size
);
memcpy
(
data
,
data_sdu_p
,
sdu_mngt_p
->
sdu_remaining_size
);
...
...
@@ -428,7 +428,7 @@ void rlc_am_segment_10 (
//e_li_p->li1 = sdu_mngt_p->sdu_remaining_size;
e_li_p
->
b1
=
e_li_p
->
b1
|
(
sdu_mngt_p
->
sdu_remaining_size
>>
4
);
e_li_p
->
b2
=
sdu_mngt_p
->
sdu_remaining_size
<<
4
;
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] set e_li_p->b1=0x%02X set e_li_p->b2=0x%02X fill_num_li=%d test_num_li=%d
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] set e_li_p->b1=0x%02X set e_li_p->b2=0x%02X fill_num_li=%d test_num_li=%d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
e_li_p
->
b1
,
e_li_p
->
b2
,
...
...
@@ -443,7 +443,7 @@ void rlc_am_segment_10 (
//e_li_p->li2 = sdu_mngt_p->sdu_remaining_size;
e_li_p
->
b2
=
e_li_p
->
b2
|
(
sdu_mngt_p
->
sdu_remaining_size
>>
8
);
e_li_p
->
b3
=
sdu_mngt_p
->
sdu_remaining_size
&
0xFF
;
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] set e_li_p->b2=0x%02X set e_li_p->b3=0x%02X fill_num_li=%d test_num_li=%d
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] set e_li_p->b2=0x%02X set e_li_p->b3=0x%02X fill_num_li=%d test_num_li=%d
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
e_li_p
->
b2
,
e_li_p
->
b3
,
...
...
@@ -464,7 +464,7 @@ void rlc_am_segment_10 (
rlc_pP
->
current_sdu_index
=
(
rlc_pP
->
current_sdu_index
+
1
)
%
RLC_AM_SDU_CONTROL_BUFFER_SIZE
;
}
}
else
{
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Filling PDU with %d all remaining bytes of SDU and reduce TB size by %d bytes
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] Filling PDU with %d all remaining bytes of SDU and reduce TB size by %d bytes
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
sdu_mngt_p
->
sdu_remaining_size
,
pdu_remaining_size
-
sdu_mngt_p
->
sdu_remaining_size
);
...
...
@@ -505,7 +505,7 @@ void rlc_am_segment_10 (
RLC_AM_PDU_SET_E
(
pdu_p
->
b1
);
}
LOG_
T
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] SEND PDU SN %04d SIZE %d BYTES PAYLOAD SIZE %d BYTES
\n
"
,
LOG_
W
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[SEGMENT] SEND PDU SN %04d SIZE %d BYTES PAYLOAD SIZE %d BYTES
\n
"
,
PROTOCOL_RLC_AM_CTXT_ARGS
(
ctxt_pP
,
rlc_pP
),
rlc_pP
->
vt_s
,
data_pdu_size
-
pdu_remaining_size
,
...
...
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