Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to...

50
Copyright © 2018 - Barefoot Networks All rights reserved Software Transforming the Network John DeMay October18 th , 2018

Transcript of Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to...

Page 1: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Software Transforming the Network

John DeMay

October18th, 2018

Page 2: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Software Defined Network (SDN)

Packet

Forwarding Packet

Forwarding

Packet

Forwarding

Packet

Forwarding

Packet

Forwarding

Control

Control

Control

Control

Control

Centralized Network State

Control Plane

Control

Program

Control

Program

Control

Program

Page 3: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Software Defined Network (SDN)

?Stagnation &

No innovation

Packet

Forwarding Packet

Forwarding

Packet

Forwarding

Packet

Forwarding

Packet

Forwarding

Control Plane

Control

Program

Control

Program

Control

Program

Centralized Network State ONOS, ODL, Ryu

CORD, NSX, ONAP

“Software is

eating the

network"

A network is a means to forward packets from one

place to another, and modify them along the way.

If we cannot control how packets are forwarded

and processed, we are not really in control.

Page 4: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

What if you want to….

• Add a new proprietary protocol to your network.

• Remove protocols you don’t need, to simplify your network. So they don’t

waste resources in switches.

• Add private packet headers to your packets, to carry measurement data

through the network.

• Move middle box functions, like L4-LB, SPGW, DNS, NAT, DDoS detection

into the switches. Reduce the number of boxes.

• Add your “beautiful new ideas” into your network. Without telling a switch

chip vendor. Write a program, keep it secret, make your products better

than your competitors.

Page 5: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Switch OS

Driver

OSPF BGP etc.

Page 6: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Switch OS

Driver

OSPF BGP etc.UPF

Page 7: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Network

Equipment

Vendor

Network

Owner

ASIC

Team

Software

TeamFeature

Years

Page 8: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

When you need a new feature…

1. You can’t just upgrade the software

2. New forwarding features take years to develop

3. Eventually, when the upgraded silicon is available, it

either:

◦ No longer solves your problem, or

◦ You need to build a new product

Page 9: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Outline

1. Why programmability is happening now

2. How programmability is being used

Subtract features: Reducing complexity

Add proprietary features: Invent, differentiate, own

Silicon independence: Breaking a lock-in

Telemetry and measurement

Page 10: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Domain Specific Processors

CPU

Computers

Java

Compiler

GPU

Graphics

OpenCL

Compiler

DSP

Signal

Processing

Matlab

Compiler

Machine

Learning

?

TPU

TensorFlow

Compiler

Networking

?

Language

Compiler>>>

Page 11: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Domain Specific Processors

CPU

Computers

Java

Compiler

GPU

Graphics

OpenCL

Compiler

DSP

Signal

Processing

Matlab

Compiler

Machine

Learning

?

TPU

TensorFlow

Compiler

PISA

Networking

P4

Compiler>>>

Page 12: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Conventional wisdom in networking

“Programmable switches are 10-

100x slower than fixed-function

switches. They cost more and

consume more power.”

Page 13: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Pipelined Architecture

13

Page 14: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

PISA: Protocol Independent Switch Architecture

14

Match+Action

Stage

Memory ALU

Programmable

Parser Programmable Match-Action Pipeline

Page 15: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

PISA: Protocol Independent Switch Architecture

Page 16: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example P4 Program

16

Memory ALU

Programmable

Parser Programmable Match-Action Pipeline

header_type ethernet_t { … }

header_type l2_metadata_t { … }

header ethernet_t ethernet;

header vlan_tag_t vlan_tag[2];

metadata l2_metadata_t l2_meta;

Header and Data DeclarationsParser Program

