- 6WINDGate Licensing
- 6WINDGate Applications
- 6WINDGate Architecture
- 6WINDGate Features: Overview
- 6WINDGate Features: Fast Path
- 6WINDGate Features: Linux Networking Stack
- 6WINDGate Features: Fast Path Synchronization
- 6WINDGate Features: Control Plane
- 6WINDGate Features: Management System
- 6WINDGate Features: Distributed Architectures
- 6WINDGate Features: High-Availability (HA) Support
- 6WINDGate Features: Performance and Scalability
- Processor and Board Support: Cavium OCTEON
- Processor and Board Support: Intel Multicore
- Processor and Board Support: IBM Power
- Development Process: Integration and Debug Environment
- Development Process: Documentation
How is 6WINDGate sold?
6WIND sells its 6WINDGate packet processing software through a source code licensing model. The license includes an upfront development fee and per-unit royalties.
Do you sell source or binaries?
We sell source code with our 6WINDGate packet processing software.
What is the scope of a 6WINDGate license?
A 6WINDGate license is granted for a processor, a Linux distribution and a set of modules to develop a product or a range of products. The scope of the license can be extended when needed.
I don’t need all the features available in 6WINDGate. Can I license only a subset of features?
Yes, the 6WINDGate product is modular. For instance, you can use your own control plane modules and / or select a limited number of fast path modules.
How do I extend an existing license?
Your 6WINDGate license is granted without any time limitation. 6WINDGate software updates are delivered as long as you have a valid maintenance contract.
What’s your support/maintenance model?
We provide maintenance services under an annual contract. Some specific support services can also be provided according to specific customers’ requirements (Technical Account Manager, extended maintenance services, long term support …).
Do you provide training?
Yes. The standard 6WINDGate training class is a 3 to 5-day training that can be provided at 6WIND or in your premises for a maximum of 10 people. Training is highly recommended to understand 6WINDGate concepts as early as possible in your development process. Our standard training can also be customized upon request to help you to kick-off your project.
Do you have regional support?
Yes. We provide worldwide technical support.
Do you provide services?
Yes. 6WIND provides services around its 6WINDGate technology including architecture design, specific support and software development.
Does 6WINDGate include any GPL software?
6WINDGate software is a mix of software under GPL or other open source licenses and 6WIND license. Software under open source license included in 6WINDGate is listed in the Publicly Available Software document available with every 6WINDGate release.
6WINDGate implements cryptography. Is 6WIND authorized to export such a technology?
Yes, 6WIND has all the required authorizations to export cryptography to all countries that are not under embargo. We have a dedicated document that details our export license.
Who are your main customers?
6WIND licenses its products to tier-1 customers all around the world including OEMs and network builders. A list of our main customers is available here.
What are the main applications of 6WINDGate?
6WINDGate accelerates packet processing for a myriad of applications including mobile infrastructure, network security, data center optimization, network function virtualization (NFV) and software-defined networking (SDN) architectures.
What is the impact of your architecture on my existing Linux applications? Do I need to rewrite them?
One of the key advantages of the 6WINDGate architecture is that Linux APIs are preserved. So, if your application uses standard Linux APIs, you will not have to modify your existing application to take advantage of 6WINDGate’s packet processing.
Has your 6WINDGate software already been integrated with telecom signaling protocols?
Our customers have integrated 6WINDGate with Aricent, Inside Secure, RadiSys (Trillium), Marben, Mocana and Metaswitch signaling protocols.
How do you get such performance?
The 6WINDGate packet processing software runs on dedicated cores, isolated from the Linux operating system. This software consists of a high performance networking stack, the fast path, designed to provide the highest throughput and the lowest latency. Packet processing is offloaded from the Linux operating system.
What does “Synchronization of control plane, Linux networking stack and fast path” exactly mean?
In a standard Linux architecture, the control plane updates the Linux networking stack for both static and dynamic configurations. When using a fast path like in 6WINDGate, it has also to be synchronized with the same information to have a consistent system. 6WINDGate architecture has been designed to make this synchronization fully transparent.
What is the “Exception Mechanism”?
In 6WINDGate fast path-based solutions, the fast path receives all incoming packets in the system. Its goal is to provide very high packet processing performance. Therefore, it does not process complex, time consuming packets that represent only a small fraction of the overall traffic. For example, packets that require a state machine to compute forwarding information (such as ARP or routing protocols) are not processed in the fast path.
When an incoming packet is too complex to be processed by the fast path, it is sent to Linux as an exception packet, to be processed by the Linux networking stack or the control plane. Then, thanks to the continuous synchronization mechanism, the computed information in Linux will be automatically configured in the fast path, so that the next packet of the same flow can be processed in the fast path.
This Exception mechanism, combined with the Continuous Synchronization of Linux and the fast path, enables 6WINDGate to process any kind of packet and ensures the consistency of the whole system.
Are all 6WINDGate fast path modules synchronized with Linux?
Except the TCP/UDP Termination IPv4 fast path module and its IPv6 extension that requires a specific integration with the application, all other 6WINDGate fast path modules support the synchronization mechanism with Linux.
Do you support other Operating Systems than Linux?
No, we do not support other Operating Systems than Linux.
6WINDGate Features: Overview
Where can I find detailed information about features supported by each 6WINDGate module?
The complete list of supported modules is available on the 6WINDGate software modules page on our Web site. Detailed data sheets for each 6WINDGate module are available upon request.
Do you have a list of the RFCs that 6WINDGate complies with?
Yes. It can be found here.
Do you have a detailed roadmap?
A detailed quarterly roadmap is available upon request and after signing a NDA.
6WINDGate Features: Fast Path
What is the 6WINDGate FPN-SDK?
The 6WINDGate FPN-SDK is the execution environment for the fast path modules. The FPN-SDK is hardware-dependent and is identified by the hardware architecture. We currently support Intel, Cavium, and IBM Power architectures. The support of Mellanox NPS and Kalray MPPA processors is planned in our road map.
The FPN-SDK includes:
- The generic abstraction APIs used to implement fast path modules independently from the underlying hardware with zero-overhead, using the services of the processor SDK.
- The exception mechanism between Linux and the fast path.
Does 6WINDGate use DPDK?
Yes. 6WIND is the founder of the dpdk.org open source project. 6WIND is one of the main contributors to the project. 6WINDGate uses DPDK for Intel and IBM Power architectures and the FPN-SDK for the two architectures is interfacing DPDK.
Which part of your 6WINDGate software is generic and which part is processor-dependent?
Thanks to the FPN-SDK, most of our 6WINDGate fast path software is generic. However, the use of processor specific resources such as hardware queues for QoS is processor-dependent. 6WIND also implements some specific low-level optimizations to make the most out of the processor.
What has to be done to integrate your fast path modules together?
Nothing has to be done as 6WIND provides a complete and integrated solution. Fast path modules are integrated together and integrated with the Linux stack and control plane.
My IDPS, DPI or firewall needs reassembled packets; can the fast path fragment or reassemble my IP packets (whatever UDP, TCP, etc.)?
The 6WINDGate fast path comes with a fragmentation / reassembly module for both IPv4 and IPv6 that allows fragmentation / reassembly processing to be offloaded from the Linux networking stack.
Some 6WINDGate features are not available in the fast path yet. How will I upgrade my system in the future?
You can start with 6WINDGate as it is today. Thanks to 6WINDGate’s flexible architecture, features that are not available in the fast path will be processed in the Linux networking stack using the Exception Mechanism.
As soon as the required 6WINDGate fast path module is available, your performance will be automatically improved without making any modification to the Control plane, Linux networking stack or management plane. New fast path modules can be purchased as extensions of your existing license.
6WINDGate Features: Linux Networking Stack
Which operating systems do you support?
We support the Linux operating system.
Which versions of the Linux kernel do you support?
6WINDGate 4.x supports the latest versions of the Linux kernel starting with 3.x.
Which Linux distributions do you support?
We support reference Linux distributions provided by multicore processor vendors, Open Source Linux distributions, as well as commercial Linux distributions such as Red Hat Enterprise Linux or Canonical Ubuntu. Support of other distributions including your own is possible upon request.
Have you improved your 6WINDGate Linux Stack compared to a standard Linux Stack for multi-processing environment?
The rule is: Linux rules. 6WINDGate avoids modifying the Linux networking stack so that it remains transparent to existing applications. However, 6WIND contributes to the community for missing features and bug fixes.
6WINDGate Features: Control Plane
Which routing protocols do you support?
We support RIP, RIPng, OSPFv2, OSPFv3 and BGP as well as SMR (Static Monitored Route) and BFD (Bidirectional Forwarding Detection).
Do you support Virtual Routing?
Yes. Virtual Routing is supported for RIP, RIPng, OSPFv2, OSPFv3 and BGP. Control plane Virtual Routing has been integrated and validated with the fast path forwarding module that also supports Virtual Routing.
Which versions of IKE do you support?
Both IKEv1 and IKEv2 are supported. 6WIND has improved both versions of IKE to support a large number of IKE sessions.
Can the 6WINDGate fast path modules be used with non 6WINDGate routing daemons (OSPF, BGP, etc.) and non 6WINDGate IKE?
Yes. Routing and IKE software that is able to configure Linux kernel routing or IPsec information will transparently benefit from the 6WINDGate fast path thanks to the Continuous Synchronization mechanism.
Do you support IKE VR?
Yes. IKEv2 VR is available.
6WINDGate Features: Management System
Does 6WINDGate support Linux configuration?
Yes. Thanks to the transparent synchronization mechanism, Linux + 6WINDGate is Linux. Configuring a VLAN, a route, a filtering rule, etc. supported by Linux can be also used for configuring Linux + 6WINDGate. Standard tools like tcpdump, ethtools or graphical Linux tools like Grafana can all be used unmodified with Linux + 6WINDGate.
Do you provide CLI and Web Management?
Yes. 6WIND delivers complete CLI and XML tools for integrated 6WINDGate features, and 6WIND technology can be configured by standard Linux commands.
Can I monitor 6WINDGate features with SNMP?
Thanks to the 6WINDGate FPS (Fast Path Statistics) module, responsible for gathering fast path statistics and aggregating them with Linux networking stack statistics, SNMP queries remain consistent for the whole system even when a fast path is used, transparently for the SNMP agent.
What is 6WIND XML-Based management system?
A management daemon called XMS centralizes system configuration, receives XML configuration/monitoring requests from XMS clients and interacts with the Linux operating system and 6WIND control plane to configure/monitor it. Our CLI is an example of XMS client and customers can develop their own client. Our XML schemas are fully documented.
Note that we also support pure Linux-based configuration. XMS is not mandatory, but it brings centralized, consistent configuration with save/restore/rollback capabilities.
How can I integrate my existing management system with the 6WINDGate XML-based management system?
The 6WINDGate management architecture is very flexible and can provide different solutions for smooth integration of the 6WIND XML-based management system with an existing one:
- You can call the 6WINDGate management system from yours to integrate the management of new features brought by 6WINDGate,
- You can extend the 6WINDGate management system to call yours,
- You can interface the XMS Configuration Manager with your own client and configure 6WINDGate features directly in XML; we provide all the necessary software documentation for that purpose.
The 6WIND Service and Support team can help you to choose the best solution according to your requirements.
6WINDGate Features: Distributed Architectures
Does 6WINDGate work as well on dual multi-core processor architecture?
In case of a single multicore architecture, synchronization between the Linux networking stack and the fast path is handled through a shared memory. In dual multi core processor architecture, Linux is running on one processor, while the fast path is running on the other one. There is no shared memory between Linux networking stack and fast path.
In such architecture, the fast path 1CP – 1FP module is required and allows synchronizing the Linux networking stack with the remote fast path through a network connection between the two processors.
As a result, the 6WINDGate architecture can be equally deployed over:
- shared cores of a single multicore processor,
- two different multicore processors (one core being allocated to Linux and the other one to the fast path),
- one multicore processor running the fast path and another, possibly non-multicore, processor running Linux.
6WINDGate Features: High-Availability (HA) Support
What are the main components of your HA solution?
The 6WINDGate HA solution includes:
- Virtual Router Redundancy Protocol
- HA Daemon Monitoring System (control plane) that monitors 6WINDGate daemons
- HA control plane Synchronization Daemon for different protocols (ARP/NDP, routing, IPsec, firewall / NAT, etc.)
You can find the list of 6WINDGate HA modules on the 6WINDGate software modules page on our Web site.
Can you give some customer examples showing how your 6WINDGate HA modules can be used?
6WINDGate HA modules are used in LTE infrastructure equipment.
6WINDGate Features: Performance and Scalability
What is the level of performance that can be achieved with 6WINDGate compared to standard Linux?
6WINDGate typically increases packet processing performance between 5 to 40 times compared to standard Linux. The exact value depends on different parameters (which protocol is accelerated, packet size, hardware platform…). For a more precise answer, detailed performance test results on reference platforms can be provided.
How does your fast path IP forwarding scale?
IP forwarding performance is not affected by the number of routes as IP lookup is implemented using a configurable M-trie algorithm, so that any packet is processed within a fixed number of memory accesses. There is no additional memory allocation when processing a flow.
Detailed performance test results showing that the number of forwarded packets linearly increases proportionally to the number of cores are available.
What is the memory consumption per route?
Each route consumes 64 Bytes. So, the total amount of memory used by tables holding 50,000 routes is 24 MBytes.
How is IPsec forwarding performance affected by the number of Security Associations (SA) and by the number of selectors (SPD entries)?
SA lookup in the fast path is based on a 16-bit hash table so that the number of SA does not significantly impact performance.
With regards to the number of selectors, a threshold enables switching from linear search to a trie-based look-up algorithm, depending on the number of entries in the SPD. This enables adjusting the balance between lookup performance and memory usage.
Detailed performance test results showing that the number of processed IPsec packets per second is directly proportional to number of cores are available.
What is the memory consumption per SA and SP?
A SA takes 640 bytes and an SP takes 128 bytes.
Why are 6WINDGate performance numbers lower than processor benchmarks?
The purpose of processor benchmarks is to demonstrate the raw performance of the processor. Benchmarking software is generally limited to a single feature with hard-coded parameters. 6WIND provides a complete solution with several features, all protocol options and integration with the control plane. 6WINDGate software is much more complex than benchmarking software and performance cannot be directly compared.
I don’t need all the fast path features provided by 6WINDGate. Can I disable them to increase performance?
Yes. 6WIND provides compilation options to disable features you don’t need.
Which tools do you use to optimize the performance of 6WINDGate on a processor?
The majority of our 6WINDGate software is generic. However, the use of processor specific resources such as Ethernet drivers, crypto-engines is processor-dependent. To implement some specific low-level optimizations to make the best use of the processor, 6WIND uses cycle-level simulators (when available) to optimize the number of cycles. Performance counters of the processor and profiling tools can also be used to measure processing time.
Do you have detailed performance test results?
Yes. Detailed performance test results for reference hardware platforms are available upon request and after signing a NDA.
Processor and Board Support: Cavium OCTEON
Which Cavium boards do you support?
Please refer to the 6WINDGate platform support page on our Web site.
Which software from Cavium do I need to run 6WINDGate?
You need the Cavium SDK. Other software and toolkits from Cavium can be integrated with 6WINDGate but they are not mandatory. We periodically update 6WINDGate to support the latest versions of the SDK.
How can I debug 6WINDGate software running on Cavium OCTEON?
Linux userland and kernel software can be debugged using standard Linux tools. Simple Executive debugging tools provided by Cavium can be used to debug the 6WINDGate fast path.
Which technologies from Cavium does 6WINDGate leverage?
6WINDGate takes advantage of POW, FPA, hardware helpers (checksum, etc.), timers and crypto coprocessors.
The 6WINDGate software uses the Simple Exec environment from Cavium’s SDK. The 6WINDGate software uses the Work-Queue-Entries (WQE) natively and it runs to completion in order to process each WQE arriving on the IPD. The WQEs are read from the incoming queues using cvmx_pow_work_request_sync() and then once processed they are posted to the PKOs using 6WINDGate’s egress queuing.
On the egress side, the queue functions of the CVMX environment which are used are cvmx_pko_send_packet_prepare() and cvmx_pko_send_packet_finish(). To optimize the data plane, 6WINDGate can be compiled and run with oct-sim, which provides a simulation model of the OCTEON processor.
Are data structures designed for the 128 byte cache line of Cavium OCTEON?
Yes. We take care to align data structures and make also use of the prefetch mechanism.
Do 6WINDGate security features use the integrated OCTEON crypto coprocessors?
Yes. All versions of 6WINDGate use the integrated OCTEON crypto coprocessors, from control plane (through the transparent integration of SSL with the Octeon OpenSSL crypto engine), Linux networking stack or fast path.
Processor and Board Support: Intel
Which Intel processors do you support?
Please refer to the 6WINDGate platform support page on our Web site.
Which boards and Ethernet NICs do you support?
Please refer to the 6WINDGate platform support page on our Web site.
Does your fast path implementation use the Data Plane Development Kit (DPDK) software?
Do 6WINDGate security features use Intel built-in crypto accelerators?
Yes. All versions of 6WINDGate use the AES New Instructions set of Intel processors or external crypto accelerator boards, from Control Plane (through the transparent integration of SSL with the integrated OpenSSL crypto engine), Linux networking stack or fast path.
Which hardware resources from Intel processors does 6WINDGate use?
We take advantage from hyperthreading, NUMA, stashing, PCIe bulking, RAM topology (channel/rank).
Processor and Board Support: IBM
Does your fast path implementation use the Data Plane Development Kit (DPDK) software?
Which IBM Power processors do you support?
We support IBM Power 8.
Development Process: Integration and Debug Environment
Can I use standard Linux tools to compile, develop and debug software when using 6WINDGate?
Yes. As 6WINDGate preserves standard Linux APIs, Linux userland and kernel software can be debugged using usual, standard Linux tools.
How can I debug fast path software?
When DPDK is used (Intel, IBM Power), the fast path is a Linux userland application that can be debugged using standard tools such as strace, gdb, etc. When a specific executive environment is used (Cavium), debugging tools provided by processor vendors are supported.
Can I use tcpdump for the fast path?
Yes. 6WINDGate features a Flow Inspection / Packet Capture fast path module that provides the Berkeley Packet Filtering functionality in the fast path. It allows the monitoring of the fast path traffic from the control plane.
How long does it take to validate 6WINDGate on my hardware platform?
6WINDGate is validated on reference hardware, including evaluation boards and off-the-shelf commercial platforms. Please refer to the 6WINDGate platform support page on our Web site.
We are used to porting the 6WINDGate software on various boards, provided either by OEM board manufacturers or customers. Validation of 6WINDGate is matter of a few weeks (assuming of course a Linux BSP for the board is available and provides a shell command line).
We are open to let your engineers do the job with our support or to provide services at your option.
How should I proceed to integrate my own control plane module with the 6WINDGate Linux stack?
As 6WINDGate preserves standard Linux APIs, interfacing a third party control plane module (routing, security key exchange for instance) is straightforward and does not require any modification of the source code in most cases. Moreover, the Exception and Continuous Synchronization mechanisms take care of synchronizing the fast path with the information that are configured in the Linux networking stack by your control plane module, so that your system transparently benefits from fast path performance.
For instance, third-party routing and IKE daemons have already been successfully integrated by 6WIND’s customers.
Development Process: Documentation
Could you explain which documents you provide with your 6WINDGate software?
6WINDGate is provided with a complete documentation of more than 2000 pages that includes:
- Release Notes
- Reading Guide
- Module Data Sheets
- User Guide for the CLI
- Documentation for each 6WINDGate module, including overview, usage, troubleshooting and design.