New upstream version 17.11.3
[deb_dpdk.git] / drivers / net / qede / base / ecore_l2_api.h
index d09f3c4..8cbe8dd 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "ecore_status.h"
 #include "ecore_sp_api.h"
+#include "ecore_int_api.h"
 
 #ifndef __EXTRACT__LINUX__
 enum ecore_rss_caps {
@@ -35,8 +36,7 @@ struct ecore_queue_start_common_params {
        /* Relative, but relevant only for PFs */
        u8 stats_id;
 
-       /* These are always absolute */
-       u16 sb;
+       struct ecore_sb_info *p_sb;
        u8 sb_idx;
 };
 
@@ -332,7 +332,7 @@ struct ecore_sp_vport_update_params {
        u8                      anti_spoofing_en;
        u8                      update_accept_any_vlan_flg;
        u8                      accept_any_vlan;
-       unsigned long           bins[8];
+       u32                     bins[8];
        struct ecore_rss_params *rss_params;
        struct ecore_filter_accept_flags accept_flags;
        struct ecore_sge_tpa_params *sge_tpa_params;
@@ -436,4 +436,30 @@ void ecore_reset_vport_stats(struct ecore_dev *p_dev);
 void ecore_arfs_mode_configure(struct ecore_hwfn *p_hwfn,
                               struct ecore_ptt *p_ptt,
                               struct ecore_arfs_config_params *p_cfg_params);
+
+/**
+ * @brief - ecore_configure_rfs_ntuple_filter
+ *
+ * This ramrod should be used to add or remove arfs hw filter
+ *
+ * @params p_hwfn
+ * @params p_cb                Used for ECORE_SPQ_MODE_CB,where client would initialize
+ *                     it with cookie and callback function address, if not
+ *                     using this mode then client must pass NULL.
+ * @params p_addr      p_addr is an actual packet header that needs to be
+ *                     filter. It has to mapped with IO to read prior to
+ *                     calling this, [contains 4 tuples- src ip, dest ip,
+ *                     src port, dest port].
+ * @params length      length of p_addr header up to past the transport header.
+ * @params qid         receive packet will be directed to this queue.
+ * @params vport_id
+ * @params b_is_add    flag to add or remove filter.
+ *
+ */
+enum _ecore_status_t
+ecore_configure_rfs_ntuple_filter(struct ecore_hwfn *p_hwfn,
+                                 struct ecore_spq_comp_cb *p_cb,
+                                 dma_addr_t p_addr, u16 length,
+                                 u16 qid, u8 vport_id,
+                                 bool b_is_add);
 #endif