Files
openairinterface5g/ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz

OAI Full Stack 4G-LTE RF simulation with containers

This page is only valid for an Ubuntu18 host.

TABLE OF CONTENTS

  1. Retrieving the images on Docker-Hub
  2. Deploy containers
    1. Deploy and Configure Cassandra Database
    2. Deploy OAI CN4G containers
    3. Deploy OAI eNB in RF simulator mode
    4. Deploy OAI LTE UE in RF simulator mode
  3. Check traffic
  4. Un-deployment
  5. Explanation on the configuration
    1. UE IMSI and Keys
    2. PLMN and TAI
    3. Access to Internet

1. Retrieving the images on Docker-Hub

Currently the images are hosted under the user account rdefosseoai.

This may change in the future.

Once again you may need to log on docker-hub if your organization has reached pulling limit as anonymous.

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:

Now pull images.

$ docker pull cassandra:2.1
$ docker pull rdefosseoai/oai-hss:latest
$ docker pull rdefosseoai/oai-mme:latest
$ docker pull rdefosseoai/oai-spgwc:latest
$ docker pull rdefosseoai/oai-spgwu-tiny:latest

$ docker pull rdefosseoai/oai-enb:develop
$ docker pull rdefosseoai/oai-lte-ue:develop

And re-tag them for tutorials' docker-compose file to work.

$ docker image tag rdefosseoai/oai-spgwc:latest oai-spgwc:latest
$ docker image tag rdefosseoai/oai-hss:latest oai-hss:latest
$ docker image tag rdefosseoai/oai-spgwu-tiny:latest oai-spgwu-tiny:latest 
$ docker image tag rdefosseoai/oai-mme:latest oai-mme:latest

$ docker image tag rdefosseoai/oai-enb:develop oai-enb:develop
$ docker image tag rdefosseoai/oai-lte-ue:develop oai-lte-ue:develop
$ docker logout

How to build the Traffic-Generator image is explained here.

2. Deploy containers

CAUTION: this SHALL be done in multiple steps.

Just docker-compose up -d WILL NOT WORK!

All the following commands SHALL be run from the ci-scripts/yaml_files/4g_rfsimulator folder.

2.1. Deploy and Configure Cassandra Database

It is very crutial that the Cassandra DB is fully configured before you do anything else!

$ cd ci-scripts/yaml_files/4g_rfsimulator
$ docker-compose up -d db_init
Creating network "rfsim4g-oai-private-net" with the default driver
Creating network "rfsim4g-oai-public-net" with the default driver
Creating rfsim4g-cassandra ... done
Creating rfsim4g-db-init   ... done

$ docker logs rfsim4g-db-init --follow
Connection error: ('Unable to connect to any servers', {'192.168.68.2': error(111, "Tried connecting to [('192.168.68.2', 9042)]. Last error: Connection refused")})
...
Connection error: ('Unable to connect to any servers', {'192.168.68.2': error(111, "Tried connecting to [('192.168.68.2', 9042)]. Last error: Connection refused")})
OK

You SHALL wait until you HAVE the OK message in the logs!

$ docker rm rfsim4g-db-init

At this point, you can prepare a capture on the newly-created public docker bridge:

$ ifconfig rfsim4g-public
        inet 192.168.61.1  netmask 255.255.255.192  broadcast 192.168.61.63
        ether 02:42:8f:dd:ba:5a  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
$ sudo tshark -i rfsim4g-public -f 'port 3868 or port 2123 or port 36412 or port 36422 or port 46520 or port 8805' -w /tmp/my-oai-control-plane.pcap

BE CAREFUL: please use that filter or you will also capture the data-plane with IQ samples between eNB and LTE-UE.

and your capture WILL become huge (10s of Gbytes).

2.2. Deploy OAI CN4G containers

$ docker-compose up -d oai_mme oai_spgwu trf_gen
rfsim4g-cassandra is up-to-date
Creating rfsim4g-trf-gen   ... done
Creating rfsim4g-oai-hss ... done
Creating rfsim4g-oai-mme ... done
Creating rfsim4g-oai-spgwc ... done
Creating rfsim4g-oai-spgwu-tiny ... done

