Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

System Architecture Diagram

Module Descriptions

OVSDriver Module

The OVSDriver module is the main component of the project and has several submodules:

  • bh.c: "Bottom-halves" - queue of requests from upcall threads to the main thread.
  • fwd.c: Implements the Indigo forwarding interface.
  • kflow.c: Manages kernel flows (installation, invalidation, expiration).
  • ovs_driver.c: Initialization/cleanup.
  • translate_actions.c: Translation from OpenFlow matches and actions to openvswitch actions.
  • upcall.c: Handles upcalls from the openvswitch module.
  • vport.c: Implements the Indigo port manager interface.

The ovs_driver_int.h file defines the internal interfaces between these submodules.

Source Tree Descriptions

The IVS repository uses the same source code module infrastructure and build system as the Indigo project (which is included as a submodule under indigo).

Here's an (abridged) source code tree:

  • build: Convenience scripts for building and running IVS.
  • debian: Debian packaging.
  • indigo: Submodule linking to floodlight/indigo.
  • Modules
    • flowtable: Hash-based flowtable implementation.
    • OVSDriver: Implementation of Indigo Forwarding/PortManager interfaces using the openvswitch kernel module.
      • module
      • inc: OVSDriver public headers.
      • src: OVSDriver implementation.
  • openvswitch: Header files for the openvswitch netlink interface.
  • targets
    • ivs: Switch daemon.
    • ivs-ctl: Utility to add/remove ports from the switch.
  • No labels