• Stars
    star
    138
  • Rank 264,508 (Top 6 %)
  • Language
    C
  • License
    Other
  • Created about 8 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ExaNIC drivers, utilities and development libraries

ExaNIC Software

This repository contains drivers, utilities and development libraries for Exablaze ultra-low-latency network cards (ExaNIC X25, ExaNIC X100, ExaNIC X10, ExaNIC X40, ExaNIC X2, ExaNIC X4, ExaNIC V5P, ExaNIC V9P, 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 (now part of Cisco) 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.

More Repositories

1

ChezScheme

Chez Scheme
Scheme
6,965
star
2

openh264

Open Source H.264 Codec
C++
5,527
star
3

joy

A package for capturing and analyzing network flow data and intraflow data, for network research, forensics, and security monitoring.
C
1,301
star
4

libsrtp

Library for SRTP (Secure Realtime Transport Protocol)
C
1,209
star
5

node-jose

JavaScript
700
star
6

thor

Thor Video Codec
C
697
star
7

mindmeld

An Open Source Conversational AI Platform for Deep-Domain Voice Interfaces and Chatbots.
Python
673
star
8

mercury

Mercury: network metadata capture and analysis
C++
437
star
9

cisco-mibs

Various SNMP MIBs from Cisco
HTML
144
star
10

mlspp

Implementation of Messaging Layer Security
C++
108
star
11

cjose

C library implementing the Javascript Object Signing and Encryption (JOSE)
C
105
star
12

libest

C
97
star
13

elsy

An opinionated, multi-language, build tool based on Docker and Docker Compose
Go
79
star
14

lal-build-manager

Project dependency manager
Rust
75
star
15

libacvp

The libacvp library is a client-side implementation of the draft ACVP protocol (github.com/usnistgov/ACVP).
C
65
star
16

ns3-802.11ax-simulator

NS3 Simulator of 802.11ax
C++
58
star
17

cisco-network-puppet-module

Ruby
55
star
18

open-nFAPI

An open source implementation of the Small Cell Forum's Network Functional API (nFAPI)
C
54
star
19

ns3-rmcat

Simulator of IETF RMCAT congestion control protocols
C++
50
star
20

go-mls

Message Layer Security
Go
48
star
21

cisco.github.io

Public Github Pages for Cisco
JavaScript
45
star
22

libfnr

FNR is a small domain block cipher to encrypt small objects ( < 128 bits )
C
40
star
23

senml

Tool to convert senml between formats and act as gateway server to other services
Go
39
star
24

opus

Cisco work on the Opus codec
C
31
star
25

hash-sigs

A full-featured implementation of of the LMS and HSS Hash Based Signature Schemes from draft-mcgrew-hash-sigs-07.
C
31
star
26

go-hpke

Implementation of draft-irtf-cfrg-hpke
Go
30
star
27

cisco-network-node-utils

Ruby
29
star
28

systemf

Prepared statement support for the system command
C
29
star
29

cisco-network-chef-cookbook

Ruby
27
star
30

OpenOSC

Open Object Size Checking: Library to detect buffer overflows in C/C++ code
C
27
star
31

NATTools

NAT Tools
C
26
star
32

ActionOrchestratorContent

A repository for Action Orchestrator content definitions. Includes workflows and Atomic Workflow Adapters as well as general adapter definitions.
25
star
33

exact-capture

Exablaze High Rate Capture Software
C
23
star
34

oraf

Optimized RAndom Forests
Scala
22
star
35

node-kms

node-scr
JavaScript
21
star
36

JabberWerxC

A C API for XMPP connectivity
C
18
star
37

zepster

Generate database schema, documentation, and other artifacts from an Entity-Relationship diagram, which is created as a GraphML file using the yEd graph editor.
Python
17
star
38

firepower-ngfw

Firepower Threat Defense Virtual templates and artifacts
13
star
39

cisco-yang-puppet-module

Puppet module to allow configuration of IOS-XR via YANG
Ruby
11
star
40

anyconnect-kdf

Cisco AnyConnect Linux Kernel Module
C
11
star
41

webex-assistant-sdk

An SDK for developing Webex Assistant Skills based on the MindMeld platform.
Python
11
star
42

xr-telemetry-m2m-web

A small web app to explore the IOS-XR internal data model, for streaming telemetry or other automation uses
Python
10
star
43

herisson

C++
10
star
44

goFish

Finding Fish
C++
9
star
45

cisco-nxapi

Ruby
8
star
46

asav

ASAv templates and artifacts
8
star
47

syncodecs

Synthetic codecs for evaluation of RMCAT work
C++
7
star
48

ciscohls

C
7
star
49

multilingual-speech-testing

Test software and data for evaluation of speech processing algorithms in multiple languages
Python
7
star
50

sframe

Implementation of draft-omara-sframe
C++
6
star
51

hyperledger-est-ca

EST CA for Hyperledger Fabric
Go
6
star
52

SSMAMTtools

C
6
star
53

ciscoacipuppet

Ruby
6
star
54

gse

Game State Encoder and Decoder for RTP
C++
6
star
55

go-tls-syntax

Encode and decode messages in TLS 1.3 syntax
Go
6
star
56

jfnr

Java bindings for FNR block cipher
Java
5
star
57

usnic_tools

usNIC tools
C
4
star
58

ampfsm

Cisco AMP Filesystem Module
C
4
star
59

arc

Go
4
star
60

xr-telemetry-m2m-lib

Libraries for interacting with the IOS-XR M2M service.
Python
3
star
61

JdbcDecorator

Java
3
star
62

gst-plugin-dlnasrc

A fork of the original gst-dlna-src plugin, these modifications make the plugin work with the RDK server
C
3
star
63

ampnetworkflow

Cisco AMP Device Flow Control
C
3
star
64

libamvp

A client-side implementation of the AMVP protocol.
C
2
star
65

guppi

Grand Unified Platform for Process Interactions: A DevOps Environment for Data Scientists
Python
2
star
66

cisco-otel-java

Cisco Distribution of OpenTelemetry Java
1
star
67

WXM-Invitations

Optional module for dispatching SMS and Email invitations for Cisco Webex Experience Management Surveys from your private cloud
C#
1
star
68

cgmi

C
1
star
69

libusnic_verbs

Perl
1
star
70

node-scr

JavaScript
1
star
71

pam_mpa

PAM module providing Multi-Person Authentication against local (/etc/shadow)
C
1
star