There are three ways to do limits, listed below in increasing order of capability & complexity:
- If you just want to do simple bandwidth limits, as Chris said you can enforce a per-rule limit from the Action field of a policy layer that has APCL/URLF enabled.
- You can also have SecureXL impose various limits including bandwidth, connection rate, total concurrent connections, packet rate, byte rate, etc. See section 5 covering fwaccel dos here: sk112454: How to configure Rate Limiting rules for DoS Mitigation (R80.20 and higher)
- Finally there is the QoS blade which can enforce weighted fair queuing, per-connection & per-rule limits, per-rule & per-connection bandwidth guarantees, ToS differentiated services, low latency queuing and more. Note that use of QoS now no longer dooms shaped traffic to the F2F/slowpath starting in R80.20, and therefore is now a quite viable option.
When you say "flow control" I assume you are talking about Ethernet flow control (pause frames)? By default most firewall NICs/drivers will have this enabled by default, but most switches including Cisco will have it off by default so there will be no effect. Generally if flow control is being requested by a firewall NIC it indicates that NIC hardware buffer overruns (RX-OVR) have occurred or are imminent, and you should either use a faster interface if available, or implement a bond. In some rare cases under heavy load Ethernet flow control and TCP's congestion control algorithm can "butt heads" and actually hurt performance due to a phenomenon known as "head of line blocking". This was discussed in my Max Power book and as such Ethernet flow control is generally not desirable in most situations.
Gateway Performance Optimization R81.20 Course
now available at maxpowerfirewalls.com