only .c, .h and .cpp processed. Changes to be committed: modified: common/utils/asn1_conversions.h modified: common/utils/assertions.h modified: common/utils/itti/assertions.h modified: common/utils/itti/backtrace.c modified: common/utils/itti/backtrace.h modified: common/utils/itti/intertask_interface.c modified: common/utils/itti/intertask_interface.h modified: common/utils/itti/intertask_interface_dump.c modified: common/utils/itti/intertask_interface_dump.h modified: common/utils/itti/intertask_interface_init.h modified: common/utils/itti/intertask_interface_types.h modified: common/utils/itti/intertask_messages_def.h modified: common/utils/itti/intertask_messages_types.h modified: common/utils/itti/itti_types.h modified: common/utils/itti/memory_pools.c modified: common/utils/itti/memory_pools.h modified: common/utils/itti/messages_def.h modified: common/utils/itti/messages_types.h modified: common/utils/itti/signals.c modified: common/utils/itti/signals.h modified: common/utils/itti/tasks_def.h modified: common/utils/itti/timer.c modified: common/utils/itti/timer.h modified: common/utils/itti/timer_messages_def.h modified: common/utils/itti/timer_messages_types.h modified: common/utils/itti_analyzer/common/itti_types.h modified: common/utils/itti_analyzer/common/logs.h modified: common/utils/itti_analyzer/common/rc.h modified: common/utils/itti_analyzer/itti_analyzer.c modified: common/utils/itti_analyzer/libbuffers/buffers.c modified: common/utils/itti_analyzer/libbuffers/buffers.h modified: common/utils/itti_analyzer/libbuffers/file.c modified: common/utils/itti_analyzer/libbuffers/file.h modified: common/utils/itti_analyzer/libbuffers/socket.c modified: common/utils/itti_analyzer/libbuffers/socket.h modified: common/utils/itti_analyzer/libparser/array_type.c modified: common/utils/itti_analyzer/libparser/array_type.h modified: common/utils/itti_analyzer/libparser/enum_type.c modified: common/utils/itti_analyzer/libparser/enum_type.h modified: common/utils/itti_analyzer/libparser/enum_value_type.c modified: common/utils/itti_analyzer/libparser/enum_value_type.h modified: common/utils/itti_analyzer/libparser/field_type.c modified: common/utils/itti_analyzer/libparser/field_type.h modified: common/utils/itti_analyzer/libparser/file_type.c modified: common/utils/itti_analyzer/libparser/file_type.h modified: common/utils/itti_analyzer/libparser/fundamental_type.c modified: common/utils/itti_analyzer/libparser/fundamental_type.h modified: common/utils/itti_analyzer/libparser/intertask_contexts.h modified: common/utils/itti_analyzer/libparser/pointer_type.c modified: common/utils/itti_analyzer/libparser/pointer_type.h modified: common/utils/itti_analyzer/libparser/reference_type.c modified: common/utils/itti_analyzer/libparser/reference_type.h modified: common/utils/itti_analyzer/libparser/struct_type.c modified: common/utils/itti_analyzer/libparser/struct_type.h modified: common/utils/itti_analyzer/libparser/typedef_type.c modified: common/utils/itti_analyzer/libparser/typedef_type.h modified: common/utils/itti_analyzer/libparser/types.c modified: common/utils/itti_analyzer/libparser/types.h modified: common/utils/itti_analyzer/libparser/union_type.c modified: common/utils/itti_analyzer/libparser/union_type.h modified: common/utils/itti_analyzer/libparser/xml_parse.c modified: common/utils/itti_analyzer/libparser/xml_parse.h modified: common/utils/itti_analyzer/libresolver/locate_root.c modified: common/utils/itti_analyzer/libresolver/locate_root.h modified: common/utils/itti_analyzer/libresolver/resolvers.c modified: common/utils/itti_analyzer/libresolver/resolvers.h modified: common/utils/itti_analyzer/libui/ui_callbacks.c modified: common/utils/itti_analyzer/libui/ui_callbacks.h modified: common/utils/itti_analyzer/libui/ui_filters.c modified: common/utils/itti_analyzer/libui/ui_filters.h modified: common/utils/itti_analyzer/libui/ui_interface.c modified: common/utils/itti_analyzer/libui/ui_interface.h modified: common/utils/itti_analyzer/libui/ui_main_screen.c modified: common/utils/itti_analyzer/libui/ui_main_screen.h modified: common/utils/itti_analyzer/libui/ui_menu_bar.c modified: common/utils/itti_analyzer/libui/ui_menu_bar.h modified: common/utils/itti_analyzer/libui/ui_notebook.c modified: common/utils/itti_analyzer/libui/ui_notebook.h modified: common/utils/itti_analyzer/libui/ui_notif_dlg.c modified: common/utils/itti_analyzer/libui/ui_notif_dlg.h modified: common/utils/itti_analyzer/libui/ui_notifications.c modified: common/utils/itti_analyzer/libui/ui_notifications.h modified: common/utils/itti_analyzer/libui/ui_signal_dissect_view.c modified: common/utils/itti_analyzer/libui/ui_signal_dissect_view.h modified: common/utils/itti_analyzer/libui/ui_tree_view.c modified: common/utils/itti_analyzer/libui/ui_tree_view.h modified: common/utils/msc/msc.c modified: common/utils/msc/msc.h modified: openair1/PHY/CODING/3gpplte.c modified: openair1/PHY/CODING/3gpplte_sse.c modified: openair1/PHY/CODING/3gpplte_turbo_decoder.c modified: openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c modified: openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c modified: openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c modified: openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c modified: openair1/PHY/CODING/TESTBENCH/ltetest.c modified: openair1/PHY/CODING/TESTBENCH/pdcch_test.c modified: openair1/PHY/CODING/TESTBENCH/viterbi_test.c modified: openair1/PHY/CODING/ccoding_byte.c modified: openair1/PHY/CODING/ccoding_byte_lte.c modified: openair1/PHY/CODING/crc_byte.c modified: openair1/PHY/CODING/defs.h modified: openair1/PHY/CODING/extern.h modified: openair1/PHY/CODING/extern_3GPPinterleaver.h modified: openair1/PHY/CODING/lte_interleaver.h modified: openair1/PHY/CODING/lte_interleaver2.h modified: openair1/PHY/CODING/lte_interleaver_inline.h modified: openair1/PHY/CODING/lte_rate_matching.c modified: openair1/PHY/CODING/lte_segmentation.c modified: openair1/PHY/CODING/rate_matching.c modified: openair1/PHY/CODING/scrambler.h modified: openair1/PHY/CODING/vars.h modified: openair1/PHY/CODING/viterbi.c modified: openair1/PHY/CODING/viterbi_lte.c modified: openair1/PHY/INIT/defs.h modified: openair1/PHY/INIT/extern.h modified: openair1/PHY/INIT/init_top.c modified: openair1/PHY/INIT/lte_init.c modified: openair1/PHY/INIT/lte_param_init.c modified: openair1/PHY/INIT/lte_parms.c modified: openair1/PHY/INIT/vars.h modified: openair1/PHY/LTE_ESTIMATION/adjust_gain.c modified: openair1/PHY/LTE_ESTIMATION/defs.h modified: openair1/PHY/LTE_ESTIMATION/extern.h modified: openair1/PHY/LTE_ESTIMATION/filt96_32.h modified: openair1/PHY/LTE_ESTIMATION/freq_equalization.c modified: openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c modified: openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c modified: openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c modified: openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c modified: openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c modified: openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c modified: openair1/PHY/LTE_ESTIMATION/lte_sync_time.c modified: openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c modified: openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c modified: openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c modified: openair1/PHY/LTE_ESTIMATION/pss6144.h modified: openair1/PHY/LTE_ESTIMATION/vars.h modified: openair1/PHY/LTE_REFSIG/defs.h modified: openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c modified: openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c modified: openair1/PHY/LTE_REFSIG/lte_dl_uespec.c modified: openair1/PHY/LTE_REFSIG/lte_gold.c modified: openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c modified: openair1/PHY/LTE_REFSIG/lte_ul_ref.c modified: openair1/PHY/LTE_REFSIG/mod_table.h modified: openair1/PHY/LTE_REFSIG/primary_synch.h modified: openair1/PHY/LTE_TRANSPORT/dci.c modified: openair1/PHY/LTE_TRANSPORT/dci.h modified: openair1/PHY/LTE_TRANSPORT/dci_tools.c modified: openair1/PHY/LTE_TRANSPORT/defs.h modified: openair1/PHY/LTE_TRANSPORT/dlsch_coding.c modified: openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c modified: openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c modified: openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c modified: openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c modified: openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c modified: openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h modified: openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h modified: openair1/PHY/LTE_TRANSPORT/drs_modulation.c modified: openair1/PHY/LTE_TRANSPORT/extern.h modified: openair1/PHY/LTE_TRANSPORT/group_hopping.c modified: openair1/PHY/LTE_TRANSPORT/if4_tools.c modified: openair1/PHY/LTE_TRANSPORT/if4_tools.h modified: openair1/PHY/LTE_TRANSPORT/if5_tools.c modified: openair1/PHY/LTE_TRANSPORT/if5_tools.h modified: openair1/PHY/LTE_TRANSPORT/initial_sync.c modified: openair1/PHY/LTE_TRANSPORT/lte_mcs.c modified: openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h modified: openair1/PHY/LTE_TRANSPORT/pbch.c modified: openair1/PHY/LTE_TRANSPORT/pcfich.c modified: openair1/PHY/LTE_TRANSPORT/pch.c modified: openair1/PHY/LTE_TRANSPORT/phich.c modified: openair1/PHY/LTE_TRANSPORT/pilots.c modified: openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c modified: openair1/PHY/LTE_TRANSPORT/pmch.c modified: openair1/PHY/LTE_TRANSPORT/power_control.c modified: openair1/PHY/LTE_TRANSPORT/prach.c modified: openair1/PHY/LTE_TRANSPORT/prach.h modified: openair1/PHY/LTE_TRANSPORT/print_stats.c modified: openair1/PHY/LTE_TRANSPORT/proto.h modified: openair1/PHY/LTE_TRANSPORT/pss.c modified: openair1/PHY/LTE_TRANSPORT/pucch.c modified: openair1/PHY/LTE_TRANSPORT/rar_tools.c modified: openair1/PHY/LTE_TRANSPORT/srs_modulation.c modified: openair1/PHY/LTE_TRANSPORT/sss.c modified: openair1/PHY/LTE_TRANSPORT/sss.h modified: openair1/PHY/LTE_TRANSPORT/uci.h modified: openair1/PHY/LTE_TRANSPORT/uci_tools.c modified: openair1/PHY/LTE_TRANSPORT/ulsch_coding.c modified: openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c modified: openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c modified: openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c modified: openair1/PHY/LTE_TRANSPORT/vars.h modified: openair1/PHY/MODULATION/defs.h modified: openair1/PHY/MODULATION/extern.h modified: openair1/PHY/MODULATION/kHz_7_5.h modified: openair1/PHY/MODULATION/ofdm_mod.c modified: openair1/PHY/MODULATION/prach625Hz.h modified: openair1/PHY/MODULATION/slot_fep.c modified: openair1/PHY/MODULATION/slot_fep_mbsfn.c modified: openair1/PHY/MODULATION/slot_fep_ul.c modified: openair1/PHY/MODULATION/ul_7_5_kHz.c modified: openair1/PHY/MODULATION/vars.h modified: openair1/PHY/TOOLS/8bit_rxdemux.c modified: openair1/PHY/TOOLS/8bit_txmux.c modified: openair1/PHY/TOOLS/alaw_lut.h modified: openair1/PHY/TOOLS/angle.c modified: openair1/PHY/TOOLS/cadd_sv.c modified: openair1/PHY/TOOLS/cadd_vv.c modified: openair1/PHY/TOOLS/cdot_prod.c modified: openair1/PHY/TOOLS/cmult_sv.c modified: openair1/PHY/TOOLS/cmult_vv.c modified: openair1/PHY/TOOLS/costable.h modified: openair1/PHY/TOOLS/dB_routines.c modified: openair1/PHY/TOOLS/dB_routines.h modified: openair1/PHY/TOOLS/defs.h modified: openair1/PHY/TOOLS/extern.h modified: openair1/PHY/TOOLS/file_output.c modified: openair1/PHY/TOOLS/invSqrt.c modified: openair1/PHY/TOOLS/log2_approx.c modified: openair1/PHY/TOOLS/lte_dfts.c modified: openair1/PHY/TOOLS/lte_phy_scope.c modified: openair1/PHY/TOOLS/lte_phy_scope.h modified: openair1/PHY/TOOLS/lut.c modified: openair1/PHY/TOOLS/memory_routines.c modified: openair1/PHY/TOOLS/signal_energy.c modified: openair1/PHY/TOOLS/smbv.c modified: openair1/PHY/TOOLS/smbv.h modified: openair1/PHY/TOOLS/sqrt.c modified: openair1/PHY/TOOLS/time_meas.c modified: openair1/PHY/TOOLS/time_meas.h modified: openair1/PHY/TOOLS/twiddle12288.h modified: openair1/PHY/TOOLS/twiddle1536.h modified: openair1/PHY/TOOLS/twiddle24576.h modified: openair1/PHY/TOOLS/twiddle6144.h modified: openair1/PHY/TOOLS/twiddles4096.h modified: openair1/PHY/TOOLS/twiddles8192.h modified: openair1/PHY/TOOLS/vars.h modified: openair1/PHY/defs.h modified: openair1/PHY/extern.h modified: openair1/PHY/impl_defs_lte.h modified: openair1/PHY/impl_defs_top.h modified: openair1/PHY/sse_intrin.h modified: openair1/PHY/types.h modified: openair1/PHY/vars.h modified: openair1/SCHED/defs.h modified: openair1/SCHED/extern.h modified: openair1/SCHED/phy_mac_stub.c modified: openair1/SCHED/phy_procedures_emos.h modified: openair1/SCHED/phy_procedures_lte_common.c modified: openair1/SCHED/phy_procedures_lte_eNb.c modified: openair1/SCHED/phy_procedures_lte_ue.c modified: openair1/SCHED/pucch_pc.c modified: openair1/SCHED/pusch_pc.c modified: openair1/SCHED/rt_compat.h modified: openair1/SCHED/vars.h modified: openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c modified: openair1/SIMULATION/ETH_TRANSPORT/defs.h modified: openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c modified: openair1/SIMULATION/ETH_TRANSPORT/extern.h modified: openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c modified: openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h modified: openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c modified: openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c modified: openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h modified: openair1/SIMULATION/ETH_TRANSPORT/proto.h modified: openair1/SIMULATION/ETH_TRANSPORT/socket.c modified: openair1/SIMULATION/ETH_TRANSPORT/socket.h modified: openair1/SIMULATION/ETH_TRANSPORT/vars.h modified: openair1/SIMULATION/LTE_PHY/LTE_Configuration.c modified: openair1/SIMULATION/LTE_PHY/LTE_Configuration.h modified: openair1/SIMULATION/LTE_PHY/dlsim.c modified: openair1/SIMULATION/LTE_PHY/framegen.c modified: openair1/SIMULATION/LTE_PHY/gpib_send.c modified: openair1/SIMULATION/LTE_PHY/gpib_send.h modified: openair1/SIMULATION/LTE_PHY/mbmssim.c modified: openair1/SIMULATION/LTE_PHY/pbchsim.c modified: openair1/SIMULATION/LTE_PHY/pdcchsim.c modified: openair1/SIMULATION/LTE_PHY/prachsim.c modified: openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h modified: openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c modified: openair1/SIMULATION/LTE_PHY/pucchsim.c modified: openair1/SIMULATION/LTE_PHY/scansim.c modified: openair1/SIMULATION/LTE_PHY/signalanalyzer.c modified: openair1/SIMULATION/LTE_PHY/signalanalyzer.h modified: openair1/SIMULATION/LTE_PHY/syncsim.c modified: openair1/SIMULATION/LTE_PHY/test.c modified: openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c modified: openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h modified: openair1/SIMULATION/LTE_PHY/ulsim.c modified: openair1/SIMULATION/LTE_PHY/ulsim2.c modified: openair1/SIMULATION/LTE_PHY/unitary_defs.h modified: openair1/SIMULATION/RF/adc.c modified: openair1/SIMULATION/RF/dac.c modified: openair1/SIMULATION/RF/defs.h modified: openair1/SIMULATION/RF/rf.c modified: openair1/SIMULATION/TOOLS/abstraction.c modified: openair1/SIMULATION/TOOLS/ch_desc_proto.c modified: openair1/SIMULATION/TOOLS/defs.h modified: openair1/SIMULATION/TOOLS/gauss.c modified: openair1/SIMULATION/TOOLS/llr_quantization.c modified: openair1/SIMULATION/TOOLS/multipath_channel.c modified: openair1/SIMULATION/TOOLS/multipath_tv_channel.c modified: openair1/SIMULATION/TOOLS/random_channel.c modified: openair1/SIMULATION/TOOLS/rangen_double.c modified: openair1/SIMULATION/TOOLS/scm_corrmat.h modified: openair1/SIMULATION/TOOLS/taus.c modified: openair2/COMMON/as_message.h modified: openair2/COMMON/commonDef.h modified: openair2/COMMON/gtpv1_u_messages_def.h modified: openair2/COMMON/gtpv1_u_messages_types.h modified: openair2/COMMON/intertask_interface_conf.h modified: openair2/COMMON/mac_messages_def.h modified: openair2/COMMON/mac_messages_types.h modified: openair2/COMMON/mac_primitives.h modified: openair2/COMMON/mac_rlc_primitives.h modified: openair2/COMMON/mac_rrc_primitives.h modified: openair2/COMMON/messages_def.h modified: openair2/COMMON/messages_types.h modified: openair2/COMMON/nas_messages_def.h modified: openair2/COMMON/nas_messages_types.h modified: openair2/COMMON/networkDef.h modified: openair2/COMMON/openair_defs.h modified: openair2/COMMON/openair_types.h modified: openair2/COMMON/pdcp_messages_def.h modified: openair2/COMMON/pdcp_messages_types.h modified: openair2/COMMON/phy_messages_def.h modified: openair2/COMMON/phy_messages_types.h modified: openair2/COMMON/platform_constants.h modified: openair2/COMMON/platform_types.h modified: openair2/COMMON/ral_messages_def.h modified: openair2/COMMON/ral_messages_types.h modified: openair2/COMMON/rlc_messages_def.h modified: openair2/COMMON/rlc_messages_types.h modified: openair2/COMMON/rrc_messages_def.h modified: openair2/COMMON/rrc_messages_types.h modified: openair2/COMMON/rrm_config_structs.h modified: openair2/COMMON/rrm_constants.h modified: openair2/COMMON/rtos_header.h modified: openair2/COMMON/s1ap_messages_def.h modified: openair2/COMMON/s1ap_messages_types.h modified: openair2/COMMON/sctp_messages_def.h modified: openair2/COMMON/sctp_messages_types.h modified: openair2/COMMON/tasks_def.h modified: openair2/COMMON/udp_messages_def.h modified: openair2/COMMON/udp_messages_types.h modified: openair2/COMMON/x2ap_messages_def.h modified: openair2/COMMON/x2ap_messages_types.h modified: openair2/DOCS/TEMPLATES/CODE/example_doxy.h modified: openair2/ENB_APP/enb_app.c modified: openair2/ENB_APP/enb_app.h modified: openair2/ENB_APP/enb_config.c modified: openair2/ENB_APP/enb_config.h modified: openair2/LAYER2/MAC/config.c modified: openair2/LAYER2/MAC/defs.h modified: openair2/LAYER2/MAC/eNB_scheduler.c modified: openair2/LAYER2/MAC/eNB_scheduler_RA.c modified: openair2/LAYER2/MAC/eNB_scheduler_bch.c modified: openair2/LAYER2/MAC/eNB_scheduler_dlsch.c modified: openair2/LAYER2/MAC/eNB_scheduler_mch.c modified: openair2/LAYER2/MAC/eNB_scheduler_primitives.c modified: openair2/LAYER2/MAC/eNB_scheduler_ulsch.c modified: openair2/LAYER2/MAC/extern.h modified: openair2/LAYER2/MAC/l1_helpers.c modified: openair2/LAYER2/MAC/lte_transport_init.c modified: openair2/LAYER2/MAC/main.c modified: openair2/LAYER2/MAC/openair2_proc.c modified: openair2/LAYER2/MAC/pre_processor.c modified: openair2/LAYER2/MAC/proto.h modified: openair2/LAYER2/MAC/ra_procedures.c modified: openair2/LAYER2/MAC/rar_tools.c modified: openair2/LAYER2/MAC/ue_procedures.c modified: openair2/LAYER2/MAC/vars.h modified: openair2/LAYER2/PDCP_v10.1.0/pdcp.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp.h modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c modified: openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c modified: openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h modified: openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c modified: openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h modified: openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h modified: openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c modified: openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h modified: openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c modified: openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h modified: openair2/LAYER2/RLC/mac_primitives.h modified: openair2/LAYER2/RLC/rlc.c modified: openair2/LAYER2/RLC/rlc.h modified: openair2/LAYER2/RLC/rlc_def.h modified: openair2/LAYER2/RLC/rlc_def_lte.h modified: openair2/LAYER2/RLC/rlc_mac.c modified: openair2/LAYER2/RLC/rlc_mpls.c modified: openair2/LAYER2/RLC/rlc_primitives.h modified: openair2/LAYER2/RLC/rlc_rrc.c modified: openair2/LAYER2/layer2_top.c modified: openair2/LAYER2/openair2_proc.c modified: openair2/LAYER2/register.c modified: openair2/LAYER2/register.h modified: openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c modified: openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c modified: openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c modified: openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h modified: openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c modified: openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c modified: openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h modified: openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c modified: openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c modified: openair2/NAS/nas_ue_task.h modified: openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c modified: openair2/NETWORK_DRIVER/LITE/classifier.c modified: openair2/NETWORK_DRIVER/LITE/common.c modified: openair2/NETWORK_DRIVER/LITE/constant.h modified: openair2/NETWORK_DRIVER/LITE/device.c modified: openair2/NETWORK_DRIVER/LITE/ioctl.c modified: openair2/NETWORK_DRIVER/LITE/ioctl.h modified: openair2/NETWORK_DRIVER/LITE/local.h modified: openair2/NETWORK_DRIVER/LITE/netlink.c modified: openair2/NETWORK_DRIVER/LITE/proto_extern.h modified: openair2/NETWORK_DRIVER/LITE/sap.h modified: openair2/NETWORK_DRIVER/LITE/tool.c modified: openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c modified: openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c modified: openair2/NETWORK_DRIVER/MESH/classifier.c modified: openair2/NETWORK_DRIVER/MESH/common.c modified: openair2/NETWORK_DRIVER/MESH/constant.h modified: openair2/NETWORK_DRIVER/MESH/device.c modified: openair2/NETWORK_DRIVER/MESH/ioctl.c modified: openair2/NETWORK_DRIVER/MESH/ioctl.h modified: openair2/NETWORK_DRIVER/MESH/local.h modified: openair2/NETWORK_DRIVER/MESH/mesh.c modified: openair2/NETWORK_DRIVER/MESH/netlink.c modified: openair2/NETWORK_DRIVER/MESH/proto_extern.h modified: openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h modified: openair2/NETWORK_DRIVER/MESH/sap.h modified: openair2/NETWORK_DRIVER/MESH/tool.c modified: openair2/NETWORK_DRIVER/UE_IP/common.c modified: openair2/NETWORK_DRIVER/UE_IP/constant.h modified: openair2/NETWORK_DRIVER/UE_IP/device.c modified: openair2/NETWORK_DRIVER/UE_IP/local.h modified: openair2/NETWORK_DRIVER/UE_IP/netlink.c modified: openair2/NETWORK_DRIVER/UE_IP/proto_extern.h modified: openair2/NETWORK_DRIVER/UE_IP/sap.h modified: openair2/PHY_INTERFACE/defs.h modified: openair2/PHY_INTERFACE/extern.h modified: openair2/PHY_INTERFACE/mac_phy_primitives.c modified: openair2/PHY_INTERFACE/mac_phy_primitives.h modified: openair2/PHY_INTERFACE/vars.h modified: openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c modified: openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h modified: openair2/RRC/LITE/L2_interface.c modified: openair2/RRC/LITE/MESSAGES/asn1_msg.c modified: openair2/RRC/LITE/MESSAGES/asn1_msg.h modified: openair2/RRC/LITE/MESSAGES/rtai_mem.c modified: openair2/RRC/LITE/MESSAGES/rtai_mem.h modified: openair2/RRC/LITE/defs.h modified: openair2/RRC/LITE/extern.h modified: openair2/RRC/LITE/mesh_top.c modified: openair2/RRC/LITE/plmn_data.h modified: openair2/RRC/LITE/proto.h modified: openair2/RRC/LITE/rrc_2_rrm_msg.c modified: openair2/RRC/LITE/rrc_UE.c modified: openair2/RRC/LITE/rrc_UE_ral.c modified: openair2/RRC/LITE/rrc_UE_ral.h modified: openair2/RRC/LITE/rrc_common.c modified: openair2/RRC/LITE/rrc_config.c modified: openair2/RRC/LITE/rrc_eNB.c modified: openair2/RRC/LITE/rrc_eNB_GTPV1U.c modified: openair2/RRC/LITE/rrc_eNB_GTPV1U.h modified: openair2/RRC/LITE/rrc_eNB_S1AP.c modified: openair2/RRC/LITE/rrc_eNB_S1AP.h modified: openair2/RRC/LITE/rrc_eNB_UE_context.c modified: openair2/RRC/LITE/rrc_eNB_UE_context.h modified: openair2/RRC/LITE/rrc_eNB_ral.c modified: openair2/RRC/LITE/rrc_eNB_ral.h modified: openair2/RRC/LITE/rrc_rrm_interface.c modified: openair2/RRC/LITE/rrc_rrm_interface.h modified: openair2/RRC/LITE/rrc_types.h modified: openair2/RRC/LITE/rrm_2_rrc_msg.c modified: openair2/RRC/LITE/utils.c modified: openair2/RRC/LITE/vars.h modified: openair2/RRC/NAS/nas_config.c modified: openair2/RRC/NAS/nas_config.h modified: openair2/RRC/NAS/rb_config.c modified: openair2/RRC/NAS/rb_config.h modified: openair2/RRM_4_RRC_LITE/src/com/Message.cpp modified: openair2/RRM_4_RRC_LITE/src/com/Message.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.h modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.h modified: openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.h modified: openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.cpp modified: openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.h modified: openair2/RRM_4_RRC_LITE/src/platform.h modified: openair2/RRM_4_RRC_LITE/src/platform_constants.h modified: openair2/RRM_4_RRC_LITE/src/platform_defines.h modified: openair2/RRM_4_RRC_LITE/src/platform_dim.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Command.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Command.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Exceptions.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.h modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.cpp modified: openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.h modified: openair2/RRM_4_RRC_LITE/src/rrm.cpp modified: openair2/RRM_4_RRC_LITE/src/test/TestScenario.cpp modified: openair2/RRM_4_RRC_LITE/src/test/TestScenario.h modified: openair2/RRM_4_RRC_LITE/src/test/test.cpp modified: openair2/RRM_4_RRC_LITE/src/version.h modified: openair2/UTIL/BIGPHYS/bigphys.c modified: openair2/UTIL/BIGPHYS/defs.h modified: openair2/UTIL/CLI/cli.c modified: openair2/UTIL/CLI/cli.h modified: openair2/UTIL/CLI/cli_cmd.c modified: openair2/UTIL/CLI/cli_if.h modified: openair2/UTIL/CLI/cli_server.c modified: openair2/UTIL/FIFO/pad_list.c modified: openair2/UTIL/FIFO/pad_list.h modified: openair2/UTIL/FIFO/types.h modified: openair2/UTIL/LISTS/list.c modified: openair2/UTIL/LISTS/list.h modified: openair2/UTIL/LISTS/list2.c modified: openair2/UTIL/LOG/log.c modified: openair2/UTIL/LOG/log.h modified: openair2/UTIL/LOG/log_extern.h modified: openair2/UTIL/LOG/log_if.h modified: openair2/UTIL/LOG/vcd_signal_dumper.c modified: openair2/UTIL/LOG/vcd_signal_dumper.h modified: openair2/UTIL/MATH/crc_byte.c modified: openair2/UTIL/MATH/oml.c modified: openair2/UTIL/MATH/oml.h modified: openair2/UTIL/MATH/random.c modified: openair2/UTIL/MATH/random_proto_extern.h modified: openair2/UTIL/MATH/taus.c modified: openair2/UTIL/MEM/mem_block.c modified: openair2/UTIL/MEM/mem_block.h modified: openair2/UTIL/MEM/mem_mngt.c modified: openair2/UTIL/MEM/mem_mngt_proto_extern.h modified: openair2/UTIL/MEM/mem_pool.h modified: openair2/UTIL/OCG/OCG.c modified: openair2/UTIL/OCG/OCG.h modified: openair2/UTIL/OCG/OCG_call_emu.c modified: openair2/UTIL/OCG/OCG_call_emu.h modified: openair2/UTIL/OCG/OCG_config_mobi.c modified: openair2/UTIL/OCG/OCG_config_mobi.h modified: openair2/UTIL/OCG/OCG_create_dir.c modified: openair2/UTIL/OCG/OCG_create_dir.h modified: openair2/UTIL/OCG/OCG_detect_file.c modified: openair2/UTIL/OCG/OCG_detect_file.h modified: openair2/UTIL/OCG/OCG_extern.h modified: openair2/UTIL/OCG/OCG_generate_report.c modified: openair2/UTIL/OCG/OCG_generate_report.h modified: openair2/UTIL/OCG/OCG_get_opt.c modified: openair2/UTIL/OCG/OCG_get_opt.h modified: openair2/UTIL/OCG/OCG_if.h modified: openair2/UTIL/OCG/OCG_parse_XML.c modified: openair2/UTIL/OCG/OCG_parse_XML.h modified: openair2/UTIL/OCG/OCG_parse_filename.c modified: openair2/UTIL/OCG/OCG_parse_filename.h modified: openair2/UTIL/OCG/OCG_save_XML.c modified: openair2/UTIL/OCG/OCG_save_XML.h modified: openair2/UTIL/OCG/OCG_vars.h modified: openair2/UTIL/OMG/client_traci_OMG.c modified: openair2/UTIL/OMG/client_traci_OMG.h modified: openair2/UTIL/OMG/common.c modified: openair2/UTIL/OMG/defs.h modified: openair2/UTIL/OMG/grid.c modified: openair2/UTIL/OMG/grid.h modified: openair2/UTIL/OMG/id_manager.c modified: openair2/UTIL/OMG/id_manager.h modified: openair2/UTIL/OMG/job.c modified: openair2/UTIL/OMG/mobility_parser.c modified: openair2/UTIL/OMG/mobility_parser.h modified: openair2/UTIL/OMG/omg.c modified: openair2/UTIL/OMG/omg.h modified: openair2/UTIL/OMG/omg_constants.h modified: openair2/UTIL/OMG/omg_hashtable.c modified: openair2/UTIL/OMG/omg_hashtable.h modified: openair2/UTIL/OMG/omg_vars.h modified: openair2/UTIL/OMG/rwalk.c modified: openair2/UTIL/OMG/rwalk.h modified: openair2/UTIL/OMG/rwp.c modified: openair2/UTIL/OMG/rwp.h modified: openair2/UTIL/OMG/socket_traci_OMG.c modified: openair2/UTIL/OMG/socket_traci_OMG.h modified: openair2/UTIL/OMG/static.c modified: openair2/UTIL/OMG/static.h modified: openair2/UTIL/OMG/steadystaterwp.c modified: openair2/UTIL/OMG/steadystaterwp.h modified: openair2/UTIL/OMG/storage_traci_OMG.c modified: openair2/UTIL/OMG/storage_traci_OMG.h modified: openair2/UTIL/OMG/sumo.c modified: openair2/UTIL/OMG/sumo.h modified: openair2/UTIL/OMG/trace.c modified: openair2/UTIL/OMG/trace.h modified: openair2/UTIL/OMG/trace_hashtable.c modified: openair2/UTIL/OMG/trace_hashtable.h modified: openair2/UTIL/OMV/communicationthread.cpp modified: openair2/UTIL/OMV/communicationthread.h modified: openair2/UTIL/OMV/mywindow.cpp modified: openair2/UTIL/OMV/mywindow.h modified: openair2/UTIL/OMV/omv.cpp modified: openair2/UTIL/OMV/openglwidget.cpp modified: openair2/UTIL/OMV/openglwidget.h modified: openair2/UTIL/OMV/structures.h modified: openair2/UTIL/OPT/opt.h modified: openair2/UTIL/OPT/socket_sender.c modified: openair2/UTIL/OPT/vars.h modified: openair2/UTIL/OSA/osa_defs.h modified: openair2/UTIL/OSA/osa_internal.h modified: openair2/UTIL/OSA/osa_key_deriver.c modified: openair2/UTIL/OSA/osa_rijndael.c modified: openair2/UTIL/OSA/osa_rijndael.h modified: openair2/UTIL/OSA/osa_snow3g.c modified: openair2/UTIL/OSA/osa_snow3g.h modified: openair2/UTIL/OSA/osa_stream_eea.c modified: openair2/UTIL/OSA/osa_stream_eia.c modified: openair2/UTIL/OTG/main.c modified: openair2/UTIL/OTG/otg.c modified: openair2/UTIL/OTG/otg.h modified: openair2/UTIL/OTG/otg_config.h modified: openair2/UTIL/OTG/otg_defs.h modified: openair2/UTIL/OTG/otg_externs.h modified: openair2/UTIL/OTG/otg_form.c modified: openair2/UTIL/OTG/otg_form.h modified: openair2/UTIL/OTG/otg_kpi.c modified: openair2/UTIL/OTG/otg_kpi.h modified: openair2/UTIL/OTG/otg_models.c modified: openair2/UTIL/OTG/otg_models.h modified: openair2/UTIL/OTG/otg_rx.c modified: openair2/UTIL/OTG/otg_rx.h modified: openair2/UTIL/OTG/otg_rx_socket.c modified: openair2/UTIL/OTG/otg_rx_socket.h modified: openair2/UTIL/OTG/otg_tx.c modified: openair2/UTIL/OTG/otg_tx.h modified: openair2/UTIL/OTG/otg_tx_socket.c modified: openair2/UTIL/OTG/otg_tx_socket.h modified: openair2/UTIL/OTG/otg_vars.h modified: openair2/UTIL/OTG/traffic_config.h modified: openair2/UTIL/TIMER/umts_timer.c modified: openair2/UTIL/TIMER/umts_timer.h modified: openair2/UTIL/TIMER/umts_timer_proto_extern.h modified: openair2/UTIL/TIMER/umts_timer_struct.h modified: openair2/UTIL/TRACE/fifo_printf.c modified: openair2/UTIL/TRACE/fifo_printf.h modified: openair2/UTIL/TRACE/fifo_printf_proto_extern.h modified: openair2/UTIL/TRACE/print.h modified: openair2/X2AP/x2ap.c modified: openair2/X2AP/x2ap.h modified: openair2/X2AP/x2ap_common.c modified: openair2/X2AP/x2ap_common.h modified: openair3/COMMON/common_types.h modified: openair3/COMMON/gtpv1_u_messages_def.h modified: openair3/COMMON/gtpv1_u_messages_types.h modified: openair3/COMMON/intertask_interface_conf.h modified: openair3/COMMON/messages_def.h modified: openair3/COMMON/messages_types.h modified: openair3/COMMON/nas_messages_def.h modified: openair3/COMMON/nas_messages_types.h modified: openair3/COMMON/s1ap_messages_def.h modified: openair3/COMMON/s1ap_messages_types.h modified: openair3/COMMON/sctp_messages_def.h modified: openair3/COMMON/sctp_messages_types.h modified: openair3/COMMON/security_types.h modified: openair3/COMMON/tasks_def.h modified: openair3/COMMON/udp_messages_def.h modified: openair3/COMMON/udp_messages_types.h modified: openair3/GTPV1-U/gtpv1u.h modified: openair3/GTPV1-U/gtpv1u_eNB.c modified: openair3/GTPV1-U/gtpv1u_eNB_defs.h modified: openair3/GTPV1-U/gtpv1u_eNB_task.h modified: openair3/GTPV1-U/gtpv1u_sgw_defs.h modified: openair3/GTPV1-U/gtpv1u_task.c modified: openair3/GTPV1-U/gtpv1u_teid_pool.c modified: openair3/NAS/COMMON/API/NETWORK/as_message.c modified: openair3/NAS/COMMON/API/NETWORK/l2_message.h modified: openair3/NAS/COMMON/API/NETWORK/nas_message.c modified: openair3/NAS/COMMON/API/NETWORK/nas_message.h modified: openair3/NAS/COMMON/API/NETWORK/network_api.c modified: openair3/NAS/COMMON/API/NETWORK/network_api.h modified: openair3/NAS/COMMON/EMM/MSG/AttachAccept.c modified: openair3/NAS/COMMON/EMM/MSG/AttachAccept.h modified: openair3/NAS/COMMON/EMM/MSG/AttachComplete.c modified: openair3/NAS/COMMON/EMM/MSG/AttachComplete.h modified: openair3/NAS/COMMON/EMM/MSG/AttachReject.c modified: openair3/NAS/COMMON/EMM/MSG/AttachReject.h modified: openair3/NAS/COMMON/EMM/MSG/AttachRequest.c modified: openair3/NAS/COMMON/EMM/MSG/AttachRequest.h modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c modified: openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h modified: openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c modified: openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h modified: openair3/NAS/COMMON/EMM/MSG/DetachAccept.c modified: openair3/NAS/COMMON/EMM/MSG/DetachAccept.h modified: openair3/NAS/COMMON/EMM/MSG/DetachRequest.c modified: openair3/NAS/COMMON/EMM/MSG/DetachRequest.h modified: openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c modified: openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h modified: openair3/NAS/COMMON/EMM/MSG/EmmInformation.c modified: openair3/NAS/COMMON/EMM/MSG/EmmInformation.h modified: openair3/NAS/COMMON/EMM/MSG/EmmStatus.c modified: openair3/NAS/COMMON/EMM/MSG/EmmStatus.h modified: openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c modified: openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h modified: openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c modified: openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h modified: openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c modified: openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h modified: openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c modified: openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h modified: openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c modified: openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h modified: openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h modified: openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h modified: openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c modified: openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c modified: openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c modified: openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h modified: openair3/NAS/COMMON/EMM/MSG/ServiceReject.c modified: openair3/NAS/COMMON/EMM/MSG/ServiceReject.h modified: openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c modified: openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c modified: openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h modified: openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c modified: openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h modified: openair3/NAS/COMMON/EMM/MSG/emm_cause.h modified: openair3/NAS/COMMON/EMM/MSG/emm_msg.c modified: openair3/NAS/COMMON/EMM/MSG/emm_msg.h modified: openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h modified: openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c modified: openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h modified: openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c modified: openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h modified: openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c modified: openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h modified: openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c modified: openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h modified: openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c modified: openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h modified: openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c modified: openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c modified: openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h modified: openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c modified: openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h modified: openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c modified: openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h modified: openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c modified: openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h modified: openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c modified: openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h modified: openair3/NAS/COMMON/ESM/MSG/EsmStatus.c modified: openair3/NAS/COMMON/ESM/MSG/EsmStatus.h modified: openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c modified: openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h modified: openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c modified: openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h modified: openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c modified: openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h modified: openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c modified: openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h modified: openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c modified: openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h modified: openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c modified: openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h modified: openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c modified: openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h modified: openair3/NAS/COMMON/ESM/MSG/esm_cause.h modified: openair3/NAS/COMMON/ESM/MSG/esm_msg.c modified: openair3/NAS/COMMON/ESM/MSG/esm_msg.h modified: openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h modified: openair3/NAS/COMMON/IES/AccessPointName.c modified: openair3/NAS/COMMON/IES/AccessPointName.h modified: openair3/NAS/COMMON/IES/AdditionalUpdateResult.c modified: openair3/NAS/COMMON/IES/AdditionalUpdateResult.h modified: openair3/NAS/COMMON/IES/AdditionalUpdateType.c modified: openair3/NAS/COMMON/IES/AdditionalUpdateType.h modified: openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c modified: openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h modified: openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c modified: openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h modified: openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c modified: openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h modified: openair3/NAS/COMMON/IES/AuthenticationParameterRand.c modified: openair3/NAS/COMMON/IES/AuthenticationParameterRand.h modified: openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c modified: openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h modified: openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c modified: openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h modified: openair3/NAS/COMMON/IES/Cli.c modified: openair3/NAS/COMMON/IES/Cli.h modified: openair3/NAS/COMMON/IES/CsfbResponse.c modified: openair3/NAS/COMMON/IES/CsfbResponse.h modified: openair3/NAS/COMMON/IES/DaylightSavingTime.c modified: openair3/NAS/COMMON/IES/DaylightSavingTime.h modified: openair3/NAS/COMMON/IES/DetachType.c modified: openair3/NAS/COMMON/IES/DetachType.h modified: openair3/NAS/COMMON/IES/DrxParameter.c modified: openair3/NAS/COMMON/IES/DrxParameter.h modified: openair3/NAS/COMMON/IES/EmergencyNumberList.c modified: openair3/NAS/COMMON/IES/EmergencyNumberList.h modified: openair3/NAS/COMMON/IES/EmmCause.c modified: openair3/NAS/COMMON/IES/EmmCause.h modified: openair3/NAS/COMMON/IES/EpsAttachResult.c modified: openair3/NAS/COMMON/IES/EpsAttachResult.h modified: openair3/NAS/COMMON/IES/EpsAttachType.c modified: openair3/NAS/COMMON/IES/EpsAttachType.h modified: openair3/NAS/COMMON/IES/EpsBearerContextStatus.c modified: openair3/NAS/COMMON/IES/EpsBearerContextStatus.h modified: openair3/NAS/COMMON/IES/EpsBearerIdentity.c modified: openair3/NAS/COMMON/IES/EpsBearerIdentity.h modified: openair3/NAS/COMMON/IES/EpsMobileIdentity.c modified: openair3/NAS/COMMON/IES/EpsMobileIdentity.h modified: openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c modified: openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h modified: openair3/NAS/COMMON/IES/EpsQualityOfService.c modified: openair3/NAS/COMMON/IES/EpsQualityOfService.h modified: openair3/NAS/COMMON/IES/EpsUpdateResult.c modified: openair3/NAS/COMMON/IES/EpsUpdateResult.h modified: openair3/NAS/COMMON/IES/EpsUpdateType.c modified: openair3/NAS/COMMON/IES/EpsUpdateType.h modified: openair3/NAS/COMMON/IES/EsmCause.c modified: openair3/NAS/COMMON/IES/EsmCause.h modified: openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c modified: openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h modified: openair3/NAS/COMMON/IES/EsmMessageContainer.c modified: openair3/NAS/COMMON/IES/EsmMessageContainer.h modified: openair3/NAS/COMMON/IES/GprsTimer.c modified: openair3/NAS/COMMON/IES/GprsTimer.h modified: openair3/NAS/COMMON/IES/GutiType.c modified: openair3/NAS/COMMON/IES/GutiType.h modified: openair3/NAS/COMMON/IES/IdentityType2.c modified: openair3/NAS/COMMON/IES/IdentityType2.h modified: openair3/NAS/COMMON/IES/ImeisvRequest.c modified: openair3/NAS/COMMON/IES/ImeisvRequest.h modified: openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c modified: openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h modified: openair3/NAS/COMMON/IES/LcsClientIdentity.c modified: openair3/NAS/COMMON/IES/LcsClientIdentity.h modified: openair3/NAS/COMMON/IES/LcsIndicator.c modified: openair3/NAS/COMMON/IES/LcsIndicator.h modified: openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c modified: openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h modified: openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c modified: openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h modified: openair3/NAS/COMMON/IES/LocationAreaIdentification.c modified: openair3/NAS/COMMON/IES/LocationAreaIdentification.h modified: openair3/NAS/COMMON/IES/MessageType.c modified: openair3/NAS/COMMON/IES/MessageType.h modified: openair3/NAS/COMMON/IES/MobileIdentity.c modified: openair3/NAS/COMMON/IES/MobileIdentity.h modified: openair3/NAS/COMMON/IES/MobileStationClassmark2.c modified: openair3/NAS/COMMON/IES/MobileStationClassmark2.h modified: openair3/NAS/COMMON/IES/MobileStationClassmark3.c modified: openair3/NAS/COMMON/IES/MobileStationClassmark3.h modified: openair3/NAS/COMMON/IES/MsNetworkCapability.c modified: openair3/NAS/COMMON/IES/MsNetworkCapability.h modified: openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c modified: openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h modified: openair3/NAS/COMMON/IES/NasKeySetIdentifier.c modified: openair3/NAS/COMMON/IES/NasKeySetIdentifier.h modified: openair3/NAS/COMMON/IES/NasMessageContainer.c modified: openair3/NAS/COMMON/IES/NasMessageContainer.h modified: openair3/NAS/COMMON/IES/NasRequestType.c modified: openair3/NAS/COMMON/IES/NasRequestType.h modified: openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c modified: openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h modified: openair3/NAS/COMMON/IES/NetworkName.c modified: openair3/NAS/COMMON/IES/NetworkName.h modified: openair3/NAS/COMMON/IES/Nonce.c modified: openair3/NAS/COMMON/IES/Nonce.h modified: openair3/NAS/COMMON/IES/PTmsiSignature.c modified: openair3/NAS/COMMON/IES/PTmsiSignature.h modified: openair3/NAS/COMMON/IES/PacketFlowIdentifier.c modified: openair3/NAS/COMMON/IES/PacketFlowIdentifier.h modified: openair3/NAS/COMMON/IES/PagingIdentity.c modified: openair3/NAS/COMMON/IES/PagingIdentity.h modified: openair3/NAS/COMMON/IES/PdnAddress.c modified: openair3/NAS/COMMON/IES/PdnAddress.h modified: openair3/NAS/COMMON/IES/PdnType.c modified: openair3/NAS/COMMON/IES/PdnType.h modified: openair3/NAS/COMMON/IES/PlmnList.c modified: openair3/NAS/COMMON/IES/PlmnList.h modified: openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c modified: openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h modified: openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c modified: openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h modified: openair3/NAS/COMMON/IES/ProtocolDiscriminator.c modified: openair3/NAS/COMMON/IES/ProtocolDiscriminator.h modified: openair3/NAS/COMMON/IES/QualityOfService.c modified: openair3/NAS/COMMON/IES/QualityOfService.h modified: openair3/NAS/COMMON/IES/RadioPriority.c modified: openair3/NAS/COMMON/IES/RadioPriority.h modified: openair3/NAS/COMMON/IES/SecurityHeaderType.c modified: openair3/NAS/COMMON/IES/SecurityHeaderType.h modified: openair3/NAS/COMMON/IES/ServiceType.c modified: openair3/NAS/COMMON/IES/ServiceType.h modified: openair3/NAS/COMMON/IES/ShortMac.c modified: openair3/NAS/COMMON/IES/ShortMac.h modified: openair3/NAS/COMMON/IES/SsCode.c modified: openair3/NAS/COMMON/IES/SsCode.h modified: openair3/NAS/COMMON/IES/SupportedCodecList.c modified: openair3/NAS/COMMON/IES/SupportedCodecList.h modified: openair3/NAS/COMMON/IES/TimeZone.c modified: openair3/NAS/COMMON/IES/TimeZone.h modified: openair3/NAS/COMMON/IES/TimeZoneAndTime.c modified: openair3/NAS/COMMON/IES/TimeZoneAndTime.h modified: openair3/NAS/COMMON/IES/TmsiStatus.c modified: openair3/NAS/COMMON/IES/TmsiStatus.h modified: openair3/NAS/COMMON/IES/TrackingAreaIdentity.c modified: openair3/NAS/COMMON/IES/TrackingAreaIdentity.h modified: openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c modified: openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h modified: openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c modified: openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h modified: openair3/NAS/COMMON/IES/TrafficFlowTemplate.c modified: openair3/NAS/COMMON/IES/TrafficFlowTemplate.h modified: openair3/NAS/COMMON/IES/TransactionIdentifier.c modified: openair3/NAS/COMMON/IES/TransactionIdentifier.h modified: openair3/NAS/COMMON/IES/UeNetworkCapability.c modified: openair3/NAS/COMMON/IES/UeNetworkCapability.h modified: openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c modified: openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h modified: openair3/NAS/COMMON/IES/UeSecurityCapability.c modified: openair3/NAS/COMMON/IES/UeSecurityCapability.h modified: openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c modified: openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h modified: openair3/NAS/COMMON/UTIL/OctetString.c modified: openair3/NAS/COMMON/UTIL/OctetString.h modified: openair3/NAS/COMMON/UTIL/TLVDecoder.c modified: openair3/NAS/COMMON/UTIL/TLVDecoder.h modified: openair3/NAS/COMMON/UTIL/TLVEncoder.c modified: openair3/NAS/COMMON/UTIL/TLVEncoder.h modified: openair3/NAS/COMMON/UTIL/device.c modified: openair3/NAS/COMMON/UTIL/device.h modified: openair3/NAS/COMMON/UTIL/memory.c modified: openair3/NAS/COMMON/UTIL/memory.h modified: openair3/NAS/COMMON/UTIL/nas_log.c modified: openair3/NAS/COMMON/UTIL/nas_log.h modified: openair3/NAS/COMMON/UTIL/nas_timer.c modified: openair3/NAS/COMMON/UTIL/nas_timer.h modified: openair3/NAS/COMMON/UTIL/parser.c modified: openair3/NAS/COMMON/UTIL/parser.h modified: openair3/NAS/COMMON/UTIL/socket.c modified: openair3/NAS/COMMON/UTIL/socket.h modified: openair3/NAS/COMMON/UTIL/stty.c modified: openair3/NAS/COMMON/UTIL/tst/timer.c modified: openair3/NAS/COMMON/securityDef.h modified: openair3/NAS/COMMON/userDef.h modified: openair3/NAS/TEST/AS_SIMULATOR/as_data.c modified: openair3/NAS/TEST/AS_SIMULATOR/as_data.h modified: openair3/NAS/TEST/AS_SIMULATOR/as_process.c modified: openair3/NAS/TEST/AS_SIMULATOR/as_process.h modified: openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c modified: openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c modified: openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h modified: openair3/NAS/TEST/AS_SIMULATOR/nas_data.c modified: openair3/NAS/TEST/AS_SIMULATOR/nas_data.h modified: openair3/NAS/TEST/AS_SIMULATOR/nas_process.c modified: openair3/NAS/TEST/AS_SIMULATOR/nas_process.h modified: openair3/NAS/TEST/NETWORK/network_parser.c modified: openair3/NAS/TEST/NETWORK/network_parser.h modified: openair3/NAS/TEST/NETWORK/network_simulator.c modified: openair3/NAS/TEST/USER/user_parser.c modified: openair3/NAS/TEST/USER/user_parser.h modified: openair3/NAS/TEST/USER/user_simulator.c modified: openair3/NAS/TOOLS/network.h modified: openair3/NAS/TOOLS/ue_data.c modified: openair3/NAS/TOOLS/usim_data.c modified: openair3/NAS/UE/API/USER/at_command.c modified: openair3/NAS/UE/API/USER/at_command.h modified: openair3/NAS/UE/API/USER/at_error.c modified: openair3/NAS/UE/API/USER/at_error.h modified: openair3/NAS/UE/API/USER/at_response.c modified: openair3/NAS/UE/API/USER/at_response.h modified: openair3/NAS/UE/API/USER/tst/at_parser.c modified: openair3/NAS/UE/API/USER/user_api.c modified: openair3/NAS/UE/API/USER/user_api.h modified: openair3/NAS/UE/API/USER/user_indication.c modified: openair3/NAS/UE/API/USER/user_indication.h modified: openair3/NAS/UE/API/USIM/aka_functions.c modified: openair3/NAS/UE/API/USIM/aka_functions.h modified: openair3/NAS/UE/API/USIM/usim_api.c modified: openair3/NAS/UE/API/USIM/usim_api.h modified: openair3/NAS/UE/EMM/Attach.c modified: openair3/NAS/UE/EMM/Authentication.c modified: openair3/NAS/UE/EMM/Detach.c modified: openair3/NAS/UE/EMM/EmmStatusHdl.c modified: openair3/NAS/UE/EMM/Identification.c modified: openair3/NAS/UE/EMM/IdleMode.c modified: openair3/NAS/UE/EMM/IdleMode.h modified: openair3/NAS/UE/EMM/LowerLayer.c modified: openair3/NAS/UE/EMM/LowerLayer.h modified: openair3/NAS/UE/EMM/SAP/EmmDeregistered.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c modified: openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c modified: openair3/NAS/UE/EMM/SAP/EmmNull.c modified: openair3/NAS/UE/EMM/SAP/EmmRegistered.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c modified: openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c modified: openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c modified: openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c modified: openair3/NAS/UE/EMM/SAP/emm_as.c modified: openair3/NAS/UE/EMM/SAP/emm_as.h modified: openair3/NAS/UE/EMM/SAP/emm_asDef.h modified: openair3/NAS/UE/EMM/SAP/emm_esm.c modified: openair3/NAS/UE/EMM/SAP/emm_esm.h modified: openair3/NAS/UE/EMM/SAP/emm_esmDef.h modified: openair3/NAS/UE/EMM/SAP/emm_fsm.c modified: openair3/NAS/UE/EMM/SAP/emm_fsm.h modified: openair3/NAS/UE/EMM/SAP/emm_recv.c modified: openair3/NAS/UE/EMM/SAP/emm_recv.h modified: openair3/NAS/UE/EMM/SAP/emm_reg.c modified: openair3/NAS/UE/EMM/SAP/emm_reg.h modified: openair3/NAS/UE/EMM/SAP/emm_regDef.h modified: openair3/NAS/UE/EMM/SAP/emm_sap.c modified: openair3/NAS/UE/EMM/SAP/emm_sap.h modified: openair3/NAS/UE/EMM/SAP/emm_send.c modified: openair3/NAS/UE/EMM/SAP/emm_send.h modified: openair3/NAS/UE/EMM/SecurityModeControl.c modified: openair3/NAS/UE/EMM/ServiceRequestHdl.c modified: openair3/NAS/UE/EMM/TrackingAreaUpdate.c modified: openair3/NAS/UE/EMM/emmData.h modified: openair3/NAS/UE/EMM/emm_main.c modified: openair3/NAS/UE/EMM/emm_main.h modified: openair3/NAS/UE/EMM/emm_proc.h modified: openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c modified: openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c modified: openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c modified: openair3/NAS/UE/ESM/EsmStatusHdl.c modified: openair3/NAS/UE/ESM/PdnConnectivity.c modified: openair3/NAS/UE/ESM/PdnDisconnect.c modified: openair3/NAS/UE/ESM/SAP/esm_recv.c modified: openair3/NAS/UE/ESM/SAP/esm_recv.h modified: openair3/NAS/UE/ESM/SAP/esm_sap.c modified: openair3/NAS/UE/ESM/SAP/esm_sap.h modified: openair3/NAS/UE/ESM/SAP/esm_sapDef.h modified: openair3/NAS/UE/ESM/SAP/esm_send.c modified: openair3/NAS/UE/ESM/SAP/esm_send.h modified: openair3/NAS/UE/ESM/esmData.h modified: openair3/NAS/UE/ESM/esm_ebr.c modified: openair3/NAS/UE/ESM/esm_ebr.h modified: openair3/NAS/UE/ESM/esm_ebr_context.c modified: openair3/NAS/UE/ESM/esm_ebr_context.h modified: openair3/NAS/UE/ESM/esm_ip.c modified: openair3/NAS/UE/ESM/esm_main.c modified: openair3/NAS/UE/ESM/esm_main.h modified: openair3/NAS/UE/ESM/esm_proc.h modified: openair3/NAS/UE/ESM/esm_pt.c modified: openair3/NAS/UE/ESM/esm_pt.h modified: openair3/NAS/UE/UEprocess.c modified: openair3/NAS/UE/nas_itti_messaging.c modified: openair3/NAS/UE/nas_itti_messaging.h modified: openair3/NAS/UE/nas_network.c modified: openair3/NAS/UE/nas_network.h modified: openair3/NAS/UE/nas_parser.c modified: openair3/NAS/UE/nas_parser.h modified: openair3/NAS/UE/nas_proc.c modified: openair3/NAS/UE/nas_proc.h modified: openair3/NAS/UE/nas_ue_task.c modified: openair3/NAS/UE/nas_user.c modified: openair3/NAS/UE/nas_user.h modified: openair3/S1AP/s1ap_common.c modified: openair3/S1AP/s1ap_common.h modified: openair3/S1AP/s1ap_eNB.c modified: openair3/S1AP/s1ap_eNB.h modified: openair3/S1AP/s1ap_eNB_context_management_procedures.c modified: openair3/S1AP/s1ap_eNB_context_management_procedures.h modified: openair3/S1AP/s1ap_eNB_decoder.c modified: openair3/S1AP/s1ap_eNB_decoder.h modified: openair3/S1AP/s1ap_eNB_default_values.h modified: openair3/S1AP/s1ap_eNB_defs.h modified: openair3/S1AP/s1ap_eNB_encoder.c modified: openair3/S1AP/s1ap_eNB_encoder.h modified: openair3/S1AP/s1ap_eNB_handlers.c modified: openair3/S1AP/s1ap_eNB_handlers.h modified: openair3/S1AP/s1ap_eNB_itti_messaging.c modified: openair3/S1AP/s1ap_eNB_itti_messaging.h modified: openair3/S1AP/s1ap_eNB_management_procedures.c modified: openair3/S1AP/s1ap_eNB_management_procedures.h modified: openair3/S1AP/s1ap_eNB_nas_procedures.c modified: openair3/S1AP/s1ap_eNB_nas_procedures.h modified: openair3/S1AP/s1ap_eNB_nnsf.c modified: openair3/S1AP/s1ap_eNB_nnsf.h modified: openair3/S1AP/s1ap_eNB_overload.c modified: openair3/S1AP/s1ap_eNB_overload.h modified: openair3/S1AP/s1ap_eNB_trace.c modified: openair3/S1AP/s1ap_eNB_trace.h modified: openair3/S1AP/s1ap_eNB_ue_context.c modified: openair3/S1AP/s1ap_eNB_ue_context.h modified: openair3/SCTP/sctp_common.c modified: openair3/SCTP/sctp_common.h modified: openair3/SCTP/sctp_default_values.h modified: openair3/SCTP/sctp_eNB_defs.h modified: openair3/SCTP/sctp_eNB_itti_messaging.c modified: openair3/SCTP/sctp_eNB_itti_messaging.h modified: openair3/SCTP/sctp_eNB_task.c modified: openair3/SCTP/sctp_eNB_task.h modified: openair3/SCTP/sctp_primitives_client.c modified: openair3/SCTP/sctp_primitives_client.h modified: openair3/SECU/kdf.c modified: openair3/SECU/key_nas_deriver.c modified: openair3/SECU/key_nas_encryption.c modified: openair3/SECU/nas_stream_eea1.c modified: openair3/SECU/nas_stream_eea2.c modified: openair3/SECU/nas_stream_eia1.c modified: openair3/SECU/nas_stream_eia2.c modified: openair3/SECU/rijndael.c modified: openair3/SECU/rijndael.h modified: openair3/SECU/secu_defs.h modified: openair3/SECU/snow3g.c modified: openair3/SECU/snow3g.h modified: openair3/TEST/EPC_TEST/generate_scenario.c modified: openair3/TEST/EPC_TEST/generate_scenario.h modified: openair3/TEST/EPC_TEST/play_scenario.c modified: openair3/TEST/EPC_TEST/play_scenario.h modified: openair3/TEST/EPC_TEST/play_scenario_decode.c modified: openair3/TEST/EPC_TEST/play_scenario_display.c modified: openair3/TEST/EPC_TEST/play_scenario_fsm.c modified: openair3/TEST/EPC_TEST/play_scenario_parse.c modified: openair3/TEST/EPC_TEST/play_scenario_s1ap.c modified: openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c modified: openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h modified: openair3/TEST/EPC_TEST/play_scenario_sctp.c modified: openair3/TEST/oaisim_mme_client_test.c modified: openair3/TEST/oaisim_mme_itti_test.c modified: openair3/TEST/oaisim_mme_list_benchmark.c modified: openair3/TEST/oaisim_mme_s1ap_test.c modified: openair3/TEST/oaisim_mme_sctp_test.c modified: openair3/TEST/oaisim_mme_test_s1c.c modified: openair3/TEST/oaisim_mme_test_s1c.h modified: openair3/TEST/oaisim_mme_test_s1c_s1ap.c modified: openair3/TEST/oaisim_mme_test_s1c_s1ap.h modified: openair3/TEST/oaisim_mme_test_s1c_scenario.c modified: openair3/TEST/oaisim_mme_test_s1c_scenario.h modified: openair3/TEST/oaisim_mme_test_s1c_scenario1.c modified: openair3/TEST/test_aes128_cmac_encrypt.c modified: openair3/TEST/test_aes128_ctr_decrypt.c modified: openair3/TEST/test_aes128_ctr_encrypt.c modified: openair3/TEST/test_kdf.c modified: openair3/TEST/test_s1ap.c modified: openair3/TEST/test_secu.c modified: openair3/TEST/test_secu_kenb.c modified: openair3/TEST/test_secu_knas.c modified: openair3/TEST/test_secu_knas_encrypt_eea1.c modified: openair3/TEST/test_secu_knas_encrypt_eea2.c modified: openair3/TEST/test_secu_knas_encrypt_eia1.c modified: openair3/TEST/test_secu_knas_encrypt_eia2.c modified: openair3/TEST/test_secu_knas_stream_int.c modified: openair3/UDP/udp_eNB_task.c modified: openair3/UDP/udp_eNB_task.h modified: openair3/UTILS/conversions.c modified: openair3/UTILS/conversions.h modified: openair3/UTILS/enum_string.c modified: openair3/UTILS/enum_string.h modified: openair3/UTILS/log.c modified: openair3/UTILS/log.h modified: openair3/UTILS/mcc_mnc_itu.c modified: openair3/UTILS/mcc_mnc_itu.h modified: openair3/UTILS/mme_config.c modified: openair3/UTILS/mme_config.h modified: openair3/UTILS/mme_default_values.h modified: targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c modified: targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h modified: targets/ARCH/COMMON/common_lib.c modified: targets/ARCH/COMMON/common_lib.h modified: targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c modified: targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c modified: targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c modified: targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h modified: targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h modified: targets/ARCH/EXMIMO/DEFS/openair_device.h modified: targets/ARCH/EXMIMO/DEFS/pcie_interface.h modified: targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h modified: targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c modified: targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h modified: targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c modified: targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c modified: targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c modified: targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c modified: targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c modified: targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c modified: targets/ARCH/EXMIMO/USERSPACE/LIB/example.c modified: targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c modified: targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h modified: targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c modified: targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h modified: targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c modified: targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h modified: targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp modified: targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp modified: targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp modified: targets/COMMON/create_tasks.c modified: targets/COMMON/create_tasks.h modified: targets/RT/USER/TOOLS/thread_ipc.c modified: targets/RT/USER/TOOLS/thread_ipc.h modified: targets/RT/USER/UE_transport_IQ.c modified: targets/RT/USER/condtest.c modified: targets/RT/USER/eNB_transport_IQ.c modified: targets/RT/USER/emos-raw.c modified: targets/RT/USER/lte-enb.c modified: targets/RT/USER/lte-softmodem.c modified: targets/RT/USER/lte-ue.c modified: targets/RT/USER/msg_helper.c modified: targets/RT/USER/msg_many.c modified: targets/RT/USER/msg_many.h modified: targets/RT/USER/rrh.c modified: targets/RT/USER/rrh_gw.c modified: targets/RT/USER/rrh_gw.h modified: targets/RT/USER/rrh_gw_externs.h modified: targets/RT/USER/rt_wrapper.c modified: targets/RT/USER/rt_wrapper.h modified: targets/RT/USER/sleeptest.c modified: targets/RT/USER/stats.c modified: targets/RT/USER/stats.h modified: targets/RT/USER/synctest.c modified: targets/SIMU/PROC/Process.c modified: targets/SIMU/PROC/Process.h modified: targets/SIMU/PROC/Tsync.h modified: targets/SIMU/PROC/channel_sim_proc.c modified: targets/SIMU/PROC/channel_sim_proc.h modified: targets/SIMU/PROC/interface.h modified: targets/SIMU/USER/channel_sim.c modified: targets/SIMU/USER/cor_SF_sim.c modified: targets/SIMU/USER/cor_SF_sim.h modified: targets/SIMU/USER/event_handler.c modified: targets/SIMU/USER/event_handler.h modified: targets/SIMU/USER/init_lte.c modified: targets/SIMU/USER/init_lte.h modified: targets/SIMU/USER/oaisim.c modified: targets/SIMU/USER/oaisim.h modified: targets/SIMU/USER/oaisim_config.c modified: targets/SIMU/USER/oaisim_config.h modified: targets/SIMU/USER/oaisim_functions.c modified: targets/SIMU/USER/oaisim_functions.h modified: targets/SIMU/USER/oaisim_pad.c modified: targets/SIMU/USER/phy_procedures_sim_form.c modified: targets/SIMU/USER/phy_procedures_sim_form.h modified: targets/SIMU/USER/sinr_sim.c modified: targets/TEST/AT_COMMANDS/oaisim.c modified: targets/TEST/PACKET_TRACER/pt.c modified: targets/TEST/PDCP/test_pdcp.c modified: targets/TEST/PDCP/test_pdcp.h modified: targets/TEST/PDCP/test_util.h modified: targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c modified: targets/TEST/RLC_AM_V9.3.0/oaisim.c modified: targets/TEST/RLC_UM_V9.3.0/oaisim.c modified: targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp modified: targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp modified: targets/TEST/ROHDE_SCHWARZ/TcpClient.h
1707 lines
64 KiB
C
1707 lines
64 KiB
C
/*
|
|
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership.
|
|
* The OpenAirInterface Software Alliance licenses this file to You under
|
|
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
|
|
* except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.openairinterface.org/?page_id=698
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*-------------------------------------------------------------------------------
|
|
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
* contact@openairinterface.org
|
|
*/
|
|
|
|
/*! \file ulsim.c
|
|
\brief Top-level DL simulator
|
|
\author R. Knopp
|
|
\date 2011 - 2014
|
|
\version 0.1
|
|
\company Eurecom
|
|
\email: knopp@eurecom.fr
|
|
\note
|
|
\warning
|
|
*/
|
|
|
|
#include <string.h>
|
|
#include <math.h>
|
|
#include <unistd.h>
|
|
#include "SIMULATION/TOOLS/defs.h"
|
|
#include "PHY/types.h"
|
|
#include "PHY/defs.h"
|
|
#include "PHY/vars.h"
|
|
|
|
#include "SCHED/defs.h"
|
|
#include "SCHED/vars.h"
|
|
#include "LAYER2/MAC/vars.h"
|
|
#include "OCG_vars.h"
|
|
|
|
#include "unitary_defs.h"
|
|
|
|
#include "PHY/TOOLS/lte_phy_scope.h"
|
|
|
|
PHY_VARS_eNB *eNB;
|
|
PHY_VARS_UE *UE;
|
|
|
|
|
|
|
|
|
|
//#define MCS_COUNT 23//added for PHY abstraction
|
|
|
|
channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX];
|
|
channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX];
|
|
//Added for PHY abstraction
|
|
node_desc_t *enb_data[NUMBER_OF_eNB_MAX];
|
|
node_desc_t *ue_data[NUMBER_OF_UE_MAX];
|
|
//double sinr_bler_map[MCS_COUNT][2][16];
|
|
|
|
extern uint16_t beta_ack[16],beta_ri[16],beta_cqi[16];
|
|
//extern char* namepointer_chMag ;
|
|
|
|
int xforms=0;
|
|
FD_lte_phy_scope_enb *form_enb;
|
|
char title[255];
|
|
|
|
/*the following parameters are used to control the processing times*/
|
|
double t_tx_max = -1000000000; /*!< \brief initial max process time for tx */
|
|
double t_rx_max = -1000000000; /*!< \brief initial max process time for rx */
|
|
double t_tx_min = 1000000000; /*!< \brief initial min process time for tx */
|
|
double t_rx_min = 1000000000; /*!< \brief initial min process time for tx */
|
|
int n_tx_dropped = 0; /*!< \brief initial max process time for tx */
|
|
int n_rx_dropped = 0; /*!< \brief initial max process time for rx */
|
|
|
|
|
|
void fill_ulsch_dci(PHY_VARS_eNB *eNB,void *UL_dci,int first_rb,int nb_rb,int mcs,int ndi,int cqi_flag) {
|
|
|
|
switch (eNB->frame_parms.N_RB_UL) {
|
|
case 6:
|
|
break;
|
|
|
|
case 25:
|
|
if (eNB->frame_parms.frame_type == TDD) {
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->type = 0;
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->rballoc = computeRIV(eNB->frame_parms.N_RB_UL,first_rb,nb_rb);// 12 RBs from position 8
|
|
//printf("nb_rb %d/%d, rballoc %d (dci %x)\n",nb_rb,eNB->frame_parms.N_RB_UL,((DCI0_5MHz_TDD_1_6_t*)UL_dci)->rballoc,*(uint32_t *)UL_dci);
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->mcs = mcs;
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->ndi = ndi;
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->TPC = 0;
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->cqi_req = cqi_flag&1;
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->cshift = 0;
|
|
((DCI0_5MHz_TDD_1_6_t*)UL_dci)->dai = 1;
|
|
} else {
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->type = 0;
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->rballoc = computeRIV(eNB->frame_parms.N_RB_UL,first_rb,nb_rb);// 12 RBs from position 8
|
|
// printf("nb_rb %d/%d, rballoc %d (dci %x) (dcip %p)\n",nb_rb,eNB->frame_parms.N_RB_UL,((DCI0_5MHz_FDD_t*)UL_dci)->rballoc,*(uint32_t *)UL_dci,UL_dci);
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->mcs = mcs;
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->ndi = ndi;
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->TPC = 0;
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->cqi_req = cqi_flag&1;
|
|
((DCI0_5MHz_FDD_t*)UL_dci)->cshift = 0;
|
|
}
|
|
|
|
break;
|
|
|
|
case 50:
|
|
if (eNB->frame_parms.frame_type == TDD) {
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->type = 0;
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->rballoc = computeRIV(eNB->frame_parms.N_RB_UL,first_rb,nb_rb);// 12 RBs from position 8
|
|
// printf("nb_rb %d/%d, rballoc %d (dci %x)\n",nb_rb,eNB->frame_parms.N_RB_UL,((DCI0_10MHz_TDD_1_6_t*)UL_dci)->rballoc,*(uint32_t *)UL_dci);
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->mcs = mcs;
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->ndi = ndi;
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->TPC = 0;
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->cqi_req = cqi_flag&1;
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->cshift = 0;
|
|
((DCI0_10MHz_TDD_1_6_t*)UL_dci)->dai = 1;
|
|
} else {
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->type = 0;
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->rballoc = computeRIV(eNB->frame_parms.N_RB_UL,first_rb,nb_rb);// 12 RBs from position 8
|
|
//printf("nb_rb %d/%d, rballoc %d (dci %x)\n",nb_rb,eNB->frame_parms.N_RB_UL,((DCI0_10MHz_FDD_t*)UL_dci)->rballoc,*(uint32_t *)UL_dci);
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->mcs = mcs;
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->ndi = ndi;
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->TPC = 0;
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->cqi_req = cqi_flag&1;
|
|
((DCI0_10MHz_FDD_t*)UL_dci)->cshift = 0;
|
|
}
|
|
|
|
break;
|
|
|
|
case 100:
|
|
if (eNB->frame_parms.frame_type == TDD) {
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->type = 0;
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->rballoc = computeRIV(eNB->frame_parms.N_RB_UL,first_rb,nb_rb);// 12 RBs from position 8
|
|
// printf("nb_rb %d/%d, rballoc %d (dci %x)\n",nb_rb,eNB->frame_parms.N_RB_UL,((DCI0_20MHz_TDD_1_6_t*)UL_dci)->rballoc,*(uint32_t *)UL_dci);
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->mcs = mcs;
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->ndi = ndi;
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->TPC = 0;
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->cqi_req = cqi_flag&1;
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->cshift = 0;
|
|
((DCI0_20MHz_TDD_1_6_t*)UL_dci)->dai = 1;
|
|
} else {
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->type = 0;
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->rballoc = computeRIV(eNB->frame_parms.N_RB_UL,first_rb,nb_rb);// 12 RBs from position 8
|
|
// printf("nb_rb %d/%d, rballoc %d (dci %x) (UL_dci %p)\n",nb_rb,eNB->frame_parms.N_RB_UL,((DCI0_20MHz_FDD_t*)UL_dci)->rballoc,*(uint32_t *)UL_dci,(void*)UL_dci);
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->mcs = mcs;
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->ndi = ndi;
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->TPC = 0;
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->cqi_req = cqi_flag&1;
|
|
((DCI0_20MHz_FDD_t*)UL_dci)->cshift = 0;
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
extern void eNB_fep_full(PHY_VARS_eNB *eNB);
|
|
extern void eNB_fep_full_2thread(PHY_VARS_eNB *eNB);
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
|
|
char c;
|
|
int i,j,aa,u;
|
|
|
|
int aarx,aatx;
|
|
double channelx,channely;
|
|
double sigma2, sigma2_dB=10,SNR,SNR2,snr0=-2.0,snr1,SNRmeas,rate,saving_bler=0;
|
|
double input_snr_step=.2,snr_int=30;
|
|
double blerr;
|
|
|
|
int **txdata;
|
|
|
|
LTE_DL_FRAME_PARMS *frame_parms;
|
|
double s_re[2][30720],s_im[2][30720],r_re[2][30720],r_im[2][30720];
|
|
double forgetting_factor=0.0; //in [0,1] 0 means a new channel every time, 1 means keep the same channel
|
|
double iqim=0.0;
|
|
uint8_t extended_prefix_flag=0;
|
|
int cqi_flag=0,cqi_error,cqi_errors,ack_errors,cqi_crc_falsepositives,cqi_crc_falsenegatives;
|
|
int ch_realization;
|
|
int eNB_id = 0;
|
|
int chMod = 0 ;
|
|
int UE_id = 0;
|
|
unsigned char nb_rb=25,first_rb=0,mcs=0,round=0,bundling_flag=1;
|
|
unsigned char l;
|
|
|
|
unsigned char awgn_flag = 0 ;
|
|
SCM_t channel_model=Rice1;
|
|
|
|
|
|
unsigned char *input_buffer,harq_pid;
|
|
unsigned short input_buffer_length;
|
|
unsigned int ret;
|
|
unsigned int coded_bits_per_codeword,nsymb;
|
|
int subframe=3;
|
|
unsigned int tx_lev=0,tx_lev_dB,trials,errs[4]= {0,0,0,0},round_trials[4]= {0,0,0,0};
|
|
uint8_t transmission_mode=1,n_rx=1;
|
|
|
|
FILE *bler_fd=NULL;
|
|
char bler_fname[512];
|
|
|
|
FILE *time_meas_fd=NULL;
|
|
char time_meas_fname[256];
|
|
|
|
FILE *input_fdUL=NULL,*trch_out_fdUL=NULL;
|
|
// unsigned char input_file=0;
|
|
char input_val_str[50],input_val_str2[50];
|
|
|
|
// FILE *rx_frame_file;
|
|
FILE *csv_fdUL=NULL;
|
|
|
|
/*
|
|
FILE *fperen=NULL;
|
|
char fperen_name[512];
|
|
|
|
FILE *fmageren=NULL;
|
|
char fmageren_name[512];
|
|
|
|
FILE *flogeren=NULL;
|
|
char flogeren_name[512];
|
|
*/
|
|
|
|
/* FILE *ftxlev;
|
|
char ftxlev_name[512];
|
|
*/
|
|
|
|
char csv_fname[512];
|
|
int n_frames=5000;
|
|
int n_ch_rlz = 1;
|
|
int abstx = 0;
|
|
int hold_channel=0;
|
|
channel_desc_t *UE2eNB;
|
|
|
|
uint8_t control_only_flag = 0;
|
|
int delay = 0;
|
|
double maxDoppler = 0.0;
|
|
uint8_t srs_flag = 0;
|
|
|
|
uint8_t N_RB_DL=25,osf=1;
|
|
|
|
uint8_t cyclic_shift = 0;
|
|
uint8_t cooperation_flag = 0; //0 no cooperation, 1 delay diversity, 2 Alamouti
|
|
uint8_t beta_ACK=0,beta_RI=0,beta_CQI=2;
|
|
uint8_t tdd_config=3,frame_type=FDD;
|
|
|
|
uint8_t N0=30;
|
|
double tx_gain=1.0;
|
|
double cpu_freq_GHz;
|
|
int avg_iter,iter_trials;
|
|
|
|
uint32_t UL_alloc_pdu;
|
|
int s,Kr,Kr_bytes;
|
|
int dump_perf=0;
|
|
int test_perf=0;
|
|
int dump_table =0;
|
|
|
|
double effective_rate=0.0;
|
|
char channel_model_input[10];
|
|
|
|
uint8_t max_turbo_iterations=4;
|
|
uint8_t parallel_flag=0;
|
|
int nb_rb_set = 0;
|
|
|
|
int threequarter_fs=0;
|
|
int ndi;
|
|
|
|
opp_enabled=1; // to enable the time meas
|
|
|
|
cpu_freq_GHz = (double)get_cpu_freq_GHz();
|
|
|
|
printf("Detected cpu_freq %f GHz\n",cpu_freq_GHz);
|
|
|
|
|
|
logInit();
|
|
|
|
while ((c = getopt (argc, argv, "hapZEbm:n:Y:X:x:s:w:e:q:d:D:O:c:r:i:f:y:c:oA:C:R:g:N:l:S:T:QB:PI:LF")) != -1) {
|
|
switch (c) {
|
|
case 'a':
|
|
channel_model = AWGN;
|
|
chMod = 1;
|
|
break;
|
|
|
|
case 'b':
|
|
bundling_flag = 0;
|
|
break;
|
|
|
|
case 'd':
|
|
delay = atoi(optarg);
|
|
break;
|
|
|
|
case 'D':
|
|
maxDoppler = atoi(optarg);
|
|
break;
|
|
|
|
case 'm':
|
|
mcs = atoi(optarg);
|
|
break;
|
|
|
|
case 'n':
|
|
n_frames = atoi(optarg);
|
|
break;
|
|
|
|
case 'Y':
|
|
n_ch_rlz = atoi(optarg);
|
|
break;
|
|
|
|
case 'X':
|
|
abstx= atoi(optarg);
|
|
break;
|
|
|
|
case 'g':
|
|
sprintf(channel_model_input,optarg,10);
|
|
|
|
switch((char)*optarg) {
|
|
case 'A':
|
|
channel_model=SCM_A;
|
|
chMod = 2;
|
|
break;
|
|
|
|
case 'B':
|
|
channel_model=SCM_B;
|
|
chMod = 3;
|
|
break;
|
|
|
|
case 'C':
|
|
channel_model=SCM_C;
|
|
chMod = 4;
|
|
break;
|
|
|
|
case 'D':
|
|
channel_model=SCM_D;
|
|
chMod = 5;
|
|
break;
|
|
|
|
case 'E':
|
|
channel_model=EPA;
|
|
chMod = 6;
|
|
break;
|
|
|
|
case 'F':
|
|
channel_model=EVA;
|
|
chMod = 7;
|
|
break;
|
|
|
|
case 'G':
|
|
channel_model=ETU;
|
|
chMod = 8;
|
|
break;
|
|
|
|
case 'H':
|
|
channel_model=Rayleigh8;
|
|
chMod = 9;
|
|
break;
|
|
|
|
case 'I':
|
|
channel_model=Rayleigh1;
|
|
chMod = 10;
|
|
break;
|
|
|
|
case 'J':
|
|
channel_model=Rayleigh1_corr;
|
|
chMod = 11;
|
|
break;
|
|
|
|
case 'K':
|
|
channel_model=Rayleigh1_anticorr;
|
|
chMod = 12;
|
|
break;
|
|
|
|
case 'L':
|
|
channel_model=Rice8;
|
|
chMod = 13;
|
|
break;
|
|
|
|
case 'M':
|
|
channel_model=Rice1;
|
|
chMod = 14;
|
|
break;
|
|
|
|
case 'N':
|
|
channel_model=AWGN;
|
|
chMod = 1;
|
|
break;
|
|
|
|
default:
|
|
printf("Unsupported channel model!\n");
|
|
exit(-1);
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case 's':
|
|
snr0 = atof(optarg);
|
|
break;
|
|
|
|
case 'w':
|
|
snr_int = atof(optarg);
|
|
break;
|
|
|
|
case 'e':
|
|
input_snr_step= atof(optarg);
|
|
break;
|
|
|
|
case 'x':
|
|
transmission_mode=atoi(optarg);
|
|
|
|
if ((transmission_mode!=1) &&
|
|
(transmission_mode!=2)) {
|
|
printf("Unsupported transmission mode %d\n",transmission_mode);
|
|
exit(-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'y':
|
|
n_rx = atoi(optarg);
|
|
break;
|
|
|
|
case 'S':
|
|
subframe = atoi(optarg);
|
|
break;
|
|
|
|
case 'T':
|
|
tdd_config=atoi(optarg);
|
|
frame_type=TDD;
|
|
break;
|
|
|
|
case 'p':
|
|
extended_prefix_flag=1;
|
|
break;
|
|
|
|
case 'r':
|
|
nb_rb = atoi(optarg);
|
|
nb_rb_set = 1;
|
|
break;
|
|
|
|
case 'f':
|
|
first_rb = atoi(optarg);
|
|
break;
|
|
|
|
case 'c':
|
|
cyclic_shift = atoi(optarg);
|
|
break;
|
|
|
|
case 'E':
|
|
threequarter_fs=1;
|
|
break;
|
|
|
|
case 'N':
|
|
N0 = atoi(optarg);
|
|
break;
|
|
|
|
case 'o':
|
|
srs_flag = 1;
|
|
break;
|
|
|
|
case 'i':
|
|
input_fdUL = fopen(optarg,"r");
|
|
printf("Reading in %s (%p)\n",optarg,input_fdUL);
|
|
|
|
if (input_fdUL == (FILE*)NULL) {
|
|
printf("Unknown file %s\n",optarg);
|
|
exit(-1);
|
|
}
|
|
|
|
// input_file=1;
|
|
break;
|
|
|
|
case 'A':
|
|
beta_ACK = atoi(optarg);
|
|
|
|
if (beta_ACK>15) {
|
|
printf("beta_ack must be in (0..15)\n");
|
|
exit(-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'C':
|
|
beta_CQI = atoi(optarg);
|
|
|
|
if ((beta_CQI>15)||(beta_CQI<2)) {
|
|
printf("beta_cqi must be in (2..15)\n");
|
|
exit(-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'R':
|
|
beta_RI = atoi(optarg);
|
|
|
|
if ((beta_RI>15)||(beta_RI<2)) {
|
|
printf("beta_ri must be in (0..13)\n");
|
|
exit(-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'Q':
|
|
cqi_flag=1;
|
|
break;
|
|
|
|
case 'B':
|
|
N_RB_DL=atoi(optarg);
|
|
break;
|
|
|
|
case 'P':
|
|
dump_perf=1;
|
|
opp_enabled=1;
|
|
break;
|
|
|
|
case 'O':
|
|
test_perf=atoi(optarg);
|
|
//print_perf =1;
|
|
break;
|
|
|
|
case 'L':
|
|
parallel_flag=1;
|
|
break;
|
|
|
|
case 'I':
|
|
max_turbo_iterations=atoi(optarg);
|
|
break;
|
|
|
|
case 'F':
|
|
xforms=1;
|
|
break;
|
|
|
|
case 'Z':
|
|
dump_table = 1;
|
|
break;
|
|
|
|
case 'h':
|
|
default:
|
|
printf("%s -h(elp) -a(wgn on) -m mcs -n n_frames -s snr0 -t delay_spread -p (extended prefix on) -r nb_rb -f first_rb -c cyclic_shift -o (srs on) -g channel_model [A:M] Use 3GPP 25.814 SCM-A/B/C/D('A','B','C','D') or 36-101 EPA('E'), EVA ('F'),ETU('G') models (ignores delay spread and Ricean factor), Rayghleigh8 ('H'), Rayleigh1('I'), Rayleigh1_corr('J'), Rayleigh1_anticorr ('K'), Rice8('L'), Rice1('M'), -d Channel delay, -D maximum Doppler shift \n",
|
|
argv[0]);
|
|
exit(1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
lte_param_init(1,
|
|
n_rx,
|
|
1,
|
|
extended_prefix_flag,
|
|
frame_type,
|
|
0,
|
|
tdd_config,
|
|
N_RB_DL,
|
|
threequarter_fs,
|
|
osf,
|
|
0);
|
|
|
|
if (nb_rb_set == 0)
|
|
nb_rb = eNB->frame_parms.N_RB_UL;
|
|
|
|
printf("1 . rxdataF_comp[0] %p\n",eNB->pusch_vars[0]->rxdataF_comp[0][0]);
|
|
printf("Setting mcs = %d\n",mcs);
|
|
printf("n_frames = %d\n", n_frames);
|
|
|
|
snr1 = snr0+snr_int;
|
|
printf("SNR0 %f, SNR1 %f\n",snr0,snr1);
|
|
|
|
frame_parms = &eNB->frame_parms;
|
|
|
|
txdata = UE->common_vars.txdata;
|
|
|
|
|
|
|
|
nsymb = (eNB->frame_parms.Ncp == NORMAL) ? 14 : 12;
|
|
|
|
|
|
sprintf(bler_fname,"ULbler_mcs%d_nrb%d_ChannelModel%d_nsim%d.csv",mcs,nb_rb,chMod,n_frames);
|
|
bler_fd = fopen(bler_fname,"w");
|
|
if (bler_fd==NULL) {
|
|
fprintf(stderr,"Problem creating file %s\n",bler_fname);
|
|
exit(-1);
|
|
}
|
|
|
|
fprintf(bler_fd,"#SNR;mcs;nb_rb;TBS;rate;errors[0];trials[0];errors[1];trials[1];errors[2];trials[2];errors[3];trials[3]\n");
|
|
|
|
if (test_perf != 0) {
|
|
char hostname[1024];
|
|
hostname[1023] = '\0';
|
|
gethostname(hostname, 1023);
|
|
printf("Hostname: %s\n", hostname);
|
|
//char dirname[FILENAME_MAX];
|
|
//sprintf(dirname, "%s//SIMU/USER/pre-ci-logs-%s", getenv("OPENAIR_TARGETS"),hostname);
|
|
//mkdir(dirname, 0777);
|
|
sprintf(time_meas_fname,"time_meas_prb%d_mcs%d_antrx%d_channel%s_tx%d.csv",
|
|
N_RB_DL,mcs,n_rx,channel_model_input,transmission_mode);
|
|
time_meas_fd = fopen(time_meas_fname,"w");
|
|
if (time_meas_fd==NULL) {
|
|
fprintf(stderr,"Cannot create file %s!\n",time_meas_fname);
|
|
exit(-1);
|
|
}
|
|
}
|
|
|
|
if(abstx) {
|
|
// CSV file
|
|
sprintf(csv_fname,"EULdataout_tx%d_mcs%d_nbrb%d_chan%d_nsimus%d_eren.m",transmission_mode,mcs,nb_rb,chMod,n_frames);
|
|
csv_fdUL = fopen(csv_fname,"w");
|
|
if (csv_fdUL == NULL) {
|
|
fprintf(stderr,"Problem opening file %s\n",csv_fname);
|
|
exit(-1);
|
|
}
|
|
fprintf(csv_fdUL,"data_all%d=[",mcs);
|
|
}
|
|
|
|
|
|
if (xforms==1) {
|
|
fl_initialize (&argc, argv, NULL, 0, 0);
|
|
form_enb = create_lte_phy_scope_enb();
|
|
sprintf (title, "LTE PHY SCOPE eNB");
|
|
fl_show_form (form_enb->lte_phy_scope_enb, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
|
|
}
|
|
|
|
UE->pdcch_vars[0]->crnti = 14;
|
|
|
|
UE->frame_parms.soundingrs_ul_config_common.srs_BandwidthConfig = 2;
|
|
UE->frame_parms.soundingrs_ul_config_common.srs_SubframeConfig = 7;
|
|
UE->soundingrs_ul_config_dedicated[eNB_id].srs_Bandwidth = 0;
|
|
UE->soundingrs_ul_config_dedicated[eNB_id].transmissionComb = 0;
|
|
UE->soundingrs_ul_config_dedicated[eNB_id].freqDomainPosition = 0;
|
|
|
|
eNB->frame_parms.soundingrs_ul_config_common.srs_BandwidthConfig = 2;
|
|
eNB->frame_parms.soundingrs_ul_config_common.srs_SubframeConfig = 7;
|
|
|
|
eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex = 1;
|
|
eNB->soundingrs_ul_config_dedicated[UE_id].srs_Bandwidth = 0;
|
|
eNB->soundingrs_ul_config_dedicated[UE_id].transmissionComb = 0;
|
|
eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = 0;
|
|
eNB->cooperation_flag = cooperation_flag;
|
|
// eNB->eNB_UE_stats[0].SRS_parameters = UE->SRS_parameters;
|
|
|
|
eNB->pusch_config_dedicated[UE_id].betaOffset_ACK_Index = beta_ACK;
|
|
eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index = beta_RI;
|
|
eNB->pusch_config_dedicated[UE_id].betaOffset_CQI_Index = beta_CQI;
|
|
UE->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index = beta_ACK;
|
|
UE->pusch_config_dedicated[eNB_id].betaOffset_RI_Index = beta_RI;
|
|
UE->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index = beta_CQI;
|
|
|
|
UE->ul_power_control_dedicated[eNB_id].deltaMCS_Enabled = 1;
|
|
|
|
printf("PUSCH Beta : ACK %f, RI %f, CQI %f\n",(double)beta_ack[beta_ACK]/8,(double)beta_ri[beta_RI]/8,(double)beta_cqi[beta_CQI]/8);
|
|
|
|
UE2eNB = new_channel_desc_scm(eNB->frame_parms.nb_antennas_tx,
|
|
UE->frame_parms.nb_antennas_rx,
|
|
channel_model,
|
|
N_RB2sampling_rate(eNB->frame_parms.N_RB_UL),
|
|
N_RB2channel_bandwidth(eNB->frame_parms.N_RB_UL),
|
|
forgetting_factor,
|
|
delay,
|
|
0);
|
|
// set Doppler
|
|
UE2eNB->max_Doppler = maxDoppler;
|
|
|
|
// NN: N_RB_UL has to be defined in ulsim
|
|
eNB->ulsch[0] = new_eNB_ulsch(max_turbo_iterations,N_RB_DL,0);
|
|
UE->ulsch[0] = new_ue_ulsch(N_RB_DL,0);
|
|
|
|
if (parallel_flag == 1) {
|
|
init_fep_thread(eNB,NULL);
|
|
init_td_thread(eNB,NULL);
|
|
}
|
|
// Create transport channel structures for 2 transport blocks (MIMO)
|
|
for (i=0; i<2; i++) {
|
|
eNB->dlsch[0][i] = new_eNB_dlsch(1,8,1827072,N_RB_DL,0);
|
|
UE->dlsch[0][i] = new_ue_dlsch(1,8,1827072,MAX_TURBO_ITERATIONS,N_RB_DL,0);
|
|
|
|
if (!eNB->dlsch[0][i]) {
|
|
printf("Can't get eNB dlsch structures\n");
|
|
exit(-1);
|
|
}
|
|
|
|
if (!UE->dlsch[0][i]) {
|
|
printf("Can't get ue dlsch structures\n");
|
|
exit(-1);
|
|
}
|
|
|
|
eNB->dlsch[0][i]->rnti = 14;
|
|
UE->dlsch[0][i]->rnti = 14;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UE->measurements.rank[0] = 0;
|
|
UE->transmission_mode[0] = 2;
|
|
UE->pucch_config_dedicated[0].tdd_AckNackFeedbackMode = bundling_flag == 1 ? bundling : multiplexing;
|
|
eNB->transmission_mode[0] = 2;
|
|
eNB->pucch_config_dedicated[0].tdd_AckNackFeedbackMode = bundling_flag == 1 ? bundling : multiplexing;
|
|
UE->frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 1;
|
|
eNB->frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 1;
|
|
UE->frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0;
|
|
eNB->frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0;
|
|
UE->frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = 0;
|
|
eNB->frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = 0;
|
|
|
|
|
|
UE->mac_enabled=0;
|
|
|
|
eNB_rxtx_proc_t *proc_rxtx = &eNB->proc.proc_rxtx[subframe&1];
|
|
UE_rxtx_proc_t *proc_rxtx_ue = &UE->proc.proc_rxtx[subframe&1];
|
|
proc_rxtx->frame_rx=1;
|
|
proc_rxtx->subframe_rx=subframe;
|
|
|
|
proc_rxtx->frame_tx=pdcch_alloc2ul_frame(&eNB->frame_parms,1,subframe);
|
|
proc_rxtx->subframe_tx=pdcch_alloc2ul_subframe(&eNB->frame_parms,subframe);
|
|
|
|
proc_rxtx_ue->frame_tx = proc_rxtx->frame_rx;
|
|
proc_rxtx_ue->frame_rx = proc_rxtx->frame_tx;
|
|
proc_rxtx_ue->subframe_tx = proc_rxtx->subframe_rx;
|
|
proc_rxtx_ue->subframe_rx = proc_rxtx->subframe_tx;
|
|
|
|
printf("Init UL hopping UE\n");
|
|
init_ul_hopping(&UE->frame_parms);
|
|
printf("Init UL hopping eNB\n");
|
|
init_ul_hopping(&eNB->frame_parms);
|
|
|
|
|
|
UE->dlsch[0][0]->harq_ack[ul_subframe2pdcch_alloc_subframe(&eNB->frame_parms,subframe)].send_harq_status = 1;
|
|
|
|
UE->ulsch_Msg3_active[eNB_id] = 0;
|
|
UE->ul_power_control_dedicated[eNB_id].accumulationEnabled=1;
|
|
/*
|
|
generate_ue_ulsch_params_from_dci((void *)&UL_alloc_pdu,
|
|
14,
|
|
proc_rxtx->subframe_tx,
|
|
format0,
|
|
UE,
|
|
proc_rxtx_ue,
|
|
SI_RNTI,
|
|
0,
|
|
P_RNTI,
|
|
CBA_RNTI,
|
|
0,
|
|
srs_flag);
|
|
|
|
// printf("RIV %d\n",UL_alloc_pdu.rballoc);
|
|
|
|
generate_eNB_ulsch_params_from_dci(eNB,proc_rxtx,
|
|
(void *)&UL_alloc_pdu,
|
|
14,
|
|
format0,
|
|
0,
|
|
SI_RNTI,
|
|
0,
|
|
P_RNTI,
|
|
CBA_RNTI,
|
|
srs_flag);
|
|
*/
|
|
|
|
coded_bits_per_codeword = nb_rb * (12 * get_Qm_ul(mcs)) * nsymb;
|
|
|
|
if (cqi_flag == 1) coded_bits_per_codeword-=UE->ulsch[0]->O;
|
|
|
|
rate = (double)dlsch_tbs25[get_I_TBS(mcs)][nb_rb-1]/(coded_bits_per_codeword);
|
|
|
|
printf("Rate = %f (mod %d), coded bits %d\n",rate,get_Qm_ul(mcs),coded_bits_per_codeword);
|
|
|
|
|
|
|
|
for (ch_realization=0; ch_realization<n_ch_rlz; ch_realization++) {
|
|
|
|
/*
|
|
if(abstx){
|
|
int ulchestim_f[300*12];
|
|
int ulchestim_t[2*(frame_parms->ofdm_symbol_size)];
|
|
}
|
|
*/
|
|
|
|
if(abstx) {
|
|
printf("**********************Channel Realization Index = %d **************************\n", ch_realization);
|
|
saving_bler=1;
|
|
}
|
|
|
|
|
|
// if ((subframe>5) || (subframe < 4))
|
|
// UE->frame++;
|
|
|
|
for (SNR=snr0; SNR<snr1; SNR+=input_snr_step) {
|
|
errs[0]=0;
|
|
errs[1]=0;
|
|
errs[2]=0;
|
|
errs[3]=0;
|
|
round_trials[0] = 0;
|
|
round_trials[1] = 0;
|
|
round_trials[2] = 0;
|
|
round_trials[3] = 0;
|
|
cqi_errors=0;
|
|
ack_errors=0;
|
|
cqi_crc_falsepositives=0;
|
|
cqi_crc_falsenegatives=0;
|
|
round=0;
|
|
|
|
//randominit(0);
|
|
|
|
|
|
harq_pid = subframe2harq_pid(&UE->frame_parms,proc_rxtx_ue->frame_tx,subframe);
|
|
input_buffer_length = UE->ulsch[0]->harq_processes[harq_pid]->TBS/8;
|
|
input_buffer = (unsigned char *)memalign(32,input_buffer_length+64);
|
|
// printf("UL frame %d/subframe %d, harq_pid %d\n",UE->frame,subframe,harq_pid);
|
|
if (input_fdUL == NULL) {
|
|
|
|
|
|
if (n_frames == 1) {
|
|
trch_out_fdUL= fopen("ulsch_trchUL.txt","w");
|
|
|
|
for (i=0; i<input_buffer_length; i++) {
|
|
input_buffer[i] = taus()&0xff;
|
|
|
|
for (j=0; j<8; j++)
|
|
fprintf(trch_out_fdUL,"%d\n",(input_buffer[i]>>(7-j))&1);
|
|
}
|
|
|
|
fclose(trch_out_fdUL);
|
|
} else {
|
|
for (i=0; i<input_buffer_length; i++)
|
|
input_buffer[i] = taus()&0xff;
|
|
}
|
|
} else {
|
|
n_frames=1;
|
|
i=0;
|
|
|
|
while (!feof(input_fdUL)) {
|
|
ret=fscanf(input_fdUL,"%s %s",input_val_str,input_val_str2);//&input_val1,&input_val2);
|
|
|
|
if ((i%4)==0) {
|
|
((short*)txdata[0])[i/2] = (short)((1<<15)*strtod(input_val_str,NULL));
|
|
((short*)txdata[0])[(i/2)+1] = (short)((1<<15)*strtod(input_val_str2,NULL));
|
|
|
|
if ((i/4)<100)
|
|
printf("sample %d => %e + j%e (%d +j%d)\n",i/4,strtod(input_val_str,NULL),strtod(input_val_str2,NULL),((short*)txdata[0])[i/4],((short*)txdata[0])[(i/4)+1]);//1,input_val2,);
|
|
}
|
|
|
|
i++;
|
|
|
|
if (i>(FRAME_LENGTH_SAMPLES))
|
|
break;
|
|
}
|
|
|
|
printf("Read in %d samples\n",i/4);
|
|
// write_output("txsig0UL.m","txs0", txdata[0],2*frame_parms->samples_per_tti,1,1);
|
|
// write_output("txsig1.m","txs1", txdata[1],FRAME_LENGTH_COMPLEX_SAMPLES,1,1);
|
|
tx_lev = signal_energy(&txdata[0][0],
|
|
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
|
|
tx_lev_dB = (unsigned int) dB_fixed(tx_lev);
|
|
|
|
}
|
|
|
|
avg_iter = 0;
|
|
iter_trials=0;
|
|
reset_meas(&UE->phy_proc_tx);
|
|
reset_meas(&UE->ofdm_mod_stats);
|
|
reset_meas(&UE->ulsch_modulation_stats);
|
|
reset_meas(&UE->ulsch_encoding_stats);
|
|
reset_meas(&UE->ulsch_interleaving_stats);
|
|
reset_meas(&UE->ulsch_rate_matching_stats);
|
|
reset_meas(&UE->ulsch_turbo_encoding_stats);
|
|
reset_meas(&UE->ulsch_segmentation_stats);
|
|
reset_meas(&UE->ulsch_multiplexing_stats);
|
|
|
|
reset_meas(&eNB->phy_proc_rx);
|
|
reset_meas(&eNB->ofdm_demod_stats);
|
|
reset_meas(&eNB->ulsch_channel_estimation_stats);
|
|
reset_meas(&eNB->ulsch_freq_offset_estimation_stats);
|
|
reset_meas(&eNB->rx_dft_stats);
|
|
reset_meas(&eNB->ulsch_decoding_stats);
|
|
reset_meas(&eNB->ulsch_turbo_decoding_stats);
|
|
reset_meas(&eNB->ulsch_deinterleaving_stats);
|
|
reset_meas(&eNB->ulsch_demultiplexing_stats);
|
|
reset_meas(&eNB->ulsch_rate_unmatching_stats);
|
|
reset_meas(&eNB->ulsch_tc_init_stats);
|
|
reset_meas(&eNB->ulsch_tc_alpha_stats);
|
|
reset_meas(&eNB->ulsch_tc_beta_stats);
|
|
reset_meas(&eNB->ulsch_tc_gamma_stats);
|
|
reset_meas(&eNB->ulsch_tc_ext_stats);
|
|
reset_meas(&eNB->ulsch_tc_intl1_stats);
|
|
reset_meas(&eNB->ulsch_tc_intl2_stats);
|
|
|
|
// initialization
|
|
struct list time_vector_tx;
|
|
initialize(&time_vector_tx);
|
|
struct list time_vector_tx_ifft;
|
|
initialize(&time_vector_tx_ifft);
|
|
struct list time_vector_tx_mod;
|
|
initialize(&time_vector_tx_mod);
|
|
struct list time_vector_tx_enc;
|
|
initialize(&time_vector_tx_enc);
|
|
|
|
struct list time_vector_rx;
|
|
initialize(&time_vector_rx);
|
|
struct list time_vector_rx_fft;
|
|
initialize(&time_vector_rx_fft);
|
|
struct list time_vector_rx_demod;
|
|
initialize(&time_vector_rx_demod);
|
|
struct list time_vector_rx_dec;
|
|
initialize(&time_vector_rx_dec);
|
|
|
|
ndi=0;
|
|
for (trials = 0; trials<n_frames; trials++) {
|
|
// printf("*");
|
|
// UE->frame++;
|
|
// eNB->frame++;
|
|
ndi = (1-ndi);
|
|
fflush(stdout);
|
|
round=0;
|
|
|
|
while (round < 4) {
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->round=round;
|
|
UE->ulsch[0]->harq_processes[harq_pid]->round=round;
|
|
// printf("Trial %d : Round %d (subframe %d, frame %d)\n",trials,round,proc_rxtx_ue->subframe_rx,proc_rxtx_ue->frame_rx);
|
|
round_trials[round]++;
|
|
|
|
|
|
fill_ulsch_dci(eNB,(void*)&UL_alloc_pdu,first_rb,nb_rb,mcs,ndi,cqi_flag);
|
|
|
|
UE->ulsch_Msg3_active[eNB_id] = 0;
|
|
UE->ul_power_control_dedicated[eNB_id].accumulationEnabled=1;
|
|
generate_ue_ulsch_params_from_dci((void *)&UL_alloc_pdu,
|
|
14,
|
|
proc_rxtx->subframe_tx,
|
|
format0,
|
|
UE,
|
|
proc_rxtx_ue,
|
|
SI_RNTI,
|
|
0,
|
|
P_RNTI,
|
|
CBA_RNTI,
|
|
0,
|
|
srs_flag);
|
|
|
|
generate_eNB_ulsch_params_from_dci(eNB,proc_rxtx,
|
|
(void *)&UL_alloc_pdu,
|
|
14,
|
|
format0,
|
|
0,
|
|
SI_RNTI,
|
|
0,
|
|
P_RNTI,
|
|
CBA_RNTI,
|
|
srs_flag);
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->subframe_scheduling_flag = 1;
|
|
|
|
/////////////////////
|
|
if (abstx) {
|
|
if (trials==0 && round==0 && SNR==snr0) { //generate a new channel
|
|
hold_channel = 0;
|
|
flagMag=0;
|
|
} else {
|
|
hold_channel = 1;
|
|
flagMag = 1;
|
|
}
|
|
} else {
|
|
hold_channel = 0;
|
|
flagMag=1;
|
|
}
|
|
|
|
///////////////////////////////////////
|
|
|
|
if (input_fdUL == NULL) {
|
|
|
|
eNB->proc.frame_rx = 1;
|
|
eNB->proc.subframe_rx = subframe;
|
|
proc_rxtx_ue->frame_tx = proc_rxtx->frame_rx;
|
|
proc_rxtx_ue->frame_rx = proc_rxtx->frame_tx;
|
|
proc_rxtx_ue->subframe_tx = proc_rxtx->subframe_rx;
|
|
proc_rxtx_ue->subframe_rx = proc_rxtx->subframe_tx;
|
|
|
|
phy_procedures_UE_TX(UE,proc_rxtx_ue,0,0,normal_txrx,no_relay);
|
|
|
|
/*
|
|
if (srs_flag)
|
|
generate_srs_tx(UE,0,AMP,subframe);
|
|
|
|
generate_drs_pusch(UE,proc_rxtx_ue,0,
|
|
AMP,subframe,
|
|
UE->ulsch[0]->harq_processes[harq_pid]->first_rb,
|
|
UE->ulsch[0]->harq_processes[harq_pid]->nb_rb,
|
|
0);
|
|
|
|
if ((cqi_flag == 1) && (n_frames == 1) ) {
|
|
printf("CQI information (O %d) %d %d\n",UE->ulsch[0]->O,
|
|
UE->ulsch[0]->o[0],UE->ulsch[0]->o[1]);
|
|
print_CQI(UE->ulsch[0]->o,UE->ulsch[0]->uci_format,UE->frame_parms.N_RB_DL,0);
|
|
}
|
|
|
|
UE->ulsch[0]->o_ACK[0] = taus()&1;
|
|
|
|
start_meas(&UE->ulsch_encoding_stats);
|
|
|
|
if (ulsch_encoding(input_buffer,
|
|
UE,
|
|
harq_pid,
|
|
eNB_id,
|
|
2, // transmission mode
|
|
control_only_flag,
|
|
1// Nbundled
|
|
)==-1) {
|
|
printf("ulsim.c Problem with ulsch_encoding\n");
|
|
exit(-1);
|
|
}
|
|
|
|
stop_meas(&UE->ulsch_encoding_stats);
|
|
|
|
start_meas(&UE->ulsch_modulation_stats);
|
|
ulsch_modulation(UE->common_vars.txdataF,AMP,
|
|
proc_rxtx_ue->frame_tx,subframe,&UE->frame_parms,
|
|
UE->ulsch[0]);
|
|
stop_meas(&UE->ulsch_modulation_stats);
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
for (aa=0; aa<1; aa++) {
|
|
if (frame_parms->Ncp == EXTENDED)
|
|
PHY_ofdm_mod(&UE->common_vars.txdataF[aa][subframe*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX], // input
|
|
&txdata[aa][eNB->frame_parms.samples_per_tti*subframe], // output
|
|
UE->frame_parms.ofdm_symbol_size,
|
|
nsymb, // number of symbols
|
|
UE->frame_parms.nb_prefix_samples, // number of prefix samples
|
|
CYCLIC_PREFIX);
|
|
else
|
|
normal_prefix_mod(&UE->common_vars.txdataF[aa][subframe*nsymb*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX],
|
|
&txdata[aa][eNB->frame_parms.samples_per_tti*subframe],
|
|
nsymb,
|
|
frame_parms);
|
|
|
|
|
|
apply_7_5_kHz(UE,UE->common_vars.txdata[aa],subframe<<1);
|
|
apply_7_5_kHz(UE,UE->common_vars.txdata[aa],1+(subframe<<1));
|
|
|
|
*/
|
|
|
|
tx_lev = signal_energy(&UE->common_vars.txdata[0][eNB->frame_parms.samples_per_tti*subframe],
|
|
eNB->frame_parms.samples_per_tti);
|
|
|
|
|
|
if (n_frames==1) {
|
|
write_output("txsigF0UL.m","txsF0", &UE->common_vars.txdataF[0][eNB->frame_parms.ofdm_symbol_size*nsymb*subframe],eNB->frame_parms.ofdm_symbol_size*nsymb,1,
|
|
1);
|
|
//write_output("txsigF1.m","txsF1", UE->common_vars.txdataF[0],FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX,1,1);
|
|
}
|
|
|
|
} // input_fd == NULL
|
|
|
|
tx_lev_dB = (unsigned int) dB_fixed_times10(tx_lev);
|
|
|
|
if (n_frames==1) {
|
|
write_output("txsig0UL.m","txs0", &txdata[0][eNB->frame_parms.samples_per_tti*subframe],2*frame_parms->samples_per_tti,1,1);
|
|
// write_output("txsig1UL.m","txs1", &txdata[1][eNB->frame_parms.samples_per_tti*subframe],2*frame_parms->samples_per_tti,1,1);
|
|
}
|
|
|
|
//AWGN
|
|
//Set target wideband RX noise level to N0
|
|
sigma2_dB = N0;//10*log10((double)tx_lev) +10*log10(UE->frame_parms.ofdm_symbol_size/(UE->frame_parms.N_RB_DL*12)) - SNR;
|
|
sigma2 = pow(10,sigma2_dB/10);
|
|
|
|
// compute tx_gain to achieve target SNR (per resource element!)
|
|
tx_gain = sqrt(pow(10.0,.1*(N0+SNR))*(nb_rb*12/(double)UE->frame_parms.ofdm_symbol_size)/(double)tx_lev);
|
|
|
|
|
|
if (n_frames==1)
|
|
printf("tx_lev = %d (%d.%d dB,%f), gain %f\n",tx_lev,tx_lev_dB/10,tx_lev_dB,10*log10((double)tx_lev),10*log10(tx_gain));
|
|
|
|
|
|
// fill measurement symbol (19) with noise
|
|
for (i=0; i<OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES; i++) {
|
|
for (aa=0; aa<eNB->frame_parms.nb_antennas_rx; aa++) {
|
|
|
|
((short*) &eNB->common_vars.rxdata[0][aa][(frame_parms->samples_per_tti<<1) -frame_parms->ofdm_symbol_size])[2*i] = (short) ((sqrt(sigma2/2)*gaussdouble(0.0,1.0)));
|
|
((short*) &eNB->common_vars.rxdata[0][aa][(frame_parms->samples_per_tti<<1) -frame_parms->ofdm_symbol_size])[2*i+1] = (short) ((sqrt(sigma2/2)*gaussdouble(0.0,1.0)));
|
|
}
|
|
}
|
|
|
|
// multipath channel
|
|
|
|
for (i=0; i<eNB->frame_parms.samples_per_tti; i++) {
|
|
for (aa=0; aa<1; aa++) {
|
|
s_re[aa][i] = ((double)(((short *)&UE->common_vars.txdata[aa][eNB->frame_parms.samples_per_tti*subframe]))[(i<<1)]);
|
|
s_im[aa][i] = ((double)(((short *)&UE->common_vars.txdata[aa][eNB->frame_parms.samples_per_tti*subframe]))[(i<<1)+1]);
|
|
}
|
|
}
|
|
|
|
if (awgn_flag == 0) {
|
|
if (UE2eNB->max_Doppler == 0) {
|
|
multipath_channel(UE2eNB,s_re,s_im,r_re,r_im,
|
|
eNB->frame_parms.samples_per_tti,hold_channel);
|
|
} else {
|
|
multipath_tv_channel(UE2eNB,s_re,s_im,r_re,r_im,
|
|
2*eNB->frame_parms.samples_per_tti,hold_channel);
|
|
}
|
|
}
|
|
|
|
if(abstx) {
|
|
if(saving_bler==0)
|
|
if (trials==0 && round==0) {
|
|
// calculate freq domain representation to compute SINR
|
|
freq_channel(UE2eNB, N_RB_DL,12*N_RB_DL + 1);
|
|
|
|
// snr=pow(10.0,.1*SNR);
|
|
fprintf(csv_fdUL,"%f,%d,%d,%f,%f,%f,",SNR,tx_lev,tx_lev_dB,sigma2_dB,tx_gain,SNR2);
|
|
|
|
//fprintf(csv_fdUL,"%f,",SNR);
|
|
for (u=0; u<12*nb_rb; u++) {
|
|
for (aarx=0; aarx<UE2eNB->nb_rx; aarx++) {
|
|
for (aatx=0; aatx<UE2eNB->nb_tx; aatx++) {
|
|
// abs_channel = (eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][u].x*eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][u].x + eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][u].y*eNB2UE->chF[aarx+(aatx*eNB2UE->nb_rx)][u].y);
|
|
channelx = UE2eNB->chF[aarx+(aatx*UE2eNB->nb_rx)][u].x;
|
|
channely = UE2eNB->chF[aarx+(aatx*UE2eNB->nb_rx)][u].y;
|
|
// if(transmission_mode==5){
|
|
fprintf(csv_fdUL,"%e+i*(%e),",channelx,channely);
|
|
// }
|
|
// else{
|
|
// pilot_sinr = 10*log10(snr*abs_channel);
|
|
// fprintf(csv_fd,"%e,",pilot_sinr);
|
|
// }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (n_frames==1)
|
|
printf("Sigma2 %f (sigma2_dB %f), tx_gain %f (%f dB)\n",sigma2,sigma2_dB,tx_gain,20*log10(tx_gain));
|
|
|
|
for (i=0; i<eNB->frame_parms.samples_per_tti; i++) {
|
|
for (aa=0; aa<eNB->frame_parms.nb_antennas_rx; aa++) {
|
|
((short*) &eNB->common_vars.rxdata[0][aa][eNB->frame_parms.samples_per_tti*subframe])[2*i] = (short) ((tx_gain*r_re[aa][i]) + sqrt(sigma2/2)*gaussdouble(0.0,1.0));
|
|
((short*) &eNB->common_vars.rxdata[0][aa][eNB->frame_parms.samples_per_tti*subframe])[2*i+1] = (short) ((tx_gain*r_im[aa][i]) + (iqim*tx_gain*r_re[aa][i]) + sqrt(
|
|
sigma2/2)*gaussdouble(0.0,1.0));
|
|
}
|
|
}
|
|
|
|
if (n_frames==1) {
|
|
printf("rx_level Null symbol %f\n",10*log10((double)signal_energy((int*)
|
|
&eNB->common_vars.rxdata[0][0][(eNB->frame_parms.samples_per_tti<<1) -eNB->frame_parms.ofdm_symbol_size],OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2)));
|
|
printf("rx_level data symbol %f\n",10*log10(signal_energy((int*)&eNB->common_vars.rxdata[0][0][160+(eNB->frame_parms.samples_per_tti*subframe)],
|
|
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2)));
|
|
}
|
|
|
|
SNRmeas = 10*log10(((double)signal_energy((int*)&eNB->common_vars.rxdata[0][0][160+(eNB->frame_parms.samples_per_tti*subframe)],
|
|
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2))/((double)signal_energy((int*)
|
|
&eNB->common_vars.rxdata[0][0][(eNB->frame_parms.samples_per_tti<<1) -eNB->frame_parms.ofdm_symbol_size],
|
|
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2)) - 1)+10*log10(eNB->frame_parms.N_RB_UL/nb_rb);
|
|
|
|
if (n_frames==1) {
|
|
printf("SNRmeas %f\n",SNRmeas);
|
|
|
|
// write_output("rxsig0UL.m","rxs0", &eNB->common_vars.rxdata[0][0][eNB->frame_parms.samples_per_tti*subframe],eNB->frame_parms.samples_per_tti,1,1);
|
|
//write_output("rxsig1UL.m","rxs1", &eNB->common_vars.rxdata[0][0][eNB->frame_parms.samples_per_tti*subframe],eNB->frame_parms.samples_per_tti,1,1);
|
|
}
|
|
|
|
|
|
eNB->fep = (parallel_flag == 1) ? eNB_fep_full_2thread : eNB_fep_full;
|
|
eNB->td = (parallel_flag == 1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
|
eNB->do_prach = NULL;
|
|
|
|
phy_procedures_eNB_common_RX(eNB);
|
|
phy_procedures_eNB_uespec_RX(eNB,proc_rxtx,no_relay);
|
|
|
|
|
|
if (cqi_flag > 0) {
|
|
cqi_error = 0;
|
|
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->Or1 < 32) {
|
|
for (i=2; i<4; i++) {
|
|
// printf("cqi %d : %d (%d)\n",i,eNB->ulsch[0]->o[i],UE->ulsch[0]->o[i]);
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->o[i] != UE->ulsch[0]->o[i])
|
|
cqi_error = 1;
|
|
}
|
|
} else {
|
|
|
|
}
|
|
|
|
if (cqi_error == 1) {
|
|
cqi_errors++;
|
|
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->cqi_crc_status == 1)
|
|
cqi_crc_falsepositives++;
|
|
} else {
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->cqi_crc_status == 0)
|
|
cqi_crc_falsenegatives++;
|
|
}
|
|
}
|
|
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->o_ACK[0] != UE->ulsch[0]->o_ACK[0])
|
|
ack_errors++;
|
|
|
|
// printf("ulsch_coding: O[%d] %d\n",i,o_flip[i]);
|
|
|
|
|
|
// if (ret <= eNB->ulsch[0]->max_turbo_iterations) {
|
|
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->round == 0) {
|
|
|
|
// avg_iter += ret;
|
|
iter_trials++;
|
|
|
|
if (n_frames==1) {
|
|
printf("No ULSCH errors found, o_ACK[0]= %d, cqi_crc_status=%d\n",eNB->ulsch[0]->harq_processes[harq_pid]->o_ACK[0],eNB->ulsch[0]->harq_processes[harq_pid]->cqi_crc_status);
|
|
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->cqi_crc_status==1)
|
|
print_CQI(eNB->ulsch[0]->harq_processes[harq_pid]->o,
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->uci_format,0,eNB->frame_parms.N_RB_DL);
|
|
|
|
dump_ulsch(eNB,proc_rxtx,0);
|
|
exit(-1);
|
|
}
|
|
|
|
round=5;
|
|
} else {
|
|
// avg_iter += ret-1;
|
|
iter_trials++;
|
|
|
|
errs[round]++;
|
|
|
|
if (n_frames==1) {
|
|
printf("ULSCH errors found o_ACK[0]= %d\n",eNB->ulsch[0]->harq_processes[harq_pid]->o_ACK[0]);
|
|
|
|
for (s=0; s<eNB->ulsch[0]->harq_processes[harq_pid]->C; s++) {
|
|
if (s<eNB->ulsch[0]->harq_processes[harq_pid]->Cminus)
|
|
Kr = eNB->ulsch[0]->harq_processes[harq_pid]->Kminus;
|
|
else
|
|
Kr = eNB->ulsch[0]->harq_processes[harq_pid]->Kplus;
|
|
|
|
Kr_bytes = Kr>>3;
|
|
|
|
printf("Decoded_output (Segment %d):\n",s);
|
|
|
|
for (i=0; i<Kr_bytes; i++)
|
|
printf("%d : %x (%x)\n",i,eNB->ulsch[0]->harq_processes[harq_pid]->c[s][i],
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->c[s][i]^UE->ulsch[0]->harq_processes[harq_pid]->c[s][i]);
|
|
}
|
|
|
|
dump_ulsch(eNB,proc_rxtx,0);
|
|
exit(-1);
|
|
}
|
|
|
|
// printf("round %d errors %d/%d\n",round,errs[round],trials);
|
|
round++;
|
|
|
|
if (n_frames==1) {
|
|
printf("ULSCH in error in round %d\n",round);
|
|
}
|
|
} // ulsch error
|
|
|
|
|
|
} // round
|
|
|
|
// printf("\n");
|
|
if ((errs[0]>=100) && (trials>(n_frames/2)))
|
|
break;
|
|
|
|
if (xforms==1)
|
|
phy_scope_eNB(form_enb,eNB,0);
|
|
|
|
/*calculate the total processing time for each packet, get the max, min, and number of packets that exceed t>3000us*/
|
|
|
|
double t_tx = (double)UE->phy_proc_tx.p_time/cpu_freq_GHz/1000.0;
|
|
double t_tx_ifft = (double)UE->ofdm_mod_stats.p_time/cpu_freq_GHz/1000.0;
|
|
double t_tx_mod = (double)UE->ulsch_modulation_stats.p_time/cpu_freq_GHz/1000.0;
|
|
double t_tx_enc = (double)UE->ulsch_encoding_stats.p_time/cpu_freq_GHz/1000.0;
|
|
|
|
|
|
double t_rx = (double)eNB->phy_proc_rx.p_time/cpu_freq_GHz/1000.0;
|
|
double t_rx_fft = (double)eNB->ofdm_demod_stats.p_time/cpu_freq_GHz/1000.0;
|
|
double t_rx_demod = (double)eNB->ulsch_demodulation_stats.p_time/cpu_freq_GHz/1000.0;
|
|
double t_rx_dec = (double)eNB->ulsch_decoding_stats.p_time/cpu_freq_GHz/1000.0;
|
|
|
|
if (t_tx > t_tx_max)
|
|
t_tx_max = t_tx;
|
|
|
|
if (t_tx < t_tx_min)
|
|
t_tx_min = t_tx;
|
|
|
|
if (t_rx > t_rx_max)
|
|
t_rx_max = t_rx;
|
|
|
|
if (t_rx < t_rx_min)
|
|
t_rx_min = t_rx;
|
|
|
|
if (t_tx > 2000)
|
|
n_tx_dropped++;
|
|
|
|
if (t_rx > 2000)
|
|
n_rx_dropped++;
|
|
|
|
push_front(&time_vector_tx, t_tx);
|
|
push_front(&time_vector_tx_ifft, t_tx_ifft);
|
|
push_front(&time_vector_tx_mod, t_tx_mod);
|
|
push_front(&time_vector_tx_enc, t_tx_enc);
|
|
|
|
push_front(&time_vector_rx, t_rx);
|
|
push_front(&time_vector_rx_fft, t_rx_fft);
|
|
push_front(&time_vector_rx_demod, t_rx_demod);
|
|
push_front(&time_vector_rx_dec, t_rx_dec);
|
|
|
|
|
|
} //trials
|
|
|
|
double table_tx[time_vector_tx.size];
|
|
totable(table_tx, &time_vector_tx);
|
|
double table_tx_ifft[time_vector_tx_ifft.size];
|
|
totable(table_tx_ifft, &time_vector_tx_ifft);
|
|
double table_tx_mod[time_vector_tx_mod.size];
|
|
totable(table_tx_mod, &time_vector_tx_mod);
|
|
double table_tx_enc[time_vector_tx_enc.size];
|
|
totable(table_tx_enc, &time_vector_tx_enc);
|
|
|
|
double table_rx[time_vector_rx.size];
|
|
totable(table_rx, &time_vector_rx);
|
|
double table_rx_fft[time_vector_rx_fft.size];
|
|
totable(table_rx_fft, &time_vector_rx_fft);
|
|
double table_rx_demod[time_vector_rx_demod.size];
|
|
totable(table_rx_demod, &time_vector_rx_demod);
|
|
double table_rx_dec[time_vector_rx_dec.size];
|
|
totable(table_rx_dec, &time_vector_rx_dec);
|
|
|
|
// sort table
|
|
qsort (table_tx, time_vector_tx.size, sizeof(double), &compare);
|
|
qsort (table_rx, time_vector_rx.size, sizeof(double), &compare);
|
|
|
|
if (dump_table == 1 ) {
|
|
int n;
|
|
set_component_filelog(USIM); // file located in /tmp/usim.txt
|
|
LOG_F(USIM,"The transmitter raw data: \n");
|
|
|
|
for (n=0; n< time_vector_tx.size; n++) {
|
|
// printf("%f ", table_tx[n]);
|
|
LOG_F(USIM,"%f ", table_tx[n]);
|
|
}
|
|
|
|
LOG_F(USIM,"\n");
|
|
LOG_F(USIM,"The receiver raw data: \n");
|
|
|
|
for (n=0; n< time_vector_rx.size; n++) {
|
|
// printf("%f ", table_rx[n]);
|
|
LOG_F(USIM,"%f ", table_rx[n]);
|
|
}
|
|
|
|
LOG_F(USIM,"\n");
|
|
}
|
|
|
|
double tx_median = table_tx[time_vector_tx.size/2];
|
|
double tx_q1 = table_tx[time_vector_tx.size/4];
|
|
double tx_q3 = table_tx[3*time_vector_tx.size/4];
|
|
|
|
double tx_ifft_median = table_tx_ifft[time_vector_tx_ifft.size/2];
|
|
double tx_ifft_q1 = table_tx_ifft[time_vector_tx_ifft.size/4];
|
|
double tx_ifft_q3 = table_tx_ifft[3*time_vector_tx_ifft.size/4];
|
|
|
|
double tx_mod_median = table_tx_mod[time_vector_tx_mod.size/2];
|
|
double tx_mod_q1 = table_tx_mod[time_vector_tx_mod.size/4];
|
|
double tx_mod_q3 = table_tx_mod[3*time_vector_tx_mod.size/4];
|
|
|
|
double tx_enc_median = table_tx_enc[time_vector_tx_enc.size/2];
|
|
double tx_enc_q1 = table_tx_enc[time_vector_tx_enc.size/4];
|
|
double tx_enc_q3 = table_tx_enc[3*time_vector_tx_enc.size/4];
|
|
|
|
double rx_median = table_rx[time_vector_rx.size/2];
|
|
double rx_q1 = table_rx[time_vector_rx.size/4];
|
|
double rx_q3 = table_rx[3*time_vector_rx.size/4];
|
|
|
|
double rx_fft_median = table_rx_fft[time_vector_rx_fft.size/2];
|
|
double rx_fft_q1 = table_rx_fft[time_vector_rx_fft.size/4];
|
|
double rx_fft_q3 = table_rx_fft[3*time_vector_rx_fft.size/4];
|
|
|
|
double rx_demod_median = table_rx_demod[time_vector_rx_demod.size/2];
|
|
double rx_demod_q1 = table_rx_demod[time_vector_rx_demod.size/4];
|
|
double rx_demod_q3 = table_rx_demod[3*time_vector_rx_demod.size/4];
|
|
|
|
double rx_dec_median = table_rx_dec[time_vector_rx_dec.size/2];
|
|
double rx_dec_q1 = table_rx_dec[time_vector_rx_dec.size/4];
|
|
double rx_dec_q3 = table_rx_dec[3*time_vector_rx_dec.size/4];
|
|
|
|
double std_phy_proc_tx=0;
|
|
double std_phy_proc_tx_ifft=0;
|
|
double std_phy_proc_tx_mod=0;
|
|
double std_phy_proc_tx_enc=0;
|
|
|
|
double std_phy_proc_rx=0;
|
|
double std_phy_proc_rx_fft=0;
|
|
double std_phy_proc_rx_demod=0;
|
|
double std_phy_proc_rx_dec=0;
|
|
|
|
printf("\n**********rb: %d ***mcs : %d *********SNR = %f dB (%f): TX %d dB (gain %f dB), N0W %f dB, I0 %d dB, delta_IF %d [ (%d,%d) dB / (%d,%d) dB ]**************************\n",
|
|
nb_rb,mcs,SNR,SNR2,
|
|
tx_lev_dB,
|
|
20*log10(tx_gain),
|
|
(double)N0,
|
|
eNB->measurements[0].n0_power_tot_dB,
|
|
get_hundred_times_delta_IF(UE,eNB_id,harq_pid) ,
|
|
dB_fixed(eNB->pusch_vars[0]->ulsch_power[0]),
|
|
dB_fixed(eNB->pusch_vars[0]->ulsch_power[1]),
|
|
eNB->measurements->n0_power_dB[0],
|
|
eNB->measurements->n0_power_dB[1]);
|
|
|
|
effective_rate = ((double)(round_trials[0])/((double)round_trials[0] + round_trials[1] + round_trials[2] + round_trials[3]));
|
|
|
|
printf("Errors (%d/%d %d/%d %d/%d %d/%d), Pe = (%e,%e,%e,%e) => effective rate %f (%3.1f%%,%f,%f), normalized delay %f (%f)\n",
|
|
errs[0],
|
|
round_trials[0],
|
|
errs[1],
|
|
round_trials[1],
|
|
errs[2],
|
|
round_trials[2],
|
|
errs[3],
|
|
round_trials[3],
|
|
(double)errs[0]/(round_trials[0]),
|
|
(double)errs[1]/(round_trials[0]),
|
|
(double)errs[2]/(round_trials[0]),
|
|
(double)errs[3]/(round_trials[0]),
|
|
rate*effective_rate,
|
|
100*effective_rate,
|
|
rate,
|
|
rate*get_Qm_ul(mcs),
|
|
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])/
|
|
(double)eNB->ulsch[0]->harq_processes[harq_pid]->TBS,
|
|
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0]));
|
|
|
|
if (cqi_flag >0) {
|
|
printf("CQI errors %d/%d,false positives %d/%d, CQI false negatives %d/%d\n",
|
|
cqi_errors,round_trials[0]+round_trials[1]+round_trials[2]+round_trials[3],
|
|
cqi_crc_falsepositives,round_trials[0]+round_trials[1]+round_trials[2]+round_trials[3],
|
|
cqi_crc_falsenegatives,round_trials[0]+round_trials[1]+round_trials[2]+round_trials[3]);
|
|
}
|
|
|
|
if (eNB->ulsch[0]->harq_processes[harq_pid]->o_ACK[0] > 0)
|
|
printf("ACK/NAK errors %d/%d\n",ack_errors,round_trials[0]+round_trials[1]+round_trials[2]+round_trials[3]);
|
|
|
|
|
|
fprintf(bler_fd,"%f;%d;%d;%d;%f;%d;%d;%d;%d;%d;%d;%d;%d\n",
|
|
SNR,
|
|
mcs,
|
|
nb_rb,
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->TBS,
|
|
rate,
|
|
errs[0],
|
|
round_trials[0],
|
|
errs[1],
|
|
round_trials[1],
|
|
errs[2],
|
|
round_trials[2],
|
|
errs[3],
|
|
round_trials[3]);
|
|
|
|
|
|
if (dump_perf==1) {
|
|
printf("UE TX function statistics (per 1ms subframe)\n\n");
|
|
std_phy_proc_tx = sqrt((double)UE->phy_proc_tx.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/UE->phy_proc_tx.trials - pow((double)UE->phy_proc_tx.diff/UE->phy_proc_tx.trials/cpu_freq_GHz/1000,2));
|
|
printf("Total PHY proc tx :%f us (%d trials)\n",(double)UE->phy_proc_tx.diff/UE->phy_proc_tx.trials/cpu_freq_GHz/1000.0,UE->phy_proc_tx.trials);
|
|
printf("|__ Statistics std: %f us max: %fus min: %fus median %fus q1 %fus q3 %fus n_dropped: %d packet \n",std_phy_proc_tx, t_tx_max, t_tx_min, tx_median, tx_q1, tx_q3,
|
|
n_tx_dropped);
|
|
std_phy_proc_tx_ifft = sqrt((double)UE->ofdm_mod_stats.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/UE->ofdm_mod_stats.trials - pow((double)UE->ofdm_mod_stats.diff/UE->ofdm_mod_stats.trials/cpu_freq_GHz/1000,2));
|
|
printf("OFDM_mod time :%f us (%d trials)\n",(double)UE->ofdm_mod_stats.diff/UE->ofdm_mod_stats.trials/cpu_freq_GHz/1000.0,UE->ofdm_mod_stats.trials);
|
|
printf("|__ Statistics std: %f us median %fus q1 %fus q3 %fus \n",std_phy_proc_tx_ifft, tx_ifft_median, tx_ifft_q1, tx_ifft_q3);
|
|
std_phy_proc_tx_mod = sqrt((double)UE->ulsch_modulation_stats.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/UE->ulsch_modulation_stats.trials - pow((double)UE->ulsch_modulation_stats.diff/UE->ulsch_modulation_stats.trials/cpu_freq_GHz/1000,2));
|
|
printf("ULSCH modulation time :%f us (%d trials)\n",(double)UE->ulsch_modulation_stats.diff/UE->ulsch_modulation_stats.trials/cpu_freq_GHz/1000.0,
|
|
UE->ulsch_modulation_stats.trials);
|
|
printf("|__ Statistics std: %f us median %fus q1 %fus q3 %fus \n",std_phy_proc_tx_mod, tx_mod_median, tx_mod_q1, tx_mod_q3);
|
|
std_phy_proc_tx_enc = sqrt((double)UE->ulsch_encoding_stats.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/UE->ulsch_encoding_stats.trials - pow((double)UE->ulsch_encoding_stats.diff/UE->ulsch_encoding_stats.trials/cpu_freq_GHz/1000,2));
|
|
printf("ULSCH encoding time :%f us (%d trials)\n",(double)UE->ulsch_encoding_stats.diff/UE->ulsch_encoding_stats.trials/cpu_freq_GHz/1000.0,
|
|
UE->ulsch_encoding_stats.trials);
|
|
printf("|__ Statistics std: %f us median %fus q1 %fus q3 %fus \n",std_phy_proc_tx_enc, tx_enc_median, tx_enc_q1, tx_enc_q3);
|
|
printf("|__ ULSCH segmentation time :%f us (%d trials)\n",(double)UE->ulsch_segmentation_stats.diff/UE->ulsch_segmentation_stats.trials/cpu_freq_GHz/1000.0,
|
|
UE->ulsch_segmentation_stats.trials);
|
|
printf("|__ ULSCH turbo encoding time :%f us (%d trials)\n",
|
|
((double)UE->ulsch_turbo_encoding_stats.trials/UE->ulsch_encoding_stats.trials)*(double)
|
|
UE->ulsch_turbo_encoding_stats.diff/UE->ulsch_turbo_encoding_stats.trials/cpu_freq_GHz/1000.0,UE->ulsch_turbo_encoding_stats.trials);
|
|
printf("|__ ULSCH rate-matching time :%f us (%d trials)\n",
|
|
((double)UE->ulsch_rate_matching_stats.trials/UE->ulsch_encoding_stats.trials)*(double)
|
|
UE->ulsch_rate_matching_stats.diff/UE->ulsch_rate_matching_stats.trials/cpu_freq_GHz/1000.0,UE->ulsch_rate_matching_stats.trials);
|
|
printf("|__ ULSCH sub-block interleaving time :%f us (%d trials)\n",
|
|
((double)UE->ulsch_interleaving_stats.trials/UE->ulsch_encoding_stats.trials)*(double)
|
|
UE->ulsch_interleaving_stats.diff/UE->ulsch_interleaving_stats.trials/cpu_freq_GHz/1000.0,UE->ulsch_interleaving_stats.trials);
|
|
printf("|__ ULSCH multiplexing time :%f us (%d trials)\n",
|
|
((double)UE->ulsch_multiplexing_stats.trials/UE->ulsch_encoding_stats.trials)*(double)
|
|
UE->ulsch_multiplexing_stats.diff/UE->ulsch_multiplexing_stats.trials/cpu_freq_GHz/1000.0,UE->ulsch_multiplexing_stats.trials);
|
|
|
|
printf("\n\neNB RX function statistics (per 1ms subframe)\n\n");
|
|
std_phy_proc_rx = sqrt((double)eNB->phy_proc_rx.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/eNB->phy_proc_rx.trials - pow((double)eNB->phy_proc_rx.diff/eNB->phy_proc_rx.trials/cpu_freq_GHz/1000,2));
|
|
printf("Total PHY proc rx :%f us (%d trials)\n",(double)eNB->phy_proc_rx.diff/eNB->phy_proc_rx.trials/cpu_freq_GHz/1000.0,eNB->phy_proc_rx.trials);
|
|
printf("|__ Statistcs std: %fus max: %fus min: %fus median %fus q1 %fus q3 %fus n_dropped: %d packet \n", std_phy_proc_rx, t_rx_max, t_rx_min, rx_median, rx_q1, rx_q3,
|
|
n_rx_dropped);
|
|
std_phy_proc_rx_fft = sqrt((double)eNB->ofdm_demod_stats.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/eNB->ofdm_demod_stats.trials - pow((double)eNB->ofdm_demod_stats.diff/eNB->ofdm_demod_stats.trials/cpu_freq_GHz/1000,2));
|
|
printf("OFDM_demod time :%f us (%d trials)\n",(double)eNB->ofdm_demod_stats.diff/eNB->ofdm_demod_stats.trials/cpu_freq_GHz/1000.0,
|
|
eNB->ofdm_demod_stats.trials);
|
|
printf("|__ Statistcs std: %fus median %fus q1 %fus q3 %fus \n", std_phy_proc_rx_fft, rx_fft_median, rx_fft_q1, rx_fft_q3);
|
|
std_phy_proc_rx_demod = sqrt((double)eNB->ulsch_demodulation_stats.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/eNB->ulsch_demodulation_stats.trials - pow((double)eNB->ulsch_demodulation_stats.diff/eNB->ulsch_demodulation_stats.trials/cpu_freq_GHz/1000,2));
|
|
printf("ULSCH demodulation time :%f us (%d trials)\n",(double)eNB->ulsch_demodulation_stats.diff/eNB->ulsch_demodulation_stats.trials/cpu_freq_GHz/1000.0,
|
|
eNB->ulsch_demodulation_stats.trials);
|
|
printf("|__ Statistcs std: %fus median %fus q1 %fus q3 %fus \n", std_phy_proc_rx_demod, rx_demod_median, rx_demod_q1, rx_demod_q3);
|
|
std_phy_proc_rx_dec = sqrt((double)eNB->ulsch_decoding_stats.diff_square/pow(cpu_freq_GHz,2)/pow(1000,
|
|
2)/eNB->ulsch_decoding_stats.trials - pow((double)eNB->ulsch_decoding_stats.diff/eNB->ulsch_decoding_stats.trials/cpu_freq_GHz/1000,2));
|
|
printf("ULSCH Decoding time (%.2f Mbit/s, avg iter %f) :%f us (%d trials, max %f)\n",
|
|
UE->ulsch[0]->harq_processes[harq_pid]->TBS/1000.0,(double)avg_iter/iter_trials,
|
|
(double)eNB->ulsch_decoding_stats.diff/eNB->ulsch_decoding_stats.trials/cpu_freq_GHz/1000.0,eNB->ulsch_decoding_stats.trials,
|
|
(double)eNB->ulsch_decoding_stats.max/cpu_freq_GHz/1000.0);
|
|
printf("|__ Statistcs std: %fus median %fus q1 %fus q3 %fus \n", std_phy_proc_rx_dec, rx_dec_median, rx_dec_q1, rx_dec_q3);
|
|
printf("|__ sub-block interleaving %f us (%d trials)\n",
|
|
(double)eNB->ulsch_deinterleaving_stats.diff/eNB->ulsch_deinterleaving_stats.trials/cpu_freq_GHz/1000.0,eNB->ulsch_deinterleaving_stats.trials);
|
|
printf("|__ demultiplexing %f us (%d trials)\n",
|
|
(double)eNB->ulsch_demultiplexing_stats.diff/eNB->ulsch_demultiplexing_stats.trials/cpu_freq_GHz/1000.0,eNB->ulsch_demultiplexing_stats.trials);
|
|
printf("|__ rate-matching %f us (%d trials)\n",
|
|
(double)eNB->ulsch_rate_unmatching_stats.diff/eNB->ulsch_rate_unmatching_stats.trials/cpu_freq_GHz/1000.0,eNB->ulsch_rate_unmatching_stats.trials);
|
|
printf("|__ turbo_decoder(%d bits) %f us (%d cycles, %d trials)\n",
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->Cminus ? eNB->ulsch[0]->harq_processes[harq_pid]->Kminus : eNB->ulsch[0]->harq_processes[harq_pid]->Kplus,
|
|
(double)eNB->ulsch_turbo_decoding_stats.diff/eNB->ulsch_turbo_decoding_stats.trials/cpu_freq_GHz/1000.0,
|
|
(int)((double)eNB->ulsch_turbo_decoding_stats.diff/eNB->ulsch_turbo_decoding_stats.trials),eNB->ulsch_turbo_decoding_stats.trials);
|
|
printf(" |__ init %f us (cycles/iter %f, %d trials)\n",
|
|
(double)eNB->ulsch_tc_init_stats.diff/eNB->ulsch_tc_init_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_init_stats.diff/eNB->ulsch_tc_init_stats.trials/((double)avg_iter/iter_trials),
|
|
eNB->ulsch_tc_init_stats.trials);
|
|
printf(" |__ alpha %f us (cycles/iter %f, %d trials)\n",
|
|
(double)eNB->ulsch_tc_alpha_stats.diff/eNB->ulsch_tc_alpha_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_alpha_stats.diff/eNB->ulsch_tc_alpha_stats.trials*2,
|
|
eNB->ulsch_tc_alpha_stats.trials);
|
|
printf(" |__ beta %f us (cycles/iter %f,%d trials)\n",
|
|
(double)eNB->ulsch_tc_beta_stats.diff/eNB->ulsch_tc_beta_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_beta_stats.diff/eNB->ulsch_tc_beta_stats.trials*2,
|
|
eNB->ulsch_tc_beta_stats.trials);
|
|
printf(" |__ gamma %f us (cycles/iter %f,%d trials)\n",
|
|
(double)eNB->ulsch_tc_gamma_stats.diff/eNB->ulsch_tc_gamma_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_gamma_stats.diff/eNB->ulsch_tc_gamma_stats.trials*2,
|
|
eNB->ulsch_tc_gamma_stats.trials);
|
|
printf(" |__ ext %f us (cycles/iter %f,%d trials)\n",
|
|
(double)eNB->ulsch_tc_ext_stats.diff/eNB->ulsch_tc_ext_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_ext_stats.diff/eNB->ulsch_tc_ext_stats.trials*2,
|
|
eNB->ulsch_tc_ext_stats.trials);
|
|
printf(" |__ intl1 %f us (cycles/iter %f,%d trials)\n",
|
|
(double)eNB->ulsch_tc_intl1_stats.diff/eNB->ulsch_tc_intl1_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_intl1_stats.diff/eNB->ulsch_tc_intl1_stats.trials,
|
|
eNB->ulsch_tc_intl1_stats.trials);
|
|
printf(" |__ intl2+HD+CRC %f us (cycles/iter %f,%d trials)\n",
|
|
(double)eNB->ulsch_tc_intl2_stats.diff/eNB->ulsch_tc_intl2_stats.trials/cpu_freq_GHz/1000.0,
|
|
(double)eNB->ulsch_tc_intl2_stats.diff/eNB->ulsch_tc_intl2_stats.trials,
|
|
eNB->ulsch_tc_intl2_stats.trials);
|
|
}
|
|
|
|
if(abstx) { //ABSTRACTION
|
|
blerr= (double)errs[1]/(round_trials[1]);
|
|
//printf("hata yok XX,");
|
|
|
|
|
|
blerr = (double)errs[0]/(round_trials[0]);
|
|
|
|
if(saving_bler==0)
|
|
fprintf(csv_fdUL,"%e;\n",blerr);
|
|
|
|
// printf("hata yok XX,");
|
|
|
|
|
|
if(blerr<1)
|
|
saving_bler = 0;
|
|
else saving_bler =1;
|
|
|
|
|
|
} //ABStraction
|
|
|
|
if ( (test_perf != 0) && (100 * effective_rate > test_perf )) {
|
|
//fprintf(time_meas_fd,"SNR; MCS; TBS; rate; err0; trials0; err1; trials1; err2; trials2; err3; trials3\n");
|
|
fprintf(time_meas_fd,"%f;%d;%d;%f;%d;%d;%d;%d;%d;%d;%d;%d;",
|
|
SNR,
|
|
mcs,
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->TBS,
|
|
rate,
|
|
errs[0],
|
|
round_trials[0],
|
|
errs[1],
|
|
round_trials[1],
|
|
errs[2],
|
|
round_trials[2],
|
|
errs[3],
|
|
round_trials[3]);
|
|
|
|
//fprintf(time_meas_fd,"SNR; MCS; TBS; rate; err0; trials0; err1; trials1; err2; trials2; err3; trials3;ND;\n");
|
|
fprintf(time_meas_fd,"%f;%d;%d;%f;%2.1f;%f;%d;%d;%d;%d;%d;%d;%d;%d;%e;%e;%e;%e;%f;%f;",
|
|
SNR,
|
|
mcs,
|
|
eNB->ulsch[0]->harq_processes[harq_pid]->TBS,
|
|
rate*effective_rate,
|
|
100*effective_rate,
|
|
rate,
|
|
errs[0],
|
|
round_trials[0],
|
|
errs[1],
|
|
round_trials[1],
|
|
errs[2],
|
|
round_trials[2],
|
|
errs[3],
|
|
round_trials[3],
|
|
(double)errs[0]/(round_trials[0]),
|
|
(double)errs[1]/(round_trials[0]),
|
|
(double)errs[2]/(round_trials[0]),
|
|
(double)errs[3]/(round_trials[0]),
|
|
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])/
|
|
(double)eNB->ulsch[0]->harq_processes[harq_pid]->TBS,
|
|
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0]));
|
|
|
|
//fprintf(time_meas_fd,"UE_PROC_TX(%d); OFDM_MOD(%d); UL_MOD(%d); UL_ENC(%d); eNB_PROC_RX(%d); OFDM_DEMOD(%d); UL_DEMOD(%d); UL_DECOD(%d);\n",
|
|
fprintf(time_meas_fd,"%d; %d; %d; %d; %d; %d; %d; %d;",
|
|
UE->phy_proc_tx.trials,
|
|
UE->ofdm_mod_stats.trials,
|
|
UE->ulsch_modulation_stats.trials,
|
|
UE->ulsch_encoding_stats.trials,
|
|
eNB->phy_proc_rx.trials,
|
|
eNB->ofdm_demod_stats.trials,
|
|
eNB->ulsch_demodulation_stats.trials,
|
|
eNB->ulsch_decoding_stats.trials
|
|
);
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;%f;%f;%f;%f;",
|
|
get_time_meas_us(&UE->phy_proc_tx),
|
|
get_time_meas_us(&UE->ofdm_mod_stats),
|
|
get_time_meas_us(&UE->ulsch_modulation_stats),
|
|
get_time_meas_us(&UE->ulsch_encoding_stats),
|
|
get_time_meas_us(&eNB->phy_proc_rx),
|
|
get_time_meas_us(&eNB->ofdm_demod_stats),
|
|
get_time_meas_us(&eNB->ulsch_demodulation_stats),
|
|
get_time_meas_us(&eNB->ulsch_decoding_stats)
|
|
);
|
|
|
|
//fprintf(time_meas_fd,"UE_PROC_TX_STD;UE_PROC_TX_MAX;UE_PROC_TX_MIN;UE_PROC_TX_MED;UE_PROC_TX_Q1;UE_PROC_TX_Q3;UE_PROC_TX_DROPPED;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;%f;%f;%d;", std_phy_proc_tx, t_tx_max, t_tx_min, tx_median, tx_q1, tx_q3, n_tx_dropped);
|
|
|
|
//fprintf(time_meas_fd,"IFFT;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_tx_ifft, tx_ifft_median, tx_ifft_q1, tx_ifft_q3);
|
|
|
|
//fprintf(time_meas_fd,"MOD;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_tx_mod, tx_mod_median, tx_mod_q1, tx_mod_q3);
|
|
|
|
//fprintf(time_meas_fd,"ENC;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_tx_enc, tx_enc_median, tx_enc_q1, tx_enc_q3);
|
|
|
|
//fprintf(time_meas_fd,"eNB_PROC_RX_STD;eNB_PROC_RX_MAX;eNB_PROC_RX_MIN;eNB_PROC_RX_MED;eNB_PROC_RX_Q1;eNB_PROC_RX_Q3;eNB_PROC_RX_DROPPED;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;%f;%f;%d;", std_phy_proc_rx, t_rx_max, t_rx_min, rx_median, rx_q1, rx_q3, n_rx_dropped);
|
|
|
|
//fprintf(time_meas_fd,"FFT;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_rx_fft, rx_fft_median, rx_fft_q1, rx_fft_q3);
|
|
|
|
//fprintf(time_meas_fd,"DEMOD;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_rx_demod,rx_demod_median, rx_demod_q1, rx_demod_q3);
|
|
|
|
//fprintf(time_meas_fd,"DEC;\n");
|
|
fprintf(time_meas_fd,"%f;%f;%f;%f\n", std_phy_proc_rx_dec, rx_dec_median, rx_dec_q1, rx_dec_q3);
|
|
|
|
|
|
printf("[passed] effective rate : %f (%2.1f%%,%f)): log and break \n",rate*effective_rate, 100*effective_rate, rate );
|
|
break;
|
|
} else if (test_perf !=0 ) {
|
|
printf("[continue] effective rate : %f (%2.1f%%,%f)): increase snr \n",rate*effective_rate, 100*effective_rate, rate);
|
|
}
|
|
|
|
|
|
if (((double)errs[0]/(round_trials[0]))<1e-2)
|
|
break;
|
|
} // SNR
|
|
|
|
//
|
|
|
|
|
|
//write_output("chestim_f.m","chestf",eNB->pusch_vars[0]->drs_ch_estimates[0][0],300*12,2,1);
|
|
// write_output("chestim_t.m","chestt",eNB->pusch_vars[0]->drs_ch_estimates_time[0][0], (frame_parms->ofdm_symbol_size)*2,2,1);
|
|
|
|
}//ch realization
|
|
|
|
|
|
oai_exit=1;
|
|
pthread_cond_signal(&eNB->proc.cond_fep);
|
|
|
|
if (abstx) { // ABSTRACTION
|
|
fprintf(csv_fdUL,"];");
|
|
fclose(csv_fdUL);
|
|
}
|
|
|
|
fclose(bler_fd);
|
|
|
|
if (test_perf !=0)
|
|
fclose (time_meas_fd);
|
|
|
|
return(0);
|
|
|
|
}
|
|
|
|
|
|
|