Chapter 8 Hardware Acceleration : NP6 Acceleration
  
NP6 Acceleration
NP6 network processors provide fastpath acceleration by offloading communication sessions from the FortiGate CPU. When the first packet of a new session is received by an interface connected to an NP6 processor, just like any session connecting with any FortiGate interface, the session is forwarded to the FortiGate CPU where it is matched with a security policy. If the session is accepted by a security policy and if the session can be offloaded its session key is copied to the NP6 processor that received the packet. All of the rest of the packets in the session are intercepted by the NP6 processor and fast-pathed out of the FortiGate unit to their destination without ever passing through the FortiGate CPU. The result is enhanced network performance provided by the NP6 processor plus the network processing load is removed from the CPU. In addition the NP6 processor can handle some CPU intensive tasks, like IPsec VPN encryption/decryption.
Session keys (and IPsec SA keys) are stored in the memory of the NP6 processor that is connected to the interface that received the packet that started the session. All sessions are fast-pathed and accelerated, even if they exit the FortiGate unit through an interface connected to another NP6. There is no dependence on getting the right pair of interfaces since the offloading is done by the receiving NP6. The key to making this possible is the Integrated Switch Fabric (ISF) that connects the NP6s and the FortiGate unit interfaces together. The ISF allows any port connectivity. All ports and NP6s can communicate with each other over the ISF.
There are no special ingress and egress fast path requirements as long as traffic enters and exits on interfaces connected to the same ISF and the NP6 processors. All FortiGate models with NP6 processors connect all interfaces and NP6 processors to the same ISF (except management interfaces) so this should not ever be a problem.
There are at least two limitations to keep in mind:
The capacity of each NP6 processor. An individual NP6 processor can support between 10 and 16 million sessions. This number is limited by the amount of memory the processor has. Once an NP6 processor hits its session limit, sessions that are over the limit are sent to the CPU. You can avoid this problem by as much as possible distributing incoming sessions evenly among the NP6 processors. To be able to do this you need to be aware of which interfaces connect to which NP6 processors and distribute incoming traffic accordingly.
Some FortiGate units may use some NP6 processors for special functions. For example, ports 25 to 32 of the FortiGate-3700D can be used for low latency offloading. See “FortiGate-3700D fast path architecture” for more information.
This chapter contains the following topics:
NP6 session fast path requirements
Viewing your FortiGate NP6 processor configuration
Increasing NP6 offloading capacity using link aggregation groups (LAGs)
Configuring Inter-VDOM link acceleration with NP6 processors