State of the Open Source & Disaggregated Ecosystem Russ White Network Device Controller SDN Open Standards Network Device control plane standard Open Network Device Disaggregated Disaggregated control plane Open Source standard Open NOS

Device/Control Plane Models Centralizing Business alignment and Application Application integration Lower cost hardware management control

Potentially Potentially Potentially SDN X X White Box White Orthogonal Orthogonal Potentially Potentially X Disaggregation Potentially Potentially Potentially X X

Comparison BGP Hardware Abstraction (HAL) Forwarding ASIC IS-IS IS-IS RIB . Configured Routes Routes Phy

Platform Abstraction (PAL) Platform Stack Kernel Fan/LED/etc. ONIE

Disaggregated Model Hardware Appliance Appliance Appliance Appliance Software Vendor Vendor Open Source Hardware Appliance Appliance Vendor Vendor Software Box Hardware Box White/Bright Box Hardware Box White/Bright Open Source Software

Options BROADCOM MELLANOX BAREFOOT BAREFOOT CAVIUM JUNIPER JUNIPER DELL CISCO CELESTICA ACCTON QCT NETWORKSALPHA DELTA

White/Bright Box CUMULUS NETWORKS IP IP INFUSION JUNIPER JUNIPER 6WIND 6WIND LABN LABN BIGSWITCH BIGSWITCH SNAPROUTE DELL RTBRICK CISCO

Vendor Software Stacks Platform Abstraction Layer

• Often one of the hardest components to source • Must connect your hardware platform with your chosen stack

and O/S Component Basics • Provided by – Hardware vendor – Software vendor – Consulting companies will also write these ASIC Hardware Abstraction

SAI • Supports (pretty much) all chip vendors • Pluggable architecture OpenNSL • Broadcom only Component Basics P4 • Barefoot Networks • Programming language rather than an API asicd • Snaproute’s interface to a wide variety of asics swtichd • Cumulus’s interface to a wide variety of asics fd.io • Based on DPDK • Largely focused on accelerated NICs, rather than network switching hardware commercial/open source source commercial/open IPINFUSION JUNIPER JUNIPER GOBGP CISCO BIRD BIRD

commercial SNAPROUTE open source

Routing Stacks FR ROUTING NETDEF 128 TECHNOLOGY CONSULTINGLABN OPEN ROUTINGSOURCE INTERNET SYSTEMS CONSORTIUM ORANGE ARCHITECTURE TECHNOLOGY CORPORATION 6WIND VOLTA NETWORKS BIGSWITCH CUMULUS

