pisces a programmable protocol4 independent so8ware
play

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'


  1. PISCES:'A'Programmable,'Protocol4 Independent'So8ware'Switch' [SIGCOMM'2016] ' Sean%Choi% Slide'Credits'to' Professor'Nick'McKeown'and'Muhammad'Shahbaz'

  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'

  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'

  4. What is Software-Defined Networking (SDN)? 4'

  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'

  6. 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'

  7. 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'

  8. Origins'of'SDN' MarLn'Casado' The'Ethane'Project' [SIGCOMM'2007]' 8'

  9. 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'

  10. 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'

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

  12. Less'than'One' 12'

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

  14. What'happened'next' SDN,'OpenFlow,'Open'vSwitch,'Network'VirtualizaLon,'…' About'250'startups'so'far.' Source:'SDX'Central' 14'

  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'

  16. SDN use cases Routing and NFV 16'

  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 ; Edsger Dikjstra decrease-key v in Q; return dist[], previous[]; 1930-2002 end function 17'

  18. 18'

  19. 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'

  20. 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'

  21. Dijkstra' % Global Network Map Dijkstra ' 5%% ' Network'OS' ' Network' ' 95%% Map' ' ' Packet' OS ' Forwarding'' ' Specialized Packet' Hardware Forwarding'' Packet' Forwarding'' ' Packet' ' Forwarding'' ' 21'

  22. Network'FuncLon'VirtualizaLon'(NFV)' Public'Internet' ' ' Middlebox' ' ' ' ' Middlebox' Middlebox' Middlebox' ' ' ' Packet' Forwarding'' Packet' ' Forwarding'' ' Packet' Packet' Forwarding'' ' Forwarding'' Packet' ' Forwarding'' ' 22'

  23. 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'

  24. Dijkstra' IS4IS' BGP' MPLS' NFV' Global Network Map Network'OS ' 24'

  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'

  26. 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'

  27. 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'

  28. 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'

  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.' Not'Really…' 29'

  30. What'about'the'fixed'funcLon'switch?' Switch'OS' Run4Lme'API' Driver' “This'is'how'I'process'packets”' Fixed'funcLon'switch' 30'

  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'

  32. 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'

  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'

  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)' www.p4.org 34'

  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'

  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'

  37. 37'

  38. The Abstract Forwarding Model IniLally,'a'switch'is'unprogrammed'' and'does'not'know'any'protocols.' Queues/' Parser' Match+AcLon'Tables' Scheduling' Packet'Metadata' 38'

  39. 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'

  40. 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'

  41. P4'in'Detail' • Headers'and'Fields' • The'Parser' • Match+AcLon'Tables' • Control'flow' 41'

  42. 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'

  43. 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'

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend