YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c...

30
YATES: Rapid Prototyping for Trac Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate Foster (Cornell) Robert Kleinberg (Cornell) Robert Soulé (USI Lugano) ACM SOSR 2018

Transcript of YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c...

Page 1: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES: Rapid Prototyping for Traffic Engineering Systems

Praveen Kumar (Cornell) Yang Yuan (Cornell)

Chris Yu (CMU) Nate Foster (Cornell)

Robert Kleinberg (Cornell) Robert Soulé (USI Lugano)

ACM SOSR 2018

Page 2: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

WAN TE - Example

Page 3: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Network Operator

Configure the network to forward traffic using equal-cost multi-path (ECMP)

WAN TE - Example

Page 4: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Network Operator

Configure the network to forward traffic using equal-cost multi-path (ECMP)

WAN TE - Example

Page 5: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Network Operator

Configure the network to forward traffic using equal-cost multi-path (ECMP)

WAN TE - Example

CSPF?

weights?

Page 6: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

TE Systems

Page 7: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

TE Systems

MATE

2000 2005 2010 2015

Oblivious

TeXCP

REPLEX

COPE

VLB

Joint

optimiza

tion

SWAN

B4

FFC

COYOTE

SMORE

OSPF

CSPF

ECMP

MCF

Page 8: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

TE Systems

MATE

2000 2005 2010 2015

Oblivious

TeXCP

REPLEX

COPE

VLB

Joint

optimiza

tion

SWAN

B4

FFC

COYOTE

SMORE

OSPF

CSPF

ECMP

MCF

`• Difficult to compare

Page 9: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

TE Systems

MATE

2000 2005 2010 2015

Oblivious

TeXCP

REPLEX

COPE

VLB

Joint

optimiza

tion

SWAN

B4

FFC

COYOTE

SMORE

OSPF

CSPF

ECMP

MCF

`• Difficult to compare

• High cost of evaluation

Page 10: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES

• Open-source TE framework

• High-level abstractions

• Modular interface for implementing TE elements

• Libraries and tools for

• generating traffic demands,

• modeling failures,

• prediction errors, etc.

(Yet Another Traffic Engineering System)

Page 11: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Network Operator

YATES - Example

+ Gbp

s

Page 12: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Network Operator

YATES - Example

+ Gbp

s

CSPF? Link weight? (1 or RTT)YATES > . . .

Page 13: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Network Operator

YATES - Example

+ Gbp

s

CSPF? Link weight? (1 or RTT)YATES > . . .

Page 14: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES Interface

High-level and modular interface

Page 15: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES Interface

High-level and modular interface

Page 16: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES Interface

High-level and modular interface

Page 17: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Modular Implementation

SWAN

(SIGCOMM ‘1

3)

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

Page 18: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Modular Implementation

SWAN

(SIGCOMM ‘1

3)

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

(* YATES modules *) module KSP : Algorithm module SemiMCF : Algorithm

(* Compute base set of k-shortest paths *) let initial_scheme : scheme = KSP.initialize empty_scheme; KSP.solve topo empty_demands

(* Initialize SemiMCF with k-shortest paths *) let () = SemiMCF.initialize initial_scheme in

(* For each traffic matrix, *) let simulate_step (d:demands) : unit = (* Compute updated routing scheme *) let (s:scheme) = SemiMCF.solve topo d in (* Record performance statistics ... *)

Page 19: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Modular Implementation

SWAN

(SIGCOMM ‘1

3)

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

(* YATES modules *) module KSP : Algorithm module SemiMCF : Algorithm

(* Compute base set of k-shortest paths *) let initial_scheme : scheme = KSP.initialize empty_scheme; KSP.solve topo empty_demands

(* Initialize SemiMCF with k-shortest paths *) let () = SemiMCF.initialize initial_scheme in

(* For each traffic matrix, *) let simulate_step (d:demands) : unit = (* Compute updated routing scheme *) let (s:scheme) = SemiMCF.solve topo d in (* Record performance statistics ... *)

Page 20: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Modular Implementation

SWAN

(SIGCOMM ‘1

3)

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

(* YATES modules *) module KSP : Algorithm module SemiMCF : Algorithm

(* Compute base set of k-shortest paths *) let initial_scheme : scheme = KSP.initialize empty_scheme; KSP.solve topo empty_demands

(* Initialize SemiMCF with k-shortest paths *) let () = SemiMCF.initialize initial_scheme in

(* For each traffic matrix, *) let simulate_step (d:demands) : unit = (* Compute updated routing scheme *) let (s:scheme) = SemiMCF.solve topo d in (* Record performance statistics ... *)

Page 21: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Modular Implementation

SWAN

(SIGCOMM ‘1

3)

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

(* YATES modules *) module KSP : Algorithm module SemiMCF : Algorithm

(* Compute base set of k-shortest paths *) let initial_scheme : scheme = KSP.initialize empty_scheme; KSP.solve topo empty_demands

(* Initialize SemiMCF with k-shortest paths *) let () = SemiMCF.initialize initial_scheme in

(* For each traffic matrix, *) let simulate_step (d:demands) : unit = (* Compute updated routing scheme *) let (s:scheme) = SemiMCF.solve topo d in (* Record performance statistics ... *)

Page 22: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Modular Implementation

SWAN

(SIGCOMM ‘1

3)

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

(* YATES modules *) module KSP : Algorithm module SemiMCF : Algorithm

(* Compute base set of k-shortest paths *) let initial_scheme : scheme = KSP.initialize empty_scheme; KSP.solve topo empty_demands

(* Initialize SemiMCF with k-shortest paths *) let () = SemiMCF.initialize initial_scheme in

(* For each traffic matrix, *) let simulate_step (d:demands) : unit = (* Compute updated routing scheme *) let (s:scheme) = SemiMCF.solve topo d in (* Record performance statistics ... *)

Page 23: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

SWAN

Simplified version: dynamically load-balance (MCF) traffic over k-shortest paths (KSP)

Modular Implementation

Page 24: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES Framework

Software Infrastructure • High-level abstractions

• Library of 18 different TE approaches

• Tools for modeling operational conditions

Simulator • Scalable • Steady-state • Macroscopic properties

SDN Backend • Implementations: static

paths and source routing

Page 25: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

YATES Framework

Software Infrastructure • High-level abstractions

• Library of 18 different TE approaches

• Tools for modeling operational conditions

Simulator • Scalable • Steady-state • Macroscopic properties

SDN Backend • Implementations: static

paths and source routing

Page 26: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

S11

S10 S4

S8

S5

S2

S7

S3

S6

S9

S12

S1

SDN Backend

NetfilterModule

User- SpaceAgent

LinuxKernel

Linux End Host

Data traffic

Traffic matrix + Path map

Forwarding rules

Traffic statistics

+ Topology

Historical Data

Traffic matrix

SDN Controller

SDN Switch

Page 27: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Hardware Testbed

S11

S10 S4

S8

S5

S2

S7

S3

S6

S9

S12

S1

Abilene Backbone Network

Page 28: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Simulator Calibration

PCC = 0.996

Page 29: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Take Aways

• YATES lowers the bar to perform credible TE research

• Easy to prototype and evaluate new TE systems

• Modular design allows composing pieces together

• Tools to model operational conditions

• Calibrated with deployments to ensure credible results

Page 30: YATES: Rapid Prototyping for Tra c Engineering Systemspraveenk/talks/2018-03-YATES-SOSR.pdfTra!c Engineering Systems Praveen Kumar (Cornell) Yang Yuan (Cornell) Chris Yu (CMU) Nate

Questions?

https://github.com/cornell-netlab/yates

Try out YATES!