Rocker Scott Feldman netdev 0.1 2015 Ottawa Proceedings of netdev - - PowerPoint PPT Presentation

rocker
SMART_READER_LITE
LIVE PREVIEW

Rocker Scott Feldman netdev 0.1 2015 Ottawa Proceedings of netdev - - PowerPoint PPT Presentation

Rocker Scott Feldman netdev 0.1 2015 Ottawa Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada Network OS Mgmt Control Monitoring CLI Protocols Power Forwarding


slide-1
SLIDE 1

Rocker

Scott Feldman netdev 0.1 2015 Ottawa

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-2
SLIDE 2

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-3
SLIDE 3

Mgmt CLI Network OS Control Protocols Monitoring Power Mgmt Forwarding Databases Automation

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-4
SLIDE 4

Mgmt CLI Network OS Control Protocols Monitoring Power Mgmt Forwarding Databases Automation Hardware Access SDK NDA $$$

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-5
SLIDE 5

Mgmt CLI Linux Control Protocols Monitoring Power Mgmt Forwarding Databases Automation Hardware Access SDK NDA $$$

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-6
SLIDE 6

Mgmt CLI Linux Control Protocols Monitoring Power Mgmt Forwarding Databases Automation Hardware Access Switchdev driver

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-7
SLIDE 7

Mgmt CLI Linux Control Protocols Monitoring Power Mgmt Forwarding Databases Automation Hardware Access Switchdev rocker driver

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-8
SLIDE 8

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-9
SLIDE 9

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-10
SLIDE 10

guest system rocker device host system

  • device rocker,name=sw1,len-ports=4,ports[0]=dev1,ports[1]=dev2, \

ports[2]=dev3,ports[3]=dev4

Qemu VM PCI

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-11
SLIDE 11

guest system rocker device

tap0 tap1 tap2 tap3

  • netdev tap,ifname=tap1,dev=dev1 -netdev tap,ifname=tap2,dev=dev2 -netdev \ tap,

ifname=tap3,dev=dev3 -netdev tap,ifname=tap4,dev=dev4

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-12
SLIDE 12

guest system rocker device

tap1 tap2 tap3 tap4 world 1 world 2

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-13
SLIDE 13

Ingress Port Flow Table VLAN Flow Table Termination MAC Flow Table Unicast Routing Flow Table Multicast Routing Flow Table Bridging Flow Table ACL Policy Flow Table Apply Actions

  • push/pop
  • edits
  • output

Ingress Port Egress Port Group Table Entries L2 Interface L2 Multicast L2 Flood L3 Interface L3 Unicast L3 Multicast L3 ECMP L2 Overlay Multicast L2 Overlay Flood

OF-DPA* World

*OpenFlow™ Data Plane Abstraction (OF-DPA), version 1.0 http://www.broadcom.com/collateral/etp/OFDPA_OASS-ETP101-R.pdf

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-14
SLIDE 14

guest system rocker device

tap1 tap2 tap3 tap4

Linux kernel rocker driver

eth1 eth2 eth3 eth4

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-15
SLIDE 15

guest system rocker device

tap1 tap2 tap3 tap4

Linux kernel rocker driver

eth1 eth2 eth3 eth4 br0

  • ffloaded forwarding data

path control path

FDB

L2 Offload

FDB

STP BPDU

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-16
SLIDE 16

$ /sbin/bridge fdb 33:33:00:00:00:01 dev eth0 self permanent 01:00:5e:00:00:01 dev eth0 self permanent 33:33:ff:00:00:00 dev eth0 self permanent 01:80:c2:00:00:0e dev eth0 self permanent 52:54:00:12:35:01 dev swp1 master br0 permanent 00:02:00:00:02:00 dev swp1 master br0 external 00:02:00:00:02:00 dev swp1 self 52:54:00:12:35:02 dev swp2 master br0 permanent 00:02:00:00:03:00 dev swp2 master br0 external 00:02:00:00:03:00 dev swp2 self 33:33:00:00:00:01 dev br0 self permanent 01:00:5e:00:00:01 dev br0 self permanent 33:33:ff:12:35:01 dev br0 self permanent Learned by switch

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-17
SLIDE 17

