/*
* This file and its contents are supplied under the terms of the
* Common Development and Distribution License ("CDDL"), version 1.0.
* You may only use this file in accordance with the terms of version
* 1.0 of the CDDL.
*
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
*/
/*
* Definitions of T4 work request and CPL5 commands and status codes.
*
* Copyright (C) 2008-2013 Chelsio Communications. All rights reserved.
*
* Written by Dimitris Michailidis (dm@chelsio.com)
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this
* release for licensing terms and conditions.
*/
#ifndef __CXGBE_T4_MSG_H
#define __CXGBE_T4_MSG_H
enum {
};
enum CPL_error {
CPL_ERR_NONE = 0,
};
enum {
CPL_CONN_POLICY_AUTO = 0,
};
enum {
ULP_MODE_NONE = 0,
};
enum {
};
enum {
};
enum {
CPL_ABORT_SEND_RST = 0,
};
enum { /* TX_PKT_XT checksum types */
TX_CSUM_TCP = 0,
};
enum { /* packet type in CPL_RX_PKT */
PKTYPE_XACT_UCAST = 0,
};
enum { /* DMAC type in CPL_RX_PKT */
};
enum { /* TCP congestion control algorithms */
};
enum { /* RSS hash type */
};
enum { /* LE commands */
};
enum { /* LE request size */
LE_SZ_NONE = 0,
};
union opcode_tid {
};
/* tid is assumed to be 24-bits */
/* extract the TID from a CPL command */
/* partitioning of TID fields that also carry a queue id */
#define S_TID_TID 0
union opcode_info {
};
struct tcp_options {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
struct rss_header {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
#define S_QNUM 0
#ifndef CHELSIO_FW
struct work_request_hdr {
};
/* wr_mid fields */
#define S_WR_LEN16 0
/* wr_hi fields */
#define RSS_HDR
#else
#define WR_HDR
#define WR_HDR_SIZE 0
#endif
/* option 0 fields */
#define S_ACCEPT_MODE 0
/* option 1 fields */
#define S_SYN_RSS_ENABLE 0
/* option 2 fields */
#define S_RSS_QUEUE 0
struct cpl_pass_open_req {
};
struct cpl_pass_open_req6 {
};
struct cpl_pass_open_rpl {
};
struct cpl_pass_establish {
};
/* cpl_pass_establish.tos_stid fields */
#define S_PASS_OPEN_TID 0
/* cpl_pass_establish.tcp_opt fields (also applies to act_open_establish) */
struct cpl_pass_accept_req {
};
/* cpl_pass_accept_req.hdr_len fields */
#define S_SYN_RX_CHAN 0
/* cpl_pass_accept_req.l2info fields */
#define S_SYN_MAC_IDX 0
struct cpl_pass_accept_rpl {
};
struct cpl_act_open_req {
};
struct cpl_act_open_req6 {
};
struct cpl_act_open_rpl {
};
/* cpl_act_open_rpl.atid_status fields */
#define S_AOPEN_STATUS 0
struct cpl_act_establish {
};
struct cpl_get_tcb {
};
/* cpl_get_tcb.reply_ctrl fields */
#define S_QUEUENO 0
struct cpl_get_tcb_rpl {
};
struct cpl_set_tcb {
};
struct cpl_set_tcb_field {
};
/* cpl_set_tcb_field.word_cookie fields */
#define S_WORD 0
struct cpl_set_tcb_rpl {
};
struct cpl_close_con_req {
};
struct cpl_close_con_rpl {
};
struct cpl_close_listsvr_req {
};
/* additional cpl_close_listsvr_req.reply_ctrl field */
struct cpl_close_listsvr_rpl {
};
struct cpl_abort_req_rss {
};
struct cpl_abort_req {
};
struct cpl_abort_rpl_rss {
};
struct cpl_abort_rpl {
};
struct cpl_peer_close {
};
struct cpl_tid_release {
};
struct tx_data_wr {
};
/* tx_data_wr.flags fields */
/* tx_data_wr.param fields */
#define S_TX_PORT 0
struct cpl_tx_data {
};
/* cpl_tx_data.flags fields */
/* additional tx_data_wr.flags fields */
#define S_TX_CPU_IDX 0
struct cpl_tx_data_ack {
};
};
struct cpl_tx_pkt_core {
};
struct cpl_tx_pkt {
struct cpl_tx_pkt_core c;
};
/* cpl_tx_pkt_core.ctrl0 fields */
#define S_TXPKT_VF 0
/* cpl_tx_pkt_core.ctrl1 fields */
#define S_TXPKT_SA_IDX 0
struct cpl_tx_pkt_lso {
/* encapsulated CPL (TX_PKT, TX_PKT_XT or TX_DATA) follows here */
};
/* cpl_tx_pkt_lso.lso_ctrl fields */
#define S_LSO_TCPHDR_LEN 0
/* cpl_tx_pkt_lso.mss fields */
#define S_LSO_MSS 0
struct cpl_tx_pkt_coalesce {
};
struct tx_pkt_coalesce_wr {
#if !(defined C99_NOT_SUPPORTED)
#endif
};
struct mngt_pktsched_wr {
};
struct cpl_iscsi_hdr_no_rss {
};
struct cpl_iscsi_hdr {
};
/* cpl_iscsi_hdr.pdu_len_ddp fields */
#define S_ISCSI_PDU_LEN 0
struct cpl_rx_data {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
struct cpl_fcoe_hdr {
};
struct cpl_rx_urg_notify {
};
struct cpl_rx_urg_pkt {
};
struct cpl_rx_data_ack {
};
/* cpl_rx_data_ack.ack_seq fields */
#define S_RX_CREDITS 0
struct cpl_rx_ddp_complete {
};
struct cpl_rx_data_ddp {
union {
} u;
};
struct cpl_rx_fcoe_ddp {
};
/* cpl_rx_{data,fcoe}_ddp.ddpvld fields */
/* cpl_rx_{data,fcoe}_ddp.ddp_report fields */
#define S_DDP_OFFSET 0
struct cpl_rx_pkt {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
/* rx_pkt.l2info fields */
#define S_RX_ETHHDR_LEN 0
/* rx_pkt.hdr_len fields */
#define S_RX_TCPHDR_LEN 0
/* rx_pkt.err_vec fields */
#define S_RXERR_OR 0
struct cpl_trace_pkt {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
struct cpl_rte_delete_req {
};
/* {cpl_rte_delete_req, cpl_rte_read_req}.params fields */
struct cpl_rte_delete_rpl {
};
struct cpl_rte_write_req {
};
/* cpl_rte_write_req.write_sel fields */
/* cpl_rte_write_req.lut_params fields */
struct cpl_rte_write_rpl {
};
struct cpl_rte_read_req {
};
struct cpl_rte_read_rpl {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
struct cpl_l2t_write_req {
};
/* cpl_l2t_write_req.params fields */
struct cpl_l2t_write_rpl {
};
struct cpl_l2t_read_req {
};
struct cpl_l2t_read_rpl {
#if defined(__LITTLE_ENDIAN_BITFIELD)
#else
#endif
};
struct cpl_smt_write_req {
};
/* cpl_smt_{read,write}_req.params fields */
/* cpl_smt_{read,write}_req.pfvf? fields */
#define S_SMTW_VF 0
struct cpl_smt_write_rpl {
};
struct cpl_smt_read_req {
};
struct cpl_smt_read_rpl {
};
struct cpl_barrier {
};
/* cpl_barrier.chan_map fields */
struct cpl_error {
};
struct cpl_hit_notify {
};
struct cpl_pkt_notify {
};
/* cpl_{hit,pkt}_notify.info fields */
#define S_NTFY_MAC_IDX 0
struct cpl_rdma_terminate {
};
struct cpl_set_le_req {
};
/* cpl_set_le_req.reply_ctrl additional fields */
/* cpl_set_le_req.params fields */
#define S_LE_CHAN 0
struct cpl_set_le_rpl {
};
/* cpl_set_le_rpl.info fields */
#define S_LE_RSPCMD 0
struct cpl_sge_egr_update {
};
/* cpl_sge_egr_update.ot fields */
#define S_EGR_QID 0
struct cpl_fw2_pld {
};
struct cpl_fw4_pld {
};
struct cpl_fw6_pld {
};
struct cpl_fw2_msg {
};
struct cpl_fw4_msg {
};
struct cpl_fw4_ack {
};
enum {
};
struct cpl_fw6_msg {
};
/* cpl_fw6_msg.type values */
enum {
FW6_TYPE_CMD_RPL = 0,
};
/* ULP_TX opcodes */
enum {
};
enum {
};
#define S_ULPTX_LEN16 0
struct ulptx_sge_pair {
};
struct ulptx_sgl {
#if !(defined C99_NOT_SUPPORTED)
#endif
};
struct ulptx_isge {
};
struct ulptx_isgl {
#if !(defined C99_NOT_SUPPORTED)
#endif
};
struct ulptx_idata {
};
#define S_ULPTX_NSGE 0
struct ulp_mem_io {
};
/* additional ulp_mem_io.cmd fields */
/* ulp_mem_io.lock_addr fields */
#define S_ULP_MEMIO_ADDR 0
/* ulp_mem_io.dlen fields */
#define S_ULP_MEMIO_DATA_LEN 0
struct ulp_txpkt {
};
/* ulp_txpkt.cmd_dest fields */
#endif /* __CXGBE_T4_MSG_H */