~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/qed/qed_fcoe_if.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
  2 /* Copyright (c) 2019-2020 Marvell International Ltd. */
  3 
  4 #ifndef _QED_FCOE_IF_H
  5 #define _QED_FCOE_IF_H
  6 #include <linux/types.h>
  7 #include <linux/qed/qed_if.h>
  8 struct qed_fcoe_stats {
  9         u64 fcoe_rx_byte_cnt;
 10         u64 fcoe_rx_data_pkt_cnt;
 11         u64 fcoe_rx_xfer_pkt_cnt;
 12         u64 fcoe_rx_other_pkt_cnt;
 13         u32 fcoe_silent_drop_pkt_cmdq_full_cnt;
 14         u32 fcoe_silent_drop_pkt_rq_full_cnt;
 15         u32 fcoe_silent_drop_pkt_crc_error_cnt;
 16         u32 fcoe_silent_drop_pkt_task_invalid_cnt;
 17         u32 fcoe_silent_drop_total_pkt_cnt;
 18 
 19         u64 fcoe_tx_byte_cnt;
 20         u64 fcoe_tx_data_pkt_cnt;
 21         u64 fcoe_tx_xfer_pkt_cnt;
 22         u64 fcoe_tx_other_pkt_cnt;
 23 };
 24 
 25 struct qed_dev_fcoe_info {
 26         struct qed_dev_info common;
 27 
 28         void __iomem *primary_dbq_rq_addr;
 29         void __iomem *secondary_bdq_rq_addr;
 30 
 31         u64 wwpn;
 32         u64 wwnn;
 33 
 34         u8 num_cqs;
 35 };
 36 
 37 struct qed_fcoe_params_offload {
 38         dma_addr_t sq_pbl_addr;
 39         dma_addr_t sq_curr_page_addr;
 40         dma_addr_t sq_next_page_addr;
 41 
 42         u8 src_mac[ETH_ALEN];
 43         u8 dst_mac[ETH_ALEN];
 44 
 45         u16 tx_max_fc_pay_len;
 46         u16 e_d_tov_timer_val;
 47         u16 rec_tov_timer_val;
 48         u16 rx_max_fc_pay_len;
 49         u16 vlan_tag;
 50 
 51         struct fc_addr_nw s_id;
 52         u8 max_conc_seqs_c3;
 53         struct fc_addr_nw d_id;
 54         u8 flags;
 55         u8 def_q_idx;
 56 };
 57 
 58 #define MAX_TID_BLOCKS_FCOE (512)
 59 struct qed_fcoe_tid {
 60         u32 size;               /* In bytes per task */
 61         u32 num_tids_per_block;
 62         u8 *blocks[MAX_TID_BLOCKS_FCOE];
 63 };
 64 
 65 struct qed_fcoe_cb_ops {
 66         struct qed_common_cb_ops common;
 67          u32 (*get_login_failures)(void *cookie);
 68 };
 69 
 70 /**
 71  * struct qed_fcoe_ops - qed FCoE operations.
 72  * @common:             common operations pointer
 73  * @fill_dev_info:      fills FCoE specific information
 74  *                      @param cdev
 75  *                      @param info
 76  *                      @return 0 on success, otherwise error value.
 77  * @register_ops:       register FCoE operations
 78  *                      @param cdev
 79  *                      @param ops - specified using qed_iscsi_cb_ops
 80  *                      @param cookie - driver private
 81  * @ll2:                light L2 operations pointer
 82  * @start:              fcoe in FW
 83  *                      @param cdev
 84  *                      @param tasks - qed will fill information about tasks
 85  *                      return 0 on success, otherwise error value.
 86  * @stop:               stops fcoe in FW
 87  *                      @param cdev
 88  *                      return 0 on success, otherwise error value.
 89  * @acquire_conn:       acquire a new fcoe connection
 90  *                      @param cdev
 91  *                      @param handle - qed will fill handle that should be
 92  *                              used henceforth as identifier of the
 93  *                              connection.
 94  *                      @param p_doorbell - qed will fill the address of the
 95  *                              doorbell.
 96  *                      return 0 on success, otherwise error value.
 97  * @release_conn:       release a previously acquired fcoe connection
 98  *                      @param cdev
 99  *                      @param handle - the connection handle.
100  *                      return 0 on success, otherwise error value.
101  * @offload_conn:       configures an offloaded connection
102  *                      @param cdev
103  *                      @param handle - the connection handle.
104  *                      @param conn_info - the configuration to use for the
105  *                              offload.
106  *                      return 0 on success, otherwise error value.
107  * @destroy_conn:       stops an offloaded connection
108  *                      @param cdev
109  *                      @param handle - the connection handle.
110  *                      @param terminate_params
111  *                      return 0 on success, otherwise error value.
112  * @get_stats:          gets FCoE related statistics
113  *                      @param cdev
114  *                      @param stats - pointer to struck that would be filled
115  *                              we stats
116  *                      return 0 on success, error otherwise.
117  */
118 struct qed_fcoe_ops {
119         const struct qed_common_ops *common;
120 
121         int (*fill_dev_info)(struct qed_dev *cdev,
122                              struct qed_dev_fcoe_info *info);
123 
124         void (*register_ops)(struct qed_dev *cdev,
125                              struct qed_fcoe_cb_ops *ops, void *cookie);
126 
127         const struct qed_ll2_ops *ll2;
128 
129         int (*start)(struct qed_dev *cdev, struct qed_fcoe_tid *tasks);
130 
131         int (*stop)(struct qed_dev *cdev);
132 
133         int (*acquire_conn)(struct qed_dev *cdev,
134                             u32 *handle,
135                             u32 *fw_cid, void __iomem **p_doorbell);
136 
137         int (*release_conn)(struct qed_dev *cdev, u32 handle);
138 
139         int (*offload_conn)(struct qed_dev *cdev,
140                             u32 handle,
141                             struct qed_fcoe_params_offload *conn_info);
142         int (*destroy_conn)(struct qed_dev *cdev,
143                             u32 handle, dma_addr_t terminate_params);
144 
145         int (*get_stats)(struct qed_dev *cdev, struct qed_fcoe_stats *stats);
146 };
147 
148 const struct qed_fcoe_ops *qed_get_fcoe_ops(void);
149 void qed_put_fcoe_ops(void);
150 #endif
151 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php