* Update the relay node (RN) procedure when multicast relaying is enabled

* Fix the non-continous indexing of the PDCP array (replace rb_id by lc_id)
* Add a new test case 03 for Rel10 and eMBMS  
  


git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4149 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
Navid Nikaein
2013-09-17 05:45:21 +00:00
parent e46fb84684
commit c5196908d5
19 changed files with 437 additions and 199 deletions
+6 -6
View File
@@ -1325,7 +1325,7 @@ int schedule_MBMS(unsigned char Mod_id,u32 frame, u8 subframe) {
// there is MCCH
if (mcch_flag == 1) {
LOG_D(MAC,"Scheduler: MCCH MESSAGE is transmitted in this subframe \n" );
LOG_D(MAC,"Scheduler: MCCH MESSAGE is transmitted in this subframe %d \n", subframe);
mcch_sdu_length = mac_rrc_data_req(Mod_id,
frame,
@@ -1334,20 +1334,20 @@ int schedule_MBMS(unsigned char Mod_id,u32 frame, u8 subframe) {
1,// this is eNB
Mod_id);
if (mcch_sdu_length > 0) {
LOG_D(MAC,"[eNB %d] Frame %d : MCCH->MCH, Received %d bytes from RRC \n",Mod_id,frame,mcch_sdu_length);
LOG_D(MAC,"[eNB %d] Frame %d subframe %d : MCCH->MCH, Received %d bytes from RRC \n",Mod_id,frame,subframe,mcch_sdu_length);
header_len_mcch = 2;
if (mac_xface->lte_frame_parms->frame_type == TDD) {
LOG_D(MAC,"[eNB %d] Frame %d : Scheduling MCCH->MCH (TDD) for MCCH message %d bytes (mcs %d )\n",
LOG_D(MAC,"[eNB %d] Frame %d subframe %d: Scheduling MCCH->MCH (TDD) for MCCH message %d bytes (mcs %d )\n",
Mod_id,
frame,
frame,subframe,
mcch_sdu_length,
mcch_mcs);
}
else {
LOG_I(MAC,"[eNB %d] Frame %d : Scheduling MCCH->MCH (FDD) for MCCH message %d bytes (mcs %d)\n",
LOG_I(MAC,"[eNB %d] Frame %d subframe %d: Scheduling MCCH->MCH (FDD) for MCCH message %d bytes (mcs %d)\n",
Mod_id,
frame,
frame, subframe,
mcch_sdu_length,
mcch_mcs);
}
+81 -82
View File
@@ -86,7 +86,7 @@ BOOL pdcp_data_req(module_id_t module_id, u32_t frame, u8_t eNB_flag, rb_id_t rb
#ifdef PDCP_UNIT_TEST
pdcp_t* pdcp = test_pdcp_entity;
#else
pdcp_t* pdcp = &pdcp_array[module_id][rb_id];
pdcp_t* pdcp = &pdcp_array[module_id][rb_id%NB_RB_MAX];
#endif
u8 i;
u8 pdcp_header_len=0, pdcp_tailer_len=0;
@@ -266,7 +266,7 @@ BOOL pdcp_data_ind(module_id_t module_id, u32_t frame, u8_t eNB_flag, rb_id_t rb
pdcp_t* pdcp = pdcp_test_entity;
list_t* sdu_list = test_list;
#else
pdcp_t* pdcp = &pdcp_array[module_id][rb_id];
pdcp_t* pdcp = &pdcp_array[module_id][rb_id%NB_RB_MAX];
list_t* sdu_list = &pdcp_sdu_list;
#endif
mem_block_t *new_sdu = NULL;
@@ -541,8 +541,9 @@ BOOL rrc_pdcp_config_asn1_req (module_id_t module_id, u32_t frame, u8_t eNB_flag
if (srb2add_list != NULL) {
for (cnt=0;cnt<srb2add_list->list.count;cnt++) {
srb_id = srb2add_list->list.array[cnt]->srb_Identity;
lc_id = srb_id;
rb_id = (index * NB_RB_MAX) + srb_id;
if (pdcp_array[module_id][rb_id].instanciated_instance == module_id + 1)
if (pdcp_array[module_id][lc_id].instanciated_instance == module_id + 1)
action = ACTION_MODIFY;
else
action = ACTION_ADD;
@@ -596,7 +597,7 @@ BOOL rrc_pdcp_config_asn1_req (module_id_t module_id, u32_t frame, u8_t eNB_flag
lc_id = -1;
}
rb_id = (index * NB_RB_MAX) + lc_id;
if (pdcp_array[module_id][rb_id].instanciated_instance == module_id + 1)
if (pdcp_array[module_id][lc_id].instanciated_instance == module_id + 1)
action = ACTION_MODIFY;
else
action = ACTION_ADD;
@@ -733,93 +734,93 @@ BOOL pdcp_config_req_asn1 (module_id_t module_id, u32 frame, u8_t eNB_flag, u16
u8 security_mode){
switch (action) {
case ACTION_ADD:
pdcp_array[module_id][rb_id].instanciated_instance = module_id + 1;
pdcp_array[module_id][rb_id].lcid = lc_id;
pdcp_array[module_id][rb_id].header_compression_profile=header_compression_profile;
pdcp_array[module_id][rb_id].cipheringAlgorithm=security_mode & 0x0f;
pdcp_array[module_id][rb_id].integrityProtAlgorithm=(security_mode>>4) & 0xf;
pdcp_array[module_id][rb_id].status_report = rb_report;
pdcp_array[module_id][lc_id].instanciated_instance = module_id + 1;
pdcp_array[module_id][lc_id].lcid = lc_id;
pdcp_array[module_id][lc_id].header_compression_profile=header_compression_profile;
pdcp_array[module_id][lc_id].cipheringAlgorithm=security_mode & 0x0f;
pdcp_array[module_id][lc_id].integrityProtAlgorithm=(security_mode>>4) & 0xf;
pdcp_array[module_id][lc_id].status_report = rb_report;
if (rb_sn == PDCP_Config__rlc_UM__pdcp_SN_Size_len7bits)
pdcp_array[module_id][rb_id].seq_num_size = 7;
pdcp_array[module_id][lc_id].seq_num_size = 7;
else if (rb_sn == PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits)
pdcp_array[module_id][rb_id].seq_num_size=12;
pdcp_array[module_id][lc_id].seq_num_size=12;
else
pdcp_array[module_id][rb_id].seq_num_size=5;
pdcp_array[module_id][lc_id].seq_num_size=5;
pdcp_array[module_id][rb_id].rlc_mode = rlc_mode;
pdcp_array[module_id][rb_id].next_pdcp_tx_sn = 0;
pdcp_array[module_id][rb_id].next_pdcp_rx_sn = 0;
pdcp_array[module_id][rb_id].tx_hfn = 0;
pdcp_array[module_id][rb_id].rx_hfn = 0;
pdcp_array[module_id][rb_id].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][rb_id].first_missing_pdu = -1;
pdcp_array[module_id][lc_id].rlc_mode = rlc_mode;
pdcp_array[module_id][lc_id].next_pdcp_tx_sn = 0;
pdcp_array[module_id][lc_id].next_pdcp_rx_sn = 0;
pdcp_array[module_id][lc_id].tx_hfn = 0;
pdcp_array[module_id][lc_id].rx_hfn = 0;
pdcp_array[module_id][lc_id].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][lc_id].first_missing_pdu = -1;
LOG_I(PDCP,"[%s %d] Config request : Action ADD for %s %d: Frame %d radio bearer id %d configured with SN size %d bits and RLC %s\n",
LOG_I(PDCP,"[%s %d] Config request : Action ADD for %s %d: Frame %d LCID %d (rb id %d) configured with SN size %d bits and RLC %s\n",
(eNB_flag) ? "eNB" : "UE", module_id,
(eNB_flag) ? "UE" : "eNB", index,
frame, rb_id, pdcp_array[module_id][rb_id].seq_num_size,
frame, lc_id, rb_id, pdcp_array[module_id][lc_id].seq_num_size,
(rlc_mode == 1) ? "AM" : (rlc_mode == 2) ? "TM" : "UM");
LOG_D(PDCP, "[MSC_NEW][FRAME %05d][PDCP][MOD %02d][RB %02d]\n", frame, module_id,rb_id);
break;
case ACTION_MODIFY:
pdcp_array[module_id][rb_id].header_compression_profile=header_compression_profile;
pdcp_array[module_id][rb_id].cipheringAlgorithm=security_mode & 0x0f;
pdcp_array[module_id][rb_id].integrityProtAlgorithm=(security_mode>>4) & 0xf;
pdcp_array[module_id][rb_id].status_report = rb_report;
pdcp_array[module_id][rb_id].rlc_mode = rlc_mode;
pdcp_array[module_id][lc_id].header_compression_profile=header_compression_profile;
pdcp_array[module_id][lc_id].cipheringAlgorithm=security_mode & 0x0f;
pdcp_array[module_id][lc_id].integrityProtAlgorithm=(security_mode>>4) & 0xf;
pdcp_array[module_id][lc_id].status_report = rb_report;
pdcp_array[module_id][lc_id].rlc_mode = rlc_mode;
if (rb_sn == PDCP_Config__rlc_UM__pdcp_SN_Size_len7bits)
pdcp_array[module_id][rb_id].seq_num_size = 7;
pdcp_array[module_id][lc_id].seq_num_size = 7;
else if (rb_sn == PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits)
pdcp_array[module_id][rb_id].seq_num_size=12;
pdcp_array[module_id][lc_id].seq_num_size=12;
else
pdcp_array[module_id][rb_id].seq_num_size=5;
pdcp_array[module_id][lc_id].seq_num_size=5;
LOG_I(PDCP,"[%s %d] Config request : Action MODIFY for %s %d: Frame %d radio bearer id %d configured with SN size %d and RLC %s \n",
LOG_I(PDCP,"[%s %d] Config request : Action MODIFY for %s %d: Frame %d LCID %d RB id %d configured with SN size %d and RLC %s \n",
(eNB_flag) ? "eNB" : "UE", module_id,
(eNB_flag) ? "UE" : "eNB", index,
frame, rb_id, rb_sn,
frame, lc_id, rb_id, rb_sn,
(rlc_mode == 1) ? "AM" : (rlc_mode == 2) ? "TM" : "UM");
break;
case ACTION_REMOVE:
pdcp_array[module_id][rb_id].instanciated_instance = 0;
pdcp_array[module_id][rb_id].lcid= 0;
pdcp_array[module_id][rb_id].header_compression_profile=0x0;
pdcp_array[module_id][rb_id].cipheringAlgorithm=0xff;
pdcp_array[module_id][rb_id].integrityProtAlgorithm=0xff;
pdcp_array[module_id][rb_id].status_report = 0;
pdcp_array[module_id][rb_id].rlc_mode = RLC_NONE;
pdcp_array[module_id][rb_id].next_pdcp_tx_sn = 0;
pdcp_array[module_id][rb_id].next_pdcp_rx_sn = 0;
pdcp_array[module_id][rb_id].tx_hfn = 0;
pdcp_array[module_id][rb_id].rx_hfn = 0;
pdcp_array[module_id][rb_id].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][rb_id].seq_num_size = 0;
pdcp_array[module_id][rb_id].first_missing_pdu = -1;
LOG_I(PDCP,"[%s %d] Config request : ACTION_REMOVE: Frame %d radio bearer id %d configured\n",
(eNB_flag) ? "eNB" : "UE", module_id, frame, rb_id);
pdcp_array[module_id][lc_id].instanciated_instance = 0;
pdcp_array[module_id][lc_id].lcid= 0;
pdcp_array[module_id][lc_id].header_compression_profile=0x0;
pdcp_array[module_id][lc_id].cipheringAlgorithm=0xff;
pdcp_array[module_id][lc_id].integrityProtAlgorithm=0xff;
pdcp_array[module_id][lc_id].status_report = 0;
pdcp_array[module_id][lc_id].rlc_mode = RLC_NONE;
pdcp_array[module_id][lc_id].next_pdcp_tx_sn = 0;
pdcp_array[module_id][lc_id].next_pdcp_rx_sn = 0;
pdcp_array[module_id][lc_id].tx_hfn = 0;
pdcp_array[module_id][lc_id].rx_hfn = 0;
pdcp_array[module_id][lc_id].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][lc_id].seq_num_size = 0;
pdcp_array[module_id][lc_id].first_missing_pdu = -1;
LOG_I(PDCP,"[%s %d] Config request : ACTION_REMOVE: Frame %d LCID %d RBID %d configured\n",
(eNB_flag) ? "eNB" : "UE", module_id, frame, lc_id,rb_id);
break;
case ACTION_MBMS_ADD:
case ACTION_MBMS_MODIFY:
pdcp_mbms_array[module_id][rb_id].instanciated_instance = module_id + 1 ;
pdcp_mbms_array[module_id][rb_id].service_id = mch_id;
pdcp_mbms_array[module_id][rb_id].session_id = lc_id;
pdcp_mbms_array[module_id][rb_id].rb_id = rb_id;
pdcp_mbms_array[module_id][lc_id].instanciated_instance = module_id + 1 ;
pdcp_mbms_array[module_id][lc_id].service_id = mch_id;
pdcp_mbms_array[module_id][lc_id].session_id = lc_id;
pdcp_mbms_array[module_id][lc_id].rb_id = rb_id;
LOG_I(PDCP,"[%s %d] Config request : ACTION_MBMS_ADD: Frame %d service_id/mch index %d, session_id/lcid %d, rbid %d configured\n",
(eNB_flag == 1) ? "eNB" : "UE", module_id, frame, mch_id, lc_id, rb_id);
break;
case ACTION_SET_SECURITY_MODE:
if ((security_mode >= 0 ) && (security_mode <=0x77)) {
pdcp_array[module_id][rb_id].cipheringAlgorithm= security_mode & 0x0f;
pdcp_array[module_id][rb_id].integrityProtAlgorithm = (security_mode>>4) & 0xf;
pdcp_array[module_id][lc_id].cipheringAlgorithm= security_mode & 0x0f;
pdcp_array[module_id][lc_id].integrityProtAlgorithm = (security_mode>>4) & 0xf;
LOG_D(PDCP,"[%s %d] Set security mode : ACTION_SET_SECURITY_MODE: Frame %d cipheringAlgorithm %d integrityProtAlgorithm %d\n",
(eNB_flag) ? "eNB" : "UE", module_id, frame,
pdcp_array[module_id][rb_id].cipheringAlgorithm,
pdcp_array[module_id][rb_id].integrityProtAlgorithm );
pdcp_array[module_id][lc_id].cipheringAlgorithm,
pdcp_array[module_id][lc_id].integrityProtAlgorithm );
}else
LOG_D(PDCP,"[%s %d] bad security mode %d", security_mode);
break;
@@ -829,30 +830,28 @@ BOOL pdcp_config_req_asn1 (module_id_t module_id, u32 frame, u8_t eNB_flag, u16
}
return 0;
}
void
rrc_pdcp_config_req (module_id_t module_id, u32 frame, u8_t eNB_flag, u32 action, rb_id_t rb_id, u8 security_mode){
void rrc_pdcp_config_req (module_id_t module_id, u32 frame, u8_t eNB_flag, u32 action, rb_id_t rb_id, u8 security_mode){
/*
* Initialize sequence number state variables of relevant PDCP entity
*/
switch (action) {
case ACTION_ADD:
pdcp_array[module_id][rb_id].instanciated_instance = module_id + 1;
pdcp_array[module_id][rb_id%NB_RB_MAX].instanciated_instance = module_id + 1;
pdcp_array[module_id][rb_id].next_pdcp_tx_sn = 0;
pdcp_array[module_id][rb_id].next_pdcp_rx_sn = 0;
pdcp_array[module_id][rb_id].tx_hfn = 0;
pdcp_array[module_id][rb_id].rx_hfn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].next_pdcp_tx_sn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].next_pdcp_rx_sn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].tx_hfn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].rx_hfn = 0;
/* SN of the last PDCP SDU delivered to upper layers */
pdcp_array[module_id][rb_id].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][rb_id%NB_RB_MAX].last_submitted_pdcp_rx_sn = 4095;
if ( (rb_id % NB_RB_MAX) < DTCH) // SRB
pdcp_array[module_id][rb_id].seq_num_size = 5;
pdcp_array[module_id][rb_id%NB_RB_MAX].seq_num_size = 5;
else // DRB
pdcp_array[module_id][rb_id].seq_num_size = 12;
pdcp_array[module_id][rb_id].first_missing_pdu = -1;
pdcp_array[module_id][rb_id%NB_RB_MAX].seq_num_size = 12;
pdcp_array[module_id][rb_id%NB_RB_MAX].first_missing_pdu = -1;
LOG_D(PDCP,"[%s %d] Config request : Action ADD: Frame %d radio bearer id %d configured\n",
(eNB_flag) ? "eNB" : "UE", module_id, frame, rb_id);
LOG_D(PDCP, "[MSC_NEW][FRAME %05d][PDCP][MOD %02d][RB %02d]\n", frame, module_id,rb_id);
@@ -860,26 +859,26 @@ void
case ACTION_MODIFY:
break;
case ACTION_REMOVE:
pdcp_array[module_id][rb_id].instanciated_instance = 0;
pdcp_array[module_id][rb_id].next_pdcp_tx_sn = 0;
pdcp_array[module_id][rb_id].next_pdcp_rx_sn = 0;
pdcp_array[module_id][rb_id].tx_hfn = 0;
pdcp_array[module_id][rb_id].rx_hfn = 0;
pdcp_array[module_id][rb_id].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][rb_id].seq_num_size = 0;
pdcp_array[module_id][rb_id].first_missing_pdu = -1;
pdcp_array[module_id][rb_id%NB_RB_MAX].instanciated_instance = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].next_pdcp_tx_sn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].next_pdcp_rx_sn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].tx_hfn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].rx_hfn = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].last_submitted_pdcp_rx_sn = 4095;
pdcp_array[module_id][rb_id%NB_RB_MAX].seq_num_size = 0;
pdcp_array[module_id][rb_id%NB_RB_MAX].first_missing_pdu = -1;
LOG_D(PDCP,"[%s %d] Config request : ACTION_REMOVE: Frame %d radio bearer id %d configured\n",
(eNB_flag) ? "eNB" : "UE", module_id, frame, rb_id);
break;
case ACTION_SET_SECURITY_MODE:
if ((security_mode >= 0 ) && (security_mode <=0x77)) {
pdcp_array[module_id][rb_id].cipheringAlgorithm= security_mode & 0x0f;
pdcp_array[module_id][rb_id].integrityProtAlgorithm = (security_mode>>4) & 0xf;
pdcp_array[module_id][rb_id%NB_RB_MAX].cipheringAlgorithm= security_mode & 0x0f;
pdcp_array[module_id][rb_id%NB_RB_MAX].integrityProtAlgorithm = (security_mode>>4) & 0xf;
LOG_D(PDCP,"[%s %d] Set security mode : ACTION_SET_SECURITY_MODE: Frame %d cipheringAlgorithm %d integrityProtAlgorithm %d\n",
(eNB_flag) ? "eNB" : "UE", module_id, frame,
pdcp_array[module_id][rb_id].cipheringAlgorithm,
pdcp_array[module_id][rb_id].integrityProtAlgorithm );
pdcp_array[module_id][rb_id%NB_RB_MAX].cipheringAlgorithm,
pdcp_array[module_id][rb_id%NB_RB_MAX].integrityProtAlgorithm );
}else
LOG_D(PDCP,"[%s %d] bad security mode %d", security_mode);
break;
@@ -951,7 +950,7 @@ void
*/
list_init(&pdcp_sdu_list, NULL);
for (i=0; i < MAX_MODULES; i++) {
for (j=0; j < MAX_RB; j++) {
for (j=0; j < NB_RB_MAX; j++) {
memset((void*)&pdcp_array[i][j], 0, sizeof(pdcp_t));
}
+1 -1
View File
@@ -351,7 +351,7 @@ typedef struct pdcp_missing_pdu_info_t {
#define PDCP_MAX_SN_12BIT 4095 // 2^12-1
protected_pdcp(signed int pdcp_2_nas_irq;)
protected_pdcp(pdcp_t pdcp_array[MAX_MODULES][MAX_RB];)
protected_pdcp(pdcp_t pdcp_array[MAX_MODULES][NB_RB_MAX];)
public_pdcp(pdcp_mbms_t pdcp_mbms_array[MAX_MODULES][16*29];) // MAX_SERVICEx MAX_SESSION
protected_pdcp(sdu_size_t pdcp_output_sdu_bytes_to_write;)
protected_pdcp(sdu_size_t pdcp_output_header_bytes_to_write;)
+4 -4
View File
@@ -300,7 +300,7 @@ int
LOG_D(PDCP, "[MSC_MSG][FRAME %05d][IP][MOD %02d][][--- PDCP_DATA_REQ / %d Bytes --->][PDCP][MOD %02d][RB %02d]\n",
frame, pdcp_read_header.inst, pdcp_read_header.data_size, pdcp_read_header.inst, pdcp_read_header.rb_id);
if (pdcp_array[pdcp_read_header.inst][pdcp_read_header.rb_id].instanciated_instance) {
if (pdcp_array[pdcp_read_header.inst][pdcp_read_header.rb_id%NB_RB_MAX].instanciated_instance) {
pdcp_data_req (pdcp_input_header.inst,
frame, eNB_flag,
pdcp_input_header.rb_id,
@@ -316,7 +316,7 @@ int
#warning CODE TO BE REVIEWED, ONLY WORK FOR SIMPLE TOPOLOGY CASES
for (rab_id = DEFAULT_RAB_ID; rab_id < MAX_RB; rab_id = rab_id + NB_RB_MAX) {
LOG_D(PDCP, "Checking if could sent on default rab id %d\n", rab_id);
if (pdcp_array[pdcp_input_header.inst][rab_id].instanciated_instance == (pdcp_input_header.inst + 1)) {
if (pdcp_array[pdcp_input_header.inst][rab_id%NB_RB_MAX].instanciated_instance == (pdcp_input_header.inst + 1)) {
pdcp_data_req (pdcp_input_header.inst,
frame, eNB_flag,
rab_id,
@@ -576,7 +576,7 @@ int
#endif
if (pdcp_read_header.rb_id != 0) {
if (pdcp_array[pdcp_read_header.inst][pdcp_read_header.rb_id].instanciated_instance) {
if (pdcp_array[pdcp_read_header.inst][pdcp_read_header.rb_id%NB_RB_MAX].instanciated_instance) {
#ifdef PDCP_DEBUG
LOG_I(PDCP, "[PDCP][NETLINK][IP->PDCP] TTI %d, INST %d: Received socket with length %d (nlmsg_len = %d) on Rab %d \n",
frame, pdcp_read_header.inst, len, nas_nlh_rx->nlmsg_len-sizeof(struct nlmsghdr), pdcp_read_header.rb_id);
@@ -601,7 +601,7 @@ int
// is a broadcast packet, we have to send this packet on all default RABS of all connected UEs
#warning CODE TO BE REVIEWED, ONLY WORK FOR SIMPLE TOPOLOGY CASES
for (rab_id = DEFAULT_RAB_ID; rab_id < MAX_RB; rab_id = rab_id + NB_RB_MAX) {
if (pdcp_array[pdcp_input_header.inst][rab_id].instanciated_instance == (pdcp_input_header.inst + 1)) {
if (pdcp_array[pdcp_input_header.inst][rab_id%NB_RB_MAX].instanciated_instance == (pdcp_input_header.inst + 1)) {
pdcp_data_req (pdcp_read_header.inst, frame, eNB_flag, rab_id, RLC_MUI_UNDEFINED,RLC_SDU_CONFIRM_NO,
pdcp_read_header.data_size,
(unsigned char *)NLMSG_DATA(nas_nlh_rx),
+1 -1
View File
@@ -1605,7 +1605,7 @@ int decode_MCCH_Message(u8 Mod_id, u32 frame, u8 eNB_index, u8 *Sdu, u8 Sdu_len)
(void*)&mcch->message.choice.c1.choice.mbsfnAreaConfiguration_r9,
sizeof(MBSFNAreaConfiguration_r9_t)); */
*mcch_message = &mcch->message.choice.c1.choice.mbsfnAreaConfiguration_r9;
LOG_I(RRC,"[UE %d] Frame %d : Found MBSFNAreaConfiguration from eNB \n",Mod_id, frame, eNB_index);
LOG_I(RRC,"[UE %d] Frame %d : Found MBSFNAreaConfiguration from eNB %d \n",Mod_id, frame, eNB_index);
decode_MBSFNAreaConfiguration(Mod_id,eNB_index,frame);
}
+1 -1
View File
@@ -454,7 +454,7 @@ openair_rrc_lite_eNB_init (u8 Mod_id)
LOG_I (RRC, "Checking release \n");
#ifdef Rel10
// This has to come from some top-level configuration
// Thishas to come from some top-level configuration
printf ("Rel10 RRC detected, MBMS flag %d\n",
eNB_rrc_inst[Mod_id].MBMS_flag);
+2 -2
View File
@@ -173,8 +173,8 @@ float owd_const_application_v=owd_const_application()/2;
}
if (otg_hdr_info_rx->flag == 0x1000){
LOG_I(OTG,"received a multicast packet at time %d with size %d, seq num %d, ran owd %d number loss packet %d\n",
ctime,otg_hdr_info_rx->size, otg_hdr_rx->seq_num, ctime - otg_hdr_rx->time, nb_loss_pkts);
LOG_I(OTG,"[SRC%d -> DST %d] Received a multicast packet at time %d with size %d, seq num %d, ran owd %d number loss packet %d\n",
dst, src, ctime,otg_hdr_info_rx->size, otg_hdr_rx->seq_num, ctime - otg_hdr_rx->time, nb_loss_pkts);
LOG_I(OTG,"INFO LATENCY :: [SRC %d][DST %d] radio access %.2f (tx time %d, ctime %d), OWD:%.2f (ms):\n",
src, dst, otg_multicast_info->radio_access_delay[src][dst], otg_hdr_rx->time, ctime , otg_multicast_info->rx_pkt_owd[src][dst]);