164 lines
		
	
	
	
		
			4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			164 lines
		
	
	
	
		
			4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * Copyright (c) 2005-2009 Brocade Communications Systems, Inc. | ||
|  |  * All rights reserved | ||
|  |  * www.brocade.com | ||
|  |  * | ||
|  |  * Linux driver for Brocade Fibre Channel Host Bus Adapter. | ||
|  |  * | ||
|  |  * This program is free software; you can redistribute it and/or modify it | ||
|  |  * under the terms of the GNU General Public License (GPL) Version 2 as | ||
|  |  * published by the Free Software Foundation | ||
|  |  * | ||
|  |  * This program is distributed in the hope that it will be useful, but | ||
|  |  * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||
|  |  * General Public License for more details. | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __FDMI_H__
 | ||
|  | #define __FDMI_H__
 | ||
|  | 
 | ||
|  | #include <protocol/types.h>
 | ||
|  | #include <protocol/fc.h>
 | ||
|  | #include <protocol/ct.h>
 | ||
|  | 
 | ||
|  | #pragma pack(1)
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI Command Codes | ||
|  |  */ | ||
|  | #define	FDMI_GRHL		0x0100
 | ||
|  | #define	FDMI_GHAT		0x0101
 | ||
|  | #define	FDMI_GRPL		0x0102
 | ||
|  | #define	FDMI_GPAT		0x0110
 | ||
|  | #define	FDMI_RHBA		0x0200
 | ||
|  | #define	FDMI_RHAT		0x0201
 | ||
|  | #define	FDMI_RPRT		0x0210
 | ||
|  | #define	FDMI_RPA		0x0211
 | ||
|  | #define	FDMI_DHBA		0x0300
 | ||
|  | #define	FDMI_DPRT		0x0310
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI reason codes | ||
|  |  */ | ||
|  | #define	FDMI_NO_ADDITIONAL_EXP		0x00
 | ||
|  | #define	FDMI_HBA_ALREADY_REG		0x10
 | ||
|  | #define	FDMI_HBA_ATTRIB_NOT_REG		0x11
 | ||
|  | #define	FDMI_HBA_ATTRIB_MULTIPLE	0x12
 | ||
|  | #define	FDMI_HBA_ATTRIB_LENGTH_INVALID	0x13
 | ||
|  | #define	FDMI_HBA_ATTRIB_NOT_PRESENT	0x14
 | ||
|  | #define	FDMI_PORT_ORIG_NOT_IN_LIST	0x15
 | ||
|  | #define	FDMI_PORT_HBA_NOT_IN_LIST	0x16
 | ||
|  | #define	FDMI_PORT_ATTRIB_NOT_REG	0x20
 | ||
|  | #define	FDMI_PORT_NOT_REG		0x21
 | ||
|  | #define	FDMI_PORT_ATTRIB_MULTIPLE	0x22
 | ||
|  | #define	FDMI_PORT_ATTRIB_LENGTH_INVALID	0x23
 | ||
|  | #define	FDMI_PORT_ALREADY_REGISTEREED	0x24
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI Transmission Speed Mask values | ||
|  |  */ | ||
|  | #define	FDMI_TRANS_SPEED_1G		0x00000001
 | ||
|  | #define	FDMI_TRANS_SPEED_2G		0x00000002
 | ||
|  | #define	FDMI_TRANS_SPEED_10G		0x00000004
 | ||
|  | #define	FDMI_TRANS_SPEED_4G		0x00000008
 | ||
|  | #define	FDMI_TRANS_SPEED_8G		0x00000010
 | ||
|  | #define	FDMI_TRANS_SPEED_16G		0x00000020
 | ||
