The POX network software platform

Overview

POX

POX is a networking software platform written in Python.

POX started life as an OpenFlow controller, but can now also function as an OpenFlow switch, and can be useful for writing networking software in general. It currently supports OpenFlow 1.0 and includes special support for the Open vSwitch/Nicira extensions.

POX versions are named. Starting with POX "gar", POX officially requires Python 3. The last version with support for Python 2 was POX "fangtooth". POX should run under Linux, Mac OS, and Windows. (And just about anywhere else -- we've run it on Android phones, under FreeBSD, Haiku, and elsewhere. All you need is Python!) Some features are not available on all platforms. Linux is the most featureful.

This README contains some information to get you started, but is purposely brief. For more information, please see the full documentation.

Running POX

pox.py boots up POX. It takes a list of component names on the command line, locates the components, calls their launch() function (if it exists), and then transitions to the "up" state.

If you run ./pox.py, it will attempt to find an appropriate Python 3 interpreter itself. In particular, if there is a copy of PyPy in the main POX directory, it will use that (for a potentially large performance boost!). Otherwise it will look for things called python3 and fall back to python. You can also, of course, invoke the desired Python interpreter manually (e.g., python3 pox.py).

The POX commandline optionally starts with POX's own options (see below). This is followed by the name of a POX component, which may be followed by options for that component. This may be followed by further components and their options.

./pox.py [pox-options...] [component] [component-options...] ...

POX Options

While components' options are up to the component (see the component's documentation), as mentioned above, POX has some options of its own. Some useful ones are:

Option Meaning
--verbose print stack traces for initialization exceptions
--no-openflow don't start the openflow module automatically

Components

POX components are basically Python modules with a few POX-specific conventions. They are looked for everywhere that Python normally looks, plus the pox and ext directories. Thus, you can do the following:

./pox.py forwarding.l2_learning

As mentioned above, you can pass options to the components by specifying options after the component name. These are passed to the corresponding module's launch() funcion. For example, if you want to run POX as an OpenFlow controller and control address or port it uses, you can pass those as options to the openflow._01 component:

./pox.py openflow.of_01 --address=10.1.1.1 --port=6634

Further Documentation

The full POX documentation is available on GitHub at https://noxrepo.github.io/pox-doc/html/

Temporal network visualization

Temporal network visualization This code is what I used to make the visualizations of SocioPatterns' primary school data here It requires the data of

Petter Holme 12 Jun 04, 2022
Network Automation and Programmability Abstraction Layer with Multivendor support

NAPALM NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functio

napalm-automation 2k Dec 31, 2022
A python module to create random networks using network models

networkgen A python module to create random networks using network models Usage $

Serkan Demirci 3 Sep 26, 2022
whm also known as wifi-heat-mapper is a Python library for benchmarking Wi-Fi networks and gather useful metrics that can be converted into meaningful easy-to-understand heatmaps.

whm also known as wifi-heat-mapper is a Python library for benchmarking Wi-Fi networks and gather useful metrics that can be converted into meaningful easy-to-understand heatmaps.

Nischay Mamidi 128 Dec 16, 2022
α-Indirect Control in Onion-like Networks

α-Indirect Control in Onion-like Networks

European University at St. Petersburg (EUSP) 150 Jul 07, 2022
This project calculates current internet upload and download speeds.

Internet-Speed-Calculator Project Description: In this project, are creating an internet speed calculator. Requirements: Following modules need to be

Hassan Shahzad 4 Oct 26, 2021
Emulator for rapid prototyping of Software Defined Networks

Mininet: Rapid Prototyping for Software Defined Networks The best way to emulate almost any network on your laptop! Mininet 2.3.0b2 What is Mininet? M

Mininet 4.7k Jan 05, 2023
The POX network software platform

POX POX is a networking software platform written in Python. POX started life as an OpenFlow controller, but can now also function as an OpenFlow swit

NOX Repo 591 Dec 13, 2022
Virt Test Provider for qemu and other related virtualization backends

QEMU test provider for virt-test This is the official [1] test provider for the following subtest types: QEMU Generic (Virtualization backend agnostic

Autotest 41 Jan 03, 2023