• Stars
    star
    126
  • Rank 275,609 (Top 6 %)
  • Language
    C
  • License
    Other
  • Created over 7 years ago
  • Updated about 2 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,847
star
2

openh264

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

joy

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

libsrtp

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

thor

Thor Video Codec
C
693
star
6

node-jose

JavaScript
691
star
7

mindmeld

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

mercury

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

cisco-mibs

Various SNMP MIBs from Cisco
HTML
119
star
10

cjose

C library implementing the Javascript Object Signing and Encryption (JOSE)
C
100
star
11

mlspp

Implementation of Messaging Layer Security
C++
100
star
12

libest

C
92
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
59
star
16

cisco-network-puppet-module

Ruby
54
star
17

ns3-802.11ax-simulator

NS3 Simulator of 802.11ax
C++
53
star
18

open-nFAPI

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

ns3-rmcat

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

go-mls

Message Layer Security
Go
47
star
21

cisco.github.io

Public Github Pages for Cisco
JavaScript
44
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

go-hpke

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

cisco-network-node-utils

Ruby
29
star
27

systemf

Prepared statement support for the system command
C
29
star
28

hash-sigs

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

cisco-network-chef-cookbook

Ruby
26
star
30

NATTools

NAT Tools
C
26
star
31

OpenOSC

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

ActionOrchestratorContent

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

node-kms

node-scr
JavaScript
20
star
34

oraf

Optimized RAndom Forests
Scala
19
star
35

exact-capture

Exablaze High Rate Capture Software
C
18
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
12
star
39

cisco-yang-puppet-module

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

webex-assistant-sdk

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

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
42

herisson

C++
10
star
43

anyconnect-kdf

Cisco AnyConnect Linux Kernel Module
C
9
star
44

goFish

Finding Fish
C++
9
star
45

cisco-nxapi

Ruby
8
star
46

asav

ASAv templates and artifacts
7
star
47

ciscohls

C
7
star
48

sframe

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

hyperledger-est-ca

EST CA for Hyperledger Fabric
Go
6
star
50

syncodecs

Synthetic codecs for evaluation of RMCAT work
C++
6
star
51

SSMAMTtools

C
6
star
52

ciscoacipuppet

Ruby
6
star
53

go-tls-syntax

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

gse

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

usnic_tools

usNIC tools
C
4
star
56

jfnr

Java bindings for FNR block cipher
Java
4
star
57

ampfsm

Cisco AMP Filesystem Module
C
4
star
58

arc

Go
4
star
59

xr-telemetry-m2m-lib

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

JdbcDecorator

Java
3
star
61

ampnetworkflow

Cisco AMP Device Flow Control
C
3
star
62

libamvp

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

gst-plugin-dlnasrc

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

guppi

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

cisco-otel-java

Cisco Distribution of OpenTelemetry Java
1
star
66

WXM-Invitations

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

libusnic_verbs

Perl
1
star
68

cgmi

C
1
star
69

node-scr

JavaScript
1
star
70

pam_mpa

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

multilingual-speech-testing

Test software and data for evaluation of speech processing algorithms in multiple languages
1
star