Git Product home page Git Product logo

pipette's Introduction

pipette

test codecov buildx

An SDN/NFV coprocessor controller.

Pipette is a tool that allows users to multiplex SDN coprocessing by implementing transparent L3 NAT. Pipette does this by creating a virtual network behind your coprocessor port and then acting as the SDN controller of that network. Packets are seamlessly switched to their appropriate destination using Ryu.

Usage

Configuration

Required

  1. COPROINT - the interface that will receive coprocessed packets
  2. NFVIPS - IPs to send coprocessed packets to. Must be a /16
  3. VLANS - Space delimitted list of vlans to coprocess from, must match a vlan in ACL rule
  4. FAKEINT - interface created for fake services to run on
  5. DFILE - Dockerfile to use to run pipette. should be set based on hardware use

Optional

  1. FAKESERVERMAC - MAC to be assigned to the coprocessing server
  2. FAKECLIENTMAC - MAC to be assigned to the coprocessing client
  3. BR - name of OVS bridge to be created
  4. OF - Pipette OpenFlow port number
  5. COPROPORT - - OpenFlow port number exposed from $COPROINT to OVS
  6. FAKEPORT - OpenFlow port number to correspond from OVS to $FAKEINT
  7. RECORD - 0 to not store pcaps passing through $COPROINT, anything else to store them
  8. PCAP_LOCATION - filename of store pcaps
  9. PIPETTE_TEMP_DIR temp directory to store process info Most of the above can can be overridden by passing appropriate flags to the startup script. For more details run ./runpipette.sh --help for more details

Starting Pipette

  1. Run the Shell script using ./runpipette.sh. By default this will run Pipette in a docker container, use the --no-docker option to run it natively.
  2. Start any coprocessing services. It is important to ensure that the services are bound to one of the IPs containted in $NFVIPS. If using Docker besure to start the container using the -p <IP>:<PORT>:<PORT> option

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.