OpenCloudOS-Kernel/include/linux/qed
Mintz, Yuval 3da7a37ae6 qed*: Handle-based L2-queues.
The driver needs to maintain several FW/HW-indices for each one of
its queues. Currently, that mapping is done by the QED where it uses
an rx/tx array of so-called hw-cids, populating them whenever a new
queue is opened and clearing them upon destruction of said queues.

This maintenance is far from ideal - there's no real reason why
QED needs to maintain such a data-structure. It becomes even worse
when considering the fact that the PF's queues and its child VFs' queues
are all mapped into the same data-structure.
As a by-product, the set of parameters an interface needs to supply for
queue APIs is non-trivial, and some of the variables in the API
structures have different meaning depending on their exact place
in the configuration flow.

This patch re-organizes the way L2 queues are configured and maintained.
In short:
  - Required parameters for queue init are now well-defined.
  - Qed would allocate a queue-cid based on parameters.
    Upon initialization success, it would return a handle to caller.
  - Queue-handle would be maintained by entity requesting queue-init,
    not necessarily qed.
  - All further queue-APIs [update, destroy] would use the opaque
    handle as reference for the queue instead of various indices.

The possible owners of such handles:
  - PF queues [qede] - complete handles based on provided configuration.
  - VF queues [qede] - fw-context-less handles, containing only relative
    information; Only the PF-side would need the absolute indices
    for configuration, so they're omitted here.
  - VF queues [qed, PF-side] - complete handles based on VF initialization.

Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30 14:32:04 -05:00
..
common_hsi.h qed: Add support for RoCE hw init 2016-10-03 23:22:46 -04:00
eth_common.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
iscsi_common.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00
qed_chain.h qed: Optimize qed_chain datapath usage 2016-11-30 14:32:02 -05:00
qed_eth_if.h qed*: Handle-based L2-queues. 2016-11-30 14:32:04 -05:00
qed_if.h qed*: Add support for WoL 2016-10-31 15:52:35 -04:00
qed_iov_if.h qed*: support ndo_get_vf_config 2016-05-12 00:04:08 -04:00
qed_ll2_if.h qed: Add Light L2 support 2016-10-03 23:22:46 -04:00
qed_roce_if.h qed: Add RoCE ll2 & GSI support 2016-10-03 23:22:47 -04:00
qede_roce.h qed*: Fix Kconfig dependencies with INFINIBAND_QEDR 2016-10-14 11:07:22 -04:00
rdma_common.h qed: Add support for RoCE hw init 2016-10-03 23:22:46 -04:00
roce_common.h qed: Add common HSI for new protocols 2016-06-03 20:08:39 -04:00
storage_common.h qed: Add common HSI for new protocols 2016-06-03 20:08:39 -04:00
tcp_common.h qed: utilize FW 8.10.10.0 2016-08-19 17:57:06 -07:00