Giter Site home page Giter Site logo

core-in-a-box's Introduction

Prerequisites

This demo requires a Linux box with at least 4GB of free RAM.

Install docker (at least version 1.13 to run only, 17.06-ce to build images locally) and docker-compose.

After Docker is setup, clone the source code in this repo:

https://github.com/sidtechnical/core-in-a-box.git

Then open 2 additional terminals and change directory to the demo folder in all of them:

cd core-in-a-box

NOTE: Do this only if you are running this demo in virtualbox directly or indirectly:

sed -i 's/latest/vbox/g' .env

Pull the images

Use Docker-Compose to pull the images:

docker-compose pull cp dp traffic

(Alternatively, if you wish to build the Docker images yourself, see the readme inside the dockerfiles folder.)

Starting the Data Plane

In terminal #1: Bring up DP

docker-compose -p epc up dp

Wait until you see messages about Unable to resolve ..., which means that it is waiting for the control plane.

Starting the Control Plane

In terminal #2: Bring up CP after DP is ready

docker-compose -p epc up cp

Wait until you see messages about Unable to resolve mme.s11.ngic., which means that it is waiting for the traffic container.

Starting the Traffic

In terminal #3: Bring up Traffic container in daemon mode (-d) with:

docker-compose -p epc up -d traffic

Then enter the Traffic container with:

docker exec -it epc_traffic_1 /bin/bash

We need to rewrite the pre-recorded traffic to have the correct IP addresses. This will generate 3 modified pcap files. (This will take several seconds.)

./rewrite_pcaps.py enb.s1u.ngic spgw.s11.ngic spgw.s1u.ngic spgw.sgi.ngic

Now that the address fields are updated, it's time to start the traffic. First, get the interface names by running the following commands:

S11_IFACE=$(ip route get $(dig +short spgw.s11.ngic) | head -1 | awk '{print $3}')
S1U_IFACE=$(ip route get $(dig +short spgw.s1u.ngic) | head -1 | awk '{print $3}')
SGI_IFACE=$(ip route get $(dig +short spgw.sgi.ngic) | head -1 | awk '{print $3}')

Play the S11 (control plane) traffic to set up the flows

tcpreplay --pps=200 -i $S11_IFACE tosend-s11.pcap

Look at the Control Plane (Screen #2) and make sure that the packets appear. There should be 2000 packets sent/2000 received (from the 1000 CreateSession and 1000 ModifyBearer packets.)

Now start the S1U (Data Plane uplink) traffic

tcpreplay --pps=2000 -i $S1U_IFACE tosend-s1u.pcap

Check the Data Plane (Screen #1). You should see ~6500 packets received on the S1U and ~6500 packets transmitted on the SGi.

Now start the SGi (Data Plane downlink) traffic

tcpreplay --pps=2000 -i $SGI_IFACE tosend-sgi.pcap

Check the Data Plane (Screen #1). You should see ~6500 packets received on the SGi and ~6500 packets transmitted on the S1U.

Tear Down

From the Traffic terminal, type:

exit

and then type:

docker-compose -p epc down

Due credits

This repo is a fork of the interactive demo of the Next Generation Infrastructure Core (NGIC) reference implementation as a collaboration between Intel and Open Networking Foundation.

core-in-a-box's People

Contributors

ngiccorddemo avatar sidtechnical avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.