bnxt_en: Update RSS setup and GRO-HW logic according to the latest spec.
Set the default hash mode flag in HWRM_VNIC_RSS_CFG to signal to the firmware that the driver is compliant with the latest spec. With that, the firmware can return expanded RSS profile IDs that the driver checks to setup the proper gso_type for GRO-HW packets. But instead of checking for the new profile IDs, we check the IP_TYPE flag in TPA_START which is more straight forward than checking a list of profile IDs. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bf82736da3
commit
50f011b63d
|
@ -1115,7 +1115,7 @@ static void bnxt_tpa_start(struct bnxt *bp, struct bnxt_rx_ring_info *rxr,
|
|||
tpa_info->hash_type = PKT_HASH_TYPE_L4;
|
||||
tpa_info->gso_type = SKB_GSO_TCPV4;
|
||||
/* RSS profiles 1 and 3 with extract code 0 for inner 4-tuple */
|
||||
if (hash_type == 3)
|
||||
if (hash_type == 3 || TPA_START_IS_IPV6(tpa_start1))
|
||||
tpa_info->gso_type = SKB_GSO_TCPV6;
|
||||
tpa_info->rss_hash =
|
||||
le32_to_cpu(tpa_start->rx_tpa_start_cmp_rss_hash);
|
||||
|
@ -3981,6 +3981,7 @@ static int bnxt_hwrm_vnic_set_rss(struct bnxt *bp, u16 vnic_id, bool set_rss)
|
|||
bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_VNIC_RSS_CFG, -1, -1);
|
||||
if (set_rss) {
|
||||
req.hash_type = cpu_to_le32(bp->rss_hash_cfg);
|
||||
req.hash_mode_flags = VNIC_RSS_CFG_REQ_HASH_MODE_FLAGS_DEFAULT;
|
||||
if (vnic->flags & BNXT_VNIC_RSS_FLAG) {
|
||||
if (BNXT_CHIP_TYPE_NITRO_A0(bp))
|
||||
max_rings = bp->rx_nr_rings - 1;
|
||||
|
|
|
@ -326,6 +326,10 @@ struct rx_tpa_start_cmp_ext {
|
|||
((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_cfa_code_v2) & \
|
||||
RX_TPA_START_CMP_CFA_CODE) >> RX_TPA_START_CMPL_CFA_CODE_SHIFT)
|
||||
|
||||
#define TPA_START_IS_IPV6(rx_tpa_start) \
|
||||
(!!((rx_tpa_start)->rx_tpa_start_cmp_flags2 & \
|
||||
cpu_to_le32(RX_TPA_START_CMP_FLAGS2_IP_TYPE)))
|
||||
|
||||
struct rx_tpa_end_cmp {
|
||||
__le32 rx_tpa_end_cmp_len_flags_type;
|
||||
#define RX_TPA_END_CMP_TYPE (0x3f << 0)
|
||||
|
|
Loading…
Reference in New Issue