On this page:
The Phantom  Net Manual
2020-07-23 (06836dc)

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

        2.1.3 Setting up SSH access

        2.1.4 Setting up X11

    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 RF communication

      6.8 Specify an operating system and set install and execute scripts

      6.9 Profiles with user-specified parameters

      6.10 Add storage to a node

      6.11 Debugging geni-lib profile scripts

    7 Advanced Topics

      7.1 Disk Images

      7.2 Storage Mechanisms

        7.2.1 Overview of Storage Mechanisms

        7.2.2 Node-Local Storage

          7.2.2.1 Specifying Storage in a Profile – Local Datasets

          7.2.2.2 Allocating Storage in a Running Experiment

          7.2.2.3 Persisting Local Data

        7.2.3 Image-backed Datasets

        7.2.4 Remote Datasets

        7.2.5 NFS Shared Filesystems

        7.2.6 Storage Type Summary (TL;DR)

        7.2.7 Example Storage Profiles

          7.2.7.1 Creating a Node-local Dataset

          7.2.7.2 Creating an Image-backed Dataset from a Node-local Dataset

          7.2.7.3 Using and Updating an Image-backed Dataset

          7.2.7.4 Creating a Remote Dataset

          7.2.7.5 Using a Remote Dataset on a Single Node

          7.2.7.6 Using a Remote Dataset on Multiple Nodes via a Shared Filesystem

          7.2.7.7 Using a Remote Dataset on Multiple Nodes via Clones

      7.3 RSpecs

      7.4 Public IP Access

        7.4.1 Dynamic Public IP Addresses

      7.5 Markdown

      7.6 Introspection

        7.6.1 Client ID

        7.6.2 Control MAC

        7.6.3 Manifest

        7.6.4 Private key

        7.6.5 Profile parameters

      7.7 User-controlled switches and layer-1 topologies

      7.8 Portal API

    8 Hardware

      8.1 Apt Cluster

    9 Planned Features

      9.1 Improved Physical Resource Descriptions

    10 Getting Help