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' • SDN'and'the'change'in'the'networking'stack' • What'is'P4'and'' Protocol'Independent'Packet'Processing?' • Introducing'PISCES' 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' 3'
What is Software-Defined Networking (SDN)? 4'
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'
So8ware'Defined'Network'(SDN)' Control Control Control Program Program Program Global Network Map Control'Plane' ' Control' ' Packet' ' Control' Forwarding'' Packet' ' ' Forwarding'' ' ' Control' Packet' ' Control' Packet' Forwarding'' ' Forwarding'' ' Control' Packet' ' ' Forwarding'' ' 6'
So8ware'Control'Plane' ' Control' ' Packet' ' SDN Control' Forwarding'' Packet' ' ' Forwarding'' ' ' Control' Packet' ' Control' Forwarding'' Packet' ' ' Forwarding'' Control' Packet' ' ' Forwarding'' ' 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.' 7'
Origins'of'SDN' MarLn'Casado' The'Ethane'Project' [SIGCOMM'2007]' 8'
How'difficult'is'it'to'define'all'network' operaLons'in'so8ware,'outside'the'data'path?' Stanford'campus' 2006 35,000 users 2,000 switches 10,000 new flows/sec 2,000 switch CPUs 137 network policies 9'
Crazy'quesLon:'What'if'so8ware'decides'whether' to'accept'each'flow,'and'how'to'route'it? ' Controllers' 1. Check'flow'against'policy' 2. Pick'route' B' A' 10'
How'many'$400'controller' servers'do'we'need'to'service' 35,000'users?' 11'
Less'than'One' 12'
If'we'can'define'network'behavior'outside'the' data'path,'then'eventually'we'will.' 13'
What'happened'next' SDN,'OpenFlow,'Open'vSwitch,'Network'VirtualizaLon,'…' About'250'startups'so'far.' Source:'SDX'Central' 14'
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'
SDN use cases Routing and NFV 16'
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 ; Edsger Dikjstra decrease-key v in Q; return dist[], previous[]; 1930-2002 end function 17'
18'
1. Figure out which routers and links are present. 2. Run Dijkstra’s algorithm to find shortest paths. “If a packet is going to B, then send it to output 3” Data' B' 2 1 B 3 19'
95% 1. Figure out which routers and links are present. 2. Run Dijkstra’s algorithm to find shortest paths. 5% 50,000 lines of code B'' 20'
Dijkstra' % Global Network Map Dijkstra ' 5%% ' Network'OS' ' Network' ' 95%% Map' ' ' Packet' OS ' Forwarding'' ' Specialized Packet' Hardware Forwarding'' Packet' Forwarding'' ' Packet' ' Forwarding'' ' 21'
Network'FuncLon'VirtualizaLon'(NFV)' Public'Internet' ' ' Middlebox' ' ' ' ' Middlebox' Middlebox' Middlebox' ' ' ' Packet' Forwarding'' Packet' ' Forwarding'' ' Packet' Packet' Forwarding'' ' Forwarding'' Packet' ' Forwarding'' ' 22'
Network'FuncLon'VirtualizaLon'(NFV)' Public'Internet' ' Packet' ' VM' VM' VM' Middlebox' Forwarding'' VM' VM' VM' ' ' Packet' Forwarding'' Packet' ' Forwarding'' ' Packet' Forwarding'' Packet' ' Forwarding'' Packet' ' Forwarding'' ' 23'
Dijkstra' IS4IS' BGP' MPLS' NFV' Global Network Map Network'OS ' 24'
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'
Hundreds'of'protocols' Specialized Features 7,000'RFCs' Specialized Tens'of'millions'of'lines'of'code.' Control Closed,'proprietary,'outdated.' Plane Billions'of'gates.' Specialized Power'hungry'and'bloated.' Hardware 26'
App' App' App' App' App' App' App' App' App' App' App' Specialized Applications Open Interface Specialized Windows' Mac' Linux' or or Operating (OS)' OS' System Open Interface Specialized Hardware Microprocessor Vertically integrated Horizontal Closed, proprietary Open interfaces Slow innovation Rapid innovation 27'
App' App' App' App' App' App' App' App' App' App' App' Specialized Applications Open Interface Specialized Control' Control' Control' or or Operating Plane' Plane' Plane' System Open Interface Specialized Merchant Hardware Switching Chips Vertically integrated Horizontal Closed, proprietary Open interfaces Slow innovation Rapid innovation 28'
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.' Not'Really…' 29'
What'about'the'fixed'funcLon'switch?' Switch'OS' Run4Lme'API' Driver' “This'is'how'I'process'packets”' Fixed'funcLon'switch' 30'
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'
What'we'want:'Programmable'Switch' “This'is'how'the'switch'must' Switch'OS' process'packets”' ' Run4Lme'API' Driver' P4'can'help'us'do'this!' Programmable'Switch' 32'
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'
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)' www.p4.org 34'
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'
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'
37'
The Abstract Forwarding Model IniLally,'a'switch'is'unprogrammed'' and'does'not'know'any'protocols.' Queues/' Parser' Match+AcLon'Tables' Scheduling' Packet'Metadata' 38'
1' Switch'OS' L2_L3.p4' Protocol'' 4' Authoring' Run!' 2' Run4Lme'API' Compile' Eth' Driver' VLAN' 3' Configure' IPv4' IPv6' New' TCP' Queues/' Parser' Match+AcLon'Tables' Scheduling' Packet'Metadata' 39'
1' Switch'OS' L2_L3.p4' Protocol'' 4' OF143.p4' Authoring' Run!' 2' Run4Lme'API' Compile' Driver' 3' Configure' Queues/' Parser' Match+AcLon'Tables' Scheduling' Packet'Metadata' 40'
P4'in'Detail' • Headers'and'Fields' • The'Parser' • Match+AcLon'Tables' • Control'flow' 41'
Headers'and'Fields' Header'Fields:'Ethernet' Metadata' header_type ethernet_t { header_type standard_metadata_t { fields { fields { dstAddr : 48; ingress_port : 32; srcAddr : 48; packet_length : 32; etherType : 16; ingress_timestamp : 32; } egress_spec : 32; } egress_port : 32; egress_instance : 32; /* Instance of eth header */ } header ethernet_t first_ethernet; } metadata standard_metadata_t std_metadata; 42'
The'Parser' Parser:'Ethernet' Parser:'IPv4' parser parse_ethernet { parser parse_ipv4 { extract (ethernet); extract (ethernet); return switch ( latest .etherType) { return switch ( latest .etherType) { ETHERTYPE_VLAN : parse_vlan; PROTO_TCP : parse_tcp; ETHERTYPE_MPLS : parse_mpls; PROTO_UDP : parse_udp; ETHERTYPE_IPV4 : parse_ipv4; ... ETHERTYPE_IPV6 : parse_ipv6; } ETHERTYPE_ARP : parse_arp_rarp; } ETHERTYPE_RARP : parse_arp_rarp; } } 43'
Recommend
More recommend