| e30e5407 | 11-Sep-2020 |
Rahul Lakkireddy <[email protected]> |
net/cxgbe: improve Rx congestion control
Chelsio T6 NIC can support up to 8 priority channels to manage congestion. So, increase to 8 congestion channels for T6. Also, add Rxq state to avoid unneces
net/cxgbe: improve Rx congestion control
Chelsio T6 NIC can support up to 8 priority channels to manage congestion. So, increase to 8 congestion channels for T6. Also, add Rxq state to avoid unnecessarily ringing doorbell and polling the hardware for more traffic when the Rxq is stopped.
Signed-off-by: Rahul Lakkireddy <[email protected]>
show more ...
|
| 7b3d5298 | 11-Sep-2020 |
Rahul Lakkireddy <[email protected]> |
net/cxgbe: rework queue allocation between ports
Firmware returns the max queues that can be allocated on the entire PF. The driver evenly distributes them across all the ports belonging to the PF.
net/cxgbe: rework queue allocation between ports
Firmware returns the max queues that can be allocated on the entire PF. The driver evenly distributes them across all the ports belonging to the PF. However, some ports may need more queues than others and this equal distribution scheme prevents accessing these other ports unused queues. So, remove the equal distribution scheme and allow the ports to allocate as many queues as they need.
Also remove the hardcoded 64 max limit on queue allocation. Instead, use the max limit given by firmware.
Signed-off-by: Rahul Lakkireddy <[email protected]>
show more ...
|
| 536db938 | 11-Mar-2020 |
Karra Satwik <[email protected]> |
net/cxgbe: add devargs to control filtermode and filtermask
Apart from the 4-tuple (IP src/dst addresses and TCP/UDP src/dst port addresses), there are only 40-bits available to match other fields i
net/cxgbe: add devargs to control filtermode and filtermask
Apart from the 4-tuple (IP src/dst addresses and TCP/UDP src/dst port addresses), there are only 40-bits available to match other fields in packet headers. Not all combinations of packet header fields can fit in the 40-bit tuple.
Currently, the combination of packet header fields to match are configured via filterMode for LETCAM filters and filterMask for HASH filters in firmware config files (t5/t6-config.txt). So, add devargs to allow User to dynamically select the filterMode and filterMask combination during runtime, without having to modify the firmware config files and reflashing them onto the adapter. A table of supported combinations is maintained by the driver to internally translate the User specified devargs combination to hardware's internal format before writing the requested combination to hardware
Signed-off-by: Karra Satwik <[email protected]> Signed-off-by: Rahul Lakkireddy <[email protected]>
show more ...
|
| 629315fb | 11-Mar-2020 |
Karra Satwik <[email protected]> |
net/cxgbe: use firmware API for validating filter spec
Add new firmware API FW_PARAM_DEV_FILTER_MODE_MASK to fetch the filtermode and filtermask values configured in hardware, which are used to vali
net/cxgbe: use firmware API for validating filter spec
Add new firmware API FW_PARAM_DEV_FILTER_MODE_MASK to fetch the filtermode and filtermask values configured in hardware, which are used to validate the match combinations in the filter spec before offloading the filter rules to hardware. For older firmware that doesn't support the new API, fallback to older way of directly reading from indirect registers
Signed-off-by: Karra Satwik <[email protected]> Signed-off-by: Rahul Lakkireddy <[email protected]>
show more ...
|
| a99564c6 | 11-Mar-2020 |
Karra Satwik <[email protected]> |
net/cxgbe: support Source MAC Table
Source MAC Table (SMT) is used for storing Source MAC addresses to be written in packets transmitted on the wire. Hence, the SMT table can be used for overwriting
net/cxgbe: support Source MAC Table
Source MAC Table (SMT) is used for storing Source MAC addresses to be written in packets transmitted on the wire. Hence, the SMT table can be used for overwriting Source MAC addresses in packets, hitting corresponding filter rules inserted by the rte_flow API.
Query firmware for SMT start and size information available to the underlying PF. Allocate and maintain the corresponding driver's copy of the hardware SMT table, with appropriate refcount mechanism. If SMT information is not available, then use the entire hardware SMT table.
Signed-off-by: Karra Satwik <[email protected]> Signed-off-by: Rahul Lakkireddy <[email protected]>
show more ...
|
| 24c1d49a | 11-Mar-2020 |
Karra Satwik <[email protected]> |
net/cxgbe: support flow API for matching all packets on VF
Add support to match all packets received on the underlying VF.
Use new firmware API to fetch the Virtual Interface Number (VIN) allocated
net/cxgbe: support flow API for matching all packets on VF
Add support to match all packets received on the underlying VF.
Use new firmware API to fetch the Virtual Interface Number (VIN) allocated to each VF by the firmware. The VIN is required to write filter rules to match all packets on VFs, whose identifier is beyond max 7-bit value (i.e. 127) in VIID.
If firmware doesn't support fetching the VIN information, then fallback to manually retrieving the VIN value from the 7-bit field in the VIID, which only supports in range of 0..127. In this case, packets belonging to VFs, whose identifier is beyond 127 can't be matched.
Signed-off-by: Karra Satwik <[email protected]> Signed-off-by: Rahul Lakkireddy <[email protected]>
show more ...
|