mirror of https://gitee.com/openkylin/linux.git
bnxt_en: Add UDP RSS support for 57X1X chips.
The newer chips have proper support for 4-tuple UDP RSS. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
286ef9d64e
commit
87da7f796d
|
@ -3425,13 +3425,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) {
|
||||
vnic->hash_type = VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6;
|
||||
|
||||
req.hash_type = cpu_to_le32(vnic->hash_type);
|
||||
|
||||
req.hash_type = cpu_to_le32(bp->rss_hash_cfg);
|
||||
if (vnic->flags & BNXT_VNIC_RSS_FLAG) {
|
||||
if (BNXT_CHIP_TYPE_NITRO_A0(bp))
|
||||
max_rings = bp->rx_nr_rings - 1;
|
||||
|
@ -6940,6 +6934,19 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
#endif
|
||||
bnxt_set_dflt_rings(bp);
|
||||
|
||||
/* Default RSS hash cfg. */
|
||||
bp->rss_hash_cfg = VNIC_RSS_CFG_REQ_HASH_TYPE_IPV4 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6;
|
||||
if (!BNXT_CHIP_NUM_57X0X(bp->chip_num) &&
|
||||
!BNXT_CHIP_TYPE_NITRO_A0(bp) &&
|
||||
bp->hwrm_spec_code >= 0x10501) {
|
||||
bp->flags |= BNXT_FLAG_UDP_RSS_CAP;
|
||||
bp->rss_hash_cfg |= VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 |
|
||||
VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6;
|
||||
}
|
||||
|
||||
if (BNXT_PF(bp) && !BNXT_CHIP_TYPE_NITRO_A0(bp)) {
|
||||
dev->hw_features |= NETIF_F_NTUPLE;
|
||||
if (bnxt_rfs_capable(bp)) {
|
||||
|
|
|
@ -700,7 +700,6 @@ struct bnxt_vnic_info {
|
|||
u8 *uc_list;
|
||||
|
||||
u16 *fw_grp_ids;
|
||||
u16 hash_type;
|
||||
dma_addr_t rss_table_dma_addr;
|
||||
__le16 *rss_table;
|
||||
dma_addr_t rss_hash_key_dma_addr;
|
||||
|
@ -952,6 +951,7 @@ struct bnxt {
|
|||
#define BNXT_FLAG_RFS 0x100
|
||||
#define BNXT_FLAG_SHARED_RINGS 0x200
|
||||
#define BNXT_FLAG_PORT_STATS 0x400
|
||||
#define BNXT_FLAG_UDP_RSS_CAP 0x800
|
||||
#define BNXT_FLAG_EEE_CAP 0x1000
|
||||
#define BNXT_FLAG_CHIP_NITRO_A0 0x1000000
|
||||
|
||||
|
@ -1007,6 +1007,7 @@ struct bnxt {
|
|||
struct bnxt_ring_grp_info *grp_info;
|
||||
struct bnxt_vnic_info *vnic_info;
|
||||
int nr_vnics;
|
||||
u32 rss_hash_cfg;
|
||||
|
||||
u8 max_tc;
|
||||
struct bnxt_queue_info q_info[BNXT_MAX_QUEUE];
|
||||
|
|
Loading…
Reference in New Issue