Claudio-Daniel Freire [Wed, 18 May 2011 09:43:05 +0000 (11:43 +0200)]
Wait for node dependencies to be installed before using them (invoking gcc)
Claudio-Daniel Freire [Wed, 18 May 2011 09:42:47 +0000 (11:42 +0200)]
Fix TUNGETIFF ioctl invocation to use the correct buffer structure
Claudio-Daniel Freire [Tue, 17 May 2011 13:13:33 +0000 (15:13 +0200)]
Cross TUN test
Claudio-Daniel Freire [Tue, 17 May 2011 13:13:20 +0000 (15:13 +0200)]
General cross TUN fixes
Claudio-Daniel Freire [Tue, 17 May 2011 13:12:45 +0000 (15:12 +0200)]
get methods of proxies should pickle data, they need to preserve the data types.
Claudio-Daniel Freire [Tue, 17 May 2011 13:11:36 +0000 (15:11 +0200)]
Fix invisible attribute implementation: they should be both queriable and settable.
Claudio-Daniel Freire [Tue, 17 May 2011 13:09:40 +0000 (15:09 +0200)]
Preserve the traceback when relaying exceptions from within threads
Claudio-Daniel Freire [Mon, 16 May 2011 15:38:35 +0000 (17:38 +0200)]
TunChannel finalization fix
Claudio-Daniel Freire [Mon, 16 May 2011 15:38:24 +0000 (17:38 +0200)]
Missing imports
Claudio-Daniel Freire [Mon, 16 May 2011 15:06:34 +0000 (17:06 +0200)]
Initial u ntested implementation of TunChannel for netns
Claudio-Daniel Freire [Mon, 16 May 2011 14:59:44 +0000 (16:59 +0200)]
Add TUNGETIFF to constants, they're useful
Claudio-Daniel Freire [Mon, 16 May 2011 14:41:00 +0000 (16:41 +0200)]
Forgot to implement with_pi & ethernet_mode (oops)
Claudio-Daniel Freire [Mon, 16 May 2011 14:36:21 +0000 (16:36 +0200)]
Document stock implementation functions
Claudio-Daniel Freire [Mon, 16 May 2011 14:21:32 +0000 (16:21 +0200)]
Add tunchannel_impl, see previous commit
Claudio-Daniel Freire [Mon, 16 May 2011 14:21:10 +0000 (16:21 +0200)]
Refactor a bit more, connect, wait, create and configure functions are also general enough to be put in a shared utility module.
Move that code to tunchannel_impl, to separate it from the core tunchannel stuff (which may be required if that generic implementation isn't applicable for some - ie, for tun_connect in PL).
Claudio-Daniel Freire [Mon, 16 May 2011 14:05:59 +0000 (16:05 +0200)]
Refactor TunChannel implementation in ns3 to make it common to all testbeds:
it's quite generic and reusable.
Claudio-Daniel Freire [Mon, 16 May 2011 13:34:49 +0000 (15:34 +0200)]
Initial untested implementation of ns3 tun-compliant connections (Tunchannel)
Claudio-Daniel Freire [Mon, 16 May 2011 13:34:19 +0000 (15:34 +0200)]
Termination fix on tun_connect
Claudio-Daniel Freire [Mon, 16 May 2011 09:56:36 +0000 (11:56 +0200)]
Refactor tunnelling code to put VPN channel protocol stuff in nepi.util (so that testbeds other than PL can implement their own).
Claudio-Daniel Freire [Fri, 13 May 2011 13:53:46 +0000 (15:53 +0200)]
Lots of cross-connection fixes, TUN synchronization, etc
Redirect most PL tests to our NepiPLC
Add multi-PLC capabilities and tests
NOTE: Some tests are degraded because we don't have ennough nodes to do proper tests yet
Claudio-Daniel Freire [Fri, 13 May 2011 08:36:40 +0000 (10:36 +0200)]
Fix connection resolution order check
Claudio-Daniel Freire [Thu, 12 May 2011 14:44:36 +0000 (16:44 +0200)]
Allow customization of the PLC API to be used for experiments
Claudio-Daniel Freire [Thu, 12 May 2011 14:37:44 +0000 (16:37 +0200)]
Fix for 64-bit PL: shared object compilation must be done with -fPIC
Claudio-Daniel Freire [Thu, 12 May 2011 13:13:15 +0000 (15:13 +0200)]
Fix broken netref commit: do not consider them resolved if there's any exception, don't consider exceptions there as an error either. Premature resolution often results in KeyError exceptions (among possibly others)
Claudio-Daniel Freire [Thu, 12 May 2011 13:12:24 +0000 (15:12 +0200)]
Fix stupid bug: missing ns3 reference in _add_static_route
Claudio-Daniel Freire [Thu, 12 May 2011 13:05:42 +0000 (15:05 +0200)]
Woops... fix broken commit about netrefs
Claudio-Daniel Freire [Thu, 12 May 2011 12:29:25 +0000 (14:29 +0200)]
SNAT test
currently failing due to PL bug :-O
Claudio-Daniel Freire [Thu, 12 May 2011 12:29:03 +0000 (14:29 +0200)]
Capture packets on FD-based tuns, by spawning a tcpdump in the background
Claudio-Daniel Freire [Thu, 12 May 2011 12:28:15 +0000 (14:28 +0200)]
Netrefs: resolve at create time when possible, some NS3 objects require proper create-time values.
Claudio-Daniel Freire [Thu, 12 May 2011 12:27:25 +0000 (14:27 +0200)]
NS3 fix: properly handle default (0.0.0.0/0) and host (x.y.z.w/32) routes.
Claudio-Daniel Freire [Thu, 12 May 2011 07:26:50 +0000 (09:26 +0200)]
Big refactoring of proxy code.
* Decorator-based serverside dispatch code
which is easier to maintain
* Automatic proxy generation using introspection on
abstract interface (Proxy/ExperimentController) and
serverside dispatch code.
* Tried to maintain meaningful tracebacks
* No more repeated code - stuff is only written once,
so changes are easier to apply.
* Changed marshalling for setters to use pickling instead
of adding a fictious (and limited) type parameter.
* Fixed some interface mismatches in the process
Claudio-Daniel Freire [Thu, 12 May 2011 07:05:40 +0000 (09:05 +0200)]
Better credits for big buck bunny
Claudio-Daniel Freire [Wed, 11 May 2011 15:21:28 +0000 (17:21 +0200)]
CC-licensed movie for the example
Claudio-Daniel Freire [Tue, 10 May 2011 13:03:50 +0000 (15:03 +0200)]
Remove debugging output from tun_connect - oops
Claudio-Daniel Freire [Tue, 10 May 2011 12:58:32 +0000 (14:58 +0200)]
Synchronization fix for cross connections: wait for tunnels to be up before starting applications
Claudio-Daniel Freire [Tue, 10 May 2011 10:04:49 +0000 (12:04 +0200)]
Test adaptations for NS3-in-NEPI cross connections:
* don't make all tests use the same home - it's confusing for debugging
* Enable debugging output
* Include some useful traces
Claudio-Daniel Freire [Tue, 10 May 2011 08:58:27 +0000 (10:58 +0200)]
Fix super call, totally wrong
Claudio-Daniel Freire [Tue, 10 May 2011 08:57:53 +0000 (10:57 +0200)]
Minor strace fix (still commented though, so just fix commented code)
Claudio-Daniel Freire [Tue, 10 May 2011 08:56:49 +0000 (10:56 +0200)]
Fix cross-testbed netrefs when using NEPI-in-NEPI setups.
Claudio-Daniel Freire [Tue, 10 May 2011 08:55:39 +0000 (10:55 +0200)]
Add missing IPv6 connectors
Fix cross connections by properly handling linux abstract socket names
Claudio-Daniel Freire [Tue, 10 May 2011 08:54:41 +0000 (10:54 +0200)]
Try connecting to the FD-passing unix socket twice - to alleviate synchronization issues
Claudio-Daniel Freire [Tue, 10 May 2011 08:53:52 +0000 (10:53 +0200)]
Properly handle linux abstract socket names
Claudio-Daniel Freire [Tue, 10 May 2011 08:53:02 +0000 (10:53 +0200)]
Detect alternate NS3 installations (_ns3 module instead of ns3)
Claudio-Daniel Freire [Tue, 10 May 2011 08:52:24 +0000 (10:52 +0200)]
Fixed several typos
Somewhat better error handling
Claudio-Daniel Freire [Fri, 6 May 2011 16:46:41 +0000 (18:46 +0200)]
NS3-in-PL fixes all over the place.
Cross-connection fixes all over the place too.
Still couldn't get cross connections working, but that's specific to FileDescriptorNetDevice
Claudio-Daniel Freire [Fri, 6 May 2011 16:45:32 +0000 (18:45 +0200)]
Create home directory if not found - NS3 needs it indeed
Claudio-Daniel Freire [Fri, 6 May 2011 16:45:07 +0000 (18:45 +0200)]
Remember root directory - it's useful
Claudio-Daniel Freire [Fri, 6 May 2011 16:44:51 +0000 (18:44 +0200)]
Contract attributes cannot be read-only
Claudio-Daniel Freire [Fri, 6 May 2011 16:44:00 +0000 (18:44 +0200)]
Some fixes to TUN/TAP devices
Fixed support for FileDescriptor-based taps.
(still ongoing though)
Claudio-Daniel Freire [Fri, 6 May 2011 16:42:56 +0000 (18:42 +0200)]
Provide better failure messages
Claudio-Daniel Freire [Fri, 6 May 2011 16:42:36 +0000 (18:42 +0200)]
Typos, type, environment, synchronization and other small fixes to Proxies
Claudio-Daniel Freire [Fri, 6 May 2011 15:19:28 +0000 (17:19 +0200)]
Fix typo
Claudio-Daniel Freire [Wed, 4 May 2011 16:39:40 +0000 (18:39 +0200)]
Do not rebuild ns3 if it's already built.
Normally, make and friends already do this natively, but waf seems to get confused because we do ./waf clean
Claudio-Daniel Freire [Wed, 4 May 2011 15:03:01 +0000 (17:03 +0200)]
Ticket #14: cross-connections between NS3 and PlanetLab through file descriptors (that means, NS3 instances running inside PL ATM)
Claudio-Daniel Freire [Wed, 4 May 2011 10:38:03 +0000 (12:38 +0200)]
- TAP interfaces
- TAP tunnelling
- Encrypted tunnels
- UDP-based tunnels
Claudio-Daniel Freire [Wed, 4 May 2011 08:13:34 +0000 (10:13 +0200)]
Cross connections (initial planetlab-side implementation following the tun protocol)
Claudio-Daniel Freire [Wed, 4 May 2011 08:11:55 +0000 (10:11 +0200)]
FIX support for tap and pl-tap modes.
Yey...
Claudio-Daniel Freire [Tue, 3 May 2011 13:26:50 +0000 (15:26 +0200)]
Ticket #29: Nepi-in-Nepi FINISHED
Wooow...
Claudio-Daniel Freire [Tue, 3 May 2011 12:20:14 +0000 (14:20 +0200)]
Testbed netrefs implemented.
Some basic tests added.
Claudio-Daniel Freire [Tue, 3 May 2011 11:06:44 +0000 (13:06 +0200)]
Ticket #29: resolve netrefs for netreffed testbeds and configure them in a middle step, allowing testbed-in-testbed scenarios.
Needs testings.
Claudio-Daniel Freire [Tue, 3 May 2011 11:05:55 +0000 (13:05 +0200)]
Sometimes when controller process cleanup happens concurrently with testbed teardown, exceptions may ensue in shutil.rmtree.
Just catch them and retry, sidestepping the issue. Proper synchronization is not easy, and not worth the amount of work for mere testing.
Claudio-Daniel Freire [Tue, 3 May 2011 10:19:32 +0000 (12:19 +0200)]
Ticket #29: Phasing out AccessConfiguration.
Not fully removed, sadly enough.
ExperimentControllers still need them.
Claudio-Daniel Freire [Mon, 2 May 2011 16:42:51 +0000 (18:42 +0200)]
Ticket #29: introduce some "standard" box attributes to support testbed-in-testbed deployment
Claudio-Daniel Freire [Mon, 2 May 2011 16:42:16 +0000 (18:42 +0200)]
Do not build NS3 examples - not needed
Claudio-Daniel Freire [Mon, 2 May 2011 16:41:57 +0000 (18:41 +0200)]
Disable NS3Dependency test on normal test runs, it takes a long time to run.
Claudio-Daniel Freire [Mon, 2 May 2011 15:24:00 +0000 (17:24 +0200)]
- Merge with head
- Add NS3Dependency object to PlanetLab, which makes possible the instantiation of NS3 TestbedController s.
- Add support for environment modifiers, required by NS3Dependency
- Better error logging (buildlog, installlog) for PlanetLab Dependency objects
Claudio-Daniel Freire [Mon, 2 May 2011 11:29:03 +0000 (13:29 +0200)]
Make integration tests also use the new environment variables
Alina Quereilhac [Mon, 2 May 2011 11:18:36 +0000 (13:18 +0200)]
minor changes to examples
Claudio-Daniel Freire [Mon, 2 May 2011 10:16:41 +0000 (12:16 +0200)]
Just tidying up
Claudio-Daniel Freire [Mon, 2 May 2011 10:13:32 +0000 (12:13 +0200)]
Take PL_SSH_KEY environment so that users may override the default ssh key
Claudio-Daniel Freire [Mon, 2 May 2011 09:33:31 +0000 (11:33 +0200)]
Look for SSH key in the user's home folder as given by environment HOME.
More portable.
Claudio-Daniel Freire [Mon, 2 May 2011 09:29:57 +0000 (11:29 +0200)]
Add NEPI_STRICT_AUTH_MODE, when not enabled, it takes user-configured host SSH keys.
When enabled, it will only use PLC-supplied host keys (more secure)
Claudio-Daniel Freire [Mon, 2 May 2011 08:54:39 +0000 (10:54 +0200)]
Adapt to new signature of TestbedController.set/get
Alina Quereilhac [Mon, 2 May 2011 08:17:07 +0000 (10:17 +0200)]
vlc wireless hybrid experiment example added
Alina Quereilhac [Sun, 1 May 2011 20:36:44 +0000 (22:36 +0200)]
mock cross_connect test added to test/core/integration.py
Alina Quereilhac [Sun, 1 May 2011 18:14:43 +0000 (20:14 +0200)]
testbed.status now accept guid = None to return the testbed status
Alina Quereilhac [Sun, 1 May 2011 18:08:15 +0000 (20:08 +0200)]
small refactoring in testbed_impl.
Alina Quereilhac [Sun, 1 May 2011 17:56:13 +0000 (19:56 +0200)]
testbed_impl.get improved
Alina Quereilhac [Sun, 1 May 2011 17:30:30 +0000 (19:30 +0200)]
replaced box_get_address for get_address and box_get_route for get_route in testbed_impl
Alina Quereilhac [Sun, 1 May 2011 17:24:02 +0000 (19:24 +0200)]
box_get removed and replaced for get in testbed_impl
Alina Quereilhac [Sun, 1 May 2011 10:31:31 +0000 (12:31 +0200)]
added TestbedController status flag
Alina Quereilhac [Sun, 1 May 2011 10:01:10 +0000 (12:01 +0200)]
added is_valid_value as a function for attributes.Attribute
Claudio-Daniel Freire [Fri, 29 Apr 2011 15:24:33 +0000 (17:24 +0200)]
Ticket #29: Implement dependencies to support testbed-in-PL
- Generic dependencies
- (python)path modifiers
- NEPI-in-NEPI dependency class
Claudio-Daniel Freire [Fri, 29 Apr 2011 11:06:47 +0000 (13:06 +0200)]
Async setup of TUNs and APPs, for much quicker deployment.
Made dependency setup also more responsive, with an exponential delay that responds better to no-op (which are common since nodes don't get packages uninstalled at cleanup time).
Claudio-Daniel Freire [Fri, 29 Apr 2011 08:26:53 +0000 (10:26 +0200)]
server_scp can copy multiple files at once.
This shaves a good 10% runtime from tests, and in some situations would mean a huge improvement (say, with long source lists)
Claudio-Daniel Freire [Fri, 29 Apr 2011 08:00:48 +0000 (10:00 +0200)]
Fix parallel execution bug that only ran connect/preconfigure stuff on the last testbed:
lambda : testbed.do_something only does it for the last value of the variable "testbed"
Testbed is a free variable, so it takes the value of the variable then the lambda is called,
which is usually the last value it took in the loop.
The correct way would be:
lambda testbed=testbed : testbed.do_something
Since that "freezes" the value of the "testbed" variable.
An easier and nicer way is to use bound methods:
testbed.do_something
(without lambda)
Alina Quereilhac [Thu, 28 Apr 2011 20:58:27 +0000 (22:58 +0200)]
More changes to make cross connections work... not working still
Alina Quereilhac [Thu, 28 Apr 2011 17:10:07 +0000 (19:10 +0200)]
initial changes to support cross_connection in two stages.
Claudio-Daniel Freire [Thu, 28 Apr 2011 15:44:54 +0000 (17:44 +0200)]
Ticket 14: More incremental work - minor fixes to TUN cleanup
Claudio-Daniel Freire [Thu, 28 Apr 2011 14:22:18 +0000 (16:22 +0200)]
rspawn.remote_kill fix: was not checking process status correctly
Claudio-Daniel Freire [Thu, 28 Apr 2011 14:19:30 +0000 (16:19 +0200)]
Ticket #14: WIP, only intra-PL TUN connections, required groundwork for cross-backend connections
Claudio-Daniel Freire [Wed, 27 Apr 2011 15:15:15 +0000 (17:15 +0200)]
Ticket #13: wildcards support in connector metadata, making the world better for cross-connectivity
Claudio-Daniel Freire [Wed, 27 Apr 2011 13:11:12 +0000 (15:11 +0200)]
Ticket #28: Refactor Box classes to use mixins, and provide read-only routes/addesses
Claudio-Daniel Freire [Tue, 26 Apr 2011 16:31:46 +0000 (18:31 +0200)]
Ticket #21: support for netpipe stats traces
Claudio-Daniel Freire [Tue, 26 Apr 2011 16:13:32 +0000 (18:13 +0200)]
Ticket #21: emulation support - finished :D
Claudio-Daniel Freire [Tue, 26 Apr 2011 14:25:28 +0000 (16:25 +0200)]
Ticket #21: emulation
- require emulation=True when using TUNs
- automatically add ipfwslice and vsys/ipfw-be as requirements when using emulation
Claudio-Daniel Freire [Tue, 26 Apr 2011 13:29:13 +0000 (15:29 +0200)]
Ticket #21: emulation support - vsys requirement checking when attaching a TunInterface to a node
Claudio-Daniel Freire [Tue, 26 Apr 2011 13:28:24 +0000 (15:28 +0200)]
Metadata fix: the "sudo" attribute had copypaste bugs on it, making it unusable.
Claudio-Daniel Freire [Tue, 26 Apr 2011 13:27:50 +0000 (15:27 +0200)]
Build script with application commands and run the script - supports more complex commands than simply calling remote_spawn on the user-supplied command.
Claudio-Daniel Freire [Tue, 26 Apr 2011 13:26:45 +0000 (15:26 +0200)]
popen_scp fixes: StringIO-based (and similar) transfers were utterly broken