DMAring is a new revolutionary network interface card driver architecture that is applicable to a variety of industries. It aims to provide efficiency and flexibility features in handling transfers and direct memory access through a generic approach, making it a more cost-effective solution.
This driver is unique because it significantly improves the packet capturing speed by 7 to 10 times and the real-time packet delivery response by 500 to 5000 times in comparison to current drivers and alternate solutions such as HIP, NAPI, pfring. Check the provided references in the accompanying papers [1, 2, 3] for performance comparisons depending on whether Redhat Linux or RTAI is being used.
Due to the successful implementation of the DMAring project, there is no longer a requirement for expensive high-capacity hardware, specialized network data acquisition cards, or systems such as Endace. The project provides basic source codes that developers can use or adapt for their applications, as well as three published conference papers [1, 2, 3] that provide extensive information on the architecture and its advantages. One of the papers (at SANE 2006) also contains guidelines to modify any Linux network interface driver (Donald Becker style drivers).
The author of the project has received an overwhelming number of mail requests from networking, network security/monitoring domain enthusiasts who have sought out these codes or requested specific network driver modifications. The hope is that another developer will take on this project, generate driver modifications for the most common network cards, and share them with others. The author intends to add other drivers and libpcap library modifications when time allows.
Those interested in real-time Linux or searching for real-time networking solutions can refer to the author's Masters thesis, which contains valuable performance-related discussions on this topic. The author found that RTAI with LXRT was an excellent choice for those seeking optimal performance and value in a real-time Linux option.
Version 0.9: N/A