20 likes | 238 Views
POX. Network control with Python. Murphy McCauley, Kyriakos Zarifis , Amin Tootoonchian , Scott Shenker. Rationale.
E N D
POX Network control with Python Murphy McCauley, KyriakosZarifis, AminTootoonchian, Scott Shenker Rationale POX is an open platform for the rapid development and prototyping of network control software in a high level language, upon which we are starting to experiment with distribution, debugging, network virtualization and other SDN topics, with the ultimate goal being to develop an archetypal, modern network operating system. Relationship to NOX Features • “Pythonic” OpenFlow interface • Reusable components for path selection, topology discovery, etc. • “Runs anywhere” – Can bundle with install-free PyPyruntime • Uses advanced Network Object Model • POX provides migration path for Python-based NOX applications • Successful ideas from POX fed back into NOX • Supports the same GUI and visualization tools • POX isn’t a total loss performance-wise! (See cbench results) Software Network Object Model Virtualized NOM object Virtualized Switch Host Low-level NOM objects Switch Switch • Object-oriented global network view • Low-level objects have 1:1 mapping to actual hardware • Expose hardware-specific functionality (e.g., OpenFlow, middlebox features) • Control/configuration through a single interface -- Python • Higher-level objects support virtualization • Switch slicing and aggregation • Forwarding abstraction • Suitable for experimentation with distribution Host Host Host Switch Hardware StatusandUsage • Under active development • Framework and basic applications done • Definition and development of NOM ongoing • Public source release coming soon • Used in the classroom (200+ undergrads) • Used by POX-At-Home (see poster) • Used for SDN Debugging (see poster) • Minor use in production!