diff options
author | Mintz, Yuval <Yuval.Mintz@cavium.com> | 2017-06-09 17:13:20 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-09 22:49:01 +0300 |
commit | 13c547717231aad7e1635004ae3f698e5e78d6d1 (patch) | |
tree | c58cafdb26c79a8aeb3b27620bc4640e7b4d7e4c /include/linux/qed | |
parent | 68be910cd2fa3f58587438af7ce3def6e03731fa (diff) | |
download | linux-13c547717231aad7e1635004ae3f698e5e78d6d1.tar.xz |
qed: Cleaner seperation of LL2 inputs
A LL2 connection [qed_ll2_info] has a sub-structure of type qed_ll2_conn
that contain various inputs for ll2 acquisition, but the connection also
utilizes a couple of other inputs.
Restructure the input structure to include all the inputs and refactor
the code necessary to populate those.
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/qed')
-rw-r--r-- | include/linux/qed/qed_ll2_if.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/qed/qed_ll2_if.h b/include/linux/qed/qed_ll2_if.h index 056ac007dd12..a1f63eca430a 100644 --- a/include/linux/qed/qed_ll2_if.h +++ b/include/linux/qed/qed_ll2_if.h @@ -43,6 +43,17 @@ #include <linux/slab.h> #include <linux/qed/qed_if.h> +enum qed_ll2_conn_type { + QED_LL2_TYPE_FCOE, + QED_LL2_TYPE_ISCSI, + QED_LL2_TYPE_TEST, + QED_LL2_TYPE_ISCSI_OOO, + QED_LL2_TYPE_RESERVED2, + QED_LL2_TYPE_ROCE, + QED_LL2_TYPE_RESERVED3, + MAX_QED_LL2_RX_CONN_TYPE +}; + enum qed_ll2_roce_flavor_type { QED_LL2_ROCE, QED_LL2_RROCE, @@ -55,6 +66,12 @@ enum qed_ll2_tx_dest { QED_LL2_TX_DEST_MAX }; +enum qed_ll2_error_handle { + QED_LL2_DROP_PACKET, + QED_LL2_DO_NOTHING, + QED_LL2_ASSERT, +}; + struct qed_ll2_stats { u64 gsi_invalid_hdr; u64 gsi_invalid_pkt_length; @@ -105,6 +122,28 @@ struct qed_ll2_comp_rx_data { } u; }; +struct qed_ll2_acquire_data_inputs { + enum qed_ll2_conn_type conn_type; + u16 mtu; + u16 rx_num_desc; + u16 rx_num_ooo_buffers; + u8 rx_drop_ttl0_flg; + u8 rx_vlan_removal_en; + u16 tx_num_desc; + u8 tx_max_bds_per_packet; + u8 tx_tc; + enum qed_ll2_tx_dest tx_dest; + enum qed_ll2_error_handle ai_err_packet_too_big; + enum qed_ll2_error_handle ai_err_no_buf; + u8 gsi_enable; +}; + +struct qed_ll2_acquire_data { + struct qed_ll2_acquire_data_inputs input; + /* Output container for LL2 connection's handle */ + u8 *p_connection_handle; +}; + struct qed_ll2_tx_pkt_info { void *cookie; dma_addr_t first_frag; |