data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up forwarding control and device config. • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Networking Data Plane Application ISA ABI/API Computing Hardware Operating System ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface ISA
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up forwarding control and device config. • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Data Plane Operating System Application ISA ABI/API Computing Hardware Networking ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up forwarding control and device config. • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane SB API Data Plane Operating System Application ISA ABI/API Computing Hardware SDN ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up forwarding control and device config. • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane SB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up forwarding control and device config. • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane SB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up forwarding control and device config. • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane SB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up control plane for programmability • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Application Plane SB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up control plane for programmability • Current: Different needs, different architectures – Kinds of control plane: centralized, distributed, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Application Plane SB API NB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound Northbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up control plane for programmability • Current: Different needs, different architectures – Kinds of control plane: centralized, centralized-clustered, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Application Plane SB API NB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound Northbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up control plane for programmability • Current: Different needs, different architectures – Kinds of control plane: centralized, centralized-clustered, hybrid – Limitations of OpenFlow – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Application Plane SB API NB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound Northbound
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up control plane for programmability • Current: Different needs, different architectures – Kinds of control plane: centralized, centralized-clustered, hybrid – Limitations of OpenFlow, proliferation of white box switches – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Application Plane SB API NB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound Northbound Global and local controllers
data plane – Network management • Controller acts as “an outsider” – OpenFlow (w)as the de facto standard – Opens up control plane for programmability • Current: Different needs, different architectures – Kinds of control plane: centralized, centralized-clustered, hybrid – Limitations of OpenFlow, proliferation of white box switches – Needs to accommodate protocols/mechanisms/approaches/etc. Control Plane Application Plane SB API NB API SDN Data Plane Operating System Application ISA ABI/API Computing Hardware ISA = Instruction set architecture ABI = Application binary interface API = Application programming interface Southbound Northbound Global and local controllers The other side: programmable data plane
– Platform with extensible and modular applications +distributed – Considered as “carrier-grade” with many uses in major providers • Based on Java – LTS release: 2.2 with JDK 11 and Karaf 4 – Southbound: OpenFlow/P4Runtime/gN*, Northbound: REST/gRPC – Future version: µONOS based on with cloud-native in mind • NG-SDN: “µONOS, Stratum, P4” * https://github.com/opennetworkinglab/ngsdn-tutorial open at least in trial or r&d phase
testing software • ONOS 1.14+ use Bazel. Prev: Maven, Buck • Bazelisk, “a user-friendly launcher for Bazel” – A wrapper for Bazel – Picks a good version of Bazel for your system * https://github.com/bazelbuild/bazelisk
Available as distro package or VM image • Use VirtualBox managed with Vagrant > vagrant up mn > vagrant ssh mn mininet.org config.vm.define “mn” do |mn| mn.vm.box = “ubuntu/bionic64” mn.vm.network “private_network”, ip: “192.168.x.y”, virtualbox_intnet: true end sudo mn --controller remote,ip=[controller] --switch=ovsk,protocols=OpenFlow13 --topo tree,3,3
IntelliJ IDEA 2019.3 CE Host OF 1.3 VM HT HT* ONOS Devel. Environment HP TD TD* HP* JDK11 Bazel An example for building hostprobing provider: > bazel build //providers/hostprobing:onos-providers-hostprobing-oar
IntelliJ IDEA 2019.3 CE Host OF 1.3 VM HT HT* ONOS Devel. Environment HP TD TD* HP* JDK11 Bazel An example for building hostprobing provider: > bazel build //providers/hostprobing:onos-providers-hostprobing-oar
started developing with ONOS, https://wiki.- onosproject.org/display/ONOS/Getting+started+devel oping+with+ONOS • Using an IDE with ONOS 1.14 or higher (Bazel build), https://wiki.onosproject.org/pages/viewpage.action? pageId=28836246