|  | #define	FDMI_TRANS_SPEED_UNKNOWN	0x00008000
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI HBA attribute types | ||
|  |  */ | ||
|  | enum fdmi_hba_attribute_type { | ||
|  | 	FDMI_HBA_ATTRIB_NODENAME = 1,	/* 0x0001 */ | ||
|  | 	FDMI_HBA_ATTRIB_MANUFACTURER,	/* 0x0002 */ | ||
|  | 	FDMI_HBA_ATTRIB_SERIALNUM,	/* 0x0003 */ | ||
|  | 	FDMI_HBA_ATTRIB_MODEL,		/* 0x0004 */ | ||
|  | 	FDMI_HBA_ATTRIB_MODEL_DESC,	/* 0x0005 */ | ||
|  | 	FDMI_HBA_ATTRIB_HW_VERSION,	/* 0x0006 */ | ||
|  | 	FDMI_HBA_ATTRIB_DRIVER_VERSION,	/* 0x0007 */ | ||
|  | 	FDMI_HBA_ATTRIB_ROM_VERSION,	/* 0x0008 */ | ||
|  | 	FDMI_HBA_ATTRIB_FW_VERSION,	/* 0x0009 */ | ||
|  | 	FDMI_HBA_ATTRIB_OS_NAME,	/* 0x000A */ | ||
|  | 	FDMI_HBA_ATTRIB_MAX_CT,		/* 0x000B */ | ||
|  | 
 | ||
|  | 	FDMI_HBA_ATTRIB_MAX_TYPE | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI Port attribute types | ||
|  |  */ | ||
|  | enum fdmi_port_attribute_type { | ||
|  | 	FDMI_PORT_ATTRIB_FC4_TYPES = 1,	/* 0x0001 */ | ||
|  | 	FDMI_PORT_ATTRIB_SUPP_SPEED,	/* 0x0002 */ | ||
|  | 	FDMI_PORT_ATTRIB_PORT_SPEED,	/* 0x0003 */ | ||
|  | 	FDMI_PORT_ATTRIB_FRAME_SIZE,	/* 0x0004 */ | ||
|  | 	FDMI_PORT_ATTRIB_DEV_NAME,	/* 0x0005 */ | ||
|  | 	FDMI_PORT_ATTRIB_HOST_NAME,	/* 0x0006 */ | ||
|  | 
 | ||
|  | 	FDMI_PORT_ATTR_MAX_TYPE | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI attribute | ||
|  |  */ | ||
|  | struct fdmi_attr_s { | ||
|  | 	u16        type; | ||
|  | 	u16        len; | ||
|  | 	u8         value[1]; | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * HBA Attribute Block | ||
|  |  */ | ||
|  | struct fdmi_hba_attr_s { | ||
|  | 	u32        attr_count;	/* # of attributes */ | ||
|  | 	struct fdmi_attr_s     hba_attr;	/* n attributes */ | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Registered Port List | ||
|  |  */ | ||
|  | struct fdmi_port_list_s { | ||
|  | 	u32        num_ports;	/* number Of Port Entries */ | ||
|  | 	wwn_t           port_entry;	/* one or more */ | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Port Attribute Block | ||
|  |  */ | ||
|  | struct fdmi_port_attr_s { | ||
|  | 	u32        attr_count;	/* # of attributes */ | ||
|  | 	struct fdmi_attr_s     port_attr;	/* n attributes */ | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI Register HBA Attributes | ||
|  |  */ | ||
|  | struct fdmi_rhba_s { | ||
|  | 	wwn_t           hba_id;		/* HBA Identifier */ | ||
|  | 	struct fdmi_port_list_s port_list;	/* Registered Port List */ | ||
|  | 	struct fdmi_hba_attr_s hba_attr_blk;	/* HBA attribute block */ | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI Register Port | ||
|  |  */ | ||
|  | struct fdmi_rprt_s { | ||
|  | 	wwn_t           hba_id;		/* HBA Identifier */ | ||
|  | 	wwn_t           port_name;	/* Port wwn */ | ||
|  | 	struct fdmi_port_attr_s port_attr_blk;	/* Port Attr Block */ | ||
|  | }; | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * FDMI Register Port Attributes | ||
|  |  */ | ||
|  | struct fdmi_rpa_s { | ||
|  | 	wwn_t           port_name;	/* port wwn */ | ||
|  | 	struct fdmi_port_attr_s port_attr_blk;	/* Port Attr Block */ | ||
|  | }; | ||
|  | 
 | ||
|  | #pragma pack()
 | ||
|  | 
 | ||
|  | #endif
 |