Linux Based Router Over 10GE LAN Cheng Cui, Chui-hui Chiu, and Lin Xue Department of Computer Science Louisiana State University, LA USA Abstract—High speed routing with 10Gbps link speed is still very expensive in the commercial world. Network equipment producers such as Cisco, Juniper, etc. provide high performance 10Gbps routing equipment with high price equally. If you need to push large amounts of traffic among networks, but only have a small budget, you will be out of interest in those commercial products. However, there is still alternative based on the fact that network interfaces, I/O bus and processor architecture of end node have reached theoretical bandwidth to achieve 10Gbps throughput. By fully utilizing available system resources, the goals we are trying to achieve is to build a low-cost Linux based software router with 10GE network cards and probe performance of such equipment under different experiments. The issues related can be summarized into three aspects: i) Utilizing 10GE network interface cards mounted on I/O bus of commodity PC to build a routing equipment. ii) Installing latest version of Linux operating system kernel and network interface driver to set up software routing environment. iii) Tuning optimal oriented performance options from kernel to interface card to show difference between theoretical ideas and practical results. I. I NTRODUCTION Nowadays 10-GigE technology are becoming a well established Ethernet standard, while 100-GigE solutions are already being actively developed [1]. This rapid trend on developing high speed bandwidth network devices is boosted by the drastic demand of large scale data communication in an exploding modern network. For example, front-end servers of data-centers are equipped with 10 Gigabit Ethernet (10GigE) to support large num- ber of clients and provide high bandwidth connection to clients [2]. Therefore, it is possible to build a low cost and efficient software router with open source OS kernel and full network stack. Of course, the routing capability will be decided by the fact that how many 10-GigE network interface cards would be enabled on a host. However, with the introduction of 10-GigE, network I/O re-entered the fast network, slow host scenario that occurred with both the transitions to Fast Ethernet and Gigabit Ethernet [3]. Specifically, three major system bottlenecks may limit the efficiency of high performance I/O adapters [4], e.g. our 10-GigE network interface cards on a host: the PCI-X bus bandwidth, the CPU utilization and the memory bandwidth. In the last years a rapid development involved these items. The performance of the PCI-X bus [5] operating at 133 MHz, which has a peak bandwidth of 8.5 Gb/s, has been overcome by that of the PCI- Express (PCIe) bus [6], that has a peak bandwidth of 20 Gb/s using 8 lanes. CPUs have definitely entered the multi-core era and the memory data rate has increased from e.g. 3.2 GB/s (single channel DDR-400 memory) of the peak transferring rate running at 400 MHz to 10.7GB/s (dual channel DDR-667 memory) running at 667 MHz from the AMD integrated DDR2 memory controller technology. After a brief description of CPU, PCI-Express, on- board chip-set hardwares and overview of how the Linux kernel handles the transmission and reception of network packets as background in Section II, we will describe the setup of the testbed and measurement result in Section III. Then, the rest of this project report will show the discussion of related work in Section IV. Finally, we will conclude our achievement and discuss about work progress in the future. II. BACKGROUND In this section, we describe modern hardware and software technologies on high bandwidth low latency communication such as CPU, I/O bus, 10-GigE network interface and network stack in Linux kernel . A. Multi-Core AMD Opteron Processor What we are interested is bandwidth, so the through- put of CPUs is the main concern. The second generation of AMD Opteron multi-core processor [7] at our hands provides features and benefits like: - AMD64 technology. It lets 64-bit operating systems provide full, transparent, and simultaneous 64-bit platform application multitasking. This means net- work stack would escape from the memory utiliza-