21
OAI 5G Core Network Testing Framework Lionel Gauthier / Raphael Defosseux June 22 nd , 2018

OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Testing Framework

Lionel Gauthier / Raphael Defosseux

June 22nd, 2018

Page 2: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

Test: Fundamental Part of Continuous Integration• Continuous Integration is just a tool

• The objectives are:• Ease of merge all contributors’ effort• Validate correctness and functionality of new code• Keep old feature/code validated• Improve Code Quality

• Scripts on remote machine allow• Verifying rules and build• Running a test-suite or only a sub-set• Provide feedback in order to help decision

OAI 5G Core Network Test Framework2018-06-22 2

Page 3: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

web-hooks

OAI 5G Core Network Test Framework

Generic OAI CI Work Flow

2018-06-22 3

Code Changes

JenkinsServer Pipeline Stages

GuidelinesCheck

Static Code Analysis

Build Most Variants

Test with Equipment

Integration Job- Triggered by Pull Requests

GitHub

Feedback on status

ReportIn

Release Notes

Pipeline Stages

GuidelinesCheck

Static Code Analysis

Build All Variants

Full Test with

Equipment

BEAUTIFUL CORRECT FUNCTIONAL TESTED

Release Job- Triggered by Commits on

develop / master

FOCUS

Page 4: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Why The Notifications in the Repository?

• It helps integrators to make a decision• The decision will remain human

• Jenkins / GitHub plugin allows automated acceptance of Pull Requests

• It also provides traces / proof that a release has all quality indicators• That’s for the Release Job

2018-06-22 4

Page 5: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Decentralization is Possible

• OAI Alliance members/partner can duplicate the Core Network bench

• N CI test-beds with or without overlapping test coverages• Could speed up the CI process

2018-06-22 5

GitHub

JenkinsMaster Server

Integration Jobweb-hooks

JenkinsSlave Server ‘A’

Integration Job

JenkinsSlave Server ‘B’

Integration Job

Page 6: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

Topology

• Git Server is • Hosted by GitHub

• Jenkins Server is• Hosted by Eurecom

• Visible from WWW

• Configured only by admins

• Testing node is• Hosted by Eurecom

• In Private Network

• Primary OS is Ubuntu

2018-06-22 OAI 5G Core Network Test Framework 6

Jenkins Server

Integration Job

Testing Node

Page 7: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Virtualization

• Testing Node (orion):• 48 cores: Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz

• 64 Gbytes RAM

• 900 Gbytes on “/” (mount size)

• Ubuntu 16.04.4

• As a starting point we will use a VM for each Network Function (vNF)• VM could use any Linux-flavored OS (Fedora, Red Hat, …)

• Initial CI setup is still Ubuntu-based

2018-06-22 7

Page 8: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Template Virtual Machines

• We are pre-building Virtual Machines that will be used as `Template`• Starting from distribution ISO Images• Starting from pre-build Cloud Images

• Template can be also dedicated to a single target vNF

• We perform a minimal installation and credentials link• So the ‘Jenkins’ user can logged onto VMs without any visible password

• To optimize the disk usage:• We are using QCOW2 format• Snapshots are introduced in the test process• All created VM for a given build will be deleted at the end of run

2018-06-22 8

Page 9: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

Pre-build Template

VM

Pre-build Template

VM

OAI 5G Core Network Test Framework

CI Job Workflow: Building the vNFs

2018-06-22 9

PipelineGroovyscript

RetrieveCode / Scripts

Pre-build Template

VM

Clone on the fly

vNFvNF

vNFBuild / Configure NF in

each cloned VM

Page 10: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Jenkins View: Building the vNFs

2018-06-22 10

Page 11: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Optimization: apt-cacher

• During the build process, we are installing packages and compiling some libraries

• If your organization does not have mirrored archives server • Install apt-cacher on the test node

• It speeds up the download of packages

2018-06-22 11

Page 12: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

NG4T Tester: NG40-RAN-S1-X2-DT

2018-06-22 12

Courtesy of ng4t.com

Page 13: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Testing step: vNF lifetime

• Stop NG40 corresponding vNF

• Modify NG40 framework configuration to incorporate OAI vNF to test

• Start OAI vNF

• Run test-suite

• Stop OAI vNF

• Put back original NG40 framework configuration

• Start again NG40 corresponding vNF

2018-06-22 13

Page 14: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Testing OAI MME vNF

2018-06-22 14

NG40-RAN

NG40SGWvNF

OAIMMEvNF

NG40PGW

NG40HSS vNF

S1

S1-U

S11

S6a

S5 /

S8

Page 15: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Testing OAI HSS vNF

2018-06-22 15

NG40-RAN

NG40SGWvNF

NG40MMEvNF

NG40PGW

OAIHSS vNF

S1

S1-U

S11

S6a

S5 /

S8

Page 16: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Testing OAI SPGW vNF

2018-06-22 16

NG40-RAN

OAISPGW

vNF

NG40MMEvNF

NG40HSS vNF

S1

S1-U

S11

S6a

Page 17: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Testing the complete OAI Core Network

• Shutdown NG40 tester

• Configure NG40 framework with all OAI vNFs

• Start all OAI vNFs, NG40 Tester

• Run test suite

• Stop all vNFs

• Put back original NG40 framework configuration

2018-06-22 17

Page 18: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

Testing all OAI vNFs

2018-06-22 18

NG40-RAN

OAISPGW

vNF

OAIMMEvNF

OAIHSS vNF

S1

S1-U

S11

S6a

Page 19: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

OAI 5G Core Network Test Framework

End of CI Build Job

• Stop NG40 tester

• Stop all OAI vNF

• Archives testing results

• Destroy all images

2018-06-22 19

Page 20: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

web-hooks

OAI 5G Core Network Test Framework

Current Status

2018-06-22 20

Code Changes

JenkinsServer Pipeline Stages

GuidelinesCheck

Static Code Analysis

Build Most Variants

Test with Equipment

Integration Job- Triggered by Pull Requests

GitHub

Feedback on status

ReportIn

Release Notes

Pipeline Stages

GuidelinesCheck

Static Code Analysis

Build All Variants

Full Test with

Equipment

BEAUTIFUL CORRECT FUNCTIONAL TESTED

Release Job- Triggered by Commits on

develop / master

FOCUS

Implemented

Coming Soon

Page 21: OAI 5G Core Network Testing Framework · •Validate correctness and functionality of new code •Keep old feature/code validated •Improve Code Quality •Scripts on remote machine

Thank you for listening

2018-06-22 OAI 5G Core Network Test Framework 21