You shall wait until all containers are healthy. About 10 seconds!

$ docker-compose ps -a
         Name                       Command                  State                            Ports                      
-------------------------------------------------------------------------------------------------------------------------
rfsim4g-cassandra        docker-entrypoint.sh cassa ...   Up (healthy)   7000/tcp, 7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp
rfsim4g-oai-hss          /openair-hss/bin/entrypoin ...   Up (healthy)   5868/tcp, 9042/tcp, 9080/tcp, 9081/tcp          
rfsim4g-oai-mme          /openair-mme/bin/entrypoin ...   Up (healthy)   2123/udp, 3870/tcp, 5870/tcp                    
rfsim4g-oai-spgwc        /openair-spgwc/bin/entrypo ...   Up (healthy)   2123/udp, 8805/udp                              
rfsim4g-oai-spgwu-tiny   /openair-spgwu-tiny/bin/en ...   Up (healthy)   2152/udp, 8805/udp                              
rfsim4g-trf-gen          /bin/bash -c ip route add  ...   Up (healthy)                                                   

2.3. Deploy OAI eNB in RF simulator mode

$ docker-compose up -d enb
Creating rfsim4g-oai-enb ... done

Again wait for the healthy state:

$ docker-compose ps -a
         Name                       Command                  State                            Ports                      
-------------------------------------------------------------------------------------------------------------------------
rfsim4g-cassandra        docker-entrypoint.sh cassa ...   Up (healthy)   7000/tcp, 7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp
rfsim4g-oai-enb          /opt/oai-enb/bin/entrypoin ...   Up (healthy)   2152/udp, 36412/udp, 36422/udp                  
rfsim4g-oai-hss          /openair-hss/bin/entrypoin ...   Up (healthy)   5868/tcp, 9042/tcp, 9080/tcp, 9081/tcp          
rfsim4g-oai-mme          /openair-mme/bin/entrypoin ...   Up (healthy)   2123/udp, 3870/tcp, 5870/tcp                    
rfsim4g-oai-spgwc        /openair-spgwc/bin/entrypo ...   Up (healthy)   2123/udp, 8805/udp                              
rfsim4g-oai-spgwu-tiny   /openair-spgwu-tiny/bin/en ...   Up (healthy)   2152/udp, 8805/udp                              
rfsim4g-trf-gen          /bin/bash -c ip route add  ...   Up (healthy)                                    

Check if the eNB connected to MME:

$ docker logs rfsim4g-oai-mme
...
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0039    ======================================= STATISTICS ============================================

DEBUG MME-AP src/mme_app/mme_app_statistics.c:0042                   |   Current Status| Added since last display|  Removed since last display |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0048    Connected eNBs |          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0054    Attached UEs   |          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0060    Connected UEs  |          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0066    Default Bearers|          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0072    S1-U Bearers   |          0      |              0              |             0               |

DEBUG MME-AP src/mme_app/mme_app_statistics.c:0075    ======================================= STATISTICS ============================================

DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0469    Client association changed: 0
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0101    ----------------------
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0102    SCTP Status:
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0103    assoc id .....: 675
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0104    state ........: 4
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0105    instrms ......: 2
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0106    outstrms .....: 2
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0108    fragmentation : 1452
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0109    pending data .: 0
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0110    unack data ...: 0
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0111    rwnd .........: 106496
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0112    peer info     :
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0114        state ....: 2
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0116        cwnd .....: 4380
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0118        srtt .....: 0
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0120        rto ......: 3000
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0122        mtu ......: 1500
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0123    ----------------------
DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0479    New connection
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0205    ----------------------
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0206    Local addresses:
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0217        - [192.168.61.3]
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0234    ----------------------
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0151    ----------------------
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0152    Peer addresses:
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0163        - [192.168.61.20]
DEBUG SCTP   enair-mme/src/sctp/sctp_common.c:0178    ----------------------
DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0554    SCTP RETURNING!!
DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0547    [675][44] Msg of length 51 received from port 36412, on stream 0, PPID 18
DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0554    SCTP RETURNING!!
DEBUG S1AP   mme/src/s1ap/s1ap_mme_handlers.c:2826    Create eNB context for assoc_id: 675
DEBUG S1AP   mme/src/s1ap/s1ap_mme_handlers.c:0361    S1-Setup-Request macroENB_ID.size 3 (should be 20)
DEBUG S1AP   mme/src/s1ap/s1ap_mme_handlers.c:0321    New s1 setup request incoming from macro eNB id: 00e01
DEBUG S1AP   mme/src/s1ap/s1ap_mme_handlers.c:0423    Adding eNB to the list of served eNBs
DEBUG S1AP   mme/src/s1ap/s1ap_mme_handlers.c:0438    Adding eNB id 3585 to the list of served eNBs
DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0283    [44][675] Sending buffer 0x7f9394009f90 of 27 bytes on stream 0 with ppid 18
DEBUG SCTP   rc/sctp/sctp_primitives_server.c:0296    Successfully sent 27 bytes on stream 0
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0039    ======================================= STATISTICS ============================================

DEBUG MME-AP src/mme_app/mme_app_statistics.c:0042                   |   Current Status| Added since last display|  Removed since last display |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0048    Connected eNBs |          1      |              1              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0054    Attached UEs   |          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0060    Connected UEs  |          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0066    Default Bearers|          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0072    S1-U Bearers   |          0      |              0              |             0               |

DEBUG MME-AP src/mme_app/mme_app_statistics.c:0075    ======================================= STATISTICS ============================================
...

2.4. Deploy OAI LTE UE in RF simulator mode

$ docker-compose up -d oai_ue0
Creating rfsim4g-oai-lte-ue0 ... done

Again a bit of patience:

$ docker-compose ps -a
         Name                       Command                  State                            Ports                      
-------------------------------------------------------------------------------------------------------------------------
rfsim4g-cassandra        docker-entrypoint.sh cassa ...   Up (healthy)   7000/tcp, 7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp
rfsim4g-oai-enb          /opt/oai-enb/bin/entrypoin ...   Up (healthy)   2152/udp, 36412/udp, 36422/udp                  
rfsim4g-oai-hss          /openair-hss/bin/entrypoin ...   Up (healthy)   5868/tcp, 9042/tcp, 9080/tcp, 9081/tcp          
rfsim4g-oai-lte-ue0      /opt/oai-lte-ue/bin/entryp ...   Up (healthy)   10000/tcp                                       
rfsim4g-oai-mme          /openair-mme/bin/entrypoin ...   Up (healthy)   2123/udp, 3870/tcp, 5870/tcp                    
rfsim4g-oai-spgwc        /openair-spgwc/bin/entrypo ...   Up (healthy)   2123/udp, 8805/udp                              
rfsim4g-oai-spgwu-tiny   /openair-spgwu-tiny/bin/en ...   Up (healthy)   2152/udp, 8805/udp                              
rfsim4g-trf-gen          /bin/bash -c ip route add  ...   Up (healthy)                                             
Creating rfsim4g-oai-enb ... done

Making sure the OAI UE is connected:

