diff options
author | Chopra, Manish <Manish.Chopra@cavium.com> | 2017-04-13 04:54:44 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-04-17 13:06:18 -0400 |
commit | d51e4af5c2092c48a06ceaf2323b13a39a2df4ee (patch) | |
tree | 236d338a52e7abee79ca613a972ac4b643525d3a /include/linux | |
parent | 53a759c89b7924b2cd218b40fa4b51f9220f20b1 (diff) | |
download | linux-d51e4af5c2092c48a06ceaf2323b13a39a2df4ee.tar.gz linux-d51e4af5c2092c48a06ceaf2323b13a39a2df4ee.tar.bz2 linux-d51e4af5c2092c48a06ceaf2323b13a39a2df4ee.zip |
qed: aRFS infrastructure support
This patch adds necessary APIs to interface with
qede aRFS support in successive patch.
It also reserves separate PTT entry for aRFS,
[as being in fastpath flow] for hardware access instead of
trying to acquire it at run time from the ptt pool.
Signed-off-by: Manish Chopra <manish.chopra@cavium.com>
Signed-off-by: Yuval Mintz <yuval.mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/qed/qed_eth_if.h | 8 | ||||
-rw-r--r-- | include/linux/qed/qed_if.h | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/qed/qed_eth_if.h b/include/linux/qed/qed_eth_if.h index 4cd1f0ccfa36..1eba803cb7f1 100644 --- a/include/linux/qed/qed_eth_if.h +++ b/include/linux/qed/qed_eth_if.h @@ -301,6 +301,14 @@ struct qed_eth_ops { int (*tunn_config)(struct qed_dev *cdev, struct qed_tunn_params *params); + + int (*ntuple_filter_config)(struct qed_dev *cdev, void *cookie, + dma_addr_t mapping, u16 length, + u16 vport_id, u16 rx_queue_id, + bool add_filter); + + int (*configure_arfs_searcher)(struct qed_dev *cdev, + bool en_searcher); }; const struct qed_eth_ops *qed_get_eth_ops(void); diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h index 625f80f08f91..d44933a058ee 100644 --- a/include/linux/qed/qed_if.h +++ b/include/linux/qed/qed_if.h @@ -178,6 +178,12 @@ struct qed_eth_pf_params { * to update_pf_params routine invoked before slowpath start */ u16 num_cons; + + /* To enable arfs, previous to HW-init a positive number needs to be + * set [as filters require allocated searcher ILT memory]. + * This will set the maximal number of configured steering-filters. + */ + u32 num_arfs_filters; }; struct qed_fcoe_pf_params { @@ -427,6 +433,7 @@ struct qed_int_info { }; struct qed_common_cb_ops { + void (*arfs_filter_op)(void *dev, void *fltr, u8 fw_rc); void (*link_update)(void *dev, struct qed_link_output *link); void (*dcbx_aen)(void *dev, struct qed_dcbx_get *get, u32 mib_type); |