Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Summer Camp 2011 Tutorials

Stephen Woodrow edited this page · 1 revision

BISmark Summer Camp 2011/Tutorials

Tutorial Day 1

  • Goal: Get familiar with router, familiarize with build

Overview and Setup

Initiate build

  • make sure the following development tools are installed:
    • build-essential
    • gawk
    • flex
    • at
  • set up git username
    • git config --global user.name "Your Name" (replace with your name)
    • git config --global user.email "user@host.com" (replace with your email address)
  • ./build_cero.sh init
    • (temporary bug fix): cp blessed_config src/cerowrt/.config
  • cd src/cerowrt/
  • make (use batch to be nice)
    • make -j8 V=99
    • make V=99
  • wait (build can take 45-60 minutes on huchra)

Install the build

Tutorial Day 2

Package Overview

  • Operating systems in the room: Ubuntu 10.04, 10.10, 11.04, Debian Squeeze
  • Packages in the source tree
    • bismark-packages (on github)
    • Dave's repositories (welcome to clone, but don't call it cerowrt if you tweak it beyond recognition)
      • cerowrt (Dave Taht maintains; read-only is available, read-write available on proving yourself): derived from OpenWRT
      • cerofiles
    • luci (written in lua)
    • openwrt: core OS (things needed to boot)
    • packages: part of the openwrt project

Differences between OpenWRT and CeroWRT

  • overview of git show and recent changes to OpenWRT (currently, 8 patches differences)
    • support for reno, bic, cubic, DRR, choke, SFB, etc.
    • publish the top-most commit of what version you use, and people will be able to duplicate your results
  • recommendation: track changes to OpenWRT
  • in openwrt logs: nbd/felix is one of the main openwrt developers
  • to read the logs, cd into each directory and "git log" to see the changes

Pulling Updates and Merging

  • git configuration file: .git/config
    • what to fetch, and URL to fetch from. can name different branches (e.g., openwrt, cerowrt, etc.)
    • defines a new remote repository "openwrt"
    • "git pull openwrt master" into the cerowrt directory pulls the openwrt patches into the cerowrt directory. (pulls from master branch)
  • Presenting example of how to pull openflow into the source tree
    • feeds.conf sets up pointers to other feeds
      • e.g., src-git openflow git://gitosis.stanford.edu/openflow-openwrt
    • ./scripts/feeds update pulls all of the packages from things in feeds.conf
  • the "env/files" directory: default configuration files into this directory
    • lib/wifi/mac80211.sh" (script that brings up wireless by default)
    • etc/opkg.conf points to Dave's package repository. when doing your own build, will have to change this.
    • ./scripts/env is a useful script for managing different environments for the files directory
  • make defconfig
  • make menuconfig (menu-based configuration)
  • vi .config
    • CONFIG_PACKAGE_bismark-active=m (install as module, not as part of the build)
  • feed overview (how to get this list?)
    • bird routing daemon (worth trying out): has BGP, other routing protocols
    • collectd (system statistics monitoring)
    • busybox: most UNIX utilities bundled into a single executable file (10s of MB of utilities into about 600k). can always pull from coreutils if you absolutely need it
    • freeswitch (SIP server)
    • VPNs: stongswan, etc.
  • ./scripts/feeds install openflow (still has bug) [or some other package]
  • fire off the build
    • make -j8 V=99

Tutorial Day 3

Setting Up OpenWRT Toolchain and Building Your Own Packages From Scratch

  • Grab git repositories to create a local version of the repository
    • openwrt
    • packages
    • openflow
  • Update feeds.conf to point to local repositories (use src-link to point to local file repositories)
  • Update your feeds
    • ./scripts/feeds update - updates feeds in the feeds directory using {svn, git, local filesystem, etc.}
  • Install some feeds
    • ./scripts/feeds install {openflow, bismark}
    • ./scripts/feeds install -p custom ditg
  • set up "files" for any files to be installed on the root filesystem
  • make menuconfig
  • make -j8

Setting Up OpenWRT Toolchain on dp4.gtnoise.net

  • Update feeds.conf to point to local repositories
  • Update and Install feeds
  • Symlink files to /data/users/bismark/

Lab Users

Name Email Network Name IP Address 6net
Srikanth Sundaresan srikanth@gatech.edu sri.lab.projectbismark.net 172.31.1.x
Hyojoon Kim joonk@gatech.edu joon 172.31.2.x
Nazanin Magharei nazanin@cc.gatech.edu nm 172.31.3.x
Yiannis Yiakoumis yiannisy@stanford.edu yy 172.31.4.x
Kyriakos Zarifis kyr.zarifis@gmail.com kz 172.31.5.x
Jacopo Cesareo jcesareo@CS.Princeton.EDU jc 172.31.6.x
Walter de Donato walter.dedonato@unina.it wd 172.31.7.x
Stephen Woodrow woodrow@csail.mit.edu sw 172.31.8.x
Dave Taht d@taht.net dave 172.31.9.x
Ken Calvert calvert@netlab.uky.edu kc 172.31.10.x
Alex Snoeren snoeren@cs.ucsd.edu as 172.31.11.x
Steve Fox stevedude@bellsouth.net sf 172.31.12.x
matt ur.matt@gmail.com matt 172.31.13.x
Xuzi Zhou xuzizhou@netlab.uky.edu xz 172.31.14.x

Breakout Teams

  • netperf
    • Stephen
    • Kyriakos
  • uFTP
    • Dave
    • Matt
    • Jacopo
    • Youngsung
  • bismark stuff
    • Srikanth
    • Walter
    • Xuzi
    • Nazanin
  • Passive measurements
    • Walter
    • Nick
  • OpenFlow stuff
    • Yiannis
    • Joon
Something went wrong with that request. Please try again.