Software APIs
These software APIs are included:
-
NTAPI (Napatech application programming interface)
Napatech application programming interface is a stream-based, packet- or segment-based zero-copy API. User space libraries are included in binary, and the kernel space driver is included as open source (GPL-compliant).
-
NTPL (Napatech programming language)
Napatech programming language is a highly efficient interface, which optimizes the use of the FPGA resources. In the Link™ Capture Software 11.5 release these functions are supported:
- Dynamic packet descriptors
- Filtering
- Slicing
- Hash key definition
- Multi-CPU distribution
- Correlation key (does not apply to NT200A01-2×100 nor to NT200A01-2×100/40 running at 2 × 100 Gbit/s)
- Local retransmission (does not apply to NT200A01-2×100 nor to NT200A01-2×100/40 running at 2 × 100 Gbit/s)
- IP fragment handling (does not apply to NT200A01-2×100 nor to NT200A01-2×100/40 running at 2 × 100 Gbit/s)
-
libpcap
A libpcap source library is available for integration of libpcap applications.
-
WinPcap
A WinPcap source library is available for integration of WinPcap applications.
Tools
The Link™ Capture Software 11.5 release includes a tools package with a number of binary tools that demonstrate the SmartNIC functionality. These tools are included:
- adapterinfo (displays information about the SmartNIC)
- capfileconvert (converts captured files to or from 3GD (Napatech Software Suite) format)
- capfiledump (dumps a 3GD (Napatech Software Suite) capture file in humanly readable format)
- capture (captures data to disk – only applies to SmartNICs with a capture profile)
- config (configures links, time stamp values and sensor alarm levels)
- diagnostics (perform diagnostics on a SmartNIC)
- latency (not used)
- monitoring (queries the system port statistics)
- nimconfig (reads/writes values from/to the memory of network interface modules)
- ntinfo (collects information about the host buffer utilization once per second, and creates a host buffer utilization report)
- ntlog (reads out the driver log)
- ntpcap_capture (captures data received from a PCAP interface and stores it to disc in true PCAP file format.)
- ntpcap_replay (replays any captured PCAP or PCAPNG file)
- ntpl (sends NTPL code to a certain network stream)
- osmode (creates a virtual network device on top of 3GD (Napatech Software Suite))
- pktgen (performs traffic generation – does not apply to NT200A01-2×100 running on the capture image)
- pps_basic (synchronizes the SmartNIC against a PPS signal – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- pps_endrun (synchronizes the SmartNIC against a PPS signal from an EndRun Præcis Cf CDMA receiver or an EndRun Præcis II CDMA receiver – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- pps_oregano (synchronizes the SmartNIC against a PPS signal from an Oregano SYN1588 PCIe NIC – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- pps_os (synchronizes the SmartNIC against a PPS signal using OS time as input – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- pps_ptp (enables PPS on all SmartNICs configured to run PPS – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- pps_symmetricom (synchronizes the SmartNIC against a PPS signal from a Microsemi SyncServer® – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- productinfo (displays product information about a SmartNIC)
- profiling (queries the system for profiling data)
- ptp_port_config (reads/writes values of selected PTP port parameters – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- readproperty (queries the properties of the Napatech Software Suite)
- replay (transmits a file with captured traffic – does not apply to NT200A01-2×100 running on the capture image)
- supportinfo (dumps system information for support purposes)
- throughput (captures to server memory and shows the throughput)
- vpd (reads/writes VPD (vital product data) user data)
Examples
The Link™ Capture Software 11.5 release includes an examples package for the SmartNICs with a number of code examples that use the SmartNIC functionality to illustrate how user applications can be made. These examples are included:
- bypass/config (not used)
- bypass/info (not used)
- bypass/watchdog (not used)
- config (is an example of how to use the configuration stream interface in NTAPI)
- event (is an example of how to use the event stream interface in NTAPI)
- eventMonitor (is an example of how to monitor events and dump information about them to the screen using the event stream interface in NTAPI)
- hashref/calc_single_hash (is an example of how to use the hash reference library to calculate hash values for some variants of key data)
- info (is an example of how to use the information stream interface in NTAPI)
- integration/systemd (contains a unit configuration for systemd)
- integration/sysv (contains a System V init script enabling ntservice to be started and stopped by a System V compatible init process)
- integration/upstart (contains a job file for Upstart, enabling ntservice to be controlled by Upstart)
- net/addPacket (is a legacy example of how to implement a simple VLAN tagging, using limited host-based transmission - only applies to NT100E3-1-PTP and NT40E3-4-PTP)
- net/analysis (is an example of how to perform real-time analysis of packets using the file network stream interface in NTAPI)
- net/capfileconvert (is an example of how to convert captured files)
- net/capture (is an example of how to capture to disk using the RX network stream interface in NTAPI)
- net/inline (not used)
- net/ipfdemo (is an example of how to use IP fragment handling – does not apply to NT200A01-2×100 nor to NT200A01-2×100/40 running at 2 × 100 Gbit/s)
- net/netflow (is an example of how to use the dynamic descriptor 1 to extract net flow information from a packet)
- net/numa (is an example of how to assign and use a host buffer on a NUMA mode)
- net/readcapfile (is an example of how to read a capture file using NTAPI)
- net/replay (not used)
- net/replay4GA (is an example of how to replay captured data onto a port using the TX network stream interface in NTAPI – does not apply to NT200A01-2×100 running on the capture image)
- net/replayGS (not used)
- net/streamidstatistics (is an example of how to get stream ID statistics that can be correlated with what the application receives)
- net/transmit_multifunction (is an example of how to transmit different packet sizes at different rates on different ports by transmitting data in segments using NTAPI)
- net/transmit_on_timestamp (is an example of how to transmit packets on time stamp using the packet interface in NTAPI)
- net/transmit_on_timestamp_setclock (is an example of how to transmit a sequence of packets on time stamp multiple times using TXSETCLOCK to advance the delta with the duration of a single replay iteration)
- net/transmit_packet (is an example of how to transmit packets using the packet interface in NTAPI)
- net/transmit_pcap (is an example of how to transmit PCAP packets using the packet interface in NTAPI)
- net/transmit_segment (is an example of how to transmit segments using the TX network stream interface in NTAPI)
- net/vlandemo (is an example of how to implement a simple VLAN tagging, using dynamic descriptor 3 and the in-line transmission capabilities – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- pps (is an example of how to use PPS time synchronization – does not apply to Intel® PAC with Intel® Arria® 10 GX FPGA)
- sensor (is an example of how to read sensors)
- stat (is an example of how to use the statistics stream interface in NTAPI)
- statUsage (is an example of how to use the statistics stream interface in NTAPI to read host buffer usage statistics)