* fix issues foe multi UE scenarios in MAC
* add target MCS for DL and UL for LTE softmodem * make RLC message print for ITTI an option git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5762 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -418,21 +418,19 @@ void schedule_ue_spec(module_id_t module_idP,
|
||||
sdu_length_total=0;
|
||||
num_sdus=0;
|
||||
|
||||
if (openair_daq_vars.target_ue_dl_mcs <= 0) {
|
||||
/*
|
||||
/*
|
||||
DevCheck(((eNB_UE_stats->DL_cqi[0] < MIN_CQI_VALUE) || (eNB_UE_stats->DL_cqi[0] > MAX_CQI_VALUE)),
|
||||
eNB_UE_stats->DL_cqi[0], MIN_CQI_VALUE, MAX_CQI_VALUE);
|
||||
eNB_UE_stats->DL_cqi[0], MIN_CQI_VALUE, MAX_CQI_VALUE);
|
||||
*/
|
||||
eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->DL_cqi[0]];
|
||||
LOG_T(MAC,"CQI %d\n",eNB_UE_stats->DL_cqi[0]);
|
||||
}
|
||||
else
|
||||
eNB_UE_stats->dlsch_mcs1 = openair_daq_vars.target_ue_dl_mcs;
|
||||
eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->DL_cqi[0]];
|
||||
eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, openair_daq_vars.target_ue_dl_mcs);
|
||||
|
||||
|
||||
#ifdef EXMIMO
|
||||
if (mac_xface->get_transmission_mode(module_idP,CC_id, rnti)==5)
|
||||
eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1,16);
|
||||
#endif
|
||||
|
||||
// store stats
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi= eNB_UE_stats->DL_cqi[0];
|
||||
// initializing the rb allocation indicator for each UE
|
||||
@@ -637,79 +635,84 @@ void schedule_ue_spec(module_id_t module_idP,
|
||||
|
||||
header_len_dcch = 2; // 2 bytes DCCH SDU subheader
|
||||
|
||||
|
||||
rlc_status = mac_rlc_status_ind(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH,
|
||||
(TBS-ta_len-header_len_dcch)); // transport block set size
|
||||
|
||||
sdu_lengths[0]=0;
|
||||
if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit
|
||||
LOG_D(MAC,"[eNB %d] Frame %d, DL-DCCH->DLSCH, Requesting %d bytes from RLC (RRC message)\n",module_idP,frameP,TBS-header_len_dcch);
|
||||
sdu_lengths[0] += mac_rlc_data_req(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH,
|
||||
(char *)&dlsch_buffer[sdu_lengths[0]]);
|
||||
if ( TBS-ta_len-header_len_dcch > 0 )
|
||||
{
|
||||
rlc_status = mac_rlc_status_ind(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH,
|
||||
(TBS-ta_len-header_len_dcch)); // transport block set size
|
||||
|
||||
LOG_D(MAC,"[eNB %d][DCCH] Got %d bytes from RLC\n",module_idP,sdu_lengths[0]);
|
||||
sdu_length_total = sdu_lengths[0];
|
||||
sdu_lcids[0] = DCCH;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH]+=1;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH]+=sdu_lengths[0];
|
||||
num_sdus = 1;
|
||||
sdu_lengths[0]=0;
|
||||
if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit
|
||||
LOG_D(MAC,"[eNB %d] Frame %d, DL-DCCH->DLSCH, Requesting %d bytes from RLC (RRC message)\n",module_idP,frameP,TBS-header_len_dcch);
|
||||
sdu_lengths[0] += mac_rlc_data_req(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH,
|
||||
(char *)&dlsch_buffer[sdu_lengths[0]]);
|
||||
|
||||
LOG_D(MAC,"[eNB %d][DCCH] Got %d bytes from RLC\n",module_idP,sdu_lengths[0]);
|
||||
sdu_length_total = sdu_lengths[0];
|
||||
sdu_lcids[0] = DCCH;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH]+=1;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH]+=sdu_lengths[0];
|
||||
num_sdus = 1;
|
||||
#ifdef DEBUG_eNB_SCHEDULER
|
||||
LOG_T(MAC,"[eNB %d][DCCH] Got %d bytes :",module_idP,sdu_lengths[0]);
|
||||
for (j=0;j<sdu_lengths[0];j++)
|
||||
LOG_T(MAC,"%x ",dlsch_buffer[j]);
|
||||
LOG_T(MAC,"\n");
|
||||
LOG_T(MAC,"[eNB %d][DCCH] Got %d bytes :",module_idP,sdu_lengths[0]);
|
||||
for (j=0;j<sdu_lengths[0];j++)
|
||||
LOG_T(MAC,"%x ",dlsch_buffer[j]);
|
||||
LOG_T(MAC,"\n");
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
header_len_dcch = 0;
|
||||
sdu_length_total = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
header_len_dcch = 0;
|
||||
sdu_length_total = 0;
|
||||
}
|
||||
|
||||
// check for DCCH1 and update header information (assume 2 byte sub-header)
|
||||
rlc_status = mac_rlc_status_ind(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH+1,
|
||||
(TBS-ta_len-header_len_dcch-sdu_length_total)); // transport block set size less allocations for timing advance and
|
||||
// DCCH SDU
|
||||
|
||||
if (rlc_status.bytes_in_buffer > 0) {
|
||||
LOG_D(MAC,"[eNB %d], Frame %d, DCCH1->DLSCH, Requesting %d bytes from RLC (RRC message)\n",
|
||||
module_idP,frameP,TBS-header_len_dcch-sdu_length_total);
|
||||
sdu_lengths[num_sdus] += mac_rlc_data_req(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH+1,
|
||||
(char *)&dlsch_buffer[sdu_lengths[0]]);
|
||||
if (TBS-ta_len-header_len_dcch-sdu_length_total > 0 )
|
||||
{
|
||||
rlc_status = mac_rlc_status_ind(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH+1,
|
||||
(TBS-ta_len-header_len_dcch-sdu_length_total)); // transport block set size less allocations for timing advance and
|
||||
// DCCH SDU
|
||||
|
||||
sdu_lcids[num_sdus] = DCCH1;
|
||||
sdu_length_total += sdu_lengths[num_sdus];
|
||||
header_len_dcch += 2;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1]+=1;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1]+=sdu_lengths[num_sdus];
|
||||
num_sdus++;
|
||||
LOG_D(MAC,"[eNB %d] Got %d bytes for DCCH from RLC\n",module_idP,sdu_lengths[0]);
|
||||
if (rlc_status.bytes_in_buffer > 0)
|
||||
{
|
||||
LOG_D(MAC,"[eNB %d], Frame %d, DCCH1->DLSCH, Requesting %d bytes from RLC (RRC message)\n",
|
||||
module_idP,frameP,TBS-header_len_dcch-sdu_length_total);
|
||||
sdu_lengths[num_sdus] += mac_rlc_data_req(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DCCH+1,
|
||||
(char *)&dlsch_buffer[sdu_lengths[0]]);
|
||||
|
||||
sdu_lcids[num_sdus] = DCCH1;
|
||||
sdu_length_total += sdu_lengths[num_sdus];
|
||||
header_len_dcch += 2;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1]+=1;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1]+=sdu_lengths[num_sdus];
|
||||
num_sdus++;
|
||||
LOG_D(MAC,"[eNB %d] Got %d bytes for DCCH from RLC\n",module_idP,sdu_lengths[0]);
|
||||
}
|
||||
}
|
||||
// check for DTCH and update header information
|
||||
// here we should loop over all possible DTCH
|
||||
// check for DTCH and update header information
|
||||
// here we should loop over all possible DTCH
|
||||
|
||||
header_len_dtch = 3; // 3 bytes DTCH SDU subheader
|
||||
|
||||
@@ -717,40 +720,43 @@ void schedule_ue_spec(module_id_t module_idP,
|
||||
module_idP,frameP,DTCH,TBS,
|
||||
TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch);
|
||||
|
||||
rlc_status = mac_rlc_status_ind(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DTCH,
|
||||
TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch);
|
||||
|
||||
if (rlc_status.bytes_in_buffer > 0) {
|
||||
if (TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch > 0 )
|
||||
{
|
||||
rlc_status = mac_rlc_status_ind(
|
||||
module_idP,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
DTCH,
|
||||
TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch);
|
||||
|
||||
LOG_I(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,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
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);
|
||||
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;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DTCH]+=sdu_lengths[num_sdus];
|
||||
if (sdu_lengths[num_sdus] < 128) {
|
||||
header_len_dtch=2;
|
||||
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",
|
||||
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,
|
||||
UE_id,
|
||||
frameP,
|
||||
ENB_FLAG_YES,
|
||||
MBMS_FLAG_NO,
|
||||
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);
|
||||
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;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DTCH]+=sdu_lengths[num_sdus];
|
||||
if (sdu_lengths[num_sdus] < 128) {
|
||||
header_len_dtch=2;
|
||||
}
|
||||
num_sdus++;
|
||||
}
|
||||
else {
|
||||
header_len_dtch = 0;
|
||||
}
|
||||
num_sdus++;
|
||||
}
|
||||
else {
|
||||
header_len_dtch = 0;
|
||||
}
|
||||
|
||||
// there is a payload
|
||||
|
||||
@@ -168,6 +168,8 @@ void assign_rbs_required (module_id_t Mod_id,
|
||||
eNB_UE_stats[CC_id]->DL_cqi[0], MIN_CQI_VALUE, MAX_CQI_VALUE);
|
||||
*/
|
||||
eNB_UE_stats[CC_id]->dlsch_mcs1=cqi_to_mcs[eNB_UE_stats[CC_id]->DL_cqi[0]];
|
||||
eNB_UE_stats[CC_id]->dlsch_mcs1 = cmin(eNB_UE_stats[CC_id]->dlsch_mcs1,openair_daq_vars.target_ue_dl_mcs);
|
||||
|
||||
}
|
||||
// provide the list of CCs sorted according to MCS
|
||||
for (i=0;i<UE_list->numactiveCCs[UE_id];i++) {
|
||||
@@ -194,13 +196,16 @@ void assign_rbs_required (module_id_t Mod_id,
|
||||
LOG_D(MAC,"[preprocessor] assign RB for UE %d\n",UE_id);
|
||||
for (i=0;i<UE_list->numactiveCCs[UE_id];i++) {
|
||||
CC_id = UE_list->ordered_CCids[i][UE_id];
|
||||
LOG_D(MAC,"[preprocessor] assign RB for UE %d\n",UE_id);
|
||||
|
||||
if (eNB_UE_stats[CC_id]->dlsch_mcs1==0) nb_rbs_required[CC_id][UE_id] = 4; // don't let the TBS get too small
|
||||
else nb_rbs_required[CC_id][UE_id] = min_rb_unit[CC_id];
|
||||
|
||||
TBS = mac_xface->get_TBS_DL(eNB_UE_stats[CC_id]->dlsch_mcs1,nb_rbs_required[CC_id][UE_id]);
|
||||
|
||||
LOG_D(MAC,"[preprocessor] start RB assignement for UE %d CC_id %d dl buffer %d (RB unit %d, MCS %d, TBS %d) \n",
|
||||
UE_id, CC_id, UE_list->UE_template[pCCid][UE_id].dl_buffer_total,
|
||||
nb_rbs_required[CC_id][UE_id],eNB_UE_stats[CC_id]->dlsch_mcs1,TBS);
|
||||
/* calculating required number of RBs for each UE */
|
||||
while (TBS < UE_list->UE_template[UE_id]->dl_buffer_total) {
|
||||
while (TBS < UE_list->UE_template[pCCid][UE_id].dl_buffer_total) {
|
||||
nb_rbs_required[CC_id][UE_id] += min_rb_unit[CC_id];
|
||||
if (nb_rbs_required[CC_id][UE_id] > frame_parms[CC_id]->N_RB_DL) {
|
||||
TBS = mac_xface->get_TBS_DL(eNB_UE_stats[CC_id]->dlsch_mcs1,frame_parms[CC_id]->N_RB_DL);
|
||||
@@ -209,8 +214,8 @@ void assign_rbs_required (module_id_t Mod_id,
|
||||
}
|
||||
TBS = mac_xface->get_TBS_DL(eNB_UE_stats[CC_id]->dlsch_mcs1,nb_rbs_required[CC_id][UE_id]);
|
||||
} // end of while
|
||||
LOG_D(MAC,"[eNB %d] Frame %d: UE %d on CC %d nb_required RB %d (TBS %d, mcs %d)\n",
|
||||
Mod_id, frameP,UE_id, CC_id, nb_rbs_required[CC_id][UE_id], TBS, eNB_UE_stats[CC_id]->dlsch_mcs1);
|
||||
LOG_D(MAC,"[eNB %d] Frame %d: UE %d on CC %d: RB unit %d, nb_required RB %d (TBS %d, mcs %d)\n",
|
||||
Mod_id, frameP,UE_id, CC_id, min_rb_unit[CC_id], nb_rbs_required[CC_id][UE_id], TBS, eNB_UE_stats[CC_id]->dlsch_mcs1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,8 @@
|
||||
#include "rlc_um_very_simple_test.h"
|
||||
|
||||
#define DEBUG_RLC_UM_TX_STATUS 1
|
||||
#define TRACE_RLC_UM_PDU 1
|
||||
// NN --> LG: this could become a perf bottleneck, I added this to the makefile.
|
||||
//#define TRACE_RLC_UM_PDU 1
|
||||
|
||||
#ifdef TRACE_RLC_UM_PDU
|
||||
char message_string[10000];
|
||||
@@ -663,7 +664,7 @@ rlc_um_data_req (void *rlc_pP, frame_t frameP, mem_block_t *sdu_pP)
|
||||
|
||||
rlc_p->stat_tx_pdcp_sdu += 1;
|
||||
rlc_p->stat_tx_pdcp_bytes += ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_size;
|
||||
# if defined(ENABLE_ITTI)
|
||||
# if defined(TRACE_RLC_UM_PDU)
|
||||
data_offset = sizeof (struct rlc_um_data_req_alloc);
|
||||
data_size = ((struct rlc_um_tx_sdu_management *)(sdu_pP->data))->sdu_size;
|
||||
message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", rlc_p->rb_id);
|
||||
@@ -696,6 +697,7 @@ rlc_um_data_req (void *rlc_pP, frame_t frameP, mem_block_t *sdu_pP)
|
||||
}
|
||||
message_string_size += sprintf(&message_string[message_string_size], " |\n");
|
||||
|
||||
# if defined(ENABLE_ITTI)
|
||||
msg_p = itti_alloc_new_message_sized (rlc_p->is_enb > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_UM_SDU_REQ, message_string_size + sizeof (IttiMsgText));
|
||||
msg_p->ittiMsg.rlc_um_sdu_req.size = message_string_size;
|
||||
memcpy(&msg_p->ittiMsg.rlc_um_sdu_req.text, message_string, message_string_size);
|
||||
@@ -705,6 +707,9 @@ rlc_um_data_req (void *rlc_pP, frame_t frameP, mem_block_t *sdu_pP)
|
||||
} else {
|
||||
itti_send_msg_to_task(TASK_UNKNOWN, rlc_p->ue_module_id + NB_eNB_INST, msg_p);
|
||||
}
|
||||
#else
|
||||
LOG_T(RLC, "%s", message_string);
|
||||
#endif
|
||||
# endif
|
||||
|
||||
} else {
|
||||
|
||||
@@ -262,8 +262,12 @@ rlc_um_init (rlc_um_entity_t * const rlc_pP)
|
||||
rlc_pP->tx_header_min_length_in_bytes = 2;
|
||||
|
||||
// SPARE : not 3GPP
|
||||
#ifdef JUMBO_FRAME
|
||||
rlc_pP->size_input_sdus_buffer =1024;
|
||||
#else
|
||||
rlc_pP->size_input_sdus_buffer =128;
|
||||
|
||||
#endif
|
||||
|
||||
if ((rlc_pP->input_sdus == NULL) && (rlc_pP->size_input_sdus_buffer > 0)) {
|
||||
rlc_pP->input_sdus = calloc(1 , rlc_pP->size_input_sdus_buffer * sizeof (void *));
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
@@ -510,7 +510,7 @@ rlc_op_status_t rlc_data_req (const module_id_t enb_module_idP,
|
||||
((struct rlc_um_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_um_data_req_alloc);
|
||||
free_mem_block(sdu_pP);
|
||||
|
||||
LOG_D(RLC, "%s\n",RLC_FG_BRIGHT_COLOR_RED);
|
||||
//LOG_D(RLC, "%s\n",RLC_FG_BRIGHT_COLOR_RED);
|
||||
LOG_D(RLC, "[FRAME %5u][%s][%s][INST %u/%u][%s %u][--- RLC_UM_DATA_REQ/%d Bytes --->][RLC_UM][INST %u/%u][%s %u]\n",
|
||||
frameP,
|
||||
(enb_flagP) ? "eNB" : "UE",
|
||||
@@ -524,7 +524,7 @@ rlc_op_status_t rlc_data_req (const module_id_t enb_module_idP,
|
||||
ue_module_idP,
|
||||
(srb_flagP) ? "SRB" : "DRB",
|
||||
rb_idP);
|
||||
LOG_D(RLC, "%s\n",RLC_FG_COLOR_DEFAULT);
|
||||
//LOG_D(RLC, "%s\n",RLC_FG_COLOR_DEFAULT);
|
||||
rlc_um_data_req(&rlc_union_p->rlc.um, frameP, new_sdu_p);
|
||||
|
||||
//free_mem_block(new_sdu);
|
||||
|
||||
@@ -103,17 +103,17 @@ private_mem_block(void check_free_mem_block (mem_block_t * leP);)
|
||||
|
||||
# define MEM_MNGT_MB4_BLOCK_SIZE MEM_MNGT_MB0_BLOCK_SIZE*16
|
||||
// 1024
|
||||
# define MEM_MNGT_MB4_NB_BLOCKS 512 * MEM_SCALE
|
||||
# define MEM_MNGT_MB4_NB_BLOCKS 1024 * MEM_SCALE
|
||||
# define MEM_MNGT_POOL_ID4 4
|
||||
|
||||
# define MEM_MNGT_MB5_BLOCK_SIZE MEM_MNGT_MB0_BLOCK_SIZE*32
|
||||
// 2048
|
||||
# define MEM_MNGT_MB5_NB_BLOCKS 512 * MEM_SCALE // LG WAS 1024
|
||||
# define MEM_MNGT_MB5_NB_BLOCKS 1024 * MEM_SCALE // LG WAS 1024
|
||||
# define MEM_MNGT_POOL_ID5 5
|
||||
|
||||
# define MEM_MNGT_MB6_BLOCK_SIZE MEM_MNGT_MB0_BLOCK_SIZE*64
|
||||
// 4096
|
||||
# define MEM_MNGT_MB6_NB_BLOCKS 128 * MEM_SCALE // LG WAS 256
|
||||
# define MEM_MNGT_MB6_NB_BLOCKS 1024 * MEM_SCALE // LG WAS 256
|
||||
# define MEM_MNGT_POOL_ID6 6
|
||||
|
||||
# define MEM_MNGT_MB7_BLOCK_SIZE MEM_MNGT_MB0_BLOCK_SIZE*128
|
||||
|
||||
@@ -697,7 +697,7 @@ if ((g_otg->background_stats==1)&&(otg_info->tx_num_bytes_background[i][j]>0)){
|
||||
LOG_I(OTG,"[BACKGROUND] Total bytes(RX)= %d \n", rx_total_bytes_dl_background);
|
||||
LOG_I(OTG,"[BACKGROUND] TX throughput = %.7f(Kbit/s) \n", ((double)tx_total_bytes_dl_background*1000*8)/(otg_info->ctime*1024));
|
||||
LOG_I(OTG,"[BACKGROUND] RX throughput = %.7f(Kbit/s) \n", ((double)rx_total_bytes_dl_background*1000*8)/(otg_info->ctime*1024));
|
||||
}
|
||||
}
|
||||
if (tx_total_pkts_dl_multicast>0){
|
||||
LOG_I(OTG,"[MULTICAST] Total packets(TX)= %d \n", tx_total_pkts_dl_multicast);
|
||||
LOG_I(OTG,"[MULTICAST] Total bytes(TX)= %d \n", tx_total_bytes_dl_multicast);
|
||||
@@ -706,7 +706,7 @@ if ((g_otg->background_stats==1)&&(otg_info->tx_num_bytes_background[i][j]>0)){
|
||||
LOG_I(OTG,"[MULTICAST] otg_multicast_info->ctime = %d \n", otg_multicast_info->ctime);
|
||||
LOG_I(OTG,"[MULTICAST] TX throughput = %.7f(Kbit/s) \n", ((double)tx_total_bytes_dl_multicast*1000*8)/(otg_info->ctime*1024));
|
||||
LOG_I(OTG,"[MULTICAST] RX throughput = %.7f(Kbit/s) \n", ((double)rx_total_bytes_dl_multicast*1000*8)/(otg_info->ctime*1024));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LOG_F(OTG,"**************** TOTAL DL RESULTS ******************\n");
|
||||
|
||||
@@ -262,7 +262,7 @@ Send Packets when:
|
||||
otg_info->size_background[src][dst]=g_otg->aggregation_level[src][dst][application]*otg_info->size_background[src][dst];
|
||||
else{
|
||||
//otg_info->size_background[src][dst]=PAYLOAD_MAX;
|
||||
LOG_E(OTG,"[BACKGROUND] Aggregated packet larger than PAYLOAD_MAX, payload is limited to PAYLOAD_MAX %d\n");
|
||||
LOG_E(OTG,"[BACKGROUND] Aggregated packet larger than PAYLOAD_MAX, payload is limited to %d\n", PAYLOAD_MAX);
|
||||
}
|
||||
header =random_string(header_size_gen_background(src,dst), g_otg->packet_gen_type, HEADER_ALPHABET);
|
||||
payload = random_string(otg_info->size_background[src][dst], RANDOM_STRING, PAYLOAD_ALPHABET);
|
||||
@@ -466,7 +466,7 @@ int check_data_transmit(int src,int dst, int app, int ctime){
|
||||
/* if the aggregated size is less than PAYLOAD_MAX the traffic is aggregated, otherwise size=PAYLOAD_MAX */
|
||||
if (size>=(PAYLOAD_MAX-(sizeof(otg_hdr_info_t) + sizeof(otg_hdr_t) + otg_info->header_size[src][dst]))) {
|
||||
//size=PAYLOAD_MAX- (sizeof(otg_hdr_info_t) + sizeof(otg_hdr_t) + otg_info->header_size[src][dst]);
|
||||
LOG_E(OTG,"Aggregated packet larger than PAYLOAD_MAX, payload is limited to PAYLOAD_MAX \n");
|
||||
LOG_E(OTG,"Aggregated packet larger than PAYLOAD_MAX, payload is limited to %d \n", PAYLOAD_MAX );
|
||||
}
|
||||
|
||||
} //check if there is background traffic to generate
|
||||
|
||||
Reference in New Issue
Block a user