# Programmable Deterministic Zero-Copy DMA Mechanism for FPGA Accelerator
## 4 Performance Evaluation
### Research Methods  
Evaluation goals: Three main features are verified: firstly, the implementation of the zero-copy driver, running the sample program (such as pkegen) on every node, and demonstrating the zero-copy driver's adaptation to the programmable multi-queue accelerator by observing the driver operation. The second is the programmability of the accelerator. At the intermediate node (X2000), the forwarding behavior is programmed by remotely  
Figure 6: Experiment topology.  
configuring the flow table to forward the traffic from Host0 without processing and directly to Host1. The third is the scalability of accelerator multi-layer forwarding. The VxLAN tunneling technology in the RSS module is enabled to establish network tunnels between three nodes using hardware-implemented VxLAN network virtualization technology to enhance the scalability of the experimental model for deployment in the cloud data center network.  
Evaluation variables and parameters: To achieve the above experimental objectives, two variables, queue number and packet length, are set during the experiment to test the total throughput of all queues with different queue numbers when transmitting packets of various sizes. Meanwhile, the accelerator's VxLAN virtualization technology is considered to verify the accelerator's multilayer forwarding function further. In addition, we also tested the forwarding latency of various packet sizes under a single queue. We obtained the throughput directly from a script that executes the command to redirect the corresponding network port traffic size to the background text (.txt) every 1 s. Different from the throughput test results from the tool, obtaining latency test results is not simple. We remember that there are three nodes in the simulation topology, two for sending and receiving traffic and one for forwarding traffic. The receiving node captures the data packets and timestamps on the network interface and saves the packet in.pcap format. Therefore, the latency calculation is straightforward, just calculating the timestamp value of each packet. Because the test takes a long time to execute and has many packets, we uniformly take a small part of the packets for calculation.  
Experiment process and calculation: We test the per-queue throughput rate of different queues (1, 2, 4, 8) with varying packet sizes (64 B, 128 B, 256 B, 512 B, 1024 B, 1536 B) in scenarios where VxLAN is enabled and disabled the, respectively. Each experiment lasts for 1 min. To ensure accurate experimental results and eliminate errors, we adopt the method of evenly taking data and calculating the average value. When calculating the average total throughput, 50 of the acquired data are used to calculate the average value. Since the amount of message data obtained each time is considerable (far more than 1000) when calculating the average delay, 50 messages are taken for calculation by a uniform retrieval method to facilitate calculation. The average Throughput and Latency are calculated as shown in Equations (1)-(3). In Equation (1), we calculate the average total throughput (TPS) under various packet sizes (PS) for each set number of queues. Equation (2) is the way to obtain the average latency (LAT) under various packet sizes (ps) for each set number of queues. Equations (2) and (3) are methods to obtain each queue set's average latency (LAT) under different packet sizes (ps).  
\[TPS_{AVG}^{PS}=\frac{1}{50}\sum_{K=1}^{50}TPS_{K}^{PS}\ \ \ \ \ (TPS\ for\ Throughput\,PS\ for\ packet\_size) \tag{1}\]  
\[LAT_{AVG}^{PS}=\frac{1}{50}\sum_{K=1}^{50}LAT_{K}^{PS}\ \ \ \ \ (LAT\ for\ Latency) \tag{2}\]  
\[LAT_{K}=TSP.recv-TSP.sent\ \ \ \ \ \ (TSP\ for\ TimeStamp) \tag{3}\]