All the *.c *.h and *.cpp files that have a eurecom copyright at the head have been processed. All other files (ie. those with other extensions) have not been touched. Changes to be committed: modified: common/utils/asn1_conversions.h modified: common/utils/assertions.h modified: common/utils/collection/hashtable/hashtable.c modified: common/utils/collection/hashtable/hashtable.h modified: common/utils/collection/hashtable/obj_hashtable.c modified: common/utils/collection/hashtable/obj_hashtable.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_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_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/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/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/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/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/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/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/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/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/defs.h modified: openair2/RRC/LITE/extern.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/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/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/UTIL/AT_COMMANDS/parser.c modified: openair2/UTIL/AT_COMMANDS/parser.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/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.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/TraCIConstants.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/mac_pcap.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_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/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.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.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/HASHTABLE/hashtable.c modified: openair3/UTILS/HASHTABLE/hashtable.h modified: openair3/UTILS/HASHTABLE/obj_hashtable.c modified: openair3/UTILS/HASHTABLE/obj_hashtable.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/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/elf.h modified: targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h modified: targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c modified: targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.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-softmodem.c modified: targets/RT/USER/lte-ue.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/sched_dlsch.c modified: targets/RT/USER/sched_rx_pdsch.c modified: targets/RT/USER/sched_ulsch.c modified: targets/RT/USER/sleeptest.c 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/sinr_sim.c
1584 lines
53 KiB
C
1584 lines
53 KiB
C
/*! \file oaisim_functions.c
|
|
* \brief function primitives of oaisim
|
|
* \author Navid Nikaein
|
|
* \date 2013-2015
|
|
* \version 1.0
|
|
* \company Eurecom
|
|
* \email: openair_tech@eurecom.fr
|
|
* \note
|
|
* \warning
|
|
*/
|
|
|
|
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <signal.h>
|
|
#include <execinfo.h>
|
|
#include <time.h>
|
|
#include <mcheck.h>
|
|
#include <sys/timerfd.h>
|
|
|
|
#include "assertions.h"
|
|
#include "oaisim_functions.h"
|
|
|
|
#include "PHY/extern.h"
|
|
#include "LAYER2/MAC/extern.h"
|
|
#ifdef OPENAIR2
|
|
#include "LAYER2/MAC/proto.h"
|
|
#endif
|
|
#include "LAYER2/PDCP_v10.1.0/pdcp.h"
|
|
#include "LAYER2/PDCP_v10.1.0/pdcp_primitives.h"
|
|
#include "RRC/LITE/extern.h"
|
|
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
|
|
#include "PHY_INTERFACE/extern.h"
|
|
//#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
|
|
#include "SCHED/extern.h"
|
|
#include "SIMULATION/ETH_TRANSPORT/proto.h"
|
|
#include "UTIL/OCG/OCG_extern.h"
|
|
#include "UTIL/LOG/vcd_signal_dumper.h"
|
|
#include "UTIL/OPT/opt.h"
|
|
#include "UTIL/OTG/otg_config.h"
|
|
#include "UTIL/OTG/otg_tx.h"
|
|
#if ENABLE_RAL
|
|
#include "lteRALenb.h"
|
|
#include "lteRALue.h"
|
|
#endif
|
|
|
|
#include "cor_SF_sim.h"
|
|
#include "enb_config.h"
|
|
|
|
#if defined(ENABLE_ITTI)
|
|
# include "intertask_interface.h"
|
|
#endif
|
|
|
|
#if defined(ENABLE_USE_MME)
|
|
# include "s1ap_eNB.h"
|
|
#endif
|
|
|
|
#ifdef SMBV
|
|
extern uint8_t config_smbv;
|
|
extern char smbv_ip[16];
|
|
#endif
|
|
|
|
//constant for OAISIM soft realtime calibration
|
|
#define SF_DEVIATION_OFFSET_NS 100000 //= 0.1ms : should be as a number of UE
|
|
#define SLEEP_STEP_US 100 // = 0.01ms could be adaptive, should be as a number of UE
|
|
#define K 2 // averaging coefficient
|
|
#define TARGET_SF_TIME_NS 1000000 // 1ms = 1000000 ns
|
|
|
|
int otg_times = 0;
|
|
int if_times = 0;
|
|
int for_times = 0;
|
|
|
|
uint16_t Nid_cell = 0; //needed by init_lte_vars
|
|
int nb_antennas_rx_ue = 1; // //
|
|
uint8_t target_dl_mcs = 16; // max mcs used by MAC scheduler
|
|
uint8_t rate_adaptation_flag = 0;
|
|
uint8_t set_snr = 0;
|
|
uint8_t set_sinr = 0;
|
|
double snr_dB=0, sinr_dB=0;
|
|
uint8_t set_seed = 0;
|
|
uint8_t cooperation_flag; // for cooperative communication
|
|
uint8_t abstraction_flag = 0;
|
|
uint8_t ethernet_flag = 0;
|
|
double snr_step = 1.0;
|
|
uint8_t ue_connection_test = 0;
|
|
double forgetting_factor = 0.0;
|
|
uint8_t beta_ACK = 0;
|
|
uint8_t beta_RI = 0;
|
|
uint8_t beta_CQI = 2;
|
|
uint8_t target_ul_mcs = 16;
|
|
LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
|
int map1,map2;
|
|
double **ShaF = NULL;
|
|
// pointers signal buffers (s = transmit, r,r0 = receive)
|
|
double **s_re, **s_im, **r_re, **r_im, **r_re0, **r_im0;
|
|
node_list* ue_node_list = NULL;
|
|
node_list* enb_node_list = NULL;
|
|
int omg_period = 10000;
|
|
int pdcp_period = 0;
|
|
int cba_backoff = 30;
|
|
// time calibration for soft realtime mode
|
|
struct timespec time_spec;
|
|
unsigned long time_last = 0;
|
|
unsigned long time_now = 0;
|
|
int td = 0;
|
|
int td_avg = 0;
|
|
int sleep_time_us = 0;
|
|
|
|
int phy_test = 0;
|
|
|
|
#ifdef OPENAIR2
|
|
// omv related info
|
|
//pid_t omv_pid;
|
|
char full_name[200];
|
|
extern int pfd[2]; // fd for omv : fixme: this could be a local var
|
|
char fdstr[10];
|
|
char frames[10];
|
|
char num_enb[10];
|
|
char num_ue[10];
|
|
//area_x, area_y and area_z for omv
|
|
char x_area[20];
|
|
char y_area[20];
|
|
char z_area[20];
|
|
char nb_antenna[20];
|
|
char frame_type[10];
|
|
char tdd_config[10];
|
|
#endif
|
|
|
|
Packet_OTG_List_t *otg_pdcp_buffer = NULL;
|
|
|
|
extern node_desc_t *enb_data[NUMBER_OF_eNB_MAX];
|
|
extern node_desc_t *ue_data[NUMBER_OF_UE_MAX];
|
|
extern channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs];
|
|
extern channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_NUM_CCs];
|
|
|
|
extern mapping small_scale_names[];
|
|
#if defined(Rel10)
|
|
extern pdcp_mbms_t pdcp_mbms_array_ue[NUMBER_OF_UE_MAX][maxServiceCount][maxSessionPerPMCH];
|
|
extern pdcp_mbms_t pdcp_mbms_array_eNB[NUMBER_OF_eNB_MAX][maxServiceCount][maxSessionPerPMCH];
|
|
#endif
|
|
|
|
extern time_stats_t dl_chan_stats;
|
|
extern time_stats_t ul_chan_stats;
|
|
|
|
extern int xforms;
|
|
|
|
const Enb_properties_array_t *enb_properties;
|
|
|
|
void get_simulation_options(int argc, char *argv[])
|
|
{
|
|
int option;
|
|
char *conf_config_file_name = NULL;
|
|
|
|
enum long_option_e {
|
|
LONG_OPTION_START = 0x100, /* Start after regular single char options */
|
|
|
|
LONG_OPTION_ENB_CONF,
|
|
|
|
LONG_OPTION_PDNC_PERIOD,
|
|
LONG_OPTION_OMG_PERIOD,
|
|
LONG_OPTION_OEH_ENABLED,
|
|
|
|
LONG_OPTION_ENB_RAL_LISTENING_PORT,
|
|
LONG_OPTION_ENB_RAL_IP_ADDRESS,
|
|
LONG_OPTION_ENB_RAL_LINK_ID,
|
|
LONG_OPTION_ENB_RAL_LINK_ADDRESS,
|
|
|
|
LONG_OPTION_ENB_MIHF_REMOTE_PORT,
|
|
LONG_OPTION_ENB_MIHF_IP_ADDRESS,
|
|
LONG_OPTION_ENB_MIHF_ID,
|
|
|
|
LONG_OPTION_UE_RAL_LISTENING_PORT,
|
|
LONG_OPTION_UE_RAL_IP_ADDRESS,
|
|
LONG_OPTION_UE_RAL_LINK_ID,
|
|
LONG_OPTION_UE_RAL_LINK_ADDRESS,
|
|
|
|
LONG_OPTION_UE_MIHF_REMOTE_PORT,
|
|
LONG_OPTION_UE_MIHF_IP_ADDRESS,
|
|
LONG_OPTION_UE_MIHF_ID,
|
|
|
|
LONG_OPTION_MALLOC_TRACE_ENABLED,
|
|
|
|
LONG_OPTION_CBA_BACKOFF_TIMER,
|
|
|
|
LONG_OPTION_PHYTEST,
|
|
LONG_OPTION_XFORMS,
|
|
|
|
#if T_TRACER
|
|
LONG_OPTION_T_PORT,
|
|
LONG_OPTION_T_NOWAIT,
|
|
LONG_OPTION_T_DONT_FORK,
|
|
#endif
|
|
};
|
|
|
|
static struct option long_options[] = {
|
|
{"enb-conf", required_argument, 0, LONG_OPTION_ENB_CONF},
|
|
|
|
{"pdcp-period", required_argument, 0, LONG_OPTION_PDNC_PERIOD},
|
|
{"omg-period", required_argument, 0, LONG_OPTION_OMG_PERIOD},
|
|
{"oeh-enabled", no_argument, 0, LONG_OPTION_OEH_ENABLED},
|
|
|
|
{"enb-ral-listening-port", required_argument, 0, LONG_OPTION_ENB_RAL_LISTENING_PORT},
|
|
{"enb-ral-ip-address", required_argument, 0, LONG_OPTION_ENB_RAL_IP_ADDRESS},
|
|
{"enb-ral-link-id", required_argument, 0, LONG_OPTION_ENB_RAL_LINK_ID},
|
|
{"enb-ral-link-address", required_argument, 0, LONG_OPTION_ENB_RAL_LINK_ADDRESS},
|
|
|
|
{"enb-mihf-remote-port", required_argument, 0, LONG_OPTION_ENB_MIHF_REMOTE_PORT},
|
|
{"enb-mihf-ip-address", required_argument, 0, LONG_OPTION_ENB_MIHF_IP_ADDRESS},
|
|
{"enb-mihf-id", required_argument, 0, LONG_OPTION_ENB_MIHF_ID},
|
|
|
|
{"ue-ral-listening-port", required_argument, 0, LONG_OPTION_UE_RAL_LISTENING_PORT},
|
|
{"ue-ral-ip-address", required_argument, 0, LONG_OPTION_UE_RAL_IP_ADDRESS},
|
|
{"ue-ral-link-id", required_argument, 0, LONG_OPTION_UE_RAL_LINK_ID},
|
|
{"ue-ral-link-address", required_argument, 0, LONG_OPTION_UE_RAL_LINK_ADDRESS},
|
|
|
|
{"ue-mihf-remote-port", required_argument, 0, LONG_OPTION_UE_MIHF_REMOTE_PORT},
|
|
{"ue-mihf-ip-address", required_argument, 0, LONG_OPTION_UE_MIHF_IP_ADDRESS},
|
|
{"ue-mihf-id", required_argument, 0, LONG_OPTION_UE_MIHF_ID},
|
|
|
|
{"malloc-trace-enabled", no_argument, 0, LONG_OPTION_MALLOC_TRACE_ENABLED},
|
|
|
|
{"cba-backoff", required_argument, 0, LONG_OPTION_CBA_BACKOFF_TIMER},
|
|
|
|
{"phy-test", no_argument, NULL, LONG_OPTION_PHYTEST},
|
|
{"xforms", no_argument, 0, LONG_OPTION_XFORMS},
|
|
|
|
#if T_TRACER
|
|
{"T_port", required_argument, 0, LONG_OPTION_T_PORT},
|
|
{"T_nowait", no_argument, 0, LONG_OPTION_T_NOWAIT},
|
|
{"T_dont_fork", no_argument, 0, LONG_OPTION_T_DONT_FORK},
|
|
#endif
|
|
|
|
{NULL, 0, NULL, 0}
|
|
};
|
|
|
|
while ((option = getopt_long (argc, argv, "aA:b:B:c:C:D:d:eE:f:FGg:hHi:IJ:j:k:K:l:L:m:M:n:N:oO:p:P:qQ:rR:s:S:t:T:u:U:vV:w:W:x:X:y:Y:z:Z:", long_options, NULL)) != -1) {
|
|
switch (option) {
|
|
case LONG_OPTION_PHYTEST:
|
|
phy_test = 1;
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_CONF:
|
|
if (optarg) {
|
|
free(conf_config_file_name); // prevent memory leak if option is used multiple times
|
|
conf_config_file_name = strdup(optarg);
|
|
printf("eNB configuration file is %s\n", conf_config_file_name);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_PDNC_PERIOD:
|
|
if (optarg) {
|
|
pdcp_period = atoi(optarg);
|
|
printf("PDCP period is %d\n", pdcp_period);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_OMG_PERIOD:
|
|
if (optarg) {
|
|
omg_period = atoi(optarg);
|
|
printf("OMG period is %d\n", omg_period);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_OEH_ENABLED:
|
|
oai_emulation.info.oeh_enabled = 1;
|
|
break;
|
|
|
|
case LONG_OPTION_MALLOC_TRACE_ENABLED:
|
|
mtrace();
|
|
break;
|
|
|
|
case LONG_OPTION_CBA_BACKOFF_TIMER:
|
|
oai_emulation.info.cba_backoff=atoi(optarg);
|
|
cba_backoff=atoi(optarg);
|
|
printf("setting CBA backoff to %d\n", cba_backoff);
|
|
break;
|
|
|
|
#if ENABLE_RAL
|
|
|
|
case LONG_OPTION_ENB_RAL_LISTENING_PORT:
|
|
if (optarg) {
|
|
g_conf_enb_ral_listening_port = strdup(optarg);
|
|
printf("eNB RAL listening port is %s\n", g_conf_enb_ral_listening_port);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_RAL_IP_ADDRESS:
|
|
if (optarg) {
|
|
g_conf_enb_ral_ip_address = strdup(optarg);
|
|
printf("eNB RAL IP address is %s\n", g_conf_enb_ral_ip_address);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_RAL_LINK_ADDRESS:
|
|
if (optarg) {
|
|
g_conf_enb_ral_link_address = strdup(optarg);
|
|
printf("eNB RAL link address is %s\n", g_conf_enb_ral_link_address);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_RAL_LINK_ID:
|
|
if (optarg) {
|
|
g_conf_enb_ral_link_id = strdup(optarg);
|
|
printf("eNB RAL link id is %s\n", g_conf_enb_ral_link_id);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_MIHF_REMOTE_PORT:
|
|
if (optarg) {
|
|
g_conf_enb_mihf_remote_port = strdup(optarg);
|
|
printf("eNB MIH-F remote port is %s\n", g_conf_enb_mihf_remote_port);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_MIHF_IP_ADDRESS:
|
|
if (optarg) {
|
|
g_conf_enb_mihf_ip_address = strdup(optarg);
|
|
printf("eNB MIH-F IP address is %s\n", g_conf_enb_mihf_ip_address);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_ENB_MIHF_ID:
|
|
if (optarg) {
|
|
g_conf_enb_mihf_id = strdup(optarg);
|
|
printf("eNB MIH-F id is %s\n", g_conf_enb_mihf_id);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_RAL_LISTENING_PORT:
|
|
if (optarg) {
|
|
g_conf_ue_ral_listening_port = strdup(optarg);
|
|
printf("UE RAL listening port is %s\n", g_conf_ue_ral_listening_port);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_RAL_IP_ADDRESS:
|
|
if (optarg) {
|
|
g_conf_ue_ral_ip_address = strdup(optarg);
|
|
printf("UE RAL IP address is %s\n", g_conf_ue_ral_ip_address);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_RAL_LINK_ID:
|
|
if (optarg) {
|
|
g_conf_ue_ral_link_id = strdup(optarg);
|
|
printf("UE RAL link id is %s\n", g_conf_ue_ral_link_id);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_RAL_LINK_ADDRESS:
|
|
if (optarg) {
|
|
g_conf_ue_ral_link_address = strdup(optarg);
|
|
printf("UE RAL link address is %s\n", g_conf_ue_ral_link_address);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_MIHF_REMOTE_PORT:
|
|
if (optarg) {
|
|
g_conf_ue_mihf_remote_port = strdup(optarg);
|
|
printf("UE MIH-F remote port is %s\n", g_conf_ue_mihf_remote_port);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_MIHF_IP_ADDRESS:
|
|
if (optarg) {
|
|
g_conf_ue_mihf_ip_address = strdup(optarg);
|
|
printf("UE MIH-F IP address is %s\n", g_conf_ue_mihf_ip_address);
|
|
}
|
|
|
|
break;
|
|
|
|
case LONG_OPTION_UE_MIHF_ID:
|
|
if (optarg) {
|
|
g_conf_ue_mihf_id = strdup(optarg);
|
|
printf("UE MIH-F id is %s\n", g_conf_ue_mihf_id);
|
|
}
|
|
|
|
break;
|
|
#endif
|
|
|
|
case LONG_OPTION_XFORMS:
|
|
xforms=1;
|
|
break;
|
|
|
|
#if T_TRACER
|
|
case LONG_OPTION_T_PORT: {
|
|
extern int T_port;
|
|
if (optarg == NULL) abort(); /* should not happen */
|
|
T_port = atoi(optarg);
|
|
break;
|
|
}
|
|
|
|
case LONG_OPTION_T_NOWAIT: {
|
|
extern int T_wait;
|
|
T_wait = 0;
|
|
break;
|
|
}
|
|
|
|
case LONG_OPTION_T_DONT_FORK: {
|
|
extern int T_dont_fork;
|
|
T_dont_fork = 1;
|
|
break;
|
|
}
|
|
#endif
|
|
|
|
case 'a':
|
|
abstraction_flag = 1;
|
|
break;
|
|
|
|
case 'A':
|
|
|
|
//oai_emulation.info.ocm_enabled=1;
|
|
if (optarg == NULL)
|
|
oai_emulation.environment_system_config.fading.small_scale.selected_option="AWGN";
|
|
else
|
|
oai_emulation.environment_system_config.fading.small_scale.selected_option= optarg;
|
|
|
|
//awgn_flag = 1;
|
|
break;
|
|
|
|
case 'b':
|
|
oai_emulation.info.nb_enb_local = atoi (optarg);
|
|
break;
|
|
|
|
case 'B':
|
|
oai_emulation.topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option = optarg;
|
|
//oai_emulation.info.omg_model_enb = atoi (optarg);
|
|
break;
|
|
|
|
case 'c':
|
|
//strcpy(oai_emulation.info.local_server, optarg);
|
|
strncpy(oai_emulation.info.local_server, optarg, sizeof(oai_emulation.info.local_server));
|
|
oai_emulation.info.local_server[sizeof(oai_emulation.info.local_server) - 1] = 0; // terminate string
|
|
oai_emulation.info.ocg_enabled=1;
|
|
break;
|
|
|
|
case 'C':
|
|
oai_emulation.info.tdd_config[0] = atoi (optarg);
|
|
AssertFatal (oai_emulation.info.tdd_config[0] <= TDD_Config__subframeAssignment_sa6, "Illegal tdd_config %d (should be 0-%d)!",
|
|
oai_emulation.info.tdd_config[0], TDD_Config__subframeAssignment_sa6);
|
|
break;
|
|
|
|
case 'D':
|
|
oai_emulation.info.multicast_ifname = strdup(optarg);
|
|
break;
|
|
|
|
case 'e':
|
|
oai_emulation.info.extended_prefix_flag[0] = 1;
|
|
break;
|
|
|
|
case 'E':
|
|
set_seed = 1;
|
|
oai_emulation.info.seed = atoi (optarg);
|
|
break;
|
|
|
|
case 'f':
|
|
forgetting_factor = atof (optarg);
|
|
break;
|
|
|
|
case 'F': // set FDD
|
|
printf("Setting Frame to FDD\n");
|
|
oai_emulation.info.frame_type[0] = 0;
|
|
oai_emulation.info.frame_type_name[0] = "FDD";
|
|
break;
|
|
|
|
case 'g':
|
|
oai_emulation.info.multicast_group = atoi (optarg);
|
|
break;
|
|
|
|
case 'G' :
|
|
oai_emulation.info.otg_bg_traffic_enabled = 1;
|
|
break;
|
|
|
|
case 'h':
|
|
help ();
|
|
exit (1);
|
|
break;
|
|
|
|
case 'H':
|
|
oai_emulation.info.handover_active=1;
|
|
printf("Activate the handover procedure at RRC\n");
|
|
break;
|
|
|
|
case 'i':
|
|
#ifdef PROC
|
|
Process_Flag=1;
|
|
node_id = wgt+atoi(optarg);
|
|
port+=atoi(optarg);
|
|
#endif
|
|
break;
|
|
|
|
case 'I':
|
|
oai_emulation.info.cli_enabled = 1;
|
|
break;
|
|
|
|
case 'j' :
|
|
// number of relay nodes: currently only applicable to eMBMS
|
|
oai_emulation.info.nb_rn_local = atoi (optarg);
|
|
break;
|
|
|
|
case 'J':
|
|
ue_connection_test=1;
|
|
oai_emulation.info.ocm_enabled=0;
|
|
snr_step = atof(optarg);
|
|
break;
|
|
|
|
case 'k':
|
|
//ricean_factor = atof (optarg);
|
|
printf("[SIM] Option k is no longer supported on the command line. Please specify your channel model in the xml template\n");
|
|
exit(-1);
|
|
break;
|
|
|
|
case 'K':
|
|
oai_emulation.info.itti_dump_file = optarg;
|
|
break;
|
|
|
|
case 'l':
|
|
oai_emulation.info.g_log_level = atoi(optarg);
|
|
break;
|
|
|
|
case 'L': // set FDD
|
|
flag_LA = atoi(optarg);
|
|
break;
|
|
|
|
case 'm':
|
|
target_dl_mcs = atoi (optarg);
|
|
printf("Max target downlink MCS used by MAC scheduler is set to %d\n", target_dl_mcs);
|
|
break;
|
|
|
|
case 'M':
|
|
abstraction_flag = 1;
|
|
ethernet_flag = 1;
|
|
oai_emulation.info.ethernet_id = atoi (optarg);
|
|
oai_emulation.info.master_id = oai_emulation.info.ethernet_id;
|
|
oai_emulation.info.ethernet_flag = 1;
|
|
break;
|
|
|
|
case 'n':
|
|
oai_emulation.info.n_frames = atoi (optarg);
|
|
oai_emulation.emulation_config.emulation_time_ms= oai_emulation.info.n_frames * 10; // 10 ms frame
|
|
//n_frames = (n_frames >1024) ? 1024: n_frames; // adjust the n_frames if higher that 1024
|
|
oai_emulation.info.n_frames_flag = 1;
|
|
break;
|
|
|
|
case 'N':
|
|
Nid_cell = atoi (optarg);
|
|
|
|
if (Nid_cell > 503) {
|
|
printf("Illegal Nid_cell %d (should be 0 ... 503)\n", Nid_cell);
|
|
exit(-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'O':
|
|
if (optarg) {
|
|
free(conf_config_file_name); // prevent memory leak if option is used multiple times
|
|
conf_config_file_name = strdup(optarg);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'o':
|
|
oai_emulation.info.slot_isr = 1;
|
|
break;
|
|
|
|
case 'p':
|
|
oai_emulation.info.nb_master = atoi (optarg);
|
|
break;
|
|
|
|
case 'P':
|
|
oai_emulation.info.opt_enabled = 1;
|
|
opt_enabled = 1;
|
|
|
|
if (strcmp(optarg, "wireshark") == 0) {
|
|
opt_type = OPT_WIRESHARK;
|
|
printf("Enabling OPT for wireshark\n");
|
|
} else if (strcmp(optarg, "pcap") == 0) {
|
|
opt_type = OPT_PCAP;
|
|
printf("Enabling OPT for pcap\n");
|
|
} else {
|
|
printf("Unrecognized option for OPT module. -> Disabling it\n");
|
|
printf("Possible values are either wireshark or pcap\n");
|
|
opt_type = OPT_NONE;
|
|
oai_emulation.info.opt_enabled = 0;
|
|
opt_enabled = 0;
|
|
}
|
|
|
|
oai_emulation.info.opt_mode = opt_type;
|
|
break;
|
|
|
|
case 'q':
|
|
// openair performane profiler
|
|
oai_emulation.info.opp_enabled = 1; // this var is used for OCG
|
|
opp_enabled = 1; // this is the global var used by oaisim
|
|
break;
|
|
|
|
case 'Q':
|
|
//eMBMS_active=1;
|
|
// 0 : not used (default), 1: eMBMS and RRC enabled, 2: eMBMS relaying and RRC enabled, 3: eMBMS enabled, RRC disabled, 4: eMBMS relaying enabled, RRC disabled
|
|
oai_emulation.info.eMBMS_active_state = atoi (optarg);
|
|
break;
|
|
|
|
case 'r':
|
|
rate_adaptation_flag = 1;
|
|
break;
|
|
|
|
case 'R':
|
|
oai_emulation.info.N_RB_DL[0] = atoi (optarg);
|
|
|
|
if ((oai_emulation.info.N_RB_DL[0] != 6) && (oai_emulation.info.N_RB_DL[0] != 15) && (oai_emulation.info.N_RB_DL[0] != 25)
|
|
&& (oai_emulation.info.N_RB_DL[0] != 50) && (oai_emulation.info.N_RB_DL[0] != 75) && (oai_emulation.info.N_RB_DL[0] != 100)) {
|
|
printf("Illegal N_RB_DL %d (should be one of 6,15,25,50,75,100)\n", oai_emulation.info.N_RB_DL[0]);
|
|
exit (-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 's':
|
|
snr_dB = atoi (optarg);
|
|
// set_snr = 1;
|
|
oai_emulation.info.ocm_enabled=0;
|
|
break;
|
|
|
|
case 'S':
|
|
sinr_dB = atoi (optarg);
|
|
set_sinr = 1;
|
|
oai_emulation.info.ocm_enabled=0;
|
|
break;
|
|
|
|
case 't':
|
|
target_ul_mcs = atoi (optarg);
|
|
printf("Max target uplink MCS used by MAC scheduler is set to %d\n", target_ul_mcs);
|
|
break;
|
|
|
|
case 'T':
|
|
oai_emulation.info.otg_enabled = 1;
|
|
oai_emulation.info.otg_traffic = optarg;
|
|
break;
|
|
|
|
case 'u':
|
|
oai_emulation.info.nb_ue_local = atoi (optarg);
|
|
break;
|
|
|
|
case 'U':
|
|
oai_emulation.topology_config.mobility.UE_mobility.UE_mobility_type.selected_option = optarg;
|
|
break;
|
|
|
|
case 'v':
|
|
oai_emulation.info.omv_enabled = 1;
|
|
break;
|
|
|
|
case 'V':
|
|
ouput_vcd = 1;
|
|
oai_emulation.info.vcd_enabled = 1;
|
|
oai_emulation.info.vcd_file = optarg;
|
|
break;
|
|
|
|
case 'w':
|
|
oai_emulation.info.cba_group_active = atoi (optarg);
|
|
break;
|
|
|
|
case 'W':
|
|
#ifdef SMBV
|
|
config_smbv = 1;
|
|
|
|
if(atoi(optarg)!=0)
|
|
strcpy(smbv_ip,optarg);
|
|
|
|
#endif
|
|
break;
|
|
|
|
case 'x':
|
|
/*
|
|
oai_emulation.info.transmission_mode[0] = atoi (optarg);
|
|
|
|
if ((oai_emulation.info.transmission_mode[0] != 1) && (oai_emulation.info.transmission_mode[0] != 2) && (oai_emulation.info.transmission_mode[0] != 3)
|
|
&& (oai_emulation.info.transmission_mode[0] != 5) && (oai_emulation.info.transmission_mode[0] != 6)) {
|
|
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode[0]);
|
|
exit(-1);
|
|
}
|
|
*/
|
|
printf("Option -x deprecated. Please set transmission mode in eNB config file\n");
|
|
exit(-1);
|
|
|
|
break;
|
|
|
|
case 'X':
|
|
#ifdef PROC
|
|
temp=atoi(optarg);
|
|
|
|
if(temp==0) {
|
|
port=CHANNEL_PORT;
|
|
Channel_Flag=1;
|
|
Process_Flag=0;
|
|
wgt=0;
|
|
} else if(temp==1) {
|
|
port=eNB_PORT;
|
|
wgt=0;
|
|
} else {
|
|
port=UE_PORT;
|
|
wgt=MAX_eNB;
|
|
}
|
|
|
|
#endif
|
|
break;
|
|
|
|
case 'y':
|
|
nb_antennas_rx_ue=atoi(optarg);
|
|
|
|
if (nb_antennas_rx_ue>4) {
|
|
printf("Cannot have more than 4 antennas\n");
|
|
exit(-1);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'Y':
|
|
oai_emulation.info.g_log_verbosity_option = strdup(optarg);
|
|
break;
|
|
|
|
case 'z':
|
|
cooperation_flag = atoi (optarg);
|
|
break;
|
|
|
|
case 'Z':
|
|
/* Sebastien ROUX: Reserved for future use (currently used in ltenow branch) */
|
|
break;
|
|
|
|
default:
|
|
help ();
|
|
exit (-1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ((oai_emulation.info.nb_enb_local > 0) && (conf_config_file_name != NULL)) {
|
|
/* Read eNB configuration file */
|
|
enb_properties = enb_config_init(conf_config_file_name);
|
|
|
|
AssertFatal (oai_emulation.info.nb_enb_local <= enb_properties->number,
|
|
"Number of eNB is greater than eNB defined in configuration file %s (%d/%d)!",
|
|
conf_config_file_name, oai_emulation.info.nb_enb_local, enb_properties->number);
|
|
|
|
/* Update some simulation parameters */
|
|
oai_emulation.info.frame_type[0] = enb_properties->properties[0]->frame_type[0];
|
|
oai_emulation.info.tdd_config[0] = enb_properties->properties[0]->tdd_config[0];
|
|
oai_emulation.info.tdd_config_S[0] = enb_properties->properties[0]->tdd_config_s[0];
|
|
oai_emulation.info.extended_prefix_flag[0] = enb_properties->properties[0]->prefix_type[0];
|
|
}
|
|
|
|
free(conf_config_file_name);
|
|
conf_config_file_name = 0;
|
|
}
|
|
|
|
void check_and_adjust_params(void)
|
|
{
|
|
|
|
int32_t ret;
|
|
int i,j;
|
|
|
|
if (oai_emulation.info.nb_ue_local + oai_emulation.info.nb_rn_local > NUMBER_OF_UE_MAX) {
|
|
LOG_E(EMU,"Enter fewer than %d UEs/RNs for the moment or change the NUMBER_OF_UE_MAX\n", NUMBER_OF_UE_MAX);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
if (oai_emulation.info.nb_enb_local + oai_emulation.info.nb_rn_local > NUMBER_OF_eNB_MAX) {
|
|
LOG_E(EMU,"Enter fewer than %d eNBs/RNs for the moment or change the NUMBER_OF_UE_MAX\n", NUMBER_OF_eNB_MAX);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
if (oai_emulation.info.nb_rn_local > NUMBER_OF_RN_MAX) {
|
|
LOG_E(EMU,"Enter fewer than %d RNs for the moment or change the NUMBER_OF_RN_MAX\n", NUMBER_OF_RN_MAX);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
// fix ethernet and abstraction with RRC_CELLULAR Flag
|
|
#ifdef RRC_CELLULAR
|
|
abstraction_flag = 1;
|
|
ethernet_flag = 1;
|
|
#endif
|
|
|
|
if (set_sinr == 0)
|
|
sinr_dB = snr_dB - 20;
|
|
|
|
// setup netdevice interface (netlink socket)
|
|
LOG_I(EMU,"[INIT] Starting NAS netlink interface\n");
|
|
ret = netlink_init();
|
|
|
|
if (ret < 0)
|
|
LOG_W(EMU,"[INIT] Netlink not available, careful ...\n");
|
|
|
|
if (ethernet_flag == 1) {
|
|
oai_emulation.info.master[oai_emulation.info.master_id].nb_ue = oai_emulation.info.nb_ue_local + oai_emulation.info.nb_rn_local;
|
|
oai_emulation.info.master[oai_emulation.info.master_id].nb_enb = oai_emulation.info.nb_enb_local + oai_emulation.info.nb_rn_local;
|
|
|
|
if (oai_emulation.info.nb_rn_local>0)
|
|
LOG_N(EMU,"Ethernet emulation is not yet tested with the relay nodes\n");
|
|
|
|
if (!oai_emulation.info.master_id)
|
|
oai_emulation.info.is_primary_master = 1;
|
|
|
|
j = 1;
|
|
|
|
for (i = 0; i < oai_emulation.info.nb_master; i++) {
|
|
if (i != oai_emulation.info.master_id)
|
|
oai_emulation.info.master_list = oai_emulation.info.master_list + j;
|
|
|
|
LOG_I (EMU, "Index of master id i=%d MASTER_LIST %d\n", i, oai_emulation.info.master_list);
|
|
j *= 2;
|
|
}
|
|
|
|
LOG_I (EMU, " Total number of master %d my master id %d\n", oai_emulation.info.nb_master, oai_emulation.info.master_id);
|
|
init_bypass ();
|
|
|
|
while (emu_tx_status != SYNCED_TRANSPORT) {
|
|
LOG_I (EMU, " Waiting for EMU Transport to be synced\n");
|
|
emu_transport_sync (); //emulation_tx_rx();
|
|
}
|
|
} // ethernet flag
|
|
|
|
//
|
|
NB_UE_INST = oai_emulation.info.nb_ue_local + oai_emulation.info.nb_ue_remote;
|
|
NB_eNB_INST = oai_emulation.info.nb_enb_local + oai_emulation.info.nb_enb_remote;
|
|
NB_RN_INST = oai_emulation.info.nb_rn_local + oai_emulation.info.nb_rn_remote;
|
|
|
|
#if defined(PDCP_USE_NETLINK_QUEUES) && defined(OPENAIR2)
|
|
pdcp_netlink_init();
|
|
#endif
|
|
|
|
if (NB_RN_INST > 0 ) {
|
|
LOG_N(EMU,"Total number of RN %d (local %d, remote %d) mobility (the same as eNB) %s \n", NB_RN_INST,oai_emulation.info.nb_rn_local,oai_emulation.info.nb_rn_remote,
|
|
oai_emulation.topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option);
|
|
|
|
LOG_N(EMU,"Adjust the number of eNB inst (%d->%d) and UE inst (%d->%d)\n ",
|
|
NB_eNB_INST, NB_eNB_INST+NB_RN_INST,
|
|
NB_UE_INST, NB_UE_INST+NB_RN_INST);
|
|
NB_eNB_INST+=NB_RN_INST;
|
|
NB_UE_INST+=NB_RN_INST;
|
|
}
|
|
|
|
LOG_I(EMU,"Total number of UE %d (first local %d , num local %d, remote %d, relay %d) mobility %s \n",
|
|
NB_UE_INST,oai_emulation.info.first_ue_local, oai_emulation.info.nb_ue_local,oai_emulation.info.nb_ue_remote,
|
|
NB_RN_INST,
|
|
oai_emulation.topology_config.mobility.UE_mobility.UE_mobility_type.selected_option);
|
|
|
|
LOG_I(EMU,"Total number of eNB %d (local %d, remote %d, relay %d) mobility %s \n",
|
|
NB_eNB_INST,oai_emulation.info.nb_enb_local,oai_emulation.info.nb_enb_remote,
|
|
NB_RN_INST,
|
|
oai_emulation.topology_config.mobility.eNB_mobility.eNB_mobility_type.selected_option);
|
|
|
|
}
|
|
|
|
#ifdef OPENAIR2
|
|
void init_omv(void)
|
|
{
|
|
if (oai_emulation.info.omv_enabled == 1) {
|
|
|
|
if(pipe(pfd) == -1)
|
|
perror("pipe error \n");
|
|
|
|
snprintf( full_name, sizeof(full_name), "%s/UTIL/OMV/OMV",getenv("OPENAIR2_DIR") );
|
|
LOG_I(EMU,"Stating the OMV path %s pfd[0] %d pfd[1] %d \n", full_name, pfd[0],pfd[1]);
|
|
|
|
switch(fork()) {
|
|
case -1 :
|
|
perror("fork failed \n");
|
|
break;
|
|
|
|
case 0 : // child is going to be the omv, it is the reader
|
|
if(close(pfd[1]) == -1 ) // we close the write desc.
|
|
perror("close on write\n" );
|
|
|
|
sprintf(fdstr, "%d", pfd[0] );
|
|
sprintf(num_enb, "%d", NB_eNB_INST);
|
|
sprintf(num_ue, "%d", NB_UE_INST);
|
|
sprintf(x_area, "%f", oai_emulation.topology_config.area.x_m );
|
|
sprintf(y_area, "%f", oai_emulation.topology_config.area.y_m );
|
|
sprintf(z_area, "%f", 200.0 );
|
|
sprintf(frames, "%d", oai_emulation.info.n_frames);
|
|
sprintf(nb_antenna, "%d", 4);
|
|
sprintf(frame_type, "%s", (oai_emulation.info.frame_type[0] == 0) ? "FDD" : "TDD");
|
|
sprintf(tdd_config, "%d", oai_emulation.info.tdd_config[0]);
|
|
// execl is used to launch the visualisor
|
|
execl(full_name,"OMV", fdstr, frames, num_enb, num_ue, x_area, y_area, z_area, nb_antenna, frame_type, tdd_config,NULL );
|
|
perror( "error in execl the OMV" );
|
|
}
|
|
|
|
//parent
|
|
if(close( pfd[0] ) == -1 ) // we close the write desc.
|
|
perror("close on read\n" );
|
|
}
|
|
}
|
|
#endif
|
|
|
|
void init_seed(uint8_t set_seed)
|
|
{
|
|
|
|
if(set_seed) {
|
|
|
|
randominit (oai_emulation.info.seed);
|
|
set_taus_seed (oai_emulation.info.seed);
|
|
|
|
} else {
|
|
randominit (0);
|
|
set_taus_seed (0);
|
|
}
|
|
}
|
|
|
|
void init_openair1(void)
|
|
{
|
|
module_id_t UE_id, eNB_id;
|
|
uint8_t CC_id;
|
|
#if ENABLE_RAL
|
|
int list_index;
|
|
#endif
|
|
|
|
// change the nb_connected_eNB
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
init_lte_vars (&frame_parms[CC_id],
|
|
oai_emulation.info.frame_type[CC_id],
|
|
oai_emulation.info.tdd_config[CC_id],
|
|
oai_emulation.info.tdd_config_S[CC_id],
|
|
oai_emulation.info.extended_prefix_flag[CC_id],
|
|
oai_emulation.info.N_RB_DL[CC_id],
|
|
Nid_cell,
|
|
cooperation_flag,
|
|
enb_properties->properties[0]->nb_antenna_ports[CC_id],
|
|
abstraction_flag,
|
|
enb_properties->properties[0]->nb_antennas_rx[CC_id],
|
|
enb_properties->properties[0]->nb_antennas_tx[CC_id],
|
|
nb_antennas_rx_ue,
|
|
oai_emulation.info.eMBMS_active_state);
|
|
}
|
|
|
|
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
|
|
for (UE_id=0; UE_id<NB_UE_INST; UE_id++) {
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->pusch_config_dedicated[UE_id].betaOffset_ACK_Index = beta_ACK;
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->pusch_config_dedicated[UE_id].betaOffset_RI_Index = beta_RI;
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->pusch_config_dedicated[UE_id].betaOffset_CQI_Index = beta_CQI;
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.pdsch_config_common.p_b = (frame_parms[CC_id]->nb_antennas_tx_eNB>1) ? 1 : 0; // rho_A = rho_B
|
|
|
|
PHY_vars_UE_g[UE_id][CC_id]->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index = beta_ACK;
|
|
PHY_vars_UE_g[UE_id][CC_id]->pusch_config_dedicated[eNB_id].betaOffset_RI_Index = beta_RI;
|
|
PHY_vars_UE_g[UE_id][CC_id]->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index = beta_CQI;
|
|
PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.pdsch_config_common.p_b = (frame_parms[CC_id]->nb_antennas_tx_eNB>1) ? 1 : 0; // rho_A = rho_B
|
|
}
|
|
}
|
|
}
|
|
|
|
printf ("AFTER init: MAX_NUM_CCs %d, Nid_cell %d frame_type %d,tdd_config %d\n",
|
|
MAX_NUM_CCs,
|
|
PHY_vars_eNB_g[0][0]->lte_frame_parms.Nid_cell,
|
|
PHY_vars_eNB_g[0][0]->lte_frame_parms.frame_type,
|
|
PHY_vars_eNB_g[0][0]->lte_frame_parms.tdd_config);
|
|
|
|
number_of_cards = 1;
|
|
|
|
openair_daq_vars.rx_rf_mode = 1;
|
|
openair_daq_vars.tdd = 1;
|
|
openair_daq_vars.rx_gain_mode = DAQ_AGC_ON;
|
|
|
|
openair_daq_vars.dlsch_transmission_mode = oai_emulation.info.transmission_mode[0];
|
|
//#warning "NN->FK: OAI EMU channel abstraction does not work for MCS higher than"
|
|
openair_daq_vars.target_ue_dl_mcs = cmin(target_dl_mcs,16);
|
|
openair_daq_vars.target_ue_ul_mcs = target_ul_mcs;
|
|
openair_daq_vars.ue_dl_rb_alloc=0x1fff;
|
|
openair_daq_vars.ue_ul_nb_rb=6;
|
|
openair_daq_vars.dlsch_rate_adaptation = rate_adaptation_flag;
|
|
openair_daq_vars.use_ia_receiver = 0;
|
|
|
|
//N_TA_offset
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
for (UE_id=0; UE_id<NB_UE_INST; UE_id++) {
|
|
if (PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.frame_type == TDD) {
|
|
if (PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.N_RB_DL == 100)
|
|
PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset = 624;
|
|
else if (PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.N_RB_DL == 50)
|
|
PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset = 624/2;
|
|
else if (PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.N_RB_DL == 25)
|
|
PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset = 624/4;
|
|
} else {
|
|
PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset = 0;
|
|
}
|
|
}
|
|
|
|
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
|
|
if (PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.frame_type == TDD) {
|
|
if (PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL == 100)
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->N_TA_offset = 624;
|
|
else if (PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL == 50)
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->N_TA_offset = 624/2;
|
|
else if (PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL == 25)
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->N_TA_offset = 624/4;
|
|
} else {
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->N_TA_offset = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++)
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
if (phy_test==1)
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->mac_enabled=0;
|
|
else
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->mac_enabled=1;
|
|
}
|
|
|
|
// init_ue_status();
|
|
for (UE_id=0; UE_id<NB_UE_INST; UE_id++)
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
|
|
PHY_vars_UE_g[UE_id][CC_id]->tx_power_max_dBm=23;
|
|
|
|
PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB=100;
|
|
|
|
// update UE_mode for each eNB_id not just 0
|
|
if (abstraction_flag == 0)
|
|
PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = NOT_SYNCHED;
|
|
else {
|
|
// 0 is the index of the connected eNB
|
|
PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] = PRACH;
|
|
}
|
|
|
|
if (phy_test==1)
|
|
PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=0;
|
|
else
|
|
PHY_vars_UE_g[UE_id][CC_id]->mac_enabled=1;
|
|
|
|
PHY_vars_UE_g[UE_id][CC_id]->lte_ue_pdcch_vars[0]->crnti = 0x1235 + UE_id;
|
|
PHY_vars_UE_g[UE_id][CC_id]->current_dlsch_cqi[0] = 10;
|
|
|
|
LOG_I(EMU, "UE %d mode is initialized to %d\n", UE_id, PHY_vars_UE_g[UE_id][CC_id]->UE_mode[0] );
|
|
#if ENABLE_RAL
|
|
PHY_vars_UE_g[UE_id][CC_id]->ral_thresholds_timed = hashtable_create (64, NULL, NULL);
|
|
|
|
for (list_index = 0; list_index < RAL_LINK_PARAM_GEN_MAX; list_index++) {
|
|
SLIST_INIT(&PHY_vars_UE_g[UE_id][CC_id]->ral_thresholds_gen_polled[list_index]);
|
|
}
|
|
|
|
for (list_index = 0; list_index < RAL_LINK_PARAM_LTE_MAX; list_index++) {
|
|
SLIST_INIT(&PHY_vars_UE_g[UE_id][CC_id]->ral_thresholds_lte_polled[list_index]);
|
|
}
|
|
|
|
#endif
|
|
|
|
}
|
|
}
|
|
|
|
void init_openair2(void)
|
|
{
|
|
#ifdef OPENAIR2
|
|
module_id_t enb_id;
|
|
module_id_t UE_id;
|
|
int CC_id;
|
|
//#warning "eNB index is hard coded to zero"
|
|
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++)
|
|
l2_init (&PHY_vars_eNB_g[0][CC_id]->lte_frame_parms,
|
|
oai_emulation.info.eMBMS_active_state,
|
|
NULL,
|
|
oai_emulation.info.cba_group_active,
|
|
oai_emulation.info.handover_active);
|
|
|
|
mac_xface->macphy_exit = exit_fun;
|
|
|
|
#endif
|
|
}
|
|
|
|
void init_ocm(void)
|
|
{
|
|
module_id_t UE_id, eNB_id;
|
|
int CC_id;
|
|
|
|
/* Added for PHY abstraction */
|
|
|
|
char* frame_type = "unknown";
|
|
|
|
switch (oai_emulation.info.frame_type[0]) {
|
|
case FDD:
|
|
frame_type = "FDD";
|
|
break;
|
|
|
|
case TDD:
|
|
frame_type = "FDD";
|
|
break;
|
|
}
|
|
|
|
LOG_I(OCM,"Running with frame_type %d (%s), Nid_cell %d, N_RB_DL %d, EP %d, mode %d, target dl_mcs %d, rate adaptation %d, nframes %d, abstraction %d, channel %s\n",
|
|
oai_emulation.info.frame_type[0], frame_type, Nid_cell, oai_emulation.info.N_RB_DL[0], oai_emulation.info.extended_prefix_flag[0], oai_emulation.info.transmission_mode[0],target_dl_mcs,
|
|
rate_adaptation_flag,oai_emulation.info.n_frames,abstraction_flag,oai_emulation.environment_system_config.fading.small_scale.selected_option);
|
|
|
|
if (abstraction_flag) {
|
|
|
|
get_beta_map();
|
|
#ifdef PHY_ABSTRACTION_UL
|
|
get_beta_map_up();
|
|
#endif
|
|
get_MIESM_param();
|
|
|
|
//load_pbch_desc();
|
|
}
|
|
|
|
|
|
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) {
|
|
enb_data[eNB_id] = (node_desc_t *)malloc(sizeof(node_desc_t));
|
|
init_enb(enb_data[eNB_id],oai_emulation.environment_system_config.antenna.eNB_antenna);
|
|
}
|
|
|
|
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
|
|
ue_data[UE_id] = (node_desc_t *)malloc(sizeof(node_desc_t));
|
|
init_ue(ue_data[UE_id],oai_emulation.environment_system_config.antenna.UE_antenna);
|
|
}
|
|
|
|
if ((oai_emulation.info.ocm_enabled == 1)&& (ethernet_flag == 0 ) &&
|
|
(oai_emulation.environment_system_config.fading.shadowing.decorrelation_distance_m>0) &&
|
|
(oai_emulation.environment_system_config.fading.shadowing.variance_dB>0)) {
|
|
|
|
// init SF map here!!!
|
|
map1 =(int)oai_emulation.topology_config.area.x_m;
|
|
map2 =(int)oai_emulation.topology_config.area.y_m;
|
|
ShaF = init_SF(map1,map2,oai_emulation.environment_system_config.fading.shadowing.decorrelation_distance_m,oai_emulation.environment_system_config.fading.shadowing.variance_dB);
|
|
|
|
// size of area to generate shadow fading map
|
|
LOG_D(EMU,"Simulation area x=%f, y=%f\n",
|
|
oai_emulation.topology_config.area.x_m,
|
|
oai_emulation.topology_config.area.y_m);
|
|
}
|
|
|
|
if (abstraction_flag == 0)
|
|
init_channel_vars (frame_parms[0], &s_re, &s_im, &r_re, &r_im, &r_re0, &r_im0);
|
|
|
|
// initialize channel descriptors
|
|
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) {
|
|
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
LOG_D(OCM,"Initializing channel (%s, %d) from eNB %d to UE %d\n", oai_emulation.environment_system_config.fading.small_scale.selected_option,
|
|
map_str_to_int(small_scale_names,oai_emulation.environment_system_config.fading.small_scale.selected_option), eNB_id, UE_id);
|
|
|
|
/* if (oai_emulation.info.transmission_mode == 5)
|
|
eNB2UE[eNB_id][UE_id] = new_channel_desc_scm(PHY_vars_eNB_g[eNB_id]->lte_frame_parms.nb_antennas_tx,
|
|
PHY_vars_UE_g[UE_id]->lte_frame_parms.nb_antennas_rx,
|
|
(UE_id == 0)? Rice1_corr : Rice1_anticorr,
|
|
oai_emulation.environment_system_config.system_bandwidth_MB,
|
|
forgetting_factor,
|
|
0,
|
|
0);
|
|
|
|
else
|
|
*/
|
|
|
|
eNB2UE[eNB_id][UE_id][CC_id] =
|
|
new_channel_desc_scm(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.nb_antennas_tx,
|
|
PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.nb_antennas_rx,
|
|
map_str_to_int(small_scale_names,oai_emulation.environment_system_config.fading.small_scale.selected_option),
|
|
N_RB2sampling_rate(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL),
|
|
N_RB2channel_bandwidth(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL),
|
|
forgetting_factor,
|
|
0,
|
|
0);
|
|
random_channel(eNB2UE[eNB_id][UE_id][CC_id],abstraction_flag);
|
|
LOG_D(OCM,"[SIM] Initializing channel (%s, %d) from UE %d to eNB %d\n", oai_emulation.environment_system_config.fading.small_scale.selected_option,
|
|
map_str_to_int(small_scale_names, oai_emulation.environment_system_config.fading.small_scale.selected_option),UE_id, eNB_id);
|
|
|
|
UE2eNB[UE_id][eNB_id][CC_id] =
|
|
new_channel_desc_scm(PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.nb_antennas_tx,
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.nb_antennas_rx,
|
|
map_str_to_int(small_scale_names, oai_emulation.environment_system_config.fading.small_scale.selected_option),
|
|
N_RB2sampling_rate(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_UL),
|
|
N_RB2channel_bandwidth(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_UL),
|
|
forgetting_factor,
|
|
0,
|
|
0);
|
|
|
|
random_channel(UE2eNB[UE_id][eNB_id][CC_id],abstraction_flag);
|
|
|
|
// to make channel reciprocal uncomment following line instead of previous. However this only works for SISO at the moment. For MIMO the channel would need to be transposed.
|
|
//UE2eNB[UE_id][eNB_id] = eNB2UE[eNB_id][UE_id];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void init_otg_pdcp_buffer(void)
|
|
{
|
|
module_id_t i;
|
|
otg_pdcp_buffer = malloc((NB_UE_INST + NB_eNB_INST) * sizeof(Packet_OTG_List_t));
|
|
|
|
for (i = 0; i < NB_UE_INST + NB_eNB_INST; i++) {
|
|
pkt_list_init(&(otg_pdcp_buffer[i]));
|
|
//LOG_I(EMU,"HEAD of otg_pdcp_buffer[%d] is %p\n", i, pkt_list_get_head(&(otg_pdcp_buffer[i])));
|
|
}
|
|
}
|
|
|
|
void update_omg (frame_t frameP)
|
|
{
|
|
module_id_t UE_id, eNB_id;
|
|
int new_omg_model;
|
|
|
|
if ((frameP % omg_period) == 0 ) { // call OMG every 10ms
|
|
update_nodes(oai_emulation.info.time_s);
|
|
display_node_list(enb_node_list);
|
|
display_node_list(ue_node_list);
|
|
|
|
if (oai_emulation.info.omg_model_ue >= MAX_NUM_MOB_TYPES) { // mix mobility model
|
|
for(UE_id=oai_emulation.info.first_ue_local; UE_id<(oai_emulation.info.first_ue_local+oai_emulation.info.nb_ue_local); UE_id++) {
|
|
new_omg_model = randomgen(STATIC,RWALK);
|
|
LOG_D(OMG, "[UE] Node of ID %d is changing mobility generator ->%d \n", UE_id, new_omg_model);
|
|
// reset the mobility model for a specific node
|
|
set_new_mob_type (UE_id, UE, new_omg_model, oai_emulation.info.time_s);
|
|
}
|
|
}
|
|
|
|
if (oai_emulation.info.omg_model_enb >= MAX_NUM_MOB_TYPES) { // mix mobility model
|
|
for (eNB_id = oai_emulation.info.first_enb_local; eNB_id < (oai_emulation.info.first_enb_local + oai_emulation.info.nb_enb_local); eNB_id++) {
|
|
new_omg_model = randomgen (STATIC, RWALK);
|
|
LOG_D (OMG,"[eNB] Node of ID %d is changing mobility generator ->%d \n", eNB_id, new_omg_model);
|
|
// reset the mobility model for a specific node
|
|
set_new_mob_type (eNB_id, eNB, new_omg_model, oai_emulation.info.time_s);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void update_omg_ocm()
|
|
{
|
|
|
|
enb_node_list=get_current_positions(oai_emulation.info.omg_model_enb, eNB, oai_emulation.info.time_s);
|
|
ue_node_list=get_current_positions(oai_emulation.info.omg_model_ue, UE, oai_emulation.info.time_s);
|
|
|
|
}
|
|
|
|
void update_ocm()
|
|
{
|
|
module_id_t UE_id, eNB_id;
|
|
int CC_id;
|
|
|
|
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++)
|
|
enb_data[eNB_id]->tx_power_dBm = PHY_vars_eNB_g[eNB_id][0]->lte_frame_parms.pdsch_config_common.referenceSignalPower;
|
|
|
|
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++)
|
|
ue_data[UE_id]->tx_power_dBm = PHY_vars_UE_g[UE_id][0]->tx_power_dBm;
|
|
|
|
|
|
/* check if the openair channel model is activated used for PHY abstraction : path loss*/
|
|
if ((oai_emulation.info.ocm_enabled == 1)&& (ethernet_flag == 0 )) {
|
|
//LOG_D(OMG," extracting position of eNb...\n");
|
|
//display_node_list(enb_node_list);
|
|
// display_node_list(ue_node_list);
|
|
extract_position(enb_node_list, enb_data, NB_eNB_INST);
|
|
//extract_position_fixed_enb(enb_data, NB_eNB_INST,frame);
|
|
//LOG_D(OMG," extracting position of UE...\n");
|
|
// if (oai_emulation.info.omg_model_ue == TRACE)
|
|
extract_position(ue_node_list, ue_data, NB_UE_INST);
|
|
|
|
/* if (frame % 50 == 0)
|
|
LOG_N(OCM,"Path loss for TTI %d : \n", frame);
|
|
*/
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) {
|
|
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
|
|
calc_path_loss (enb_data[eNB_id], ue_data[UE_id], eNB2UE[eNB_id][UE_id][CC_id], oai_emulation.environment_system_config,ShaF);
|
|
//calc_path_loss (enb_data[eNB_id], ue_data[UE_id], eNB2UE[eNB_id][UE_id], oai_emulation.environment_system_config,0);
|
|
UE2eNB[UE_id][eNB_id][CC_id]->path_loss_dB = eNB2UE[eNB_id][UE_id][CC_id]->path_loss_dB;
|
|
// if (frame % 50 == 0)
|
|
LOG_I(OCM,"Path loss (CCid %d) between eNB %d at (%f,%f) and UE %d at (%f,%f) is %f, angle %f\n",
|
|
CC_id,eNB_id,enb_data[eNB_id]->x,enb_data[eNB_id]->y,UE_id,ue_data[UE_id]->x,ue_data[UE_id]->y,
|
|
eNB2UE[eNB_id][UE_id][CC_id]->path_loss_dB, eNB2UE[eNB_id][UE_id][CC_id]->aoa);
|
|
//double dx, dy, distance;
|
|
//dx = enb_data[eNB_id]->x - ue_data[UE_id]->x;
|
|
//dy = enb_data[eNB_id]->y - ue_data[UE_id]->y;
|
|
//distance = sqrt(dx * dx + dy * dy);
|
|
/*LOG_D(LOCALIZE, " OCM distance between eNB %d at (%f,%f) and UE %d at (%f,%f) is %f \n",
|
|
eNB_id, enb_data[eNB_id]->x,enb_data[eNB_id]->y,
|
|
UE_id, ue_data[UE_id]->x,ue_data[UE_id]->y,
|
|
distance);*/
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
else {
|
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
|
for (eNB_id = 0; eNB_id < NB_eNB_INST; eNB_id++) {
|
|
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
|
|
|
|
//pathloss: -132.24 dBm/15kHz RE + target SNR - eNB TX power per RE
|
|
if (eNB_id == (UE_id % NB_eNB_INST)) {
|
|
eNB2UE[eNB_id][UE_id][CC_id]->path_loss_dB = -132.24 + snr_dB - PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.pdsch_config_common.referenceSignalPower;
|
|
UE2eNB[UE_id][eNB_id][CC_id]->path_loss_dB = -132.24 + snr_dB - PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.pdsch_config_common.referenceSignalPower;
|
|
} else {
|
|
eNB2UE[eNB_id][UE_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.pdsch_config_common.referenceSignalPower;
|
|
UE2eNB[UE_id][eNB_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.pdsch_config_common.referenceSignalPower;
|
|
}
|
|
|
|
LOG_I(OCM,"Path loss from eNB %d to UE %d (CCid %d)=> %f dB (eNB TX %d, SNR %f)\n",eNB_id,UE_id,CC_id,
|
|
eNB2UE[eNB_id][UE_id][CC_id]->path_loss_dB,
|
|
PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.pdsch_config_common.referenceSignalPower,snr_dB);
|
|
// printf("[SIM] Path loss from UE %d to eNB %d => %f dB\n",UE_id,eNB_id,UE2eNB[UE_id][eNB_id]->path_loss_dB);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#ifdef OPENAIR2
|
|
void update_otg_eNB(module_id_t enb_module_idP, unsigned int ctime)
|
|
{
|
|
|
|
#if defined(USER_MODE) && defined(OAI_EMU)
|
|
|
|
//int rrc_state=0;
|
|
|
|
if (oai_emulation.info.otg_enabled ==1 ) {
|
|
|
|
int dst_id, app_id;
|
|
Packet_otg_elt_t *otg_pkt;
|
|
|
|
for (dst_id = 0; dst_id < NUMBER_OF_UE_MAX; dst_id++) {
|
|
for_times += 1;
|
|
|
|
// generate traffic if the ue is rrc reconfigured state
|
|
//if ((rrc_state=mac_eNB_get_rrc_status(enb_module_idP, dst_id)) > 2 /*RRC_CONNECTED*/ ) {
|
|
if (mac_eNB_get_rrc_status(enb_module_idP, oai_emulation.info.eNB_ue_module_id_to_rnti[enb_module_idP][dst_id]) > 2 ){
|
|
|
|
if_times += 1;
|
|
|
|
for (app_id=0; app_id<MAX_NUM_APPLICATION; app_id++) {
|
|
otg_pkt = malloc (sizeof(Packet_otg_elt_t));
|
|
|
|
|
|
(otg_pkt->otg_pkt).sdu_buffer = (uint8_t*) packet_gen(enb_module_idP, dst_id + NB_eNB_INST, app_id, ctime, &((otg_pkt->otg_pkt).sdu_buffer_size));
|
|
|
|
if ((otg_pkt->otg_pkt).sdu_buffer != NULL) {
|
|
otg_times += 1;
|
|
(otg_pkt->otg_pkt).rb_id = DTCH-2; // app could be binded to a given DRB
|
|
(otg_pkt->otg_pkt).module_id = enb_module_idP;
|
|
(otg_pkt->otg_pkt).dst_id = dst_id;
|
|
(otg_pkt->otg_pkt).is_ue = 0;
|
|
(otg_pkt->otg_pkt).mode = PDCP_TRANSMISSION_MODE_DATA;
|
|
//Adding the packet to the OTG-PDCP buffer
|
|
pkt_list_add_tail_eurecom(otg_pkt, &(otg_pdcp_buffer[enb_module_idP]));
|
|
LOG_I(EMU,"[eNB %d] ADD pkt to OTG buffer with size %d for dst %d on rb_id %d for app id %d \n",
|
|
(otg_pkt->otg_pkt).module_id, otg_pkt->otg_pkt.sdu_buffer_size, (otg_pkt->otg_pkt).dst_id,(otg_pkt->otg_pkt).rb_id, app_id);
|
|
} else {
|
|
free(otg_pkt);
|
|
otg_pkt=NULL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#ifdef Rel10
|
|
mbms_service_id_t service_id;
|
|
mbms_session_id_t session_id;
|
|
rb_id_t rb_id;
|
|
|
|
// MBSM multicast traffic
|
|
if (ctime >= 500 ) {// only generate when UE can receive MTCH (need to control this value)
|
|
for (service_id = 0; service_id < 2 ; service_id++) { //maxServiceCount
|
|
for (session_id = 0; session_id < 2; session_id++) { // maxSessionPerPMCH
|
|
if (pdcp_mbms_array_eNB[enb_module_idP][service_id][session_id].instanciated_instance == TRUE) { // this service/session is configured
|
|
|
|
otg_pkt = malloc (sizeof(Packet_otg_elt_t));
|
|
// LOG_T(OTG,"multicast packet gen for (service/mch %d, session/lcid %d, rb_id %d)\n", service_id, session_id, service_id*maxSessionPerPMCH + session_id);
|
|
rb_id = pdcp_mbms_array_eNB[enb_module_idP][service_id][session_id].rb_id;
|
|
(otg_pkt->otg_pkt).sdu_buffer = (uint8_t*) packet_gen_multicast(enb_module_idP, session_id, ctime, &((otg_pkt->otg_pkt).sdu_buffer_size));
|
|
|
|
if ((otg_pkt->otg_pkt).sdu_buffer != NULL) {
|
|
(otg_pkt->otg_pkt).rb_id = rb_id;
|
|
(otg_pkt->otg_pkt).module_id = enb_module_idP;
|
|
(otg_pkt->otg_pkt).dst_id = session_id;
|
|
(otg_pkt->otg_pkt).is_ue = FALSE;
|
|
//Adding the packet to the OTG-PDCP buffer
|
|
(otg_pkt->otg_pkt).mode = PDCP_TRANSMISSION_MODE_TRANSPARENT;
|
|
pkt_list_add_tail_eurecom(otg_pkt, &(otg_pdcp_buffer[enb_module_idP]));
|
|
LOG_I(EMU, "[eNB %d] ADD packet (%p) multicast to OTG buffer for dst %d on rb_id %d\n",
|
|
(otg_pkt->otg_pkt).module_id, otg_pkt, (otg_pkt->otg_pkt).dst_id,(otg_pkt->otg_pkt).rb_id);
|
|
} else {
|
|
//LOG_I(EMU, "OTG returns null \n");
|
|
free(otg_pkt);
|
|
otg_pkt=NULL;
|
|
}
|
|
|
|
|
|
// old version
|
|
/* // MBSM multicast traffic
|
|
#ifdef Rel10
|
|
if (frame >= 46) {// only generate when UE can receive MTCH (need to control this value)
|
|
for (service_id = 0; service_id < 2 ; service_id++) { //maxServiceCount
|
|
for (session_id = 0; session_id < 2; session_id++) { // maxSessionPerPMCH
|
|
// LOG_I(OTG,"DUY:frame %d, pdcp_mbms_array[module_id][rb_id].instanciated_instance is %d\n",frame,pdcp_mbms_array[module_id][service_id*maxSessionPerPMCH + session_id].instanciated_instance);
|
|
if ((pdcp_mbms_array[module_idP][service_id*maxSessionPerPMCH + session_id].instanciated_instance== module_idP + 1) && (eNB_flag == 1)){ // this service/session is configured
|
|
// LOG_T(OTG,"multicast packet gen for (service/mch %d, session/lcid %d)\n", service_id, session_id);
|
|
// Duy add
|
|
LOG_I(OTG, "frame %d, multicast packet gen for (service/mch %d, session/lcid %d, rb_id %d)\n",frame, service_id, session_id,service_id*maxSessionPerPMCH + session_id);
|
|
// end Duy add
|
|
rb_id = pdcp_mbms_array[module_id][service_id*maxSessionPerPMCH + session_id].rb_id;
|
|
otg_pkt=(uint8_t*) packet_gen_multicast(module_idP, session_id, ctime, &pkt_size);
|
|
if (otg_pkt != NULL) {
|
|
LOG_D(OTG,"[eNB %d] sending a multicast packet from module %d on rab id %d (src %d, dst %d) pkt size %d\n", eNB_index, module_idP, rb_id, module_idP, session_id, pkt_size);
|
|
pdcp_data_req(module_id, frame, eNB_flag, rb_id, RLC_MUI_UNDEFINED, RLC_SDU_CONFIRM_NO, pkt_size, otg_pkt,PDCP_TM);
|
|
free(otg_pkt);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} // end multicast traffic
|
|
#endif
|
|
*/
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
} // end multicast traffic
|
|
|
|
#endif
|
|
}
|
|
|
|
#else
|
|
#if 0 // defined(EXMIMO) || defined(OAI_USRP)
|
|
if (otg_enabled==1) {
|
|
ctime = frame * 100;
|
|
|
|
for (dst_id = 0; dst_id < NUMBER_OF_UE_MAX; dst_id++) {
|
|
if (mac_get_rrc_status(eNB_index, eNB_flag, dst_id ) > 2) {
|
|
otg_pkt = malloc (sizeof(Packet_otg_elt_t));
|
|
(otg_pkt->otg_pkt).sdu_buffer = packet_gen(module_instP, dst_id, ctime, &pkt_size);
|
|
|
|
if (otg_pkt != NULL) {
|
|
rb_id = DTCH-2;
|
|
(otg_pkt->otg_pkt).rb_id = rb_id;
|
|
(otg_pkt->otg_pkt).module_id = module_idP;
|
|
(otg_pkt->otg_pkt).is_ue = FALSE;
|
|
(otg_pkt->otg_pkt).mode = PDCP_TRANSMISSION_MODE_DATA;
|
|
//Adding the packet to the OTG-PDCP buffer
|
|
pkt_list_add_tail_eurecom(otg_pkt, &(otg_pdcp_buffer[module_idP]));
|
|
LOG_I(EMU, "[eNB %d] ADD pkt to OTG buffer for dst %d on rb_id %d\n", (otg_pkt->otg_pkt).module_id, (otg_pkt->otg_pkt).dst_id,(otg_pkt->otg_pkt).rb_id);
|
|
} else {
|
|
//LOG_I(EMU, "OTG returns null \n");
|
|
free(otg_pkt);
|
|
otg_pkt=NULL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|
|
#endif
|
|
}
|
|
|
|
void update_otg_UE(module_id_t ue_mod_idP, unsigned int ctime)
|
|
{
|
|
#if defined(USER_MODE) && defined(OAI_EMU)
|
|
|
|
if (oai_emulation.info.otg_enabled ==1 ) {
|
|
module_id_t dst_id, src_id; //dst_id = eNB_index
|
|
module_id_t module_id = ue_mod_idP+NB_eNB_INST;
|
|
|
|
src_id = module_id;
|
|
|
|
for (dst_id=0; dst_id<NB_SIG_CNX_UE; dst_id++) {
|
|
// only consider the first attached eNB
|
|
if (mac_UE_get_rrc_status(ue_mod_idP, dst_id ) > 2 /*RRC_CONNECTED*/) {
|
|
Packet_otg_elt_t *otg_pkt = malloc (sizeof(Packet_otg_elt_t));
|
|
|
|
if (otg_pkt!=NULL)
|
|
memset(otg_pkt,0,sizeof(Packet_otg_elt_t));
|
|
else {
|
|
LOG_E(OTG,"not enough memory\n");
|
|
exit(-1);
|
|
}// Manage to add this packet to the tail of your list
|
|
|
|
(otg_pkt->otg_pkt).sdu_buffer = (uint8_t*) packet_gen(src_id, dst_id, 0, ctime, &((otg_pkt->otg_pkt).sdu_buffer_size));
|
|
|
|
if ((otg_pkt->otg_pkt).sdu_buffer != NULL) {
|
|
(otg_pkt->otg_pkt).rb_id = DTCH-2;
|
|
(otg_pkt->otg_pkt).module_id = module_id;
|
|
(otg_pkt->otg_pkt).dst_id = dst_id;
|
|
(otg_pkt->otg_pkt).is_ue = 1;
|
|
//Adding the packet to the OTG-PDCP buffer
|
|
(otg_pkt->otg_pkt).mode = PDCP_TRANSMISSION_MODE_DATA;
|
|
pkt_list_add_tail_eurecom(otg_pkt, &(otg_pdcp_buffer[module_id]));
|
|
LOG_I(EMU, "[UE %d] ADD pkt to OTG buffer with size %d for dst %d on rb_id %d \n",
|
|
(otg_pkt->otg_pkt).module_id, otg_pkt->otg_pkt.sdu_buffer_size, (otg_pkt->otg_pkt).dst_id,(otg_pkt->otg_pkt).rb_id);
|
|
} else {
|
|
free(otg_pkt);
|
|
otg_pkt=NULL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
int init_slot_isr(void)
|
|
{
|
|
if (oai_emulation.info.slot_isr) {
|
|
struct itimerspec its;
|
|
|
|
int sfd;
|
|
|
|
sfd = timerfd_create(CLOCK_REALTIME, 0);
|
|
|
|
if (sfd == -1) {
|
|
LOG_E(EMU, "Failed in timerfd_create (%d:%s)\n", errno, strerror(errno));
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
/* Start the timer */
|
|
its.it_value.tv_sec = 0;
|
|
its.it_value.tv_nsec = 500 * 1000;
|
|
its.it_interval.tv_sec = its.it_value.tv_sec;
|
|
its.it_interval.tv_nsec = its.it_value.tv_nsec;
|
|
|
|
if (timerfd_settime(sfd, TFD_TIMER_ABSTIME, &its, NULL) == -1) {
|
|
LOG_E(EMU, "Failed in timer_settime (%d:%s)\n", errno, strerror(errno));
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
oai_emulation.info.slot_sfd = sfd;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void wait_for_slot_isr(void)
|
|
{
|
|
uint64_t exp;
|
|
ssize_t res;
|
|
|
|
if (oai_emulation.info.slot_sfd > 0) {
|
|
res = read(oai_emulation.info.slot_sfd, &exp, sizeof(exp));
|
|
|
|
if ((res < 0) || (res != sizeof(exp))) {
|
|
LOG_E(EMU, "Failed in read (%d:%s)\n", errno, strerror(errno));
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
}
|
|
}
|
|
|
|
void exit_fun(const char* s)
|
|
{
|
|
void *array[10];
|
|
size_t size;
|
|
|
|
size = backtrace(array, 10);
|
|
backtrace_symbols_fd(array, size, 2);
|
|
|
|
fprintf(stderr, "Error: %s. Exiting!\n",s);
|
|
exit (-1);
|
|
}
|
|
|
|
void init_time()
|
|
{
|
|
clock_gettime (CLOCK_REALTIME, &time_spec);
|
|
time_now = (unsigned long) time_spec.tv_nsec;
|
|
td_avg = 0;
|
|
sleep_time_us = SLEEP_STEP_US;
|
|
td_avg = TARGET_SF_TIME_NS;
|
|
}
|
|
|