PISCES:'A'Programmable,'Protocol4 Independent'So8ware'Switch' - - PowerPoint PPT Presentation

pisces a programmable protocol4 independent so8ware
SMART_READER_LITE
LIVE PREVIEW

PISCES:'A'Programmable,'Protocol4 Independent'So8ware'Switch' - - PowerPoint PPT Presentation

PISCES:'A'Programmable,'Protocol4 Independent'So8ware'Switch' [SIGCOMM'2016] ' Sean%Choi% Slide'Credits'to' Professor'Nick'McKeown'and'Muhammad'Shahbaz' Outline' MoLvaLons'and'history'of'SDN'' Use'cases'of'SDN'


slide-1
SLIDE 1

PISCES:'A'Programmable,'Protocol4 Independent'So8ware'Switch'

[SIGCOMM'2016]' Sean%Choi%

Slide'Credits'to' Professor'Nick'McKeown'and'Muhammad'Shahbaz'

slide-2
SLIDE 2

Outline'

  • MoLvaLons'and'history'of'SDN''
  • Use'cases'of'SDN'
  • SDN'and'the'change'in'the'networking'stack'
  • What'is'P4'and''

Protocol'Independent'Packet'Processing?'

  • Introducing'PISCES'

2'

slide-3
SLIDE 3

Outline'

  • MoLvaLons'and'history'of'SDN''
  • Use'cases'of'SDN'
  • SDN'and'the'change'in'the'networking'stack'
  • What'is'P4'and''

Protocol'Independent'Packet'Processing?'

  • Introducing'PISCES'

3'

slide-4
SLIDE 4

What is Software-Defined Networking (SDN)?

4'

slide-5
SLIDE 5

Software Defined Network

A'network'in'which'the'control'plane'is'' physically'separate'from'the'forwarding'plane.' ' and$ ' A'single'control'plane'controls'' several'forwarding'devices.' (That’s'it)'

5'

slide-6
SLIDE 6

So8ware'Defined'Network'(SDN)'

Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Control' ' Control' ' ' Control' ' ' Control' ' ' Control' '

Global Network Map

Control'Plane'

Control Program Control Program Control Program

6'

slide-7
SLIDE 7

Intended'consequences...'

  • 1. Put'network'owners'and'operators'in'control.'
  • 2. Networks'that'cost'less:'simpler,'streamlined'hardware.'
  • 3. Networks'that'cost'less'to'operate'(fewer'features).'
  • 4. Networks'that'evolve'faster.'

SDN

Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Control' ' Control' ' ' Control' ' ' Control' ' ' Control' '

So8ware'Control'Plane'

7'

slide-8
SLIDE 8

Origins'of'SDN'

MarLn'Casado' The'Ethane'Project' [SIGCOMM'2007]'

8'

slide-9
SLIDE 9

How'difficult'is'it'to'define'all'network'

  • peraLons'in'so8ware,'outside'the'data'path?'

2006

35,000 users 10,000 new flows/sec 137 network policies 2,000 switches 2,000 switch CPUs

Stanford'campus'

9'

slide-10
SLIDE 10

Crazy'quesLon:'What'if'so8ware'decides'whether' to'accept'each'flow,'and'how'to'route'it?'

A' B'

Controllers'

  • 1. Check'flow'against'policy'
  • 2. Pick'route'

10'

slide-11
SLIDE 11

How'many'$400'controller' servers'do'we'need'to'service' 35,000'users?'

11'

slide-12
SLIDE 12

Less'than'One'

12'

slide-13
SLIDE 13

If'we'can'define'network'behavior'outside'the' data'path,'then'eventually'we'will.'

13'

slide-14
SLIDE 14

What'happened'next'

SDN,'OpenFlow,'Open'vSwitch,'Network'VirtualizaLon,'…' About'250'startups'so'far.'

Source:'SDX'Central'

14'

slide-15
SLIDE 15

Outline'

  • MoLvaLons'and'history'of'SDN''
  • Use'cases'of'SDN'
  • SDN'and'the'change'in'the'networking'stack'
  • What'is'P4'and''

Protocol'Independent'Packet'Processing?'

  • Introducing'PISCES'

15'

slide-16
SLIDE 16

SDN use cases Routing and NFV

16'

slide-17
SLIDE 17

function Dijkstra(Graph, source):

for each vertex v in Graph: dist[v] := infinity ; previous[v] := undefined; dist[source] := 0 ; Q := the set of all nodes in Graph ; while Q is not empty: // The main loop u := vertex in Q with smallest distance in dist[] ; remove u from Q ; if dist[u] = infinity: break ; for each neighbor v of u: alt := dist[u] + dist_between(u, v) ; if alt < dist[v]: dist[v] := alt ; previous[v] := u ; decrease-key v in Q; return dist[], previous[]; end function

Edsger Dikjstra

1930-2002

17'

slide-18
SLIDE 18

18'

slide-19
SLIDE 19

1 2 3 “If a packet is going to B, then send it to output 3”

  • 1. Figure out which routers and links are present.
  • 2. Run Dijkstra’s algorithm to find shortest paths.

Data' B'

B

19'

slide-20
SLIDE 20

95% 5%

50,000 lines of code

  • 1. Figure out which routers and links are present.
  • 2. Run Dijkstra’s algorithm to find shortest paths.

20'

B''

slide-21
SLIDE 21

Specialized Hardware

OS'

%

' ' ' '

'

Dijkstra'

Network' Map'

95%% 5%%

Dijkstra' Network'OS'

Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' '

Global Network Map

21'

slide-22
SLIDE 22

Network'FuncLon'VirtualizaLon'(NFV)'

Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' ' Middlebox' ' ' Middlebox' ' ' Middlebox' ' ' Middlebox' ' Public'Internet' '

22'

slide-23
SLIDE 23

Network'FuncLon'VirtualizaLon'(NFV)'

Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' Packet' Forwarding'' ' ' Middlebox' ' Public'Internet' '

VM' VM' VM' VM' VM' VM'

Packet' Forwarding'' ' Packet' Forwarding'' '

23'

slide-24
SLIDE 24

Dijkstra'

Network'OS'

IS4IS' BGP' MPLS' NFV'

Global Network Map

24'

slide-25
SLIDE 25

Outline'

  • MoLvaLons'and'history'of'SDN''
  • Use'cases'of'SDN'
  • SDN'and'the'change'in'the'networking'stack'
  • What'is'P4'and''

Protocol'Independent'Packet'Processing?'

  • Introducing'PISCES'

25'

slide-26
SLIDE 26

Tens'of'millions'of'lines'of'code.' Closed,'proprietary,'outdated.'

Specialized Control Plane Specialized Hardware Specialized Features

Hundreds'of'protocols' 7,000'RFCs' Billions'of'gates.' Power'hungry'and'bloated.'

26'

slide-27
SLIDE 27

Vertically integrated Closed, proprietary Slow innovation

Specialized Operating System Specialized Hardware App' App' App' App' App' App' App' App' App' App' App' Specialized Applications

Horizontal Open interfaces Rapid innovation

Microprocessor

Open Interface

Linux' Mac' OS'

Windows' (OS)'

  • r
  • r

Open Interface

27'

slide-28
SLIDE 28

Vertically integrated Closed, proprietary Slow innovation

App' App' App' App' App' App' App' App' App' App' App'

Horizontal Open interfaces Rapid innovation

Control' Plane' Control' Plane' Control' Plane'

  • r
  • r

Open Interface

Merchant Switching Chips

Open Interface

Specialized Operating System Specialized Hardware Specialized Applications

28'

slide-29
SLIDE 29

I'can'customize'my'networks!...?'

  • 1. See'what'my'forwarding'plane'is'doing.'
  • 2. Quickly'deploy'new'protocols'
  • 3. Put'expensive'middlebox'funcLons'into'the'network.'
  • 4. DifferenLate.'Now'I'own'my'intellectual'property.'
  • 5. Try'out'beauLful'new'ideas.'Tailor'my'network'to'meet'my'needs.'

29'

Not'Really…'

slide-30
SLIDE 30

“This'is'how'I'process'packets”'

Switch'OS'

Run4Lme'API'

Driver' Fixed'funcLon'switch'

What'about'the'fixed'funcLon'switch?'

30'

slide-31
SLIDE 31

Problems:'Fixed'funcLon'switch'

  • 1. Slow'innovaLon'

Several'months'or'years'to'add'a'new'feature'or'protocol'

  • 2. Inefficient'

Match'tables'hard4wired'to'specific'purpose'

  • 3. Complicated'

Switch'implements'superset'of'all'features'

  • 4. Leads'to'borom4up'design'

FrustraLng'for'programmers'

31'

slide-32
SLIDE 32

“This'is'how'the'switch'must' process'packets”' '

Switch'OS'

Run4Lme'API'

Driver' Programmable'Switch'

What'we'want:'Programmable'Switch'

32'

P4'can'help'us'do'this!'

slide-33
SLIDE 33

Outline'

  • MoLvaLons'and'history'of'SDN''
  • Use'cases'of'SDN'
  • SDN'and'the'change'in'the'networking'stack'
  • What'is'P4'and''

Protocol'Independent'Packet'Processing?'

  • Introducing'PISCES'

33'

slide-34
SLIDE 34

P4'

P4:' 'Programming'Protocol4Independent' ' 'Packet'Processors'

ACM'CCR.'Volume'44,'Issue'#3'(July'2014)' ' Pat'Bosshart,'Glen'Gibb,'MarLn'Izzard,'and'Dan'Talayco'(Barefoot'Networks),' Dan'Daly'(Intel),'Nick'McKeown'(Stanford),'Cole'Schlesinger'and'David'Walker' (Princeton),'Amin'Vahdat'(Google),'and'George'Varghese'(Microso8)'

34'

www.p4.org

slide-35
SLIDE 35

Phases'for'Protocol4Independent' Packet'Processing'

Phase%0.'IniLally,'the'switch'does'not'know'what'a' protocol'is,'or'how'to'process'packets'' (Protocol'Independence)' ' Phase%1.'We'tell'the'switch'how'we'want'it'to'process' packets'(ConfiguraLon)' ' Phase%2.'The'switch'runs'(Run4Lme)'

35'

slide-36
SLIDE 36

Three'Goals'

Protocol'independence'

– Configure'a'packet'parser' – Define'a'set'of'typed'match+acLon'tables'

Target'independence'

– Program'without'knowledge'of'switch'details' – Rely'on'compiler'to'configure'the'target'switch'

Reconfigurability'

– Change'parsing'and'processing'in'the'field'

36'

slide-37
SLIDE 37

37'

slide-38
SLIDE 38

Parser' Match+AcLon'Tables' Queues/' Scheduling'

IniLally,'a'switch'is'unprogrammed'' and'does'not'know'any'protocols.'

The Abstract Forwarding Model

Packet'Metadata'

38'

slide-39
SLIDE 39

Protocol'' Authoring'

1'

L2_L3.p4'

Compile'

2'

Configure'

3'

Parser' Match+AcLon'Tables' Queues/' Scheduling' Packet'Metadata'

TCP' New' IPv4' IPv6'

VLAN'

Eth'

Run4Lme'API'

Driver'

Switch'OS'

Run!'

4'

39'

slide-40
SLIDE 40

Protocol'' Authoring'

1'

L2_L3.p4'

Compile'

2'

Configure'

3'

Parser' Match+AcLon'Tables' Queues/' Scheduling' Packet'Metadata'

Run4Lme'API'

Driver'

Switch'OS'

Run!'

4'

OF143.p4'

40'

slide-41
SLIDE 41

P4'in'Detail'

  • Headers'and'Fields'
  • The'Parser'
  • Match+AcLon'Tables'
  • Control'flow'

41'

slide-42
SLIDE 42

Headers'and'Fields'

header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } } /* Instance of eth header */ header ethernet_t first_ethernet;

Header'Fields:'Ethernet'

header_type standard_metadata_t { fields { ingress_port : 32; packet_length : 32; ingress_timestamp : 32; egress_spec : 32; egress_port : 32; egress_instance : 32; } } metadata standard_metadata_t std_metadata;

Metadata'

42'

slide-43
SLIDE 43

The'Parser'

parser parse_ethernet { extract(ethernet); return switch(latest.etherType) { ETHERTYPE_VLAN : parse_vlan; ETHERTYPE_MPLS : parse_mpls; ETHERTYPE_IPV4 : parse_ipv4; ETHERTYPE_IPV6 : parse_ipv6; ETHERTYPE_ARP : parse_arp_rarp; ETHERTYPE_RARP : parse_arp_rarp; } } parser parse_ipv4 { extract(ethernet); return switch(latest.etherType) { PROTO_TCP : parse_tcp; PROTO_UDP : parse_udp; ... } }

Parser:'Ethernet' Parser:'IPv4'

43'

slide-44
SLIDE 44

Match+Action Tables

44'

Specifies'

– Which'fields'to'examine'in'each'packet' – AcLons'that'may'be'applied'(by'rule)' – Table'size'(opLonal)'

table port_vlan { reads { std_metadata.ingress_port : exact; vlan_tag[OUTER_VLAN].vid : exact; } actions { drop, ing_lif_extract; } size 16384; }

Match+AcLon'Table:'VLAN'

table urpf_check { reads { routing_metadata.bd : ternary; ipv4.dstAddr : ternary; } actions { urpf_clear, urpf_set; } }

Match+AcLon'Table:'Unicast'RPF'

slide-45
SLIDE 45

AcLons'

Built'from'primiLves'

– modify'field'(packet'header'or'metadata)' – add/remove'header' – clone/recirculate' – counter/meter/stateful'memory'operaLons'

Parallel semantics

/* Ingress logical interface setup */ action ingress_lif_extract(i_lif, bd, vrf, v4term, v6term, igmp_snoop) { modify_field(route_md.i_lif, i_lif); modify_field(route_md.bd, bd); modify_field(route_md.vrf, vrf); modify_field(route_md.ipv4_term, v4term, 0x1); modify_field(route_md.ipv6_term, v6term, 0x1); modify_field(route_md.igmp_snoop, igmp_snoop, 0x1); }

AcLons:'LIF'Extract'

45'

slide-46
SLIDE 46

Control'Flow'

control ingress { apply_table(port); apply_table(bcast_storm); apply_table(ip_sourceguard); if (valid(vlan_tag[0])) { apply_table(port_vlan); } apply_table(bridge_domain); if (valid(mpls_bos)) { apply_table(mpls_label); } retrieve_tunnel_vni(); if (valid(vxlan) or valid(genv) or valid(nvgre)) { apply_table(dest_vtep); apply_table(src_vtep); } . . . . }

Control'Flow:'Ingress'

46'

slide-47
SLIDE 47

Switch'

' '

Packet'Forwarding' Engine'

Compiler'

Switch'

' '

Packet'Forwarding' Engine'

Compiler'

P4%Program/Library%

The'P4'View'of'the'World'

Switch'

' '

Packet'Forwarding' Engine'

Switch'configuraLon' Compiler' A'compiler'per'target'

47'

slide-48
SLIDE 48

P4%Program/Library%

PISCES:'First'Ever'P4'to'vSwitch'Compiler'

Open'vSwitch'

' '

Packet'Forwarding' Engine'

PISCES'Compiler'

48'

slide-49
SLIDE 49

Outline'

  • MoLvaLons'and'history'of'SDN''
  • Use'cases'of'SDN'
  • SDN'and'the'change'in'the'networking'stack'
  • What'is'P4'and''

Protocol'Independent'Packet'Processing?'

  • Introducing'PISCES'

49'

slide-50
SLIDE 50

Importance'of'So8ware'Switches'

Hypervisor*

OVS$

VM* VM* VM* VM* Hypervisor*

OVS$

VM* VM* VM* VM*

OVS$

VM* VM* VM* VM* Hypervisor* Hypervisor*

OVS$

VM* VM* VM* VM* ToR* ToR' ToR' ToR*

50'

Core*

slide-51
SLIDE 51

Importance'of'So8ware'Switches'

Hypervisor* VM* VM* VM* VM* Hypervisor* VM* VM* VM* VM* VM* VM* VM* VM* Hypervisor* Hypervisor* VM* VM* VM* VM* ToR* ToR' ToR' ToR*

51'

Core*

OVS$ OVS$ OVS$ OVS$

slide-52
SLIDE 52

Ease'of'CustomizaLon?'

OVS$

VM* VM* VM* VM* Hypervisor* ToR*

Enable'Rapid%Development'and' Deployment'of'Network%Features!%

Is%it%REALLY%the%case?%

52'

Core*

slide-53
SLIDE 53

Ease'of'CustomizaLon?''

VM* VM* VM* VM* Hypervisor* Hypervisor* VM* VM* VM* VM* For'example,'OVS'supports'following' tunneling'protocols:'

'

4 VXLAN:'Virtual'Extensible'LAN' 4 STT:'Stateless'Transport'Tunneling' 4 NVGRE:'Network'VirtualizaLon' Generic'RouLng' ToR* ToR*

53'

Core*

OVS$ OVS$

slide-54
SLIDE 54

Fast*Packet*IO*(or* Forwarding)*

Rapid'Development'&'Deployment?'

54'

OVS$

Kernel* DPDK*

slide-55
SLIDE 55

Rapid'Development'&'Deployment?'

55'

Packet*Processing*Logic*

OVS$

Kernel* DPDK*

Parser* MatchCAction*Pipeline*

Requires%domain%experTze%in:%

'

4 Network'protocol%design' 4 So8ware'development' 4 Develop% 4 Test% 4 Deploy% …'large,'complex'codebases.'' 4 Maintaining%changes'across'releases' Arcane%APIs% 4 Can'take'3Y6%months'to'get'a'new' feature'in.'

slide-56
SLIDE 56

Rapid'Development'&'Deployment?'

56'

Kernel* DPDK*

Parser* MatchCAction*Pipeline* OVS$

slide-57
SLIDE 57

Rapid'Development'&'Deployment?'

57'

Kernel* DPDK*

Parser* MatchCAction*Pipeline* OVS$

slide-58
SLIDE 58

Rapid'Development'&'Deployment?'

58'

Kernel* DPDK*

OVS$ P4$ Parser* MatchCAction*Pipeline*

Compile*

Parser* MatchCAction*Pipeline* NaTve%OVS'

341'lines'of'code' 14,535%lines'of'code'

slide-59
SLIDE 59

Rapid'Development'&'Deployment?'

59'

Kernel* DPDK*

OVS$ P4$ Parser* MatchCAction*Pipeline* Parser* MatchCAction*Pipeline*

Performance%overhead!%

Compile*

slide-60
SLIDE 60

What’s'the'cost'of'programmability'on' Performance?'

60'

slide-61
SLIDE 61

PISCES:'A'Protocol4Independent'So8ware'Switch'

61'

PISCES$

vSwitch*

P4* OVS*

slide-62
SLIDE 62

PISCES:'A'Protocol4Independent'So8ware'Switch'

62'

$

*

Compiler* P4* OVS*

parse* match* action*

Executable*

Runtime*Flow*Rules*

Flow*Rule*Checker*

slide-63
SLIDE 63

PISCES:'A'Protocol4Independent'So8ware'Switch'

4 P4'and'OVS'packet%forwarding%models.' 4 Performance%overhead'of'a'naïve%mapping'from' P4'to'OVS.' 4 PISCES%compiler%opTmizaTons'to'reduce'the' performance'overhead.'

slide-64
SLIDE 64

P4'Forwarding'Model'(or'Post4Pipeline'EdiLng)'

64'

Packet* Parser* MatchC Action* Tables*

Packet* Deparser*

Ingress* Egress* Header* Fields* Ingress*Packet* Egress*Packet*

slide-65
SLIDE 65

OVS'Forwarding'Model'(or'Inline'EdiLng)'

65'

Packet* Parser* MatchC Action* Tables* Ingress* Egress* Egress*Packet* Ingress*Packet*

slide-66
SLIDE 66

(Modified)'OVS'Forwarding'Model'

66'

Packet* Parser* MatchC Action* Tables* Packet$

Deparser$

Ingress* Egress*

4 Supports'both'ediLng'modes:' 4 Inline%EdiTng% 4 PostYpipeline%EdiTng%

slide-67
SLIDE 67

Naïve'Mapping'from'P4'to'OVS'

0' 10' 20' 30' 40' 50' 64' 128' 192' 256'

Throughput'(Gbps)' Packet'Size'(Bytes)'

PISCES'(unopLmized)' OVS'

A'naïve'compilaLon'of'L2L3YACL%benchmark'applicaLon'

Performance'overhead'of'

~'40%'

67'

slide-68
SLIDE 68

Causes'of'Performance'DegradaLon'

Packet* Parser* MatchC Action* Pipeline*

Packet* Deparser*

Ingress* Egress* CPU%Cycles%per%Packet%

68'

slide-69
SLIDE 69

Causes'of'Performance'DegradaLon'

69'

4 Factors'affecLng'CPU'cycles:' 4 Extra%copy%of%headers'in'the'post4pipeline'ediLng' mode' 4 FullyYspecified%checksum'calculaLon' 4 Redundant%parsing'of'header'fields'and'more'…'

slide-70
SLIDE 70

Causes'of'Performance'DegradaLon'

4 PostYpipeline'ediLng'consumes'2x'more'cycles'than'inline'

ediLng'when'parsing%VXLAN%protocol.'

EdiTng%Mode% Pros% Cons%

Post4Pipeline' Extra%copy%of%headers% Inline' No%extra%copy%of%headers%

Factor'#1:'Extra%copy%of%headers%

slide-71
SLIDE 71

Causes'of'Performance'DegradaLon'

EdiTng%Mode% Pros% Cons%

Post4Pipeline' Packets%are%adjusted%once% Extra'copy'of'headers' Inline' No'extra'copy'of'headers' MulTple%adjustments%to%packet%

Factor'#1:'Extra%copy%of%headers%

0' 200' 400' 600' 800' Deparse' x1' x2' x4' x8' x16'

Cycles'per'Packet' Number'of'adjustments'

Post4Pipeline'EdiLng' Inline'EdiLng'

Inline%ediTng% PostYpipeline%ediTng%

slide-72
SLIDE 72

Causes'of'Performance'DegradaLon'

Factor'#2:'FullyYSpecified%Checksums%

Checksum$(* ****version,*ihl,*diffserv,*totalLen,** ****identification,*flags,*fragOffset,** ****ttl,*protocol,*hdrChecksum,******* ****srcAddr,*dstAddr)*

Incremental8Checksum$(ttl)*

Packet* Deparser*

Egress* Packet* Parser* Ingress*

decrement(ttl)*

slide-73
SLIDE 73

Causes'of'Performance'DegradaLon'

Factor'#3:'Redundant%parsing%of%headers%

Packet* Deparser*

Egress* Packet* Parser* Ingress* MatchC Action* Pipeline* L2' L2' L4' L3'

slide-74
SLIDE 74

OpLmizing'for'CPU'Cycles'

74'

OpTmizaTons%

Inline'vs.'post4pipeline'ediLng' Incremental'checksum' Parser'specializaLon' AcLon'specializaLon' AcLon'coalescing'

slide-75
SLIDE 75

OpLmizing'for'CPU'Cycles'

OpTmizaTons%

Inline'vs.'post4pipeline'ediLng' Incremental'checksum' Parser'specializaLon' AcLon'specializaLon' AcLon'coalescing'

75'

Extra'Copy'of'Headers' Fully4Specified'Checksum' Redundant'Parsing'

slide-76
SLIDE 76

OpLmizing'for'CPU'Cycles'

76'

OpTmizaTons%

Inline'vs.'post4pipeline'ediLng' Incremental'checksum' Parser'specializaLon' AcLon'specializaLon' AcLon'coalescing'

slide-77
SLIDE 77

OpLmized'Mapping'from'P4'to'OVS'

0' 10' 20' 30' 40' 50' 64' 128' 192' 256'

Throughput'(Gbps)' Packet'Size'(Bytes)'

PISCES'(unopLmized)' PISCES'(OpLmized)' OVS'

Performance'overhead'of'

<'2%'

All%opTmizaTons'together''

77'

slide-78
SLIDE 78

Next%Steps'

78'

4 Support'for'stateful%memories%and'INT% % 4 IntegraTon'with'the'mainline%OVS%

slide-79
SLIDE 79

Summary'

79'

4 SDN'brought'huge'changes'to'how'networks'operate' 4 There'is'sLll'a'missing'gap'between'the'current'state'

  • f'SDN'and'a'fully'programmable'network'

4 P4'is'a'new'tool'fill'in'the'missing'gap' 4 PISCES%is'first'to'show'that'programmability'using'P4' comes'at'a'very'small'overhead'while'bringing'huge' benefits%

slide-80
SLIDE 80

QuesLons?'

80'