|
Packit Service |
646995 |
/*
|
|
Packit Service |
646995 |
* iSCSI flashnode helpers
|
|
Packit Service |
646995 |
*
|
|
Packit Service |
646995 |
* Copyright (C) 2013 QLogic Corporation.
|
|
Packit Service |
646995 |
* Maintained by open-iscsi@googlegroups.com
|
|
Packit Service |
646995 |
*
|
|
Packit Service |
646995 |
* This program is free software; you can redistribute it and/or modify
|
|
Packit Service |
646995 |
* it under the terms of the GNU General Public License as published
|
|
Packit Service |
646995 |
* by the Free Software Foundation; either version 2 of the License, or
|
|
Packit Service |
646995 |
* (at your option) any later version.
|
|
Packit Service |
646995 |
*
|
|
Packit Service |
646995 |
* This program is distributed in the hope that it will be useful, but
|
|
Packit Service |
646995 |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
646995 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
646995 |
* General Public License for more details.
|
|
Packit Service |
646995 |
*
|
|
Packit Service |
646995 |
* See the file COPYING included with this distribution for more details.
|
|
Packit Service |
646995 |
*/
|
|
Packit Service |
646995 |
#ifndef FLASHNODE_H
|
|
Packit Service |
646995 |
#define FLASHNODE_H
|
|
Packit Service |
646995 |
#include <sys/types.h>
|
|
Packit Service |
646995 |
#include <netdb.h>
|
|
Packit Service |
646995 |
#include <net/if.h>
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
#include "types.h"
|
|
Packit Service |
646995 |
#include "config.h"
|
|
Packit Service |
646995 |
#include "auth.h"
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
#define MAX_FLASHNODE_IDX UINT_MAX
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
typedef enum portal_type {
|
|
Packit Service |
646995 |
IPV4,
|
|
Packit Service |
646995 |
IPV6,
|
|
Packit Service |
646995 |
} portal_type_e;
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
typedef struct flashnode_sess_rec {
|
|
Packit Service |
646995 |
char targetname[TARGET_NAME_MAXLEN];
|
|
Packit Service |
646995 |
char targetalias[TARGET_NAME_MAXLEN];
|
|
Packit Service |
646995 |
char username[AUTH_STR_MAX_LEN];
|
|
Packit Service |
646995 |
char username_in[AUTH_STR_MAX_LEN];
|
|
Packit Service |
646995 |
char password[AUTH_STR_MAX_LEN];
|
|
Packit Service |
646995 |
char password_in[AUTH_STR_MAX_LEN];
|
|
Packit Service |
646995 |
/* indicates if discovery was done through iSNS discovery service
|
|
Packit Service |
646995 |
* or through sendTarget */
|
|
Packit Service |
646995 |
char discovery_parent_type[ISCSI_MAX_STR_LEN];
|
|
Packit Service |
646995 |
char isid[16];
|
|
Packit Service |
646995 |
char portal_type[5]; /* ipv4 or ipv6 */
|
|
Packit Service |
646995 |
unsigned first_burst_len;
|
|
Packit Service |
646995 |
unsigned max_burst_len;
|
|
Packit Service |
646995 |
uint16_t def_time2wait;
|
|
Packit Service |
646995 |
uint16_t def_time2retain;
|
|
Packit Service |
646995 |
uint16_t max_outstanding_r2t;
|
|
Packit Service |
646995 |
uint16_t tsid;
|
|
Packit Service |
646995 |
uint16_t def_taskmgmt_tmo;
|
|
Packit Service |
646995 |
uint16_t tpgt;
|
|
Packit Service |
646995 |
uint16_t chap_out_idx;
|
|
Packit Service |
646995 |
uint16_t chap_in_idx;
|
|
Packit Service |
646995 |
/* index of iSCSI discovery session if the entry is
|
|
Packit Service |
646995 |
* discovered by iSCSI discovery session
|
|
Packit Service |
646995 |
*/
|
|
Packit Service |
646995 |
uint16_t discovery_parent_idx;
|
|
Packit Service |
646995 |
/* Firmware auto sendtarget discovery disable */
|
|
Packit Service |
646995 |
uint8_t auto_snd_tgt_disable;
|
|
Packit Service |
646995 |
uint8_t discovery_session;
|
|
Packit Service |
646995 |
/* indicates if this flashnode entry is enabled or disabled */
|
|
Packit Service |
646995 |
uint8_t entry_enable;
|
|
Packit Service |
646995 |
uint8_t immediate_data;
|
|
Packit Service |
646995 |
uint8_t initial_r2t;
|
|
Packit Service |
646995 |
uint8_t data_seq_in_order;
|
|
Packit Service |
646995 |
uint8_t data_pdu_in_order;
|
|
Packit Service |
646995 |
uint8_t chap_auth_en;
|
|
Packit Service |
646995 |
/* enables firmware to auto logout the discovery session on discovery
|
|
Packit Service |
646995 |
* completion
|
|
Packit Service |
646995 |
*/
|
|
Packit Service |
646995 |
uint8_t discovery_logout_en;
|
|
Packit Service |
646995 |
uint8_t bidi_chap_en;
|
|
Packit Service |
646995 |
/* makes authentication for discovery session optional */
|
|
Packit Service |
646995 |
uint8_t discovery_auth_optional;
|
|
Packit Service |
646995 |
uint8_t erl;
|
|
Packit Service |
646995 |
uint8_t is_boot_target;
|
|
Packit Service |
646995 |
} flashnode_sess_rec_t;
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
typedef struct flashnode_conn_rec {
|
|
Packit Service |
646995 |
char ipaddress[NI_MAXHOST];
|
|
Packit Service |
646995 |
char redirect_ipaddr[NI_MAXHOST];
|
|
Packit Service |
646995 |
char link_local_ipv6[NI_MAXHOST];
|
|
Packit Service |
646995 |
unsigned max_recv_dlength;
|
|
Packit Service |
646995 |
unsigned max_xmit_dlength;
|
|
Packit Service |
646995 |
unsigned max_segment_size;
|
|
Packit Service |
646995 |
unsigned tcp_xmit_wsf;
|
|
Packit Service |
646995 |
unsigned tcp_recv_wsf;
|
|
Packit Service |
646995 |
uint32_t stat_sn;
|
|
Packit Service |
646995 |
uint32_t exp_stat_sn;
|
|
Packit Service |
646995 |
uint16_t keepalive_tmo;
|
|
Packit Service |
646995 |
uint16_t port;
|
|
Packit Service |
646995 |
uint16_t local_port;
|
|
Packit Service |
646995 |
uint16_t ipv6_flow_lbl;
|
|
Packit Service |
646995 |
/* Link local IPv6 address is assigned by firmware or driver */
|
|
Packit Service |
646995 |
uint8_t is_fw_assigned_ipv6;
|
|
Packit Service |
646995 |
uint8_t header_digest_en;
|
|
Packit Service |
646995 |
uint8_t data_digest_en;
|
|
Packit Service |
646995 |
uint8_t snack_req_en;
|
|
Packit Service |
646995 |
/* tcp timestamp negotiation status */
|
|
Packit Service |
646995 |
uint8_t tcp_timestamp_stat;
|
|
Packit Service |
646995 |
uint8_t tcp_nagle_disable;
|
|
Packit Service |
646995 |
/* tcp window scale factor */
|
|
Packit Service |
646995 |
uint8_t tcp_wsf_disable;
|
|
Packit Service |
646995 |
uint8_t tcp_timer_scale;
|
|
Packit Service |
646995 |
uint8_t tcp_timestamp_en;
|
|
Packit Service |
646995 |
uint8_t fragment_disable;
|
|
Packit Service |
646995 |
uint8_t ipv4_tos;
|
|
Packit Service |
646995 |
uint8_t ipv6_traffic_class;
|
|
Packit Service |
646995 |
} flashnode_conn_rec_t;
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
struct flashnode_rec {
|
|
Packit Service |
646995 |
struct list_head list;
|
|
Packit Service |
646995 |
char transport_name[ISCSI_TRANSPORT_NAME_MAXLEN];
|
|
Packit Service |
646995 |
flashnode_sess_rec_t sess;
|
|
Packit Service |
646995 |
flashnode_conn_rec_t conn[ISCSI_CONN_MAX];
|
|
Packit Service |
646995 |
};
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
extern int flashnode_info_print_flat(void *data, struct flashnode_rec *tgt,
|
|
Packit Service |
646995 |
uint32_t host_no, uint32_t flashnode_idx);
|
|
Packit Service |
646995 |
extern int iscsi_logout_flashnode_sid(struct iscsi_transport *t,
|
|
Packit Service |
646995 |
uint32_t host_no, uint32_t sid);
|
|
Packit Service |
646995 |
extern int flashnode_build_config(struct list_head *params,
|
|
Packit Service |
646995 |
struct flashnode_rec *flashnode,
|
|
Packit Service |
646995 |
struct iovec *iovs);
|
|
Packit Service |
646995 |
#endif
|