Giter Club home page Giter Club logo

packetdrill_mptcp's Introduction

Multipath tcp packetdrill version README:

This repository contains the current work status of my work on Packetdrill.

The goal of this packetdrill extension is to enable simultaneous TCP socket support in order to test multipath TCP stack implementation. Indeed, to properly test it we need to establish various Multipath TCP subflows, each of them being a TCP flow. Simultaneous socket support and MPTCP Three-way-handshare are implemented and working. mp_join was working but is being refactored.

For various reasons the major part of the code was added through a ultra big commit. I planned to restart from the last packetdrill version and commit portions of code accompanied of their clear explanation when I will have time.

I started to implement the DSS MPTCP option but it's ongoing work. I'm rather trying to refactor mp_join code and adding support of various ways to specify parameters to mptcp options (full auto, full manual, or partially auto.). Thus current mp_join that was working before isn't working right now due to this major ongoing refactoring.

New packetdrill features offered by this extension:

In local mode (no yet test on wire_server mode), both in ipv4 and ipv6 mode:
- partial implementation of bind syscall allowing to specify a different destination port
  for each socket.
- multisocket support: it is possible to establish multiple tcp connections
in a single packetdrill session (script). An implementation constraint is that
mutliple tcp three way handshakes can't be interleaved in the script.
- multipath tcp options implementation: mp_capable and mp_join "in both direction"
(first syn sent by packetdrill - first syn sent by kernel).

Other mptcp options are on the TODO list.

README povided by google for their original packetdrill version:

packetdrill

This directory contains the source code for the packetdrill network stack testing tool.

The web site for packetdrill is here:

https://code.google.com/p/packetdrill/

building

To build packetdrill, first install flex and bison.

Then set up the Makefile for your platform:

./configure

Then build the tool:

make

running

Here's a quick example.

On FreeBSD, OpenBSD, and NetBSD, try:

./packetdrill examples/fr-4pkt-sack-bsd.pkt

On Linux try:

./packetdrill examples/fr-4pkt-sack-linux.pkt

license

The packetdrill tool is released under version 2 of the GPL. See the COPYING file for full details.

discussion and contributions

If you have any questions, or code or patches to offer, please join the packetdrill e-mail list at:

http://groups.google.com/group/packetdrill

Contributions of code or tests are both welcomed!

Enjoy!

packetdrill_mptcp's People

Contributors

cpaasch avatar hoang-tranviet avatar matttbe avatar mneilsen avatar murraystokely avatar nealcardwell avatar redward avatar tuexen avatar

Stargazers

 avatar

Watchers

 avatar  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.