# POX: A Python-Based Platform for Software-Defined Networking

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/noxrepo-pox
Generated for open source discovery and AI-assisted research.

POX is a versatile networking software platform written in Python, initially designed as an OpenFlow controller. It can also function as an OpenFlow switch and is useful for developing general networking software. Supporting OpenFlow 1.0 and various operating systems, POX provides a flexible environment for network experimentation and development.

GitHub: https://github.com/noxrepo/pox
OSRepos URL: https://osrepos.com/repo/noxrepo-pox

## Summary

POX is a versatile networking software platform written in Python, initially designed as an OpenFlow controller. It can also function as an OpenFlow switch and is useful for developing general networking software. Supporting OpenFlow 1.0 and various operating systems, POX provides a flexible environment for network experimentation and development.

## Topics

- Python
- Networking
- OpenFlow
- SDN
- Controller
- Switch
- Network Programming

## Repository Information

Last analyzed by OSRepos: Fri Apr 03 2026 13:08:14 GMT+0100 (Western European Summer Time)
Detail views: 10
GitHub clicks: 7

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## Introduction

POX is a networking software platform developed in Python, offering a flexible environment for network experimentation and development. It began as an OpenFlow controller but has evolved to also function as an OpenFlow switch, making it suitable for a wide range of networking software applications. POX officially requires Python 3 (versions like "gar" and later), with "fangtooth" being the last version to support Python 2. It runs across Linux, Mac OS, and Windows, and even on other platforms like Android, FreeBSD, and Haiku, requiring only a Python interpreter.

## Installation

Getting started with POX is straightforward. You can boot POX by running `pox.py` from its directory. The script intelligently attempts to find an appropriate Python 3 interpreter, prioritizing a PyPy installation within the POX directory for potential performance gains. Otherwise, it looks for `python3` or falls back to `python`. You can also explicitly invoke your desired Python interpreter, for example, `python3 pox.py`.

## Examples

POX components are essentially Python modules following specific POX conventions. They are located in standard Python paths, plus the `pox` and `ext` directories. To run a component, simply specify its name on the command line:


./pox.py forwarding.l2_learning


Components can also accept options. For instance, to run POX as an OpenFlow controller and specify its address and port, you can pass these as options to the `openflow._01` component:


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


## Why Use POX?

POX stands out as a powerful tool for anyone involved in Software-Defined Networking (SDN) or general network programming. Its Python-based nature makes it accessible and easy to extend. The platform's ability to act as both an OpenFlow controller and a switch, coupled with its support for OpenFlow 1.0 and Open vSwitch/Nicira extensions, provides a robust foundation for building and testing network protocols and applications. Its cross-platform compatibility further enhances its utility for diverse development environments.

## Links

For more detailed information and to explore the project further, please refer to the official resources:

*   [POX GitHub Repository](https://github.com/noxrepo/pox){:target="_blank"}
*   [POX Full Documentation](https://noxrepo.github.io/pox-doc/html/){:target="_blank"}