Adding plugin calls for adding static IP routes and sending ARP requests to ensure we can communicate between VMs appropriately (and avoid having to constrain subnet usage). Also including helpfer functions for parsing device IPs.
Add an iperf class method for grabing iface statistics and validate that
the expected number of bytes has been communicated over the interface in
question.

Also enforce that we have a minimum number of bytes flowing over an interface.
Move to parsing /proc/net/dev instead of relying on ethtool. No supported by PV drivers
Providing an API for clearing out IP routes that have been added. Also using XAPI other_config to mark up control domain VMs with routes that have been added, so they can be appropriately removed following the test.
Add a call to remove IP routes that have been added during a test based on keys present in control domains VM other_config store.
Updating the _get_control_domain_ip call to consider the device in Dom0 we would like an IP for.
Explicitly log calls made to the ACK plugin.
Add route between server/client in both directions, and use 'get_device_name' to identify the interface under test.
Adding some extra logging for Iperf code path.
Updating iperf plugin call to contain vm_reference for client (so as to appropriatly direct the plugin call).
Implementing calls to setup routes for MTU tests (akin to Iperf tests). Also ensure we try a pre-jumbo frames ping to test connectivity between the two end points.
Removing calls to 'reset_arp' for VMs.
Moving away from passing around ip and mask for device interface, create a helper object to abstract 'Iface'. Can now hold MAC details which can be used for ARP related activity.
Add get_local_device_info call to plugin in order to provide IP/Mask/Mac info about any particular local device.
Moving dhclient code out to a seperate function that takes care of halting existing dhclient processes. Using this for configuring local device IPs.
Adding extra debug for tracing escalations.
Improving the robustness of the kill_processes function to ensure we check for valid PIDs to destroy (and so prevent failure/exceptions being raised if none exist).
Adding PS full path for use in dhclient
Expose a new function 'configure_local_device' and rename 'configure_server_ip to be 'configure_local_device_ip'. The new function will allow the caller to set the ip/mask of a specified interface externally, and use the refactored configure_local_device_ip method.
Adding some debug for '_get_local_device'