$ docker logs rfsim4g-oai-enb
...
[RRC]   RRCConnectionReconfiguration Encoded 1098 bits (138 bytes)
[RRC]   [eNB 0] Frame 0, Logical Channel DL-DCCH, Generate LTE_RRCConnectionReconfiguration (bytes 138, UE id 617b)
[RRC]   sent RRC_DCCH_DATA_REQ to TASK_PDCP_ENB
[PDCP]   [FRAME 00000][eNB][MOD 00][RNTI 617b][SRB 02]  Action ADD  LCID 2 (SRB id 2) configured with SN size 5 bits and RLC AM
[PDCP]   [FRAME 00000][eNB][MOD 00][RNTI 617b][DRB 01]  Action ADD  LCID 3 (DRB id 1) configured with SN size 12 bits and RLC AM
[SCTP]   Successfully sent 46 bytes on stream 1 for assoc_id 676
[RRC]   [FRAME 00000][eNB][MOD 00][RNTI 617b] UE State = RRC_RECONFIGURED (default DRB, xid 0)
[PDCP]   [FRAME 00000][eNB][MOD 00][RNTI 617b][SRB 02]  Action MODIFY LCID 2 RB id 2 reconfigured with SN size 5 and RLC AM 
[PDCP]   [FRAME 00000][eNB][MOD 00][RNTI 617b][DRB 01]  Action MODIFY LCID 3 RB id 1 reconfigured with SN size 1 and RLC AM 
[RRC]   [eNB 0] Frame  0 CC 0 : SRB2 is now active
[RRC]   [eNB 0] Frame  0 : Logical Channel UL-DCCH, Received LTE_RRCConnectionReconfigurationComplete from UE rnti 617b, reconfiguring DRB 1/LCID 3
[RRC]   [eNB 0] Frame  0 : Logical Channel UL-DCCH, Received LTE_RRCConnectionReconfigurationComplete, reconfiguring DRB 1/LCID 3
[MAC]   UE 0 RNTI 617b adding LC 3 idx 2 to scheduling control (total 3)
[MAC]   Added physicalConfigDedicated 0x7f98e0004950 for 0.0
[S1AP]   initial_ctxt_resp_p: e_rab ID 5, enb_addr 192.168.61.20, SIZE 4 
[SCTP]   Successfully sent 40 bytes on stream 1 for assoc_id 676
[SCTP]   Successfully sent 61 bytes on stream 1 for assoc_id 676
...

On the MME:

$ docker logs rfsim4g-oai-mme
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0039    ======================================= STATISTICS ============================================

DEBUG MME-AP src/mme_app/mme_app_statistics.c:0042                   |   Current Status| Added since last display|  Removed since last display |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0048    Connected eNBs |          1      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0054    Attached UEs   |          1      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0060    Connected UEs  |          1      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0066    Default Bearers|          0      |              0              |             0               |
DEBUG MME-AP src/mme_app/mme_app_statistics.c:0072    S1-U Bearers   |          0      |              0              |             0               |

DEBUG MME-AP src/mme_app/mme_app_statistics.c:0075    ======================================= STATISTICS ============================================

On the LTE UE:

