* Updated the utils/run_exercise.py to allow exercises to customize host configuration from the topology.json file. Now hosts and `ping` each other in the basic exercise. Other Linux utilities should work as well (e.g. iperf). ``` mininet> h1 ping h2 PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data. 64 bytes from 10.0.2.2: icmp_seq=1 ttl=62 time=3.11 ms 64 bytes from 10.0.2.2: icmp_seq=2 ttl=62 time=2.34 ms 64 bytes from 10.0.2.2: icmp_seq=3 ttl=62 time=2.15 ms ^C --- 10.0.2.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 2.153/2.540/3.118/0.416 ms mininet> pingall *** Ping: testing ping reachability h1 -> h2 h3 h2 -> h1 h3 h3 -> h1 h2 *** Results: 0% dropped (6/6 received) ``` Only updated basic exercise, still need to update other exercises. Also, updated the root-bootstrap.sh because I was running into issues with latest version of vagrant. * Accidentially added the solution to the basic exercise in the previous commit. Undoing that here ... * Updated the topology.json file and table entries for the basic_tunnel exercise. * Updated P4Runtime exercise with new topology and table entries. * Fixed MAC addresses in P4Runtime exercise. It is working now. * Fixed MAC addresses in P4Runtime exercise starter code * Updated ECN exercise to use new topology.json file. Updated the table entries / MAC addresses as well. * Updated the topology.json file and table entries for the MRI exercise. * Updated source_routing exercise with new topology file and verified correct functionality. * Updated load_balance exercise with new topology. * Moved basic exercise triangle topology into a separate folder * Added new topology for the basic exercise: a single pod of a fat-tree. * Updated Makefiles and run_exercise.py to allow exercises to configure each switch with a different P4 program. This is mainly for the firewall exercise. * Updated Makefiles of project to work with new utils/Makefile * Updated load_balance and p4runtime exercise Makefiles * Initial commit of the firewall exercise, which is a simple stateful firewall that uses a bloom filter. Need to update README files * Initial commit of the path_monitor exercise. It is working but still need to update the README and figure out what we want the tutorial attendees to implement. * Updated README file in firewall exercise. Also removed the bits from the starter code that we want the tutorial attendees to implement * Renamed path_monitor exercise to link_monitor * Updated the README in the link_monitor exercise and removed the bits from the starter code that we want the tutorial attendees to implement. * Updated README for the firewall exercise * Adding pod-topo.png image to basic exercise * Added firewall-topo.png image to firewall exercise * Added link-monitor-topo.png to link_monitor exercise * Updated README files to point to topology images * Updated top-level README to point to new exercises. * Fixed link for VM dependencies script in README * Updated bmv2/pi/p4c commits * Updated README files for exercises to fix some typos and added a note about the V1Model architecture. * Added a note about food for thought in the link_monitor README * Updated the firewall.p4 program to use two register arrays rather than a single one. This is to make the design more portable to high line rate devices which can only support a single access to each register array. * Minor fix to firewall exercise to get rid of compiler warning. * Updated comment in firewall exercise. * Minor (typo) fixes in the firewall ReadMe * More info in firewall exercise ReadMe step 2 * Updated firewall.p4 to reuse direction variable * More testing steps, small fixes in firewall exercise Readme * Added food for thought to firewall Readme * Cosmetic fixes to firewall ReadMe * Made a few updates to the basic exercise README and added more details to the link_monitor exercise README. Also added a command to install grip when provisioning the VM. This could be useful for rendering the markdown README files offline. * Updated top level README so it can be merged into the master branch. * Moved cmd to install grip from root-bootstrap to user-bootstrap
93 lines
2.0 KiB
Bash
Executable File
93 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Print commands and exit on errors
|
|
set -xe
|
|
|
|
DEBIAN_FRONTEND=noninteractive sudo add-apt-repository -y ppa:webupd8team/sublime-text-3
|
|
DEBIAN_FRONTEND=noninteractive sudo add-apt-repository -y ppa:webupd8team/atom
|
|
|
|
apt-get update
|
|
|
|
KERNEL=$(uname -r)
|
|
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
|
|
apt-get install -y --no-install-recommends --fix-missing\
|
|
atom \
|
|
autoconf \
|
|
automake \
|
|
bison \
|
|
build-essential \
|
|
ca-certificates \
|
|
cmake \
|
|
cpp \
|
|
curl \
|
|
emacs24 \
|
|
flex \
|
|
git \
|
|
libboost-dev \
|
|
libboost-filesystem-dev \
|
|
libboost-iostreams1.58-dev \
|
|
libboost-program-options-dev \
|
|
libboost-system-dev \
|
|
libboost-test-dev \
|
|
libboost-thread-dev \
|
|
libc6-dev \
|
|
libevent-dev \
|
|
libffi-dev \
|
|
libfl-dev \
|
|
libgc-dev \
|
|
libgc1c2 \
|
|
libgflags-dev \
|
|
libgmp-dev \
|
|
libgmp10 \
|
|
libgmpxx4ldbl \
|
|
libjudy-dev \
|
|
libpcap-dev \
|
|
libreadline6 \
|
|
libreadline6-dev \
|
|
libssl-dev \
|
|
libtool \
|
|
linux-headers-$KERNEL\
|
|
lubuntu-desktop \
|
|
make \
|
|
mktemp \
|
|
pkg-config \
|
|
python \
|
|
python-dev \
|
|
python-ipaddr \
|
|
python-pip \
|
|
python-psutil \
|
|
python-scapy \
|
|
python-setuptools \
|
|
sublime-text-installer \
|
|
tcpdump \
|
|
unzip \
|
|
vim \
|
|
wget \
|
|
xcscope-el \
|
|
xterm
|
|
|
|
useradd -m -d /home/p4 -s /bin/bash p4
|
|
echo "p4:p4" | chpasswd
|
|
echo "p4 ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/99_p4
|
|
chmod 440 /etc/sudoers.d/99_p4
|
|
usermod -aG vboxsf p4
|
|
|
|
cd /usr/share/lubuntu/wallpapers/
|
|
cp /home/vagrant/p4-logo.png .
|
|
rm lubuntu-default-wallpaper.png
|
|
ln -s p4-logo.png lubuntu-default-wallpaper.png
|
|
rm /home/vagrant/p4-logo.png
|
|
cd ~
|
|
sed -i s@#background=@background=/usr/share/lubuntu/wallpapers/1604-lubuntu-default-wallpaper.png@ /etc/lightdm/lightdm-gtk-greeter.conf
|
|
|
|
# Disable screensaver
|
|
apt-get -y remove light-locker
|
|
|
|
# Automatically log into the P4 user
|
|
cat << EOF | tee -a /etc/lightdm/lightdm.conf.d/10-lightdm.conf
|
|
[SeatDefaults]
|
|
autologin-user=p4
|
|
autologin-user-timeout=0
|
|
user-session=Lubuntu
|
|
EOF
|