摘要 |
The invention proposes a network device driver architecture with functionality distributed between kernel space and user space. The overall network device driver comprises a kernel-space device driver ( 10 ) and user-space device driver functionality ( 20 ). The kernel-space device driver ( 10 ) is adapted for enabling access to the user -space device driver functionality ( 20 ) via a kernel-space-user-space interface ( 15 ). The user-space device driver functionality ( 20 ) is adapted for enabling direct access between user space and the NIC ( 30 ) via a user-space-NIC interface ( 25 ), and also adapted for interconnecting the kernel-space-user-space interface ( 15 ) and the user-space-NIC interface ( 25 ) to provide integrated kernel -space access and user-space access to the NIC ( 30 ). The user-space device driver functionality ( 20 ) provides direct, zero-copy user-space access to the NIC, whereas information to be transferred between kernel space and the NIC will be "tunneled" through user space by combined use of the kernel-space device driver ( 10 ), the user-space device driver functionality ( 20 ) and the two associated interfaces ( 15,25 ). |