Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-microblaze.git] / drivers / net / ethernet / mellanox / mlx5 / core / en.h
index 29b10ef..a560df4 100644 (file)
@@ -322,7 +322,8 @@ struct mlx5e_params {
                u8 num_tc;
                struct netdev_tc_txq tc_to_txq[TC_MAX_QUEUE];
                struct {
-                       struct mlx5e_mqprio_rl *rl;
+                       u64 max_rate[TC_MAX_QUEUE];
+                       u32 hw_id[TC_MAX_QUEUE];
                } channel;
        } mqprio;
        bool rx_cqe_compress_def;
@@ -899,16 +900,8 @@ struct mlx5e_scratchpad {
        cpumask_var_t cpumask;
 };
 
-struct mlx5e_htb {
-       DECLARE_HASHTABLE(qos_tc2node, order_base_2(MLX5E_QOS_MAX_LEAF_NODES));
-       DECLARE_BITMAP(qos_used_qids, MLX5E_QOS_MAX_LEAF_NODES);
-       struct mlx5e_sq_stats **qos_sq_stats;
-       u16 max_qos_sqs;
-       u16 maj_id;
-       u16 defcls;
-};
-
 struct mlx5e_trap;
+struct mlx5e_htb;
 
 struct mlx5e_priv {
        /* priv data path fields - start */
@@ -929,7 +922,7 @@ struct mlx5e_priv {
        struct mlx5e_rx_res       *rx_res;
        u32                       *tx_rates;
 
-       struct mlx5e_flow_steering fs;
+       struct mlx5e_flow_steering *fs;
 
        struct workqueue_struct    *wq;
        struct work_struct         update_carrier_work;
@@ -946,6 +939,8 @@ struct mlx5e_priv {
        struct mlx5e_channel_stats **channel_stats;
        struct mlx5e_channel_stats trap_stats;
        struct mlx5e_ptp_stats     ptp_stats;
+       struct mlx5e_sq_stats      **htb_qos_sq_stats;
+       u16                        htb_max_qos_sqs;
        u16                        stats_nch;
        u16                        max_nch;
        u8                         max_opened_tc;
@@ -977,7 +972,7 @@ struct mlx5e_priv {
        struct mlx5e_hv_vhca_stats_agent stats_agent;
 #endif
        struct mlx5e_scratchpad    scratchpad;
-       struct mlx5e_htb           htb;
+       struct mlx5e_htb          *htb;
        struct mlx5e_mqprio_rl    *mqprio_rl;
 };
 
@@ -993,6 +988,8 @@ enum mlx5e_profile_feature {
        MLX5E_PROFILE_FEATURE_PTP_RX,
        MLX5E_PROFILE_FEATURE_PTP_TX,
        MLX5E_PROFILE_FEATURE_QOS_HTB,
+       MLX5E_PROFILE_FEATURE_FS_VLAN,
+       MLX5E_PROFILE_FEATURE_FS_TC,
 };
 
 struct mlx5e_profile {
@@ -1028,7 +1025,6 @@ void mlx5e_shampo_dealloc_hd(struct mlx5e_rq *rq, u16 len, u16 start, bool close
 void mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats);
 void mlx5e_fold_sw_stats64(struct mlx5e_priv *priv, struct rtnl_link_stats64 *s);
 
-void mlx5e_init_l2_addr(struct mlx5e_priv *priv);
 int mlx5e_self_test_num(struct mlx5e_priv *priv);
 int mlx5e_self_test_fill_strings(struct mlx5e_priv *priv, u8 *data);
 void mlx5e_self_test(struct net_device *ndev, struct ethtool_test *etest,
@@ -1182,7 +1178,8 @@ int mlx5e_ethtool_get_sset_count(struct mlx5e_priv *priv, int sset);
 void mlx5e_ethtool_get_ethtool_stats(struct mlx5e_priv *priv,
                                     struct ethtool_stats *stats, u64 *data);
 void mlx5e_ethtool_get_ringparam(struct mlx5e_priv *priv,
-                                struct ethtool_ringparam *param);
+                                struct ethtool_ringparam *param,
+                                struct kernel_ethtool_ringparam *kernel_param);
 int mlx5e_ethtool_set_ringparam(struct mlx5e_priv *priv,
                                struct ethtool_ringparam *param);
 void mlx5e_ethtool_get_channels(struct mlx5e_priv *priv,