Author | Tokens | Token Proportion | Commits | Commit Proportion |
---|---|---|---|---|
Quinn Tran | 768 | 89.82% | 6 | 46.15% |
Joe Carnuccio | 71 | 8.30% | 2 | 15.38% |
Himanshu Madhani | 6 | 0.70% | 1 | 7.69% |
Saurav Kashyap | 6 | 0.70% | 1 | 7.69% |
Gustavo A. R. Silva | 2 | 0.23% | 1 | 7.69% |
Giridhar Malavali | 1 | 0.12% | 1 | 7.69% |
Thomas Gleixner | 1 | 0.12% | 1 | 7.69% |
Total | 855 | 13 |
/* SPDX-License-Identifier: GPL-2.0-only */ /* * Marvell Fibre Channel HBA Driver * Copyright (C) 2018- Marvell * */ #ifndef __QLA_EDIF_BSG_H #define __QLA_EDIF_BSG_H #define EDIF_VERSION1 1 /* BSG Vendor specific commands */ #define ELS_MAX_PAYLOAD 2112 #ifndef WWN_SIZE #define WWN_SIZE 8 #endif #define VND_CMD_APP_RESERVED_SIZE 28 #define VND_CMD_PAD_SIZE 3 enum auth_els_sub_cmd { SEND_ELS = 0, SEND_ELS_REPLY, PULL_ELS, }; struct extra_auth_els { enum auth_els_sub_cmd sub_cmd; uint32_t extra_rx_xchg_address; uint8_t extra_control_flags; #define BSG_CTL_FLAG_INIT 0 #define BSG_CTL_FLAG_LS_ACC 1 #define BSG_CTL_FLAG_LS_RJT 2 #define BSG_CTL_FLAG_TRM 3 uint8_t version; uint8_t pad[2]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct qla_bsg_auth_els_request { struct fc_bsg_request r; struct extra_auth_els e; }; struct qla_bsg_auth_els_reply { struct fc_bsg_reply r; uint32_t rx_xchg_address; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; }; struct app_id { int app_vid; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_start_reply { uint32_t host_support_edif; uint32_t edif_enode_active; uint32_t edif_edb_active; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_start { struct app_id app_info; uint8_t app_start_flags; uint8_t version; uint8_t pad[2]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_stop { struct app_id app_info; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_plogi_reply { uint32_t prli_status; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_pinfo_req { struct app_id app_info; uint8_t num_ports; struct { #ifdef __BIG_ENDIAN uint8_t domain; uint8_t area; uint8_t al_pa; #elif defined(__LITTLE_ENDIAN) uint8_t al_pa; uint8_t area; uint8_t domain; #else #error "__BIG_ENDIAN or __LITTLE_ENDIAN must be defined!" #endif uint8_t rsvd_1; } remote_pid; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_pinfo { port_id_t remote_pid; uint8_t remote_wwpn[WWN_SIZE]; uint8_t remote_type; #define VND_CMD_RTYPE_UNKNOWN 0 #define VND_CMD_RTYPE_TARGET 1 #define VND_CMD_RTYPE_INITIATOR 2 uint8_t remote_state; uint8_t auth_state; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; /* AUTH States */ #define VND_CMD_AUTH_STATE_UNDEF 0 #define VND_CMD_AUTH_STATE_SESSION_SHUTDOWN 1 #define VND_CMD_AUTH_STATE_NEEDED 2 #define VND_CMD_AUTH_STATE_ELS_RCVD 3 #define VND_CMD_AUTH_STATE_SAUPDATE_COMPL 4 struct app_pinfo_reply { uint8_t port_count; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; struct app_pinfo ports[]; } __packed; struct app_sinfo_req { struct app_id app_info; uint8_t num_ports; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_sinfo { uint8_t remote_wwpn[WWN_SIZE]; int64_t rekey_count; uint8_t rekey_mode; int64_t tx_bytes; int64_t rx_bytes; } __packed; struct app_stats_reply { uint8_t elem_count; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; struct app_sinfo elem[]; } __packed; struct qla_sa_update_frame { struct app_id app_info; uint16_t flags; #define SAU_FLG_INV 0x01 /* delete key */ #define SAU_FLG_TX 0x02 /* 1=tx, 0 = rx */ #define SAU_FLG_FORCE_DELETE 0x08 #define SAU_FLG_GMAC_MODE 0x20 /* * GMAC mode is cleartext for the IO * (i.e. NULL encryption) */ #define SAU_FLG_KEY128 0x40 #define SAU_FLG_KEY256 0x80 uint16_t fast_sa_index:10, reserved:6; uint32_t salt; uint32_t spi; uint8_t sa_key[32]; uint8_t node_name[WWN_SIZE]; uint8_t port_name[WWN_SIZE]; port_id_t port_id; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved2[VND_CMD_APP_RESERVED_SIZE]; } __packed; #define QL_VND_SC_UNDEF 0 #define QL_VND_SC_SA_UPDATE 1 #define QL_VND_SC_APP_START 2 #define QL_VND_SC_APP_STOP 3 #define QL_VND_SC_AUTH_OK 4 #define QL_VND_SC_AUTH_FAIL 5 #define QL_VND_SC_REKEY_CONFIG 6 #define QL_VND_SC_GET_FCINFO 7 #define QL_VND_SC_GET_STATS 8 #define QL_VND_SC_AEN_COMPLETE 9 #define QL_VND_SC_READ_DBELL 10 /* * bsg caller to provide empty buffer for doorbell events. * * sg_io_v4.din_xferp = empty buffer for door bell events * sg_io_v4.dout_xferp = struct edif_read_dbell *buf */ struct edif_read_dbell { struct app_id app_info; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; }; /* Application interface data structure for rtn data */ #define EXT_DEF_EVENT_DATA_SIZE 64 struct edif_app_dbell { uint32_t event_code; uint32_t event_data_size; union { port_id_t port_id; uint8_t event_data[EXT_DEF_EVENT_DATA_SIZE]; }; } __packed; struct edif_sa_update_aen { port_id_t port_id; uint32_t key_type; /* Tx (1) or RX (2) */ uint32_t status; /* 0 succes, 1 failed, 2 timeout , 3 error */ uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; #define QL_VND_SA_STAT_SUCCESS 0 #define QL_VND_SA_STAT_FAILED 1 #define QL_VND_SA_STAT_TIMEOUT 2 #define QL_VND_SA_STAT_ERROR 3 #define QL_VND_RX_SA_KEY 1 #define QL_VND_TX_SA_KEY 2 /* App defines for plogi auth'd ok and plogi auth bad requests */ struct auth_complete_cmd { struct app_id app_info; #define PL_TYPE_WWPN 1 #define PL_TYPE_DID 2 uint32_t type; union { uint8_t wwpn[WWN_SIZE]; port_id_t d_id; } u; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct aen_complete_cmd { struct app_id app_info; port_id_t port_id; uint32_t event_code; uint8_t version; uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; #define RX_DELAY_DELETE_TIMEOUT 20 #define FCH_EVT_VENDOR_UNIQUE_VPORT_DOWN 1 #endif /* QLA_EDIF_BSG_H */
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with Cregit http://github.com/cregit/cregit
Version 2.0-RC1