102 #define FC_LOGIN_VERSION 0x2020 105 #define FC_LOGIN_DEFAULT_B2B 10 108 #define FC_LOGIN_CONTINUOUS_OFFSET 0x8000 111 #define FC_LOGIN_CLEAN 0x8000 114 #define FC_LOGIN_MULTI_N 0x8000 117 #define FC_LOGIN_RANDOM_OFFSET 0x4000 120 #define FC_LOGIN_VIRTUAL 0x4000 123 #define FC_LOGIN_VENDOR 0x2000 126 #define FC_LOGIN_MULTI_F 0x2000 129 #define FC_LOGIN_F_PORT 0x1000 132 #define FC_LOGIN_ALT_CREDIT 0x0800 135 #define FC_LOGIN_NSS_STARTED 0x0800 138 #define FC_LOGIN_NSS_BEGIN 0x0400 141 #define FC_LOGIN_HIRES_E_D_TOV 0x0400 144 #define FC_LOGIN_BROADCAST 0x0100 147 #define FC_LOGIN_QUERY_BUF 0x0040 150 #define FC_LOGIN_SECURITY 0x0020 153 #define FC_LOGIN_CLOCK_SYNC 0x0010 156 #define FC_LOGIN_SHORT_R_T_TOV 0x0008 159 #define FC_LOGIN_DHD 0x0004 162 #define FC_LOGIN_CONTINUOUS_SEQ 0x0002 165 #define FC_LOGIN_PAYLOAD 0x0001 168 #define FC_LOGIN_DEFAULT_MTU 1452 171 #define FC_LOGIN_DEFAULT_MAX_SEQ 255 174 #define FC_LOGIN_DEFAULT_REL_OFFS 0x1f 177 #define FC_LOGIN_DEFAULT_E_D_TOV 2000 202 #define FC_LOGIN_CLASS_VALID 0x8000 205 #define FC_LOGIN_CLASS_SEQUENTIAL 0x0800 264 #define FC_PRLI_ESTABLISH 0x2000 267 #define FC_PRLI_RESPONSE_MASK 0x0f00 270 #define FC_PRLI_RESPONSE_SUCCESS 0x0100 309 #define FC_RTV_HIRES_E_D_TOV 0x0400 312 #define FC_RTV_SHORT_R_T_TOV 0x0008 380 #define FC_ELS_HANDLERS __table ( struct fc_els_handler, "fc_els_handlers" ) 383 #define __fc_els_handler __table_entry ( FC_ELS_HANDLERS, 01 ) 396 #define FC_ELS_PRLI_DESCRIPTORS \ 397 __table ( struct fc_els_prli_descriptor, "fc_els_prli_descriptors" ) 400 #define __fc_els_prli_descriptor __table_entry ( FC_ELS_PRLI_DESCRIPTORS, 01 ) 420 unsigned int request_command ) {
443 const void *
data,
size_t len );
Fibre Channel ELS frame common parameters.
uint32_t r_a_tov
Resource allocation timeout value.
uint16_t mtu
Receive size.
uint8_t reserved0[3]
Reserved.
uint16_t version
Login version.
size_t param_len
Service parameter length.
struct fc_login_common common
Common service parameters.
uint32_t reserved[2]
Reserved.
uint8_t type_ext
Type code extension.
int(* tx)(struct fc_els *els)
Transmit ELS frame.
A Fibre Channel RTV response frame.
int fc_els_prli_detect(struct fc_els *els __unused, struct fc_els_prli_descriptor *descriptor, const void *data, size_t len)
Detect PRLI.
A Fibre Channel RTV request frame.
uint8_t vendor
Vendor unique.
A Fibre Channel extended link services handler.
fc_els_flags
Fibre Channel extended link services transaction flags.
uint8_t command
ELS command code.
uint32_t type
Operating system type.
int fc_els_flogi(struct interface *parent, struct fc_port *port)
Create FLOGI request.
uint8_t explanation
Reason code explanation.
uint16_t reserved1
Reserved.
uint32_t r_a_tov
Resource allocation timeout value.
uint8_t reserved[3]
Reserved.
uint32_t e_d_tov
Error detection timeout value.
struct fc_els_handler * handler
ELS handler, if known.
uint8_t reserved0
Reserved.
struct fc_els_handler * handler
Fibre Channel ELS handler.
uint8_t command
ELS command code.
struct fc_port_id peer_port_id
Peer port ID.
uint16_t flags
Flags and response code.
fc_els_reject_reason
Fibre Channel ELS rejection reason codes.
uint16_t rel_offs
Relative offset by info category.
uint16_t recip_flags
Recipient flags.
uint8_t reason
Reason code.
int fc_els_prli_tx(struct fc_els *els, struct fc_els_prli_descriptor *descriptor, void *param)
Transmit PRLI.
uint8_t reserved[4]
Reserved.
uint8_t reserved[3]
Reserved.
int(* detect)(struct fc_els *els, const void *data, size_t len)
Detect ELS frame.
uint8_t command
ELS command code.
A Fibre Channel PRLI frame.
uint8_t reserved1[2]
Reserved.
uint8_t reserved[3]
Reserved.
uint8_t command
ELS command code.
fc_els_command_code
Fibre Channel ELS command codes.
A Fibre Channel port identifier.
struct interface xchg
Fibre Channel exchange.
#define __unused
Declare a variable or data structure as unused.
struct fc_login_class class1
Class 1 service parameters.
uint8_t reserved[3]
Reserved.
uint8_t max_seq_per_xchg
Maximum number of open sequences per exchange.
ELS transaction is a request.
struct fc_port_id port_id
Port ID.
Invalid ELS command code.
Fibre Channel class-specific login parameters.
struct fc_login_class class3
Class 3 service parameters.
uint16_t len
Payload length.
uint8_t command
ELS command code.
struct fc_login_common::@602::@604 flogi
struct fc_login_class class2
Class 2 service parameters.
A Fibre Channel extended link services transaction.
struct fc_port * port
Fibre Channel port.
struct fc_name node_wwn
Node name.
Unable to perform command request.
static unsigned int fc_els_tx_command(struct fc_els *els, unsigned int request_command)
Calculate ELS command to transmit.
struct hv_monitor_parameter param[4][32]
Parameters.
uint8_t page_len
Page length.
int(* rx)(struct fc_els *els, void *data, size_t len)
Receive ELS frame.
struct interface job
Job control interface.
uint16_t max_seq
Maximum number of concurrent sequences.
uint16_t credit
Buffer-to-buffer credit.
uint16_t credit
End-to-end credit.
uint16_t init_flags
Initiator flags.
A Fibre Channel LOGO response frame.
uint32_t e_d_tov
Error detection timeout value.
int fc_els_logo(struct interface *parent, struct fc_port *port, struct fc_port_id *peer_port_id)
Create LOGO request.
Command already in progress.
uint8_t command
ELS command code.
uint16_t flags
Timeout qualifier.
int fc_els_prli(struct interface *parent, struct fc_port *port, struct fc_port_id *peer_port_id, unsigned int type)
Create PRLI request.
uint8_t reserved[4]
Reserved.
static int fc_els_is_request(struct fc_els *els)
Check if Fibre Channel ELS transaction is a request.
uint8_t command
ELS command code.
A Fibre Channel LS_RJT frame.
Fibre Channel "common" service parameters.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
uint16_t mtu
Receive data field size.
struct fc_login_class class4
Class 4 service parameters.
uint8_t data[48]
Additional event data.
struct fc_name port_wwn
Port name.
int fc_els_plogi(struct interface *parent, struct fc_port *port, struct fc_port_id *peer_port_id)
Create PLOGI request.
struct fc_login_common::@602::@603 plogi
uint8_t command
ELS command code.
A Fibre Channel PRLI service parameter page.
int fc_els_request(struct interface *job, struct fc_port *port, struct fc_port_id *peer_port_id, struct fc_els_handler *handler)
Create ELS request.
unsigned int type
Upper-layer protocol type.
A Fibre Channel ELS PRLI descriptor.
struct fc_name port_wwn
Port name.
uint16_t max_seq
Maximum number of concurrent sequences.
int fc_els_tx(struct fc_els *els, const void *data, size_t len)
Transmit Fibre Channel ELS frame.
int fc_els_prli_rx(struct fc_els *els, struct fc_els_prli_descriptor *descriptor, void *data, size_t len)
Receive PRLI.
uint8_t vendor_version[16]
Vendor version level.
A Fibre Channel FLOGI/PLOGI frame.
A Fibre Channel LOGO request frame.
struct fc_port_id port_id
Local port ID.
union fc_login_common::@602 u
"Common"?!
struct fc_prli_page page
Service parameter page.