linux/include/scsi/iscsi_if.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * iSCSI User/Kernel Shares (Defines, Constants, Protocol definitions, etc)
 *
 * Copyright (C) 2005 Dmitry Yusupov
 * Copyright (C) 2005 Alex Aizman
 * maintained by [email protected]
 */

#ifndef ISCSI_IF_H
#define ISCSI_IF_H

#include <scsi/iscsi_proto.h>
#include <linux/in.h>
#include <linux/in6.h>

#define ISCSI_NL_GRP_ISCSID
#define ISCSI_NL_GRP_UIP

#define UEVENT_BASE
#define KEVENT_BASE
#define ISCSI_ERR_BASE

enum iscsi_uevent_e {};

enum iscsi_tgt_dscvr {};

enum iscsi_host_event_code {};

struct iscsi_uevent {} __attribute__ ((aligned));

enum iscsi_param_type {};

/* structure for minimalist usecase */
struct iscsi_param_info {} __packed;

struct iscsi_iface_param_info {} __packed;

/*
 * To keep the struct iscsi_uevent size the same for userspace code
 * compatibility, the main structure for ISCSI_UEVENT_PATH_UPDATE and
 * ISCSI_KEVENT_PATH_REQ is defined separately and comes after the
 * struct iscsi_uevent in the NETLINK_ISCSI message.
 */
struct iscsi_path {} __attribute__ ((aligned));

/* iscsi iface enabled/disabled setting */
#define ISCSI_IFACE_DISABLE
#define ISCSI_IFACE_ENABLE

/* ipv4 bootproto */
#define ISCSI_BOOTPROTO_STATIC
#define ISCSI_BOOTPROTO_DHCP

/* ipv6 addr autoconfig type */
#define ISCSI_IPV6_AUTOCFG_DISABLE
#define ISCSI_IPV6_AUTOCFG_ND_ENABLE
#define ISCSI_IPV6_AUTOCFG_DHCPV6_ENABLE

/* ipv6 link local addr type */
#define ISCSI_IPV6_LINKLOCAL_AUTOCFG_ENABLE
#define ISCSI_IPV6_LINKLOCAL_AUTOCFG_DISABLE

/* ipv6 router addr type */
#define ISCSI_IPV6_ROUTER_AUTOCFG_ENABLE
#define ISCSI_IPV6_ROUTER_AUTOCFG_DISABLE

#define ISCSI_IFACE_TYPE_IPV4
#define ISCSI_IFACE_TYPE_IPV6

#define ISCSI_MAX_VLAN_ID
#define ISCSI_MAX_VLAN_PRIORITY

/* iscsi vlan enable/disabled setting */
#define ISCSI_VLAN_DISABLE
#define ISCSI_VLAN_ENABLE

/* iscsi generic enable/disabled setting for various features */
#define ISCSI_NET_PARAM_DISABLE
#define ISCSI_NET_PARAM_ENABLE

/* iSCSI network params */
enum iscsi_net_param {};

enum iscsi_ipaddress_state {};

enum iscsi_router_state {};

/* iSCSI specific settings params for iface */
enum iscsi_iface_param {};

enum iscsi_conn_state {};

/*
 * Common error codes
 */
enum iscsi_err {};

/*
 * iSCSI Parameters (RFC3720)
 */
enum iscsi_param {};

/* iSCSI HBA params */
enum iscsi_host_param {};

/* portal type */
#define PORTAL_TYPE_IPV4
#define PORTAL_TYPE_IPV6

/* iSCSI Flash Target params */
enum iscsi_flashnode_param {};

struct iscsi_flashnode_param_info {} __packed;

enum iscsi_discovery_parent_type {};

/* iSCSI port Speed */
enum iscsi_port_speed {};

/* iSCSI port state */
enum iscsi_port_state {};

/* iSCSI PING status/error code */
enum iscsi_ping_status_code {};

#define iscsi_ptr(_handle)
#define iscsi_handle(_ptr)

/*
 * These flags presents iSCSI Data-Path capabilities.
 */
#define CAP_RECOVERY_L0
#define CAP_RECOVERY_L1
#define CAP_RECOVERY_L2
#define CAP_MULTI_R2T
#define CAP_HDRDGST
#define CAP_DATADGST
#define CAP_MULTI_CONN
#define CAP_TEXT_NEGO
#define CAP_MARKERS
#define CAP_FW_DB
#define CAP_SENDTARGETS_OFFLOAD
#define CAP_DATA_PATH_OFFLOAD
#define CAP_DIGEST_OFFLOAD
#define CAP_PADDING_OFFLOAD
#define CAP_LOGIN_OFFLOAD

/*
 * These flags describes reason of stop_conn() call
 */
#define STOP_CONN_TERM
#define STOP_CONN_SUSPEND
#define STOP_CONN_RECOVER

#define ISCSI_STATS_CUSTOM_MAX
#define ISCSI_STATS_CUSTOM_DESC_MAX
struct iscsi_stats_custom {};

/*
 * struct iscsi_stats - iSCSI Statistics (iSCSI MIB)
 *
 * Note: this structure contains counters collected on per-connection basis.
 */
struct iscsi_stats {};

enum chap_type_e {};

enum iscsi_chap_param {};

#define ISCSI_CHAP_AUTH_NAME_MAX_LEN
#define ISCSI_CHAP_AUTH_SECRET_MAX_LEN
struct iscsi_chap_rec {};

#define ISCSI_HOST_STATS_CUSTOM_MAX
#define ISCSI_HOST_STATS_CUSTOM_DESC_MAX
struct iscsi_host_stats_custom {};

/* struct iscsi_offload_host_stats: Host statistics,
 * Include statistics for MAC, IP, TCP & iSCSI.
 */
struct iscsi_offload_host_stats {};

#endif