Blame IbaTools/opasw/opaswcommon/opaswmetadata.h

Packit 857059
/* BEGIN_ICS_COPYRIGHT3 ****************************************
Packit 857059
Packit 857059
Copyright (c) 2015-2017, Intel Corporation
Packit 857059
Packit 857059
Redistribution and use in source and binary forms, with or without
Packit 857059
modification, are permitted provided that the following conditions are met:
Packit 857059
Packit 857059
    * Redistributions of source code must retain the above copyright notice,
Packit 857059
      this list of conditions and the following disclaimer.
Packit 857059
    * Redistributions in binary form must reproduce the above copyright
Packit 857059
      notice, this list of conditions and the following disclaimer in the
Packit 857059
      documentation and/or other materials provided with the distribution.
Packit 857059
    * Neither the name of Intel Corporation nor the names of its contributors
Packit 857059
      may be used to endorse or promote products derived from this software
Packit 857059
      without specific prior written permission.
Packit 857059
Packit 857059
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Packit 857059
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Packit 857059
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Packit 857059
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
Packit 857059
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit 857059
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Packit 857059
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Packit 857059
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Packit 857059
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit 857059
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit 857059
Packit 857059
** END_ICS_COPYRIGHT3   ****************************************/
Packit 857059
Packit 857059
/* [ICS VERSION STRING: unknown] */
Packit 857059
Packit 857059
/***********************
Packit 857059
 *   MACROS
Packit 857059
 ***********************/
Packit 857059
Packit 857059
#ifndef _XEDGE_METADATA_H_
Packit 857059
#define _XEDGE_METADATA_H_
Packit 857059
Packit 857059
Packit 857059
/***********************
Packit 857059
 *   CONSTANTS
Packit 857059
 ***********************/
