Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
promise
OpenXG-RAN
Commits
a7e36b04
Commit
a7e36b04
authored
6 years ago
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
https://gitlab.eurecom.fr/oai/openairinterface5g
into develop
parents
04873a7e
ee5928e1
develop
1
128-ues
256_QAM_demod
2cw_fairRRscd
375-syrtem-sdr-platform
383-ulsch-scheduler-optimization
401-bug-related-to-nr-pucch-format-2-generator
408-reworked
408-ue-main-threads
445-LDPC-implementation-on-GPU
459-pusch-based-ta-updates
464-ru_beamforming_in_gpu
464-ru_beamforming_in_gpu-CPUsubfunction
472-add-pusch-dmrs-modes
481-ldpc-decoder-on-gpu
5g_fapi_scf
LTE-sidelink
LTE_TRX_on_single_port
NCTU_CS_ISIP
NCTU_CS_ISIP_CPU
NCTU_CS_ISIP_GPU
NCTU_OpinConnect_LDPC
NR-PHY-MAC-IF-multi-UE
NRUE_usedlschparallel
NR_10MHz
NR_CSI_reporting
NR_DCI_01
NR_DLUL_PF
NR_DLUL_PF_4UL
NR_DLUL_PF_rebased
NR_DL_MIMO
NR_DL_sched_fixes
NR_DL_scheduler
NR_FAPI_beamindex_SSB_RO
NR_FDD_FIX
NR_FR2_RA
NR_FR2_RRC_SSB
NR_MAC_CE_GlobalEdge
NR_MAC_Multi_Rach_GlobalEdge
NR_MAC_SSB_RO_GlobalEdge
NR_MAC_SSB_RO_UE_IDCC
NR_MAC_SSB_RO_merge
NR_MAC_TCI_UCI_GlobalEdge
NR_NGAP
NR_PDCP_noS1
NR_PUCCH_MultiUE
NR_RA_cleanup
NR_RA_updates
NR_RRCConfiguragion_FR2
NR_RRCConfiguration
NR_RRCConfiguration_FR2
NR_RRCConfiguration_S1U
NR_RRCConfiguration_merge_develop
NR_RRCConfiguration_sync_source
NR_RRCConfiguration_trx_thread
NR_RRC_CP_bugfix
NR_RRC_PDCP
NR_RRC_PRACH_procedures
NR_RRC_PRACH_procedures_todevelop
NR_RRC_PUSCH
NR_RRC_TA
NR_RRC_X2AP_AMBR_Change_Global_edge
NR_RRC_X2AP_RemoveHardcodings_GlobalEdge
NR_RRC_config_simplified
NR_RRC_harq
NR_RRC_harq_b
NR_RRC_harq_hacks
NR_RRC_harq_newdcipdu
NR_SA_F1AP_RFSIMULATOR
NR_SA_F1AP_RFSIMULATOR2
NR_SA_F1AP_dev
NR_SA_NGAP_RRC
NR_SA_NGAP_RRC_wk42
NR_SA_itti_sim_wk48
NR_SA_itti_sim_wk48_hs
NR_SA_itti_sim_wk48_hs1
NR_SCHED
NR_SCHED_HARQ
NR_SCHED_PDCCH_PUCCH_HARQ
NR_SCHED_PDCCH_PUCCH_HARQ_rebased
NR_SCHED_fixes
NR_SRB_Config
NR_TRX_on_single_port
NR_TRX_on_single_port2
NR_UE_MAC_scheduler
NR_UE_RA_fixes
NR_UE_UL_DCI_improvements
NR_UE_dlsch_bugfix
NR_UE_enable_parallelization
NR_UE_stability_fixes
NR_UL_FAPI_programming
NR_UL_scheduler
NR_UL_scheduler_rebased
NR_UL_scheduling
NR_Wireshark
NR_beam_simulation
NR_beamforming_test
NR_gNB_SCF_Indication
NR_ipaccess_testing
NR_mac_uci_functions_rework
NR_msg2_phytest
NR_scheduling_CSIRS
NR_scheduling_request
NR_scheduling_request2
NR_scheduling_request3
NR_test_S1U_RRC_PRACH_procedures
NR_ue_dlsch_dmrs_cdm
New-Merge-sidelink-develop
OpInConnect_ISIP
PUSCH_TA_update
RA_CI_test
UE_DL_DCI_hotfix
UpdateRANRemoteUEReport
add_iris_hw
addoptions_nr_USRPdevice
bch-fixes-bitmap
benetel_5g_prach_fix
benetel_driver_uldl_pf_merge
benetel_driver_update
benetel_phase_rotation
benetel_phase_rotation_old
bugfix-find-uci
bugfix-minor-remove-wrong-log
bugfix-nr-bands
bugfix-nr-ldpc-post-processing
bugfix-nr-ldpc-size-typo
bugfix-nr-pdcp-sn-size
bugfix-nr-rate-matching-assertion
bugfix-x2-SgNBAdditionRequest
bupt-sa-merge
cce_indexing_fix
cce_indexing_fix2
ci-deploy-asterix
ci-deploy-docker-compose
ci-rd-july-improvements
ci-test
ci-ul-iperf-from-trf-container
ci-yacine
clean-5G-scope-round2
cleanup_softmodem_main
constant_power
container_fix
container_v1.2.2
debug_branch_init_sync
develop-FeMBMS
develop-SA-RA
develop-SnT
develop-ci
develop-large-scale-emulations
develop-m2ap
develop-multi-RRUs
develop-nb-iot-merge
develop-nb-iot-merge-w-conflicts
develop-nb-iot-ntust
develop-nr
develop-nr-fr2
develop-nr-fr2-rework
develop-nr_cppcheck
develop-oriecpriupdates
develop-sib1
develop-sib1-local
develop-sib1-lts
develop-sib1-update
develop-sib1-update-test1
develop-sib1-update-ue
develop-vco3
develop_ci
develop_inria_ci_deployment
develop_inria_ci_deployment_gp
develop_inria_ci_deployment_gp_b4merge
develop_integration_2019_w44
develop_integration_2020_w15
develop_integration_2020_w19
develop_integration_w08
develop_jenkins_replay
develop_stable
dfts_alternatives
dlsch-all-dlslots
dlsch_encode_mthread
dlsch_parallel
dlsim-autotests
docupdate_tools
dongzhanyi-zte-0001
dongzhanyi-zte-develop
dongzhanyi-zte-develop2
dreibh/apt-auth-fix
dreibh/device-load-fix
dreibh/device-load-fix-develop-branch
dreibh/doxygen-fix
dual-connectivity
dummy
edrx
extend_sharedlibusage
extend_sharedlibusage2
fapi_for_dmrs_and_ptrs
feat-mac-sock
feature-368-channel-simulator
feature-4g-sched
feature-flexran-cm-s1ap
feature-nr-4g-nfapi-modifications
feature-support-clang-format
feature/make-s1-mme-port-configurable
feature/make-s1-mme-port-configurable-with-astyle-fixes
feature_tm3
fembms-enb-ue
finalize-oaicn-integration
firas
fix-ci-tun
fix-clock-source
fix-dirty-ue-same-machine
fix-itti-segv
fix-l2-sim
fix-limeSDR-compile
fix-softmodem-restart
fix-warnings
fix_NR_DLUL_PF
fix_do_ra_data
fix_pdsch_low_prb
fix_rfsim_mimo
fix_rrc_x2_ticking
fixes-CE-RLC-PDU-size
fixes-mac-sched-nfapi
fixes-mac-sched-tun
fixes-tun
flexran-apps
flexran-improvements
flexran-repair-mme-mgmt
flexran-report-split
fr2-hw-test
fujitsu_lte_contribution
fujitsu_lte_contribution-128
gNB-nrUE-USRP
generate_push_ptrs
gnb-only-test
harq-hotfix
hotfix-minor-remove-nr-rlc-cppcheck-error
hotfix-nr-rlc-tick
hotfix-ocp-executable
hotfix-ue-musim-compilation
hotfix_usrp_lib
improve_build_nr_lte_merge
improve_nr_modulation
improve_ue_stability
initial-nfapi-PNF-fixes
integration-develop-nr-2019w45
integration_2020_wk40
integration_2020_wk41
integration_2020_wk42_2
integration_2020_wk45
integration_2020_wk45_2
integration_2020_wk46
integration_2020_wk46_2
integration_2020_wk47
integration_2020_wk48
integration_2020_wk48_2
integration_2020_wk49
integration_2020_wk50
integration_2020_wk50_1
integration_2020_wk51
integration_2020_wk51_2
integration_2021_wk02
integration_2021_wk02_wMR988
integration_2021_wk04
integration_2021_wk05
inter-RRU
inter-RRU-final
inter-RRU-nr
inter-RRU-oairu
inter-rru-UE
interoperability-test
isip_nr
issue392-simplify-s1-nos1step2_01
issue416_nfapicleanup
itti-enhancement
l2-fixes
ldpc-dec-layering
ldpc-decoder-codegen
ldpc-decoder-codegen2
ldpc-decoder-improvements
ldpc-offload
ldpc_short_codeword_fixes
load_gnb
lte-m-ue_type
lte-ulsch-bugfix
lte_uplink_improvement
mac-fixes-wk45_2
main_python
master
mbms-fix-develop-nr
merging-2019-w51-to-develop-nr
minor-fix-doc-basic-sim
modify_fairRRscd_parallel
mosaic5g-oai-ran
mosaic5g-oai-sim
mu_allocate
multi-L1
multi-RRUs
nasmesh_kernel_5.8
new-gtpu
new_pdcp
new_rlc
new_rlc_2020
new_rlc_in_mbms
nfapi-bugfix
nfapi_improvement
nfapi_nr_develop
ngap-dlul
ngap-support
ngap-w48-merge2
ngap-wf
ngap-wf-1120
ngap-wf-1120-srb
ngap-wf-1120-srb-gtp
ngap-wf-1120-srb-gtp-hs
ngap-wf-1120-srb-gtp-hs1
ngap-wf-1120-srb-gtp-hs2
ngap-wf-1120-srb-gtp-yhz
ngap-wf-1203-yunsdr
ngap-wf-liuyu
ngap_lfq_1120
ngap_merge
noCore
nr-coreset-bug-fix
nr-dlsch-multi-thread
nr-dlsch-thread
nr-dual-connectivity
nr-interdigital-test
nr-ip-uplink-noS1
nr-mac-pdu-wireshark
nr-mac-remove-ue-list
nr-multiple-ssb
nr-pdcp
nr-pdsch-extraction-bugfix
nr-physim-update
nr-rlc-am-bugfix-w44
nr-rlc-bugfix-w44
nr-ssb-measurements
nr-timing-measurement
nr-timing-measurement-merge
nr-ue-buffer-status
nr-ue-slot-based
nr-uldci
nrUE
nrUE-hs
nrUE-upper-layer
nr_beamforming
nr_bsr
nr_ci_dlsim
nr_csi_newbranch
nr_dci_procedures
nr_demo_wsa2019
nr_dl_dmrs_type2
nr_dl_pf
nr_dl_pf2
nr_dl_ul_ptrs
nr_dlsch_parallel_measurements
nr_dlsim_plot
nr_fapi_for_push_tmp
nr_fdd_if_fix
nr_fix_easycppcheck
nr_flexible_NRBDL
nr_improve_build_procedures
nr_increase_tp
nr_mib_vsa_test
nr_pdcch_testing
nr_pdcch_updates
nr_pdsch_integration
nr_polar_decoder_improvement
nr_prach
nr_prach_fr2
nr_pucch
nr_pucch2
nr_segmentation_fixes
nr_sim_fix
nr_tdd_configuration
nr_ue_msg3
nr_ue_tti_cleanup
nr_ul_pf
nr_ul_scfdma
nr_vcd
nrue-multi-thread
nrue_msg2_reception
nsa-ue
nsa_remove_band_hardcodings
oai-sim
oai-ubuntu-docker
oai-ubuntu-docker-for-lmssdr
oairu
oairu-dockerfile-support
oc-docker-october-improvements
ocp_simulator
openxg/develop
pdcp-benchmark
pdsch-ch-est
polar8
ptrs_rrc_config
pusch-mthread-scaling-fix
pusch-retrans-fix-ue
ra-dl-ul
rau_rru_reciprocity_measurements
reduce_memory_footprint
release_v1_2_0_candidate
remove-ci-workaround
remove_nos1_hack_pdcp
remove_x2_gnb_hardcoding
repair-TA
revert-f5c94279
revert_memcpy
rh-ci-add-ue-parallelization
rh_ci_fix_autoterminate
rh_ci_fr1_update
rh_ci_oc
rh_ci_py
rh_ci_ra_fr2
rh_ci_rfsim_ra
rh_ci_ue_parallel
rh_doc_update_3
rh_fr1_newjenkins
rh_fr1_update
rh_gnb_compile_fix
rh_wk50_debug
rhel77-build
rlc-v2-bugfix-status-reporting
rlc-v2-tick
rlc_v2_coverity_fixes
rrc-enb-phy-testmode
ru-parallel-beamforming
ru_rau_enhancement-external-timing
runel
runel-reverse-test
s1-subnormal_rewrite
s1_subnormal
s1_subnormal-robert
s1ap-bugfix-rab_setup
sa-demo
sa-merge-rrc-srb
sa-msg4
sa-msg4-rrc
sa-msg4-rrc-yihz
sa-msg4-rrc-yihz-hs
sa_rrc_yihz
signal-delay
small-bugfixes-w40
small-config-change
smallcleanup
softmodem_cleanup
split73
test-x310-perf
testing_2symb_pdcch
testing_with_external_txdata
thread-pool
tools_5Gadapt
tp-ota-test
trx_thread_param
trx_write_thread
ue-csi
ue-fixes
ue-fixes-ota
ue-updates-runel-test
ue_adjust_gain
ue_beam_selection
ue_dlsch-multi-threading
ue_dlsch_decoding_ldpc_offload
ue_nfapi_mch
uhd_priority_set_cleanup
ul-freq-iq-samps-to-file
ul_dl_dci_same_slot
ul_harq
ulsch_decode_mthread
ulsim_changes
update-to-2019-march-june-release
usrp_fix_adc_shift_and_pps_sync
usrp_gpio_test
wireshark-T-hack-ueid
wireshark-log-scheduling-requests
x2-endc-processing
x2_neighbor_6cells
x2_tdd
xiangwab
xiangwan
yihongzheng_srb
zzs
2021.w04
2021.w02
2020.w51_2
2020.w51
2020.w50
2020.w49
2020.w48_2
2020.w48
2020.w47
2020.w46_2
2020.w46
2020.w45_2
2020.w45
2020.w44
2020.w42_2
2020.w42
2020.w41
2020.w39
2020.w38
2020.w37
2020.w36
2020.w34
2020.w33
2020.w31
2020.w30
2020.w29
2020.w28
2020.w26
2020.w25
2020.w24
2020.w23
2020.w22
2020.w19
2020.w17
2020.w16
2020.w15
2020.w11
2020.w09
2020.w06
2020.w05
2020.w04
2020.w03
2019.w51
2019.w44
2019.w41
2019.w36
2019.w30
2019.w28
2019.w27
2019.w25
2019.w23
2019.w21
2019.w17
2019.w15
2019.w13
2019.w11
2019.w10
2019.w09
2019.w08
2019.w07
2019.w06
2019.w04
2019.w03
2018.w51
2018.w48
2018.w47
2018.w46
2018.w44
v1.2.2
v1.2.1
v1.2.0
v1.1.1
v1.1.0
v1.0.3
v1.0.2
v1.0.1
v1.0.0
osa-etsi-ws-ue
osa-etsi-ws-try2
osa-etsi-ws-try1
osa-etsi-ws-gNB
nr-ip-over-lte
nr-ip-over-lte-v.1.5
nr-ip-over-lte-v.1.4
nr-ip-over-lte-v.1.3
nr-ip-over-lte-v.1.2
nr-ip-over-lte-v.1.1
nr-ip-over-lte-v.1.0
develop-nr-pdcch
develop-nr-2020w03
develop-nr-2020w02
develop-nr-2019w51
develop-nr-2019w50
develop-nr-2019w48
develop-nr-2019w47
develop-nr-2019w45
develop-nr-2019w43
develop-nr-2019w42
develop-nr-2019w40
develop-nr-2019w28
develop-nr-2019w23
benetel_phase_rotation
No related merge requests found
Changes
57
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
57 changed files
with
803 additions
and
616 deletions
+803
-616
ci-scripts/buildOnVM.sh
ci-scripts/buildOnVM.sh
+2
-2
ci-scripts/conf_files/enb.band40.tm1.100PRB.FairScheduler.usrpb210.conf
...f_files/enb.band40.tm1.100PRB.FairScheduler.usrpb210.conf
+2
-4
ci-scripts/conf_files/enb.band40.tm1.25PRB.FairScheduler.usrpb210.conf
...nf_files/enb.band40.tm1.25PRB.FairScheduler.usrpb210.conf
+2
-4
ci-scripts/conf_files/enb.band40.tm1.50PRB.FairScheduler.usrpb210.conf
...nf_files/enb.band40.tm1.50PRB.FairScheduler.usrpb210.conf
+2
-4
ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
+2
-5
ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
+2
-5
ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
+2
-5
ci-scripts/conf_files/lte-fdd-basic-sim.conf
ci-scripts/conf_files/lte-fdd-basic-sim.conf
+2
-5
ci-scripts/conf_files/lte-tdd-basic-sim.conf
ci-scripts/conf_files/lte-tdd-basic-sim.conf
+2
-4
cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
...utotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
+2
-5
cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
...utotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
+2
-5
cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
...autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
+2
-5
cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
...autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
+2
-5
cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
...autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
+2
-5
cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
.../autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
+2
-5
cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
...argets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
+2
-5
cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
...argets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
+2
-5
cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
...targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
+2
-5
cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
...sts/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
+2
-5
cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
...sts/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
+2
-5
cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
...ests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
+2
-5
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+1
-1
common/config/config_userapi.c
common/config/config_userapi.c
+33
-0
common/config/config_userapi.h
common/config/config_userapi.h
+1
-1
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+4
-3
openair2/COMMON/s1ap_messages_types.h
openair2/COMMON/s1ap_messages_types.h
+11
-3
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+225
-186
openair2/ENB_APP/enb_paramdef.h
openair2/ENB_APP/enb_paramdef.h
+57
-7
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+51
-47
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+0
-7
openair2/RRC/LTE/rrc_eNB_S1AP.c
openair2/RRC/LTE/rrc_eNB_S1AP.c
+127
-126
openair2/UTIL/MEM/mem_block.c
openair2/UTIL/MEM/mem_block.c
+2
-0
openair2/UTIL/MEM/mem_block.h
openair2/UTIL/MEM/mem_block.h
+2
-1
openair3/S1AP/s1ap_eNB.c
openair3/S1AP/s1ap_eNB.c
+36
-14
openair3/S1AP/s1ap_eNB_defs.h
openair3/S1AP/s1ap_eNB_defs.h
+9
-3
openair3/S1AP/s1ap_eNB_nas_procedures.c
openair3/S1AP/s1ap_eNB_nas_procedures.c
+60
-14
openair3/S1AP/s1ap_eNB_nnsf.c
openair3/S1AP/s1ap_eNB_nnsf.c
+91
-25
openair3/S1AP/s1ap_eNB_nnsf.h
openair3/S1AP/s1ap_eNB_nnsf.h
+6
-0
openair3/S1AP/s1ap_eNB_ue_context.h
openair3/S1AP/s1ap_eNB_ue_context.h
+5
-0
openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf
...ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf
+2
-5
openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf
...r3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf
+2
-4
targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf
.../CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf
+3
-6
targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf
...S/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf
+3
-6
targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf
...ECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf
+3
-6
targets/PROJECTS/E-MBMS/enb.conf
targets/PROJECTS/E-MBMS/enb.conf
+3
-6
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf
.../GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf
+2
-3
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf
...ROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf
+2
-3
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
...S/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf
...RIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf
...ENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
...TS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf
...E-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf
...S/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
.../GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
+2
-5
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf
...JECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
...JECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
+2
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
...TS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
+2
-4
No files found.
ci-scripts/buildOnVM.sh
View file @
a7e36b04
...
...
@@ -127,7 +127,7 @@ case $key in
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel14.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
BUILD_OPTIONS
=
"--eNB -w USRP
--mu
"
shift
;;
-v2
)
...
...
@@ -181,7 +181,7 @@ case $key in
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel14.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
BUILD_OPTIONS
=
"--eNB -w USRP
--mu
"
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/enb.band40.tm1.100PRB.FairScheduler.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,8 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/enb.band40.tm1.25PRB.FairScheduler.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,8 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/enb.band40.tm1.50PRB.FairScheduler.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,8 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/lte-fdd-basic-sim.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
ci-scripts/conf_files/lte-tdd-basic-sim.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,8 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/tools/build_helper
View file @
a7e36b04
...
...
@@ -683,7 +683,7 @@ install_asn1c_from_source(){
# better to use a given commit than a branch in case the branch
# is updated and requires modifications in the source of OAI
#git checkout velichkov_s1ap_plus_option_group
git checkout
73d6b23dcec9ab36605b4af884143824392134c1
git checkout
d3aed06bb2bec7df1b5c6d0333f8c7dfc5993372
autoreconf -iv
./configure
make -j`nproc`
...
...
This diff is collapsed.
Click to expand it.
common/config/config_userapi.c
View file @
a7e36b04
...
...
@@ -29,6 +29,9 @@
* \note
* \warning
*/
#define _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
...
...
@@ -210,6 +213,36 @@ configmodule_interface_t *cfgif = config_get_if();
return
ret
;
}
int
config_getlist
(
paramlist_def_t
*
ParamList
,
paramdef_t
*
params
,
int
numparams
,
char
*
prefix
)
{
if
(
CONFIG_ISFLAGSET
(
CONFIG_ABORT
))
{
fprintf
(
stderr
,
"[CONFIG] config_get skipped, config module not properly initialized
\n
"
);
return
-
1
;
}
if
(
!
config_get_if
())
return
-
1
;
const
int
ret
=
config_get_if
()
->
getlist
(
ParamList
,
params
,
numparams
,
prefix
);
if
(
ret
>=
0
&&
params
)
{
char
*
newprefix
;
if
(
prefix
)
{
int
rc
=
asprintf
(
&
newprefix
,
"%s.%s"
,
prefix
,
ParamList
->
listname
);
if
(
rc
<
0
)
newprefix
=
NULL
;
}
else
{
newprefix
=
ParamList
->
listname
;
}
char
cfgpath
[
MAX_OPTNAME_SIZE
*
2
+
6
];
/* prefix.listname.[listindex] */
for
(
int
i
=
0
;
i
<
ParamList
->
numelt
;
++
i
)
{
// TODO config_process_cmdline?
sprintf
(
cfgpath
,
"%s.[%i]"
,
newprefix
,
i
);
config_execcheck
(
ParamList
->
paramarray
[
i
],
numparams
,
cfgpath
);
}
if
(
prefix
)
free
(
newprefix
);
}
return
ret
;
}
int
config_isparamset
(
paramdef_t
*
params
,
int
paramidx
)
{
if
((
params
[
paramidx
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
{
...
...
This diff is collapsed.
Click to expand it.
common/config/config_userapi.h
View file @
a7e36b04
...
...
@@ -57,7 +57,7 @@ extern int config_assign_ipv4addr(paramdef_t *cfgoptions, char *ipv4addr);
/* apis to get parameters, to be used by oai modules, at configuration time */
extern
int
config_get
(
paramdef_t
*
params
,
int
numparams
,
char
*
prefix
);
#define config_getlist config_get_if()->getlist
extern
int
config_getlist
(
paramlist_def_t
*
ParamList
,
paramdef_t
*
params
,
int
numparams
,
char
*
prefix
);
/* apis to retrieve parameters info after calling get or getlist functions */
extern
int
config_isparamset
(
paramdef_t
*
params
,
int
paramidx
);
...
...
This diff is collapsed.
Click to expand it.
openair2/COMMON/rrc_messages_types.h
View file @
a7e36b04
...
...
@@ -97,9 +97,10 @@ typedef struct RrcConfigurationReq_s {
uint16_t
tac
;
uint16_t
mcc
;
uint16_t
mnc
;
uint8_t
mnc_digit_length
;
uint16_t
mcc
[
PLMN_LIST_MAX_SIZE
];
uint16_t
mnc
[
PLMN_LIST_MAX_SIZE
];
uint8_t
mnc_digit_length
[
PLMN_LIST_MAX_SIZE
];
uint8_t
num_plmn
;
paging_drx_t
default_drx
;
...
...
This diff is collapsed.
Click to expand it.
openair2/COMMON/s1ap_messages_types.h
View file @
a7e36b04
...
...
@@ -325,12 +325,14 @@ typedef struct s1ap_register_enb_req_s {
/* Tracking area code */
uint16_t
tac
;
#define PLMN_LIST_MAX_SIZE 6
/* Mobile Country Code
* Mobile Network Code
*/
uint16_t
mcc
;
uint16_t
mnc
;
uint8_t
mnc_digit_length
;
uint16_t
mcc
[
PLMN_LIST_MAX_SIZE
];
uint16_t
mnc
[
PLMN_LIST_MAX_SIZE
];
uint8_t
mnc_digit_length
[
PLMN_LIST_MAX_SIZE
];
uint8_t
num_plmn
;
/* Default Paging DRX of the eNB as defined in TS 36.304 */
paging_drx_t
default_drx
;
...
...
@@ -342,6 +344,8 @@ typedef struct s1ap_register_enb_req_s {
uint8_t
nb_mme
;
/* List of MME to connect to */
net_ip_address_t
mme_ip_address
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
uint8_t
broadcast_plmn_num
[
S1AP_MAX_NB_MME_IP_ADDRESS
];
uint8_t
broadcast_plmn_index
[
S1AP_MAX_NB_MME_IP_ADDRESS
][
PLMN_LIST_MAX_SIZE
];
/* Number of SCTP streams used for a mme association */
uint16_t
sctp_in_streams
;
...
...
@@ -372,6 +376,10 @@ typedef struct s1ap_nas_first_req_s {
/* UE id for initial connection to S1AP */
uint16_t
ue_initial_id
;
/* the chosen PLMN identity as index, see TS 36.331 6.2.2 RRC Connection
* Setup Complete. This index here is zero-based, unlike the standard! */
int
selected_plmn_identity
;
/* Establishment cause as sent by UE */
rrc_establishment_cause_t
establishment_cause
;
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/enb_config.c
View file @
a7e36b04
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/enb_paramdef.h
View file @
a7e36b04
...
...
@@ -185,8 +185,8 @@ typedef enum {
#define ENB_CONFIG_STRING_CELL_TYPE "cell_type"
#define ENB_CONFIG_STRING_ENB_NAME "eNB_name"
#define ENB_CONFIG_STRING_TRACKING_AREA_CODE "tracking_area_code"
#define ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE
"mobile_country_code"
#define ENB_CONFIG_STRING_MOBILE_NETWORK_CODE
"mobile_network_code"
#define ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE
_OLD
"mobile_country_code"
#define ENB_CONFIG_STRING_MOBILE_NETWORK_CODE
_OLD
"mobile_network_code"
#define ENB_CONFIG_STRING_TRANSPORT_S_PREFERENCE "tr_s_preference"
#define ENB_CONFIG_STRING_LOCAL_S_IF_NAME "local_s_if_name"
#define ENB_CONFIG_STRING_LOCAL_S_ADDRESS "local_s_address"
...
...
@@ -204,9 +204,9 @@ typedef enum {
{ENB_CONFIG_STRING_ENB_ID, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_CELL_TYPE, NULL, 0, strptr:NULL, defstrval:"CELL_MACRO_ENB", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_ENB_NAME, NULL, 0, strptr:NULL, defstrval:"OAIeNodeB", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_TRACKING_AREA_CODE, NULL, 0,
strptr:NULL, defstrval:"0", TYPE_STRING,
0}, \
{ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE
, NULL, 0, strptr:NULL, defstrval:"0",
TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MOBILE_NETWORK_CODE
, NULL, 0, strptr:NULL, defstrval:"0",
TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_TRACKING_AREA_CODE, NULL, 0,
uptr:NULL, defuintval:0, TYPE_UINT,
0}, \
{ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE
_OLD, NULL, 0, strptr:NULL, defstrval:NULL,
TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MOBILE_NETWORK_CODE
_OLD, NULL, 0, strptr:NULL, defstrval:NULL,
TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_TRANSPORT_S_PREFERENCE, NULL, 0, strptr:NULL, defstrval:"local_mac", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_LOCAL_S_IF_NAME, NULL, 0, strptr:NULL, defstrval:"lo", TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_LOCAL_S_ADDRESS, NULL, 0, strptr:NULL, defstrval:"127.0.0.1", TYPE_STRING, 0}, \
...
...
@@ -220,8 +220,8 @@ typedef enum {
#define ENB_CELL_TYPE_IDX 1
#define ENB_ENB_NAME_IDX 2
#define ENB_TRACKING_AREA_CODE_IDX 3
#define ENB_MOBILE_COUNTRY_CODE_IDX
4
#define ENB_MOBILE_NETWORK_CODE_IDX
5
#define ENB_MOBILE_COUNTRY_CODE_IDX
_OLD
4
#define ENB_MOBILE_NETWORK_CODE_IDX
_OLD
5
#define ENB_TRANSPORT_S_PREFERENCE_IDX 6
#define ENB_LOCAL_S_IF_NAME_IDX 7
#define ENB_LOCAL_S_ADDRESS_IDX 8
...
...
@@ -230,9 +230,56 @@ typedef enum {
#define ENB_REMOTE_S_PORTC_IDX 11
#define ENB_LOCAL_S_PORTD_IDX 12
#define ENB_REMOTE_S_PORTD_IDX 13
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define ENBPARAMS_CHECK { \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s2 = { config_check_intrange, TRACKING_AREA_CODE_OKRANGE } },\
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
}
/*-------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------------------------------------------------------------------*/
/* PLMN ID configuration */
#define ENB_CONFIG_STRING_PLMN_LIST "plmn_list"
#define ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE "mcc"
#define ENB_CONFIG_STRING_MOBILE_NETWORK_CODE "mnc"
#define ENB_CONFIG_STRING_MNC_DIGIT_LENGTH "mnc_length"
#define ENB_MOBILE_COUNTRY_CODE_IDX 0
#define ENB_MOBILE_NETWORK_CODE_IDX 1
#define ENB_MNC_DIGIT_LENGTH 2
#define PLMNPARAMS_DESC { \
/* optname helpstr paramflags XXXptr def val type numelt */
\
{ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, "mobile country code", 0, uptr:NULL, defuintval:1000, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, "mobile network code", 0, uptr:NULL, defuintval:1000, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_MNC_DIGIT_LENGTH, "length of the MNC (2 or 3)", 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
}
#define MCC_MNC_OKRANGES {0,999}
#define MNC_DIGIT_LENGTH_OKVALUES {2,3}
#define PLMNPARAMS_CHECK { \
{ .s2 = { config_check_intrange, MCC_MNC_OKRANGES } }, \
{ .s2 = { config_check_intrange, MCC_MNC_OKRANGES } }, \
{ .s1 = { config_check_intval, MNC_DIGIT_LENGTH_OKVALUES, 2 } }, \
}
/* component carries configuration parameters name */
...
...
@@ -681,6 +728,7 @@ typedef enum {
#define ENB_CONFIG_STRING_MME_IPV6_ADDRESS "ipv6"
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE "active"
#define ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE "preference"
#define ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX "broadcast_plmn_index"
/*-------------------------------------------------------------------------------------------------------------------------------------*/
...
...
@@ -692,12 +740,14 @@ typedef enum {
{ENB_CONFIG_STRING_MME_IPV6_ADDRESS, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, NULL, 0, uptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_MME_BROADCAST_PLMN_INDEX, NULL, 0, uptr:NULL, defintarrayval:NULL,TYPE_UINTARRAY, 6} \
}
#define ENB_MME_IPV4_ADDRESS_IDX 0
#define ENB_MME_IPV6_ADDRESS_IDX 1
#define ENB_MME_IP_ADDRESS_ACTIVE_IDX 2
#define ENB_MME_IP_ADDRESS_PREFERENCE_IDX 3
#define ENB_MME_BROADCAST_PLMN_INDEX 4
/*---------------------------------------------------------------------------------------------------------------------------------------*/
/* X2 configuration parameters section name */
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
a7e36b04
...
...
@@ -345,8 +345,13 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
{
// SystemInformation_t systemInformation;
PLMN_IdentityInfo_t
PLMN_identity_info
;
MCC_MNC_Digit_t
dummy_mcc
[
3
],
dummy_mnc
[
3
];
#if defined(ENABLE_ITTI)
int
num_plmn
=
configuration
->
num_plmn
;
#else
int
num_plmn
=
1
;
#endif
PLMN_IdentityInfo_t
PLMN_identity_info
[
num_plmn
];
MCC_MNC_Digit_t
dummy_mcc
[
num_plmn
][
3
],
dummy_mnc
[
num_plmn
][
3
];
asn_enc_rval_t
enc_rval
;
SchedulingInfo_t
schedulingInfo
;
SIB_Type_t
sib_type
;
...
...
@@ -354,6 +359,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
uint8_t
*
buffer
=
carrier
->
SIB1
;
BCCH_DL_SCH_Message_t
*
bcch_message
=
&
carrier
->
siblock1
;
SystemInformationBlockType1_t
**
sib1
=
&
carrier
->
sib1
;
int
i
;
memset
(
bcch_message
,
0
,
sizeof
(
BCCH_DL_SCH_Message_t
));
...
...
@@ -363,66 +369,67 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
*
sib1
=
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformationBlockType1
;
memset
(
&
PLMN_identity_info
,
0
,
sizeof
(
PLMN_IdentityInfo_t
));
memset
(
PLMN_identity_info
,
0
,
num_plmn
*
sizeof
(
PLMN_IdentityInfo_t
));
memset
(
&
schedulingInfo
,
0
,
sizeof
(
SchedulingInfo_t
));
memset
(
&
sib_type
,
0
,
sizeof
(
SIB_Type_t
));
/* as per TS 36.311, up to 6 PLMN_identity_info are allowed in list -> add one by one */
for
(
i
=
0
;
i
<
configuration
->
num_plmn
;
++
i
)
{
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
=
CALLOC
(
1
,
sizeof
(
*
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
));
memset
(
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
,
0
,
sizeof
(
*
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
));
PLMN_identity_info
.
plmn_Identity
.
mcc
=
CALLOC
(
1
,
sizeof
(
*
PLMN_identity_info
.
plmn_Identity
.
mcc
));
memset
(
PLMN_identity_info
.
plmn_Identity
.
mcc
,
0
,
sizeof
(
*
PLMN_identity_info
.
plmn_Identity
.
mcc
));
asn_set_empty
(
&
PLMN_identity_info
.
plmn_Identity
.
mcc
->
list
);
//.size=0;
asn_set_empty
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
->
list
);
//.size=0;
#if defined(ENABLE_ITTI)
dummy_mcc
[
0
]
=
(
configuration
->
mcc
/
100
)
%
10
;
dummy_mcc
[
1
]
=
(
configuration
->
mcc
/
10
)
%
10
;
dummy_mcc
[
2
]
=
(
configuration
->
mcc
/
1
)
%
10
;
dummy_mcc
[
i
][
0
]
=
(
configuration
->
mcc
[
i
]
/
100
)
%
10
;
dummy_mcc
[
i
][
1
]
=
(
configuration
->
mcc
[
i
]
/
10
)
%
10
;
dummy_mcc
[
i
][
2
]
=
(
configuration
->
mcc
[
i
]
/
1
)
%
10
;
#else
dummy_mcc
[
0
]
=
0
;
dummy_mcc
[
1
]
=
0
;
dummy_mcc
[
2
]
=
1
;
dummy_mcc
[
i
]
[
0
]
=
0
;
dummy_mcc
[
i
]
[
1
]
=
0
;
dummy_mcc
[
i
]
[
2
]
=
1
;
#endif
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
.
plmn_Identity
.
mcc
->
list
,
&
dummy_mcc
[
0
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
.
plmn_Identity
.
mcc
->
list
,
&
dummy_mcc
[
1
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
.
plmn_Identity
.
mcc
->
list
,
&
dummy_mcc
[
2
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
->
list
,
&
dummy_mcc
[
i
]
[
0
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
->
list
,
&
dummy_mcc
[
i
]
[
1
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mcc
->
list
,
&
dummy_mcc
[
i
]
[
2
]);
PLMN_identity_info
.
plmn_Identity
.
mnc
.
list
.
size
=
0
;
PLMN_identity_info
.
plmn_Identity
.
mnc
.
list
.
count
=
0
;
PLMN_identity_info
[
i
]
.
plmn_Identity
.
mnc
.
list
.
size
=
0
;
PLMN_identity_info
[
i
]
.
plmn_Identity
.
mnc
.
list
.
count
=
0
;
#if defined(ENABLE_ITTI)
if
(
configuration
->
mnc
>=
100
)
{
dummy_mnc
[
0
]
=
(
configuration
->
mnc
/
100
)
%
10
;
dummy_mnc
[
1
]
=
(
configuration
->
mnc
/
10
)
%
10
;
dummy_mnc
[
2
]
=
(
configuration
->
mnc
/
1
)
%
10
;
}
else
{
if
(
configuration
->
mnc_digit_length
==
2
)
{
dummy_mnc
[
0
]
=
(
configuration
->
mnc
/
10
)
%
10
;
dummy_mnc
[
1
]
=
(
configuration
->
mnc
/
1
)
%
10
;
dummy_mnc
[
2
]
=
0xf
;
if
(
configuration
->
mnc
[
i
]
>=
100
)
{
dummy_mnc
[
i
][
0
]
=
(
configuration
->
mnc
[
i
]
/
100
)
%
10
;
dummy_mnc
[
i
][
1
]
=
(
configuration
->
mnc
[
i
]
/
10
)
%
10
;
dummy_mnc
[
i
][
2
]
=
(
configuration
->
mnc
[
i
]
/
1
)
%
10
;
}
else
{
dummy_mnc
[
0
]
=
(
configuration
->
mnc
/
100
)
%
100
;
dummy_mnc
[
1
]
=
(
configuration
->
mnc
/
10
)
%
10
;
dummy_mnc
[
2
]
=
(
configuration
->
mnc
/
1
)
%
10
;
if
(
configuration
->
mnc_digit_length
[
i
]
==
2
)
{
dummy_mnc
[
i
][
0
]
=
(
configuration
->
mnc
[
i
]
/
10
)
%
10
;
dummy_mnc
[
i
][
1
]
=
(
configuration
->
mnc
[
i
]
/
1
)
%
10
;
dummy_mnc
[
i
][
2
]
=
0xf
;
}
else
{
dummy_mnc
[
i
][
0
]
=
(
configuration
->
mnc
[
i
]
/
100
)
%
100
;
dummy_mnc
[
i
][
1
]
=
(
configuration
->
mnc
[
i
]
/
10
)
%
10
;
dummy_mnc
[
i
][
2
]
=
(
configuration
->
mnc
[
i
]
/
1
)
%
10
;
}
}
}
#else
dummy_mnc
[
0
]
=
0
;
dummy_mnc
[
1
]
=
1
;
dummy_mnc
[
2
]
=
0xf
;
dummy_mnc
[
i
]
[
0
]
=
0
;
dummy_mnc
[
i
]
[
1
]
=
1
;
dummy_mnc
[
i
]
[
2
]
=
0xf
;
#endif
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
.
plmn_Identity
.
mnc
.
list
,
&
dummy_mnc
[
0
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
.
plmn_Identity
.
mnc
.
list
,
&
dummy_mnc
[
1
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mnc
.
list
,
&
dummy_mnc
[
i
]
[
0
]);
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mnc
.
list
,
&
dummy_mnc
[
i
]
[
1
]);
if
(
dummy_mnc
[
2
]
!=
0xf
)
{
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
.
plmn_Identity
.
mnc
.
list
,
&
dummy_mnc
[
2
]);
}
if
(
dummy_mnc
[
i
]
[
2
]
!=
0xf
)
{
ASN_SEQUENCE_ADD
(
&
PLMN_identity_info
[
i
].
plmn_Identity
.
mnc
.
list
,
&
dummy_mnc
[
i
]
[
2
]);
}
//assign_enum(&PLMN_identity_info.cellReservedForOperatorUse,PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved);
PLMN_identity_info
.
cellReservedForOperatorUse
=
PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved
;
//assign_enum(&PLMN_identity_info.cellReservedForOperatorUse,PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved);
PLMN_identity_info
[
i
]
.
cellReservedForOperatorUse
=
PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved
;
ASN_SEQUENCE_ADD
(
&
(
*
sib1
)
->
cellAccessRelatedInfo
.
plmn_IdentityList
.
list
,
&
PLMN_identity_info
);
ASN_SEQUENCE_ADD
(
&
(
*
sib1
)
->
cellAccessRelatedInfo
.
plmn_IdentityList
.
list
,
&
PLMN_identity_info
[
i
]);
}
// 16 bits
...
...
@@ -1670,10 +1677,7 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin
rrcConnectionSetupComplete
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r8
.
nonCriticalExtension
=
CALLOC
(
1
,
sizeof
(
*
rrcConnectionSetupComplete
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r8
.
nonCriticalExtension
));
if
(
usim_test
==
0
)
rrcConnectionSetupComplete
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r8
.
selectedPLMN_Identity
=
2
;
else
rrcConnectionSetupComplete
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r8
.
selectedPLMN_Identity
=
1
;
rrcConnectionSetupComplete
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r8
.
selectedPLMN_Identity
=
1
;
rrcConnectionSetupComplete
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetupComplete_r8
.
registeredMME
=
NULL
;
//calloc(1,sizeof(*rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.registeredMME));
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_defs.h
View file @
a7e36b04
...
...
@@ -699,13 +699,6 @@ typedef struct eNB_RRC_INST_s {
#if defined(ENABLE_ITTI)
RrcConfigurationReq
configuration
;
#endif
// other PLMN parameters
/// Mobile country code
int
mcc
;
/// Mobile network code
int
mnc
;
/// number of mnc digits
int
mnc_digit_length
;
// other RAN parameters
int
srb1_timer_poll_retransmit
;
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_eNB_S1AP.c
View file @
a7e36b04
This diff is collapsed.
Click to expand it.
openair2/UTIL/MEM/mem_block.c
View file @
a7e36b04
...
...
@@ -61,6 +61,7 @@ uint32_t counters[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
/*
* initialize all ures
*/
extern
mem_pool
*
memBlockVar
;
void
*
pool_buffer_init
(
void
)
{
...
...
@@ -68,6 +69,7 @@ pool_buffer_init (void)
uint32_t
index
,
mb_index
,
pool_index
;
mem_pool
*
memory
=
(
mem_pool
*
)
&
mem_block_var
;
memBlockVar
=
malloc
(
sizeof
(
mem_pool
));
int
pool_sizes
[
14
]
=
{
MEM_MNGT_MB0_NB_BLOCKS
,
MEM_MNGT_MB1_NB_BLOCKS
,
MEM_MNGT_MB2_NB_BLOCKS
,
MEM_MNGT_MB3_NB_BLOCKS
,
MEM_MNGT_MB4_NB_BLOCKS
,
MEM_MNGT_MB5_NB_BLOCKS
,
...
...
This diff is collapsed.
Click to expand it.
openair2/UTIL/MEM/mem_block.h
View file @
a7e36b04
...
...
@@ -178,7 +178,8 @@ typedef struct {
}
mem_pool
;
mem_pool
mem_block_var
;
mem_pool
*
memBlockVar
;
#define mem_block_var (*memBlockVar)
#ifdef __cplusplus
}
...
...
This diff is collapsed.
Click to expand it.
openair3/S1AP/s1ap_eNB.c
View file @
a7e36b04
...
...
@@ -97,7 +97,9 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
net_ip_address_t
*
mme_ip_address
,
net_ip_address_t
*
local_ip_addr
,
uint16_t
in_streams
,
uint16_t
out_streams
)
uint16_t
out_streams
,
uint8_t
broadcast_plmn_num
,
uint8_t
broadcast_plmn_index
[
PLMN_LIST_MAX_SIZE
])
{
MessageDef
*
message_p
=
NULL
;
sctp_new_association_req_t
*
sctp_new_association_req_p
=
NULL
;
...
...
@@ -126,8 +128,8 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
sizeof
(
*
local_ip_addr
));
S1AP_INFO
(
"[eNB %d] check the mme registration state
\n
"
,
instance_p
->
instance
);
mme
=
s1ap_eNB_get_MME_from_instance
(
instance_p
)
;
mme
=
NULL
;
if
(
mme
==
NULL
)
{
...
...
@@ -139,6 +141,9 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
sctp_new_association_req_p
->
ulp_cnx_id
=
s1ap_mme_data_p
->
cnx_id
;
s1ap_mme_data_p
->
assoc_id
=
-
1
;
s1ap_mme_data_p
->
broadcast_plmn_num
=
broadcast_plmn_num
;
for
(
int
i
=
0
;
i
<
broadcast_plmn_num
;
++
i
)
s1ap_mme_data_p
->
broadcast_plmn_index
[
i
]
=
broadcast_plmn_index
[
i
];
s1ap_mme_data_p
->
s1ap_eNB_instance
=
instance_p
;
STAILQ_INIT
(
&
s1ap_mme_data_p
->
served_gummei
);
...
...
@@ -190,10 +195,14 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
/* Checks if it is a retry on the same eNB */
DevCheck
(
new_instance
->
eNB_id
==
s1ap_register_eNB
->
eNB_id
,
new_instance
->
eNB_id
,
s1ap_register_eNB
->
eNB_id
,
0
);
DevCheck
(
new_instance
->
cell_type
==
s1ap_register_eNB
->
cell_type
,
new_instance
->
cell_type
,
s1ap_register_eNB
->
cell_type
,
0
);
DevCheck
(
new_instance
->
num_plmn
==
s1ap_register_eNB
->
num_plmn
,
new_instance
->
num_plmn
,
s1ap_register_eNB
->
num_plmn
,
0
);
DevCheck
(
new_instance
->
tac
==
s1ap_register_eNB
->
tac
,
new_instance
->
tac
,
s1ap_register_eNB
->
tac
,
0
);
DevCheck
(
new_instance
->
mcc
==
s1ap_register_eNB
->
mcc
,
new_instance
->
mcc
,
s1ap_register_eNB
->
mcc
,
0
);
DevCheck
(
new_instance
->
mnc
==
s1ap_register_eNB
->
mnc
,
new_instance
->
mnc
,
s1ap_register_eNB
->
mnc
,
0
);
DevCheck
(
new_instance
->
mnc_digit_length
==
s1ap_register_eNB
->
mnc_digit_length
,
new_instance
->
mnc_digit_length
,
s1ap_register_eNB
->
mnc_digit_length
,
0
);
for
(
int
i
=
0
;
i
<
new_instance
->
num_plmn
;
i
++
)
{
DevCheck
(
new_instance
->
mcc
[
i
]
==
s1ap_register_eNB
->
mcc
[
i
],
new_instance
->
mcc
[
i
],
s1ap_register_eNB
->
mcc
[
i
],
0
);
DevCheck
(
new_instance
->
mnc
[
i
]
==
s1ap_register_eNB
->
mnc
[
i
],
new_instance
->
mnc
[
i
],
s1ap_register_eNB
->
mnc
[
i
],
0
);
DevCheck
(
new_instance
->
mnc_digit_length
[
i
]
==
s1ap_register_eNB
->
mnc_digit_length
[
i
],
new_instance
->
mnc_digit_length
[
i
],
s1ap_register_eNB
->
mnc_digit_length
[
i
],
0
);
}
DevCheck
(
new_instance
->
default_drx
==
s1ap_register_eNB
->
default_drx
,
new_instance
->
default_drx
,
s1ap_register_eNB
->
default_drx
,
0
);
}
else
{
new_instance
=
calloc
(
1
,
sizeof
(
s1ap_eNB_instance_t
));
...
...
@@ -208,9 +217,13 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
new_instance
->
eNB_id
=
s1ap_register_eNB
->
eNB_id
;
new_instance
->
cell_type
=
s1ap_register_eNB
->
cell_type
;
new_instance
->
tac
=
s1ap_register_eNB
->
tac
;
new_instance
->
mcc
=
s1ap_register_eNB
->
mcc
;
new_instance
->
mnc
=
s1ap_register_eNB
->
mnc
;
new_instance
->
mnc_digit_length
=
s1ap_register_eNB
->
mnc_digit_length
;
for
(
int
i
=
0
;
i
<
s1ap_register_eNB
->
num_plmn
;
i
++
)
{
new_instance
->
mcc
[
i
]
=
s1ap_register_eNB
->
mcc
[
i
];
new_instance
->
mnc
[
i
]
=
s1ap_register_eNB
->
mnc
[
i
];
new_instance
->
mnc_digit_length
[
i
]
=
s1ap_register_eNB
->
mnc_digit_length
[
i
];
}
new_instance
->
num_plmn
=
s1ap_register_eNB
->
num_plmn
;
new_instance
->
default_drx
=
s1ap_register_eNB
->
default_drx
;
/* Add the new instance to the list of eNB (meaningfull in virtual mode) */
...
...
@@ -231,7 +244,9 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
&
s1ap_register_eNB
->
mme_ip_address
[
index
],
&
s1ap_register_eNB
->
enb_ip_address
,
s1ap_register_eNB
->
sctp_in_streams
,
s1ap_register_eNB
->
sctp_out_streams
);
s1ap_register_eNB
->
sctp_out_streams
,
s1ap_register_eNB
->
broadcast_plmn_num
[
index
],
s1ap_register_eNB
->
broadcast_plmn_index
[
index
]);
}
}
...
...
@@ -459,7 +474,9 @@ static int s1ap_eNB_generate_s1_setup_request(
ie
->
id
=
S1AP_ProtocolIE_ID_id_Global_ENB_ID
;
ie
->
criticality
=
S1AP_Criticality_reject
;
ie
->
value
.
present
=
S1AP_S1SetupRequestIEs__value_PR_Global_ENB_ID
;
MCC_MNC_TO_PLMNID
(
instance_p
->
mcc
,
instance_p
->
mnc
,
instance_p
->
mnc_digit_length
,
MCC_MNC_TO_PLMNID
(
instance_p
->
mcc
[
s1ap_mme_data_p
->
broadcast_plmn_index
[
0
]],
instance_p
->
mnc
[
s1ap_mme_data_p
->
broadcast_plmn_index
[
0
]],
instance_p
->
mnc_digit_length
[
s1ap_mme_data_p
->
broadcast_plmn_index
[
0
]],
&
ie
->
value
.
choice
.
Global_ENB_ID
.
pLMNidentity
);
ie
->
value
.
choice
.
Global_ENB_ID
.
eNB_ID
.
present
=
S1AP_ENB_ID_PR_macroENB_ID
;
MACRO_ENB_ID_TO_BIT_STRING
(
instance_p
->
eNB_id
,
...
...
@@ -490,9 +507,14 @@ static int s1ap_eNB_generate_s1_setup_request(
ta
=
(
S1AP_SupportedTAs_Item_t
*
)
calloc
(
1
,
sizeof
(
S1AP_SupportedTAs_Item_t
));
INT16_TO_OCTET_STRING
(
instance_p
->
tac
,
&
ta
->
tAC
);
{
plmn
=
(
S1AP_PLMNidentity_t
*
)
calloc
(
1
,
sizeof
(
S1AP_PLMNidentity_t
));
MCC_MNC_TO_TBCD
(
instance_p
->
mcc
,
instance_p
->
mnc
,
instance_p
->
mnc_digit_length
,
plmn
);
ASN_SEQUENCE_ADD
(
&
ta
->
broadcastPLMNs
.
list
,
plmn
);
for
(
int
i
=
0
;
i
<
s1ap_mme_data_p
->
broadcast_plmn_num
;
++
i
)
{
plmn
=
(
S1AP_PLMNidentity_t
*
)
calloc
(
1
,
sizeof
(
S1AP_PLMNidentity_t
));
MCC_MNC_TO_TBCD
(
instance_p
->
mcc
[
s1ap_mme_data_p
->
broadcast_plmn_index
[
i
]],
instance_p
->
mnc
[
s1ap_mme_data_p
->
broadcast_plmn_index
[
i
]],
instance_p
->
mnc_digit_length
[
s1ap_mme_data_p
->
broadcast_plmn_index
[
i
]],
plmn
);
ASN_SEQUENCE_ADD
(
&
ta
->
broadcastPLMNs
.
list
,
plmn
);
}
}
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
SupportedTAs
.
list
,
ta
);
}
...
...
This diff is collapsed.
Click to expand it.
openair3/S1AP/s1ap_eNB_defs.h
View file @
a7e36b04
...
...
@@ -154,6 +154,11 @@ typedef struct s1ap_eNB_mme_data_s {
/* SCTP association id */
int32_t
assoc_id
;
/* This is served PLMN IDs communicated to the MME via an index over the
* MCC/MNC array in s1ap_eNB_instance */
uint8_t
broadcast_plmn_num
;
uint8_t
broadcast_plmn_index
[
PLMN_LIST_MAX_SIZE
];
/* Only meaningfull in virtual mode */
struct
s1ap_eNB_instance_s
*
s1ap_eNB_instance
;
}
s1ap_eNB_mme_data_t
;
...
...
@@ -198,9 +203,10 @@ typedef struct s1ap_eNB_instance_s {
/* Mobile Country Code
* Mobile Network Code
*/
uint16_t
mcc
;
uint16_t
mnc
;
uint8_t
mnc_digit_length
;
uint16_t
mcc
[
PLMN_LIST_MAX_SIZE
];
uint16_t
mnc
[
PLMN_LIST_MAX_SIZE
];
uint8_t
mnc_digit_length
[
PLMN_LIST_MAX_SIZE
];
uint8_t
num_plmn
;
/* Default Paging DRX of the eNB as defined in TS 36.304 */
paging_drx_t
default_drx
;
...
...
This diff is collapsed.
Click to expand it.
openair3/S1AP/s1ap_eNB_nas_procedures.c
View file @
a7e36b04
...
...
@@ -81,6 +81,16 @@ int s1ap_eNB_handle_nas_first_req(
instance_p
,
s1ap_nas_first_req_p
->
establishment_cause
,
s1ap_nas_first_req_p
->
ue_identity
.
gummei
);
if
(
mme_desc_p
)
{
S1AP_INFO
(
"[eNB %d] Chose MME '%s' (assoc_id %d) through GUMMEI MCC %d MNC %d MMEGI %d MMEC %d
\n
"
,
instance
,
mme_desc_p
->
mme_name
,
mme_desc_p
->
assoc_id
,
s1ap_nas_first_req_p
->
ue_identity
.
gummei
.
mcc
,
s1ap_nas_first_req_p
->
ue_identity
.
gummei
.
mnc
,
s1ap_nas_first_req_p
->
ue_identity
.
gummei
.
mme_group_id
,
s1ap_nas_first_req_p
->
ue_identity
.
gummei
.
mme_code
);
}
}
if
(
mme_desc_p
==
NULL
)
{
...
...
@@ -89,18 +99,53 @@ int s1ap_eNB_handle_nas_first_req(
mme_desc_p
=
s1ap_eNB_nnsf_select_mme_by_mme_code
(
instance_p
,
s1ap_nas_first_req_p
->
establishment_cause
,
s1ap_nas_first_req_p
->
selected_plmn_identity
,
s1ap_nas_first_req_p
->
ue_identity
.
s_tmsi
.
mme_code
);
if
(
mme_desc_p
)
{
S1AP_INFO
(
"[eNB %d] Chose MME '%s' (assoc_id %d) through S-TMSI MMEC %d and selected PLMN Identity index %d MCC %d MNC %d
\n
"
,
instance
,
mme_desc_p
->
mme_name
,
mme_desc_p
->
assoc_id
,
s1ap_nas_first_req_p
->
ue_identity
.
s_tmsi
.
mme_code
,
s1ap_nas_first_req_p
->
selected_plmn_identity
,
instance_p
->
mcc
[
s1ap_nas_first_req_p
->
selected_plmn_identity
],
instance_p
->
mnc
[
s1ap_nas_first_req_p
->
selected_plmn_identity
]);
}
}
}
if
(
mme_desc_p
==
NULL
)
{
/* Select MME based on the selected PLMN identity, received through RRC
* Connection Setup Complete */
mme_desc_p
=
s1ap_eNB_nnsf_select_mme_by_plmn_id
(
instance_p
,
s1ap_nas_first_req_p
->
establishment_cause
,
s1ap_nas_first_req_p
->
selected_plmn_identity
);
if
(
mme_desc_p
)
{
S1AP_INFO
(
"[eNB %d] Chose MME '%s' (assoc_id %d) through selected PLMN Identity index %d MCC %d MNC %d
\n
"
,
instance
,
mme_desc_p
->
mme_name
,
mme_desc_p
->
assoc_id
,
s1ap_nas_first_req_p
->
selected_plmn_identity
,
instance_p
->
mcc
[
s1ap_nas_first_req_p
->
selected_plmn_identity
],
instance_p
->
mnc
[
s1ap_nas_first_req_p
->
selected_plmn_identity
]);
}
}
if
(
mme_desc_p
==
NULL
)
{
/*
* If no MME corresponds to the GUMMEI
or the s-TMSI, selects the MME with the
* highest capacity.
* If no MME corresponds to the GUMMEI
, the s-TMSI, or the selected PLMN
*
identity, selects the MME with the
highest capacity.
*/
mme_desc_p
=
s1ap_eNB_nnsf_select_mme
(
instance_p
,
s1ap_nas_first_req_p
->
establishment_cause
);
if
(
mme_desc_p
)
{
S1AP_INFO
(
"[eNB %d] Chose MME '%s' (assoc_id %d) through highest relative capacity
\n
"
,
instance
,
mme_desc_p
->
mme_name
,
mme_desc_p
->
assoc_id
);
}
}
if
(
mme_desc_p
==
NULL
)
{
...
...
@@ -124,6 +169,7 @@ int s1ap_eNB_handle_nas_first_req(
ue_desc_p
->
mme_ref
=
mme_desc_p
;
ue_desc_p
->
ue_initial_id
=
s1ap_nas_first_req_p
->
ue_initial_id
;
ue_desc_p
->
eNB_instance
=
instance_p
;
ue_desc_p
->
selected_plmn_identity
=
s1ap_nas_first_req_p
->
selected_plmn_identity
;
do
{
struct
s1ap_eNB_ue_context_s
*
collision_p
;
...
...
@@ -172,9 +218,9 @@ int s1ap_eNB_handle_nas_first_req(
ie
->
value
.
present
=
S1AP_InitialUEMessage_IEs__value_PR_TAI
;
/* Assuming TAI is the TAI from the cell */
INT16_TO_OCTET_STRING
(
instance_p
->
tac
,
&
ie
->
value
.
choice
.
TAI
.
tAC
);
MCC_MNC_TO_PLMNID
(
instance_p
->
mcc
,
instance_p
->
mnc
,
instance_p
->
mnc_digit_length
,
MCC_MNC_TO_PLMNID
(
instance_p
->
mcc
[
ue_desc_p
->
selected_plmn_identity
]
,
instance_p
->
mnc
[
ue_desc_p
->
selected_plmn_identity
]
,
instance_p
->
mnc_digit_length
[
ue_desc_p
->
selected_plmn_identity
]
,
&
ie
->
value
.
choice
.
TAI
.
pLMNidentity
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
...
...
@@ -191,9 +237,9 @@ int s1ap_eNB_handle_nas_first_req(
MACRO_ENB_ID_TO_CELL_IDENTITY
(
instance_p
->
eNB_id
,
0
,
// Cell ID
&
ie
->
value
.
choice
.
EUTRAN_CGI
.
cell_ID
);
MCC_MNC_TO_TBCD
(
instance_p
->
mcc
,
instance_p
->
mnc
,
instance_p
->
mnc_digit_length
,
MCC_MNC_TO_TBCD
(
instance_p
->
mcc
[
ue_desc_p
->
selected_plmn_identity
]
,
instance_p
->
mnc
[
ue_desc_p
->
selected_plmn_identity
]
,
instance_p
->
mnc_digit_length
[
ue_desc_p
->
selected_plmn_identity
]
,
&
ie
->
value
.
choice
.
EUTRAN_CGI
.
pLMNidentity
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
...
...
@@ -608,9 +654,9 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie
->
criticality
=
S1AP_Criticality_ignore
;
ie
->
value
.
present
=
S1AP_UplinkNASTransport_IEs__value_PR_EUTRAN_CGI
;
MCC_MNC_TO_PLMNID
(
s1ap_eNB_instance_p
->
mcc
,
s1ap_eNB_instance_p
->
mnc
,
s1ap_eNB_instance_p
->
mnc_digit_length
,
s1ap_eNB_instance_p
->
mcc
[
ue_context_p
->
selected_plmn_identity
]
,
s1ap_eNB_instance_p
->
mnc
[
ue_context_p
->
selected_plmn_identity
]
,
s1ap_eNB_instance_p
->
mnc_digit_length
[
ue_context_p
->
selected_plmn_identity
]
,
&
ie
->
value
.
choice
.
EUTRAN_CGI
.
pLMNidentity
);
//#warning "TODO get cell id from RRC"
MACRO_ENB_ID_TO_CELL_IDENTITY
(
s1ap_eNB_instance_p
->
eNB_id
,
...
...
@@ -624,9 +670,9 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie
->
criticality
=
S1AP_Criticality_ignore
;
ie
->
value
.
present
=
S1AP_UplinkNASTransport_IEs__value_PR_TAI
;
MCC_MNC_TO_PLMNID
(
s1ap_eNB_instance_p
->
mcc
,
s1ap_eNB_instance_p
->
mnc
,
s1ap_eNB_instance_p
->
mnc_digit_length
,
s1ap_eNB_instance_p
->
mcc
[
ue_context_p
->
selected_plmn_identity
]
,
s1ap_eNB_instance_p
->
mnc
[
ue_context_p
->
selected_plmn_identity
]
,
s1ap_eNB_instance_p
->
mnc_digit_length
[
ue_context_p
->
selected_plmn_identity
]
,
&
ie
->
value
.
choice
.
TAI
.
pLMNidentity
);
TAC_TO_ASN1
(
s1ap_eNB_instance_p
->
tac
,
&
ie
->
value
.
choice
.
TAI
.
tAC
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
...
...
This diff is collapsed.
Click to expand it.
openair3/S1AP/s1ap_eNB_nnsf.c
View file @
a7e36b04
...
...
@@ -90,9 +90,9 @@ s1ap_eNB_nnsf_select_mme(s1ap_eNB_instance_t *instance_p,
}
struct
s1ap_eNB_mme_data_s
*
s1ap_eNB_nnsf_select_mme_by_
mme_code
(
s1ap_eNB_instance_t
*
instance_p
,
rrc_establishment_cause_t
cause
,
uint8_t
mme_code
)
s1ap_eNB_nnsf_select_mme_by_
plmn_id
(
s1ap_eNB_instance_t
*
instance_p
,
rrc_establishment_cause_t
cause
,
int
selected_plmn_identity
)
{
struct
s1ap_eNB_mme_data_s
*
mme_data_p
=
NULL
;
struct
s1ap_eNB_mme_data_s
*
mme_highest_capacity_p
=
NULL
;
...
...
@@ -100,7 +100,7 @@ s1ap_eNB_nnsf_select_mme_by_mme_code(s1ap_eNB_instance_t *instance_p,
RB_FOREACH
(
mme_data_p
,
s1ap_mme_map
,
&
instance_p
->
s1ap_mme_head
)
{
struct
served_gummei_s
*
gummei_p
=
NULL
;
struct
plmn_identity_s
*
served_plmn_p
=
NULL
;
if
(
mme_data_p
->
state
!=
S1AP_ENB_STATE_CONNECTED
)
{
/* The association between MME and eNB is not ready for the moment,
* go to the next known MME.
...
...
@@ -135,30 +135,106 @@ s1ap_eNB_nnsf_select_mme_by_mme_code(s1ap_eNB_instance_t *instance_p,
}
}
/* Looking for served GUMMEI PLMN Identity selected matching the one provided by the UE */
STAILQ_FOREACH
(
gummei_p
,
&
mme_data_p
->
served_gummei
,
next
)
{
STAILQ_FOREACH
(
served_plmn_p
,
&
gummei_p
->
served_plmns
,
next
)
{
if
((
served_plmn_p
->
mcc
==
instance_p
->
mcc
[
selected_plmn_identity
])
&&
(
served_plmn_p
->
mnc
==
instance_p
->
mnc
[
selected_plmn_identity
]))
{
break
;
}
}
/* if found, we can stop the outer loop, too */
if
(
served_plmn_p
)
break
;
}
/* if we didn't find such a served PLMN, go on with the next MME */
if
(
!
served_plmn_p
)
continue
;
if
(
current_capacity
<
mme_data_p
->
relative_mme_capacity
)
{
/* We find a better MME, keep a reference to it */
current_capacity
=
mme_data_p
->
relative_mme_capacity
;
mme_highest_capacity_p
=
mme_data_p
;
}
}
return
mme_highest_capacity_p
;
}
struct
s1ap_eNB_mme_data_s
*
s1ap_eNB_nnsf_select_mme_by_mme_code
(
s1ap_eNB_instance_t
*
instance_p
,
rrc_establishment_cause_t
cause
,
int
selected_plmn_identity
,
uint8_t
mme_code
)
{
struct
s1ap_eNB_mme_data_s
*
mme_data_p
=
NULL
;
RB_FOREACH
(
mme_data_p
,
s1ap_mme_map
,
&
instance_p
->
s1ap_mme_head
)
{
struct
served_gummei_s
*
gummei_p
=
NULL
;
if
(
mme_data_p
->
state
!=
S1AP_ENB_STATE_CONNECTED
)
{
/* The association between MME and eNB is not ready for the moment,
* go to the next known MME.
*/
if
(
mme_data_p
->
state
==
S1AP_ENB_OVERLOAD
)
{
/* MME is overloaded. We have to check the RRC establishment
* cause and take decision to the select this MME depending on
* the overload state.
*/
if
((
cause
==
RRC_CAUSE_MO_DATA
)
&&
(
mme_data_p
->
overload_state
==
S1AP_OVERLOAD_REJECT_MO_DATA
))
{
continue
;
}
if
((
mme_data_p
->
overload_state
==
S1AP_OVERLOAD_REJECT_ALL_SIGNALLING
)
&&
((
cause
==
RRC_CAUSE_MO_SIGNALLING
)
||
(
cause
==
RRC_CAUSE_MO_DATA
)))
{
continue
;
}
if
((
mme_data_p
->
overload_state
==
S1AP_OVERLOAD_ONLY_EMERGENCY_AND_MT
)
&&
((
cause
==
RRC_CAUSE_MO_SIGNALLING
)
||
(
cause
==
RRC_CAUSE_MO_DATA
)
||
(
cause
==
RRC_CAUSE_HIGH_PRIO_ACCESS
)))
{
continue
;
}
/* At this point, the RRC establishment can be handled by the MME
* even if it is in overload state.
*/
}
else
{
/* The MME is not overloaded, association is simply not ready. */
continue
;
}
}
/* Looking for MME code matching the one provided by NAS */
STAILQ_FOREACH
(
gummei_p
,
&
mme_data_p
->
served_gummei
,
next
)
{
struct
mme_code_s
*
mme_code_p
=
NULL
;
struct
plmn_identity_s
*
served_plmn_p
=
NULL
;
STAILQ_FOREACH
(
served_plmn_p
,
&
gummei_p
->
served_plmns
,
next
)
{
if
((
served_plmn_p
->
mcc
==
instance_p
->
mcc
[
selected_plmn_identity
])
&&
(
served_plmn_p
->
mnc
==
instance_p
->
mnc
[
selected_plmn_identity
]))
{
break
;
}
}
STAILQ_FOREACH
(
mme_code_p
,
&
gummei_p
->
mme_codes
,
next
)
{
if
(
mme_code_p
->
mme_code
==
mme_code
)
{
return
mme_data_p
;
break
;
}
}
/* The MME matches the parameters provided by the NAS layer ->
* the MME is knwown and the association is ready.
* Return the reference to the MME to use it for this UE.
*/
if
(
mme_code_p
&&
served_plmn_p
)
{
return
mme_data_p
;
}
}
}
/* At this point no MME matches the provided GUMMEI. Select the one with the
* highest relative capacity.
* In case the list of known MME is empty, simply return NULL, that way the RRC
* layer should know about it and reject RRC connectivity.
*/
return
mme_highest_capacity_p
;
/* At this point no MME matches the selected PLMN and MME code. In this case,
* return NULL. That way the RRC layer should know about it and reject RRC
* connectivity. */
return
NULL
;
}
struct
s1ap_eNB_mme_data_s
*
...
...
@@ -167,8 +243,6 @@ s1ap_eNB_nnsf_select_mme_by_gummei(s1ap_eNB_instance_t *instance_p,
s1ap_gummei_t
gummei
)
{
struct
s1ap_eNB_mme_data_s
*
mme_data_p
=
NULL
;
struct
s1ap_eNB_mme_data_s
*
mme_highest_capacity_p
=
NULL
;
uint8_t
current_capacity
=
0
;
RB_FOREACH
(
mme_data_p
,
s1ap_mme_map
,
&
instance_p
->
s1ap_mme_head
)
{
struct
served_gummei_s
*
gummei_p
=
NULL
;
...
...
@@ -207,12 +281,6 @@ s1ap_eNB_nnsf_select_mme_by_gummei(s1ap_eNB_instance_t *instance_p,
}
}
if
(
current_capacity
<
mme_data_p
->
relative_mme_capacity
)
{
/* We find a better MME, keep a reference to it */
current_capacity
=
mme_data_p
->
relative_mme_capacity
;
mme_highest_capacity_p
=
mme_data_p
;
}
/* Looking for MME gummei matching the one provided by NAS */
STAILQ_FOREACH
(
gummei_p
,
&
mme_data_p
->
served_gummei
,
next
)
{
struct
served_group_id_s
*
group_id_p
=
NULL
;
...
...
@@ -248,10 +316,8 @@ s1ap_eNB_nnsf_select_mme_by_gummei(s1ap_eNB_instance_t *instance_p,
}
}
/* At this point no MME matches the provided GUMMEI. Select the one with the
* highest relative capacity.
* In case the list of known MME is empty, simply return NULL, that way the RRC
* layer should know about it and reject RRC connectivity.
*/
return
mme_highest_capacity_p
;
/* At this point no MME matches the provided GUMMEI. In this case, return
* NULL. That way the RRC layer should know about it and reject RRC
* connectivity. */
return
NULL
;
}
This diff is collapsed.
Click to expand it.
openair3/S1AP/s1ap_eNB_nnsf.h
View file @
a7e36b04
...
...
@@ -26,9 +26,15 @@ struct s1ap_eNB_mme_data_s *
s1ap_eNB_nnsf_select_mme
(
s1ap_eNB_instance_t
*
instance_p
,
rrc_establishment_cause_t
cause
);
struct
s1ap_eNB_mme_data_s
*
s1ap_eNB_nnsf_select_mme_by_plmn_id
(
s1ap_eNB_instance_t
*
instance_p
,
rrc_establishment_cause_t
cause
,
int
selected_plmn_identity
);
struct
s1ap_eNB_mme_data_s
*
s1ap_eNB_nnsf_select_mme_by_mme_code
(
s1ap_eNB_instance_t
*
instance_p
,
rrc_establishment_cause_t
cause
,
int
selected_plmn_identity
,
uint8_t
mme_code
);
struct
s1ap_eNB_mme_data_s
*
...
...
This diff is collapsed.
Click to expand it.
openair3/S1AP/s1ap_eNB_ue_context.h
View file @
a7e36b04
...
...
@@ -67,6 +67,11 @@ typedef struct s1ap_eNB_ue_context_s {
/* Reference to MME data this UE is attached to */
struct
s1ap_eNB_mme_data_s
*
mme_ref
;
/* Signaled by the UE in RRC Connection Setup Complete and used in NAS Uplink
* to route NAS messages correctly. 0-based, not 1-based as in TS 36.331
* 6.2.2 RRC Connection Setup Complete! */
int
selected_plmn_identity
;
/* Reference to eNB data this UE is attached to */
s1ap_eNB_instance_t
*
eNB_instance
;
}
s1ap_eNB_ue_context_t
;
...
...
This diff is collapsed.
Click to expand it.
openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,8 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"95"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
95
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,8 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"95"
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
95
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf
View file @
a7e36b04
...
...
@@ -15,12 +15,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"15"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
15
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Channel
parameters
:
//
Default
Paging
DRX
of
the
eNB
as
defined
in
TS
36
.
304
default_paging_drx
=
"PAGING_DRX_256"
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf
View file @
a7e36b04
...
...
@@ -15,12 +15,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"15"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
15
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Channel
parameters
:
//
Default
Paging
DRX
of
the
eNB
as
defined
in
TS
36
.
304
default_paging_drx
=
"PAGING_DRX_256"
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf
View file @
a7e36b04
...
...
@@ -14,12 +14,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"15"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
tracking_area_code
=
15
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Channel
parameters
:
//
Default
Paging
DRX
of
the
eNB
as
defined
in
TS
36
.
304
default_paging_drx
=
"PAGING_DRX_256"
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/E-MBMS/enb.conf
View file @
a7e36b04
...
...
@@ -11,12 +11,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_0"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
mobile_country_code
=
208
;
mobile_network_code
=
10
;
tracking_area_code
=
1
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
10
;
mnc_length
=
2
; } );
//////////
Channel
parameters
:
//
Default
Paging
DRX
of
the
eNB
as
defined
in
TS
36
.
304
default_paging_drx
=
"PAGING_DRX_256"
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.100PRB.usrpx310.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpx310.conf
View file @
a7e36b04
...
...
@@ -13,10 +13,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
//////////
Physical
parameters
:
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.replay.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,9 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210-d2d.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,9 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210_ue_expansion.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band38.tm1.if4p5.50PRB.lo.conf
View file @
a7e36b04
...
...
@@ -16,11 +16,9 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi-STUB.conf
View file @
a7e36b04
...
...
@@ -13,12 +13,9 @@ eNBs =
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
#mobile_network_code = "93";
mobile_network_code
=
"92"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
92
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf
View file @
a7e36b04
...
...
@@ -13,11 +13,9 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
View file @
a7e36b04
...
...
@@ -16,11 +16,9 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
View file @
a7e36b04
...
...
@@ -16,11 +16,9 @@ eNBs =
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
tracking_area_code
=
1
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"93"
;
plmn_list
= ( {
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
; } );
tr_s_preference
=
"local_mac"
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment