The 6WINDGate fast path runs in its own environment, isolated from the Linux operating system. Depending on the approach supported by the SDK for the applicable multicore processor, this isolation is provided either by a native multicore execution environment (“bare metal”), or by a combination of Linux optimizations and specific device drivers that run independently from Linux. This environment ensures the highest I/O performance, independent of the Linux device drivers and scheduler.
In addition to this, the implementation of the fast path protocols is more efficient than that of the standard Linux networking stack. It is focused on packet processing and is not impacted by other services that must be handled by Linux. Moreover, the packet processing flow is organized to favor the most common cases, leaving complex, infrequent cases to Linux (as explained in the optimized architecture section). The algorithms themselves have been developed specifically to avoid performance limitations such as locks and cache misses.
Hardware-specific features such as checksum computation, crypto engines, hardware queuing, are also leveraged, while 6WINDGate itself remains fully portable across processor architectures.
This combination of features ensures the best performance per core. Packet processing performance is in general independent from the packet size and scales linearly with the number of cores used to run the fast path. As an example, the graph below illustrates how the performance of 6WINDGate scales linearly when running IP Forwarding on a Dual Intel® Xeon® Processor E5600 Series Complex (2.1GHz).
In this case, the performance increases linearly with the number of cores configured to run the fast path, until it reaches the maximum throughput of the hardware platform.
Only six fast path cores are required to reach this level of performance. Additional cores may be used for more complex fast path processing or to run Linux applications such as the stack or control plane.
Please see specific feature summaries here for detailed performance information for a range of 6WINDGate networking protocols.
In addition to pure packet processing performance, overall application-level performance is also improved since more cores are available to Linux for the same amount of packet processing bandwidth. Developers designing a system based on 6WINDGate analyze the specific performance requirements for the various software elements in the system (applications, control plane, data plane), deciding on the most appropriate allocation of cores to balance the overall system workload.
6WINDGate delivers similar performance advantages on all supported processor platforms.
To learn more about this topic, please click here to visit our FAQ section.