Skip to content

n-hop/oasis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oasis CI CodeQL Pylint Unittest


Oasis

Oasis is a network emulation platform that enables protocol developers to test their protocols in diverse network topologies and conditions.

Oasis is built on Containernet, a fork of Mininet, and Docker. It offers a web-based user interface for creating and managing testbeds, test cases, and test results. Additionally, it provides a RESTful API for interacting with the DevOps platform. One of the most impressive features of Oasis is its extensive set of components for visualizing and analyzing test results, as well as automatically generating test reports based on provided templates.

Architecture

Oasis
Fig 1.1 Oasis architecture brief view

Features

  • Data Visualization: Oasis offers numerous components for visualizing test data.
    • Visualize the TCP throughput over time
    • Visualize the packet rtt over time
    • Visualize the rtt distribution
  • Flexible Architecture: Oasis can be used for pure software emulation or as a front-end for a series of real testbeds.
  • Built-in Protocol Support: Oasis includes extensive built-in protocol support, such as TCP, KCP, QUIC, and more.
  • Built-in Dynamic Routing Support: For complex mesh networks, Oasis offers built-in dynamic routing support.

Features in development

  • Testbed: Instead of using visualize networks provided by Containernet, oasis can use the real testbed to do the protocol testing.
  • Web-based User Interface: Users can create, modify, delete, and execute test cases, as well as manage versions of user-defined protocols.
  • RESTful API: Users can interact with the DevOps platform through the API.

Get started

A simple guide to getting started with Oasis can be found in Get Started.

Protocols and Tools

Detailed information can be found in Protocols and Tools.

Limitations

  • Link latency: The valid range is 0-110ms; 0ms means no additional latency is added. And the maximum latency of each link is 110ms. The link latency is simulated by the Linux tc module, which requires sufficient queuing buffer capacity. If the queuing buffer is not large enough, tc module will drop packets under heavy traffic, affecting the accuracy of simulating the link loss rate.

  • Link bandwidth: The valid range is 1-100Mbps. The maximum bandwidth for each link is limited because the processing rate of the BATS™ protocol binary in this repository is capped at 100Mbps. For rates higher than 100Mbps, a software license from n-hop is required.