Notes - nps-ros2/mininet_testbed GitHub Wiki

Upgrading ROS2

As of June 2020, ROS2 Foxy Fitzroy is available. Binary packages are available for Ubuntu Focal 20.04. Currently, per https://index.ros.org/doc/ros2/Installation/DDS-Implementations/Install-Connext-University-Eval/, "the Connext RMW layer in ROS2 is compatible with version 5.3.x of RTI Connext DDS, but not with the most-recent version (6.0.x)." Mininet testbed is currently set to work with Ubuntu 18.04, ROS2 Crystal, eProsima FastRTPS.

Here are our upgrade options:

Ubuntu ROS2 DDS
18.04 Crystal eProsima FastRTPS, Connext 5.3.x (untested)
18.04 Eloquent eProsima FastRTPS (mininet_testbed failed), Connext 5.3.x (untested), Cyclone DDS (untested)
20.04 (untested) Foxy eProsima FastRTPS, Connext 5.3.x, Cyclone DDS
20.04 (untested) (future) eProsima FastRTPS, Connext 5.3.x, Connext 6.0.x, Cyclone DDS

ROS2 Eloquent

It would be nice to use the latest ROS2 to examine latest QoS and Security provisions. Currently, ROS2 Eloquent does not appear to work with Mininet-Wifi. This needs re-tested. To work with Eloquent, port ROS2 Node interfaces create_publisher and create_subscription to handle new parameter requirements.

In the future, to install ROS2 Eloquent:

see https://index.ros.org/doc/ros2/Installation/Eloquent/Linux-Install-Debians/. For Ubuntu 18, you can put these ROS2 setup instructions in a file called, for example, install_ros2.bash:

#!/bin/bash
# abort on error
set -e

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt update
sudo apt install ros-eloquent-desktop
sudo apt install ros-eloquent-ros-base
sudo apt install python3-argcomplete
sudo apt install python3-colcon-common-extensions

and then run it:

 bash install_ros2.bash

Set up your environment to access ROS2 by adding this to the bottom of your .bashrc file:

source /opt/ros/eloquent/setup.bash

If you happen to have multiple ROS versions installed, be sure only one of them is sourced in your .bashrc file.

Packet analysis with tcpdump

In addition to using Wireshark as described in Home, packets can be captured on each network using tcpdump. Update mininet_runner.py to start tcpdump on selected nodes (see start Wireshark on first node object) or from the CLI, e.g.: R1 xterm then tcpdump -iR1-wlan0. Then use tshark to extract desired fields for analysis.