# A Programmable SRv6 Processor for SFC
## 4 Application and Validation
### Performance Analysis  
The programmable SRv6 processor was tested using different sizes packets of SRv6, SFC, and VXLAN. We used up to five segments per SRv6 packet. Additionally, each SFC header contained a unique ID for the SFC.  
If the packet needed to be encapsulated as a VXLAN packet, the outer IP header, outer UDP header, and VXLAN header were generated based on the IP address and VXLAN network identifier (VNI) in the action table. The outer MAC header was generated by the egress RMT.  
In our current implementation, the number of clock cycles required by the pipeline to process a packet depends on the packet size because the number of cycles to process headers and loads depends on the header and load length. As shown in Figure 6, the Corundum prototype platform has interface rates of up to 100 Gbps, and deparser plus has been able to process packets at linear speed in Corundum when the packet size has reached 512 bytes.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline  & **VXLAN** & **SRoU** & **INT** & **SFC** \\ \hline \multirow{6}{*}{Principle} & Data frames in the virtual network are encapsulated into packets in the physical network for transmission & \multirow{6}{*}{This is essentially putting the SRH into the UDP payload} & As the telemetry packet passes through the switching device, the telemetry instruction tells the network device with network telemetry capability what network state information should be collected and written \\  & & & & \\ \cline{1-1}  & Data frames in the virtual network are encapsulated into packets in the physical network for transmission & \multirow{6}{*}{This is essentially putting the SRH into the UDP payload} & As the telemetry packet passes through the switching device, the telemetry instruction tells the network device with network telemetry capability what network state is positioned \\  & & & & \\ \cline{1-1}  & & & & \\ \cline{1-1}  & & & & \\ \cline{1-1}  & & & & \\ \cline{1-1}  & & & & \\ \hline \multirow{6}{*}{Information written} & \multirow{6}{*}{VXLAN header} & \multirow{6}{*}{SRH} & INT header and metadata & \multirow{2}{*}{SFC header} \\ \cline{1-1}  & Layer of the network & L2 over L4 & L4 & L7 & L4-L7 \\ \hline \multirow{6}{*}{Application scenarios} & \multirow{6}{*}{VMs communication and seamless Layer 2 extension over IP networks} & \multirow{6}{*}{To solve the problem of NAT in an IPv4 network, NAT traversal and stateless forwarding of relay node are implemented} & Network operation and maintenance visualization, fault location, network measurement, congestion control, path decision, and flow engineering & Service resource pooling, dynamic creation, and automatic deployment of NFV resource pools, and flexible orchestration of tenant services \\ \hline \hline \end{tabular}
\end{table}
Table 3: Comparison and analysis of application scenarios.  
The resource utilization of deparser plus in the Corundum prototype platform is shown in Table 4, which includes configurable logic blocks (CLBs), CLB look up tables (LUT), CLB registers, a block RAM tile, and a seven-input multiplexer (F7 Muxes). Experimental results show that deparser plus can perform protocol-independent processing of packets at a linear speed with few resources.