On this page:
The Phantom  Net Manual
2018-11-29 (16097c8)

The PhantomNet Manual

Jacobus (Kobus) Van der Merwe,
Robert Ricci,
Leigh Stoller,
Kirk Webb,
Jon Duerig,
Gary Wong,
Keith Downie,
Mike Hibler,
and Eric Eide

PhantomNet is a mobility testbed, providing researchers with a set of hardware and software resources that they can use to develop, debug, and evaluate their mobility designs. Resources available in PhantomNet include EPC/EPS software (OpenEPC), hardware access points (ip.access enodeb), PC nodes with mobile radios (HUAWEI cellular modems), and a large set of commodity bare metal nodes, virtual nodes and other resouces inherited from the main Emulab site. In addition to raw resources, PhantomNet provides configuration directives and scripts to assist researchers in setting up their mobility experiments. Users specify their experiment via Emulab NS file templates augmented with PhantomNet-specific functionality. In complement to these template NS files, PhantomNet does the work of configuring the EPC software components to operate within the underlying Emulab environment.

The PhantomNet facility is built on top of Emulab and is run by the Flux Research Group, part of the School of Computing at the University of Utah.

    1 Getting Started

      1.1 Next Steps

    2 PhantomNet Users

      2.1 Register for an Account

        2.1.1 Join an existing project

        2.1.2 Create a new project

    3 PhantomNet and Repeatable Research

    4 Creating Profiles

      4.1 Creating a profile from an existing one

        4.1.1 Preparation and precautions

        4.1.2 Cloning a Profile

        4.1.3 Copying a Profile

        4.1.4 Creating the Profile

        4.1.5 Updating a profile

      4.2 Creating a profile with a GUI

      4.3 Repository-Based Profiles

        4.3.1 Updating Repository-Based Profiles

        4.3.2 Branches and Tags in Repository-Based Profiles

      4.4 Creating a profile from scratch

      4.5 Sharing Profiles

      4.6 Versioned Profiles

    5 Basic Concepts

      5.1 Profiles

        5.1.1 On-demand Profiles

        5.1.2 Persistent Profiles

      5.2 Experiments

        5.2.1 Extending Experiments

      5.3 Projects

      5.4 Physical Machines

      5.5 Virtual Machines and Containers

    6 Describing a profile with python and geni-lib

      6.1 A single XEN VM node

      6.2 A single physical host

      6.3 Two XenVM nodes with a link between them

      6.4 Two ARM64 servers in a LAN

      6.5 A VM with a custom size

      6.6 Set a specific IP address on each node

      6.7 OpenEPC extensions

      6.8 RF communication

      6.9 Specify an operating system and set install and execute scripts

      6.10 Profiles with user-specified parameters

      6.11 Add temporary local disk space to a node

      6.12 Creating a reusable dataset

      6.13 Debugging geni-lib profile scripts

    7 Advanced Topics

      7.1 Disk Images

      7.2 RSpecs

      7.3 Public IP Access

        7.3.1 Dynamic Public IP Addresses

      7.4 Markdown

      7.5 Introspection

        7.5.1 Client ID

        7.5.2 Control MAC

        7.5.3 Manifest

        7.5.4 Private key

        7.5.5 Profile parameters

      7.6 User-controlled switches and layer-1 topologies

    8 Hardware

      8.1 Apt Cluster

      8.2 IG-DDC Cluster

    9 Planned Features

      9.1 Improved Physical Resource Descriptions

    10 Getting Help