Code Monkey home page Code Monkey logo

vnperf's Introduction

VNperf: Vehicular Network performance measurement tool

VNperf is a tool for active measurements of network latency (RTT) on vehicular/mobile networks. It supports tuning various parameters for network interfaces, timing, threshold to declare network unavailability. For each test, it reports network RTT(s) over multiple networks measured simultaneously along with useful vehicular data such as speed and location.

Testbed Platform

We have tested VNperf on Dell XPS 13 Developer laptop running Ubuntu 16.04 LTS 64-bit. In theory, any Debian-distro with reasonable hardware should works; we have not tested on other platforms.

For network interfaces, we have tested with three hardwares:

  • Verizon - MiFi U620L
  • Sprint - Franklin U772 USB Modem
  • XFinityWiFi - TP-LINK T4U v2 w/ monthly hotspot subscription (link)

For vehicle and location data, we used following hardwares:


Setup

VNperf is purely written in python. Therefore, setting up python-2.7 and installing pip are mandatory. Also, in Ubuntu environment, VNperf does not use Network-manager. Instead, VNperf uses plain wpa_supplicant and dhclient for wireless WPA configuration due to slow passive scanning threshold in Network-manager in Ubuntu.

Step 1: stop all Ubuntu default network manager

$ sudo service network-manager stop
$ sudo service networking stop
$ sudo service wpa_supplicant stop
$ sudo service dhcpd stop
$ sudo service supervisor stop
$ sudo service ModemManager stop

Step 2: setup WPA supplicant for multi-routing

$ sudo cp -v conf/zzz-zz-buildtable /etc/dhcp/dhclient-enter-hooks.d/zzz-zz-buildtable
$ sudo cp -v conf/dhclient.conf /etc/dhcp/vnperf-dhclient.conf
$ ./scripts/build_rttables.sh register
$ sudo mkdir -v /etc/vnperf /etc/vnperf_control /etc/vnperf/
$ sudo cp -rv scripts /etc/vnperf/scripts
$ sudo chown $(whoami):$(whoami) /etc/vnperf && cd /etc/vnperf
$ touch usb0.stat usb1.stat wlan1.stat

Step 3: run WPA on wlan1

# new terminal-1
$ sudo wpa_supplicant -d -i wlan1 -Dwext -c $(pwd)/conf/wlan1.conf
# why -Dext? b/c TP-Link T4U AC1200 has RTL chipset (rtl8812AU)
# new terminal-2
$ sudo wpa_cli -p /etc/vnperf_control/wlan -a vnperf/scripts/wpa_cli_wlan1.sh

Step 4: set up cellular networks

# after plugging in usb-cell modems
# new terminal-5, Wait for 10 seconds!!!
$ sudo modprobe -r cdc_ether option cdc_acm usbhid
$ sudo kill -9 $(sudo ps -axf | grep "dh.*usb0" | grep -v "grep" | awk '{print $1}')
$ sudo dhclient -d usb0 -v -cf vnperf/conf/dhclient_usb0.conf usb0

Step 5: run server on server side

$ ./server.py

Step 6: install python dependencies for VNperf client

$ pip install requirement.txt

Step 7: run VNperf on client laptop!

$ sudo ./vnperf.py -t [SERVER_IP] -i wlan1 -i usb0 -i usb1 -I 0.25 -o log.csv

Trace Analysis

VNperf tool is developed and utilized for MobiCom'18 paper, RAVEN: Improving Interactive Latency for the Connected Car. A brief summary of trace analysis is available here.

Troubleshooting

First, check this doc. If you cannot resolve the issue, you can either open the issue in Github or please feel free to reach out to us. The contact info is at here.

Contribution

VNperf tool is maintained by HyunJong (Joseph) Lee, Jason Flinn from University of Michigan.

Reference

HyunJong Lee, Jason Flinn, and Basavaraj Tonshal. RAVEN: Improving Interactive Latency for the Connected Car. In Proceedings of 24th Annual International Conference on Mobile Computing and Networking (MobiCom), New Delhi, India, October-November 2018.

@inproceedings{Lee18:raven,
  title     = {{RAVEN}: Improving Interactive Latency for the Connected Car},
  author    = {Lee, HyunJong and Flinn, Jason and Tonshal, Basavaraj},
  booktitle = {Proceedings of 24th Annual International Conference on Mobile Computing and Networking (MobiCom)},
  month     = {October-November},
  year      = {2018},
  address   = {New Delhi, India},
}

License

All source code, documentation, and related artifacts associated with the cloudlet open source project are licensed under the Apache License, Version 2.0.

vnperf's People

Contributors

forkjoseph avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.