return 0;
 }
 
-static int bnx2x_get_rss_flags(struct bnx2x *bp, struct ethtool_rxnfc *info)
+static int bnx2x_get_rxfh_fields(struct net_device *dev,
+                                struct ethtool_rxfh_fields *info)
 {
+       struct bnx2x *bp = netdev_priv(dev);
+
        switch (info->flow_type) {
        case TCP_V4_FLOW:
        case TCP_V6_FLOW:
        case ETHTOOL_GRXRINGS:
                info->data = BNX2X_NUM_ETH_QUEUES(bp);
                return 0;
-       case ETHTOOL_GRXFH:
-               return bnx2x_get_rss_flags(bp, info);
        default:
                DP(BNX2X_MSG_ETHTOOL, "Command parameters not supported\n");
                return -EOPNOTSUPP;
        }
 }
 
-static int bnx2x_set_rss_flags(struct bnx2x *bp, struct ethtool_rxnfc *info)
+static int bnx2x_set_rxfh_fields(struct net_device *dev,
+                                const struct ethtool_rxfh_fields *info,
+                                struct netlink_ext_ack *extack)
 {
+       struct bnx2x *bp = netdev_priv(dev);
        int udp_rss_requested;
 
        DP(BNX2X_MSG_ETHTOOL,
-          "Set rss flags command parameters: flow type = %d, data = %llu\n",
+          "Set rss flags command parameters: flow type = %d, data = %u\n",
           info->flow_type, info->data);
 
        switch (info->flow_type) {
        }
 }
 
-static int bnx2x_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *info)
-{
-       struct bnx2x *bp = netdev_priv(dev);
-
-       switch (info->cmd) {
-       case ETHTOOL_SRXFH:
-               return bnx2x_set_rss_flags(bp, info);
-       default:
-               DP(BNX2X_MSG_ETHTOOL, "Command parameters not supported\n");
-               return -EOPNOTSUPP;
-       }
-}
-
 static u32 bnx2x_get_rxfh_indir_size(struct net_device *dev)
 {
        return T_ETH_INDIRECTION_TABLE_SIZE;
        .set_phys_id            = bnx2x_set_phys_id,
        .get_ethtool_stats      = bnx2x_get_ethtool_stats,
        .get_rxnfc              = bnx2x_get_rxnfc,
-       .set_rxnfc              = bnx2x_set_rxnfc,
        .get_rxfh_indir_size    = bnx2x_get_rxfh_indir_size,
        .get_rxfh               = bnx2x_get_rxfh,
        .set_rxfh               = bnx2x_set_rxfh,
+       .get_rxfh_fields        = bnx2x_get_rxfh_fields,
+       .set_rxfh_fields        = bnx2x_set_rxfh_fields,
        .get_channels           = bnx2x_get_channels,
        .set_channels           = bnx2x_set_channels,
        .get_module_info        = bnx2x_get_module_info,
        .get_strings            = bnx2x_get_strings,
        .get_ethtool_stats      = bnx2x_get_ethtool_stats,
        .get_rxnfc              = bnx2x_get_rxnfc,
-       .set_rxnfc              = bnx2x_set_rxnfc,
        .get_rxfh_indir_size    = bnx2x_get_rxfh_indir_size,
        .get_rxfh               = bnx2x_get_rxfh,
        .set_rxfh               = bnx2x_set_rxfh,
+       .get_rxfh_fields        = bnx2x_get_rxfh_fields,
+       .set_rxfh_fields        = bnx2x_set_rxfh_fields,
        .get_channels           = bnx2x_get_channels,
        .set_channels           = bnx2x_set_channels,
        .get_link_ksettings     = bnx2x_get_vf_link_ksettings,