The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This section of the user guide describes how to use the Cisco Nexus SmartNIC (formerly ExaNIC) as a developer. There are at least three different APIs that can be used depending on requirements:
Existing sockets applications can be accelerated with the exasock TCP/UDP acceleration library. Generally this is simply a matter of running the application with the exasock
command. For more details and known limitations, see the exasock usage guide.
Sending and receiving packets with low latency using the SmartNIC API library (libexanic). Refer to the internals primer for an introduction to the architecture of SmartNIC cards, and the libexanic usage guide for API details. It is possible to use libexanic simultaneously with exasock (e.g. receiving UDP frames with libexanic and sending TCP frames with exasock), and it is also possible to use exasock to pre-build TCP frames and then send them using libexanic (see the TCP acceleration section).
Writing your own logic to run on the SmartNIC card's FPGA using the SmartNIC FDK. For more information refer to the FDK documentation. Note that the FDK is an optional component that is licensed separately. When running a custom firmware image, all network interfaces are still exposed to software (subject to filtering by the user FPGA logic), so the normal software APIs are still available.
This section of the user guide describes how to use the Cisco Nexus SmartNIC (formerly ExaNIC) as a developer. There are at least three different APIs that can be used depending on requirements:
Existing sockets applications can be accelerated with the exasock TCP/UDP acceleration library. Generally this is simply a matter of running the application with the exasock
command. For more details and known limitations, see the exasock usage guide.
Sending and receiving packets with low latency using the SmartNIC API library (libexanic). Refer to the internals primer for an introduction to the architecture of SmartNIC cards, and the libexanic usage guide for API details. It is possible to use libexanic simultaneously with exasock (e.g. receiving UDP frames with libexanic and sending TCP frames with exasock), and it is also possible to use exasock to pre-build TCP frames and then send them using libexanic (see the TCP acceleration section).
Writing your own logic to run on the SmartNIC card's FPGA using the SmartNIC FDK. For more information refer to the FDK documentation. Note that the FDK is an optional component that is licensed separately. When running a custom firmware image, all network interfaces are still exposed to software (subject to filtering by the user FPGA logic), so the normal software APIs are still available.