Packit 857059
Packit 857059
Packit 857059
#define			ENC_DISABLED				0
Packit 857059
#define			ENC_ENABLED					1
Packit 857059
Packit 857059
#define			ENC_NO						0
Packit 857059
#define			ENC_YES						1
Packit 857059
Packit 857059
#define			ENC_MOD_TYPE_EDGE			0
Packit 857059
#define			ENC_MOD_TYPE_SPINE			1
Packit 857059
#define			ENC_MOD_TYPE_LEAF			2
Packit 857059
Packit 857059
#define			ENC_PORT_TYPE_DISC			1
Packit 857059
#define			ENC_PORT_TYPE_FIXED			2
Packit 857059
#define			ENC_PORT_TYPE_VARIABLE		3
Packit 857059
#define			ENC_PORT_TYPE_QSFP			4
Packit 857059
#define			ENC_PORT_TYPE_SIPHx16		5
Packit 857059
Packit 857059
#define			ENC_VLCAP_VL0				1
Packit 857059
#define			ENC_VLCAP_VL0_1				2
Packit 857059
#define			ENC_VLCAP_VL0_2				3
Packit 857059
#define			ENC_VLCAP_VL0_3				4
Packit 857059
#define			ENC_VLCAP_VL0_4				5
Packit 857059
#define			ENC_VLCAP_VL0_5				6
Packit 857059
#define			ENC_VLCAP_VL0_6				7
Packit 857059
#define			ENC_VLCAP_VL0_7				8
Packit 857059
#define			ENC_VLCAP_VL0_8				9
Packit 857059
#define			ENC_VLCAP_VL0_9				10
Packit 857059
#define			ENC_VLCAP_VL0_10			11
Packit 857059
#define			ENC_VLCAP_VL0_11			12
Packit 857059
#define			ENC_VLCAP_VL0_12			13
Packit 857059
#define			ENC_VLCAP_VL0_13			14
Packit 857059
#define			ENC_VLCAP_VL0_14			15
Packit 857059
Packit 857059
#define			ENC_MTU_CAP_512				2
Packit 857059
#define			ENC_MTU_CAP_1024			3
Packit 857059
#define			ENC_MTU_CAP_2048			4
Packit 857059
#define			ENC_MTU_CAP_4096			5
Packit 857059
#define			ENC_MTU_CAP_8192			8
Packit 857059
#define			ENC_MTU_CAP_10240			9
Packit 857059
Packit 857059
#define			ENC_LINK_SPEED_12G			1
Packit 857059
#define			ENC_LINK_SPEED_25G			2
Packit 857059
#define			ENC_LINK_SPEED_12G_25G		3
Packit 857059
Packit 857059
#define			ENC_LINK_WIDTH_1X			1
Packit 857059
#define			ENC_LINK_WIDTH_2X			2
Packit 857059
#define			ENC_LINK_WIDTH_2X_1X		3
Packit 857059
#define			ENC_LINK_WIDTH_3X			4
Packit 857059
#define			ENC_LINK_WIDTH_3X_1X		5
Packit 857059
#define			ENC_LINK_WIDTH_3X_2X		6
Packit 857059
#define			ENC_LINK_WIDTH_3X_2X_1X		7
Packit 857059
#define			ENC_LINK_WIDTH_4X			8
Packit 857059
#define			ENC_LINK_WIDTH_4X_1X		9
Packit 857059
#define			ENC_LINK_WIDTH_4X_2X		10
Packit 857059
#define			ENC_LINK_WIDTH_4X_2X_1X		11
Packit 857059
#define			ENC_LINK_WIDTH_4X_3X		12
Packit 857059
#define			ENC_LINK_WIDTH_4X_3X_1X		13
Packit 857059
#define			ENC_LINK_WIDTH_4X_3X_2X		14
Packit 857059
#define			ENC_LINK_WIDTH_4X_3X_2X_1X	15
Packit 857059
Packit 857059
#define			ENC_POLARITY_NORMAL			0
Packit 857059
#define			ENC_POLARITY_REVERSE		1
Packit 857059
Packit 857059
#define			ENC_LREV_4X_MODE_NORMAL		0
Packit 857059
#define			ENC_LREV_4X_MODE_REVERSE	4
Packit 857059
Packit 857059
#define			ENC_LREV_8X_MODE_NORMAL		0
Packit 857059
#define			ENC_LREV_8X_MODE_REV_UPPER	1
Packit 857059
#define			ENC_LREV_8X_MODE_REV_LOWER	4
Packit 857059
#define			ENC_LREV_8X_MODE_REV_ALL	5
Packit 857059
#define			ENC_LREV_8X_MODE_SWAP		10
Packit 857059
#define			ENC_LREV_8X_MODE_SW_REV_LOWER 11
Packit 857059
#define			ENC_LREV_8X_MODE_SW_REV_UPPER 14
Packit 857059
#define			ENC_LREV_8X_MODE_SW_REV_ALL 15
Packit 857059
Packit 857059
#define			ENC_PKT_FOR_MODE_CUT_THRU	0
Packit 857059
#define			ENC_PKT_FOR_MODE_ST_FW		1
Packit 857059
Packit 857059
#define			ENC_DISTRIBUTION_BAL		0
Packit 857059
#define			ENC_DISTRIBUTION_VL0_LDED	1
Packit 857059
#define			ENC_DISTRIBUTION_VLH_LDED	2
Packit 857059
#define			ENC_DISTRIBUTION_UP_ELVTR	3
Packit 857059
#define			ENC_DISTRIBUTION_DWN_ELVTR	4
Packit 857059
#define			ENC_DISTRIBUTION_EX_BAL		5
Packit 857059
Packit 857059
#define			ENC_DMSEL_DFE5				0
Packit 857059
#define			ENC_DMSEL_DFE2				1
Packit 857059
#define			ENC_DMSEL_NRZ				2
Packit 857059
#define			ENC_DMSEL_NRZLP				3
Packit 857059
Packit 857059
#define			ENC_SLEW_32PS				0
Packit 857059
#define			ENC_SLEW_50PS				3
Packit 857059
#define			ENC_SLEW_54PS				5
Packit 857059
#define			ENC_SLEW_88PS				7
Packit 857059
Packit 857059
#define			ENC_FM_BUTTON_STATE_ALL		0
Packit 857059
#define			ENC_FM_BUTTON_STATE_NONE	1
Packit 857059
#define			ENC_FM_BUTTON_STATE_PORT1	2
Packit 857059
#define			ENC_FM_BUTTON_STATE_FM_ENABLED 3
Packit 857059
Packit 857059
#define			ENC_CRC_16b					0
Packit 857059
#define			ENC_CRC_14b_16b				1
Packit 857059
#define			ENC_CRC_48b_16b				2
Packit 857059
#define			ENC_CRC_48b_14b_16b			3
Packit 857059
#define			ENC_CRC_PERLANE_16b			4
Packit 857059
#define			ENC_CRC_PERLANE_14b_16b		5
Packit 857059
#define			ENC_CRC_PERLANE_48b_16b		6
Packit 857059
#define			ENC_CRC_PERLANE_48b_14b_16b	7
Packit 857059
Packit 857059
#define			SYSMETATABLESIZE			32
Packit 857059
#define			PORTMETATABLESIZE			43
Packit 857059
Packit 857059
#define			DT_INTVAL					1
Packit 857059
#define			DT_ASCII_STRING				2
Packit 857059
#define			DT_NUMERIC_STRING			3
Packit 857059
Packit 857059
#define			NODE_GUID					1
Packit 857059
#define			SYSTEM_IMAGE_GUID			2
Packit 857059
Packit 857059
/***********************
Packit 857059
 *   DATA TYPES
Packit 857059
 ***********************/
