Recent user-level network interfaces have placed an increasing proportion of their functionality in hardware, in order to provide an efficient use-level interface. The performance of such systems is significantly better than that of traditional network architectures, but comes at a cost; namely increasing complexity of the hardware, reduced flexibility and limited scalability. In this paper we present a technique that reduces the overhead of the application/device-driver interface, hence shifting the tradeoff towards a soft implementation. We show how this technique is used to improve the performance of the CLAN user-level network interface. Results given show that the performance of this interface exceeds that of other technologies that provide a direct user-level interface to the hardware, whilst retaining the flexibility and simplicity of a software interface.
展开▼