Palo Alto Networks Knowledgebase: Firewall offloading traffic -- how to disable

Firewall offloading traffic -- how to disable

Created On 07/01/19 19:02 PM - Last Updated 07/01/19 20:01 PM
Device Management Initial Configuration Installation QoS Zone and DoS Protection

Inside of this article you will learn how to verify if traffic is being offloaded and how to disable this feature.

When session traffic is processed by the dataplane of the Palo Alto Networks firewall, session stats and timers will be updated for every packet.

Most of our high-end platforms have an FPGA chip to entirely offload a session (CTS and STC flows) and bypass the cores completely. 


You can verify if a session has been offloaded by using the following CLI command:
> show session id <id_num>

Here's an example of an SSL session that is offloaded because it is not being decrypted. The firewall cannot do any content threat detection, so it is offloaded to hardware for faster processing:

admin@PAN_firewall> show session id 96776

Session           96776

        c2s flow:
                source: [L3-Trust]
                proto:       6
                sport:       61973           dport:      443
                state:       ACTIVE          type:       FLOW
                src user:    unknown
                dst user:    unknown

        s2c flow:
                source: [L3-Untrust]
                proto:       6
                sport:       443             dport:      14690
                state:       ACTIVE          type:       FLOW
                src user:    unknown
                dst user:    unknown

        start time                           : Thu Oct 12 09:30:35 2017
        timeout                              : 1800 sec
        time to live                         : 1799 sec 
        total byte count(c2s)                : 54759
        total byte count(s2c)                : 134469
        layer7 packet count(c2s)             : 103
        layer7 packet count(s2c)             : 200
        vsys                                 : vsys1
        application                          : ssl  
        rule                                 : Trust-Untrust
        session to be logged at end          : True
        session in session ager              : True
        session updated by HA peer           : False
        address/port translation             : source
        nat-rule                             : Trust-NAT(vsys1)
        layer7 processing                    : completed
        URL filtering enabled                : True
        URL category                         : computer-and-internet-info
        session via syn-cookies              : False
        session terminated on host           : False
        session traverses tunnel             : False
        captive portal session               : False
        ingress interface                    : ethernet1/6
        egress interface                     : ethernet1/3
        session QoS rule                     : N/A (class 4)
        tracker stage l7proc                 : ctd decoder bypass
        end-reason                           : unknown

Note: In PAN-OS 7.1 and later, an offloaded session will have a tracker stage l7proc value of ctd decoder bypass.

All session statistics and timers are maintained in software. So, it's necessary for the offload chip to send regular updates to the software. These updates cannot be sent for every packet, due to performance concerns.

Offloading details - what happens inside

Depending on the platform model, different rules apply:

PA3050 - 50xx series
Offload chip is sending a per-flow stat message to the dataplane after 16 packets are received on one flow (CTS or STC).

The dataplane software will update session statitics and refresh the timer accordingly.

Note: On PA3050 and 50xx series devices, you can have a scenario where a low-traffic session has been aged-out due to TTL expiration. This can happen if the 16 packets condition has not been met before the end of this timer.

PA70xx series
The PA7000 seies devices handle the updates differently.

It will send the per-flow stat to the dataplane when one of two following conditions occur:

  • One flow has accumulated 64 packets of stat
  • A scan timer has expired for this particular flow

Software will update session statistics and refresh the timer accordingly.


To avoid the offloading of the sessions, there are several workarounds to achieve this:

  • Turn off hardware offload
Temporarily turn off hard offloading, use the CLI command: 
> set session offload no
Or Permanentlyuse the CLI command: (even after a reboot, the offloading will be disabled)
> configure
# set deviceconfig setting session offload no
# commit

 Note: This approach can have a noticeable impact on the CPU.

  • Create a custom application and adjust the timeout value for the custom application to accommodate the worst-case scenario. We accept a maximum timeout value of 604800 seconds (1 week).

  • Tune the tcp keepalive timer and interval on the application servers.

  • Print
  • Copy Link

Choose Language