Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing...

16
0 Copyright©2016 NTT corp. All Rights Reserved. Zebra 2.0 and Lagopus: newly- designed routing stack on high- performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima, Masaru Oki, Hirokazu Takahashi Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Transcript of Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing...

Page 1: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

0Copyright©2016 NTT corp. All Rights Reserved.

Zebra 2.0 and Lagopus: newly-

designed routing stack on high-

performance packet forwarder

Kunihiro Ishiguro, Yoshihiro Nakajima, Masaru Oki, Hirokazu Takahashi

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 2: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

Zebra 2.0

Open Source Routing Software

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 3: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

Open Source Revisited

• Apache License

• Written From Scratch in C++

• Task Completion Model + Thread Model

• Single SPF Engine for OSPFv2/OSPFv3/IS-IS

• Forwarding Engine Abstraction for DPDK/OF-DPA

• Configuration with Commit/Rollback

• MPLS VPN Support

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 4: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

Architecture

• Single Process/Multithread Architecture

• Protocol Module has 2 threads

BGP OPSF RSVP-TE LDP

FEA

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 5: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

OpenConfigd

• Commit & Rollback support configuration system

• Configuration is defined by YANG

• CLI, NetConf, REST API is automatically generated

• `confsh` - bash based CLI command

• OpenConfig is fully supported

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 6: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

OpenConfigd Architecture

• gRPC is used for transport

• completion/show/config APIs between shell

OpenConfigd

Zebra 2.0 Lagopus

confsh

DB

completion show config

API API

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 7: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

Language Bindings

• The module is implemented as C++ Class

• Other Language Bindings with SWIG• Python

• Java

• Ruby etc…

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 8: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

Forwarding Engine Abstraction

• Various Forwarding Engine Exists Today• OS Forwarder Layer

• DPDK

• OF-DPA

• FEA provides Common Layer for Forwarding Engine

• FEA provides• Interface/Port Management

• Bridge Management

• Routing Table

• ARP Table

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 9: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

8Copyright©2016 NTT corp. All Rights Reserved.

Lagopus:

Multicore CPUs-aware fast &

programmable packet forwarder

Lagopus is

a genus of bird in the grouse subfamily

https://lagopus.github.io

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 10: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

9Copyright©2016 NTT corp. All Rights Reserved.

Lagopus overview (1/2)

High performance userspace packet forwarder Designed for multicore-CPUs architecture

• Over-40Gbps and over-20MPPS performance

• Micro-sec order low latency packet processing

Designed for large scale RIB/FIB environment • Over-1M routes, Over-1M FIB entry are supported

Leverage high-performance network I/O library• DPDK, packet processing offload/accleratator

High-programmable packet forwarder Many protocol frame matches and actions

• Ethernet, VLAN, QinQ, PBB, MPLS, IPv4, IPv6, UDP, TCP

Tunnel protocol frame match and actions• MPLS, IPv4, VxLAN, GRE

• NSH, Geneve, GTP (in future)

QoS actions• Meter, Policer, Shaper

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 11: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

10Copyright©2016 NTT corp. All Rights Reserved.

Lagopus overview (2/2)

Various dataplane control APIs JSON

Netlink-compatible RIB/FIB API

OpenFlow 1.3 API

SwitchDev API (in future)

Switch configuration APIs JSON, Switch DSL

Netconf, OVSDB (Limited)

Management protocol and toolCLI, SNMP, JSON

Cooperate with Linux kernel network stackC-plane packet escalation using tap interface

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 12: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

11Copyright©2016 NTT corp. All Rights Reserved.

Lagopus architecture

switch configuration datastore(config/stats API, SW DSL)

STD NICDPDK NIC

DPDK libs

Lagopus soft dataplane

flow lookup flow cache

Packet processing pipeline

queue/

policer

Flow tableFlow table

flow table

Flow tableFlow tableGroup

table

Flow tableFlow tablemeter

table

switch manager/ switch HAL

Op

en

Flow

1.3

ag

en

t

JSON IF

SN

MP

CLI

OV

SD

B

NET

CO

NF

L2 A

PI

L3 A

PI

SDN switch Agent• Best OpenFlow 1.3 compliant• Netlink-compatible• L2/L3 APIs

management API• OVSDB, REST, OF-CONFIG• CLI

Multicore CPU-aware dataplane• Over-20-Gbps and 20-MPPS performance• Low latency packet processing• high performance multi-layer flow lookup

Switch configuration datastore• Pub/sub mechanism• Switch config/managment DSL• Stats database, SNMP• JSON support

Raw-socket

Cooperation with Linux OS network stack• Tap support

Various platform and NIC support

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 13: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

12Copyright©2016 NTT corp. All Rights Reserved.

Intel Data Plane Development Kit

x86 architecture-optimized

data-plane library and NIC

driver Memory structure-aware queue,

buffer management

packet flow classification

polling mode-based NIC driver

Low-overhead & high-speed

runtime optimized with data-

plane processing

Abstraction layer for hetero

server environments

BSD-license :) Good for commercial use

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 14: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

13Copyright©2016 NTT corp. All Rights Reserved.

Multi core CPU aware packet processing

Exploit many core CPUs Reduce data copy & move (reference access) Explicit thread assign to CPU core Packet classifier /loadbalancer for parallel processing

Decouple I/O processing and flow processing Improve D-cache efficiency

Packet batching Reduce lock and Improve I-cache and D-cache efficiency

NIC 1RX

NIC 2RX

I/O RXCPU0

I/O RXCPU1

NIC 1TX

NIC 2TX

I/O TXCPU6

I/O TXCPU7

Flow lookuppacket processing

CPU2

Flow lookuppacket processing

CPU4

Flow lookuppacket processing

CPU3

Flow lookuppacket processing

CPU5

NIC 3RX

NIC 4RX

NIC 3TX

NIC 4TX

NIC RX buffer

Ring buffer

Ring buffer NIC TX buffer

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 15: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

14Copyright©2016 NTT corp. All Rights Reserved.

Forwarding Engine Integration

dataplane

Lagopus

BGP OPSF RSVP-TE LDP

FEA

Zebra 2.0

OpenConfigd DB

DataplaneManager

Configurationdatastore

RIB/FIB

control Interface/Port

bridge mngmt

Interface/Port

bridge mngmt

C-plane related packet

User-traffic User-traffic

C-plane related packet

C-plane packet

escalation via tap IF

FIB

ARP

Stats

DB

C-plane packet

escalation via tap IF

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 16: Zebra 2.0 and Lagopus: newly- designed routing …...Zebra 2.0 and Lagopus: newly-designed routing stack on high-performance packet forwarder Kunihiro Ishiguro, Yoshihiro Nakajima,

15Copyright©2016 NTT corp. All Rights Reserved.

Conclusion

Lagopus https://lagopus.github.io/

Zebra 2.0 https://github.com/hash-set/Zebra-2.0

(coming soon)

OpenConfigd https://github.com/hash-set/OpenConfigd

(coming soon)

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)