cxgb4/iw_cxgb4: Add LE hash collision bug fix for active and passive offloaded connections
If the hash functionality is enabled in T4 than tuple information of active and
passive offloaded connections are stored in DDR3 memory. LE (Lookup Engine)
implements the interface to search this tuple entries using hash algorithm. If
the number of offloaded connections exceeds the number of maximum hash entries
in DDR3 memory then LE hash collision can occur. To avoid this, driver will
take different path for offloading active and passive connections.
In case of active connection, firmware detects LE hash collision situation and
notifies driver. Driver uses fw_ofld_connection work request to offload that
connection and stores its tuple information in TCAM memory array.
Incase of passive connection, server filter region is created in TCAM. This
region stores the filter which will redirect the incoming SYN packet to offload
queues. After this driver tries to establish the connection using firmware work
request.
This patch series also adds framework for managing filters and to use T4's filter
capabilities.