| Description | This article describes how FortiGate handles the ICMP control plane messages for an established session. |
| Scope | FortiGate. |
| Solution |
FortiOS establishes sessions for any traffic based on a 5-tuple(source IP, Destination IP, Source Port, Destination Port, Protocol).
After a session is established for any flow, and if there is an ICMP control plane message related to the session, FortiGate decides to allow or drop the message based on the allow_err flag in the session table.
Below is an example session:
session info: proto=1 proto_state=00 duration=259 expire=56 timeout=0 flags=00000000 socktype=0 sockport=0 av_idx=0 use=3
As highlighted in the above session, allow_err in statistics is related to icmp control plane message for this particular session.
For a session, FortiOS has an allow_error flag for each direction to determine if an ICMP error message will be allowed/dropped.
For example, for a session from client to server, the original direction allow_error flag will be set once if there is a packet from client to server. In this case, if there is an ICMP error from the server side, it will be allowed, and at the same time, allow_error will be cleared. Any further ICMP errors from the server side will be dropped. If there is a new packet from the client side, allow_error will be set again, and a new ICMP error from the server will be allowed. |
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2026 Fortinet, Inc. All Rights Reserved.