Code Monkey home page Code Monkey 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

  1. If an OVS container is not already present, start OVS: docker compose -f docker-compose-ovs.yml up -d. If you have OVS running already (eg, you are running dovesnap), skip this step.
  2. Start pipette: COPROINT=<ethX> VLANS=<VLANs> NFVIPS=<NFVIPs> OF=<OF TCP port> ID=0 docker compose -p 0 up -d (see Configuration section - example COPROINT=eth1 VLANS=2 NFVIPS=10.10.0.1/16 OF=6699 ID=0 docker compose -p 0 up -d.
  3. Start fake services listening on the NFVIP address assigned to the fake interface (Eg, IP of fake0.2 for VLAN 2 - pipette manages this interface and assigns the NFVIP). Fake services do not have to be in Docker.
  4. When finished, docker compose down.
  5. If you want to run pipette on multiple interfaces, specify different ID and project number as well as interfaces and NFVIPs (the same VLANs can be coprocessed differently on different interfaces - example COPROINT=eth2 VLANS=2 NFVIPS=10.20.0.1/16 OF=6799 ID=1 docker compose -p 1 up -d)

Configuration

Required

  1. COPROINT - the interface that will receive coprocessed packets
  2. VLANS - Space delimitted list of VLANs to coprocess from, must match a VLAN in FAUCET ACL rule
  3. NFVIPS - IPs to send coprocessed packets to. Must be a /16 if IPv4, or /96 if IPv6. There must be the same number of IPs in the list as VLANs.
  4. OF - OpenFlow TCP port for pipette to use

pipette's People

Contributors

anarkiwi avatar cglewis avatar rashley-iqt avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pipette's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

docker-compose
docker-compose-ovs.yml
  • iqtlabs/openvswitch v3.3.0
docker-compose.yml
dockerfile
Dockerfile.pipette
Dockerfile.pipetteconf
  • alpine 3.20
github-actions
.github/workflows/docker.yml
  • actions/checkout v4@692973e3d937129bcbf40652eb9f2f61becf3332
  • docker/setup-qemu-action v3
  • docker/setup-buildx-action v3
.github/workflows/stale.yml
  • actions/stale v9
.github/workflows/test.yml
  • actions/checkout v4@692973e3d937129bcbf40652eb9f2f61becf3332
  • codecov/codecov-action v4.5.0
pip_requirements
requirements.txt
  • os-ken ==2.9.0
test-requirements.txt
  • pytype ==2024.4.11

  • Check this box to trigger a request for Renovate to run again on this repository

Error when params have a trailing space

File: pipette.py
Affected params:

  • NFVIPS
  • VLANS

Issue:
If either of the above parameters has a trailing space the .split(' ') logic on lines 44 and 46 will create an array with an additional entry containing and empty string and the conversion to either int or ipaddress.ip_interface will fail with an error.

runpipette.sh fails with multiple NFVIPS

when a space delimited list of IPs is passed to runpipette.sh the second IP in the list is interpreted as an image name and the pipette container fails to start

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

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.