diff options
Diffstat (limited to 'utils/open-isns/isns-proto.h')
-rw-r--r-- | utils/open-isns/isns-proto.h | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/utils/open-isns/isns-proto.h b/utils/open-isns/isns-proto.h deleted file mode 100644 index fbc3376..0000000 --- a/utils/open-isns/isns-proto.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - * iSNS protocol definitions - * - * Copyright (C) 2007 Olaf Kirch <olaf.kirch@oracle.com> - */ - -#ifndef ISNS_PROTO_H -#define ISNS_PROTO_H - -#include <stdint.h> - -struct isns_hdr { - uint16_t i_version; - uint16_t i_function; - uint16_t i_length; - uint16_t i_flags; - uint16_t i_xid; - uint16_t i_seq; -}; - -#define ISNS_VERSION 0x0001 -#define ISNS_MAX_PDU_SIZE 65535 -#define ISNS_DEFAULT_PORT 3205 - -/* - * Values for the i_flags field: - */ -#define ISNS_F_CLIENT 0x8000 -#define ISNS_F_SERVER 0x4000 -#define ISNS_F_AUTHBLK_PRESENT 0x2000 -#define ISNS_F_REPLACE 0x1000 -#define ISNS_F_LAST_PDU 0x0800 -#define ISNS_F_FIRST_PDU 0x0400 - -/* - * Function values - */ -enum isns_function { - ISNS_DEVICE_ATTRIBUTE_REGISTER = 1, - ISNS_DEVICE_ATTRIBUTE_QUERY = 2, - ISNS_DEVICE_GET_NEXT = 3, - ISNS_DEVICE_DEREGISTER = 4, - ISNS_SCN_REGISTER = 5, - ISNS_SCN_DEREGISTER = 6, - ISNS_SCN_EVENT = 7, - ISNS_STATE_CHANGE_NOTIFICATION = 8, - ISNS_DD_REGISTER = 9, - ISNS_DD_DEREGISTER = 10, - ISNS_DDS_REGISTER = 11, - ISNS_DDS_DEREGISTER = 12, - ISNS_ENTITY_STATUS_INQUIRY = 13, - ISNS_HEARTBEAT = 14, -}; - -/* - * iSNS status codes: - */ -enum isns_status { - ISNS_SUCCESS = 0, - ISNS_UNKNOWN_ERROR, - ISNS_MESSAGE_FORMAT_ERROR, - ISNS_INVALID_REGISTRATION, - __ISNS_RESERVED_STATUS, - ISNS_INVALID_QUERY, - ISNS_SOURCE_UNKNOWN, - ISNS_SOURCE_ABSENT, - ISNS_SOURCE_UNAUTHORIZED, - ISNS_NO_SUCH_ENTRY, - ISNS_VERSION_NOT_SUPPORTED, - ISNS_INTERNAL_ERROR, - ISNS_BUSY, - ISNS_OPTION_NOT_UNDERSTOOD, - ISNS_INVALID_UPDATE, - ISNS_MESSAGE_NOT_SUPPORTED, - ISNS_SCN_EVENT_REJECTED, - ISNS_SCN_REGISTRATION_REJECTED, - ISNS_ATTRIBUTE_NOT_IMPLEMENTED, - ISNS_FC_DOMAIN_ID_NOT_AVAILABLE, - ISNS_FC_DOMAIN_ID_NOT_ALLOCATED, - ISNS_ESI_NOT_AVAILABLE, - ISNS_INVALID_DEREGISTRATION, - ISNS_REGISTRATION_FEATURE_NOT_SUPPORTED, -}; - -enum isns_tag { - ISNS_TAG_DELIMITER = 0, - ISNS_TAG_ENTITY_IDENTIFIER = 1, - ISNS_TAG_ENTITY_PROTOCOL = 2, - ISNS_TAG_MGMT_IP_ADDRESS = 3, - ISNS_TAG_TIMESTAMP = 4, - ISNS_TAG_PROTOCOL_VERSION_RANGE = 5, - ISNS_TAG_REGISTRATION_PERIOD = 6, - ISNS_TAG_ENTITY_INDEX = 7, - ISNS_TAG_ENTITY_NEXT_INDEX = 8, - ISNS_TAG_ENTITY_ISAKMP_PHASE_1 = 11, - ISNS_TAG_ENTITY_CERTIFICATE = 12, - ISNS_TAG_PORTAL_IP_ADDRESS = 16, - ISNS_TAG_PORTAL_TCP_UDP_PORT = 17, - ISNS_TAG_PORTAL_SYMBOLIC_NAME = 18, - ISNS_TAG_ESI_INTERVAL = 19, - ISNS_TAG_ESI_PORT = 20, - ISNS_TAG_PORTAL_INDEX = 22, - ISNS_TAG_SCN_PORT = 23, - ISNS_TAG_PORTAL_NEXT_INDEX = 24, - ISNS_TAG_PORTAL_SECURITY_BITMAP = 27, - ISNS_TAG_PORTAL_ISAKMP_PHASE_1 = 28, - ISNS_TAG_PORTAL_ISAKMP_PHASE_2 = 29, - ISNS_TAG_PORTAL_CERTIFICATE = 31, - ISNS_TAG_ISCSI_NAME = 32, - ISNS_TAG_ISCSI_NODE_TYPE = 33, - ISNS_TAG_ISCSI_ALIAS = 34, - ISNS_TAG_ISCSI_SCN_BITMAP = 35, - ISNS_TAG_ISCSI_NODE_INDEX = 36, - ISNS_TAG_WWNN_TOKEN = 37, - ISNS_TAG_ISCSI_NODE_NEXT_INDEX = 38, - ISNS_TAG_ISCSI_AUTHMETHOD = 42, - ISNS_TAG_PG_ISCSI_NAME = 48, - ISNS_TAG_PG_PORTAL_IP_ADDR = 49, - ISNS_TAG_PG_PORTAL_TCP_UDP_PORT = 50, - ISNS_TAG_PG_TAG = 51, - ISNS_TAG_PG_INDEX = 52, - ISNS_TAG_PG_NEXT_INDEX = 53, - ISNS_TAG_FC_PORT_NAME_WWPN = 64, - ISNS_TAG_PORT_ID = 65, - ISNS_TAG_FC_PORT_TYPE = 66, - ISNS_TAG_SYMBOLIC_PORT_NAME = 67, - ISNS_TAG_FABRIC_PORT_NAME = 68, - ISNS_TAG_HARD_ADDRESS = 69, - ISNS_TAG_PORT_IP_ADDRESS = 70, - ISNS_TAG_CLASS_OF_SERVICE = 71, - ISNS_TAG_FC4_TYPES = 72, - ISNS_TAG_FC4_DESCRIPTOR = 73, - ISNS_TAG_FC4_FEATURES = 74, - ISNS_TAG_IFCP_SCN_BITMAP = 75, - ISNS_TAG_PORT_ROLE = 76, - ISNS_TAG_PERMANENT_PORT_NAME = 77, - ISNS_TAG_FC4_TYPE_CODE = 95, - ISNS_TAG_FC_NODE_NAME_WWNN = 96, - ISNS_TAG_SYMBOLIC_NODE_NAME = 97, - ISNS_TAG_NODE_IP_ADDRESS = 98, - ISNS_TAG_NODE_IPA = 99, - ISNS_TAG_PROXY_ISCSI_NAME = 101, - ISNS_TAG_SWITCH_NAME = 128, - ISNS_TAG_PREFERRED_ID = 129, - ISNS_TAG_ASSIGNED_ID = 130, - ISNS_TAG_VIRTUAL_FABRIC_ID = 131, - ISNS_TAG_SERVER_VENDOR_OUI = 256, - ISNS_TAG_DD_SET_ID = 2049, - ISNS_TAG_DD_SET_SYMBOLIC_NAME = 2050, - ISNS_TAG_DD_SET_STATUS = 2051, - ISNS_TAG_DD_SET_NEXT_ID = 2052, - ISNS_TAG_DD_ID = 2065, - ISNS_TAG_DD_SYMBOLIC_NAME = 2066, - ISNS_TAG_DD_MEMBER_ISCSI_INDEX = 2067, - ISNS_TAG_DD_MEMBER_ISCSI_NAME = 2068, - ISNS_TAG_DD_MEMBER_FC_PORT_NAME = 2069, - ISNS_TAG_DD_MEMBER_PORTAL_INDEX = 2070, - ISNS_TAG_DD_MEMBER_PORTAL_IP_ADDR = 2071, - ISNS_TAG_DD_MEMBER_PORTAL_TCP_UDP_PORT = 2072, - ISNS_TAG_DD_FEATURES = 2078, - ISNS_TAG_DD_NEXT_ID = 2079, - - __ISNS_TAG_MAX, - - ISNS_VENDOR_SPECIFIC_SERVER_BASE = 257, /* end 384 */ - ISNS_VENDOR_SPECIFIC_ENTITY_BASE = 385, /* end 512 */ - ISNS_VENDOR_SPECIFIC_PORTAL_BASE = 513, /* end 640 */ - ISNS_VENDOR_SPECIFIC_NODE_BASE = 641, /* end 768 */ - ISNS_VENDOR_SPECIFIC_DD_BASE = 1024, /* end 1280 */ - ISNS_VENDOR_SPECIFIC_DDSET_BASE = 1281, /* end 1536 */ - ISNS_VENDOR_SPECIFIC_OTHER_BASE = 1537, /* end 2048 */ -}; - -typedef enum isns_entity_protocol { - ISNS_ENTITY_PROTOCOL_NONE = 1, - ISNS_ENTITY_PROTOCOL_ISCSI = 2, - ISNS_ENTITY_PROTOCOL_IFCP = 3, -} isns_entity_protocol_t; - -enum isns_iscsi_node_type_bits { - ISNS_ISCSI_NODE_TYPE_TARGET = 0, - ISNS_ISCSI_NODE_TYPE_INITIATOR = 1, - ISNS_ISCSI_NODE_TYPE_CONTROL = 2, -}; -#define ISNS_ISCSI_INITIATOR_MASK (1 << ISNS_ISCSI_NODE_TYPE_INITIATOR) -#define ISNS_ISCSI_TARGET_MASK (1 << ISNS_ISCSI_NODE_TYPE_TARGET) -#define ISNS_ISCSI_CONTROL_MASK (1 << ISNS_ISCSI_NODE_TYPE_CONTROL) - -enum isns_portal_port_bits { - ISNS_PORTAL_PORT_UDP = 16, -}; -#define ISNS_PORTAL_PORT_UDP_MASK (1 << ISNS_PORTAL_PORT_UDP) - -enum isns_portal_security_bits { - ISNS_PORTAL_SEC_BITMAP_VALID = 0, - ISNS_PORTAL_SEC_IPSEC_ENABLED = 1, - ISNS_PORTAL_SEC_MAIN_MODE_ENABLED = 2, - ISNS_PORTAL_SEC_AGGR_MODE_ENABLED = 3, - ISNS_PORTAL_SEC_PFS_ENABLED = 4, - ISNS_PORTAL_SEC_TRANSPORT_MODE_PREFERRED = 5, - ISNS_PORTAL_SEC_TUNNEL_MODE_PREFERRED = 6, -}; -#define ISNS_PORTAL_SEC_BITMAP_VALID_MASK (1 << ISNS_PORTAL_SEC_BITMAP_VALID) -#define ISNS_PORTAL_SEC_IPSEC_ENABLED_MASK (1 << ISNS_PORTAL_SEC_IPSEC_ENABLED) -#define ISNS_PORTAL_SEC_MAIN_MODE_ENABLED_MASK (1 << ISNS_PORTAL_SEC_MAIN_MODE_ENABLED) -#define ISNS_PORTAL_SEC_AGGR_MODE_ENABLED_MASK (1 << ISNS_PORTAL_SEC_AGGR_MODE_ENABLED) -#define ISNS_PORTAL_SEC_PFS_ENABLED_MASK (1 << ISNS_PORTAL_SEC_PFS_ENABLED) -#define ISNS_PORTAL_SEC_TRANSPORT_MODE_PREFERRED_MASK (1 << ISNS_PORTAL_SEC_TRANSPORT_MODE_PREFERRED) -#define ISNS_PORTAL_SEC_TUNNEL_MODE_PREFERRED_MASK (1 << ISNS_PORTAL_SEC_TUNNEL_MODE_PREFERRED) - -enum isns_scn_bits { - ISNS_SCN_DD_MEMBER_ADDED = 0, - ISNS_SCN_DD_MEMBER_REMOVED = 1, - ISNS_SCN_OBJECT_UPDATED = 2, - ISNS_SCN_OBJECT_ADDED = 3, - ISNS_SCN_OBJECT_REMOVED = 4, - ISNS_SCN_MANAGEMENT_REGISTRATION = 5, - ISNS_SCN_TARGET_AND_SELF_ONLY = 6, - ISNS_SCN_INITIATOR_AND_SELF_ONLY = 7, -}; -#define ISNS_SCN_DD_MEMBER_ADDED_MASK (1 << ISNS_SCN_DD_MEMBER_ADDED) -#define ISNS_SCN_DD_MEMBER_REMOVED_MASK (1 << ISNS_SCN_DD_MEMBER_REMOVED) -#define ISNS_SCN_OBJECT_UPDATED_MASK (1 << ISNS_SCN_OBJECT_UPDATED) -#define ISNS_SCN_OBJECT_ADDED_MASK (1 << ISNS_SCN_OBJECT_ADDED) -#define ISNS_SCN_OBJECT_REMOVED_MASK (1 << ISNS_SCN_OBJECT_REMOVED) -#define ISNS_SCN_MANAGEMENT_REGISTRATION_MASK (1 << ISNS_SCN_MANAGEMENT_REGISTRATION) -#define ISNS_SCN_TARGET_AND_SELF_ONLY_MASK (1 << ISNS_SCN_TARGET_AND_SELF_ONLY) -#define ISNS_SCN_INITIATOR_AND_SELF_ONLY_MASK (1 << ISNS_SCN_INITIATOR_AND_SELF_ONLY) - -enum isns_dds_status_bits { - ISNS_DDS_ENABLED = 0, -}; -#define ISNS_DDS_ENABLED_MASK (1 << ISNS_DDS_ENABLED) - -enum isns_dd_feature_bits { - ISNS_DD_BOOT_LIST_ENABLED = 0, -}; -#define ISNS_DD_BOOT_LIST_ENABLED_MASK (1 << ISN_BOOT_LIST_DDS_ENABLED) - -#define ISNS_PAD(len) (((len) + 3) & ~3UL) - -/* - * iSNS auth block - */ -#define ISNS_AUTHBLK_SIZE 20 -struct isns_authblk { - uint32_t iab_bsd; /* 16bit in SLP */ - uint32_t iab_length; /* 16bit in SLP */ - uint64_t iab_timestamp; /* 32bit in SLP */ - uint32_t iab_spi_len; /* 16bit in SLP */ - - char * iab_spi; - void * iab_sig; - uint32_t iab_sig_len; -} __attribute__((packed)); - -#define ISNS_AUTH_TYPE_SHA1_DSA 0x0002 - -#endif /* ISNS_PROTO_H */ |