#ifndef NCSI_CMDS_H
#define NCSI_CMDS_H
#include "bcmtype.h"
#include "ncsi_basic_types.h"
typedef enum NcsiGetParameterSelector
{
NCSI_PARAM_BOOTCODE_REV = 0,
NCSI_PARAM_HOST_L2_MAC,
NCSI_PARAM_ALT_HOST_L2_MAC,
NCSI_PARAM_HOST_ISCSI_MAC,
NCSI_PARAM_ALT_HOST_ISCSI_MAC,
NCSI_PARAM_PXE_BOOT_REV,
NCSI_PARAM_ISCSI_BOOT_REV,
NCSI_PARAM_PCI_DEVICE_ID,
NCSI_PARAM_PCI_VENDOR_ID,
NCSI_PARAM_PCI_SUBSYSTEM_ID,
NCSI_PARAM_PCI_SUBSYSTEM_VENDOR_ID
}NcsiGetParameterSelector_t;
#define NCSI_CMD_CHANNEL_ID_MAX_VALUE 1
#define NCSI_CMD_HEADER_SIZE 16
typedef struct NcsiControlPktHeader
#if defined (BIG_ENDIAN)
{
u16_t PlusTwoPadding;
u8_t DestAddr[SIZEOF_MAC_ADDRESS];
u8_t SrcAddr[SIZEOF_MAC_ADDRESS];
u16_t EtherType;
#define NCSI_ETHER_TYPE_ID (0x88F8)
u8_t McId;
u8_t HeaderRevNum;
u8_t Reserved0;
u8_t InstanceId;
u8_t TypeCode;
#define NCSI_CMD_TYPE_AEN (0xFF)
#define NCSI_CMD_TYPE_MASK (0x7F)
#define NCSI_CMD_TYPE_CLEAR_INITIAL_STATE (0x00)
#define NCSI_CMD_TYPE_PACKAGE_SELECT (0x01)
#define NCSI_CMD_TYPE_PACKAGE_DESELECT (0x02)
#define NCSI_CMD_TYPE_ENABLE_CHANNEL (0x03)
#define NCSI_CMD_TYPE_DISABLE_CHANNEL (0x04)
#define NCSI_CMD_TYPE_RESET_CHANNEL (0x05)
#define NCSI_CMD_TYPE_ENABLE_CHANNEL_EGRESS_TX (0x06)
#define NCSI_CMD_TYPE_DISABLE_CHANNEL_EGRESS_TX (0x07)
#define NCSI_CMD_TYPE_ENABLE_AEN (0x08)
#define NCSI_CMD_TYPE_SET_LINK (0x09)
#define NCSI_CMD_TYPE_GET_LINK_STATUS (0x0A)
#define NCSI_CMD_TYPE_SET_VLAN_FILTERS (0x0B)
#define NCSI_CMD_TYPE_ENABLE_VLAN (0x0C)
#define NCSI_CMD_TYPE_DISABLE_VLAN (0x0D)
#define NCSI_CMD_TYPE_SET_MAC_ADDRESS (0x0E)
#define NCSI_CMD_TYPE_ENABLE_BROADCAST_PKT_FILTER (0x10)
#define NCSI_CMD_TYPE_DISABLE_BROADCAST_PKT_FILTER (0x11)
#define NCSI_CMD_TYPE_ENABLE_MULTICAST_PKT_FILTER (0x12)
#define NCSI_CMD_TYPE_DISABLE_MULTICAST_PKT_FILTER (0x13)
#define NCSI_CMD_TYPE_SET_NCSI_FLOW_CONTROL (0x14)
#define NCSI_CMD_TYPE_GET_VERSION_ID (0x15)
#define NCSI_CMD_TYPE_GET_CAPABILITIES (0x16)
#define NCSI_CMD_TYPE_GET_PARAMETERS (0x17)
#define NCSI_CMD_TYPE_GET_IF_STATISTICS (0x18)
#define NCSI_CMD_TYPE_GET_NCSI_STATISTICS (0x19)
#define NCSI_CMD_TYPE_GET_NCSI_PASS_THROUGH_STATISTICS (0x1A)
#define NCSI_CMD_TYPE_LAST_NON_OEM_CMD NCSI_CMD_TYPE_GET_NCSI_PASS_THROUGH_STATISTICS
#define NCSI_CMD_TYPE_OEM (0x50)
#define NCSI_CMD_RESPONSE_BIT (0x80)
u8_t ChannelId;
#define NCSI_CMD_CHANNEL_ID_MASK 0x1F
#define NCSI_CMD_PACKAGE_ID_MASK 0xE0
u16_t PayloadSize;
u32_t Reserved1[2];
} NcsiRmiiControlPktHeader_t;
#elif defined (LITTLE_ENDIAN)
{
u8_t DestAddr[SIZEOF_MAC_ADDRESS+2];
u8_t SrcAddr[SIZEOF_MAC_ADDRESS-2];
u16_t EtherType;
#define NCSI_ETHER_TYPE_ID (0x88F8)
u8_t SrcAddr_lsw[2];
u8_t InstanceId;
u8_t Reserved0;
u8_t HeaderRevNum;
u8_t McId;
u16_t PayloadSize;
u8_t ChannelId;
#define NCSI_CMD_PACKAGE_ID_MASK 0xE0
#define NCSI_CMD_CHANNEL_ID_MASK 0x1F
u8_t TypeCode;
#define NCSI_CMD_RESPONSE_BIT (0x80)
#define NCSI_CMD_TYPE_OEM (0x50)
#define NCSI_CMD_TYPE_LAST_NON_OEM_CMD NCSI_CMD_TYPE_GET_NCSI_PASS_THROUGH_STATISTICS
#define NCSI_CMD_TYPE_GET_NCSI_PASS_THROUGH_STATISTICS (0x1A)
#define NCSI_CMD_TYPE_GET_NCSI_STATISTICS (0x19)
#define NCSI_CMD_TYPE_GET_IF_STATISTICS (0x18)
#define NCSI_CMD_TYPE_GET_PARAMETERS (0x17)
#define NCSI_CMD_TYPE_GET_CAPABILITIES (0x16)
#define NCSI_CMD_TYPE_GET_VERSION_ID (0x15)
#define NCSI_CMD_TYPE_SET_NCSI_FLOW_CONTROL (0x14)
#define NCSI_CMD_TYPE_DISABLE_MULTICAST_PKT_FILTER (0x13)
#define NCSI_CMD_TYPE_ENABLE_MULTICAST_PKT_FILTER (0x12)
#define NCSI_CMD_TYPE_DISABLE_BROADCAST_PKT_FILTER (0x11)
#define NCSI_CMD_TYPE_ENABLE_BROADCAST_PKT_FILTER (0x10)
#define NCSI_CMD_TYPE_SET_MAC_ADDRESS (0x0E)
#define NCSI_CMD_TYPE_DISABLE_VLAN (0x0D)
#define NCSI_CMD_TYPE_ENABLE_VLAN (0x0C)
#define NCSI_CMD_TYPE_SET_VLAN_FILTERS (0x0B)
#define NCSI_CMD_TYPE_GET_LINK_STATUS (0x0A)
#define NCSI_CMD_TYPE_SET_LINK (0x09)
#define NCSI_CMD_TYPE_ENABLE_AEN (0x08)
#define NCSI_CMD_TYPE_DISABLE_CHANNEL_EGRESS_TX (0x07)
#define NCSI_CMD_TYPE_ENABLE_CHANNEL_EGRESS_TX (0x06)
#define NCSI_CMD_TYPE_RESET_CHANNEL (0x05)
#define NCSI_CMD_TYPE_DISABLE_CHANNEL (0x04)
#define NCSI_CMD_TYPE_ENABLE_CHANNEL (0x03)
#define NCSI_CMD_TYPE_PACKAGE_DESELECT (0x02)
#define NCSI_CMD_TYPE_PACKAGE_SELECT (0x01)
#define NCSI_CMD_TYPE_CLEAR_INITIAL_STATE (0x00)
#define NCSI_CMD_TYPE_MASK (0x7F)
#define NCSI_CMD_TYPE_AEN (0xFF)
u32_t Reserved1[2];
}
NcsiRmiiControlPktHeader_t;
#endif
typedef NcsiRmiiControlPktHeader_t *pNcsiRmiiControlPktHeader_t;
#define NCSI_DEFS_SIZE_OF_NCSI_FRAME_HEADER (sizeof (NcsiRmiiControlPktHeader_t))
typedef struct FwTestCmdPayload
{
u32_t OperationType;
#define NCSI_TEST_READ 0x0
#define NCSI_TEST_WRITE 0x1
#define NCSI_TEST_READ_FW_STATE 0x2
#define NCSI_TEST_SAVE_SET_OS_PRES_FLAG 0x3
#define NCSI_TEST_RESTORE_OS_PRES_FLAG 0x4
#define NCSI_TEST_SAVE_SET_EXCEED_LOW_POWER_FLAG 0x5
#define NCSI_TEST_RESTORE_EXCEED_LOW_POWER_FLAG 0x6
union {
struct {
u32_t Address;
u32_t WordCount;
} Read;
struct {
u32_t Address;
u32_t WordCount;
u32_t Value;
} Write;
} OperationParameters;
} FwTestCmdPayload_t;
typedef enum PhyPrioritySel
{
PHY_PRI_HW_PIN,
PHY_PRI_COPPER_FIRST,
PHY_PRI_XAUI_FIRST,
PHY_PRI_COPPER_ONLY,
PHY_PRI_XAUI_ONLY
}PhyPrioritySel_t;
#define NCSI_CMD_SET_PHY_PRIORITY_RSP_PAYLOAD_VERSION 0
typedef struct SetDualMediaParametersPayload
#if defined (BIG_ENDIAN)
{
u8_t Reserved[3];
u8_t PhyPrioritySelection;
} SetDualMediaParametersPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u8_t PhyPrioritySelection;
u8_t Reserved[3];
}
SetDualMediaParametersPayload_t;
#endif
typedef struct NcsiOemGetDualMediaParametersPayload
#if defined (BIG_ENDIAN)
{
u16_t Reserved;
u8_t PhySelection;
u8_t PhyPrioritySelection;
} NcsiOemGetDualMediaParametersPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u8_t PhyPrioritySelection;
u8_t PhySelection;
u16_t Reserved;
}
NcsiOemGetDualMediaParametersPayload_t;
#endif
#define NCSI_CMD_SET_MAC_OEM_CMD_PAYLOAD_VERSION 0
typedef struct BrcmOemCmdRspHeader
{
#if defined (BIG_ENDIAN)
u8_t PayloadVersion;
u8_t CommandType;
#define BRCM_OEM_SET_ALT_HOST_MAC_ADDRESS_CMD 0x00
#define BRCM_OEM_GET_NCSI_PARAMETERS_CMD 0x01
#define BRCM_OEM_NCSI_TEST_CMD 0x02
#define BRCM_OEM_SET_PHY_PRIORITY_CMD 0x03
#define BRCM_OEM_GET_PHY_PRIORITY_CMD 0x04
u16_t PayloadLength;
u32_t Reserved;
#elif defined (LITTLE_ENDIAN)
u16_t PayloadLength;
u8_t CommandType;
#define BRCM_OEM_SET_ALT_HOST_MAC_ADDRESS_CMD 0x00
#define BRCM_OEM_GET_NCSI_PARAMETERS_CMD 0x01
#define BRCM_OEM_NCSI_TEST_CMD 0x02
#define BRCM_OEM_SET_PHY_PRIORITY_CMD 0x03
#define BRCM_OEM_GET_PHY_PRIORITY_CMD 0x04
u8_t PayloadVersion;
u32_t Reserved;
#endif
} BrcmOemCmdRspHeader_t;
typedef struct ModifyHostMacAddrCmdPayload
#if defined (BIG_ENDIAN)
{
u8_t Res;
u8_t Flags;
#define NCSI_OEM_CMD_SET_ALT_HOST_MAC_ADDR_FLAG_FIELD_ENABLE_MAC_ADDR 0x01
#define NCSI_OEM_CMD_SET_ALT_HOST_MAC_ADDR_FLAG_FIELD_ISCSI_MAC_ADDR_SELECT 0x02
u16_t MacHigh;
u16_t MacMiddle;
u16_t MacLow;
} ModifyHostMacAddrCmdPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t MacHigh;
u8_t Flags;
#define NCSI_OEM_CMD_SET_ALT_HOST_MAC_ADDR_FLAG_FIELD_ENABLE_MAC_ADDR 0x01
#define NCSI_OEM_CMD_SET_ALT_HOST_MAC_ADDR_FLAG_FIELD_ISCSI_MAC_ADDR_SELECT 0x02
u8_t Res;
u16_t MacLow;
u16_t MacMiddle;
}
ModifyHostMacAddrCmdPayload_t;
#endif
typedef union BrcmOemCmdPayload
{
ModifyHostMacAddrCmdPayload_t ModifyHostMacAddrCmd;
FwTestCmdPayload_t NsciTestCmd;
SetDualMediaParametersPayload_t SetDualMediaParametersCmd;
} BrcmOemCmdPayload_t;
#define DELL_OEM_GET_INVENTORY_CMD 0x00
#define DELL_OEM_GET_EXTENDED_CAPABILITIES_CMD 0x01
#define DELL_OEM_GET_PARTITION_INFORMATION_CMD 0x02
#define DELL_OEM_GET_FCOE_CAPABILITIES_CMD 0x03
#define DELL_OEM_GET_VIRTUAL_LINK_CMD 0x04
#define DELL_OEM_GET_LAN_STATISTICS_CMD 0x05
#define DELL_OEM_GET_FCOE_STATISTICS_CMD 0x06
#define DELL_OEM_SET_ADDR_CMD 0x07
#define DELL_OEM_GET_ADDR_CMD 0x08
#define DELL_OEM_SET_LICENSE_CMD 0x09
#define DELL_OEM_GET_LICENSE_CMD 0x0A
#define DELL_OEM_SET_PASSTHRU_CONTROL_CMD 0x0B
#define DELL_OEM_GET_PASSTHRU_CONTROL_CMD 0x0C
#define DELL_OEM_SET_PARTITION_TX_BANDWIDTH_CMD 0x0D
#define DELL_OEM_GET_PARTITION_TX_BANDWIDTH_CMD 0x0E
#define DELL_OEM_SET_MC_IP_ADDRESS_CMD 0x0F
#define DELL_OEM_GET_TEAMING_INFORMATION_CMD 0x10
#define DELL_OEM_ENABLE_PORTS_CMD 0x11
#define DELL_OEM_DISABLE_PORTS_CMD 0x12
#define DELL_OEM_GET_TEMPERATURE_CMD 0x13
#define DELL_OEM_SET_LINK_TUNING_CMD 0x14
#define DELL_OEM_ENABLE_OUTOFBOX_WOL_CMD 0x15
#define DELL_OEM_DISABLE_OUTOFBOX_WOL_CMD 0x16
#define DELL_OEM_GET_SUPP_PAYLOAD_VERSION_CMD 0x1A
#define DELL_OEM_GET_OS_DRIVER_VERSION_CMD 0x1C
#define DELL_OEM_GET_ISCSI_BOOT_INITIATOR_CONFIG_CMD 0x1D
#define DELL_OEM_SET_ISCSI_BOOT_INITIATOR_CONFIG_CMD 0x1E
#define DELL_OEM_GET_ISCSI_BOOT_TARGET_CONFIG_CMD 0x1F
#define DELL_OEM_SET_ISCSI_BOOT_TARGET_CONFIG_CMD 0x20
#define DELL_OEM_GET_FCOE_BOOT_TARGET_CONFIG_CMD 0x21
#define DELL_OEM_SET_FCOE_BOOT_TARGET_CONFIG_CMD 0x22
#define DELL_OEM_NVRAM_COMMIT_CMD 0x23
#define DELL_OEM_NVRAM_COMMIT_STATUS_CMD 0x24
#define NCSI_QLOGIC_IANA (0x113D)
#define NCSI_DELL_IANA (0x2A2)
#define DELL_OEM_PAYLOAD_V1 (1<<1)
#define DELL_OEM_PAYLOAD_V2 (1<<2)
typedef struct DellDfltCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t Pad;
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u16_t Pad;
u8_t CommandType;
u8_t PayloadVersion;
#endif
}DellDfltCmd_t;
typedef struct DellDfltCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t Pad;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u16_t Pad;
u8_t CommandType;
u8_t PayloadVersion;
#endif
} DellDfltCmdRspData_t;
typedef DellDfltCmd_t DellGetInventoryCmd_t;
typedef struct DellGetInventoryCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t MediaType;
#define MEDIA_BASE_T 0x0001
#define MEDIA_BASE_KR 0x0002
#define MEDIA_BASE_KX 0x0004
#define MEDIA_BASE_KX4 0x0008
#define MEDIA_SR 0x0010
#define MEDIA_SFP 0x0020
#define MEDIA_SFP_PLUS 0x0040
#define MEDIA_DCA 0x0080
#define MEDIA_RESERVED 0xFF00
u32_t FamilyFWVer;
#define FW_VER_MAJOR_MASK 0xFF000000
#define FW_VER_MINOR_MASK 0x00FF0000
#define FW_VER_BUILD_MASK 0x0000FF00
#define FW_VER_SUB_BUILD_MASK 0x000000FF
u32_t FamilyDrvVer;
#define DRV_FW_VER_MAJOR_MASK 0xFF000000
#define DRV_FW_VER_MINOR_MASK 0x00FF0000
#define DRV_FW_VER_BUILD_MASK 0x0000FF00
#define DRV_FW_VER_SUB_BUILD_MASK 0x000000FF
u8_t FirstInventoryLength;
u8_t FirstInventoryType;
#define INVENTORY_TYPE_DEVICE 0x0
#define INVENTORY_TYPE_VENDOR 0x1
u8_t InventoryNameBuf[];
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u16_t MediaType;
#define MEDIA_BASE_T 0x0001
#define MEDIA_BASE_KR 0x0002
#define MEDIA_BASE_KX 0x0004
#define MEDIA_BASE_KX4 0x0008
#define MEDIA_SR 0x0010
#define MEDIA_SFP 0x0020
#define MEDIA_SFP_PLUS 0x0040
#define MEDIA_DCA 0x0080
#define MEDIA_RESERVED 0xFF00
u8_t CommandType;
u8_t PayloadVersion;
u32_t FamilyFWVer;
#define FW_VER_MAJOR_MASK 0xFF000000
#define FW_VER_MINOR_MASK 0x00FF0000
#define FW_VER_BUILD_MASK 0x0000FF00
#define FW_VER_SUB_BUILD_MASK 0x000000FF
u32_t FamilyDrvVer;
#define DRV_FW_VER_MAJOR_MASK 0xFF000000
#define DRV_FW_VER_MINOR_MASK 0x00FF0000
#define DRV_FW_VER_BUILD_MASK 0x0000FF00
#define DRV_FW_VER_SUB_BUILD_MASK 0x000000FF
u8_t FirstInventoryNameBuf[2];
u8_t FirstInventoryLength;
u8_t FirstInventoryType;
#define INVENTORY_TYPE_DEVICE 0x0
#define INVENTORY_TYPE_VENDOR 0x1
u8_t InventoryNameBuf[];
#endif
} DellGetInventoryCmdRspData_t;
typedef DellDfltCmd_t DellGetExtendedCapabilitiesCmd_t;
typedef struct DellGetExtendedCapabilitiesCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t CapabilitiesHiWord;
#define CAP_PXE_SUPPORT_SUPPORT (1<< (18-16))
#define CAP_ISCSI_BOOT_SUPPORT (1<< (19-16))
#define CAP_FCOE_BOOT_SUPPORT (1<< (20-16))
#define CAP_STORAGE_BOOT_M_PROVISIONING (1<< (21-16))
#define CAP_NIC_PARTITIONING_SUPPORT (1<< (24-16))
#define CAP_SRIOV_SUPPORT (1<< (25-16))
#define CAP_DELL_LICENSE_MGR_SUPPORT (1<< (26-16))
#define CAP_IPSEC_OFFLOAD_SUPPORT (1<< (27-16))
#define CAP_MACSEC_SUPPORT (1<< (28-16))
#define CAP_RDMA_SUPPORT (1<< (29-16))
u16_t CapabilitiesLoWord;
#define CAP_VIRTUAL_ADDRESSING_SUPPORT 0x0001
#define CAP_LINK_TUNING_SUPPORT 0x0002
#define CAP_REMOTEPHY_SUPPORT 0x0004
#define CAP_OPTION_ROM_PRESENT_SUPPORT 0x0008
#define CAP_UEFI_SUPPORT 0x0010
#define CAP_WOL_SUPPORT 0x0020
#define CAP_NETWORK_MGMT_PASS_THRU_SUPPORT 0x0040
#define CAP_OS_BMC_PASS_THRU_SUPPORT 0x0080
#define CAP_EEE_SUPPORT 0x0100
#define CAP_ON_CHIP_THERMAL_SENSOR_SUPPORT 0x0200
#define CAP_TCP_OFFLOAD_SUPPORT 0x1000
#define CAP_ISCSI_OFFLOAD_SUPPORT 0x2000
#define CAP_FCOE_SUPPORT 0x4000
u8_t Reserved;
u8_t DCB_Capabilities;
#define DCB_CAP_ETS_SUPPORT 0x0001
#define DCB_CAP_PFC_SUPPORT 0x0002
#define DCB_CAP_CN_SUPPORT 0x0004
#define DCB_CAP_DCBX_SUPPORT 0x0008
u8_t NP_Capabilities;
#define NP_CAP_WOL 0x01
#define NP_CAP_VIRTUAL_LINK_CTRL 0x02
#define NP_CAP_RX_FLOW_CTRL 0x04
#define NP_CAP_TX_FLOW_CTRL 0x08
#define NP_CAP_TX_BW_CTRL_MAX 0x10
#define NP_CAP_TX_BW_CTRL_MIN 0x20
u8_t E_Switch_Capabilities;
#define E_SWITCH_CAP_VEB 0x0001
#define E_SWITCH_CAP_BIT1 0x0002
#define E_SWITCH_CAP_BIT2 0x0004
#define E_SWITCH_CAP_BPE 0x0008
#define E_SWITCH_CAP_OPEN_FLOW 0x0010
u8_t PF_num;
u8_t VF_num;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u16_t CapabilitiesHiWord;
#define CAP_PXE_SUPPORT_SUPPORT (1<< (18-16))
#define CAP_ISCSI_BOOT_SUPPORT (1<< (19-16))
#define CAP_FCOE_BOOT_SUPPORT (1<< (20-16))
#define CAP_STORAGE_BOOT_M_PROVISIONING (1<< (21-16))
#define CAP_NIC_PARTITIONING_SUPPORT (1<< (24-16))
#define CAP_SRIOV_SUPPORT (1<< (25-16))
#define CAP_DELL_LICENSE_MGR_SUPPORT (1<< (26-16))
#define CAP_IPSEC_OFFLOAD_SUPPORT (1<< (27-16))
#define CAP_MACSEC_SUPPORT (1<< (28-16))
#define CAP_RDMA_SUPPORT (1<< (29-16))
u8_t CommandType;
u8_t PayloadVersion;
u8_t DCB_Capabilities;
#define DCB_CAP_ETS_SUPPORT 0x0001
#define DCB_CAP_PFC_SUPPORT 0x0002
#define DCB_CAP_CN_SUPPORT 0x0004
#define DCB_CAP_DCBX_SUPPORT 0x0008
u8_t Reserved;
u16_t CapabilitiesLoWord;
#define CAP_VIRTUAL_ADDRESSING_SUPPORT 0x0001
#define CAP_LINK_TUNING_SUPPORT 0x0002
#define CAP_REMOTEPHY_SUPPORT 0x0004
#define CAP_OPTION_ROM_PRESENT_SUPPORT 0x0008
#define CAP_UEFI_SUPPORT 0x0010
#define CAP_WOL_SUPPORT 0x0020
#define CAP_NETWORK_MGMT_PASS_THRU_SUPPORT 0x0040
#define CAP_OS_BMC_PASS_THRU_SUPPORT 0x0080
#define CAP_EEE_SUPPORT 0x0100
#define CAP_ON_CHIP_THERMAL_SENSOR_SUPPORT 0x0200
#define CAP_TCP_OFFLOAD_SUPPORT 0x1000
#define CAP_ISCSI_OFFLOAD_SUPPORT 0x2000
#define CAP_FCOE_SUPPORT 0x4000
u8_t VF_num;
u8_t PF_num;
u8_t E_Switch_Capabilities;
#define E_SWITCH_CAP_VEB 0x0001
#define E_SWITCH_CAP_BPE 0x0008
#define E_SWITCH_CAP_OPEN_FLOW 0x0010
u8_t NP_Capabilities;
#define NP_CAP_WOL 0x01
#define NP_CAP_VIRTUAL_LINK_CTRL 0x02
#define NP_CAP_RX_FLOW_CTRL 0x04
#define NP_CAP_TX_FLOW_CTRL 0x08
#define NP_CAP_TX_BW_CTRL_MAX 0x10
#define NP_CAP_TX_BW_CTRL_MIN 0x20
#endif
} DellGetExtendedCapabilitiesCmdRspData_t;
typedef DellDfltCmd_t DellGetPartitionInfoCmd_t;
typedef struct DellGetPartitionInfoCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t Enabled_PF_num;
u8_t PartitionId;
u16_t PartitionStatus;
#define PARTITION_STATUS_PERSONALITIES_NUM_MASK 0x07
#define PARTITION_STATUS_LAN 0x08
#define PARTITION_STATUS_ISOE 0x10
#define PARTITION_STATUS_FCOE 0x20
u8_t FirstPartitionInterfaceLength;
u8_t FirstPartitionInterfaceType;
#define PARTITION_INTERFACE_LAN 0x0
#define PARTITION_INTERFACE_ISCSI 0x1
#define PARTITION_INTERFACE_FCOE 0x2
u8_t InterfaceBuf[4*2*44];
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t PartitionId;
u8_t Enabled_PF_num;
u8_t CommandType;
u8_t PayloadVersion;
u16_t PartitionStatus;
#define PARTITION_STATUS_PERSONALITIES_NUM_MASK 0x07
#define PARTITION_STATUS_LAN 0x08
#define PARTITION_STATUS_ISOE 0x10
#define PARTITION_STATUS_FCOE 0x20
u8_t FirstPartitionInterfaceType;
#define PARTITION_INTERFACE_LAN 0x0
#define PARTITION_INTERFACE_ISCSI 0x1
#define PARTITION_INTERFACE_FCOE 0x2
u8_t FirstPartitionInterfaceLength;
u8_t InterfaceBuf[4*2*44];
#endif
} DellGetPartitionInfoCmdRspData_t;
typedef DellDfltCmd_t DellGetFcoeCapabilitiesCmd_t;
typedef struct DellGetFcoeCapabilitiesCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t Reserved;
u8_t FcoeFeatureSettings;
#define FCOE_FEATURE_FCOE_SUPPORT 0x0001
u16_t MaxIoPerConnection;
u16_t MaxLoginsPerPort;
u16_t MaxExchanges;
u16_t MaxNPIV_WWN_PerPort;
u16_t MaxSupportedTargets;
u16_t MaxOutstandingCmds;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t FcoeFeatureSettings;
#define FCOE_FEATURE_FCOE_SUPPORT 0x0001
u8_t Reserved;
u8_t CommandType;
u8_t PayloadVersion;
u16_t MaxLoginsPerPort;
u16_t MaxIoPerConnection;
u16_t MaxNPIV_WWN_PerPort;
u16_t MaxExchanges;
u16_t MaxOutstandingCmds;
u16_t MaxSupportedTargets;
#endif
} DellGetFcoeCapabilitiesCmdRspData_t;
typedef struct DellGetVirtualLinkCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t Pad;
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t Pad;
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
#endif
}DellCmdPartition_t;
typedef DellCmdPartition_t DellGetVirtualLinkCmd_t;
typedef struct DellGetVirtualLinkCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t Status;
#define VIRTUAL_LINK_STATUS (0x1 << 0)
#define LAN_HOST_DRV_STATE_MASK (0X3 << 1)
#define LAN_HOST_DRV_NOT_IMPLEMENTED (0x0 << 1)
#define LAN_HOST_DRV_NOT_OPERATIONAL (0x1 << 1)
#define LAN_HOST_DRV_OPERATIONAL (0x2 << 1)
#define ISOE_HOST_DRV_STATE_MASK (0x3 << 3)
#define ISOE_HOST_DRV_NOT_IMPLEMENTED (0x0 << 3)
#define ISOE_HOST_DRV_NOT_OPERATIONAL (0x1 << 3)
#define ISOE_HOST_DRV_OPERATIONAL (0x2 << 3)
#define FCOE_HOST_DRV_STATE_MASK (0x3 << 5)
#define FCOE_HOST_DRV_NOT_IMPLEMENTED (0x0 << 5)
#define FCOE_HOST_DRV_NOT_OPERATIONAL (0x1 << 5)
#define FCOE_HOST_DRV_OPERATIONAL (0x2 << 5)
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t Status;
#define VIRTUAL_LINK_STATUS (0x1 << 0)
#define LAN_HOST_DRV_STATE_MASK (0X3 << 1)
#define LAN_HOST_DRV_NOT_IMPLEMENTED (0x0 << 1)
#define LAN_HOST_DRV_NOT_OPERATIONAL (0x1 << 1)
#define LAN_HOST_DRV_OPERATIONAL (0x2 << 1)
#define ISOE_HOST_DRV_STATE_MASK (0x3 << 3)
#define ISOE_HOST_DRV_NOT_IMPLEMENTED (0x0 << 3)
#define ISOE_HOST_DRV_NOT_OPERATIONAL (0x1 << 3)
#define ISOE_HOST_DRV_OPERATIONAL (0x2 << 3)
#define FCOE_HOST_DRV_STATE_MASK (0x3 << 5)
#define FCOE_HOST_DRV_NOT_IMPLEMENTED (0x0 << 5)
#define FCOE_HOST_DRV_NOT_OPERATIONAL (0x1 << 5)
#define FCOE_HOST_DRV_OPERATIONAL (0x2 << 5)
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
#endif
} DellGetVirtualLinkCmdRspData_t;
typedef DellCmdPartition_t DellGetLanStatisticsCmd_t;
typedef struct DellGetLanStatisticsCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t CountersClearedFromLastRead;
#define TOTAL_UNICAST_PKT_RCVD_CLEARED 0x01
#define TOTAL_UNICAST_PKT_XMIT_CLEARED 0x02
#define FCS_ERRORS_CLEARED 0x04
u32_t TotalUnicastPktsRcvdHi;
u32_t TotalUnicastPktsRcvdLo;
u32_t TotalUnicastPktsXmitHi;
u32_t TotalUnicastPktsXmitLo;
u32_t FCS_Errors;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t CountersClearedFromLastRead;
#define TOTAL_UNICAST_PKT_RCVD_CLEARED 0x01
#define TOTAL_UNICAST_PKT_XMIT_CLEARED 0x02
#define FCS_ERRORS_CLEARED 0x04
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
u32_t TotalUnicastPktsRcvdHi;
u32_t TotalUnicastPktsRcvdLo;
u32_t TotalUnicastPktsXmitHi;
u32_t TotalUnicastPktsXmitLo;
u32_t FCS_Errors;
#endif
} DellGetLanStatisticsCmdRspData_t;
typedef DellCmdPartition_t DellGetFcoeStatisticsCmd_t;
typedef struct DellFcoeStat
{
u32_t TotalFcoePktsRcvdHi;
u32_t TotalFcoePktsRcvdLo;
u32_t TotalFcoePktsXmitHi;
u32_t TotalFcoePktsXmitLo;
u32_t FCS_Errors;
u32_t FC_ErrCnt;
u32_t FIP_LoginFailureCnt;
}DellFcoeStat_t;
typedef struct DellGetFcoeStatisticsCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t CountersClearedFromLastRead;
#define TOTAL_UNICAST_PKT_RCVD_CLEARED 0x01
#define TOTAL_UNICAST_PKT_XMIT_CLEARED 0x02
#define FCS_ERRORS_CLEARED 0x04
#define FC_CRC_ERR_CNT_CLEARED 0x08
#define FIP_LOGIN_FAILURE_CNT_CLEARED 0x10
DellFcoeStat_t stat;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t CountersClearedFromLastRead;
#define TOTAL_UNICAST_PKT_RCVD_CLEARED 0x01
#define TOTAL_UNICAST_PKT_XMIT_CLEARED 0x02
#define FCS_ERRORS_CLEARED 0x04
#define FC_CRC_ERR_CNT_CLEARED 0x08
#define FIP_LOGIN_FAILURE_CNT_CLEARED 0x10
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
DellFcoeStat_t stat;
#endif
} DellGetFcoeStatisticsCmdRspData_t;
typedef struct DellSetAddrCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t AddrLength;
#define MAC_ADDR_LENGTH_MAX 8
u8_t AddrType;
#define MAC_ADDR_TYPE_RESERVED 0x0
#define MAC_ADDR_TYPE_LAN 0x1
#define MAC_ADDR_TYPE_ISCSI 0x2
#define MAC_ADDR_TYPE_WWN 0x3
#define MAC_ADDR_TYPE_FCOE_FIP 0x4
#define MAC_ADDR_TYPE_IB GUID 0x5
#define MAC_ADDR_TYPE_MAX 0x6
u8_t AddrBuf[MAC_ADDR_LENGTH_MAX];
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t AddrLength;
#define MAC_ADDR_LENGTH_MAX 8
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t CommandType;
u8_t PayloadVersion;
u8_t AddrBufTemp[3];
u8_t AddrType;
#define MAC_ADDR_TYPE_RESERVED 0x0
#define MAC_ADDR_TYPE_LAN 0x1
#define MAC_ADDR_TYPE_ISCSI 0x2
#define MAC_ADDR_TYPE_WWN 0x3
#define MAC_ADDR_TYPE_FCOE_FIP 0x4
#define MAC_ADDR_TYPE_IB GUID 0x5
#define MAC_ADDR_TYPE_MAX 0x6
u8_t AddrBuf[MAC_ADDR_LENGTH_MAX-3];
#endif
}DellSetAddrCmd_t;
typedef struct DellRspsPartition
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t Reserved;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t Reserved;
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t CommandType;
u8_t PayloadVersion;
#endif
} DellRspsPartition_t;
typedef DellRspsPartition_t DellSetAddrCmdRspData_t;
typedef struct DellGetAddrCmd
{
#if defined (BIG_ENDIAN)
u32_t anufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t AddrVer;
#define MAC_ADDR_VER_MAC_SOURCE_MASK 0x1
#define MAC_ADDR_VER_MAC_SOURCE_PERMANENT 0x0
#define MAC_ADDR_VER_MAC_SOURCE_VIRTUAL 0x1
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t AddrVer;
#define MAC_ADDR_VER_MAC_SOURCE_MASK 0x1
#define MAC_ADDR_VER_MAC_SOURCE_PERMANENT 0x0
#define MAC_ADDR_VER_MAC_SOURCE_VIRTUAL 0x1
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t CommandType;
u8_t PayloadVersion;
#endif
}DellGetAddrCmd_t;
typedef struct DellGetAddrCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t FirstAddrLength;
#define MAC_ADDR_LENGTH_MAX 8
u8_t FirstAddrType;
#define MAC_ADDR_TYPE_RESERVED 0x0
#define MAC_ADDR_TYPE_LAN 0x1
#define MAC_ADDR_TYPE_ISCSI 0x2
#define MAC_ADDR_TYPE_WWN 0x3
#define MAC_ADDR_TYPE_FCOE_FIP 0x4
#define MAC_ADDR_TYPE_IB GUID 0x5
#define MAC_ADDR_TYPE_MAX 0x6
u8_t AddrBuf[5*(MAC_ADDR_LENGTH_MAX + 2)];
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t FirstAddrLength;
#define MAC_ADDR_LENGTH_MAX 8
u8_t PartitionId;
#define NP_DEVICE_ID_MASK 0x18
#define NP_DEVICE_ID_MASK_SHIFT 3
#define NP_FUNC_ID_MASK 0x7
#define NP_FUNC_ID_MASK_SHIFT 0
u8_t CommandType;
u8_t PayloadVersion;
u8_t AddrBufTemp[3];
u8_t FirstAddrType;
#define MAC_ADDR_TYPE_RESERVED 0x0
#define MAC_ADDR_TYPE_LAN 0x1
#define MAC_ADDR_TYPE_ISCSI 0x2
#define MAC_ADDR_TYPE_WWN 0x3
#define MAC_ADDR_TYPE_FCOE_FIP 0x4
#define MAC_ADDR_TYPE_IB GUID 0x5
#define MAC_ADDR_TYPE_MAX 0x6
u8_t AddrBuf[5*(MAC_ADDR_LENGTH_MAX + 2)-3];
#endif
} DellGetAddrCmdRspData_t;
typedef struct DellSetLicenseCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t Reserved;
u32_t FEB;
#define FEB_ISOE 1
#define FEB_FCOE 2
u8_t EPO[24];
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u16_t Reserved;
u8_t CommandType;
u8_t PayloadVersion;
u32_t FEB;
#define FEB_ISOE 1
#define FEB_FCOE 2
u8_t EPO[24];
#endif
}DellSetLicenseCmd_t;
typedef struct DellSetLicenseCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t Reserved;
u32_t EFB;
#define EFB_ISOE 1
#define EFB_FCOE 2
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u16_t Reserved;
u8_t CommandType;
u8_t PayloadVersion;
u32_t EFB;
#define EFB_ISOE 1
#define EFB_FCOE 2
#endif
} DellSetLicenseCmdRspData_t;
typedef DellDfltCmd_t DellGetLicenseCmd_t;
typedef struct DellGetLicenseCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t StorageType;
#define LICENSE_PERSISTENT 1
u8_t Reserved;
u32_t EFB;
#define EFB_iSOE (1)
#define EFB_FCoE (2)
u32_t FCB;
#define FCB_iSOE (1)
#define FCB_FCoE (2)
u8_t UID[16];
u8_t EPO[24];
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t Reserved;
u8_t StorageType;
#define LICENSE_PERSISTENT 1
u8_t CommandType;
u8_t PayloadVersion;
u32_t EFB;
#define EFB_iSOE (1)
#define EFB_FCoE (2)
u32_t FCB;
#define FCB_iSOE (1)
#define FCB_FCoE (2)
u8_t UID[16];
u8_t EPO[24];
#endif
} DellGetLicenseCmdRspData_t;
typedef struct DellSetPassthruCtrlCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PassthruType;
#define PASSTHRU_ENABLE 1
#define PASSTHRU_MASK (1<<1)
#define OS_BMC_PASSTHRU (0<<1)
#define NETW_BMC_PASSTHRU (1<<1)
u8_t Pad;
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t Pad;
u8_t PassthruType;
#define PASSTHRU_ENABLE 1
#define PASSTHRU_MASK (1<<1)
#define OS_BMC_PASSTHRU (0<<1)
#define NETW_BMC_PASSTHRU (1<<1)
u8_t CommandType;
u8_t PayloadVersion;
#endif
}DellSetPassthruCtrlCmd_t;
typedef struct DellRspsDefault
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t Pad;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u16_t Pad;
u8_t CommandType;
u8_t PayloadVersion;
#endif
} DellRspsDefault_t;
typedef DellRspsDefault_t DellSetPassthruCtrlCmdRspData_t;
typedef struct DellGetPassthruCtrlCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PassthruType;
#define PASSTHRU_MASK (1<<1)
#define OS_BMC_PASSTHRU (0<<1)
#define NETW_BMC_PASSTHRU (1<<1)
u8_t Pad;
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t Pad;
u8_t PassthruType;
#define PASSTHRU_MASK (1<<1)
#define OS_BMC_PASSTHRU (0<<1)
#define NETW_BMC_PASSTHRU (1<<1)
u8_t CommandType;
u8_t PayloadVersion;
#endif
}DellGetPassthruCtrlCmd_t;
typedef struct DellGetPassthruCtrlCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PassthruType;
#define PASSTHRU_ENABLE 1
#define PASSTHRU_MASK (1<<1)
#define OS_BMC_PASSTHRU (0<<1)
#define NETW_BMC_PASSTHRU (1<<1)
u8_t Pad;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t Pad;
u8_t PassthruType;
#define PASSTHRU_ENABLE 1
#define PASSTHRU_MASK (1<<1)
#define OS_BMC_PASSTHRU (0<<1)
#define NETW_BMC_PASSTHRU (1<<1)
u8_t CommandType;
u8_t PayloadVersion;
#endif
} DellGetPassthruCtrlCmdRspData_t;
typedef struct DellSetPartitionTxBandwidthCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t MinBandwidth;
u8_t MaxBandwidth;
u8_t Pad[3];
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t MinBandwidth;
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
u8_t Pad[3];
u8_t MaxBandwidth;
#endif
}DellSetPartitionTxBandwidthCmd_t;
typedef DellRspsPartition_t DellSetPartitionTxBandwidthCmdRspData_t;
typedef DellCmdPartition_t DellGetPartitionTxBandwidthCmd_t;
typedef struct DellGetPartitionTxBandwidthCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t MinBandwidth;
u8_t MaxBandwidth;
u8_t Pad[3];
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t MinBandwidth;
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
u8_t Pad[3];
u8_t MaxBandwidth;
#endif
} DellGetPartitionTxBandwidthCmdRspData_t;
typedef struct DellSetMcIpAddrCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t AddrType;
#define ADDR_TYPE_IPv4 0
#define ADDR_TYPE_IPv6 1
u8_t Length;
u8_t Addr[16];
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t Length;
u8_t AddrType;
#define ADDR_TYPE_IPv4 0
#define ADDR_TYPE_IPv6 1
u8_t CommandType;
u8_t PayloadVersion;
u8_t Addr[16];
#endif
}DellSetMcIpAddrCmd_t;
typedef DellRspsDefault_t DellSetMcIpAddrCmdRspData_t;
typedef DellCmdPartition_t DellGetTeamingInfoCmd_t;
typedef struct DellGetTeamingInfoCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t TeamingInfo;
#define TEAMING_ENABLED 1
#define TEAMING_ID_MASK (0x7F << 1)
u8_t TeamLength;
u8_t TeamType;
#define TEAM_TYPE_UNKNOWNR 0x0
#define TEAM_TYPE_FAILOVER 0x1
#define TEAM_TYPE_LOAD_BALANCE 0x2
#define TEAM_TYPE_LINK_AGGREGATION 0x3
u8_t TeamName[16];
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t TeamingInfo;
u8_t PartitionId;
u8_t CommandType;
u8_t PayloadVersion;
#define TEAMING_ENABLED 1
#define TEAMING_ID_MASK (0x7F << 1)
u8_t TeamNameExtra[2];
u8_t TeamType;
#define TEAM_TYPE_UNKNOWNR 0x0
#define TEAM_TYPE_FAILOVER 0x1
#define TEAM_TYPE_LOAD_BALANCE 0x2
#define TEAM_TYPE_LINK_AGGREGATION 0x3
u8_t TeamLength;
u8_t TeamName[16-2];
#endif
} DellGetTeamingInfoCmdRspData_t;
typedef DellDfltCmd_t DellEnablePortsCmd_t;
typedef DellRspsDefault_t DellEnablePortsCmdRspData_t;
typedef DellDfltCmd_t DellDisablePortsCmd_t;
typedef DellRspsDefault_t DellDisablePortsCmdRspData_t;
typedef DellDfltCmd_t DellGetTempCmd_t;
typedef struct DellGetTempCmdRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t MaxTemp;
u8_t CurTemp;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
u8_t CurTemp;
u8_t MaxTemp;
u8_t CommandType;
u8_t PayloadVersion;
#endif
} DellGetTempCmdRspData_t;
typedef struct DellSetLinkTuningCmd
{
#if defined (BIG_ENDIAN)
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t LinkTuning[8];
u16_t Pad;
#elif defined (LITTLE_ENDIAN)
u32_t ManufacturerId;
u8_t LinkTuning_first[2];
u8_t CommandType;
u8_t PayloadVersion;
u8_t LinkTuning[4];
u16_t Pad;
u8_t LinkTuning_last[2];
#endif
}DellSetLinkTuningCmd_t;
typedef DellRspsDefault_t DellSetLinkTuningCmdRspData_t;
typedef DellDfltCmd_t DellEnableDisableOutOfBoxWolCmd_t;
typedef DellRspsDefault_t DellEnableDisableOutOfBoxWolCmdRspData_t;
#define MAX_TLV_COMMAND_SIZE (694)
typedef struct
{
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t NumOfTLVs;
u8_t buf[MAX_TLV_COMMAND_SIZE];
} DellOemCmdPartitionTLV_t;
typedef DellDfltCmd_t DellGetSupportedVerCmd_t;
typedef DellCmdPartition_t DellGetOsDriverVerCmd_t;
typedef DellCmdPartition_t DellGetiScsiInitiatorConfCmd_t;
typedef DellOemCmdPartitionTLV_t DellSetiScsiInitiatorConfCmd_t;
typedef DellCmdPartition_t DellGetiScsiTargetConfCmd_t;
typedef DellOemCmdPartitionTLV_t DellSetiScsiTargetConfCmd_t;
typedef DellCmdPartition_t DellGetFcoeTargetConfCmd_t;
typedef DellOemCmdPartitionTLV_t DellSetFcoeTargetConfCmd_t;
typedef DellDfltCmd_t DellCommitNvramCmd_t;
typedef DellDfltCmd_t DellGetCommitNvramStatusCmd_t;
typedef union DellOemCmdPayload
{
DellGetInventoryCmd_t GetInventoryCmd;
DellGetExtendedCapabilitiesCmd_t GetExtendedCapabilitiesCmd;
DellGetPartitionInfoCmd_t GetPartitionInfoCmd;
DellGetFcoeCapabilitiesCmd_t GetFcoeCapabilitiesCmd;
DellGetVirtualLinkCmd_t GetVirtualLinkCmd;
DellGetLanStatisticsCmd_t GetLanStatisticsCmd;
DellGetFcoeStatisticsCmd_t GetFcoeStatisticsCmd;
DellSetAddrCmd_t SetAddrCmd;
DellGetAddrCmd_t GetAddrCmd;
DellSetLicenseCmd_t SetLicenseCmd;
DellGetLicenseCmd_t GetLicenseCmd;
DellSetPassthruCtrlCmd_t SetPassthruCtrlCmd;
DellGetPassthruCtrlCmd_t GetPassthruCtrlCmd;
DellSetPartitionTxBandwidthCmd_t SetPartitionTxBandwidthCmd;
DellGetPartitionTxBandwidthCmd_t GetPartitionTxBandwidthCmd;
DellSetMcIpAddrCmd_t SetMcIpAddrCmd;
DellGetTeamingInfoCmd_t GetTeamingInfoCmd;
DellEnablePortsCmd_t EnablePortsCmd;
DellDisablePortsCmd_t DisablePortsCmd;
DellGetTempCmd_t GetTempCmd;
DellSetLinkTuningCmd_t SetLinkTuningCmd;
DellEnableDisableOutOfBoxWolCmd_t EnableDisableOutOfBoxWolCmd;
DellGetSupportedVerCmd_t GetSupportedVerCmd;
DellGetOsDriverVerCmd_t GetOsDriverVerCmd;
DellGetiScsiInitiatorConfCmd_t GetiScsiInitiatorConfCmd;
DellSetiScsiInitiatorConfCmd_t SetiScsiInitiatorConfCmd;
DellGetiScsiTargetConfCmd_t GetiScsiTargetConfCmd;
DellSetiScsiTargetConfCmd_t SetiScsiTargetConfCmd;
DellGetFcoeTargetConfCmd_t GetFcoeTargetConfCmd;
DellSetFcoeTargetConfCmd_t SetFcoeTargetConfCmd;
DellCommitNvramCmd_t CommitNvramCmd;
DellGetCommitNvramStatusCmd_t GetCommitNvramStatusCmd;
} DellOemCmdPayload_t;
typedef struct BrcmOemVendorData
{
BrcmOemCmdRspHeader_t BrcmOemCmdRspHeader;
BrcmOemCmdPayload_t OemPayload;
} BrcmOemVendorData_t;
typedef struct NcsiCmdOemCmdPayload
{
u32_t ManufacturerId;
BrcmOemVendorData_t VendorData;
} NcsiCmdOemCmdPayload_t;
typedef struct NcsiCmdSelectPackageCmdPayload
{
u32_t DisableHwArbitration;
#define HW_ARBITRATION_MASK 0x1
#define HW_ARBITRATION_ENABLE 0x0
#define HW_ARBITRATION_DISABLE 0x1
} NcsiCmdSelectPackageCmdPayload_t;
typedef struct NcsiCmdEnableMulticastPacketFilteringCmdPayload
{
u32_t Setting;
#define NCSI_CMD_MULTICAST_PACKET_PASSTHRU_SETTING_MASK 7
#define NCSI_CMD_MULTICAST_PACKET_PASSTHRU_SETTING_IPV6_NEIGHBOR_ADV 1
#define NCSI_CMD_MULTICAST_PACKET_PASSTHRU_SETTING_IPV6_ROUTER_ADV 2
#define NCSI_CMD_MULTICAST_PACKET_PASSTHRU_SETTING_DHCPV6 4
} NcsiCmdEnableMulticastPacketFilteringCmdPayload_t;
typedef struct NcsiCmdSetNcsiFlowControlCmdPayload
{
u32_t Setting;
#define NCSI_CMD_NCSI_FLOW_CONTROL_SETTING_ENABLE 3
#define NCSI_CMD_NCSI_FLOW_CONTROL_SETTING_DISABLE 0
} NcsiCmdSetNcsiFlowControlCmdPayload_t;
typedef struct NcsiCmdEnableVlanCmdPayload
{
u32_t Setting;
#define NCSI_CMD_ENABLE_VLAN_SETTING_VLAN_TAG_MODE 1
#define NCSI_CMD_ENABLE_VLAN_SETTING_MIXED_MODE 2
#define NCSI_CMD_ENABLE_VLAN_SETTING_PROM_VLAN_MODE 3
} NcsiCmdEnableVlanCmdPayload_t;
typedef struct NcsiCmdSetVlanCmdPayload
#if defined (BIG_ENDIAN)
{
u16_t Reserved0;
u16_t VlanTag;
u16_t Reserved1;
u8_t FilterSelector;
u8_t Enable;
} NcsiCmdSetVlanCmdPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t VlanTag;
u16_t Reserved0;
u8_t Enable;
u8_t FilterSelector;
u16_t Reserved1;
}
NcsiCmdSetVlanCmdPayload_t;
#endif
typedef struct NcsiCmdEnableAenCmdPayload
#if defined (BIG_ENDIAN)
{
u8_t Reserved[3];
u8_t AenMcId;
u32_t AenControl;
#define NCSI_CMD_ENABLE_AEN_CMD_PAYLOAD_ENABLE_LINK_CHANGED_AEN 0x1
#define NCSI_CMD_ENABLE_AEN_CMD_PAYLOAD_ENABLE_RESET_OCCURRED_AEN 0x2
#define NCSI_CMD_ENABLE_AEN_CMD_PAYLOAD_ENABLE_OS_CHANGED_AEN 0x4
} NcsiCmdEnableAenCmdPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u8_t AenMcId;
u8_t Reserved[3];
u32_t AenControl;
#define NCSI_CMD_ENABLE_AEN_CMD_PAYLOAD_ENABLE_LINK_CHANGED_AEN 0x1
#define NCSI_CMD_ENABLE_AEN_CMD_PAYLOAD_ENABLE_RESET_OCCURRED_AEN 0x2
#define NCSI_CMD_ENABLE_AEN_CMD_PAYLOAD_ENABLE_OS_CHANGED_AEN 0x4
}
NcsiCmdEnableAenCmdPayload_t;
#endif
typedef struct NcsiCmdSetMacAddrCmdPayload
#if defined (BIG_ENDIAN)
{
u16_t MacAddrHigh;
u16_t MacAddrLowHigh;
u16_t MacAddrLowLow;
u8_t MacAddrNum;
u8_t AddrTypeEnable;
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_ENABLE 0x01
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_TYPE_MASK 0xE0
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_TYPE_UNICAST 0x00
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_TYPE_MULTICAST 0x20
} NcsiCmdSetMacAddrCmdPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t MacAddrLowHigh;
u16_t MacAddrHigh;
u8_t AddrTypeEnable;
u8_t MacAddrNum;
u16_t MacAddrLowLow;
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_ENABLE 0x01
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_TYPE_MASK 0xE0
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_TYPE_UNICAST 0x00
#define NCSI_CMD_SET_MAC_ADDR_CMD_ADDR_TYPE_MULTICAST 0x20
}
NcsiCmdSetMacAddrCmdPayload_t;
#endif
typedef struct NcsiCmdSetLinkCmdPayload
{
u32_t LinkSettings;
u32_t OemLinkSettings;
} NcsiCmdSetLinkCmdPayload_t;
typedef struct NcsiCmdDisableResetChannelCmdPayload
{
u32_t Reserved;
} NcsiCmdDisableResetChannelCmdPayload_t;
typedef struct NcsiCmdEnableBroadcastPacketFilteringCmdPayload
{
u32_t FilterSettings;
#define NCSI_CMD_ENABLE_BROADCAST_PKT_PASSTHROUGH_ARP 1
#define NCSI_CMD_ENABLE_BROADCAST_PKT_PASSTHROUGH_DHCP_CLIENT 2
#define NCSI_CMD_ENABLE_BROADCAST_PKT_PASSTHROUGH_DHCP_SERVER 4
#define NCSI_CMD_ENABLE_BROADCAST_PKT_PASSTHROUGH_NETBIOS 8
} NcsiCmdEnableBroadcastPacketFilteringCmdPayload_t;
typedef NcsiCmdEnableBroadcastPacketFilteringCmdPayload_t *pNcsiCmdEnableBroadcastPacketFilteringCmdPayload_t;
typedef union NcsiCmdPayload
{
NcsiCmdDisableResetChannelCmdPayload_t ResetChannelCmdPayload;
NcsiCmdDisableResetChannelCmdPayload_t DisableChannelCmdPayload;
NcsiCmdSetMacAddrCmdPayload_t SetMacAddrPayload;
NcsiCmdSetVlanCmdPayload_t SetVlanPayload;
NcsiCmdSetLinkCmdPayload_t SetLinkPayload;
NcsiCmdEnableAenCmdPayload_t EnableAenPayload;
NcsiCmdEnableBroadcastPacketFilteringCmdPayload_t EnableBroadcastFilterPayload;
NcsiCmdSelectPackageCmdPayload_t SelectPackagePayload;
NcsiCmdSetNcsiFlowControlCmdPayload_t SetFlowControlPayload;
NcsiCmdEnableVlanCmdPayload_t EnableVlanPayload;
NcsiCmdEnableMulticastPacketFilteringCmdPayload_t EnableMulticastFilterPayload;
NcsiCmdOemCmdPayload_t OemCmdPayload;
DellOemCmdPayload_t DellOemCmdPayload;
} NcsiCmdPayload_t;
#define NCSI_CMD_DISABLE_RESET_CHANNEL_CMD_PAYLOAD_SIZE (sizeof (NcsiCmdDisableResetChannelCmdPayload_t))
#define UMPCMDPUB_SET_VLAN_CMD_PAYLOAD_SIZE (sizeof (NcsiCmdSetVlanCmdPayload_t))
#define UMPCMDPUB_SET_MAC_CMD_PAYLOAD_SIZE (sizeof (NcsiCmdSetMacAddrCmdPayload_t))
#define UMPCMDPUB_CLR_MAC_CMD_PAYLOAD_SIZE (sizeof (NcsiCmdClearMacAddrCmdPayload_t))
#define UMPCMDPUB_SET_LINK_CMD_PAYLOAD_SIZE (sizeof (NcsiCmdSetLinkCmdPayload_t))
#define UMPCMDPUB_CMD_PAYLOAD_SIZE (sizeof (NcsiCmdPayload_t))
#define UC_32_BIT_ALIGN(X) ((4 - (X & 3)) & 3)
typedef struct NcsiCmdPkt
{
NcsiRmiiControlPktHeader_t Header;
NcsiCmdPayload_t Payload;
} NcsiRmiiCmdPkt_t;
typedef NcsiRmiiCmdPkt_t *pNcsiRmiiCmdPkt_t;
#define UC_MAX_CMD_FRAME_SIZE sizeof(NcsiRmiiCmdPkt_t)
typedef struct NcsiCmdRspStatus
#if defined (BIG_ENDIAN)
{
u16_t ResponseCode;
#define NCSI_CMD_RSP_CODE_CMD_COMPLETED_OK 0
#define NCSI_CMD_RSP_CODE_CMD_FAILED 1
#define NCSI_CMD_RSP_CODE_CMD_UNAVAILABLE 2
#define NCSI_CMD_RSP_CODE_CMD_UNSUPPORTED 3
u16_t ReasonCode;
#define NCSI_CMD_RSN_CODE_NO_ERROR 0
#define NCSI_CMD_RSN_CODE_INTERFACE_INIT_REQUIRED 1
#define NCSI_CMD_RSN_CODE_PARAMETER_INVALID_OUT_OF_RANGE 2
#define NCSI_CMD_RSN_CODE_CHANNEL_NOT_READY 3
#define NCSI_CMD_RSN_CODE_PACKAGE_NOT_READY 4
#define NCSI_CMD_RSN_CODE_INVALID_PAYLOAD_LENGTH 5
#define NCSI_CMD_RSN_CODE_VLAN_TAG_OF_0_IS_INVALID ((NCSI_CMD_TYPE_SET_VLAN_FILTERS << 8) + 7)
#define NCSI_CMD_RSN_CODE_MAC_ADDR_OF_0_IS_INVALID ((NCSI_CMD_TYPE_SET_MAC_ADDRESS << 8) + 8)
#define NCSI_CMD_RSN_CODE_ASYNCH_FC_NOT_SUPPORTED ((NCSI_CMD_TYPE_SET_NCSI_FLOW_CONTROL << 8) + 9)
#define NCSI_CMD_OEM_GENERIC_RSN_CODE_OS_CONFLICT 0x80
#define NCSI_CMD_OEM_GENERIC_RSN_CODE_OEM_PAYLOAD_VER_ERR 0x81
#define NCSI_CMD_RSN_CODE_SET_LINK_HOST_CONFLICT 1
#define NCSI_CMD_RSN_CODE_SET_LINK_MEDIA_CONFLICT 2
#define NCSI_CMD_RSN_CODE_SET_LINK_PARAMETER_CONFLICT 3
#define NCSI_CMD_RSN_CODE_SET_LINK_POWER_MODE_CONFLICT 4
#define NCSI_CMD_RSN_CODE_SET_LINK_SPEED_CONFLICT 5
#define NCSI_CMD_RSN_CODE_SET_LINK_HW_ACCESS_ERR 6
#define NCSI_CMD_OEM_DELL_RSN_CODE_NP_NOT_ENABLED 0x8000
#define NCSI_CMD_OEM_DELL_RSN_CODE_PARTITION_ID_NOT_ENABLED 0x8001
#define NCSI_CMD_OEM_DELL_RSN_CODE_PARTITION_ID_NOT_ASSOCIATED 0x8002
#define NCSI_CMD_OEM_DELL_RSN_CODE_REBOOT_REQUIRED 0x8003
#define NCSI_CMD_OEM_DELL_RSN_CODE_INVALID_LENGTH 0x8004
#define NCSI_CMD_OEM_DELL_RSN_CODE_INFO_NOT_AVAILABLE 0x8005
#define NCSI_CMD_OEM_DELL_RSN_CODE_UNSUPPORTED_ADDR_TYPE 0x8006
#define NCSI_CMD_OEM_DELL_RSN_CODE_UNSUPPORTED_PASSTHRU_TYPE 0x8007
#define NCSI_CMD_OEM_DELL_RSN_CODE_MAX_ALLOW_PORTS_REACHED 0x8008
#define NCSI_CMD_OEM_DELL_RSN_CODE_SYS_REBOOT_REQUIRED 0x8009
#define NCSI_CMD_OEM_DELL_UNSUPPORTED_PAYLOAD_VERSION 0x800a
#define NCSI_CMD_OEM_DELL_HOST_DRIVER_NOT_LOADED 0x800b
#define NCSI_CMD_OEM_DELL_LINK_CMD_FAILED_HW_ACCESS_ERR 0x800c
#define NCSI_CMD_OEM_DELL_INTERNAL_STORAGE_EXCEEDED 0x800d
#define NCSI_CMD_OEM_DELL_NVRAM_WRITE_FAILURE 0x800e
#define NCSI_CMD_OEM_DELL_NVRAM_WRITE_PENDING 0x800f
#define NCSI_CMD_RSN_CODE_UNK_CMD_TYPE 0x7FFF
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_TYPE_MASK 0xFF00
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_ERR_MASK 0x00FF
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_MAC_ADDR_INIT_ERR ((NCSI_CMD_TYPE_ENABLE_CHANNEL_EGRESS_TX << 8) + 0x80)
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_VLAN_TAG_INIT_ERR ((NCSI_CMD_TYPE_ENABLE_VLAN << 8) + 0x81)
} NcsiCmdRspStatus_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t ReasonCode;
u16_t ResponseCode;
#define NCSI_CMD_RSP_CODE_CMD_UNSUPPORTED 3
#define NCSI_CMD_RSP_CODE_CMD_UNAVAILABLE 2
#define NCSI_CMD_RSP_CODE_CMD_FAILED 1
#define NCSI_CMD_RSP_CODE_CMD_COMPLETED_OK 0
#define NCSI_CMD_RSN_CODE_NO_ERROR 0
#define NCSI_CMD_RSN_CODE_INTERFACE_INIT_REQUIRED 1
#define NCSI_CMD_RSN_CODE_PARAMETER_INVALID_OUT_OF_RANGE 2
#define NCSI_CMD_RSN_CODE_CHANNEL_NOT_READY 3
#define NCSI_CMD_RSN_CODE_PACKAGE_NOT_READY 4
#define NCSI_CMD_RSN_CODE_INVALID_PAYLOAD_LENGTH 5
#define NCSI_CMD_RSN_CODE_VLAN_TAG_OF_0_IS_INVALID ((NCSI_CMD_TYPE_SET_VLAN_FILTERS << 8) + 7)
#define NCSI_CMD_RSN_CODE_MAC_ADDR_OF_0_IS_INVALID ((NCSI_CMD_TYPE_SET_MAC_ADDRESS << 8) + 8)
#define NCSI_CMD_RSN_CODE_ASYNCH_FC_NOT_SUPPORTED ((NCSI_CMD_TYPE_SET_NCSI_FLOW_CONTROL << 8) + 9)
#define NCSI_CMD_OEM_GENERIC_RSN_CODE_OS_CONFLICT 0x80
#define NCSI_CMD_OEM_GENERIC_RSN_CODE_OEM_PAYLOAD_VER_ERR 0x81
#define NCSI_CMD_OEM_DELL_RSN_CODE_NP_NOT_ENABLED 0x8000
#define NCSI_CMD_OEM_DELL_RSN_CODE_PARTITION_ID_NOT_ENABLED 0x8001
#define NCSI_CMD_OEM_DELL_RSN_CODE_PARTITION_ID_NOT_ASSOCIATED 0x8002
#define NCSI_CMD_OEM_DELL_RSN_CODE_REBOOT_REQUIRED 0x8003
#define NCSI_CMD_OEM_DELL_RSN_CODE_INVALID_LENGTH 0x8004
#define NCSI_CMD_OEM_DELL_RSN_CODE_INFO_NOT_AVAILABLE 0x8005
#define NCSI_CMD_OEM_DELL_RSN_CODE_UNSUPPORTED_ADDR_TYPE 0x8006
#define NCSI_CMD_OEM_DELL_RSN_CODE_UNSUPPORTED_PASSTHRU_TYPE 0x8007
#define NCSI_CMD_OEM_DELL_RSN_CODE_MAX_ALLOW_PORTS_REACHED 0x8008
#define NCSI_CMD_OEM_DELL_RSN_CODE_SYS_REBOOT_REQUIRED 0x8009
#define NCSI_CMD_OEM_DELL_UNSUPPORTED_PAYLOAD_VERSION 0x800A
#define NCSI_CMD_OEM_DELL_HOST_DRIVER_NOT_LOADED 0x800B
#define NCSI_CMD_OEM_DELL_INTERNAL_STORAGE_EXCEEDED 0x800D
#define NCSI_CMD_OEM_DELL_NVRAM_WRITE_FAILURE 0x800E
#define NCSI_CMD_OEM_DELL_NVRAM_WRITE_PENDING 0x800F
#define NCSI_CMD_RSN_CODE_UNK_CMD_TYPE 0x7FFF
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_TYPE_MASK 0xFF00
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_ERR_MASK 0x00FF
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_MAC_ADDR_INIT_ERR ((NCSI_CMD_TYPE_ENABLE_CHANNEL_EGRESS_TX << 8) + 0x80)
#define NCSI_CMD_OEM_SPECIFIC_RSN_CODE_VLAN_TAG_INIT_ERR ((NCSI_CMD_TYPE_ENABLE_VLAN << 8) + 0x81)
}
NcsiCmdRspStatus_t;
#endif
typedef struct OemDefaultReturnData
{
BrcmOemCmdRspHeader_t BrcmOemCmdRspHeader;
} OemDefaultReturnData_t;
typedef struct NcsiDefaultOemCmdRspData
#if defined (BIG_ENDIAN)
{
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
OemDefaultReturnData_t ReturnData;
} NcsiDefaultOemCmdRspData_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
OemDefaultReturnData_t ReturnData;
}
NcsiDefaultOemCmdRspData_t;
#endif
typedef struct OemTestReturnData
{
BrcmOemCmdRspHeader_t BrcmOemCmdRspHeader;
u32_t OemPayload[33];
} OemTestReturnData_t;
typedef struct NcsiCmdNcsiTestReadCmdRspData
#if defined (BIG_ENDIAN)
{
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
OemTestReturnData_t ReturnData;
} NcsiCmdNcsiTestReadCmdRspData_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t ReasonCode;
u16_t ResponseCode;
u32_t ManufacturerId;
OemTestReturnData_t ReturnData;
}
NcsiCmdNcsiTestReadCmdRspData_t;
#endif
typedef struct NcsiOemGetNcsiParametersPayload
#if defined (BIG_ENDIAN)
{
u32_t NcsiFwVersionNumber;
u32_t BootcodeVersionNumber;
u32_t PxeBootVersionNumber;
u32_t IScsiBootVersionNumber;
u32_t OemLinkSettings;
u16_t HostMacAddrHigh;
u16_t HostMacAddrMiddle;
u16_t HostMacAddrLow;
u16_t HostVirtualL2MacAddrHigh;
u16_t HostVirtualL2MacAddrMiddle;
u16_t HostVirtualL2MacAddrLow;
u16_t HostIscsiMacAddrHigh;
u16_t HostIscsiMacAddrMiddle;
u16_t HostIscsiMacAddrLow;
u16_t HostVirtualIscsiMacAddrHigh;
u16_t HostVirtualIscsiMacAddrMiddle;
u16_t HostVirtualIscsiMacAddrLow;
}NcsiOemGetNcsiParametersPayload_t;
#elif defined (LITTLE_ENDIAN)
{
u32_t NcsiFwVersionNumber;
u32_t BootcodeVersionNumber;
u32_t PxeBootVersionNumber;
u32_t IScsiBootVersionNumber;
u32_t OemLinkSettings;
u16_t HostMacAddrMiddle;
u16_t HostMacAddrHigh;
u16_t HostVirtualL2MacAddrHigh;
u16_t HostMacAddrLow;
u16_t HostVirtualL2MacAddrLow;
u16_t HostVirtualL2MacAddrMiddle;
u16_t HostIscsiMacAddrMiddle;
u16_t HostIscsiMacAddrHigh;
u16_t HostVirtualIscsiMacAddrHigh;
u16_t HostIscsiMacAddrLow;
u16_t HostVirtualIscsiMacAddrLow;
u16_t HostVirtualIscsiMacAddrMiddle;
}
NcsiOemGetNcsiParametersPayload_t;
#endif
#define NCSI_CMD_GET_NCSI_PARAM_RSP_PAYLOAD_VERSION 0
typedef struct NcsiOemGetNcsiParametersReturnData
{
BrcmOemCmdRspHeader_t BrcmOemCmdRspHeader;
NcsiOemGetNcsiParametersPayload_t OemPayload;
} NcsiOemGetNcsiParametersReturnData_t;
#define NCSI_CMD_GET_PHY_PRIORITY_RSP_PAYLOAD_VERSION 0
typedef struct NcsiOemGetDualMediaParametersReturnData
{
BrcmOemCmdRspHeader_t BrcmOemCmdRspHeader;
NcsiOemGetDualMediaParametersPayload_t OemPayload;
} NcsiOemGetDualMediaParametersReturnData_t;
typedef struct NcsiOemGetNcsiParametersRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
#endif
u32_t ManufacturerId;
NcsiOemGetNcsiParametersReturnData_t ReturnData;
} NcsiOemGetNcsiParametersRspData_t;
typedef struct NcsiOemGetDualMediaParametersRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
#endif
u32_t ManufacturerId;
NcsiOemGetDualMediaParametersReturnData_t ReturnData;
} NcsiOemGetDualMediaParametersRspData_t;
typedef struct NcsiCmdGetParametersRspData
#if defined (BIG_ENDIAN)
{
u16_t ResponseCode;
u16_t ReasonCode;
u8_t MacAddrCount;
u8_t Reserved0[2];
u8_t MacAddrFlags;
u8_t VlanTagCount;
u8_t Reserved1;
u16_t VlanTagFlags;
u32_t LinkSettings;
u32_t BroadcastFilterSettings;
u32_t ConfigurationFlags;
u8_t VlanMode;
u8_t FcEnable;
u16_t Reserved2;
u32_t AenControl;
NcsiMacAddr_t Mac[NCSI_MAC_ADDRESS_MAX];
u16_t VlanTag[NCSI_VLAN_TAG_COUNT];
}NcsiCmdGetParametersRspData_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t ReasonCode;
u16_t ResponseCode;
u8_t MacAddrFlags;
u8_t Reserved0[2];
u8_t MacAddrCount;
u16_t VlanTagFlags;
u8_t Reserved1;
u8_t VlanTagCount;
u32_t LinkSettings;
u32_t BroadcastFilterSettings;
u32_t ConfigurationFlags;
u16_t Reserved2;
u8_t FcEnable;
u8_t VlanMode;
u32_t AenControl;
NcsiMacAddr_t Mac[NCSI_MAC_ADDRESS_MAX];
u16_t VlanTag[NCSI_VLAN_TAG_COUNT];
}
NcsiCmdGetParametersRspData_t;
#endif
typedef struct NcsiCmdGetCapabilitiesRspData
#if defined (BIG_ENDIAN)
{
u16_t ResponseCode;
u16_t ReasonCode;
u32_t Flags;
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_HW_ARBITRATION 0x01
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_OS_AWARENESS 0x02
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_TX_FLOWCONTROL 0x04
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_RX_FLOWCONTROL 0x08
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_MULTICAST_SUPPORT 0x10
u32_t BroadcastFiltering;
u32_t MulticastFiltering;
u32_t IngressBuffering;
u32_t AenControl;
u8_t VlanFilterCount;
u8_t MixedMacFilterCount;
u8_t MulticastFilterCount;
u8_t UnicastFilterCount;
u16_t Reserved0;
u8_t VlanModes;
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_VLAN_MODE_VLAN_ONLY 0x01
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_VLAN_MODE_VLAN_NON_VLAN 0x02
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_VLAN_MODE_PROMISCUOUS_VLAN 0x04
u8_t ChannelCount;
} NcsiCmdGetCapabilitiesRspData_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t ReasonCode;
u16_t ResponseCode;
u32_t Flags;
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_HW_ARBITRATION 0x01
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_OS_AWARENESS 0x02
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_TX_FLOWCONTROL 0x04
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_RX_FLOWCONTROL 0x08
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_CAPABILITY_FLAG_MULTICAST_SUPPORT 0x10
u32_t BroadcastFiltering;
u32_t MulticastFiltering;
u32_t IngressBuffering;
u32_t AenControl;
u8_t UnicastFilterCount;
u8_t MulticastFilterCount;
u8_t MixedMacFilterCount;
u8_t VlanFilterCount;
u8_t ChannelCount;
u8_t VlanModes;
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_VLAN_MODE_PROMISCUOUS_VLAN 0x04
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_VLAN_MODE_VLAN_NON_VLAN 0x02
#define NCSI_CMD_GET_CAPABILITY_RSP_PAYLOAD_VLAN_MODE_VLAN_ONLY 0x01
u16_t Reserved0;
}
NcsiCmdGetCapabilitiesRspData_t;
#endif
typedef struct NcsiCmdGetLinkStatusRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
#endif
u32_t LinkState;
#define LINK_STATUS_LINK_MASK (1<<0)
#define LINK_STATUS_LINK_ENABLED (1<<0)
#define LINK_STATUS_LINK_SPEED_DUPLEX_NO_HCD (0<<0)
#define LINK_STATUS_LINK_SPEED_AND_DUPLEX_MASK (0xF<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_10BASE_T_HD (1<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_10BASE_T_FD (2<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_100BASE_TX_HD (3<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_100BASE_TX_FD (5<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_1000BASE_T_FD (7<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_UMP_2_5GB_HD (8<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_UMP_2_5GB_FD (9<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_UMP_10GBASE_T (10<<1)
#define LINK_STATUS_LINK_SPEED_DUPLEX_NCSI_10GBASE_T (8<<1)
#define LINK_STATUS_AUTO_NEG_ENABLED (1<<5)
#define LINK_STATUS_AUTO_NEG_COMPLETE (1<<6)
#define LINK_STATUS_PARALLEL_DETECTION (1<<7)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_PAUSE_FC_CAPABLE (1<<8)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_SPEED_DUPLEX_1000BASE_T_FD (1<<9)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_SPEED_DUPLEX_1000BASE_T_HD (1<<10)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_SPEED_DUPLEX_100BASE_TX_FD (1<<12)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_SPEED_DUPLEX_100BASE_TX_HD (1<<13)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_SPEED_DUPLEX_10BASE_T_FD (1<<14)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_SPEED_DUPLEX_10BASE_T_HD (1<<15)
#define LINK_STATUS_TX_FC_ENABLED (1<<16)
#define LINK_STATUS_RX_FC_ENABLED (1<<17)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_FC_1000X_MASK (3<<18)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_FC_1000X_NO_PAUSE (0<<18)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_FC_1000X_SYM_PAUSE (1<<18)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_FC_1000X_ASYM_PAUSE_TO_PARTNER (2<<18)
#define LINK_STATUS_LINK_PARTNER_ADVERTIZED_FC_1000X_SYM_ASYM_PAUSE_TO_PARTNER (3<<18)
#define LINK_STATUS_SERDES_FLAG (1<<20)
#define LINK_STATUS_OEM_LINK_SPEED_VALID_FLAG (1<<21)
u32_t OtherIndications;
u32_t OemLinkSpeed;
#define LINK_STATUS_LINK_SPEED_DUPLEX_NCSI_2_5GB_HD (1<<0)
#define LINK_STATUS_LINK_SPEED_DUPLEX_NCSI_2_5GB_FD (1<<1)
} NcsiCmdGetLinkStatusRspData_t;
typedef struct NcsiCmdGetNcsiStatisticsRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
#endif
u32_t CommandPktsRx;
u32_t TotalCommandPktsDropped;
u32_t CommandPktsDroppedTypeError;
u32_t CommandPktsDroppedCsError;
u32_t TotalControlPktsRx;
u32_t TotalControlPktsTx;
u32_t TotalAensSent;
} NcsiCmdGetNcsiStatisticsRspData_t;
typedef NcsiCmdGetNcsiStatisticsRspData_t *pNcsiCmdGetNcsiStatisticsRspData_t;
typedef struct NcsiCmdGetNcsiPassThruStatisticsRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
#endif
u32_t TotalEgressPktsHigh;
u32_t TotalEgressPktsLow;
u32_t TotalEgressPktsDropped;
u32_t EgressPktsDroppedChannelStateError;
u32_t EgressPktsDroppedUndersizedError;
u32_t EgressPktsDroppedOversizedError;
u32_t TotalIngressPkts;
u32_t TotalIngressPktsDropped;
u32_t IngressPktsDroppedChannelStateError;
u32_t IngressPktsDroppedUndersizedError;
u32_t IngressPktsDroppedOversizedError;
} NcsiCmdGetNcsiPassThruStatisticsRspData_t;
typedef NcsiCmdGetNcsiPassThruStatisticsRspData_t *pNcsiCmdGetNcsiPassThruStatisticsRspData_t;
typedef struct NcsiNicEmacStats
{
u32_t TotalBytesRx_High;
u32_t TotalBytesRx_Low;
u32_t TotalBytesTx_High;
u32_t TotalBytesTx_Low;
u32_t TotalUnicastPktsRx_High;
u32_t TotalUnicastPktsRx_Low;
u32_t TotalMulticastPktsRx_High;
u32_t TotalMulticastPktsRx_Low;
u32_t TotalBroadcastPktsRx_High;
u32_t TotalBroadcastPktsRx_Low;
u32_t TotalUnicastPktsTx_High;
u32_t TotalUnicastPktsTx_Low;
u32_t TotalMulticastPktsTx_High;
u32_t TotalMulticastPktsTx_Low;
u32_t TotalBroadcastPktsTx_High;
u32_t TotalBroadcastPktsTx_Low;
u32_t CrcRxErrors;
u32_t AlignmentErrors;
u32_t FalseCarrierDetects;
u32_t RuntPktsRx;
u32_t JabberPktsRx;
u32_t PauseXonFramesRx;
u32_t PauseXoffFramesRx;
u32_t PauseXonFramesTx;
u32_t PauseXoffFramesTx;
u32_t SingleCollisionTxFrames;
u32_t MultipleCollisionTxFrames;
u32_t LateCollisionFrames;
u32_t ExcessiveCollisionFrames;
u32_t ControlFramesRx;
u32_t FramesRx64Byte;
u32_t FramesRx65_127Bytes;
u32_t FramesRx128_255Bytes;
u32_t FramesRx256_511Bytes;
u32_t FramesRx512_1023Bytes;
u32_t FramesRx1024_1522Bytes;
u32_t FramesRx1523_9022Bytes;
u32_t FramesTx64Byte;
u32_t FramesTx65_127Bytes;
u32_t FramesTx128_255Bytes;
u32_t FramesTx256_511Bytes;
u32_t FramesTx512_1023Bytes;
u32_t FramesTx1024_1522Bytes;
u32_t FramesTx1523_9022Bytes;
u32_t ValidBytesRx_High;
u32_t ValidBytesRx_Low;
u32_t ErrorRuntPktsRx;
u32_t ErrorJabberPktsRx;
} NcsiNicEmacStats_t;
typedef NcsiNicEmacStats_t *pNcsiNicEmacStats_t;
typedef struct NcsiCmdGetPortStatisticsRspData
{
#if defined (BIG_ENDIAN)
u16_t ResponseCode;
u16_t ReasonCode;
#elif defined (LITTLE_ENDIAN)
u16_t ReasonCode;
u16_t ResponseCode;
#endif
u32_t CountersClearedHigh;
u32_t CountersClearedLow;
NcsiNicEmacStats_t Stats;
} NcsiCmdGetPortStatisticsRspData_t;
typedef NcsiCmdGetPortStatisticsRspData_t *pNcsiCmdGetPortStatisticsRspData_t;
#define GET_NIC_VER_ID_SIZE_OF_FW_NAME 12
typedef struct NcsiCmdGetControllerVerIdRspData
#if defined (BIG_ENDIAN)
{
u16_t ResponseCode;
u16_t ReasonCode;
NcsiVersion_t NcsiVersion;
u8_t FirmwareName[GET_NIC_VER_ID_SIZE_OF_FW_NAME];
u32_t FirmwareRev;
u16_t PciDeviceId;
u16_t PciVendorId;
u16_t PciSubsystemId;
u16_t PciSubsystemVendorId;
u32_t ManufacturerId;
} NcsiCmdGetControllerVerIdRspData_t;
#elif defined (LITTLE_ENDIAN)
{
u16_t ReasonCode;
u16_t ResponseCode;
NcsiVersion_t NcsiVersion;
u8_t FirmwareName[12];
u8_t Alpha2;
u8_t Reserved2;
u8_t Reserved1;
u32_t FirmwareRev;
u16_t PciVendorId;
u16_t PciDeviceId;
u16_t PciSubsystemVendorId;
u16_t PciSubsystemId;
u32_t ManufacturerId;
}
NcsiCmdGetControllerVerIdRspData_t;
#endif
#define NCSI_CMD_SIZEOF_DEFAULT_RSP_DATA (sizeof (NcsiCmdRspStatus_t))
#define NCSI_CMD_SIZEOF_GET_PARAMS_RSP_DATA (sizeof (NcsiCmdGetParametersRspData_t))
#define NCSI_CMD_SIZEOF_GET_LINK_STATUS_RSP_DATA (sizeof (NcsiCmdGetLinkStatusRspData_t))
#define NCSI_CMD_SIZEOF_GET_STATS_RSP_DATA (sizeof (NcsiCmdGetPortStatisticsRspData_t))
#define NCSI_CMD_SIZEOF_GET_CNTLR_VER_ID_RSP_DATA (sizeof (NcsiCmdGetControllerVerIdRspData_t))
#define NCSI_CMD_SIZEOF_GET_NCSI_STATS_RSP_DATA (sizeof (NcsiCmdGetNcsiStatisticsRspData_t))
#define NCSI_CMD_SIZEOF_GET_CAPABILITY_RSP_DATA (sizeof (NcsiCmdGetCapabilitiesRspData_t))
#define NCSI_CMD_SIZEOF_GET_NCSI_PASSTHRU_STATS_RSP_DATA (sizeof (NcsiCmdGetNcsiPassThruStatisticsRspData_t))
#define NCSI_CMD_SIZEOF_DEFAULT_OEM_CMD_RSP_DATA (sizeof (NcsiDefaultOemCmdRspData_t))
#define NCSI_CMD_SIZEOF_DEFAULT_DELL_OEM_CMD_RSP_DATA (sizeof(DellDfltCmdRspData_t))
#define NCSI_CMD_SIZEOF_GET_NCSI_PARAMETERS_RSP_DATA (sizeof (NcsiOemGetNcsiParametersRspData_t))
#define NCSI_CMD_SIZEOF_NCSI_TEST_READ_CMD_RSP_DATA (sizeof (NcsiCmdNcsiTestReadCmdRspData_t))
#define NCSI_CMD_SIZEOF_GET_PHY_PRIORITY_CMD_RSP_DATA (sizeof (NcsiOemGetDualMediaParametersRspData_t))
typedef struct NcsiCmdDefaultRspPayload
{
NcsiCmdRspStatus_t Data;
u32_t ChecksumCompensation;
} NcsiCmdDefaultRspPayload_t;
typedef NcsiCmdDefaultRspPayload_t *pNcsiCmdDefaultRspPayload_t;
typedef struct NcsiDefaultOemCmdRspPayload
{
NcsiDefaultOemCmdRspData_t Data;
u32_t ChecksumCompensation;
} NcsiDefaultOemCmdRspPayload_t;
typedef NcsiDefaultOemCmdRspPayload_t *pNcsiDefaultOemCmdRspPayload_t;
typedef struct NcsiOemGetNcsiParametersRspPayload
{
NcsiOemGetNcsiParametersRspData_t Data;
u32_t ChecksumCompensation;
} NcsiOemGetNcsiParametersRspPayload_t;
typedef NcsiOemGetNcsiParametersRspPayload_t *pNcsiOemGetNcsiParametersRspPayload_t;
typedef struct NcsiOemGetDualMediaParametersRspPayload
{
NcsiOemGetDualMediaParametersRspData_t Data;
u32_t ChecksumCompensation;
} NcsiOemGetDualMediaParametersRspPayload_t;
typedef NcsiOemGetDualMediaParametersRspPayload_t *pNcsiOemGetDualMediaParametersRspPayload_t;
typedef struct {
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u16_t SupportedVersons;
u32_t Reserved;
} DellRspsGetSupportedVer_t;
typedef struct {
u16_t ResponseCode;
u16_t ReasonCode;
u32_t ManufacturerId;
u8_t PayloadVersion;
u8_t CommandType;
u8_t PartitionId;
u8_t NumOfTLVs;
u8_t buf[MAX_TLV_COMMAND_SIZE];
} DellRspsPartitionTLV_t;
#define DELLOEMRSP_PARTITION_TLV_BASE_SIZE 12
#define OSVER_TYPE_LAN 0
#define OSVER_TYPE_ISCSI 1
#define OSVER_TYPE_FCOE 2
#define OSVER_TYPE_RDMA 3
#define OSVER_TYPE_FC 4
#define ISCSI_INITIATOR_TYPE_ADDR 0
#define ISCSI_INITIATOR_TYPE_ADDR_V4 1
#define ISCSI_INITIATOR_TYPE_ADDR_V6 2
#define ISCSI_INITIATOR_TYPE_SUBNET 3
#define ISCSI_INITIATOR_TYPE_SUBNET_PREFIX 4
#define ISCSI_INITIATOR_TYPE_GATEWAY 5
#define ISCSI_INITIATOR_TYPE_GATEWAY_V4 6
#define ISCSI_INITIATOR_TYPE_GATEWAY_V6 7
#define ISCSI_INITIATOR_TYPE_PRIMARY_DNS 8
#define ISCSI_INITIATOR_TYPE_PRIMARY_DNS_V4 9
#define ISCSI_INITIATOR_TYPE_PRIMARY_DNS_V6 0xa
#define ISCSI_INITIATOR_TYPE_SECOND_DNS 0xb
#define ISCSI_INITIATOR_TYPE_SECOND_DNS_V4 0xc
#define ISCSI_INITIATOR_TYPE_SECOND_DNS_V6 0xd
#define ISCSI_INITIATOR_TYPE_NAME 0xe
#define ISCSI_INITIATOR_TYPE_CHAP_ID 0xf
#define ISCSI_INITIATOR_TYPE_CHAP_PSWD 0x10
#define ISCSI_INITIATOR_TYPE_IP_VER 0x11
#define ISCSI_INITIATOR_TYPE_MAX ISCSI_INITIATOR_TYPE_IP_VER
#define ISCSI_INITIATOR_TYPE_SUPPORTED_V4_MASK ((1<<ISCSI_INITIATOR_TYPE_ADDR)|(1<<ISCSI_INITIATOR_TYPE_ADDR_V4)| \
(1<<ISCSI_INITIATOR_TYPE_SUBNET)|(1<<ISCSI_INITIATOR_TYPE_GATEWAY)| \
(1<<ISCSI_INITIATOR_TYPE_GATEWAY_V4)| \
(1<<ISCSI_INITIATOR_TYPE_PRIMARY_DNS)| \
(1<<ISCSI_INITIATOR_TYPE_PRIMARY_DNS_V4)| \
(1<<ISCSI_INITIATOR_TYPE_SECOND_DNS)| \
(1<<ISCSI_INITIATOR_TYPE_SECOND_DNS_V4)| \
(1<<ISCSI_INITIATOR_TYPE_NAME)|(1<<ISCSI_INITIATOR_TYPE_CHAP_ID)| \
(1<<ISCSI_INITIATOR_TYPE_CHAP_PSWD)|(1<<ISCSI_INITIATOR_TYPE_IP_VER))
#define ISCSI_INITIATOR_TYPE_SUPPORTED_V6_MASK ((1<<ISCSI_INITIATOR_TYPE_ADDR)|(1<<ISCSI_INITIATOR_TYPE_ADDR_V6)| \
(1<<ISCSI_INITIATOR_TYPE_SUBNET_PREFIX)| \
(1<<ISCSI_INITIATOR_TYPE_GATEWAY)| \
(1<<ISCSI_INITIATOR_TYPE_GATEWAY_V6)| \
(1<<ISCSI_INITIATOR_TYPE_PRIMARY_DNS)| \
(1<<ISCSI_INITIATOR_TYPE_PRIMARY_DNS_V6)| \
(1<<ISCSI_INITIATOR_TYPE_SECOND_DNS)| \
(1<<ISCSI_INITIATOR_TYPE_SECOND_DNS_V6)| \
(1<<ISCSI_INITIATOR_TYPE_NAME)|(1<<ISCSI_INITIATOR_TYPE_CHAP_ID)| \
(1<<ISCSI_INITIATOR_TYPE_CHAP_PSWD)|(1<<ISCSI_INITIATOR_TYPE_IP_VER))
#define ISCSI_TARGET_TYPE_CONNECT 0x0
#define ISCSI_TARGET_TYPE_IP_ADDR 0x1
#define ISCSI_TARGET_TYPE_TCP_PORT 0x2
#define ISCSI_TARGET_TYPE_BOOT_LUN 0x3
#define ISCSI_TARGET_TYPE_NAME 0x4
#define ISCSI_TARGET_TYPE_CHAP_ID 0x5
#define ISCSI_TARGET_TYPE_CHAP_PSWD 0x6
#define ISCSI_TARGET_TYPE_IP_VER 0x7
#define ISCSI_TARGET2_TYPE_CONNECT 0x8
#define ISCSI_TARGET2_TYPE_IP_ADDR 0x9
#define ISCSI_TARGET2_TYPE_TCP_PORT 0xa
#define ISCSI_TARGET2_TYPE_BOOT_LUN 0xb
#define ISCSI_TARGET2_TYPE_NAME 0xc
#define ISCSI_TARGET2_TYPE_CHAP_ID 0xd
#define ISCSI_TARGET2_TYPE_CHAP_PSWD 0xe
#define ISCSI_TARGET2_TYPE_IP_VER 0xf
#define ISCSI_TARGET2_BASE ISCSI_TARGET2_TYPE_CONNECT
#define ISCSI_TARGET_TYPE_MAX ISCSI_TARGET2_TYPE_IP_VER
#define FCOE_BOOT_SCAN_SELECTION 0x0
#define FCOE_FIRST_WWPN_TARGET 0x1
#define FCOE_FIRST_BOOT_TARGET_LUN 0x2
#define FCOE_FIRST_FCF_VLAN_ID 0x3
#define FCOE_TGT_BOOT 0x4
#define FCOE_TARGET_TYPE_MAX FCOE_TGT_BOOT
typedef DellRspsPartitionTLV_t DellRspsGetOsDriverVer_t;
typedef DellRspsPartitionTLV_t DellRspsGetiScsiInitiatorConf_t;
typedef DellRspsPartition_t DellRspsSetiScsiInitiatorConf_t;
typedef DellRspsPartitionTLV_t DellRspsGetiScsiTargetConf_t;
typedef DellRspsPartition_t DellRspsSetiScsiTargetConf_t;
typedef DellRspsPartitionTLV_t DellRspsGetFcoeTargetConf_t;
typedef DellRspsPartition_t DellRspsSetFcoeTargetConf_t;
typedef DellRspsDefault_t DellRspsCommitNvram_t;
typedef DellRspsDefault_t DellRspsGetCommitNvramStatus_t;
typedef struct NcsiDellOemCmdRspPayload
{
union
{
DellGetInventoryCmdRspData_t GetInventory;
DellGetExtendedCapabilitiesCmdRspData_t GetExtendedCapabilities;
DellGetPartitionInfoCmdRspData_t GetPartitionInfo;
DellGetFcoeCapabilitiesCmdRspData_t GetFcoeCapabilities;
DellGetVirtualLinkCmdRspData_t GetVirtualLink;
DellGetLanStatisticsCmdRspData_t GetLanStatistics;
DellGetFcoeStatisticsCmdRspData_t GetFcoeStatistics;
DellSetAddrCmdRspData_t SetAddr;
DellGetAddrCmdRspData_t GetAddr;
DellSetLicenseCmdRspData_t SetLicense;
DellGetLicenseCmdRspData_t GetLicense;
DellSetPassthruCtrlCmdRspData_t SetPassthruCtrl;
DellGetPassthruCtrlCmdRspData_t GetPassthruCtrl;
DellSetPartitionTxBandwidthCmdRspData_t SetPartitionTxBandwidth;
DellGetPartitionTxBandwidthCmdRspData_t GetPartitionTxBandwidth;
DellSetMcIpAddrCmdRspData_t SetMcIpAddr;
DellGetTeamingInfoCmdRspData_t GetTeamingInfo;
DellEnablePortsCmdRspData_t EnablePorts;
DellDisablePortsCmdRspData_t DisablePorts;
DellGetTempCmdRspData_t GetTemp;
DellSetLinkTuningCmdRspData_t SetLinkTuning;
DellEnableDisableOutOfBoxWolCmdRspData_t EnableDisableOutOfBoxWol;
DellRspsGetSupportedVer_t GetSupportedVer;
DellRspsGetOsDriverVer_t GetOsDriverVer;
DellRspsGetiScsiInitiatorConf_t GetiScsiInitiatorConf;
DellRspsSetiScsiInitiatorConf_t SetiScsiInitiatorConf;
DellRspsGetiScsiTargetConf_t GetiScsiTargetConf;
DellRspsSetiScsiTargetConf_t SetiScsiTargetConf;
DellRspsGetFcoeTargetConf_t GetFcoeTargetConf;
DellRspsSetFcoeTargetConf_t SetFcoeTargetConf;
DellRspsCommitNvram_t CommitNvram;
DellRspsGetCommitNvramStatus_t GetCommitNvramStatus;
};
u32_t ChecksumCompensation;
} NcsiDellOemCmdRspPayload_t;
typedef NcsiDellOemCmdRspPayload_t *pNcsiDellOemCmdRspPayload_t;
typedef struct NcsiCmdGetParametersRspPayload
{
NcsiCmdGetParametersRspData_t Data;
u32_t ChecksumCompensation;
}NcsiCmdGetParametersRspPayload_t;
typedef struct NcsiCmdNcsiTestReadRspPayload
{
NcsiCmdNcsiTestReadCmdRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdNcsiTestReadRspPayload_t;
typedef struct NcsiCmdGetLinkStatusRspPayload
{
NcsiCmdGetLinkStatusRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdGetLinkStatusRspPayload_t;
typedef NcsiCmdGetLinkStatusRspPayload_t *pNcsiCmdGetLinkStatusRspPayload_t;
typedef struct NcsiCmdGetCapabilitiesRspPayload
{
NcsiCmdGetCapabilitiesRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdGetCapabilitiesRspPayload_t;
typedef NcsiCmdGetCapabilitiesRspPayload_t *pNcsiCmdGetCapabilitiesRspPayload_t;
typedef struct NcsiCmdGetPortStatisticsRspPayload
{
NcsiCmdGetPortStatisticsRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdGetPortStatisticsRspPayload_t;
typedef NcsiCmdGetPortStatisticsRspPayload_t *pNcsiCmdGetPortStatisticsRspPayload_t;
typedef struct NcsiCmdGetNcsiStatisticsRspPayload
{
NcsiCmdGetNcsiStatisticsRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdGetNcsiStatisticsRspPayload_t;
typedef NcsiCmdGetNcsiStatisticsRspPayload_t *pNcsiCmdGetNcsiStatisticsRspPayload_t;
typedef struct NcsiCmdGetNcsiPassThruStatisticsRspPayload
{
NcsiCmdGetNcsiPassThruStatisticsRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdGetNcsiPassThruStatisticsRspPayload_t;
typedef NcsiCmdGetNcsiPassThruStatisticsRspPayload_t *pNcsiCmdGetNcsiPassThruStatisticsRspPayload_t;
typedef struct NcsiCmdGetControllerVerIdRspPayload
{
NcsiCmdGetControllerVerIdRspData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdGetControllerVerIdRspPayload_t;
typedef union NcsiCmdRspPayload
{
NcsiCmdDefaultRspPayload_t DefaultPayload;
NcsiDefaultOemCmdRspPayload_t DefaultOemCmdPayload;
NcsiOemGetNcsiParametersRspPayload_t GetNcsiParametersPayload;
NcsiOemGetDualMediaParametersRspPayload_t GetDualMediaParametersPayload;
NcsiCmdGetParametersRspPayload_t GetParametersPayload;
NcsiCmdGetLinkStatusRspPayload_t GetLinkStatusPayload;
NcsiCmdGetPortStatisticsRspPayload_t GetStatisticsPayload;
NcsiCmdGetControllerVerIdRspPayload_t GetCntlrVerIdPayload;
NcsiCmdGetNcsiStatisticsRspPayload_t GetNcsiStatsPayload;
NcsiCmdGetNcsiPassThruStatisticsRspPayload_t GetNcsiPassThruStatsPayload;
NcsiCmdGetCapabilitiesRspPayload_t GetCapabilitiesPayload;
NcsiCmdNcsiTestReadRspPayload_t NcsiTestReadPayload;
NcsiDellOemCmdRspPayload_t DellOemCmdRspPayload;
} NcsiCmdRspPayload_t;
#define NCSI_CMD_CHKSUM_SIZE SIZEOF(NcsiCmdDefaultRspPayload_t, ChecksumCompensation)
typedef struct NcsiRmiiCmdRspPkt
{
NcsiRmiiControlPktHeader_t Header;
NcsiCmdRspPayload_t Payload;
} NcsiRmiiCmdRspPkt_t;
typedef NcsiRmiiCmdRspPkt_t *pNcsiRmiiCmdRspPkt_t;
typedef struct NcsiCmdDefaultAenData
{
u32_t AenType;
#define NCSI_CMD_AEN_TYPE_LINK_CHANGED (0)
#define NCSI_CMD_AEN_TYPE_SOFT_RESET (1)
#define NCSI_CMD_AEN_TYPE_OS_CHANGED (2)
} NcsiCmdDefaultAenData_t;
typedef struct NcsiCmdLinkChangedAenData
{
u32_t AenType;
u32_t LinkState;
u32_t OemLinkSpeed;
} NcsiCmdLinkChangedAenData_t;
typedef struct NcsiCmdOsChangedAenData
{
u32_t AenType;
u32_t OsState;
#define UMPCMDPUB_OS_STATE_CHANGED_AEN_OS_PRESENT 1
#define UMPCMDPUB_OS_STATE_CHANGED_AEN_OS_ABSENT 0
} NcsiCmdOsChangedAenData_t;
#define NCSI_CMD_SIZEOF_DEFAULT_AEN_DATA (sizeof (NcsiCmdDefaultAenData_t))
#define NCSI_CMD_SIZEOF_LINK_CHANGED_AEN_DATA (sizeof (NcsiCmdLinkChangedAenData_t))
#define NCSI_CMD_SIZEOF_OS_CHANGED_AEN_DATA (sizeof (NcsiCmdOsChangedAenData_t))
typedef struct NcsiCmdDefaultAenPayload
{
NcsiCmdDefaultAenData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdDefaultAenPayload_t;
typedef struct NcsiCmdLinkChangedAenPayload
{
NcsiCmdLinkChangedAenData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdLinkChangedAenPayload_t;
typedef struct NcsiCmdOsChangedAenPayload
{
NcsiCmdOsChangedAenData_t Data;
u32_t ChecksumCompensation;
} NcsiCmdOsChangedAenPayload_t;
typedef union NcsiCmdAenPayload
{
NcsiCmdDefaultAenPayload_t DefaultPayload;
NcsiCmdLinkChangedAenPayload_t LinkChangedPayload;
NcsiCmdOsChangedAenPayload_t OsChangedPayload;
} NcsiCmdAenPayload_t;
#define NCSI_CMD_SIZEOF_DEFAULT_AEN_PAYLOAD (sizeof (NcsiCmdDefaultAenPayload_t))
#define NCSI_CMD_SIZEOF_LINK_CHANGED_AEN_PAYLOAD (sizeof (NcsiCmdLinkChangedAenPayload_t))
#define NCSI_CMD_SIZEOF_OS_CHANGED_AEN_PAYLOAD (sizeof (NcsiCmdOsChangedAenPayload_t))
typedef struct NcsiCmdAenPacket
{
NcsiRmiiControlPktHeader_t Header;
NcsiCmdAenPayload_t Payload;
} NcsiCmdAenPacket_t;
typedef NcsiCmdAenPacket_t *pNcsiCmdAenPacket_t;
#endif