Packit 857059
Packit 857059
typedef struct table_meta_data_s {
Packit 857059
	// index is the actual index in the table
Packit 857059
	uint16		length;
Packit 857059
	uint16		start;
Packit 857059
	uint16		protected;
Packit 857059
	uint16		dataType;
Packit 857059
	char		field[256];
Packit 857059
	
Packit 857059
} table_meta_data_t;
Packit 857059
Packit 857059
typedef struct table_parsed_data_s {
Packit 857059
	// index is the actual index in the table
Packit 857059
	uint32		lengthInBytes;
Packit 857059
	uint16		dataType;
Packit 857059
	union {
Packit 857059
		uint8		*arrayPtr;
Packit 857059
		uint32		intVal;
Packit 857059
	} val;
Packit 857059
} table_parsed_data_t;
Packit 857059
Packit 857059
Packit 857059
/***********************
Packit 857059
 *   EXTERNS
Packit 857059
 ***********************/
Packit 857059
Packit 857059
extern table_meta_data_t systemMetaData[];
Packit 857059
extern table_meta_data_t portMetaData[];
Packit 857059
extern table_meta_data_t rxPresetsMetaData[];
Packit 857059
extern table_meta_data_t txPresetsMetaData[];
Packit 857059
extern table_meta_data_t qsfpAttenuationMetaData[];
Packit 857059
extern table_meta_data_t variableSettingsMetaData[];
Packit 857059
extern const int systemMetaDataSize;
Packit 857059
extern int portMetaDataSize;
Packit 857059
extern int rxPresetsMetaDataSize;
Packit 857059
extern int txPresetsMetaDataSize;
Packit 857059
extern int qsfpAttenuationMetaDataSize;
Packit 857059
extern int variableSettingsMetaDataSize;
Packit 857059
Packit 857059
Packit 857059
Packit 857059
/***********************
Packit 857059
 *   FUNCTION PROTOTYPES
Packit 857059
 ***********************/
Packit 857059
Packit 857059
int32 getMetaDataIndexByField (table_meta_data_t *table, int tableSize, const char *field);
Packit 857059
FSTATUS parseDataTable(table_meta_data_t *metaData, uint8 *dataBuffer, uint16 tableLen, table_parsed_data_t *parsedData, int showme);
Packit 857059
uint32 getModuleType(struct omgt_port *port, IB_PATH_RECORD *path, uint16 sessionID);
Packit 857059
uint32 getNumPorts(struct omgt_port *port, IB_PATH_RECORD *path, uint16 sessionID);
Packit 857059
FSTATUS getNodeDescription(struct omgt_port *port, IB_PATH_RECORD *path, uint16 sessionID, uint8 *nodeDesc);
Packit 857059
FSTATUS getFmPushButtonState(struct omgt_port *port, IB_PATH_RECORD *path, uint16 sessionID, uint32 *state);
Packit 857059
FSTATUS getGuid(struct omgt_port *port, IB_PATH_RECORD *path, uint16 sessionID, EUI64 *guid, int which);
Packit 857059
Packit 857059
#endif /* _XEDGE_METADATA_H_ */