From 56ea023effa0229adef8cc5758b356f651889ef9 Mon Sep 17 00:00:00 2001 From: Lionel Gauthier Date: Fri, 10 Jan 2014 10:26:42 +0000 Subject: [PATCH] minor checks on RX packet of MAC git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4844 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- .../LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c | 20 ++----------------- openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c | 13 ++++-------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c index 4156a87d09..c0f7c44630 100755 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c @@ -41,8 +41,6 @@ Address : Eurecom, 2229, route des crĂȘtes, 06560 Valbonne Sophia Antipolis #define TRACE_RLC_AM_RX //#define DEBUG_RLC_AM_DISPLAY_TB_DATA //#define RLC_AM_GENERATE_ERRORS -#define DEBUG_DISPLAY_NVIDIA -#define RLC_ENABLE_PDU_CONCATENATION //----------------------------------------------------------------------------- signed int rlc_am_get_data_pdu_infos(u32_t frame, rlc_am_pdu_sn_10_t* headerP, s16_t total_sizeP, rlc_am_pdu_info_t* pdu_infoP) //----------------------------------------------------------------------------- @@ -221,24 +219,10 @@ rlc_am_receive_routing (rlc_am_entity_t *rlcP, u32_t frame, u8_t eNB_flag, struc rlcP->stat_rx_control_bytes += tb_size_in_bytes; rlcP->stat_rx_control_pdu += 1; rlc_am_receive_process_control_pdu (rlcP, frame, tb, &first_byte, &tb_size_in_bytes); - // if data pdu concatenated with control PDU (seen with real hardware LTE dongle integration) - if (tb_size_in_bytes > 0) { -#if defined(RLC_ENABLE_PDU_CONCATENATION) - if ((*first_byte & 0x80) == 0x80) { - rlcP->stat_rx_data_bytes += tb_size_in_bytes; - rlcP->stat_rx_data_pdu += 1; - rlc_am_receive_process_data_pdu (rlcP, frame, eNB_flag, tb, first_byte, tb_size_in_bytes); - } else { - AssertFatal( tb_size_in_bytes == 0, - "Not a data PDU concatened to control PDU %ld bytes left", - tb_size_in_bytes); - } -#else - AssertFatal( tb_size_in_bytes == 0, + // Test if remaining bytes not processed (up to know, highest probability is bug in MAC) + AssertFatal( tb_size_in_bytes == 0, "Remaining %d bytes following a control PDU", tb_size_in_bytes); -#endif - } } LOG_D(RLC, "[FRAME %05d][RLC_AM][MOD %02d][RB %02d][RX ROUTING] VR(R)=%03d VR(MR)=%03d\n", frame, rlcP->module_id, rlcP->rb_id, rlcP->vr_r, rlcP->vr_mr); } diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c index a17ce73ac5..8c906e9393 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c @@ -29,6 +29,7 @@ Address : Eurecom, 2229, route des crĂȘtes, 06560 Valbonne Sophia Antipolis #define RLC_UM_MODULE #define RLC_UM_DAR_C #include "platform_types.h" +#include "assertions.h" //----------------------------------------------------------------------------- #include "rlc.h" #include "rlc_um.h" @@ -82,8 +83,8 @@ signed int rlc_um_get_pdu_infos(u32_t frame,rlc_um_pdu_sn_10_t* headerP, s16_t t } sum_li += pdu_infoP->li_list[pdu_infoP->num_li]; pdu_infoP->num_li = pdu_infoP->num_li + 1; + AssertFatal( pdu_infoP->num_li > RLC_AM_MAX_SDU_IN_PDU, "[FRAME %05d][RLC_UM][MOD XX][RB XX][GET PDU INFO] SN %04d TOO MANY LIs ", frame, pdu_infoP->sn); if (pdu_infoP->num_li > RLC_AM_MAX_SDU_IN_PDU) { - LOG_E(RLC, "[FRAME %05d][RLC_UM][MOD XX][RB XX][GET PDU INFO] SN %04d TOO MANY LIs ", frame, pdu_infoP->sn); return -2; } } @@ -251,10 +252,7 @@ void rlc_um_try_reassembly(rlc_um_entity_t *rlcP, u32_t frame, u8_t eNB_flag, si break; default: - LOG_E(RLC, "[RLC_UM][MOD %d][RB %d][FRAME %05d] TRY REASSEMBLY SHOULD NOT GO HERE\n", rlcP->module_id, rlcP->rb_id, frame); -#ifdef USER_MODE - assert(0 != 0); -#endif + AssertFatal( 0 !=0, "[RLC_UM][MOD %d][RB %d][FRAME %05d] TRY REASSEMBLY SHOULD NOT GO HERE\n", rlcP->module_id, rlcP->rb_id, frame); } } else { if (rlc_um_read_length_indicators(&data, e_li, li_array, &num_li, &size ) >= 0) { @@ -354,10 +352,7 @@ void rlc_um_try_reassembly(rlc_um_entity_t *rlcP, u32_t frame, u8_t eNB_flag, si // data is already ok, done by last loop above rlc_um_reassembly (data, size, rlcP,frame); } else { - LOG_E(RLC, "[RLC_UM][MOD %d][RB %d][FRAME %05d] SHOULD NOT GO HERE\n", rlcP->module_id, rlcP->rb_id, frame, li_array[0]); -#ifdef USER_MODE - assert (5!=5); -#endif + AssertFatal( 0 !=0, "[RLC_UM][MOD %d][RB %d][FRAME %05d] SHOULD NOT GO HERE\n", rlcP->module_id, rlcP->rb_id, frame); //rlcP->stat_rx_data_pdu_dropped += 1; rlcP->stat_rx_data_bytes_dropped += size; }