Skip to content

Demo NetSoft2019 vim emu

Manuel Peuster edited this page Jun 27, 2019 · 43 revisions

IEEE NetSoft 2019 demo "Prototyping and Demonstrating 5G Verticals: The Smart Manufacturing Case"

Presenter/Lead: Manuel Peuster (UPB)

Abstract: 5G together with software defined networking (SDN) and network function virtualisation (NFV) will enable a wide variety of vertical use cases. One of them is the smart manufacturing case which utilises 5G networks to interconnect production machines, machine parks, and factory sites to enable new possibilities in terms of flexibility, automation, and novel applications (industry 4.0). However, the availability of realistic and practical proof-of-concepts for those smart manufacturing scenarios is still limited.

This demo fills this gap by not only showing a real-world smart manufacturing application entirely implemented using NFV concepts, but also a lightweight prototyping framework that simplifies the realisation of vertical NFV proof-of-concepts. During the demo, we show how an NFV-based smart manufacturing scenario can be specified, on-boarded, and instantiated before we demonstrate how the presented NFV services simplify machine data collection, aggregation, and analysis.

Video

Demo Video

Walkthrough

Step 0: Preparations

Activate Azure IoT hub backend connection (optional)

If the demo should be done with a Azure IoT backend connection you need to activate the connection in the CC and provide the required access credentials and tokens: Dockerfile.vimemu.

For external users it is recommended to leave this deactivated to reproduce the demo.

Activate Demo Dashboard

In a dedicated terminal (keep open):

cd ~/tng-industrial-pilot/emulator-topologies/demo-dashboard/
./serve.sh

Dashboard is available under <MACHINE_IP_HOST>:5002.

Start Emulator (Terminal 1)

$ sudo python ~/tng-industrial-pilot/emulator-topologies/netsoft19-demo.py

Step 1: Show Descriptors

TBD

Step 2: Package and On-board (Terminal 2)

source venv_tango_sdk/bin/activate
cd ~/tng-industrial-pilot/sdk-projects
# packaging
$ tng-pkg --validation_level i  -p tng-smpilot-ns2-emulator/
$ tng-pkg --validation_level i  -p tng-smpilot-ns1-emulator/

# on-boarding (short: ./netsoft_onboard.sh)
tng-cli -u http://127.0.0.1 package -u eu.5gtango.tng-smpilot-ns1-emulator.0.1.tgo
tng-cli -u http://127.0.0.1 package -u eu.5gtango.tng-smpilot-ns2-emulator.0.1.tgo

# list packages
tng-cli -u http://127.0.0.1 package -l

# list services
tng-cli -u http://127.0.0.1 service --descriptor

Step 3: Instantiation (Terminal 2)

Stage 1

# instantiate
./netsoft_instantiate_stage1.sh

# list instances
tng-cli -u http://127.0.0.1 -v service --instance

Stage 2

./netsoft_instantiate_stage2.sh

Show deployment

vim-emu compute list

Or use the vim-emu dashboard: http://fgcn-peuster2.cs.upb.de:5001/dashboard/dashboard.html

Step 4: Activate Production (at IMMS)

This is done automatically.

Step 5: Analysis of data (EAE and Enterprise Cloud)

Option A: Prometheus Dashboard (part of NS1)

Option B: EAE (Grafana) Dashboard (part of NS1)

Option C: Enterprise Cloud Backend

This is a private Azure/Power BI account. Skip this if you try to reproduce the demo.

Step 6: Termination

# terminate service instances (no tng-cli support right now)
curl -X DELETE http://127.0.0.1:32002/instantiations -d {}

Installation

Requirements

  • about 4 CPU cores, 8 GB mem, 100GB disk (less might work, but won't be fun)
  • Ubuntu 18.04 LTS (fresh!)
  • Python2 system wide
    • vim-emu
  • Python3 SDK venv:
    • 5GTANGO SDK (project, validate, package)
    • tng-cli

Install vim-emu (bare metal)

  • First run sudo apt-get install python-backports.ssl-match-hostname and sudo apt remove ufw
  • Then follow this guide. Manual installation with option 1 "bare metal".
  • Finally cd ~/vim-emu and sudo python setup.py develop

Install 5GTANGO SDK tools and 5GTANGO CLI

Following this guide, do:

cd ~/
# install virutalenv
sudo apt install virtualenv
# find out the path to your python3
which python3
# create a fresh virtualenv
virtualenv -p <path_to_python3> venv_tango_sdk
# activate the virtualenv
source venv_tango_sdk/bin/activate

# install tng-sdk-project
pip3 install git+https://github.com/sonata-nfv/tng-sdk-project.git

# install tng-sdk-validator
pip3 install git+https://github.com/sonata-nfv/tng-sdk-validation.git

# install tng-sdk-package
pip3 install git+https://github.com/sonata-nfv/tng-sdk-package

# install tng-cli
pip3 install git+https://github.com/sonata-nfv/tng-cli

Clone this repo and build VNFs

Clone this repo to get all the demo materials:

git clone https://github.com/sonata-nfv/tng-industrial-pilot.git

Build the VNF containers (that might take time, be patient)

cd ~/tng-industrial-pilot/vnfs/
sudo ./build_docker_vnfs.sh

Done. Your machine is now prepared to execute the demo walkthrough.

Further documentation

Deployment overview

deployment overview

Other notes

Placement configuration

This is done by a static file: ~/tng-industrial-pilot/emulator-topologies/static_placement.yml.

Container instance specific configurations

Done by files <container_name>.env.yml in ~/tng-industrial-pilot/emulator-topologies/envs.

Check interconnection btw. NS2 and NS1

docker exec mn.vnf_rtr.cdu01.0 ping 30.0.0.1
docker exec mn.vnf_rtr.cdu01.1 ping 30.0.0.1
...

Check MQTT messages

docker exec -it mn.vnf_cc.cdu03.0 /bin/bash
mosquitto_sub -h 30.0.0.1 -p 1883 -v -t +/+/+
Clone this wiki locally