Abstract:Incremental performance gain, especially in terms of higher I/O bandwidth and more complex packet processing capability, has made general purpose and multicore processors a preferable option building network devices in core networks, which brings unprecedented flexibility and universality into forwarding plane. However, challenges still exist because of lagging processing and forwarding performance. Firstly, with network link rate continuing booming, the multicore processor needs to offer corresponding higher processing throughput. Secondly, the increasing complexity of network services and applications will introduce more packet processing overhead inside network devices in forwarding and processing processes, indirectly resulting in higher requirements on pure I/O capabilities. Self-Described Buffer (SDB) is a hardware-based buffer management mechanism proposed in this paper which features low overhead in hardware and high performance in software. Furthermore, NPDK, a general network processing development environment has been designed and built based on SDB. It adopts zero interrupt and zero copy technology, provides kernel space and user space drivers and can be applied for general purposes and multicore systems. NPDK is not only easy to implement, flexible to program, feasible to deploy, but it also supports per-CPU-based hierarchical packet processing programmability in the kernel space, as well as monopolistic multi-threaded and shared multi-process programming in the user space. Experimental results show that NPDK can reach near line rate forwarding under 10Gbps link rate. Specifically 7.49Gbps for 64 Bytes packets. Currently NPDK has already been deployed and applied in Click routers, OpenFlow switches and network probing applications.