parser parse_ethernet {

extract(ethernet);

return switch(ethernet.ethertype) {

0x8100 : parse_vlan_tag;

0x0800 : parse_ipv4;

0x8847 : parse_mpls;

default: ingress;

}

Tables and Control Flowtable port_table { … }

control ingress {

apply(port_table);

if (l2_meta.vlan_tags == 0) {

process_assign_vlan();

}

}

Page 17: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

New features can be deployed to networks in

hours instead of years

Page 18: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

P4 Community – Growing Momentum

~1500 developers

~ 5000 commits

~1500 followers

~ 800 forks

~ 100 Industry and Academia Members

~ 4 Working Groups

~ 4 Bi-weekly face-to-face meetings

~ 8 Mailing Lists

~ 200 contributors

~ 30 Repositories

~ 12 teams

~ Multiple targets

Independent Consortium

Free to join

Apache 2.0 License

Page 19: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

P4 Working Groups & Open Community initiatives

19

.org

APIWG

AppWG

Charter

• Data-Plane Telemetry (e.g. INT)

• Security: Heavy-hitter Detection

• Services Offload: (e.g. Layer-4 LB)

• In-Network Cache for distributed services

• In-Network Consensus protocol

Initial Accomplishments

• 30+ Active Customers: OEM and Technology

vendors

• Open Sourced INT and Telemetry Report Specs

LanguageDesign

WG

Architect.WG

IETF 100 – Barefoot delivers first ever hardware-based (Tofino) In-situ OAM implementation:

Barefoot Networks Demonstrates In-situ Operations, Administration and Management (IOAM)

Showcasing the Power of Programmable Forwarding Plane Technology

OVS Orbit PODcast on P4 INT (B. Pfaff, C. Kim): https://ovsorbit.org/#e46

How INT works, upcoming OVS support for INT and SDN vendors involvement

Page 20: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Outline

1. Why programmability is happening now

2. How programmability is being used

Subtract features: Reducing complexity

Add proprietary features: Invent, differentiate, own

Telemetry and measurement

Page 21: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

How programmability is being used

Reducing complexity1

Page 22: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Compiler

Reducing complexity

Programmable Switch

Driver

Switch OSswitch.p4

IPv4 and IPv6 routing

- Unicast Routing

- Routed Ports & SVI

- VRF

- Unicast RPF

- Strict and Loose

- Multicast

- PIM-SM/DM & PIM-Bidir

Ethernet switching

- VLAN Flooding

- MAC Learning & Aging

- STP state

- VLAN Translation

Load balancing

- LAG

- ECMP & WCMP

- Resilient Hashing

- Flowlet Switching

Fast Failover

– LAG & ECMP

Tunneling

- IPv4 and IPv6 Routing & Switching

- IP-in-IP (6in4, 4in4)

- VXLAN, NVGRE, GENEVE & GRE

- Segment Routing, ILA

MPLS

- LER and LSR

- IPv4/v6 routing (L3VPN)

- L2 switching (EoMPLS, VPLS)

- MPLS over UDP/GRE

ACL

- MAC ACL, IPv4/v6 ACL, RACL

- QoS ACL, System ACL, PBR

- Port Range lookups in ACLs

QOS

- QoS Classification & marking

- Drop profiles/WRED

- RoCE v2 & FCoE

- CoPP (Control plane policing)

NAT and L4 Load Balancing

Security Features

- Storm Control, IP Source Guard

Monitoring & Telemetry

- Ingress Mirroring and Egress Mirroring

- Negative Mirroring

- Sflow

- INT

Counters

- Route Table Entry Counters

- VLAN/Bridge Domain Counters

- Port/Interface Counters

Protocol Offload

- BFD, OAM

Multi-chip Fabric Support

- Forwarding, QOS

Page 23: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Compiler

Driver

Switch OSMy

switch.p4

Programmable Switch

Lower Latency

Lower Power

Reducing complexity

Page 24: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

How programmability is being used

Adding custom features2

Page 25: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Custom features

25

• Support for new encapsulations

• Continue to parse inner headers

within encapsulations for

forwarding

• Aggregate and segment different

types of traffic to accelerate

processing

Page 26: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Custom features

26

• Offloading of sync/heartbeat

messages at unprecedented

rates

• Decrease detection time for

failures

• Decrease convergence times

• Increase accuracy

Page 27: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new features using P4

1. New encapsulations and tunnels

2. New ways to accelerate data processing

3. New approaches to routing

4. New approaches to congestion control

Page 28: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new applications using P4

Example #1: Layer-4 Load Balancer

Page 29: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Today: Hardware Layer 4 Load-balancing

Hardware Load Balancers

Application Servers

Clients

10s of Gbps

Page 30: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Today: Software Layer 4 Load-balancing

Software Load Balancers Application Servers

Clients

Page 31: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

P4 Example: Layer 4 Load-balancing

Software Load Balancers Application Servers

Clients

P4 Program

Page 32: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new applications using P4

Example 1: Layer-4 Load Balancer- Reduce cost and power - replace 200 servers with one Tofino switch

- >500x improvement in bandwidth - Operates at 6.5Tb/s vs. 10Gb/s

- >1000x improvement in latency- All packets load-balanced in sub-ms vs. multi-ms

- Up to 10 million http flows

PublicationSilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs.Rui Miao et al. ACM Sigcomm 2017

Page 33: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new applications using P4

Example #2: Fast Firewall and Audit Trail

Page 34: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Today: Hardware Firewall

Hardware Firewalls

Application Servers

Clients

<100Gbps each

Page 35: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

P4 Example: Fast Firewall and Audit Trail

Application Servers

Clients

Hardware Firewalls

<100Gbps each

P4 Program

Page 36: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

P4 Example: Fast Firewall and Audit Trail

Application Servers

Clients

P4 Program

1 Add new firewall entry on demand

2 Keep audit record for every entry

Page 37: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new applications using P4

Example #2: Fast Firewall and Audit Trail- Add over 1M new firewall entries per second

- Create audit record for every new flow and firewall entry

- Firewall now inline, at 6.5Tb/s and <1ms

Page 38: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new applications using P4

Example #3: Fast key-value store cache

Page 39: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Today: Large Key-Value Store

Key-value Store Servers1/N of key-value store on each server

Clients

1 N

Problem: Small number of HOT entries

Congested servers and large tail latency

Total throughput reduced to R * 2/N

Read rate, R

Page 40: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Solution: In-network cache of HOT entries

Key-value Store Servers1/N of key-value store on each server

Clients

1 NSolution: Store HOT entries in cache

HOT entries looked up in <1ms

Total read throughput = R

Only need O(NlogN) small entries

Eliminates long tail latencies

P4 Program

Read rate, R

Page 41: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Example new applications using P4

Example #3: Fast key-value store cache- In-network cache for 100 servers

- 1-2 billion read/write operations per second

- Hot entries retrieved in <1ms instead of 1ms.

- Eliminates variation in tail-latency

PublicationNetCache: Balancing Key-Value Stores with Fast In-Network

Caching.

Xin Jin et al. ACM SOSP 2017

Page 42: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

How programmability is being used

Network telemetry3

Page 43: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

“Which path did my packet take?”1“I visited Switch 1 @780ns,

Switch 9 @1.34µs, Switch 12

@2.42µs”

“Which rules did my packet follow?”2

“In Switch 1, I followed rules 75 and

250. In Switch 9, I followed rules 3

and 80. ”

# Rule

1

2

3

75 192.168.0/24

Page 44: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

“How long did my packet queue at each switch?”3 “Delay: 100ns, 200ns, 19740ns”

Time

Queue

“Who did my packet share the queue with?”4

Page 45: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

“How long did my packet queue at each switch?”3 “Delay: 100ns, 200ns, 19740ns”

Time

Queue

“Who did my packet share the queue with?”4

Aggressor flow!

Page 46: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

The network should answer these questions

1. “Which path did my packet take?”

2. “Which rules did my packet follow?”

3. “How long did it queue at each switch?”

4. “Who did it share the queues with?”

Inband Network Telemetry (INT) can answer all four

questions for the first time. PISA + P4 + INT.p4 runs at

full line rate. Without generating any additional packets!

1

2

3

4

Page 47: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Log, Analyze

Replay

INT: Inband Network Telemetry

Add: SwitchID, Arrival Time,

Queue Delay, Matched Rules, …

Original Packet

Visualize

Page 48: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Benefits

• Lower MTTR: Reduce MTTR by 1000x from 10-100s of minutes to

seconds identify failures more quickly auto-remediate

• More accurate measurements: Get ns-level measurements vs. ms

granularity 1,000,000x◦ Use this to understand micro-transient events

• Better Visibility: 100,000,000x see all traffic at Bpps vs. just 10s

of pps (sflow type)◦ Identifying all gray failures immediately

• Improved performance & efficiency - Use this data to auto-

provision, auto-load balanced workloads

49

Page 49: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

In summary

1. Programmable switch chips are here to stay: From now

on, programmable switch chips will be as fast as fixed ones.

Same cost, lower power.

2. Peace of mind: Software developers will always choose a

programmable device over a fixed-function device.

3. Innovation: Beautiful new ideas will be owned by the

programmer, not the chip designer.

4. Accelerate: In-network P4 applications will accelerate

compute services

5. Cambrian explosion: Future networks will be designed

very differently. Unique features in every network.

Page 50: Software Transforming the Network John DeMay October18 , 2018 · • Add private packet headers to your packets, to carry measurement data through the network. • Move middle box

Copyright © 2018 - Barefoot Networks – All rights reserved

Thank you