optimising vnf performance and density at …...build your docker containerised vnfs using lib1net...

26
x OPTIMISING VNF PERFORMANCE AND DENSITY AT THE ENTERPRISE EDGE ANTHONY FEE PRINCIPAL NETWORK SOFTWARE ENGINEER DPDK USERSPACE 2019, BORDEAUX

Upload: others

Post on 21-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

x

OPTIMISING VNF PERFORMANCE AND DENSITY AT THE ENTERPRISE EDGE

ANTHONY FEE

PRINCIPAL NETWORK SOFTWARE ENGINEER

DPDK USERSPACE 2019, BORDEAUX

Page 2: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

Overview

• Who am I?

• Enterprise Edge Characteristics

• Lib1Net and its Benefits to VNF deployments

• Lib1Net Features

• Q&A

Page 3: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

3

Introduction

• Anthony Fee, Principal Network Software Engineer at Emutex Madrid.

• DPDK experience:

• Developer of high performance DPDK-based network applications and VNFs.

• Co-author of initial vhost-user example application.

• Integrator of vhost-user with OVS-DPDK (Open vSwitch).

• Emutex:

• Developer of high-performance DPDK network applications on Intel architecture.

• Developer of Linux Kernels, drivers and distributions for embedded systems.

Page 4: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

4

Enterprise Edge Characteristics

Enterprise Edge Telco Edge Telco Cloud

Single-Vendor

vCPE

VNF VNF

VNF VNF

Multi-Vendor

uCPE

VNF VNF

VNF VNF

Cell Tower

ExchangeOn-Premises Data Centres

Multi-Vendor

Servers

VNF VNF

VNF VNF

Intelligence

Opportunity

Docker Docker VM

Page 5: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

5

Enterprise Edge Characteristics

• Single vendor VNF solutions (e.g. Security Appliance).

• Hardware cost has significant impact on solution cost.

• Maximising network packet throughput is a challenge.

• Service chain configuration is common.

• Trending towards use of Docker containerised VNFs.

Page 6: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

6

How can I maximise network packet throughput and VNF

density in my Enterprise Edge solution?

Page 7: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

7

Build your Docker containerised VNFs using Lib1Net and DPDK!

Page 8: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

8

• Light-weight DPDK-based software library.

• Simplifies the integration of DPDK packet acceleration.

• Exposes a simplified API focussed on VNF requirements.

• Targets enterprise edge Docker containerised VNFs.

Page 9: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

9

- Benefits

• Abstracts VNF applications from DPDK configuration.

• Optimises packet receive polling and transmission.

• Maximises hardware utilisation for service chaining.

• Simplifies port management through JSON configuration.

• Standardises how configuration is provided to VNFs.

Page 10: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

10

VNFDocker Container

How can I configure DPDK to maximise the packet processing

performance of my VNF?Application

DPDK

DPDK Configuration

- DPDK Configuration

NetworkPort 0

NetworkPort 1

Page 11: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

11

VNFDocker Container

Application

DPDK

Lib1Net

DPDK Configuration

Lib1Net does this for you by:• Configuring DPDK Memory• Configuring DPDK Ports• Initialising DPDK

- DPDK Configuration

NetworkPort 0

NetworkPort 1

Page 12: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

12

VNFDocker Container

What is the most efficient method of receiving and transmitting

packets with DPDK?Application

DPDK

- DPDK Packet Handling

RX

Transmit

Burst

TX

Receive

Burst

NetworkPort 0

NetworkPort 1

Page 13: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

13

VNFDocker Container

Application

DPDK

- DPDK Packet Handling

Lib1Net

RX

Transmit

Burst

TX

RX Callback

Receive

Burst

Single

Packet

Lib1Net manages RX/TX by:• Handling RX polling.• Passing packets to the

application through an RX callback.• Internally buffer TX packets to

efficiently transmit bursts.

NetworkPort 0

NetworkPort 1

Page 14: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

14

VNFDocker Container

Application

Virtual Switch

vPort 0

How can I maximise network packet performance and VNF density in my service chain?

VNFDocker Container

Application

vPort 2

VNFDocker Container

Application

vPort 1

DPDK DPDKDPDK

Copy Copy

- Service Chains

NetworkPort 0

NetworkPort 1

Page 15: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

15

VNFDocker Container

Application

VNFDocker Container

Application

VNFDocker Container

Application

The Lib1Net LINK network interface:• enables zero-copy through the

entire service chain.• Frees system resources by

removing the virtual switch.• Hides the management of DPDK

primary/secondary processes.

Lib1Net

DPDK DPDKDPDKLINK LINK

Zero-CopyLib1Net

Zero-Copy

Lib1Net

Zero-Copy

- Service Chains

NetworkPort 0

NetworkPort 1

Page 16: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

16

VNFDocker Container

How can I attach network interfaces to specific application

ports?Application

DPDK

- Port Management

TX_PORTRX_PORT

NetworkPort 0

NetworkPort 1

Page 17: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

17

VNFDocker Container

Application

DPDK

- Port Management

Lib1Net

Lib1Net makes this easy by:• Defining application port names within

the application.• Mapping port names to network

interfaces through JSON configuration.

TX_PORTRX_PORT

"ports": [ {"name": "RX_PORT",

"type": "DPDK-PCI",

"interface": "0000:07:00.0"}]

NetworkPort 0

NetworkPort 1

Page 18: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

18

VNFDocker Container

How can I manage my VNF configuration? Application

DPDK

- App Configuration

Custom Application

Configuration

Page 19: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

19

VNFDocker Container

Application

DPDK

- App Configuration

Lib1Net

Lib1Net includes two methods for passing configuration messages to your VNF :1. A reserved field is included in the

Lib1Net JSON configuration file.2. A management port can be attached

to the VNF.

"application": {"opt1": 100,

"opt2": 20

}

Custom Application

Configuration

1 2"management_port": [ {"type": "LINK",

"interface": "Link0"

} ]

Management

Port

NetworkPort 0

Page 20: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

20

VNFDocker Container

Application

VNFDocker Container

Application

VNFDocker Container

Application

Lib1Net

DPDK DPDKDPDKLINK

Lib1NetDPDK Configuration

Lib1Net

- Enterprise Edge Solution

JSON

Configuration

JSON

Configuration

JSON

Configuration

ApplicationConfiguration

VNFDocker Container

Application

DPDKLINK

Lib1NetPacket Handling

JSON

Configuration

LINK

Zero-Copy

NetworkPort 0

NetworkPort 1

Page 21: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

21

• Enterprise Edge solutions developed using Lib1Net benefit from:

• Increased VNF density by optimising hardware usage when service chaining.

• Maximised network throughput using the Lib1Net LINK interface.

• Configuration of DPDK and optimised RX/TX packet handling.

• Simplified mechanism to pass custom application configuration to VNFs.

• For further information:

[email protected]

• www.emutex.com

Summary

Page 22: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

22

Q&A

Page 23: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

23

Backup

Page 24: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

Lib1Net Packet

Forwarding

Example

main.c

main.c

Page 25: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

Lib1Net Packet

Forwarding

Example

ports_definition.h

ports_definition.h

Page 26: OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net and DPDK! 8 • Light-weight DPDK-based software library. • Simplifies the integration

Lib1Net Packet

Forwarding

Example

vnf_configuration.json

vnf_configuration.json