(qemu) info rocker-of-dpa-flows sw1 prio tbl hits key(mask) --> actions 3 50 10 vlan 3840 dst 00:02:00:00:03:00 --> write group 0x0f000002 goto tbl 60 3 50 13 vlan 3840 dst 00:02:00:00:02:00 --> write group 0x0f000001 goto tbl 60 1 30 IP dst 11.0.0.0/32 --> write group 0x0f000000 goto tbl 60 1 30 IP dst 11.0.0.0/24 --> write group 0x0f000000 goto tbl 60 1 30 IP dst 11.0.0.255/32 --> write group 0x0f000000 goto tbl 60 1 30 10 IP dst 11.0.0.3/32 --> write group 0x0f000000 goto tbl 60 0 20 pport 2 vlan 3840 IPv6 dst 52:54:00:12:35:02 --> goto tbl 30 0 20 pport 2 vlan 3840 IP dst 52:54:00:12:35:02 --> goto tbl 30 1 20 8 pport 2 vlan 3840 IPv6 dst 33:33:00:00:00:00(ff:ff:00:00:00:00) --> goto tbl 40 1 20 pport 2 vlan 3840 IP dst 01:00:5e:00:00:00(ff:ff:ff:80:00:00) --> goto tbl 40 3 60 1 pport 2 vlan 3840 dst 01:80:c2:00:00:00(ff:ff:ff:ff:ff:f0) --> write group 0x0f000000 0 20 pport 1 vlan 3840 IPv6 dst 52:54:00:12:35:01 --> goto tbl 30 0 20 10 pport 1 vlan 3840 IP dst 52:54:00:12:35:01 --> goto tbl 30 1 50 6 vlan 3840 --> write group 0x4f000000 goto tbl 60 1 20 8 pport 1 vlan 3840 IPv6 dst 33:33:00:00:00:00(ff:ff:00:00:00:00) --> goto tbl 40 1 20 pport 1 vlan 3840 IP dst 01:00:5e:00:00:00(ff:ff:ff:80:00:00) --> goto tbl 40 3 60 1 pport 1 vlan 3840 dst 01:80:c2:00:00:00(ff:ff:ff:ff:ff:f0) --> write group 0x0f000000 1 10 22 pport 2 vlan 0 --> apply new vlan 3840 goto tbl 20 1 10 33 pport 1 vlan 0 --> apply new vlan 3840 goto tbl 20 1 0 55 pport 0(0xffff0000) --> goto tbl 10 (qemu) info rocker-of-dpa-groups sw1 id (decode) --> buckets 0x0f000002 (type L2 interface vlan 3840 pport 2) --> pop vlan out pport 2 0x0f000001 (type L2 interface vlan 3840 pport 1) --> pop vlan out pport 1 0x4f000000 (type L2 flood vlan 3840 index 0) --> groups [0x0f000002,0x0f000001] 0x0f000000 (type L2 interface vlan 3840 pport 0) --> pop vlan out pport 0

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-18
SLIDE 18

guest system rocker device

tap1 tap2 tap3 tap4

Linux kernel rocker driver

eth1 eth2 eth3 eth4

  • ffloaded forwarding data

path control path

FIB OSPF BGP FIB

L3 Offload

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-19
SLIDE 19

Future

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-20
SLIDE 20

guest system rocker device

tap1 tap2 tap3 tap4

Linux kernel rocker driver

eth1 eth2 eth3 eth4

  • ffloaded traffic

control path

ACL nftables

ACL Offload

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-21
SLIDE 21

Linux rocker device

tap1 tap2 tap3 tap4

kernel rocker driver

eth1 eth2 eth3 eth4

  • penvswitch

OVS Offload

FDB OVS OVSDB Remote Controller

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-22
SLIDE 22

guest system rocker device

tap1 tap2 tap3 tap4 world 1 world 2

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-23
SLIDE 23

P4

blah { blah { blah blah } }

Fixed pipeline, c. 2014 rocker device

tap1 tap2 tap3 tap4 P4 world eBPF world

eBPF

struct bpf_insn prog [] = { BLAH(blah), }

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada

slide-24
SLIDE 24

Questions? Answers?

Proceedings of netdev 0.1, Feb 14-17, 2015, Ottawa, On, Canada