Giter Club home page Giter Club logo

exanic-software's Introduction

ExaNIC Software

This repository contains drivers, utilities and development libraries for Exablaze ultra-low-latency network cards (ExaNIC X2, ExaNIC X4, ExaNIC X10, ExaNIC X40, ExaNIC V5P, ExaNIC GM, and ExaNIC HPT). For full installation instructions and user guide please refer to the ExaNIC User Guide.

What's an ExaNIC?

The ExaNIC range from Exablaze features world-leading latency performance, precision timing, a simple and flexible programming interface, and true hardware extensibility through FPGA based reconfiguration.

Once the drivers are installed, ExaNICs present as normal network cards under Linux and many of the features are available through standard Linux APIs, however there are also additional tools and libraries that unlock the full performance and feature set.

An exanic-config utility provides an overview of device configuration and status at a glance.

An exanic-capture utility is provided for packet capture. With appropriate configuration, ExaNICs can provide lossless line rate capture at 10G. Accurate hardware timestamps are provided for each packet, to 6.2ns resolution for most ExaNICs and to 0.25ns resolution on the ExaNIC HPT (High Precision Timing) variant.

For low latency applications, Linux sockets applications can be accelerated with the exasock wrapper that hooks sockets calls and sends data directly to the card, bypassing the kernel. No recompilation is necessary. Alternatively, developers can access the card directly, including sending and receiving packets, through the libexanic API. Exasock also provides an extensions API that allows a hybrid model, where sockets are used for the majority of TCP functions but bypassed on the critical path.

Hardware traffic filtering and steering features are available to reduce host application load.

Advanced users with specific network processing needs can also program the onboard FPGA to develop custom network functions in hardware. (The Firmware Development Kit is licensed separately.)

Repository Contents

  • modules - ExaNIC and exasock drivers for Linux
  • libs - libexanic and exasock libraries
  • util - ExaNIC utilities including exanic-config, exanic-capture, exanic-clock-sync and exanic-fwupdate
  • scripts - exasock wrapper script
  • perf_test - tools for performing performance tests with ExaNICs as well as with devices from other vendors
  • examples
    • exanic - advanced usage with preloaded frames and a demonstration of a high resolution timing/measurement application
    • exasock - exasock related examples (multicast receive, timestamping, extensions API)
    • filters - filtering and traffic steering examples
    • devkit - software examples that are paired with the Firmware Development Kit (FDK)
  • debian - Debian/Ubuntu packaging
  • exanic.spec - Redhat/CentOS packaging

Installation

To install from source please run make and sudo make install from the top level.

Pre-built packages for Ubuntu are available from our apt repository, and pre-built packages for Redhat/CentOS are available from our yum repository. Packages for ArchLinux are available from AUR.

Support

Complete documentation is available from our website. For other questions and comments, you can contact us at supportATexablaze.com.

exanic-software's People

Contributors

kashuwong avatar eigenmatt avatar leonmoran avatar charith-exablaze avatar ido avatar mgrosvenor 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.