$ docker exec rfsim4g-oai-lte-ue0 /bin/bash -c "ifconfig"
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.61.30  netmask 255.255.255.192  broadcast 192.168.61.63
        ether 02:42:c0:a8:3d:1e  txqueuelen 0  (Ethernet)
        RX packets 1109931  bytes 8078031934 (8.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1232068  bytes 7798928848 (7.7 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

oaitun_ue1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 12.0.0.2  netmask 255.0.0.0  destination 12.0.0.2
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

oaitun_uem1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.0.2.2  netmask 255.255.255.0  destination 10.0.2.2
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

The tunnel oaitun_ue1 SHALL be mounted and with an IP address in the 12.0.0.xxx range.

3. Check traffic

$ docker exec rfsim4g-oai-lte-ue0 /bin/bash -c "ping -c 2 www.lemonde.fr"
PING s2.shared.global.fastly.net (151.101.122.217) 56(84) bytes of data.
64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=1 ttl=54 time=12.9 ms
64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=2 ttl=54 time=12.9 ms

--- s2.shared.global.fastly.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 12.940/12.965/12.990/0.025 ms

$ docker exec rfsim4g-oai-lte-ue0 /bin/bash -c "ping -I oaitun_ue1 -c 2 www.lemonde.fr"
PING s2.shared.global.fastly.net (151.101.122.217) from 12.0.0.2 oaitun_ue1: 56(84) bytes of data.
64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=1 ttl=53 time=23.6 ms
64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=2 ttl=53 time=29.5 ms

--- s2.shared.global.fastly.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 23.659/26.626/29.593/2.967 ms

The 1st ping command is NOT using the OAI stack. My network infrastructure has a response of 13 ms to reach this website.

The 2nd ping command is using the OAI stack. So the stack takes 26.6 - 12.9 = 13.7 ms.

4. Un-deployment

$ docker-compose down
Stopping rfsim4g-oai-lte-ue0    ... done
Stopping rfsim4g-oai-enb        ... done
Stopping rfsim4g-oai-spgwu-tiny ... done
Stopping rfsim4g-oai-spgwc      ... done
Stopping rfsim4g-oai-mme        ... done
Stopping rfsim4g-oai-hss        ... done
Stopping rfsim4g-trf-gen        ... done
Stopping rfsim4g-cassandra      ... done
Removing rfsim4g-oai-lte-ue0    ... done
Removing rfsim4g-oai-enb        ... done
Removing rfsim4g-oai-spgwu-tiny ... done
Removing rfsim4g-oai-spgwc      ... done
Removing rfsim4g-oai-mme        ... done
Removing rfsim4g-oai-hss        ... done
Removing rfsim4g-trf-gen        ... done
Removing rfsim4g-cassandra      ... done
Removing network rfsim4g-oai-private-net
Removing network rfsim4g-oai-public-net

5. Explanation on the configuration

With a single docker-compose.yml file, it is easier to explain how I made the full connection.

Try to modify as little as possible. And if you don't understand a field/value, you'd better NOT modify it.

5.1. UE IMSI and Keys

in HSS config:

            OP_KEY: 1006020f0a478bf6b699f15c062e42b3
            LTE_K: fec86ba6eb707ed08905757b1bb44b8f
            APN1: oai.ipv4
            APN2: internet
            FIRST_IMSI: 208960100000001
            NB_USERS: 10

in UE config:

            MCC: '208'
            MNC: '96'
            SHORT_IMSI: '0100000001'
            LTE_KEY: 'fec86ba6eb707ed08905757b1bb44b8f'
            OPC: 'c42449363bbad02b66d16bc975d77cc1'
            MSISDN: '001011234561010'
            HPLMN: 20896

As you can see: LTE_K and LTE_KEY are the same value. And OP_KEY and OPC can be deduced from each other. Look in HSS logs.

$ docker logs rfsim4g-oai-hss
...
Compute opc:
	K:  FEC86BA6EB707ED08905757B1BB44B8F           <== `LTE_K`
	In: 1006020F0A478BF6B699F15C062E42B3           <== `OP_KEY`
	Rinj:   D4224B3931FD5BDDD0489A9573F93E72
	Out:    C42449363BBAD02B66D16BC975D77CC1       <== `OPC`
...

In HSS, I've provisioned 10 users starting at 208960100000001 (FIRST_IMSI and NB_USERS).

My 1st UE IMSI is an aggregation of MCC, MNC, SHORT_IMSI.

5.2. PLMN and TAI

in MME config:

            REALM: openairinterface.org
..
            MCC: '208'
            MNC: '96'
            MME_GID: 32768
            MME_CODE: 3
            TAC_0: 1
            TAC_1: 2
            TAC_2: 3
            MME_FQDN: mme.openairinterface.org

in SPGW-C/-U configs:

            MCC: '208'
            MNC: '96'
            MNC03: '096'
            TAC: 1
            GW_ID: 1
            REALM: openairinterface.org

in eNB config:

            MCC: '208'
            MNC: '96'
            MNC_LENGTH: 2
            TAC: 1

The values SHALL match, and TAC shall match TAC_0 from MME.

5.3. Access to Internet

In my traffic test, I was able to ping outside of my local network.

in SPGW-C config:

            DEFAULT_DNS_IPV4_ADDRESS: 192.168.18.129
            DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4
            PUSH_PROTOCOL_OPTION: 'true'

in SPGW-U config:

            NETWORK_UE_NAT_OPTION: 'yes'

Please put your own DNS server IP adress.

And you may have to play with PUSH_PROTOCOL_OPTION and NETWORK_UE_NAT_OPTION depending on your network.