cord build integrate oai as a service into m cord - sched build- integrate... · usrp b210-ettus...
TRANSCRIPT
Integrate OAI-as-a-Service into M-CORD
Wilson Wang﹒Chien-Hao Chen﹒Wei-Yu Chen﹒Ching Tang
1
About Us
2
● Wilson Wang (ITRI / NCTU)
● Chien-Hao Chen (ITRI)
● Jimmy Wen (ITRI)
● Wei-Yu Chen (NCTU)
● Ching Tang (NCTU)
● Yih-Jye Chiu (NCTU)
Outline
3
1. Introduction to Open Air Interface
2. Objective and Demo Scenario
3. Implementation of OAI-as-a-Service M-CORD
4. Future Work
Introduction to Open Air Interface
4
● Composition of OAI
● Software Defined Radio
● OAI EPC Features
● OAI LTE Software Stack
5
OAI-OpenAirInterface
Raymond Knopp Navid Nikaein
6
Composition of OAI
LTE Network ArchitectureEvolved Packet Core
eNBUE MME HSS
S-GW P-GW Internet
OAI Architecture
SDR SDR
OAI UE OAI eNB OAI EPC
Internet
7
SDR-SoftwareDefinedRadio
● Express MIMO2-Eurecom○ http://www.expressmimo2.com/
● USRP B210-Ettus Research○ https://www.ettus.com/product/details/UB210-KIT
● USRP X310-Ettus Research○ https://www.ettus.com/product/details/X310-KIT
8
OAI EPC Features
● MME, HSS, SGW and PGW implementations
○ Compatible with 3GPP R10
● UE procedures handling: attach, authentication, service access,
radio bearer establishment
● Configurable access point name, IP range, DNS and E-RAB QoS
● IPv4 and IPv6 support
9
OAI LTE EPC Part Software Stack
Objective and Demo Scenario
10
● Objective
● Demo Scenario
11
Objective
● Verify service function chain
a. Build MCORD-in-a-Box 4.1 for 1st prototype version
b. Use OAI EPC as the M-CORD Service
c. Divide OAI EPC into MME, HSS, and S/PGW
d. Accomplish end-to-end integration test
12
DEMO Scenario
● Two Commercial UE + OAI eNB (x86 PC) + OAIaaS M-CORD
● UE can access the Internet at the same time
● Performance:
○ UE to S/PGW RTT: 21.9 ms
○ Bandwidth: 4 Mbps (limited by OAI eNB)
x310
X86
MobileCORD-in-a-box
PCIe LAN
HSSMME
SPGW
OAI eNB OAI EPC
Implementation of OAI-as-a-Service M-CORD
13
● Mobile CORD architecture
● Service dependency
● Onboard oai service
● Connection from eNodeB to instances
● Connection from instances to Internet
14
Mobile CORD Architecture
Openstack ONOS
Leaf-spinefabric
XOS
VirtualizedEPC
VirtualizedRAN
Mobile EdgeService
AccessLink
CoreLink
15
Services Dependency
eNB
Internet
MME HHS
S/P-GW
Evolved Packet Core
16
Onboarding Services - Create Synchronizer
corddev headnode
Local images
Docker RegistryServiceSychronizer Image
oai servicesource code oai service synchronizer
pull & runbuild
publish
17
Onboarding Services - Create Service Instance
headnode compute node
OpenStacksynchronizer
XOS
OpenStackcomponents
OAITOSCAYAML
file
OAI Service InstancevHSS
OAI Service InstancevMME
OAI Service InstancevSPGW
OAI Servicesynchronizer
Service Synchronizers
18
● How to create an openstack images
● How the synchronizer works
● More works can be done by synchronizers
19
Create an Openstack Image
1. Build an Ubuntu vm with libvirt
2. Install openstack image tools: cloud-init
a. Read metadata, put public key for synchronizer uses.
3. Install whatever you needs.
4. virt-sysprep: clean-up all configs. e.g. network, ssh-keys, ...
5. QEMU Disk utility: qemu-img
a. For convert image format & compress image
20
Service Synchronization Procedure
● Synchronizer
○ Wait for dependent instances IP addresses ready
○ Prepare service-related configurations
○ Execute Ansible playbook
■ Create OAI configuration files & data
■ Enable OAI as a systemd service
21
Synchronizer: Wait for Dependent Instance
● HSS step depends on HSS IP
● SPGW step depends on SPGW IP
● MME depends on HSS & SPGW & MME IP
Only executed when dependent instance is ready
MME HSS
SPGW
22
Make Instances Know Other’s IP
● Render IP variables in playbook
○ MME_PRIVATE_IP
○ MME_PUBLIC_IP
○ HSS_PRIVATE_IP
○ HSS_PUBLIC_IP
○ SPGW_PRIVATE_IP
○ SPGW_PUBLIC_IP
○ OAI_SERVICE_TYPE
Synchronizer: Prepare Service Configurations
Service-related data will then be injected into Ansible
HSSmodel
MMEmodel
SPGWmodel
HSSsync step
MMEsync step
SPGWsync step
SIM data APN dataMCC MNC
23
Ansible: Create OAI Configurations & Data
HSS SPGW MMEhss.conf
spgw.confmme.conf
hss_fd.confoai.sql mme_fd.conf
set host name & hosts
Configuration files are generated from templates
24
spgw iphss ip
HSSmodel
MMEmodel
SPGWmodel
HSSsync step
MMEsync step
SPGWsync step
HSSinstance
MMEinstance
SPGWinstance
Deploy Service Based on Service Models
25
SIM data MCC MNC APN data
hss.conf mme.conf spgw.conf
26
Ansible: Enable OAI as a Systemd Service
Generate systemd service configuration & enable it
Systemddefinition
Ansiblegenerate
enable
OAIprogram
reference
27
Connection from eNB to Instances
Physical Server
Compute Node
overlay ovsfabric
underlay ovs
vHSS10.0.14.2
vMME10.0.14.3
vSPGW10.0.14.4
head node
eNodeBvxlan
28
The Instance Networking
Physical ServerCompute Node
overlay ovsfabricunderlay
ovs
vHSS10.0.14
.2
vMME10.0.14
.3
vSPGW10.0.14.
4
head node
eNodeB
● In TOSCA yaml, we assign 3 different networks to each instance
○ management
○ oaiservice_network
■ vHSS, vMME, vSPGW communicate with this network
○ public
■ vSPGW outgoing traffic’s interface
29
Connection from Instances to Internet
Physical Server Compute Node
overlay ovsfabricunderlay ovs
vHSS10.0.14.2
vMME10.0.14.3
vSPGW10.0.14.4
head node
eth0 eth1
virbr1
Future work
30
● Make Services into CORD-POD
● Create Corresponding Services for EPC Components
31
Migrate OAI Services to CORD-POD
● High Performance
● Scalable
● Physical data plane
● Bring OAI-MCORD to the real world
● How to migrate?
○ Build a CORD-POD
○ Add fabric service
32
Create Corresponding service for EPC components
● Make OAI Service as CORD spirit
● Service Isolation
○ Easy management
● Network Slicing
● Service dependency
● Real automation