{"id":13611959,"url":"https://github.com/Xilinx/open-nic","last_synced_at":"2025-04-13T09:30:41.147Z","repository":{"id":40618840,"uuid":"343549432","full_name":"Xilinx/open-nic","owner":"Xilinx","description":"AMD OpenNIC Project Overview","archived":false,"fork":false,"pushed_at":"2022-12-20T23:22:36.000Z","size":1076,"stargazers_count":211,"open_issues_count":9,"forks_count":37,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-08-02T20:43:36.999Z","etag":null,"topics":["datacenter","fpga","network-acceleration","networking","smartnic"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xilinx.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-01T20:35:05.000Z","updated_at":"2024-07-30T06:15:59.000Z","dependencies_parsed_at":"2023-01-30T02:15:50.224Z","dependency_job_id":null,"html_url":"https://github.com/Xilinx/open-nic","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Fopen-nic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Fopen-nic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Fopen-nic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Fopen-nic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xilinx","download_url":"https://codeload.github.com/Xilinx/open-nic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223576930,"owners_count":17167944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datacenter","fpga","network-acceleration","networking","smartnic"],"created_at":"2024-08-01T20:00:19.584Z","updated_at":"2024-11-07T19:31:12.308Z","avatar_url":"https://github.com/Xilinx.png","language":"Shell","funding_links":[],"categories":["Awesome SmartNIC"],"sub_categories":["Projects"],"readme":"# AMD OpenNIC Project\n\nThe OpenNIC project provides an FPGA-based NIC platform for the open source\ncommunity.  It consists of multiple components: a NIC shell, a Linux kernel\ndriver, and a DPDK driver.  The NIC shell contains the RTL sources and design \nfiles for targetting several of the AMD-Xilinx Alveo boards featuring UltraScale+ \nFPGAs.  It delivers a NIC implementation supporting up to four PCI-e physical \nfunctions (PFs) and two 100Gbps Ethernet ports.  The shell is equipped with \nwell-defined data and control interfaces and is designed to enable easy \nintegration of user logic into the shell.  A block diagram of the OpenNIC \nshell follows:\n\n![](open_nic_shell.png)\n\nThe Linux kernel driver implements the device driver for the NIC shell. It\nsupports multiple PFs and multiple TX/RX queues in each PF.  The RX queues are\nselected through a receive-side scaling (RSS) implementation in the shell.\n\nThe goal of OpenNIC is to enable fast prototyping of hardware-accelerated\nnetwork-attached applications.  It is not a fully-fledged SmartNIC solution.\n\nThe latest version of OpenNIC is 1.0, which uses OpenNIC shell version 1.0 and\nOpenNIC driver version 1.0 or OpenNIC DPDK driver version 1.0.\n\n## Repo Structure\n\nThis repository serves as the release point for the OpenNIC project, which\nconsists of three components:\n   - [OpenNIC shell](https://github.com/Xilinx/open-nic-shell.git),\n   - [OpenNIC driver](https://github.com/Xilinx/open-nic-driver.git), and\n   - [OpenNIC DPDK](https://github.com/Xilinx/open-nic-dpdk.git).\n\nA released version of OpenNIC pins to a commit in the `master` branch of each component repository.\n\nA Bash script `script/checkout.sh` is provided to checkout a specific version of\nOpenNIC.  It takes two arguments, the root directory for the cloned repositories\nand optionally, a version number.  By default, it will checkout the latest\nversion.  The correspondence between OpenNIC versions and component repository\ntags are tracked in `script/version.yaml`.\n\n## Technical Reference Guide\n\nA technical reference guide ([PDF version](https://github.com/Xilinx/open-nic/blob/main/OpenNIC_manual.pdf)\nor [MS Word version](https://github.com/Xilinx/open-nic/blob/main/OpenNIC_manual.docx)) provides details of\nthe design of the OpenNIC.  The document primarily covers the hardware architecture and its related\nimplementation.  It also briefly describes the organization of the Linux kernel driver for OpenNIC.\n\n## FAQ\n\nA set of [frequently asked questions](https://github.com/Xilinx/open-nic/blob/main/FAQ.md)\nhas been prepared to help in answering questions regarding this project.  The FAQ has sections for:\n(a) general questions, (b) feature set questions, (c) hardware questions, (d) software questions, and\n(e) operation questions.  Please contact us to submit any additional questions that you feel would help others.\n\n---\n\n# Copyright Notice and Disclaimer\n\nThis file contains confidential and proprietary information of Advanced Micro \nDevices-Xilinx and is protected under U.S. and international copyright and other \nintellectual property laws.\n\nDISCLAIMER\n\nThis disclaimer is not a license and does not grant any rights to the materials\ndistributed herewith.  Except as otherwise provided in a valid license issued to\nyou by Xilinx, and to the maximum extent permitted by applicable law: (1) THESE\nMATERIALS ARE MADE AVAILABLE \"AS IS\" AND WITH ALL FAULTS, AND XILINX HEREBY\nDISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY,\nINCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR\nFITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether\nin contract or tort, including negligence, or under any other theory of\nliability) for any loss or damage of any kind or nature related to, arising\nunder or in connection with these materials, including for any direct, or any\nindirect, special, incidental, or consequential loss or damage (including loss\nof data, profits, goodwill, or any type of loss or damage suffered as a result\nof any action brought by a third party) even if such damage or loss was\nreasonably foreseeable or Xilinx had been advised of the possibility of the\nsame.\n\nCRITICAL APPLICATIONS\n\nXilinx products are not designed or intended to be fail-safe, or for use in any\napplication requiring failsafe performance, such as life-support or safety\ndevices or systems, Class III medical devices, nuclear facilities, applications\nrelated to the deployment of airbags, or any other applications that could lead\nto death, personal injury, or severe property or environmental damage\n(individually and collectively, \"Critical Applications\"). Customer assumes the\nsole risk and liability of any use of Xilinx products in Critical Applications,\nsubject only to applicable laws and regulations governing limitations on product\nliability.\n\nTHIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE AT\nALL TIMES.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXilinx%2Fopen-nic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FXilinx%2Fopen-nic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXilinx%2Fopen-nic/lists"}