Arsenic: a user-accessible gigabit Ethernet interface

Arsenic is a gigabit Ethernet NIC which exports an extended interface to the operating system and user applications. Unlike conventional adaptors, it implements some of the protection and multiplexing functions traditionally performed by the operating system. This enables applications to be given direct access to their own 'virtual interface', allowing them to send and receive packets without operating system interaction. Packet filters uploaded to the interface card by the operating system are used to demultiplex received packets to their destination application, and to validate packets before transmission. Transmit traffic shaping and scheduling mechanisms enable the bandwidth used by applications to be controlled. These features allow protocol processing to be moved into user-space shared libraries without sacrificing the security and resource management functionality that the operating system normally provides. The paper describes Arsenic's design and implementation, and outlines how it is integrated into the Linux 2.3 operating system. Performance measurements are presented that show Arsenic supports low latency, high bandwidth communication while offering greater CPU efficiency and better quality of service than conventional devices.

[1]  Thorsten von Eicken,et al.  Incorporating Memory Management into User-Level Network Interfaces , 1997 .

[2]  J.M. Smith,et al.  Giving applications access to Gb/s networking , 1993, IEEE Network.

[3]  Peter Druschel,et al.  Experiences with a high-speed network adaptor: a software perspective , 1994, SIGCOMM 1994.

[4]  Milon Mackey,et al.  An implementation of the Hamlyn sender-managed interface architecture , 1996, OSDI '96.

[5]  Jeffrey S. Chase,et al.  Trapeze / IP : TCP / IP at Near-Gigabit Speeds , 1999 .

[6]  Dawson R. Engler,et al.  DPF: fast, flexible message demultiplexing using dynamic code generation , 1996, SIGCOMM 1996.

[7]  Thu D. Nguyen,et al.  Implementing network protocols at user level , 1993, TNET.

[8]  Charles L. Seitz,et al.  Myrinet: A Gigabit-per-Second Local Area Network , 1995, IEEE Micro.

[9]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[10]  Richard Black,et al.  Protocol implementation in a vertically structured operating system , 1997, Proceedings of 22nd Annual Conference on Local Computer Networks.

[11]  K. K. Ramakrishnan,et al.  Eliminating receive livelock in an interrupt-driven kernel , 1996, TOCS.

[12]  Kai Li,et al.  Virtual-Memory-Mapped Network Interfaces , 1995, IEEE Micro.

[13]  Peter Druschel,et al.  Lazy receiver processing (LRP): a network subsystem architecture for server systems , 1996, OSDI '96.

[14]  Aled Edwards,et al.  Experiences implementing a high performance TCP in user-space , 1995, SIGCOMM '95.

[15]  Thorsten von Eicken,et al.  Low-Latency Communication over Fast Ethernet , 1996, Euro-Par, Vol. I.