PANORAMA: Real-time Bird's Eye View of an OpenFlow Network

Abstract

Software Defined Network (SDN) is an emerging networking paradigm that has gained enormous attention from the industries as well as the research community. SDN decouples data plane and control plane. The direct programmability of the control plane allows us to develop routing algorithms, which can accommodate versatile requirements of diverse network applications. On another side, Quality-of-Service provisioning, traffic engineering, etc., require accurate traffic measurements because an up-to-date view of the network facilitates service providers to optimize network performance. Existing approaches of traffic measurements demand either additional resources or alteration to infrastructure.

In this paper, we present a collection of lightweight mechanisms for obtaining real-time network information in SDN environment. In particular, our mechanisms aim to obtain per-flow and per-port traffic statistics, topology information, data transfer rate for each network link, etc. Since our approach exploits the built-in capabilities of OpenFlow protocol, it does not require any changes to the infrastructure. We also implemented our proposed mechanisms and developed Panorama, a graphical user interface for real-time presentation of the obtained information.

Panorama is a lightweight, easy to deploy POX based GUI for obtaining real-time network information in SDN environment. Currently, Panorama is capable of presenting network topology information, per-flow and per-port traffic statistics, aggregate statistics, and data transfer rate for each network link.

People

News

Paper/Citation

   Ankit Gangwal, Mauro Conti, Manoj Singh Gaur.
   PANORAMA: Real-time Bird's Eye View of an OpenFlow Network.
   In Proceedings of the 14th IEEE International Conference on Networking, Sensing and Control
   (IEEE ICNSC 2017), pages 204-209, Falerna, Calabria, Italy, May 16-18, 2017.
   DOI: 10.1109/ICNSC.2017.8000092, ISBN: 978-1-5090-4429-0.

Source Code

User Manual

  1. Setup:
    1. Copy the project directory under pox [~/pox/ext/]
    2. Set path to pox.py [pox directory (~/pox/)] in your PATH variable, you may do it through terminal as:
         $ PATH=$PATH:~/pox/
         $ export PATH

  2. How to start [Manually]:
    1. Open a new terminal and run a controller module:
         $ cd pox
         $ pox.py forwarding.l2_learning
    2. Open another terminal and run the monitoring module:
         $ cd [project working directory i.e. ~/pox/ext/panorama]
         $ pox.py openflow.of_01 --port=5566 panorama.panorama
    3. Open another terminal and start a network:
         $ cd [project working directory i.e. ~/pox/ext/panorama]
         $ sudo python topology/panorama_mininet.py
         (You may create your own custom topology as well.)
    4. [If a browser window/tab doesn't come up automatically.]
         Open a browser window/tab and navigate to:
         http://localhost:8080/

  3. How to start [Automatically]:
    1. Run the bash script:
         $ cd [project working directory i.e. ~/pox/ext/panorama]
         $ bash launch.sh

Screenshots

Loading:

Home Tab:

N/w Configuration Tab:

Port Stat Tab:

Aggregate Stat Tab:

Flow Stat Tab:

Data Transfer Rate Tab: