docker.yaml ``` version: '3.8' services: cassandra: image: cassandra:2.1 container_name: demo-cassandra networks: private_net: ipv4_address: 192.168.68.130 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: demo-db-init depends_on: [cassandra] deploy: restart_policy: condition: on-failure max_attempts: 10 networks: private_net: ipv4_address: 192.168.68.132 volumes: - ../../component/oai-hss/src/hss_rel14/db/oai_db.cql:/home/oai_db.cql entrypoint: /bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.130 && echo 'OK'" oai_hss: image: oai-hss:production container_name: demo-oai-hss privileged: true depends_on: [cassandra] networks: private_net: ipv4_address: 192.168.68.131 public_net: ipv4_address: 192.168.61.130 environment: TZ: Europe/Paris REALM: openairinterface.org HSS_FQDN: hss.openairinterface.org PREFIX: /openair-hss/etc cassandra_Server_IP: 192.168.68.130 OP_KEY: 11111111111111111111111111111111 LTE_K: 3BA565A6CFEF4BCBC5D697C31B5ECDD1 APN1: oai.ipv4 APN2: oai2.ipv4 FIRST_IMSI: 230770000000001 NB_USERS: 1 healthcheck: test: /bin/bash -c "pgrep oai_hss" interval: 10s timeout: 5s retries: 5 redis: image: redis:6.0.5 container_name: demo-redis privileged: true networks: public_net: ipv4_address: 192.168.61.148 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.148 -p 6380 ping" interval: 10s timeout: 5s retries: 5 magma_mme: image: magma-mme:master container_name: demo-magma-mme hostname: mme privileged: true depends_on: [oai_hss, redis] networks: public_net: ipv4_address: 192.168.61.149 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 - ./mme-cfg.sh:/magma-mme/scripts/mme-cfg.sh entrypoint: /bin/bash -c "cd /magma-mme/scripts; ./mme-cfg.sh" healthcheck: test: /bin/bash -c "pgrep oai_mme" interval: 10s timeout: 5s retries: 5 oai_spgwc: image: oai-spgwc:production privileged: true depends_on: [magma_mme] container_name: demo-oai-spgwc networks: public_net: ipv4_address: 192.168.61.132 environment: TZ: Europe/Paris SGW_INTERFACE_NAME_FOR_S11: eth0 PGW_INTERFACE_NAME_FOR_SX: eth0 DEFAULT_DNS_IPV4_ADDRESS: 192.168.27.1 DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4 PUSH_PROTOCOL_OPTION: 'true' APN_NI_1: oai.ipv4 APN_NI_2: oai2.ipv4 DEFAULT_APN_NI_1: oai.ipv4 UE_IP_ADDRESS_POOL_1: '12.1.1.2 - 12.1.1.254' UE_IP_ADDRESS_POOL_2: '12.0.0.2 - 12.0.0.254' MCC: '230' MNC: '77' MNC03: '077' 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:production privileged: true container_name: demo-oai-spgwu-tiny depends_on: [oai_spgwc] networks: public_net: ipv4_address: 192.168.61.133 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.132 NETWORK_UE_IP: '12.1.1.0/24' NETWORK_UE_NAT_OPTION: 'yes' MCC: '230' MNC: '77' MNC03: '077' 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: demo-trf-gen networks: public_net: ipv4_address: 192.168.61.139 entrypoint: /bin/bash -c "ip route add 12.1.1.0/24 via 192.168.61.133 dev eth0; sleep infinity" healthcheck: test: /bin/bash -c "ping -c 2 192.168.61.133" interval: 10s timeout: 5s retries: 5 networks: private_net: name: demo-oai-private-net ipam: config: - subnet: 192.168.68.128/26 public_net: name: demo-oai-public-net ipam: config: - subnet: 192.168.61.128/26 ``` MME.conf ``` # 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="230" ; MNC="77"; MME_GID="32768" ; MME_CODE="3"; } ); # ------- MME served TAIs TAI_LIST = ( {MCC="230" ; MNC="77"; TAC = "1"; }, {MCC="230" ; MNC="77"; TAC = "2"; }, {MCC="230" ; MNC="77"; TAC = "3"; } ); TAC_LIST = ( {MCC="230" ; MNC="77"; TAC = "1"; } ); CSFB : { NON_EPS_SERVICE_CONTROL = "OFF"; CSFB_MCC = "230"; CSFB_MNC = "77"; 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.149/24"; MME_INTERFACE_NAME_FOR_S11_MME = "eth0"; MME_IPV4_ADDRESS_FOR_S11_MME = "192.168.61.149/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.132"; }; }; ```