Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
591a961
Initial support for github actions CI builds
lantz Dec 13, 2020
fd9e011
Merge pull request #986 from lantz/github-actions
lantz Dec 14, 2020
3625149
Update run-tests.yaml
lantz Dec 14, 2020
cab8970
Update run-tests.yaml
lantz Dec 14, 2020
537e824
Install correctly on Ubuntu 20.04 (#980)
jeffallen Dec 14, 2020
336b01a
Add matrix build for ubuntu-16.04 and ubuntu-18.04 (#987)
lantz Dec 14, 2020
afdf9fd
Update for python 2.x and 3.x builds (#988)
lantz Dec 20, 2020
b7c4120
CI matrix build + 20.04 fixes (#990)
lantz Jan 4, 2021
e02e338
intfoptions and test adjustments (#992)
lantz Jan 4, 2021
6def304
Remove long tests from travis (#993)
lantz Jan 4, 2021
ebdb3a5
Fix a small typo error in clusterdemo.py (#945)
Giuseppe1992 Jan 4, 2021
dcc39a7
Loosen test_intfoptions tolerance to 25% for CI (#998)
lantz Jan 5, 2021
942745e
Fix tree1024.py (#995)
lantz Jan 5, 2021
26c7c70
use pip for make {install,develop} (#999)
lantz Jan 5, 2021
462929b
Run full core test suite (#1000)
lantz Jan 5, 2021
0847991
Install pip for debian/ubuntu (#1001)
lantz Jan 5, 2021
77c4736
Wait for exit to avoid leftover dp0 (#1002)
lantz Jan 6, 2021
5397594
Test fixes and debugging (#1005)
lantz Jan 10, 2021
d8c3091
ubuntu 14 code check fixes so travis can pass (#1006)
lantz Jan 10, 2021
9517f6c
Build script for 20.04 (#1004)
lantz Jan 14, 2021
e400329
Try to install python2 and python3 mininet (#1008)
lantz Jan 14, 2021
77938e0
Increase timeout for emulated build (#1009)
lantz Jan 17, 2021
dad451b
Pass code check with pylint=2.4.4 (#1012)
lantz Jan 25, 2021
f9d5ef3
remove .travis.yml and travis badge from README.md (#1013)
lantz Jan 25, 2021
12f4d5b
Fetch older version of get-pip.py for python 2 (#1015)
lantz Jan 26, 2021
2255bc7
Fix/clean up setLogLevel (#1016)
lantz Jan 28, 2021
e07a29b
fix make develop: --no-binary :all: (#1017)
lantz Jan 29, 2021
715db45
more logging fixes (#1018)
lantz Jan 29, 2021
96ac94a
fix session typo
lantz Jan 29, 2021
b6ad3a1
Mininet 2.3.0b1 (#1019)
lantz Jan 30, 2021
dffddc3
Install python3 mn last in install-mininet-vm.sh (#1021)
lantz Jan 30, 2021
ec2d93d
2.3.0b2 (#1022)
lantz Jan 30, 2021
9047964
Update README.md
lantz Jan 31, 2021
9b69c99
Update INSTALL
lantz Jan 31, 2021
a882d68
Update README.md
lantz Jan 31, 2021
f0c726a
Use /usr/bin/env python for virtualenv (#1025)
lantz Feb 5, 2021
06dae1a
fix bootAndRun() (#1024)
lantz Feb 6, 2021
c7de350
update make doc for current doxygen/doxypy (#1027)
lantz Feb 7, 2021
7b240ce
Minor fixes for miniedit (#1028)
lantz Feb 7, 2021
c2fb4d2
Fix ryu (#1032)
lantz Feb 8, 2021
6b90434
Allow reinstall with `make install` (#1033)
lantz Feb 8, 2021
5d4ec1a
catch IOError when writing .mininet_history (#1031)
lantz Feb 8, 2021
39ed456
Fixes for cluster.py (#1035)
lantz Feb 9, 2021
92fe3cc
Make mn -w wait indefinitely and add --twait option (#1036)
lantz Feb 9, 2021
4a1dbac
Basic fixes for install.sh -fnv for Fedora 33 (#1038)
lantz Feb 9, 2021
377a4b5
Add net-tools dependency for fedora (#1039)
lantz Feb 9, 2021
9a3a3ed
2.3.0rc1 (#1037)
lantz Feb 9, 2021
fc3152d
Update INSTALL
lantz Feb 9, 2021
f8e54ca
add pip uninstall -y (#1041)
lantz Feb 9, 2021
5ef6e1d
fix --twait (#1040)
lantz Feb 9, 2021
1c42632
2.3.0rc2 (#1042)
lantz Feb 9, 2021
d7f399d
2.3.0 (#1043)
lantz Feb 10, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/code-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

name: code-check

on: [push, pull_request]

jobs:
code-check:
name: Mininet Code Check
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.x
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Check out Mininet source
uses: actions/checkout@v2
- name: Install Mininet code check dependencies
run: |
PYTHON=`which python` util/install.sh -n
python -m pip install pylint==2.4.4
- name: Run code check
run: make codecheck
51 changes: 51 additions & 0 deletions .github/workflows/run-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

name: mininet-tests

on: [push, pull_request]

jobs:
test:
name: Mininet Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04]
python-version: [3.x, 2.x]
steps:
- name: Check out Mininet source
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install Mininet and base dependencies
run: |
sudo apt-get update -qq
# This seems too slow unfortunately:
# sudo apt-get upgrade -y -qq
PYTHON=`which python` util/install.sh -nv
- name: Sanity test
run: |
export sudo="sudo env PATH=$PATH"
# Verify major python-version number matches python and mininet
export PYVER=`echo ${{ matrix.python-version }} | cut -d . -f 1`
export CHKVER='px import platform; print(platform.python_version())'
python --version |& grep " $PYVER\."
echo $CHKVER | $sudo mn -v output | grep " $PYVER\."
# Newer OvS tries OpenFlow15 which crashes ovsc on ubuntu-20.04
$sudo mn --switch ovs,protocols=OpenFlow13 --test pingall
- name: Install test dependencies
run: |
sudo apt-get install -qq vlan
pip install pexpect
util/install.sh -fw
- name: Run core tests
run: |
export sudo="sudo env PATH=$PATH"
export PYTHON=`which python`
$sudo $PYTHON mininet/test/runner.py -v
- name: Run examples tests (quick)
run: |
export sudo="sudo env PATH=$PATH"
export PYTHON=`which python`
$sudo $PYTHON examples/test/runner.py -v -quick
10 changes: 8 additions & 2 deletions .pylint
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,16 @@ load-plugins=
# can either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once).
#
# Note: we may want to re-enable some of these at some point, but many of them
# are just style issues rather than errors.
#
disable=pointless-except, invalid-name, super-init-not-called, fixme, star-args,
too-many-instance-attributes, too-few-public-methods, too-many-arguments,
too-many-instance-attributes, too-few-public-methods,
too-many-locals, too-many-public-methods, duplicate-code, bad-whitespace,
locally-disabled, locally-enabled
locally-disabled, locally-enabled, bad-continuation,
useless-object-inheritance, unnecessary-pass, no-else-return,
no-else-raise, no-else-continue, super-with-arguments

# bad-continuation, wrong-import-order

Expand Down
35 changes: 0 additions & 35 deletions .travis.yml

This file was deleted.

31 changes: 30 additions & 1 deletion CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -18,34 +18,63 @@ Cody Burkard

Additional Mininet Contributors

Joseph Beshay
M S Vishwanath Bhat
Muhammad Umair Bhatti
Arie Bregman
Tomasz Buchert
Gustavo Pantuza Coelho Pinto
Fernando Cappi
HW Chiu
Ryan Cox
Shaun Crampton
Jason Croft
Hantao Cui
Nirmoy Das
Lenoardo D'avila
Giuseppe Di Lena
David Erickson
Juan Gascon
Glen Gibb
Andrew Ferguson
Eder Leao Fernandes
Julian Filter
Ben Frankel
Tim Gates
Gregory Gee
Jon Hall
Roan Huang
Vitaly Ivanov
Theo Jepsen
Mathieu Jadin
Babis Kaidos
Rich Lane
Rémy Léone
Xiaozhou Li
Zi Shen Lim
David Mahler
Felix Maurer
Murphy McCauley
Alex Moijes
Felician Nemeth
José Pedro Oliveira
James Page
Gustavo Pantuza Coelho Pinto
Ramon Pujianto
Stempha Reiter
Damien Saucez
Shan Sikdar
Angad Singh
Piyush Srivastava
Ed Swierk
Darshan Thaker
Olivier Tl]ilmans
Niels van Adrichem
Brad Walker
Andreas Wundsam
Vikas Yadav
Isaku Yamahata
Baohua Yang
Zhuo

Thanks also to everyone who has submitted issues and pull
requests on github, and to our friendly mininet-discuss
Expand Down
109 changes: 70 additions & 39 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Mininet Installation/Configuration Notes
----------------------------------------

Mininet 2.3.0d6
Mininet 2.3.0
---

The supported installation methods for Mininet are 1) using a
Expand Down Expand Up @@ -32,28 +32,31 @@ like to contribute an installation script, we would welcome it!)
2. Next-easiest option: use our Ubuntu package!

To install Mininet itself (i.e. `mn` and the Python API) on Ubuntu
12.10+:
16.04+:

sudo apt-get install mininet

Note: if you are upgrading from an older version of Mininet, make
sure you remove the old OVS from `/usr/local`:

sudo rm /usr/local/bin/ovs*
sudo rm /usr/local/sbin/ovs*
Note: this may install an older version of Mininet which may not
support Python 3. If you would like the latest version of Mininet,
consider installing from source as described in the next section.

3. Native installation from source

3.1. Native installation from source on Ubuntu 12.04+
If you are running Ubuntu, Debian, or Fedora, you may be able to use
our handy `install.sh` script, which is in `util/`. Please read the
following sections first.

3.1. Obtaining the Mininet source code

If you're reading this, you've probably already done so, but the
command to download the Mininet source code is:

git clone git://github.com/mininet/mininet.git

Note that the above git command will check out the latest and greatest
Mininet (which we recommend!) If you want to run the last tagged/released
version of Mininet, you can look at the release tags using
Mininet (which we recommend!) If you want to run the last
tagged/released version of Mininet, you can look at the release tags
using

cd mininet
git tag
Expand All @@ -64,21 +67,38 @@ like to contribute an installation script, we would welcome it!)

where <release tag> is the release you want to check out.

If you are running Ubuntu, Debian, or Fedora, you may be able to use
our handy `install.sh` script, which is in `util/`.
3.1.1 *CAUTION: USE AT YOUR OWN RISK!*

*WARNING: USE AT YOUR OWN RISK!*

`install.sh` is a bit intrusive and may possibly damage your OS
`install.sh` can be a bit intrusive and may possibly damage your OS
and/or home directory, by creating/modifying several directories
such as `mininet`, `openflow`, `oftest`, `pox`, etc.. We recommend
trying it in a VM before trying it on a system you use from day to day.
trying it in a VM before trying it on a system you use from day to
day.

Although we hope it won't do anything completely terrible, you may
want to look at the script before you run it, and you should make
sure your system and home directory are backed up just in case!

To install Mininet itself, the OpenFlow reference implementation, and
You can change the directory where the dependencies are installed
using the -s <directory> flag.

util/install.sh -s <directory> ...

3.1.2 Running `install.sh`

Installing a "minimal" version of Mininet with Open vSwitch should
be reasonably non-perturbing since it should not create directories
for other tools:

util/install.sh -nv

Note this will not install a controller, so you will have to either
install your own controller, or use a switch such OVSBridge that does
not require a controller:

sudo mn --switch ovsbr --test pingall

To install Mininet itself, the OpenFlow reference controller, and
Open vSwitch, you may use:

util/install.sh -fnv
Expand All @@ -88,6 +108,27 @@ like to contribute an installation script, we would welcome it!)

sudo mn --test pingall

3.1.3 Python 3 and Python 2 support

Mininet supports Python 3 and Python 2. By default, `install.sh`
will use whatever `python` is on your system. To specify a
specific version of Pythonm, you can set the PYTHON environment
variable:

PYTHON=python3 util/install.sh -fnv

You can install Mininet for both Python 3 and Python 2:

PYTHON=python2 util/install.sh -fnv
PYTHON=python3 util/install.sh -n

Whichever version was installed last will be the default for `mn`.
As long as Mininet is installed for the appropriate version of
Python, you can run it using that versinon of Python:

python3 `which mn`
python2 `which mn`

To install ALL of the software which we use for OpenFlow tutorials,
including POX, the OpenFlow WireShark dissector, the `oftest`
framework, and other potentially useful software, you may use:
Expand All @@ -96,31 +137,14 @@ like to contribute an installation script, we would welcome it!)

This takes about 4 minutes on our test system.

You can change the directory where the dependencies are installed using
the -s <directory> flag.

util/install.sh -s <directory> -a

3.2. Native installation from source on Fedora 18+.
3.2. (Experimental) Native installation from source on Fedora:

As root execute the following operations:

* install git

yum install git

* create an user account (e.g. mininet) and add it to the wheel group

useradd [...] mininet
usermod -a -G wheel mininet

* change the SElinux setting to permissive. It can be done
temporarily with:

setenforce 0

then login with the new account (e.g. mininet) and do the following:

* clone the Mininet repository

git clone git://github.com/mininet/mininet.git
Expand All @@ -139,7 +163,10 @@ like to contribute an installation script, we would welcome it!)

sudo mn --test pingall

4. Creating your own Mininet/OpenFlow tutorial VM
Note that `install.sh -fnv `may not install all dependencies on Fedora,
and many tests may still fail.

4. Creating your own Mininet/OpenFlow tutorial VM on Ubuntu/Debian

Creating your own Ubuntu Mininet VM for use with the OpenFlow tutorial
is easy! First, create a new Ubuntu VM. Next, run two commands in it:
Expand All @@ -155,7 +182,8 @@ like to contribute an installation script, we would welcome it!)

Although we don't support other Linux distributions directly, it
should be possible to install and run Mininet with some degree of
manual effort.
manual effort. People have even gotten `mn --switch user` to run
in a ChromeOS container.

In general, you must have:

Expand All @@ -172,8 +200,11 @@ like to contribute an installation script, we would welcome it!)
support other Linux distributions.


Good luck!
As always, please feel free to submit issues or pull requests for
installation-related features.

Good luck, and have fun!

Mininet Team
Mininet Developers

---
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Mininet 2.3.0d6 License
Mininet 2.3.0 License

Copyright (c) 2013-2019 Open Networking Laboratory
Copyright (c) 2013-2021 Open Networking Foundation
Copyright (c) 2009-2012 Bob Lantz and The Board of Trustees of
The Leland Stanford Junior University

Expand Down
Loading