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

Transcript of OPTIMISING VNF PERFORMANCE AND DENSITY AT …...Build your Docker containerised VNFs using Lib1Net...

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