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
zzha zzha
OpenXG-RAN
Commits
ac99fc2e
Commit
ac99fc2e
authored
Oct 10, 2014
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@5860
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
9dd101e3
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
34 additions
and
25 deletions
+34
-25
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+2
-2
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+4
-4
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+9
-5
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+7
-2
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+10
-10
openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
+2
-2
No files found.
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
ac99fc2e
...
...
@@ -92,7 +92,7 @@ void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP,un
if
(
RA_template
[
i
].
RA_active
==
TRUE
)
{
LOG_
I
(
MAC
,
"[eNB %d][RAPROC] RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][RAPROC] RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)
\n
"
,
module_idP
,
i
,
RA_template
[
i
].
generate_rar
,
RA_template
[
i
].
generate_Msg4
,
RA_template
[
i
].
wait_ack_Msg4
,
RA_template
[
i
].
rnti
);
if
(
RA_template
[
i
].
generate_rar
==
1
)
{
...
...
@@ -121,7 +121,7 @@ void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP,un
}
}
LOG_
I
(
MAC
,
"[eNB %d][RAPROC] Frame %d, subframeP %d: UE_id %d, Is_rrc_registered %d, rrc_sdu_length %d
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][RAPROC] Frame %d, subframeP %d: UE_id %d, Is_rrc_registered %d, rrc_sdu_length %d
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
Is_rrc_registered
,
rrc_sdu_length
);
if
(
rrc_sdu_length
>
0
)
{
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
ac99fc2e
...
...
@@ -165,7 +165,7 @@ unsigned char generate_dlsch_header(unsigned char *mac_header,
// msg("last_size %d,mac_header_ptr %p\n",last_size,mac_header_ptr);
((
TIMING_ADVANCE_CMD
*
)
ce_ptr
)
->
R
=
0
;
((
TIMING_ADVANCE_CMD
*
)
ce_ptr
)
->
TA
=
(
timing_advance_cmd
+
31
)
&
0x3f
;
LOG_
I
(
MAC
,
"timing advance =%d (%d)
\n
"
,
timing_advance_cmd
,((
TIMING_ADVANCE_CMD
*
)
ce_ptr
)
->
TA
);
LOG_
D
(
MAC
,
"timing advance =%d (%d)
\n
"
,
timing_advance_cmd
,((
TIMING_ADVANCE_CMD
*
)
ce_ptr
)
->
TA
);
ce_ptr
+=
sizeof
(
TIMING_ADVANCE_CMD
);
//msg("offset %d\n",ce_ptr-mac_header_control_elements);
}
...
...
@@ -815,7 +815,7 @@ void schedule_ue_spec(module_id_t module_idP,
if
(
rlc_status
.
bytes_in_buffer
>
0
)
{
LOG_
I
(
MAC
,
"[eNB %d][USER-PLANE DEFAULT DRB], Frame %d, DTCH->DLSCH, Requesting %d bytes from RLC (hdr len dtch %d)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][USER-PLANE DEFAULT DRB], Frame %d, DTCH->DLSCH, Requesting %d bytes from RLC (hdr len dtch %d)
\n
"
,
module_idP
,
frameP
,
TBS
-
header_len_dcch
-
sdu_length_total
-
header_len_dtch
,
header_len_dtch
);
sdu_lengths
[
num_sdus
]
=
mac_rlc_data_req
(
module_idP
,
...
...
@@ -826,7 +826,7 @@ void schedule_ue_spec(module_id_t module_idP,
DTCH
,
(
char
*
)
&
dlsch_buffer
[
sdu_length_total
]);
LOG_
I
(
MAC
,
"[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d
\n
"
,
module_idP
,
sdu_lengths
[
num_sdus
],
DTCH
);
LOG_
D
(
MAC
,
"[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d
\n
"
,
module_idP
,
sdu_lengths
[
num_sdus
],
DTCH
);
sdu_lcids
[
num_sdus
]
=
DTCH
;
sdu_length_total
+=
sdu_lengths
[
num_sdus
];
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
num_pdu_tx
[
DTCH
]
+=
1
;
...
...
@@ -954,7 +954,7 @@ void schedule_ue_spec(module_id_t module_idP,
padding
,
post_padding
);
//#ifdef DEBUG_eNB_SCHEDULER
LOG_
I
(
MAC
,
"[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d
\n
"
,
module_idP
,
frameP
,
UE_id
,
CC_id
,
sdu_length_total
,
num_sdus
,
sdu_lengths
[
0
],
sdu_lcids
[
0
],
offset
,
ta_len
,
padding
,
post_padding
,
mcs
,
TBS
,
nb_rb
,
header_len_dcch
,
header_len_dtch
);
//#endif
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
ac99fc2e
...
...
@@ -579,14 +579,18 @@ void schedule_ulsch_rnti(module_id_t module_idP,
int
rvidx_tab
[
4
]
=
{
0
,
2
,
3
,
1
};
LTE_DL_FRAME_PARMS
*
frame_parms
;
LOG_D
(
MAC
,
"entering ulsch preprocesor
\n
"
);
// LOG_I(MAC,"entering ulsch preprocesor\n");
ulsch_scheduler_pre_processor
(
module_idP
,
frameP
,
subframeP
,
first_rb
,
aggregation
,
nCCE
);
LOG_D
(
MAC
,
"exiting ulsch preprocesor
\n
"
);
// LOG_I(MAC,"exiting ulsch preprocesor\n");
// loop over all active UEs
for
(
UE_id
=
UE_list
->
head_ul
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next_ul
[
UE_id
])
{
...
...
@@ -665,7 +669,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
else
tpc
=
1
;
//0
LOG_I
(
MAC
,
"[eNB %d] ULSCH scheduler: harq_pid %d, Ndi %d, mcs %d, tpc %d, normalized/target rx power %d/%d
\n
"
,
module_idP
,
harq_pid
,
ndi
,
mcs
,
tpc
,
normalized_rx_power
,
target_rx_power
);
//
LOG_I(MAC,"[eNB %d] ULSCH scheduler: harq_pid %d, Ndi %d, mcs %d, tpc %d, normalized/target rx power %d/%d\n",module_idP,harq_pid,ndi,mcs,tpc,normalized_rx_power,target_rx_power);
// new transmission
...
...
@@ -696,7 +700,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
//store for possible retransmission
UE_template
->
nb_rb_ul
[
harq_pid
]
=
rb_table
[
rb_table_index
];
LOG_
I
(
MAC
,
"[eNB %d][PUSCH %d/%x] Frame %d subframeP %d Scheduled UE (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][PUSCH %d/%x] Frame %d subframeP %d Scheduled UE (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)
\n
"
,
module_idP
,
harq_pid
,
rnti
,
frameP
,
subframeP
,
mcs
,
first_rb
[
CC_id
],
rb_table
[
rb_table_index
],
rb_table_index
,
TBS
,
harq_pid
);
...
...
@@ -715,7 +719,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
mcs
=
rvidx_tab
[
round
&
3
]
+
28
;
//not correct for round==4!
LOG_
I
(
MAC
,
"[eNB %d][PUSCH %d/%x] Frame %d subframeP %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d, round %d)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][PUSCH %d/%x] Frame %d subframeP %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d, round %d)
\n
"
,
module_idP
,
UE_id
,
rnti
,
frameP
,
subframeP
,
mcs
,
first_rb
[
CC_id
],
UE_template
->
nb_rb_ul
[
harq_pid
],
TBS
,
//mac_xface->get_TBS_UL(mcs,UE_template->nb_rb_ul[harq_pid]),
...
...
openair2/LAYER2/MAC/pre_processor.c
View file @
ac99fc2e
...
...
@@ -811,6 +811,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
module_idP
,
frameP
,
subframeP
,
total_ue_count
,
max_num_ue_to_be_scheduled
);
//LOG_D(MAC,"step3\n");
// step 3: assigne RBS
for
(
i
=
UE_list
->
head_ul
;
i
>=
0
;
i
=
UE_list
->
next_ul
[
i
])
{
rnti
=
UE_RNTI
(
module_idP
,
i
);
...
...
@@ -996,7 +997,9 @@ void sort_ue_ul (module_id_t module_idP,int frameP, sub_frame_t subframeP){
UE_list_t
*
UE_list
=
&
eNB_mac_inst
[
module_idP
].
UE_list
;
for
(
i
=
UE_list
->
head_ul
;
i
>=
0
;
i
=
UE_list
->
next_ul
[
i
])
{
LOG_D
(
MAC
,
"sort ue ul i %d
\n
"
,
i
);
//LOG_I(MAC,"sort ue ul i %d\n",i);
rnti1
=
UE_RNTI
(
module_idP
,
i
);
if
(
rnti1
==
0
)
continue
;
...
...
@@ -1006,7 +1009,9 @@ void sort_ue_ul (module_id_t module_idP,int frameP, sub_frame_t subframeP){
round1
=
maxround
(
module_idP
,
rnti1
,
frameP
,
subframeP
,
1
);
for
(
ii
=
UE_list
->
next_ul
[
i
];
ii
>=
0
;
ii
=
UE_list
->
next_ul
[
ii
])
{
LOG_D
(
MAC
,
"sort ul ue 2 ii %d
\n
"
,
ii
);
//LOG_I(MAC,"sort ul ue 2 ii %d\n",ii);
rnti2
=
UE_RNTI
(
module_idP
,
ii
);
if
(
rnti2
==
0
)
continue
;
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
View file @
ac99fc2e
...
...
@@ -198,7 +198,7 @@ boolean_t pdcp_data_req(
}
pdcp_pdu_size
=
sdu_buffer_sizeP
+
pdcp_header_len
+
pdcp_tailer_len
;
LOG_
I
(
PDCP
,
"Data request notification for PDCP entity %s enb id %u ue_id %u and radio bearer ID %d pdu size %d (header%d, trailer%d)
\n
"
,
LOG_
D
(
PDCP
,
"Data request notification for PDCP entity %s enb id %u ue_id %u and radio bearer ID %d pdu size %d (header%d, trailer%d)
\n
"
,
(
enb_flagP
)
?
"eNB"
:
"UE"
,
enb_mod_idP
,
ue_mod_idP
,
...
...
@@ -463,12 +463,12 @@ boolean_t pdcp_data_ind(
if
(
enb_flagP
==
ENB_FLAG_NO
)
{
if
(
srb_flagP
)
{
pdcp_p
=
&
pdcp_array_srb_ue
[
ue_mod_idP
][
rb_id
-
1
];
LOG_
I
(
PDCP
,
"Data indication notification for PDCP entity from eNB %u to UE %u "
LOG_
D
(
PDCP
,
"Data indication notification for PDCP entity from eNB %u to UE %u "
"and signalling radio bearer ID %d rlc sdu size %d enb_flagP %d
\n
"
,
enb_mod_idP
,
ue_mod_idP
,
rb_id
,
sdu_buffer_sizeP
,
enb_flagP
);
}
else
{
pdcp_p
=
&
pdcp_array_drb_ue
[
ue_mod_idP
][
rb_id
-
1
];
LOG_
I
(
PDCP
,
"Data indication notification for PDCP entity from eNB %u to UE %u "
LOG_
D
(
PDCP
,
"Data indication notification for PDCP entity from eNB %u to UE %u "
"and data radio bearer ID %d rlc sdu size %d enb_flagP %d
\n
"
,
enb_mod_idP
,
ue_mod_idP
,
rb_id
,
sdu_buffer_sizeP
,
enb_flagP
);
}
...
...
@@ -476,12 +476,12 @@ boolean_t pdcp_data_ind(
}
else
{
if
(
srb_flagP
)
{
pdcp_p
=
&
pdcp_array_srb_eNB
[
enb_mod_idP
][
ue_mod_idP
][
rb_id
-
1
];
LOG_
I
(
PDCP
,
"Data indication notification for PDCP entity from UE %u to eNB %u "
LOG_
D
(
PDCP
,
"Data indication notification for PDCP entity from UE %u to eNB %u "
"and signalling radio bearer ID %d rlc sdu size %d enb_flagP %d eNB_id %d
\n
"
,
ue_mod_idP
,
enb_mod_idP
,
rb_id
,
sdu_buffer_sizeP
,
enb_flagP
,
enb_mod_idP
);
}
else
{
pdcp_p
=
&
pdcp_array_drb_eNB
[
enb_mod_idP
][
ue_mod_idP
][
rb_id
-
1
];
LOG_
I
(
PDCP
,
"Data indication notification for PDCP entity from UE %u to eNB %u "
LOG_
D
(
PDCP
,
"Data indication notification for PDCP entity from UE %u to eNB %u "
"and data radio bearer ID %d rlc sdu size %d enb_flagP %d eNB_id %d
\n
"
,
ue_mod_idP
,
enb_mod_idP
,
rb_id
,
sdu_buffer_sizeP
,
enb_flagP
,
enb_mod_idP
);
}
...
...
@@ -784,7 +784,7 @@ void pdcp_run (
switch
(
ITTI_MSG_ID
(
msg_p
))
{
case
RRC_DCCH_DATA_REQ
:
LOG_
I
(
PDCP
,
"Received %s from %s: instance %d, frame %d, enb_flagP %d, rb_id %d, muiP %d, confirmP %d, mode %d
\n
"
,
LOG_
D
(
PDCP
,
"Received %s from %s: instance %d, frame %d, enb_flagP %d, rb_id %d, muiP %d, confirmP %d, mode %d
\n
"
,
msg_name
,
ITTI_MSG_ORIGIN_NAME
(
msg_p
),
instance
,
RRC_DCCH_DATA_REQ
(
msg_p
).
frame
,
RRC_DCCH_DATA_REQ
(
msg_p
).
enb_flag
,
RRC_DCCH_DATA_REQ
(
msg_p
).
rb_id
,
RRC_DCCH_DATA_REQ
(
msg_p
).
muip
,
RRC_DCCH_DATA_REQ
(
msg_p
).
confirmp
,
RRC_DCCH_DATA_REQ
(
msg_p
).
mode
);
...
...
@@ -1235,7 +1235,7 @@ boolean_t pdcp_config_req_asn1 (pdcp_t *pdcp_pP,
ue_mod_idP
,
enb_mod_idP
,
frameP
,
lc_idP
,
rb_idP
,
pdcp_pP
->
seq_num_size
,
(
rlc_modeP
==
RLC_MODE_AM
)
?
"AM"
:
(
rlc_modeP
==
RLC_MODE_TM
)
?
"TM"
:
"UM"
);
}
else
{
LOG_
I
(
PDCP
,
"[eNB %d] Config request : Action ADD for UE %d: Frame %d LCID %d (rb id %d) "
LOG_
D
(
PDCP
,
"[eNB %d] Config request : Action ADD for UE %d: Frame %d LCID %d (rb id %d) "
"configured with SN size %d bits and RLC %s
\n
"
,
enb_mod_idP
,
ue_mod_idP
,
frameP
,
lc_idP
,
rb_idP
,
pdcp_pP
->
seq_num_size
,
(
rlc_modeP
==
RLC_MODE_AM
)
?
"AM"
:
(
rlc_modeP
==
RLC_MODE_TM
)
?
"TM"
:
"UM"
);
...
...
@@ -1274,7 +1274,7 @@ boolean_t pdcp_config_req_asn1 (pdcp_t *pdcp_pP,
ue_mod_idP
,
enb_mod_idP
,
frameP
,
lc_idP
,
rb_idP
,
rb_snP
,
(
rlc_modeP
==
RLC_MODE_AM
)
?
"AM"
:
(
rlc_modeP
==
RLC_MODE_TM
)
?
"TM"
:
"UM"
);
}
else
{
LOG_
I
(
PDCP
,
"[eNB %d] Config request : Action MODIFY for UE %d: Frame %d LCID %d "
LOG_
D
(
PDCP
,
"[eNB %d] Config request : Action MODIFY for UE %d: Frame %d LCID %d "
"RB id %d configured with SN size %d and RLC %s
\n
"
,
enb_mod_idP
,
ue_mod_idP
,
frameP
,
lc_idP
,
rb_idP
,
rb_snP
,
(
rlc_modeP
==
RLC_MODE_AM
)
?
"AM"
:
(
rlc_modeP
==
RLC_MODE_TM
)
?
"TM"
:
"UM"
);
...
...
@@ -1302,7 +1302,7 @@ boolean_t pdcp_config_req_asn1 (pdcp_t *pdcp_pP,
LOG_I
(
PDCP
,
"[UE %d] Config request : CONFIG_ACTION_REMOVE for eNB %d: Frame %d LCID %d RBID %d configured
\n
"
,
ue_mod_idP
,
enb_mod_idP
,
frameP
,
lc_idP
,
rb_idP
);
}
else
{
LOG_
I
(
PDCP
,
"[eNB %d] Config request : CONFIG_ACTION_REMOVE for UE %d: Frame %d LCID %d RBID %d configured
\n
"
,
LOG_
D
(
PDCP
,
"[eNB %d] Config request : CONFIG_ACTION_REMOVE for UE %d: Frame %d LCID %d RBID %d configured
\n
"
,
enb_mod_idP
,
ue_mod_idP
,
frameP
,
lc_idP
,
rb_idP
);
}
/* Security keys */
...
...
@@ -1323,7 +1323,7 @@ boolean_t pdcp_config_req_asn1 (pdcp_t *pdcp_pP,
LOG_I
(
PDCP
,
"[UE %d] Config request for eNB %d: %s: Frame %d service_id/mch index %d, session_id/lcid %d, rbid %d configured
\n
"
,
ue_mod_idP
,
enb_mod_idP
,
actionP
==
CONFIG_ACTION_MBMS_ADD
?
"CONFIG_ACTION_MBMS_ADD"
:
"CONFIG_ACTION_MBMS_MODIFY"
,
frameP
,
mch_idP
,
lc_idP
,
rb_idP
);
}
else
{
LOG_
I
(
PDCP
,
"[eNB %d] Config request for UE %d: %s: Frame %d service_id/mch index %d, session_id/lcid %d, rbid %d configured
\n
"
,
LOG_
D
(
PDCP
,
"[eNB %d] Config request for UE %d: %s: Frame %d service_id/mch index %d, session_id/lcid %d, rbid %d configured
\n
"
,
enb_mod_idP
,
ue_mod_idP
,
actionP
==
CONFIG_ACTION_MBMS_ADD
?
"CONFIG_ACTION_MBMS_ADD"
:
"CONFIG_ACTION_MBMS_MODIFY"
,
frameP
,
mch_idP
,
lc_idP
,
rb_idP
);
}
if
(
enb_flagP
==
1
)
{
...
...
openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
View file @
ac99fc2e
...
...
@@ -517,7 +517,7 @@ rlc_um_mac_data_request (void *rlc_pP,frame_t frameP)
while
(
tb_p
!=
NULL
)
{
tb_size_in_bytes
=
((
struct
mac_tb_req
*
)
(
tb_p
->
data
))
->
tb_size
;
LOG_
I
(
RLC
,
"[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] MAC_DATA_REQUEST TB SIZE %u
\n
"
,
LOG_
D
(
RLC
,
"[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] MAC_DATA_REQUEST TB SIZE %u
\n
"
,
frameP
,
(
l_rlc_p
->
is_enb
)
?
"eNB"
:
"UE"
,
l_rlc_p
->
enb_module_id
,
...
...
@@ -624,7 +624,7 @@ rlc_um_data_req (void *rlc_pP, frame_t frameP, mem_block_t *sdu_pP)
uint16_t
data_size
;
#endif
LOG_
I
(
RLC
,
"[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] RLC_UM_DATA_REQ size %d Bytes, BO %d , NB SDU %d current_sdu_index=%d next_sdu_index=%d
\n
"
,
LOG_
D
(
RLC
,
"[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] RLC_UM_DATA_REQ size %d Bytes, BO %d , NB SDU %d current_sdu_index=%d next_sdu_index=%d
\n
"
,
frameP
,
(
rlc_p
->
is_enb
)
?
"eNB"
:
"UE"
,
rlc_p
->
enb_module_id
,
...
...
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