From df05475b6b9946b70731a89fd9f2d3580550d1ac Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 2 Aug 2022 13:44:57 +0200 Subject: [PATCH 1/9] Add eNB L2sim config file for enb container image --- docker/scripts/enb_entrypoint.sh | 1 + docker/scripts/enb_parameters.yaml | 42 ++++++++++++++++++++++++++++++ docker/scripts/generateTemplate.py | 1 + 3 files changed, 44 insertions(+) diff --git a/docker/scripts/enb_entrypoint.sh b/docker/scripts/enb_entrypoint.sh index 06e94b1e7a..825dfd73c1 100755 --- a/docker/scripts/enb_entrypoint.sh +++ b/docker/scripts/enb_entrypoint.sh @@ -18,6 +18,7 @@ if [[ -v USE_FDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.fdd.conf $PREFIX/et if [[ -v USE_TDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.tdd.conf $PREFIX/etc/enb.conf; fi if [[ -v USE_FDD_RRU ]]; then cp $PREFIX/etc/rru.fdd.conf $PREFIX/etc/enb.conf; fi if [[ -v USE_TDD_RRU ]]; then cp $PREFIX/etc/rru.tdd.conf $PREFIX/etc/enb.conf; fi +if [[ -v USE_NFAPI_VNF ]]; then cp $PREFIX/etc/enb.nfapi.vnf.conf $PREFIX/etc/enb.conf; fi # Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself. if [[ -v USE_VOLUMED_CONF ]]; then cp $PREFIX/etc/mounted.conf $PREFIX/etc/enb.conf; fi diff --git a/docker/scripts/enb_parameters.yaml b/docker/scripts/enb_parameters.yaml index 07bba4479b..69baaebb3d 100644 --- a/docker/scripts/enb_parameters.yaml +++ b/docker/scripts/enb_parameters.yaml @@ -354,3 +354,45 @@ - key: parallel_config env: "@THREAD_PARALLEL_CONFIG@" + - filePrefix: "proxy_rcc.band7.tm1.nfapi.conf" + outputfilename: "enb.nfapi.vnf.conf" + config: + - key: Active_eNBs + env: "@ENB_NAME@" + - key: eNB_name + env: "@ENB_NAME@" + - key: plmn_list + env: + mcc: "@MCC@" + mnc: "@MNC@" + mnc_length: "@MNC_LENGTH@" + - key: tracking_area_code + env: "@TAC@" + - key: eutra_band + env: "@UTRA_BAND_ID@" + - key: downlink_frequency + env: "@DL_FREQUENCY_IN_MHZ@000000" + - key: uplink_frequency_offset + env: "@UL_FREQUENCY_OFFSET_IN_MHZ@000000" + - key: Nid_cell + env: "@NID_CELL@" + - key: N_RB_DL + env: "@NB_PRB@" + - key: ipv4 + env: "@MME_S1C_IP_ADDRESS@" + - key: ENB_INTERFACE_NAME_FOR_S1_MME + env: "@ENB_INTERFACE_NAME_FOR_S1_MME@" + - key: ENB_IPV4_ADDRESS_FOR_S1_MME + env: "@ENB_IPV4_ADDRESS_FOR_S1_MME@" + - key: ENB_INTERFACE_NAME_FOR_S1U + env: "@ENB_INTERFACE_NAME_FOR_S1U@" + - key: ENB_IPV4_ADDRESS_FOR_S1U + env: "@ENB_IPV4_ADDRESS_FOR_S1U@" + - key: ENB_IPV4_ADDRESS_FOR_X2C + env: "@ENB_IPV4_ADDRESS_FOR_X2C@" + - key: LOCAL_S_IF_NAME + env: "@LOCAL_S_IF_NAME@" + - key: REMOTE_S_ADDRESS + env: "@REMOTE_S_ADDRESS@" + - key: LOCAL_S_ADDRESS + env: "@LOCAL_S_ADDRESS@" diff --git a/docker/scripts/generateTemplate.py b/docker/scripts/generateTemplate.py index ec8f32ec6e..723bf86070 100644 --- a/docker/scripts/generateTemplate.py +++ b/docker/scripts/generateTemplate.py @@ -65,6 +65,7 @@ def main(): "gNB_SA_CU.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}', "gNB_SA_DU.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}', "proxy_gnb.band78.sa.fr1.106PRB.usrpn310.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}', + "proxy_rcc.band7.tm1.nfapi.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}', "proxy_nr-ue.nfapi.conf": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}', "ue.nfapi": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}', "ue_sim_ci": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}' From c7f79e71e7b18ffe22c69acd823fc38aadca7926 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 4 Aug 2022 09:52:26 +0200 Subject: [PATCH 2/9] Add more users for dummy CI 4G UE sim configuration --- openair3/NAS/TOOLS/ue_sim_ci.conf | 108 ++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/openair3/NAS/TOOLS/ue_sim_ci.conf b/openair3/NAS/TOOLS/ue_sim_ci.conf index 5d95c9ba3f..e9b02e9b1f 100644 --- a/openair3/NAS/TOOLS/ue_sim_ci.conf +++ b/openair3/NAS/TOOLS/ue_sim_ci.conf @@ -43,3 +43,111 @@ UE0: EHPLMN_LIST = (); }; + +UE1: +{ + USER: { + IMEI="356113022094149"; + MANUFACTURER="OAI"; + MODEL="LTE SoftModem"; + PIN="0000"; + }; + + SIM: { + MSIN="0100001111"; + USIM_API_K="8baf473f2f8fd09487cccbd7097c6862"; + OPC="e734f8734007d6c5ce7a0508809e7e9c"; + MSISDN="33611123456"; + }; + + # Home PLMN Selector with Access Technology + HPLMN= "20896"; + + # User controlled PLMN Selector with Access Technology + UCPLMN_LIST = (); + + # Operator PLMN List + OPLMN_LIST = ("20896"); + + # Operator controlled PLMN Selector with Access Technology + OCPLMN_LIST = (); + + # Forbidden plmns + FPLMN_LIST = (); + + # Equivalent home plmns + EHPLMN_LIST = (); + +}; + +UE2: +{ + USER: { + IMEI="356113022094149"; + MANUFACTURER="OAI"; + MODEL="LTE SoftModem"; + PIN="0000"; + }; + + SIM: { + MSIN="0100001111"; + USIM_API_K="8baf473f2f8fd09487cccbd7097c6862"; + OPC="e734f8734007d6c5ce7a0508809e7e9c"; + MSISDN="33611123456"; + }; + + # Home PLMN Selector with Access Technology + HPLMN= "20896"; + + # User controlled PLMN Selector with Access Technology + UCPLMN_LIST = (); + + # Operator PLMN List + OPLMN_LIST = ("20896"); + + # Operator controlled PLMN Selector with Access Technology + OCPLMN_LIST = (); + + # Forbidden plmns + FPLMN_LIST = (); + + # Equivalent home plmns + EHPLMN_LIST = (); + +}; + +UE3: +{ + USER: { + IMEI="356113022094149"; + MANUFACTURER="OAI"; + MODEL="LTE SoftModem"; + PIN="0000"; + }; + + SIM: { + MSIN="0100001111"; + USIM_API_K="8baf473f2f8fd09487cccbd7097c6862"; + OPC="e734f8734007d6c5ce7a0508809e7e9c"; + MSISDN="33611123456"; + }; + + # Home PLMN Selector with Access Technology + HPLMN= "20896"; + + # User controlled PLMN Selector with Access Technology + UCPLMN_LIST = (); + + # Operator PLMN List + OPLMN_LIST = ("20896"); + + # Operator controlled PLMN Selector with Access Technology + OCPLMN_LIST = (); + + # Forbidden plmns + FPLMN_LIST = (); + + # Equivalent home plmns + EHPLMN_LIST = (); + +}; From 7f8031f69a4daf920b9044430640bc2bee0883a7 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 3 Aug 2022 20:09:12 +0200 Subject: [PATCH 3/9] Add docker-compose.yml for l2sim-4g --- .../4g_l2sim_fdd/docker-compose.yml | 305 ++++++++++++++++++ .../yaml_files/4g_l2sim_fdd/entrypoint.sh | 36 +++ ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf | 134 ++++++++ .../4g_l2sim_fdd/mme_fd.sprint.conf | 169 ++++++++++ ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql | 93 ++++++ .../yaml_files/4g_l2sim_fdd/redis_extern.conf | 33 ++ 6 files changed, 770 insertions(+) create mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml create mode 100755 ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh create mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf create mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf create mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql create mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml b/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml new file mode 100644 index 0000000000..03cb45310d --- /dev/null +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml @@ -0,0 +1,305 @@ +version: '3.8' + +services: + cassandra: + image: cassandra:2.1 + container_name: l2sim4g-cassandra + networks: + private_net: + ipv4_address: 192.168.68.2 + environment: + CASSANDRA_CLUSTER_NAME: "OAI HSS Cluster" + CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch + healthcheck: + test: /bin/bash -c "nodetool status" + interval: 10s + timeout: 5s + retries: 5 + + db_init: + image: cassandra:2.1 + container_name: l2sim4g-db-init + depends_on: [cassandra] + deploy: + restart_policy: + condition: on-failure + max_attempts: 10 + networks: + private_net: + ipv4_address: 192.168.68.4 + volumes: + - ./oai_db.cql:/home/oai_db.cql + entrypoint: /bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'" + + oai_hss: + image: oai-hss:latest + container_name: l2sim4g-oai-hss + privileged: true + depends_on: [cassandra] + networks: + private_net: + ipv4_address: 192.168.68.3 + public_net: + ipv4_address: 192.168.61.2 + environment: + REALM: openairinterface.org + HSS_FQDN: hss.openairinterface.org + PREFIX: /openair-hss/etc + cassandra_Server_IP: 192.168.68.2 + OP_KEY: 1006020f0a478bf6b699f15c062e42b3 + LTE_K: fec86ba6eb707ed08905757b1bb44b8f + APN1: oai.ipv4 + APN2: internet + FIRST_IMSI: 208960100000001 + NB_USERS: 10 + healthcheck: + test: /bin/bash -c "pgrep oai_hss" + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:6.0.5 + container_name: l2sim4g-redis + privileged: true + networks: + public_net: + ipv4_address: 192.168.61.6 + volumes: + - ./redis_extern.conf:/usr/local/etc/redis/redis.conf + entrypoint: /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf" + healthcheck: + test: /bin/bash -c "redis-cli -h 192.168.61.6 -p 6380 ping" + interval: 10s + timeout: 5s + retries: 5 + + magma_mme: + image: magma-mme:latest + container_name: l2sim4g-magma-mme + hostname: mme + privileged: true + depends_on: [oai_hss, redis] + networks: + public_net: + ipv4_address: 192.168.61.3 + environment: + TZ: Europe/Paris + REALM: openairinterface.org + PREFIX: /openair-mme/etc + HSS_HOSTNAME: hss + HSS_FQDN: hss.openairinterface.org + HSS_REALM: openairinterface.org + MME_FQDN: mme.openairinterface.org + FEATURES: mme_oai + volumes: + - ./mme_fd.sprint.conf:/magma-mme/etc/mme_fd.conf.tmplt + - ./mme.conf:/magma-mme/etc/mme.conf + - ./entrypoint.sh:/magma-mme/bin/entrypoint.sh + entrypoint: /bin/bash -c "/magma-mme/bin/entrypoint.sh" + healthcheck: + test: /bin/bash -c "pgrep oai_mme" + interval: 10s + timeout: 5s + retries: 5 + + oai_spgwc: + image: oai-spgwc:latest + privileged: true + depends_on: [magma_mme] + container_name: l2sim4g-oai-spgwc + networks: + public_net: + ipv4_address: 192.168.61.4 + environment: + TZ: Europe/Paris + SGW_INTERFACE_NAME_FOR_S11: eth0 + PGW_INTERFACE_NAME_FOR_SX: eth0 + DEFAULT_DNS_IPV4_ADDRESS: 172.21.3.100 + DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4 + PUSH_PROTOCOL_OPTION: 'true' + APN_NI_1: oai.ipv4 + APN_NI_2: oai.ipv4_2 + DEFAULT_APN_NI_1: oai.ipv4 + UE_IP_ADDRESS_POOL_1: '12.0.0.2 - 12.0.0.254' + UE_IP_ADDRESS_POOL_2: '12.1.1.2 - 12.1.1.254' + MCC: '208' + MNC: '96' + MNC03: '096' + TAC: 1 + GW_ID: 1 + REALM: openairinterface.org + healthcheck: + test: /bin/bash -c "pgrep oai_spgwc" + interval: 10s + timeout: 5s + retries: 5 + + oai_spgwu: + image: oai-spgwu-tiny:latest + privileged: true + container_name: l2sim4g-oai-spgwu-tiny + depends_on: [oai_spgwc] + networks: + public_net: + ipv4_address: 192.168.61.5 + environment: + TZ: Europe/Paris + PID_DIRECTORY: /var/run + INSTANCE: 1 + SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: eth0 + PGW_INTERFACE_NAME_FOR_SGI: eth0 + SGW_INTERFACE_NAME_FOR_SX: eth0 + SPGWC0_IP_ADDRESS: 192.168.61.4 + NETWORK_UE_IP: '12.0.0.0/24' + NETWORK_UE_NAT_OPTION: 'yes' + MCC: '208' + MNC: '96' + MNC03: '096' + TAC: 1 + GW_ID: 1 + REALM: openairinterface.org + healthcheck: + test: /bin/bash -c "pgrep oai_spgwu" + interval: 10s + timeout: 5s + retries: 5 + + trf_gen: + image: trf-gen:production + privileged: true + container_name: l2sim4g-trf-gen + networks: + public_net: + ipv4_address: 192.168.61.11 + entrypoint: /bin/bash -c "ip route add 12.0.0.0/24 via 192.168.61.5 dev eth0; sleep infinity" + healthcheck: + test: /bin/bash -c "ping -c 2 192.168.61.5" + interval: 10s + timeout: 5s + retries: 5 + + oai_enb: + image: oai-enb:develop + privileged: true + container_name: l2sim4g-oai-enb + network_mode: "host" + environment: + TZ: Europe/Paris + USE_NFAPI_VNF: 'yes' + ENB_NAME: enb-l2sim-vnf + MCC: '208' + MNC: '96' + MNC_LENGTH: 2 + TAC: 1 + UTRA_BAND_ID: 7 + DL_FREQUENCY_IN_MHZ: 2680 + UL_FREQUENCY_OFFSET_IN_MHZ: 120 + NID_CELL: 10 + NB_PRB: 25 + MME_S1C_IP_ADDRESS: 192.168.61.3 + ENB_INTERFACE_NAME_FOR_S1_MME: eth0 + ENB_IPV4_ADDRESS_FOR_S1_MME: 192.168.61.1 + ENB_INTERFACE_NAME_FOR_S1U: eth0 + ENB_IPV4_ADDRESS_FOR_S1U: 192.168.61.1 + ENB_IPV4_ADDRESS_FOR_X2C: 192.168.61.1 + FLEXRAN_ENABLED: 'no' + FLEXRAN_INTERFACE_NAME: eth0 + FLEXRAN_IPV4_ADDRESS: 192.168.61.1 + LOCAL_S_IF_NAME: 'lo:' + REMOTE_S_ADDRESS: 127.0.0.1 + LOCAL_S_ADDRESS: 127.0.0.2 + USE_ADDITIONAL_OPTIONS: --MACRLCs.[0].scheduler_mode "default" --log_config.global_log_options level,nocolor,time + healthcheck: + test: /bin/bash -c "pgrep lte-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + proxy: + image: oai-lte-multi-ue-proxy:latest + privileged: true + container_name: "l2sim4g-proxy" + network_mode: "host" + environment: + TZ: Europe/Paris + command: "/oai-lte-multi-ue-proxy/bin/proxy 1" + depends_on: + - oai_enb + healthcheck: + test: /bin/bash -c "pgrep proxy" + interval: 10s + timeout: 5s + retries: 5 + + oai_ue1: + image: oai-lte-ue:develop + privileged: true + container_name: l2sim4g-oai-lte-ue1 + network_mode: "host" + environment: + TZ: Europe/Paris + USE_NFAPI: 'yes' + OPENAIR_DIR: /opt/oai-nr-ue + MCC: '208' + MNC: '96' + SHORT_IMSI: '0100000001' + LTE_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' + OPC: 'c42449363bbad02b66d16bc975d77cc1' + MSISDN: '001011234561010' + HPLMN: 20896 + UE_NFAPI_IF_NAME: eno1 + ENB_IP_ADDRESS: 127.0.0.1 + LTE_UE_IP_ADDRESS: 127.0.0.1 + USE_ADDITIONAL_OPTIONS: --L2-emul 5 --nokrnmod 1 --num-ues 1 --node-number 2 --log_config.global_log_options level,nocolor,time + volumes: + - ../../../openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results:/opt/oai-nr-ue/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results + healthcheck: + test: /bin/bash -c "pgrep lte-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai_ue2: + image: oai-lte-ue:develop + privileged: true + container_name: l2sim4g-oai-lte-ue2 + network_mode: "host" + environment: + TZ: Europe/Paris + USE_NFAPI: 'yes' + OPENAIR_DIR: /opt/oai-nr-ue + MCC: '208' + MNC: '96' + SHORT_IMSI: '0100000002' + LTE_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' + OPC: 'c42449363bbad02b66d16bc975d77cc1' + MSISDN: '001011234561010' + HPLMN: 20896 + UE_NFAPI_IF_NAME: eno1 + ENB_IP_ADDRESS: 127.0.0.1 + LTE_UE_IP_ADDRESS: 127.0.0.1 + USE_ADDITIONAL_OPTIONS: --L2-emul 5 --nokrnmod 1 --num-ues 1 --node-number 3 --log_config.global_log_options level,nocolor,time + volumes: + - ../../../openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results:/opt/oai-nr-ue/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results + healthcheck: + test: /bin/bash -c "pgrep lte-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + +networks: + private_net: + name: l2sim4g-oai-private-net + ipam: + config: + - subnet: 192.168.68.0/26 + driver_opts: + com.docker.network.bridge.name: "l2sim4g-private" + public_net: + name: l2sim4g-oai-public-net + ipam: + config: + - subnet: 192.168.61.0/26 + driver_opts: + com.docker.network.bridge.name: "l2sim4g-public" diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh b/ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh new file mode 100755 index 0000000000..24960e215d --- /dev/null +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +INSTANCE=1 +PREFIX='/magma-mme/etc' +MY_REALM='openairinterface.org' + +declare -A MME_CONF + +pushd $PREFIX +MME_CONF[@MME_S6A_IP_ADDR@]="192.168.61.3" +MME_CONF[@INSTANCE@]=$INSTANCE +MME_CONF[@PREFIX@]=$PREFIX +MME_CONF[@REALM@]=$MY_REALM +MME_CONF[@MME_FQDN@]="mme.${MME_CONF[@REALM@]}" +MME_CONF[@HSS_HOSTNAME@]='hss' +MME_CONF[@HSS_FQDN@]="${MME_CONF[@HSS_HOSTNAME@]}.${MME_CONF[@REALM@]}" +MME_CONF[@HSS_IP_ADDR@]="192.168.61.2" + +cp mme_fd.conf.tmplt $PREFIX/mme_fd.conf + +for K in "${!MME_CONF[@]}"; do + egrep -lRZ "$K" $PREFIX/mme_fd.conf | xargs -0 -l sed -i -e "s|$K|${MME_CONF[$K]}|g" + ret=$?;[[ ret -ne 0 ]] && echo "Could not replace $K with ${MME_CONF[$K]}" +done + +sed -i -e "s@etc/freeDiameter@etc@" /magma-mme/etc/mme_fd.conf +sed -i -e "s@bind: 127.0.0.1@bind: 192.168.61.6@" /etc/magma/redis.yml +# Generate freeDiameter certificate +popd +cd /magma-mme/scripts +./check_mme_s6a_certificate $PREFIX mme.${MME_CONF[@REALM@]} + +cd /magma-mme +nohup /magma-mme/bin/sctpd > /var/log/sctpd.log 2>&1 & +sleep 5 +/magma-mme/bin/oai_mme -c /magma-mme/etc/mme.conf diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf b/ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf new file mode 100644 index 0000000000..4f491cc63d --- /dev/null +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf @@ -0,0 +1,134 @@ +# generated by generate_mme_config_script.py +MME : +{ + REALM = "openairinterface.org" + PID_DIRECTORY = "/var/run"; + MAXENB = 8; # power of 2 + MAXUE = 16; # power of 2 + RELATIVE_CAPACITY = 10; + + EMERGENCY_ATTACH_SUPPORTED = "no"; + UNAUTHENTICATED_IMSI_SUPPORTED = "no"; + + # EPS network feature support + EPS_NETWORK_FEATURE_SUPPORT_IMS_VOICE_OVER_PS_SESSION_IN_S1 = "no"; # DO NOT CHANGE + EPS_NETWORK_FEATURE_SUPPORT_EMERGENCY_BEARER_SERVICES_IN_S1_MODE = "no"; # DO NOT CHANGE + EPS_NETWORK_FEATURE_SUPPORT_LOCATION_SERVICES_VIA_EPC = "no"; # DO NOT CHANGE + EPS_NETWORK_FEATURE_SUPPORT_EXTENDED_SERVICE_REQUEST = "no"; # DO NOT CHANGE + + # Display statistics about whole system (expressed in seconds) + MME_STATISTIC_TIMER = 10; + IP_CAPABILITY = "IPV4"; # UE PDN_TYPE + USE_STATELESS = ""; + + INTERTASK_INTERFACE : + { + # max queue size per task + ITTI_QUEUE_SIZE = 2000000; + }; + + S6A : + { + S6A_CONF = "/magma-mme/etc/mme_fd.conf"; # YOUR MME freeDiameter config file path + HSS_HOSTNAME = "hss.openairinterface.org"; + HSS_REALM = "openairinterface.org"; + }; + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 8; + SCTP_OUTSTREAMS = 8; + }; + + # ------- S1AP definitions + S1AP : + { + # outcome drop timer value (seconds) + S1AP_OUTCOME_TIMER = 10; + }; + + # ------- MME served GUMMEIs + GUMMEI_LIST = ( + { MCC="208" ; MNC="96"; MME_GID="32768" ; MME_CODE="3"; } + ); + + # ------- MME served TAIs + TAI_LIST = ( + {MCC="208" ; MNC="96"; TAC = "1"; } + ); + + TAC_LIST = ( + {MCC="208" ; MNC="96"; TAC = "1"; } + ); + + CSFB : + { + NON_EPS_SERVICE_CONTROL = "OFF"; + CSFB_MCC = "208"; + CSFB_MNC = "96"; + LAC = "1"; + }; + NAS : + { + ORDERED_SUPPORTED_INTEGRITY_ALGORITHM_LIST = [ "EIA2" , "EIA1" , "EIA0" ]; + ORDERED_SUPPORTED_CIPHERING_ALGORITHM_LIST = [ "EEA0" , "EEA1" , "EEA2" ]; + T3402 = 1 # in minutes (default is 12 minutes) + T3412 = 54 # in minutes (default is 54 minutes, network dependent) + T3422 = 6 # in seconds (default is 6s) + T3450 = 6 # in seconds (default is 6s) + T3460 = 6 # in seconds (default is 6s) + T3470 = 6 # in seconds (default is 6s) + T3485 = 8 # UNUSED in seconds (default is 8s) + T3486 = 8 # UNUSED in seconds (default is 8s) + T3489 = 4 # UNUSED in seconds (default is 4s) + T3495 = 8 # UNUSED in seconds (default is 8s) + }; + + SGS : + { + TS6_1 = 10 # in seconds (default is 10s) + TS8 = 4 # in seconds (default is 4s) + TS9 = 2 # in seconds (default is 4s) + TS10 = 4 # in seconds (default is 4s) + TS13 = 4 # in seconds (default is 4s) + }; + + NETWORK_INTERFACES : + { + MME_INTERFACE_NAME_FOR_S1_MME = "eth0"; + MME_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.3/24"; + MME_INTERFACE_NAME_FOR_S11_MME = "eth0"; + MME_IPV4_ADDRESS_FOR_S11_MME = "192.168.61.3/24"; + MME_PORT_FOR_S11_MME = 2123; + }; + + LOGGING : + { + OUTPUT = "CONSOLE"; + THREAD_SAFE = "no"; + COLOR = "no"; + + SCTP_LOG_LEVEL = "ERROR"; + GTPV1U_LOG_LEVEL = "INFO"; + SPGW_APP_LOG_LEVEL = "INFO"; + UDP_LOG_LEVEL = "INFO"; + S1AP_LOG_LEVEL = "DEBUG"; + NAS_LOG_LEVEL = "INFO"; + MME_APP_LOG_LEVEL = "DEBUG"; + GTPV2C_LOG_LEVEL = "INFO"; + S11_LOG_LEVEL = "DEBUG"; + S6A_LOG_LEVEL = "DEBUG"; + UTIL_LOG_LEVEL = "INFO"; + MSC_LOG_LEVEL = "ERROR"; + ITTI_LOG_LEVEL = "ERROR"; + MME_SCENARIO_PLAYER_LOG_LEVEL = "ERROR"; + ASN1_VERBOSITY = "INFO"; + }; + + S-GW : + { + SGW_IPV4_ADDRESS_FOR_S11 = "192.168.61.4"; + }; +}; diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf b/ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf new file mode 100644 index 0000000000..6f87ed8c2b --- /dev/null +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf @@ -0,0 +1,169 @@ +# -------- Local --------- + +# Uncomment if the framework cannot resolv it. +Identity = "@MME_FQDN@"; +Realm = "@REALM@"; + +# TLS configuration (see previous section) +TLS_Cred = "@PREFIX@/freeDiameter/mme.cert.pem", + "@PREFIX@/freeDiameter/mme.key.pem"; +TLS_CA = "@PREFIX@/freeDiameter/mme.cacert.pem"; + +# Disable use of TCP protocol (only listen and connect in SCTP) +# Default : TCP enabled +No_SCTP; + +# This option is ignored if freeDiameter is compiled with DISABLE_SCTP option. +# Prefer TCP instead of SCTP for establishing new connections. +# This setting may be overwritten per peer in peer configuration blocs. +# Default : SCTP is attempted first. +Prefer_TCP; + + +No_IPv6; + +# Overwrite the number of SCTP streams. This value should be kept low, +# especially if you are using TLS over SCTP, because it consumes a lot of +# resources in that case. See tickets 19 and 27 for some additional details on +# this. +# Limit the number of SCTP streams +SCTP_streams = 3; + + +# By default, freeDiameter acts as a Diameter Relay Agent by forwarding all +# messages it cannot handle locally. This parameter disables this behavior. +NoRelay; + +# Use RFC3588 method for TLS protection, where TLS is negociated after CER/CEA exchange is completed +# on the unsecure connection. The alternative is RFC6733 mechanism, where TLS protects also the +# CER/CEA exchange on a dedicated secure port. +# This parameter only affects outgoing connections. +# The setting can be also defined per-peer (see Peers configuration section). +# Default: use RFC6733 method with separate port for TLS. + +#TLS_old_method; + +AppServThreads = 4; + +# Specify the addresses on which to bind the listening server. This must be +# specified if the framework is unable to auto-detect these addresses, or if the +# auto-detected values are incorrect. Note that the list of addresses is sent +# in CER or CEA message, so one should pay attention to this parameter if some +# adresses should be kept hidden. +ListenOn = "@MME_S6A_IP_ADDR@"; + +Port = 3870; +SecPort = 5870; + +# -------- Extensions --------- + +# Uncomment (and create rtd.conf) to specify routing table for this peer. +#LoadExtension = "/usr/local/lib/freeDiameter/rt_default.fdx" : "rtd.conf"; + +#LoadExtension = "/usr/local/lib/freeDiameter/_sample.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/app_acct.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/app_diameap.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/app_radgw.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/app_redirect.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/app_sip.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dbg_interactive.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dbg_monitor.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dbg_msg_dumps.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dbg_msg_timings.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dbg_rt.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_CreditControl.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_CxDx.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Gx.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_NAS.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Ro.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rx.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_S6mS6n.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_SGd.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_SLh.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sd.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sh.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_T4.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_T6aT6bT7.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Tsp.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca_3gpp.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca_starent.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_eap.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_legacy_xml.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_mip6a.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_mip6i.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_nas_mipv6.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_nasreq.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_sip.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_busypeers.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_default.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_ereg.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_ignore_dh.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_load_balance.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_randomize.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/rt_redirect.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/test_acct.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/test_app.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/test_hss.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/test_netemul.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/test_rt_any.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/test_sip.fdx"; +#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rf.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx"; +LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx"; + + +# -------- Peers --------- + +# The framework will actively attempt to establish and maintain a connection +# with the peers listed here. +# For only accepting incoming connections, see the acl_wl.fx extension. + +# ConnectPeer +# Declare a remote peer to which this peer must maintain a connection. +# In addition, this allows specifying non-default parameters for this peer only +# (for example disable SCTP with this peer, or use RFC3588-flavour TLS). +# Note that by default, if a peer is not listed as a ConnectPeer entry, an +# incoming connection from this peer will be rejected. If you want to accept +# incoming connections from other peers, see the acl_wl.fdx? extension which +# allows exactly this. + +ConnectPeer= "@HSS_FQDN@" { ConnectTo = "@HSS_IP_ADDR@"; No_SCTP ; No_IPv6; Prefer_TCP; No_TLS; port = 3868;}; diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql b/ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql new file mode 100644 index 0000000000..2be0a8e2e9 --- /dev/null +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql @@ -0,0 +1,93 @@ +CREATE KEYSPACE IF NOT EXISTS vhss WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1'}; + +CREATE TABLE IF NOT EXISTS vhss.users_imsi ( + imsi text PRIMARY KEY, + access_restriction int, + idmmeidentity int, + imei text, + imei_sv text, + key text, + lipa_permissions text, + mme_cap int, + mmehost text, + mmeidentity_idmmeidentity int, + mmerealm text, + ms_ps_status text, + msisdn bigint, + niddvalidity text, + nir_dest_host text, + nir_dest_realm text, + opc text, + pgw_id int, + rand text, + rfsp_index varint, + sqn bigint, + subscription_data text, + ue_reachability varint, + urrp_mme varint, + user_identifier text, + visited_plmnid text); + +CREATE TABLE IF NOT EXISTS vhss.msisdn_imsi ( + msisdn bigint PRIMARY KEY, + imsi text +); + +CREATE TABLE IF NOT EXISTS vhss.global_ids ( + table_name text PRIMARY KEY, + id counter); + +CREATE TABLE IF NOT EXISTS vhss.mmeidentity_host ( + mmehost text PRIMARY KEY, + idmmeidentity int, + mmerealm text, + ue_reachability varint, + mmeisdn text); + +CREATE TABLE IF NOT EXISTS vhss.mmeidentity ( + idmmeidentity int PRIMARY KEY, + mmehost text, + mmerealm text, + ue_reachability varint, + mmeisdn text); + +CREATE TABLE IF NOT EXISTS vhss.events ( + scef_id text, + scef_ref_id bigint, + extid text, + monitoring_event_configuration text, + monitoring_type int, + msisdn bigint, + user_identifier text, + primary key (scef_id, scef_ref_id) +); + +CREATE TABLE IF NOT EXISTS vhss.events_msisdn ( + msisdn bigint, + scef_id text, + scef_ref_id bigint, + primary key (msisdn, scef_id, scef_ref_id) +); + +CREATE TABLE IF NOT EXISTS vhss.events_extid ( + extid text, + scef_id text, + scef_ref_id bigint, + primary key (extid, scef_id, scef_ref_id) +); + +CREATE TABLE IF NOT EXISTS vhss.extid ( + extid text primary key +); + +CREATE TABLE IF NOT EXISTS vhss.extid_imsi ( + extid text, + imsi text, + primary key (extid, imsi) +); + +CREATE TABLE IF NOT EXISTS vhss.extid_imsi_xref ( + imsi text, + extid text, + primary key (imsi, extid) +); diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf b/ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf new file mode 100644 index 0000000000..1ee9dd9a78 --- /dev/null +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf @@ -0,0 +1,33 @@ +# +# Copyright (c) 2016-present, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + +# Jinja template for Redis configuration +# See the default config file for options and explanations: +# https://github.com/antirez/redis/blob/unstable/redis.conf + +# TODO: make sensible, production-aware config decisions + +bind 192.168.61.6 +port 6380 + +daemonize no +loglevel notice + +timeout 0 +databases 1 + +dbfilename redis_dump.rdb +dir /data + +# Save the DB on disk + +save 900 1 + +save 300 10 + +save 60 1000 From 71c13d85fccbfecc8008d331741e7efc333a9e9e Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 4 Aug 2022 16:01:12 +0200 Subject: [PATCH 4/9] Add 4G L2sim XML scenario files --- .../xml_files/container_4g_l2sim_proxy.xml | 42 +++++++ .../xml_files/container_4g_l2sim_tdd.xml | 115 ++++++++++++++++++ .../xml_files/container_4g_l2sim_tdd_down.xml | 38 ++++++ 3 files changed, 195 insertions(+) create mode 100644 ci-scripts/xml_files/container_4g_l2sim_proxy.xml create mode 100644 ci-scripts/xml_files/container_4g_l2sim_tdd.xml create mode 100644 ci-scripts/xml_files/container_4g_l2sim_tdd_down.xml diff --git a/ci-scripts/xml_files/container_4g_l2sim_proxy.xml b/ci-scripts/xml_files/container_4g_l2sim_proxy.xml new file mode 100644 index 0000000000..c378ce8905 --- /dev/null +++ b/ci-scripts/xml_files/container_4g_l2sim_proxy.xml @@ -0,0 +1,42 @@ + + + l2sim-4glte-proxy-build + Build L2sim proxy image + wrench + 1 + + 000001 + + + + + Build_Proxy + Build L2sim Proxy Image + 1 + 1 + True + 56cfdc0 + + + diff --git a/ci-scripts/xml_files/container_4g_l2sim_tdd.xml b/ci-scripts/xml_files/container_4g_l2sim_tdd.xml new file mode 100644 index 0000000000..f6dd08f325 --- /dev/null +++ b/ci-scripts/xml_files/container_4g_l2sim_tdd.xml @@ -0,0 +1,115 @@ + + + l2sim-4glte-tdd + Testing 4G LTE L2 sim - FDD eNB + wrench + 2 + + 100001 + 000000 + 000001 + 000002 + 000003 + 000011 + 200000 + 020001 + 020002 + 200001 + 100001 + + + + + DeployGenObject + Deploy Cassandra Database + yaml_files/4g_l2sim_fdd + cassandra db_init + 1 + + + + DeployGenObject + Deploy OAI 4G CoreNetwork + yaml_files/4g_l2sim_fdd + oai_hss redis magma_mme oai_spgwc oai_spgwu trf_gen + 7 + + + + DeployGenObject + Deploy OAI 4G eNB L2 sim + yaml_files/4g_l2sim_fdd + oai_enb + 8 + + + + DeployGenObject + Deploy OAI L2 sim 4G LTE-UE 1 and Proxy + yaml_files/4g_l2sim_fdd + proxy oai_ue1 + 10 + + + + IdleSleep + Sleep + 10 + + + + PingFromContainer + Ping trf-gen from LTE-UE 1 + l2sim4g-oai-lte-ue1 + -I oaitun_ue1 -c 20 192.168.61.11 + 0 + + + + PingFromContainer + Ping LTE-UE 1 from trf-gen + l2sim4g-trf-gen + -c 20 12.0.0.2 + 0 + + + + UndeployGenObject + Undeploy all OAI 4G stack + yaml_files/4g_l2sim_fdd + + + + StatsFromGenObject + Statistics before Traffic Test + yaml_files/4g_l2sim_fdd + + + + StatsFromGenObject + Statistics after Traffic Test + yaml_files/4g_l2sim_fdd + + + diff --git a/ci-scripts/xml_files/container_4g_l2sim_tdd_down.xml b/ci-scripts/xml_files/container_4g_l2sim_tdd_down.xml new file mode 100644 index 0000000000..ec0f2523e2 --- /dev/null +++ b/ci-scripts/xml_files/container_4g_l2sim_tdd_down.xml @@ -0,0 +1,38 @@ + + + l2sim-4glte-down + CleanUp 4G L2 sim - FDD eNB + trash + + 100002 + + + + + UndeployGenObject + Undeploy all OAI 4G stack + yaml_files/4g_l2sim_fdd + + + From 793c8de2ae218ab6ec2e500286d6e0747fec9cb5 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 9 Aug 2022 12:01:51 +0200 Subject: [PATCH 5/9] CI: Add L2sim-4G iperf DL&UL test --- .../xml_files/container_4g_l2sim_tdd.xml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ci-scripts/xml_files/container_4g_l2sim_tdd.xml b/ci-scripts/xml_files/container_4g_l2sim_tdd.xml index f6dd08f325..5298d01ef3 100644 --- a/ci-scripts/xml_files/container_4g_l2sim_tdd.xml +++ b/ci-scripts/xml_files/container_4g_l2sim_tdd.xml @@ -35,6 +35,8 @@ 200000 020001 020002 + 030011 + 030012 200001 100001 @@ -94,6 +96,24 @@ 0 + + IperfFromContainer + Iperf UDP Downlink + l2sim4g-oai-lte-ue1 + l2sim4g-trf-gen + -B 12.0.0.2 -u -i 1 -s + -c 12.0.0.2 -u -i 1 -t 30 -b 1M + + + + IperfFromContainer + Iperf UDP Uplink + l2sim4g-trf-gen + l2sim4g-oai-lte-ue1 + -u -i 1 -s + -B 12.0.0.2 -c 192.168.61.11 -u -i 1 -t 30 -b 3M + + UndeployGenObject Undeploy all OAI 4G stack From 70bb1a385877bcf8ea7520062f26330c757a4ef4 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 16 Aug 2022 09:59:36 +0200 Subject: [PATCH 6/9] Add L2sim-4G to RAN-Container-Parent and documentation --- ci-scripts/Jenkinsfile-GitLab-Container | 20 ++++++++++++++++++++ doc/TESTBenches.md | 3 +++ 2 files changed, 23 insertions(+) diff --git a/ci-scripts/Jenkinsfile-GitLab-Container b/ci-scripts/Jenkinsfile-GitLab-Container index b37c9d4f4b..7c872e7b22 100644 --- a/ci-scripts/Jenkinsfile-GitLab-Container +++ b/ci-scripts/Jenkinsfile-GitLab-Container @@ -238,6 +238,26 @@ pipeline { } } } + stage ("4G L2 Simulators") { + when { expression {doMandatoryTests} } + steps { + script { + triggerSlaveJob ('RAN-L2-Sim-Test-4G', 'Test-L2-Sim-Container-4G') + } + } + post { + always { + script { + finalizeSlaveJob('RAN-L2-Sim-Test-4G') + } + } + failure { + script { + currentBuild.result = 'FAILURE' + } + } + } + } stage ("5G L2 Simulators") { when { expression {doMandatoryTests} } steps { diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md index c6a01f278d..c9a9870953 100644 --- a/doc/TESTBenches.md +++ b/doc/TESTBenches.md @@ -83,6 +83,9 @@ Webhook - caracal + N310 - pure performance test through phy-test scheduler, see command line for more details +- [RAN-L2-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-L2-Sim-Test-4G/) + - obelix (eNB, 1x UE, OAI EPC) + - L2simulator: skips physical layer and uses proxy between eNB and UE - [RAN-L2-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-L2-Sim-Test-5G/) - obelix (gNB, 1x UE, OAI 5GC) - L2simulator: skips physical layer and uses proxy between gNB and UE, From ab5a67463a69602ac80e1fc9f7e387cd2eee4005 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Aug 2022 17:35:44 +0200 Subject: [PATCH 7/9] Reuse existing files from 4g_rfsimulator_fdd_05MHz --- .../4g_l2sim_fdd/docker-compose.yml | 10 +- .../yaml_files/4g_l2sim_fdd/entrypoint.sh | 36 ---- ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf | 134 -------------- .../4g_l2sim_fdd/mme_fd.sprint.conf | 169 ------------------ ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql | 93 ---------- .../yaml_files/4g_l2sim_fdd/redis_extern.conf | 33 ---- 6 files changed, 5 insertions(+), 470 deletions(-) delete mode 100755 ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh delete mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf delete mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf delete mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql delete mode 100644 ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml b/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml index 03cb45310d..0562adab4b 100644 --- a/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml +++ b/ci-scripts/yaml_files/4g_l2sim_fdd/docker-compose.yml @@ -28,7 +28,7 @@ services: private_net: ipv4_address: 192.168.68.4 volumes: - - ./oai_db.cql:/home/oai_db.cql + - ../4g_rfsimulator_fdd_05MHz/oai_db.cql:/home/oai_db.cql entrypoint: /bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'" oai_hss: @@ -66,7 +66,7 @@ services: public_net: ipv4_address: 192.168.61.6 volumes: - - ./redis_extern.conf:/usr/local/etc/redis/redis.conf + - ../4g_rfsimulator_fdd_05MHz/redis_extern.conf:/usr/local/etc/redis/redis.conf entrypoint: /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf" healthcheck: test: /bin/bash -c "redis-cli -h 192.168.61.6 -p 6380 ping" @@ -93,9 +93,9 @@ services: MME_FQDN: mme.openairinterface.org FEATURES: mme_oai volumes: - - ./mme_fd.sprint.conf:/magma-mme/etc/mme_fd.conf.tmplt - - ./mme.conf:/magma-mme/etc/mme.conf - - ./entrypoint.sh:/magma-mme/bin/entrypoint.sh + - ../4g_rfsimulator_fdd_05MHz/mme_fd.sprint.conf:/magma-mme/etc/mme_fd.conf.tmplt + - ../4g_rfsimulator_fdd_05MHz/mme.conf:/magma-mme/etc/mme.conf + - ../4g_rfsimulator_fdd_05MHz/entrypoint.sh:/magma-mme/bin/entrypoint.sh entrypoint: /bin/bash -c "/magma-mme/bin/entrypoint.sh" healthcheck: test: /bin/bash -c "pgrep oai_mme" diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh b/ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh deleted file mode 100755 index 24960e215d..0000000000 --- a/ci-scripts/yaml_files/4g_l2sim_fdd/entrypoint.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -INSTANCE=1 -PREFIX='/magma-mme/etc' -MY_REALM='openairinterface.org' - -declare -A MME_CONF - -pushd $PREFIX -MME_CONF[@MME_S6A_IP_ADDR@]="192.168.61.3" -MME_CONF[@INSTANCE@]=$INSTANCE -MME_CONF[@PREFIX@]=$PREFIX -MME_CONF[@REALM@]=$MY_REALM -MME_CONF[@MME_FQDN@]="mme.${MME_CONF[@REALM@]}" -MME_CONF[@HSS_HOSTNAME@]='hss' -MME_CONF[@HSS_FQDN@]="${MME_CONF[@HSS_HOSTNAME@]}.${MME_CONF[@REALM@]}" -MME_CONF[@HSS_IP_ADDR@]="192.168.61.2" - -cp mme_fd.conf.tmplt $PREFIX/mme_fd.conf - -for K in "${!MME_CONF[@]}"; do - egrep -lRZ "$K" $PREFIX/mme_fd.conf | xargs -0 -l sed -i -e "s|$K|${MME_CONF[$K]}|g" - ret=$?;[[ ret -ne 0 ]] && echo "Could not replace $K with ${MME_CONF[$K]}" -done - -sed -i -e "s@etc/freeDiameter@etc@" /magma-mme/etc/mme_fd.conf -sed -i -e "s@bind: 127.0.0.1@bind: 192.168.61.6@" /etc/magma/redis.yml -# Generate freeDiameter certificate -popd -cd /magma-mme/scripts -./check_mme_s6a_certificate $PREFIX mme.${MME_CONF[@REALM@]} - -cd /magma-mme -nohup /magma-mme/bin/sctpd > /var/log/sctpd.log 2>&1 & -sleep 5 -/magma-mme/bin/oai_mme -c /magma-mme/etc/mme.conf diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf b/ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf deleted file mode 100644 index 4f491cc63d..0000000000 --- a/ci-scripts/yaml_files/4g_l2sim_fdd/mme.conf +++ /dev/null @@ -1,134 +0,0 @@ -# generated by generate_mme_config_script.py -MME : -{ - REALM = "openairinterface.org" - PID_DIRECTORY = "/var/run"; - MAXENB = 8; # power of 2 - MAXUE = 16; # power of 2 - RELATIVE_CAPACITY = 10; - - EMERGENCY_ATTACH_SUPPORTED = "no"; - UNAUTHENTICATED_IMSI_SUPPORTED = "no"; - - # EPS network feature support - EPS_NETWORK_FEATURE_SUPPORT_IMS_VOICE_OVER_PS_SESSION_IN_S1 = "no"; # DO NOT CHANGE - EPS_NETWORK_FEATURE_SUPPORT_EMERGENCY_BEARER_SERVICES_IN_S1_MODE = "no"; # DO NOT CHANGE - EPS_NETWORK_FEATURE_SUPPORT_LOCATION_SERVICES_VIA_EPC = "no"; # DO NOT CHANGE - EPS_NETWORK_FEATURE_SUPPORT_EXTENDED_SERVICE_REQUEST = "no"; # DO NOT CHANGE - - # Display statistics about whole system (expressed in seconds) - MME_STATISTIC_TIMER = 10; - IP_CAPABILITY = "IPV4"; # UE PDN_TYPE - USE_STATELESS = ""; - - INTERTASK_INTERFACE : - { - # max queue size per task - ITTI_QUEUE_SIZE = 2000000; - }; - - S6A : - { - S6A_CONF = "/magma-mme/etc/mme_fd.conf"; # YOUR MME freeDiameter config file path - HSS_HOSTNAME = "hss.openairinterface.org"; - HSS_REALM = "openairinterface.org"; - }; - - # ------- SCTP definitions - SCTP : - { - # Number of streams to use in input/output - SCTP_INSTREAMS = 8; - SCTP_OUTSTREAMS = 8; - }; - - # ------- S1AP definitions - S1AP : - { - # outcome drop timer value (seconds) - S1AP_OUTCOME_TIMER = 10; - }; - - # ------- MME served GUMMEIs - GUMMEI_LIST = ( - { MCC="208" ; MNC="96"; MME_GID="32768" ; MME_CODE="3"; } - ); - - # ------- MME served TAIs - TAI_LIST = ( - {MCC="208" ; MNC="96"; TAC = "1"; } - ); - - TAC_LIST = ( - {MCC="208" ; MNC="96"; TAC = "1"; } - ); - - CSFB : - { - NON_EPS_SERVICE_CONTROL = "OFF"; - CSFB_MCC = "208"; - CSFB_MNC = "96"; - LAC = "1"; - }; - NAS : - { - ORDERED_SUPPORTED_INTEGRITY_ALGORITHM_LIST = [ "EIA2" , "EIA1" , "EIA0" ]; - ORDERED_SUPPORTED_CIPHERING_ALGORITHM_LIST = [ "EEA0" , "EEA1" , "EEA2" ]; - T3402 = 1 # in minutes (default is 12 minutes) - T3412 = 54 # in minutes (default is 54 minutes, network dependent) - T3422 = 6 # in seconds (default is 6s) - T3450 = 6 # in seconds (default is 6s) - T3460 = 6 # in seconds (default is 6s) - T3470 = 6 # in seconds (default is 6s) - T3485 = 8 # UNUSED in seconds (default is 8s) - T3486 = 8 # UNUSED in seconds (default is 8s) - T3489 = 4 # UNUSED in seconds (default is 4s) - T3495 = 8 # UNUSED in seconds (default is 8s) - }; - - SGS : - { - TS6_1 = 10 # in seconds (default is 10s) - TS8 = 4 # in seconds (default is 4s) - TS9 = 2 # in seconds (default is 4s) - TS10 = 4 # in seconds (default is 4s) - TS13 = 4 # in seconds (default is 4s) - }; - - NETWORK_INTERFACES : - { - MME_INTERFACE_NAME_FOR_S1_MME = "eth0"; - MME_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.3/24"; - MME_INTERFACE_NAME_FOR_S11_MME = "eth0"; - MME_IPV4_ADDRESS_FOR_S11_MME = "192.168.61.3/24"; - MME_PORT_FOR_S11_MME = 2123; - }; - - LOGGING : - { - OUTPUT = "CONSOLE"; - THREAD_SAFE = "no"; - COLOR = "no"; - - SCTP_LOG_LEVEL = "ERROR"; - GTPV1U_LOG_LEVEL = "INFO"; - SPGW_APP_LOG_LEVEL = "INFO"; - UDP_LOG_LEVEL = "INFO"; - S1AP_LOG_LEVEL = "DEBUG"; - NAS_LOG_LEVEL = "INFO"; - MME_APP_LOG_LEVEL = "DEBUG"; - GTPV2C_LOG_LEVEL = "INFO"; - S11_LOG_LEVEL = "DEBUG"; - S6A_LOG_LEVEL = "DEBUG"; - UTIL_LOG_LEVEL = "INFO"; - MSC_LOG_LEVEL = "ERROR"; - ITTI_LOG_LEVEL = "ERROR"; - MME_SCENARIO_PLAYER_LOG_LEVEL = "ERROR"; - ASN1_VERBOSITY = "INFO"; - }; - - S-GW : - { - SGW_IPV4_ADDRESS_FOR_S11 = "192.168.61.4"; - }; -}; diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf b/ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf deleted file mode 100644 index 6f87ed8c2b..0000000000 --- a/ci-scripts/yaml_files/4g_l2sim_fdd/mme_fd.sprint.conf +++ /dev/null @@ -1,169 +0,0 @@ -# -------- Local --------- - -# Uncomment if the framework cannot resolv it. -Identity = "@MME_FQDN@"; -Realm = "@REALM@"; - -# TLS configuration (see previous section) -TLS_Cred = "@PREFIX@/freeDiameter/mme.cert.pem", - "@PREFIX@/freeDiameter/mme.key.pem"; -TLS_CA = "@PREFIX@/freeDiameter/mme.cacert.pem"; - -# Disable use of TCP protocol (only listen and connect in SCTP) -# Default : TCP enabled -No_SCTP; - -# This option is ignored if freeDiameter is compiled with DISABLE_SCTP option. -# Prefer TCP instead of SCTP for establishing new connections. -# This setting may be overwritten per peer in peer configuration blocs. -# Default : SCTP is attempted first. -Prefer_TCP; - - -No_IPv6; - -# Overwrite the number of SCTP streams. This value should be kept low, -# especially if you are using TLS over SCTP, because it consumes a lot of -# resources in that case. See tickets 19 and 27 for some additional details on -# this. -# Limit the number of SCTP streams -SCTP_streams = 3; - - -# By default, freeDiameter acts as a Diameter Relay Agent by forwarding all -# messages it cannot handle locally. This parameter disables this behavior. -NoRelay; - -# Use RFC3588 method for TLS protection, where TLS is negociated after CER/CEA exchange is completed -# on the unsecure connection. The alternative is RFC6733 mechanism, where TLS protects also the -# CER/CEA exchange on a dedicated secure port. -# This parameter only affects outgoing connections. -# The setting can be also defined per-peer (see Peers configuration section). -# Default: use RFC6733 method with separate port for TLS. - -#TLS_old_method; - -AppServThreads = 4; - -# Specify the addresses on which to bind the listening server. This must be -# specified if the framework is unable to auto-detect these addresses, or if the -# auto-detected values are incorrect. Note that the list of addresses is sent -# in CER or CEA message, so one should pay attention to this parameter if some -# adresses should be kept hidden. -ListenOn = "@MME_S6A_IP_ADDR@"; - -Port = 3870; -SecPort = 5870; - -# -------- Extensions --------- - -# Uncomment (and create rtd.conf) to specify routing table for this peer. -#LoadExtension = "/usr/local/lib/freeDiameter/rt_default.fdx" : "rtd.conf"; - -#LoadExtension = "/usr/local/lib/freeDiameter/_sample.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/app_acct.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/app_diameap.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/app_radgw.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/app_redirect.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/app_sip.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dbg_interactive.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dbg_monitor.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dbg_msg_dumps.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dbg_msg_timings.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dbg_rt.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_CreditControl.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_CxDx.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Gx.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_NAS.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Ro.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rx.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_S6mS6n.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_SGd.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_SLh.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sd.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sh.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_T4.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_T6aT6bT7.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Tsp.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca_3gpp.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca_starent.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_eap.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_legacy_xml.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_mip6a.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_mip6i.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_nas_mipv6.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_nasreq.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_sip.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_busypeers.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_default.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_ereg.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_ignore_dh.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_load_balance.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_randomize.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/rt_redirect.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/test_acct.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/test_app.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/test_hss.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/test_netemul.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/test_rt_any.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/test_sip.fdx"; -#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rf.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx"; -LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx"; - - -# -------- Peers --------- - -# The framework will actively attempt to establish and maintain a connection -# with the peers listed here. -# For only accepting incoming connections, see the acl_wl.fx extension. - -# ConnectPeer -# Declare a remote peer to which this peer must maintain a connection. -# In addition, this allows specifying non-default parameters for this peer only -# (for example disable SCTP with this peer, or use RFC3588-flavour TLS). -# Note that by default, if a peer is not listed as a ConnectPeer entry, an -# incoming connection from this peer will be rejected. If you want to accept -# incoming connections from other peers, see the acl_wl.fdx? extension which -# allows exactly this. - -ConnectPeer= "@HSS_FQDN@" { ConnectTo = "@HSS_IP_ADDR@"; No_SCTP ; No_IPv6; Prefer_TCP; No_TLS; port = 3868;}; diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql b/ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql deleted file mode 100644 index 2be0a8e2e9..0000000000 --- a/ci-scripts/yaml_files/4g_l2sim_fdd/oai_db.cql +++ /dev/null @@ -1,93 +0,0 @@ -CREATE KEYSPACE IF NOT EXISTS vhss WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1'}; - -CREATE TABLE IF NOT EXISTS vhss.users_imsi ( - imsi text PRIMARY KEY, - access_restriction int, - idmmeidentity int, - imei text, - imei_sv text, - key text, - lipa_permissions text, - mme_cap int, - mmehost text, - mmeidentity_idmmeidentity int, - mmerealm text, - ms_ps_status text, - msisdn bigint, - niddvalidity text, - nir_dest_host text, - nir_dest_realm text, - opc text, - pgw_id int, - rand text, - rfsp_index varint, - sqn bigint, - subscription_data text, - ue_reachability varint, - urrp_mme varint, - user_identifier text, - visited_plmnid text); - -CREATE TABLE IF NOT EXISTS vhss.msisdn_imsi ( - msisdn bigint PRIMARY KEY, - imsi text -); - -CREATE TABLE IF NOT EXISTS vhss.global_ids ( - table_name text PRIMARY KEY, - id counter); - -CREATE TABLE IF NOT EXISTS vhss.mmeidentity_host ( - mmehost text PRIMARY KEY, - idmmeidentity int, - mmerealm text, - ue_reachability varint, - mmeisdn text); - -CREATE TABLE IF NOT EXISTS vhss.mmeidentity ( - idmmeidentity int PRIMARY KEY, - mmehost text, - mmerealm text, - ue_reachability varint, - mmeisdn text); - -CREATE TABLE IF NOT EXISTS vhss.events ( - scef_id text, - scef_ref_id bigint, - extid text, - monitoring_event_configuration text, - monitoring_type int, - msisdn bigint, - user_identifier text, - primary key (scef_id, scef_ref_id) -); - -CREATE TABLE IF NOT EXISTS vhss.events_msisdn ( - msisdn bigint, - scef_id text, - scef_ref_id bigint, - primary key (msisdn, scef_id, scef_ref_id) -); - -CREATE TABLE IF NOT EXISTS vhss.events_extid ( - extid text, - scef_id text, - scef_ref_id bigint, - primary key (extid, scef_id, scef_ref_id) -); - -CREATE TABLE IF NOT EXISTS vhss.extid ( - extid text primary key -); - -CREATE TABLE IF NOT EXISTS vhss.extid_imsi ( - extid text, - imsi text, - primary key (extid, imsi) -); - -CREATE TABLE IF NOT EXISTS vhss.extid_imsi_xref ( - imsi text, - extid text, - primary key (imsi, extid) -); diff --git a/ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf b/ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf deleted file mode 100644 index 1ee9dd9a78..0000000000 --- a/ci-scripts/yaml_files/4g_l2sim_fdd/redis_extern.conf +++ /dev/null @@ -1,33 +0,0 @@ -# -# Copyright (c) 2016-present, Facebook, Inc. -# All rights reserved. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. - -# Jinja template for Redis configuration -# See the default config file for options and explanations: -# https://github.com/antirez/redis/blob/unstable/redis.conf - -# TODO: make sensible, production-aware config decisions - -bind 192.168.61.6 -port 6380 - -daemonize no -loglevel notice - -timeout 0 -databases 1 - -dbfilename redis_dump.rdb -dir /data - -# Save the DB on disk - -save 900 1 - -save 300 10 - -save 60 1000 From c139204ce0f0da469c3e30a0009e40b1e7a68d71 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Aug 2022 17:42:45 +0200 Subject: [PATCH 8/9] Make one L2sim proxy build scenario file --- .../{container_5g_l2sim_proxy.xml => container_l2sim_proxy.xml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename ci-scripts/xml_files/{container_5g_l2sim_proxy.xml => container_l2sim_proxy.xml} (96%) diff --git a/ci-scripts/xml_files/container_5g_l2sim_proxy.xml b/ci-scripts/xml_files/container_l2sim_proxy.xml similarity index 96% rename from ci-scripts/xml_files/container_5g_l2sim_proxy.xml rename to ci-scripts/xml_files/container_l2sim_proxy.xml index af1715d793..f32658daca 100644 --- a/ci-scripts/xml_files/container_5g_l2sim_proxy.xml +++ b/ci-scripts/xml_files/container_l2sim_proxy.xml @@ -21,7 +21,7 @@ --> - l2sim-5gnr-proxy-build + l2sim-4glte-5gnr-proxy-build Build L2sim proxy image wrench 1 From a08d78d79daaf3846b6cb233e0fb4705f121cdd0 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Aug 2022 18:08:44 +0200 Subject: [PATCH 9/9] Correctly show proxy build info --- ci-scripts/cls_containerize.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index 8f992689e2..1d2de33d97 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -532,6 +532,25 @@ class Containerize(): # don't delete such that we might recover the zips #mySSH.command('rm -f build_log_' + self.testCase_id + '.zip','\$', 5) + # we do not analyze the logs (we assume the proxy builds fine at this stage), + # but need to have the following information to correctly display the HTML + files = {} + errorandwarnings = {} + errorandwarnings['errors'] = 0 + errorandwarnings['warnings'] = 0 + errorandwarnings['status'] = True + files['Target Image Creation'] = errorandwarnings + self.collectInfo['proxy'] = files + mySSH.command('docker image inspect --format=\'Size = {{.Size}} bytes\' proxy:' + tag, '\$', 5) + result = re.search('Size *= *(?P[0-9\-]+) *bytes', mySSH.getBefore()) + if result is not None: + imageSize = float(result.group('size')) / 1000000 + logging.debug('\u001B[1m proxy size is ' + ('%.0f' % imageSize) + ' Mbytes\u001B[0m') + self.allImagesSize['proxy'] = str(round(imageSize,1)) + ' Mbytes' + else: + logging.debug('proxy size is unknown') + self.allImagesSize['proxy'] = 'unknown' + # Cleaning any created tmp volume mySSH.command(self.cli + ' volume prune --force || true','\$', 15) mySSH.close()