Including changes to mnexec -c to reduce the number of
close() system calls, which may help with performance in
containers on Ubuntu 22.04.
Note that systemd-udevd also seems to be a cause of performance issues
and should probably be disabled while running Mininet.
Adding dbeug logging to test_simpleperf because it is failing
intermittently. (Note with packet loss it can fail, but this
is not how we should be testing it.)
util.py: replace mountCgroups with checkCgroups, which
returns the cgroup version (cgroup, cgroup2)
node.py: handle cpu.max='quota period' for cgroup2
vs. cpu.{cfs_quota_us,cfs_period_us} for cgroup
net.py: make _iperfVals more robust in the case of a missing
UDP ACK
examples/cpu.py: user _iperfVals to handle new iperf behavior
of no output from telnet
1. update/fix codecheck
Run workflow with pylint 2.15.7
Add a bunch of fiddly and mostly cosmetic changes to
make pylint (and make codecheck) happy.
Also try to run pyflakes3 vs. pyflakes
2. remove Ubuntu 18.04
Ubuntu 18.04 has been removed from github actions, so
we remove it from our workflow as well
- use decode() for python 3 compatibility
- try to identify non-loopback interface for controllers
-- avoid hardwired 'eth0'
- use remoteServer consistently in tests
- pass tests on ubuntu 20/python 3
- pass hybrid test with hybrid python 2 and python 3 mininet
This helps with virtualenv although it can open
up another security hole if you end up using an
unexpected python interpreter.
Overall it seems to make sense to err on the side
of usability but it's good to be aware of security.
However, for the remaining utility scripts that require
python 2, we explicitly note this with #!/usr/bin/python2.
In certain cases, dp0 and its interfaces were not
being cleaned up, probably due to scratchnet.py being
killed before it terminated. This in turn caused the
natnet test to fail.
Ubuntu 20.04 fixes:
- fixes sshd test
- speeds up examples/{treeping64,tree1024}.py
- debugging hacks/output for testLinkChange
- removes cfs from examples/popen.py
- improves nat in nodelib (netplan fixes?)
- makes some tests executable
- waits for switches to connect in tests to
avoid race conditions
-- adds mn -w option and wait CLI command
Changes:
- REMOVES default "-v" argument for Controller()
and adds verbose(=False) option; avoiding logging
makes it faster
- CHANGES waitConnected to wait for 5 seconds
as documented; we may wish to implement an argument
to -w to set this timeout
Issues?
- There may still be an issue with the ovs-netplan-clean
service causing the boot to hang ;-(
Previously we looked for 'eth0', but linux has renamed interfaces.
Instead of looking by name, we now look for an interface which
is the appropriate gateway to a remote server address.
fixes#831
items() vs. iteritems() and decode() bytes in monitorFiles
Probably not strictly correct if bytes are split - we still
need to deal with this properly.
Networkx moved graphviz_layout, so we look for it in two different
places.
Also plot() should be fixed for regular Mininet(), which doesn't have
a .servers list.