FR Routing Open Source FR ROUTING STABLE 2.0 Performance & Scale fixes & Scale Performance BGP RFC 5549 (unnumbered) Support Support (unnumbered) RFC 5549 route-tags 32-but restored Support OpenBSD OSPF (v2/v3) Support (unnumbered) RFC 5549 Nexthop route-tags 32-bit IPv4/v6 for MPLS Support static LSPs RIB (Zebra) route-tags 32-bit Nexthop Support (unnumbered) RFC 5549 Groups Update BGP support Hostname Support internal/external Remote-AS AddPath Tracking tracking Support Support Snapcraft VRF Lite JSON Support Others to LDP- Updates RFC 7552 for IPv6 (GTSM) for Mechanism LDPSecurity - RFC 6720 The Generalized TTL LDP) (VPLS) using – (Virtual RFC 4762 Service LAN Private LDP) using Maintenance RFC 4447( (LDP RFC 5036 Specification) LDP Packaging Packaging Pseudowire Setup and and Setup

Stable 2.0 NEXT VERSION 3.0 FR ROUTING BGP Message Shutdown BGP Label Manager ATM; BSD) on not supported only,( no for NBMA-GRE tunnels; NHRP NHRP Mode Sparse MSDP interfaces Unnumbered PIM IPv4/IPv6 Restart VPN Graceful IPv6 VPN encaps-03#section-3.2.1) IDR Tunnel eVPN Communities Large (partial) (partial) (RFC2332) (RFC2332) (RFC4611) ( misc (draft-ietf-idr-tunnel- (RFC4601) (RFC4601) (RFC 7432) (RFC 7432) fixes) (RFC8092) (RFC8092) overhauled grammar Definition Lexer Bison in rewritten Parser CLI (RFC4552) Authentication/Confidentiality OSPFv3 SPF IS-IS (RFC7473) State Controlling Advertisements completion Advertisement RFC6667) Typed FEC wildcard Capabilities interfaces Unnumbered LDP Backoff rewritten in Flex in rewritten (RFC5561) (RFC5561)

(RFC5918, (RFC5918, (RFC5919) (RFC5919)

Next Version 3.0 FR Routing - What’s different?

• Methodical vetting of submissions • Extensive automated testing of contributions • Git Pull Requests • Github centered development • Elected Maintainers & Steering Committee • Common Assets held in trust by FR Routing – How to get it

• Binary package – Snap package available now – Snap is a new universal package format – see snapcraft.io – FRR 2.0 in stable channel and FRR 3.0 in beta channel – Debian / Ubuntu / RedHat packages coming soon – Other packages will follow • Source – Github ( https://github.com/FRRouting/frr ) – Branch stable/2.0 à Released Version 2.0 – Branch stable/3.0 à Version 3.0 (upcoming release) – Branch master à Latest development (“unstable”) Some Architectures REST ONL Platform APIs CLI Switch Hardware Hardware Switch … Kernel Kernel BGP OpenNSL Open Route Cache Cache Route Open Zebra Zebra IS-IS FBOSS

ASIC … SONIC SAI

… Control Plane

Open Network Linux … OpenStack Chef

VMWare … Plane Puppet collectd BGP IS-IS Control NSX

Orchestration/Automation Zebra CUMULUS LINUX

Kernel

SwitchD

Switch Hardware ASIC CLI Netconf Ansible Chef

REST Config configd

thrift rpc … BGP IS-IS SNAPROUTE

RIB ARP systemd LACP/LLDP/etc.

thrift rpc

asicd

… OpenNSL Vendor

SoftSwitch SAI

Switch Hardware ASIC

configuration and management tools third party & custom SONiC

Business Ansible Puppet Chef Telemetry OCP Application

network applications

SNMP BGP DHCP IPv6 . . . More apps

SONiC Base

Database Platform FR Routing LLDP

SWSS Utility RedisDB SYNCD

persist app objects persist SAI objects

redisdb w/ synchs SAI objects SONiC object library from software to hardware

Network AppDB SAIDB synchd SAI ASIC Applications Object Library

Orchestration Switch Services (SWSS)

• translation between apps and SAI objects • resolution of dependency and conflict Challenges “One Neck to Choke”

• Also known as… – A “single point of failure” – “my vendor makes all of my architectural decisions” • Do you really have this today? – Be honest! J Market Challenges

• This is an immature market – Vendors and projects are in flux – Projects are often based on small communities • Skill set often == unicorns – There are no certifications, paths, etc. – You have to be an engineer/architect – Rather than “just” a CLI/vendor jockey – You have to be “full stack” – Integrate business architecture with network architecture – Understand applications, how they use the network, etc. – Know the bits and pieces of a , what they all mean, etc. – Keep up with ten different sources, rather than one Hardware Challenges

• Silicon support – Route count – Queue depth/buffering – Label imposition depth – Many others—this is an area where you must be careful • Project/Vendor overlap – Most ASICs are supported by most every option covered here – System/support chipsets are a different story – Fans, LEDs, CPUs, other components – Be very careful to ask about this when building a system

25 Other Challenges

• We ain’t got no features – But part of the point is to stop throwing features and nerd knobs at every imaginable problem • No tech support unless you buy it • You must be an educated consumer – Participate in open standards – Pay attention to provider venues, papers, etc. – Much is under NDA • If you’re using open source, you should be a part of the community