Kernel  |  3.10

下载     查看原文件
C++程序  |  2114行  |  68.87 KB
/*****************************************************************************

            (c) Cambridge Silicon Radio Limited 2012
            All rights reserved and confidential information of CSR

            Refer to LICENSE.txt included with this source for details
            on the license terms.

*****************************************************************************/

/* Note: this is an auto-generated file. */

#ifndef CSR_WIFI_ROUTER_CTRL_PRIM_H__
#define CSR_WIFI_ROUTER_CTRL_PRIM_H__

#include <linux/types.h>
#include "csr_prim_defs.h"
#include "csr_sched.h"
#include "csr_wifi_common.h"
#include "csr_result.h"
#include "csr_wifi_fsm_event.h"

#define CSR_WIFI_ROUTER_CTRL_PRIM                                       (0x0401)

typedef CsrPrim CsrWifiRouterCtrlPrim;

typedef CsrResult (*CsrWifiRouterCtrlRawSdioByteWrite)(u8 func, u32 address, u8 data);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioByteRead)(u8 func, u32 address, u8 *pdata);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioFirmwareDownload)(u32 length, const u8 *pdata);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioReset)(void);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioCoreDumpPrepare)(u8 suspendSme);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioByteBlockRead)(u8 func, u32 address, u8 *pdata, u32 length);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioGpRead16)(u8 func, u32 address, u16 *pdata);
typedef CsrResult (*CsrWifiRouterCtrlRawSdioGpWrite16)(u8 func, u32 address, u16 data);

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlBlockAckRole

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ORIGINATOR
                   -
    CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_RECIPIENT
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlBlockAckRole;
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ORIGINATOR   ((CsrWifiRouterCtrlBlockAckRole) 0x00)
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_RECIPIENT    ((CsrWifiRouterCtrlBlockAckRole) 0x01)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlControlIndication

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_CONTROL_INDICATION_ERROR
                   -
    CSR_WIFI_ROUTER_CTRL_CONTROL_INDICATION_EXIT
                   -
    CSR_WIFI_ROUTER_CTRL_CONTROL_INDICATION_USER_REQUESTED
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlControlIndication;
#define CSR_WIFI_ROUTER_CTRL_CONTROL_INDICATION_ERROR            ((CsrWifiRouterCtrlControlIndication) 0x01)
#define CSR_WIFI_ROUTER_CTRL_CONTROL_INDICATION_EXIT             ((CsrWifiRouterCtrlControlIndication) 0x02)
#define CSR_WIFI_ROUTER_CTRL_CONTROL_INDICATION_USER_REQUESTED   ((CsrWifiRouterCtrlControlIndication) 0x03)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlListAction

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_LIST_ACTION_GET
                   -
    CSR_WIFI_ROUTER_CTRL_LIST_ACTION_ADD
                   -
    CSR_WIFI_ROUTER_CTRL_LIST_ACTION_REMOVE
                   -
    CSR_WIFI_ROUTER_CTRL_LIST_ACTION_FLUSH
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlListAction;
#define CSR_WIFI_ROUTER_CTRL_LIST_ACTION_GET      ((CsrWifiRouterCtrlListAction) 0x00)
#define CSR_WIFI_ROUTER_CTRL_LIST_ACTION_ADD      ((CsrWifiRouterCtrlListAction) 0x01)
#define CSR_WIFI_ROUTER_CTRL_LIST_ACTION_REMOVE   ((CsrWifiRouterCtrlListAction) 0x02)
#define CSR_WIFI_ROUTER_CTRL_LIST_ACTION_FLUSH    ((CsrWifiRouterCtrlListAction) 0x03)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlLowPowerMode

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_LOW_POWER_MODE_DISABLED
                   -
    CSR_WIFI_ROUTER_CTRL_LOW_POWER_MODE_ENABLED
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlLowPowerMode;
#define CSR_WIFI_ROUTER_CTRL_LOW_POWER_MODE_DISABLED   ((CsrWifiRouterCtrlLowPowerMode) 0x0000)
#define CSR_WIFI_ROUTER_CTRL_LOW_POWER_MODE_ENABLED    ((CsrWifiRouterCtrlLowPowerMode) 0x0001)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlMediaStatus

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_MEDIA_STATUS_CONNECTED
                   -
    CSR_WIFI_ROUTER_CTRL_MEDIA_STATUS_DISCONNECTED
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlMediaStatus;
#define CSR_WIFI_ROUTER_CTRL_MEDIA_STATUS_CONNECTED      ((CsrWifiRouterCtrlMediaStatus) 0x00)
#define CSR_WIFI_ROUTER_CTRL_MEDIA_STATUS_DISCONNECTED   ((CsrWifiRouterCtrlMediaStatus) 0x01)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlMode

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_MODE_NONE    -
    CSR_WIFI_ROUTER_CTRL_MODE_IBSS    -
    CSR_WIFI_ROUTER_CTRL_MODE_STA     -
    CSR_WIFI_ROUTER_CTRL_MODE_AP      -
    CSR_WIFI_ROUTER_CTRL_MODE_MONITOR -
    CSR_WIFI_ROUTER_CTRL_MODE_AMP     -
    CSR_WIFI_ROUTER_CTRL_MODE_P2P     -
    CSR_WIFI_ROUTER_CTRL_MODE_P2PGO   -
    CSR_WIFI_ROUTER_CTRL_MODE_P2PCLI  -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlMode;
#define CSR_WIFI_ROUTER_CTRL_MODE_NONE      ((CsrWifiRouterCtrlMode) 0x00)
#define CSR_WIFI_ROUTER_CTRL_MODE_IBSS      ((CsrWifiRouterCtrlMode) 0x01)
#define CSR_WIFI_ROUTER_CTRL_MODE_STA       ((CsrWifiRouterCtrlMode) 0x02)
#define CSR_WIFI_ROUTER_CTRL_MODE_AP        ((CsrWifiRouterCtrlMode) 0x03)
#define CSR_WIFI_ROUTER_CTRL_MODE_MONITOR   ((CsrWifiRouterCtrlMode) 0x04)
#define CSR_WIFI_ROUTER_CTRL_MODE_AMP       ((CsrWifiRouterCtrlMode) 0x05)
#define CSR_WIFI_ROUTER_CTRL_MODE_P2P       ((CsrWifiRouterCtrlMode) 0x06)
#define CSR_WIFI_ROUTER_CTRL_MODE_P2PGO     ((CsrWifiRouterCtrlMode) 0x07)
#define CSR_WIFI_ROUTER_CTRL_MODE_P2PCLI    ((CsrWifiRouterCtrlMode) 0x08)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerStatus

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_PEER_CONNECTED_ACTIVE
                   -
    CSR_WIFI_ROUTER_CTRL_PEER_CONNECTED_POWER_SAVE
                   -
    CSR_WIFI_ROUTER_CTRL_PEER_DISCONNECTED
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlPeerStatus;
#define CSR_WIFI_ROUTER_CTRL_PEER_CONNECTED_ACTIVE       ((CsrWifiRouterCtrlPeerStatus) 0x00)
#define CSR_WIFI_ROUTER_CTRL_PEER_CONNECTED_POWER_SAVE   ((CsrWifiRouterCtrlPeerStatus) 0x01)
#define CSR_WIFI_ROUTER_CTRL_PEER_DISCONNECTED           ((CsrWifiRouterCtrlPeerStatus) 0x02)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPortAction

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_PORT_ACTION_8021X_PORT_OPEN
                   -
    CSR_WIFI_ROUTER_CTRL_PORT_ACTION_8021X_PORT_CLOSED_DISCARD
                   -
    CSR_WIFI_ROUTER_CTRL_PORT_ACTION_8021X_PORT_CLOSED_BLOCK
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlPortAction;
#define CSR_WIFI_ROUTER_CTRL_PORT_ACTION_8021X_PORT_OPEN             ((CsrWifiRouterCtrlPortAction) 0x0000)
#define CSR_WIFI_ROUTER_CTRL_PORT_ACTION_8021X_PORT_CLOSED_DISCARD   ((CsrWifiRouterCtrlPortAction) 0x0001)
#define CSR_WIFI_ROUTER_CTRL_PORT_ACTION_8021X_PORT_CLOSED_BLOCK     ((CsrWifiRouterCtrlPortAction) 0x0002)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPowersaveType

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_AC_BK_PS_INFO_PRESENT
                   - If set, AC BK PS info is present in b4 and b5
    CSR_WIFI_ROUTER_CTRL_AC_BE_PS_INFO_PRESENT
                   - If set, AC BE PS info is present in b6 and b7
    CSR_WIFI_ROUTER_CTRL_AC_VI_PS_INFO_PRESENT
                   - If set, AC VI PS info is present in b8 and b9
    CSR_WIFI_ROUTER_CTRL_AC_VO_PS_INFO_PRESENT
                   - If set, AC VO PS info is present in b10 and b11
    CSR_WIFI_ROUTER_CTRL_AC_BK_TRIGGER_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_BK_DELIVERY_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_BE_TRIGGER_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_BE_DELIVERY_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_VI_TRIGGER_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_VI_DELIVERY_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_VO_TRIGGER_ENABLED
                   -
    CSR_WIFI_ROUTER_CTRL_AC_VO_DELIVERY_ENABLED
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlPowersaveType;
#define CSR_WIFI_ROUTER_CTRL_AC_BK_PS_INFO_PRESENT    ((CsrWifiRouterCtrlPowersaveType) 0x0001)
#define CSR_WIFI_ROUTER_CTRL_AC_BE_PS_INFO_PRESENT    ((CsrWifiRouterCtrlPowersaveType) 0x0002)
#define CSR_WIFI_ROUTER_CTRL_AC_VI_PS_INFO_PRESENT    ((CsrWifiRouterCtrlPowersaveType) 0x0004)
#define CSR_WIFI_ROUTER_CTRL_AC_VO_PS_INFO_PRESENT    ((CsrWifiRouterCtrlPowersaveType) 0x0008)
#define CSR_WIFI_ROUTER_CTRL_AC_BK_TRIGGER_ENABLED    ((CsrWifiRouterCtrlPowersaveType) 0x0010)
#define CSR_WIFI_ROUTER_CTRL_AC_BK_DELIVERY_ENABLED   ((CsrWifiRouterCtrlPowersaveType) 0x0020)
#define CSR_WIFI_ROUTER_CTRL_AC_BE_TRIGGER_ENABLED    ((CsrWifiRouterCtrlPowersaveType) 0x0040)
#define CSR_WIFI_ROUTER_CTRL_AC_BE_DELIVERY_ENABLED   ((CsrWifiRouterCtrlPowersaveType) 0x0080)
#define CSR_WIFI_ROUTER_CTRL_AC_VI_TRIGGER_ENABLED    ((CsrWifiRouterCtrlPowersaveType) 0x0100)
#define CSR_WIFI_ROUTER_CTRL_AC_VI_DELIVERY_ENABLED   ((CsrWifiRouterCtrlPowersaveType) 0x0200)
#define CSR_WIFI_ROUTER_CTRL_AC_VO_TRIGGER_ENABLED    ((CsrWifiRouterCtrlPowersaveType) 0x0400)
#define CSR_WIFI_ROUTER_CTRL_AC_VO_DELIVERY_ENABLED   ((CsrWifiRouterCtrlPowersaveType) 0x0800)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlProtocolDirection

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_PROTOCOL_DIRECTION_RX
                   -
    CSR_WIFI_ROUTER_CTRL_PROTOCOL_DIRECTION_TX
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlProtocolDirection;
#define CSR_WIFI_ROUTER_CTRL_PROTOCOL_DIRECTION_RX   ((CsrWifiRouterCtrlProtocolDirection) 0x0000)
#define CSR_WIFI_ROUTER_CTRL_PROTOCOL_DIRECTION_TX   ((CsrWifiRouterCtrlProtocolDirection) 0x0001)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlQoSControl

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_OFF
                   -
    CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_WMM_ON
                   -
    CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_80211_ON
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlQoSControl;
#define CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_OFF        ((CsrWifiRouterCtrlQoSControl) 0x0000)
#define CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_WMM_ON     ((CsrWifiRouterCtrlQoSControl) 0x0001)
#define CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_80211_ON   ((CsrWifiRouterCtrlQoSControl) 0x0002)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlQueueConfig

  DESCRIPTION
    Defines which Queues are enabled for use.

 VALUES
    CSR_WIFI_ROUTER_CTRL_QUEUE_BE_ENABLE
                   -
    CSR_WIFI_ROUTER_CTRL_QUEUE_BK_ENABLE
                   -
    CSR_WIFI_ROUTER_CTRL_QUEUE_VI_ENABLE
                   -
    CSR_WIFI_ROUTER_CTRL_QUEUE_VO_ENABLE
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlQueueConfig;
#define CSR_WIFI_ROUTER_CTRL_QUEUE_BE_ENABLE   ((CsrWifiRouterCtrlQueueConfig) 0x01)
#define CSR_WIFI_ROUTER_CTRL_QUEUE_BK_ENABLE   ((CsrWifiRouterCtrlQueueConfig) 0x02)
#define CSR_WIFI_ROUTER_CTRL_QUEUE_VI_ENABLE   ((CsrWifiRouterCtrlQueueConfig) 0x04)
#define CSR_WIFI_ROUTER_CTRL_QUEUE_VO_ENABLE   ((CsrWifiRouterCtrlQueueConfig) 0x08)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficConfigType

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_TYPE_RESET
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_TYPE_FILTER
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_TYPE_CLS
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlTrafficConfigType;
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_TYPE_RESET    ((CsrWifiRouterCtrlTrafficConfigType) 0x0000)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_TYPE_FILTER   ((CsrWifiRouterCtrlTrafficConfigType) 0x0001)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_TYPE_CLS      ((CsrWifiRouterCtrlTrafficConfigType) 0x0002)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficPacketType

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_NONE
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_EAPOL
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_DHCP
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_DHCP_ACK
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_ARP
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_AIRONET
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_CUSTOM
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_ALL
                   -

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlTrafficPacketType;
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_NONE       ((CsrWifiRouterCtrlTrafficPacketType) 0x0000)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_EAPOL      ((CsrWifiRouterCtrlTrafficPacketType) 0x0001)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_DHCP       ((CsrWifiRouterCtrlTrafficPacketType) 0x0002)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_DHCP_ACK   ((CsrWifiRouterCtrlTrafficPacketType) 0x0004)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_ARP        ((CsrWifiRouterCtrlTrafficPacketType) 0x0008)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_AIRONET    ((CsrWifiRouterCtrlTrafficPacketType) 0x0010)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_CUSTOM     ((CsrWifiRouterCtrlTrafficPacketType) 0x0020)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PACKET_TYPE_ALL        ((CsrWifiRouterCtrlTrafficPacketType) 0x00FF)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficType

  DESCRIPTION

 VALUES
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_OCCASIONAL
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_BURSTY
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_PERIODIC
                   -
    CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_CONTINUOUS
                   -

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlTrafficType;
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_OCCASIONAL   ((CsrWifiRouterCtrlTrafficType) 0x00)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_BURSTY       ((CsrWifiRouterCtrlTrafficType) 0x01)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_PERIODIC     ((CsrWifiRouterCtrlTrafficType) 0x02)
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_TYPE_CONTINUOUS   ((CsrWifiRouterCtrlTrafficType) 0x03)


/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerRecordHandle

  DESCRIPTION

*******************************************************************************/
typedef u32 CsrWifiRouterCtrlPeerRecordHandle;
/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPowersaveTypeMask

  DESCRIPTION
    Mask type for use with the values defined by
    CsrWifiRouterCtrlPowersaveType

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlPowersaveTypeMask;
/*******************************************************************************

  NAME
    CsrWifiRouterCtrlQueueConfigMask

  DESCRIPTION
    Mask type for use with the values defined by CsrWifiRouterCtrlQueueConfig

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlQueueConfigMask;
/*******************************************************************************

  NAME
    CsrWifiRouterCtrlRequestorInfo

  DESCRIPTION

*******************************************************************************/
typedef u16 CsrWifiRouterCtrlRequestorInfo;
/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficStreamId

  DESCRIPTION

*******************************************************************************/
typedef u8 CsrWifiRouterCtrlTrafficStreamId;


/*******************************************************************************

  NAME
    CsrWifiRouterCtrlSmeVersions

  DESCRIPTION

  MEMBERS
    firmwarePatch -
    smeBuild      -
    smeHip        -

*******************************************************************************/
typedef struct
{
    u32      firmwarePatch;
    char *smeBuild;
    u32      smeHip;
} CsrWifiRouterCtrlSmeVersions;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlStaInfo

  DESCRIPTION

  MEMBERS
    wmmOrQosEnabled     -
    powersaveMode       -
    maxSpLength         -
    listenIntervalInTus -

*******************************************************************************/
typedef struct
{
    u8                            wmmOrQosEnabled;
    CsrWifiRouterCtrlPowersaveTypeMask powersaveMode;
    u8                           maxSpLength;
    u16                          listenIntervalInTus;
} CsrWifiRouterCtrlStaInfo;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficFilter

  DESCRIPTION

  MEMBERS
    etherType     -
    ipType        -
    udpSourcePort -
    udpDestPort   -

*******************************************************************************/
typedef struct
{
    u32 etherType;
    u8  ipType;
    u32 udpSourcePort;
    u32 udpDestPort;
} CsrWifiRouterCtrlTrafficFilter;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficStats

  DESCRIPTION

  MEMBERS
    rxMeanRate   - Mean rx data rate over the interval
    rxFramesNum  - Keep number of Rx frames per second, for CYCLE_3.
    txFramesNum  - Keep number of Tx frames per second, for CYCLE_3.
    rxBytesCount - Keep calculated Rx throughput per second, for CYCLE_2.
    txBytesCount - Keep calculated Tx throughput per second, for CYCLE_2.
    intervals    - array size 11 MUST match TA_INTERVALS_NUM

*******************************************************************************/
typedef struct
{
    u32 rxMeanRate;
    u32 rxFramesNum;
    u32 txFramesNum;
    u32 rxBytesCount;
    u32 txBytesCount;
    u8  intervals[11];
} CsrWifiRouterCtrlTrafficStats;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlVersions

  DESCRIPTION

  MEMBERS
    chipId        -
    chipVersion   -
    firmwareBuild -
    firmwareHip   -
    routerBuild   -
    routerHip     -

*******************************************************************************/
typedef struct
{
    u32      chipId;
    u32      chipVersion;
    u32      firmwareBuild;
    u32      firmwareHip;
    char *routerBuild;
    u32      routerHip;
} CsrWifiRouterCtrlVersions;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficConfig

  DESCRIPTION

  MEMBERS
    packetFilter -
    customFilter -

*******************************************************************************/
typedef struct
{
    u16                      packetFilter;
    CsrWifiRouterCtrlTrafficFilter customFilter;
} CsrWifiRouterCtrlTrafficConfig;


/* Downstream */
#define CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST            (0x0000)

#define CSR_WIFI_ROUTER_CTRL_CONFIGURE_POWER_MODE_REQ     ((CsrWifiRouterCtrlPrim) (0x0000 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_HIP_REQ                      ((CsrWifiRouterCtrlPrim) (0x0001 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_MEDIA_STATUS_REQ             ((CsrWifiRouterCtrlPrim) (0x0002 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_MULTICAST_ADDRESS_RES        ((CsrWifiRouterCtrlPrim) (0x0003 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PORT_CONFIGURE_REQ           ((CsrWifiRouterCtrlPrim) (0x0004 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_QOS_CONTROL_REQ              ((CsrWifiRouterCtrlPrim) (0x0005 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_SUSPEND_RES                  ((CsrWifiRouterCtrlPrim) (0x0006 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TCLAS_ADD_REQ                ((CsrWifiRouterCtrlPrim) (0x0007 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_RESUME_RES                   ((CsrWifiRouterCtrlPrim) (0x0008 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_RAW_SDIO_DEINITIALISE_REQ    ((CsrWifiRouterCtrlPrim) (0x0009 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_RAW_SDIO_INITIALISE_REQ      ((CsrWifiRouterCtrlPrim) (0x000A + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TCLAS_DEL_REQ                ((CsrWifiRouterCtrlPrim) (0x000B + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_CLASSIFICATION_REQ   ((CsrWifiRouterCtrlPrim) (0x000C + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_CONFIG_REQ           ((CsrWifiRouterCtrlPrim) (0x000D + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_OFF_REQ                 ((CsrWifiRouterCtrlPrim) (0x000E + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_OFF_RES                 ((CsrWifiRouterCtrlPrim) (0x000F + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_ON_REQ                  ((CsrWifiRouterCtrlPrim) (0x0010 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_ON_RES                  ((CsrWifiRouterCtrlPrim) (0x0011 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_M4_TRANSMIT_REQ              ((CsrWifiRouterCtrlPrim) (0x0012 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_MODE_SET_REQ                 ((CsrWifiRouterCtrlPrim) (0x0013 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PEER_ADD_REQ                 ((CsrWifiRouterCtrlPrim) (0x0014 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PEER_DEL_REQ                 ((CsrWifiRouterCtrlPrim) (0x0015 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PEER_UPDATE_REQ              ((CsrWifiRouterCtrlPrim) (0x0016 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_CAPABILITIES_REQ             ((CsrWifiRouterCtrlPrim) (0x0017 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ENABLE_REQ         ((CsrWifiRouterCtrlPrim) (0x0018 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_DISABLE_REQ        ((CsrWifiRouterCtrlPrim) (0x0019 + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_RX_PKT_REQ              ((CsrWifiRouterCtrlPrim) (0x001A + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_MULTICAST_FILTER_REQ    ((CsrWifiRouterCtrlPrim) (0x001B + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_UNICAST_FILTER_REQ      ((CsrWifiRouterCtrlPrim) (0x001C + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_UNICAST_TX_PKT_REQ      ((CsrWifiRouterCtrlPrim) (0x001D + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_FILTER_REQ              ((CsrWifiRouterCtrlPrim) (0x001E + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST))


#define CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_HIGHEST           (0x001E + CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST)

/* Upstream */
#define CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST              (0x0000 + CSR_PRIM_UPSTREAM)

#define CSR_WIFI_ROUTER_CTRL_HIP_IND                      ((CsrWifiRouterCtrlPrim)(0x0000 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_MULTICAST_ADDRESS_IND        ((CsrWifiRouterCtrlPrim)(0x0001 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PORT_CONFIGURE_CFM           ((CsrWifiRouterCtrlPrim)(0x0002 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_RESUME_IND                   ((CsrWifiRouterCtrlPrim)(0x0003 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_SUSPEND_IND                  ((CsrWifiRouterCtrlPrim)(0x0004 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TCLAS_ADD_CFM                ((CsrWifiRouterCtrlPrim)(0x0005 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_RAW_SDIO_DEINITIALISE_CFM    ((CsrWifiRouterCtrlPrim)(0x0006 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_RAW_SDIO_INITIALISE_CFM      ((CsrWifiRouterCtrlPrim)(0x0007 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TCLAS_DEL_CFM                ((CsrWifiRouterCtrlPrim)(0x0008 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_PROTOCOL_IND         ((CsrWifiRouterCtrlPrim)(0x0009 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_TRAFFIC_SAMPLE_IND           ((CsrWifiRouterCtrlPrim)(0x000A + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_OFF_IND                 ((CsrWifiRouterCtrlPrim)(0x000B + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_OFF_CFM                 ((CsrWifiRouterCtrlPrim)(0x000C + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_ON_IND                  ((CsrWifiRouterCtrlPrim)(0x000D + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WIFI_ON_CFM                  ((CsrWifiRouterCtrlPrim)(0x000E + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_M4_READY_TO_SEND_IND         ((CsrWifiRouterCtrlPrim)(0x000F + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_M4_TRANSMITTED_IND           ((CsrWifiRouterCtrlPrim)(0x0010 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_MIC_FAILURE_IND              ((CsrWifiRouterCtrlPrim)(0x0011 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_CONNECTED_IND                ((CsrWifiRouterCtrlPrim)(0x0012 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PEER_ADD_CFM                 ((CsrWifiRouterCtrlPrim)(0x0013 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PEER_DEL_CFM                 ((CsrWifiRouterCtrlPrim)(0x0014 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_UNEXPECTED_FRAME_IND         ((CsrWifiRouterCtrlPrim)(0x0015 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_PEER_UPDATE_CFM              ((CsrWifiRouterCtrlPrim)(0x0016 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_CAPABILITIES_CFM             ((CsrWifiRouterCtrlPrim)(0x0017 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ENABLE_CFM         ((CsrWifiRouterCtrlPrim)(0x0018 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_DISABLE_CFM        ((CsrWifiRouterCtrlPrim)(0x0019 + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_BLOCK_ACK_ERROR_IND          ((CsrWifiRouterCtrlPrim)(0x001A + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_STA_INACTIVE_IND             ((CsrWifiRouterCtrlPrim)(0x001B + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_RX_MIC_CHECK_IND        ((CsrWifiRouterCtrlPrim)(0x001C + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_MODE_SET_CFM                 ((CsrWifiRouterCtrlPrim)(0x001D + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))
#define CSR_WIFI_ROUTER_CTRL_WAPI_UNICAST_TX_ENCRYPT_IND  ((CsrWifiRouterCtrlPrim)(0x001E + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST))

#define CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_HIGHEST             (0x001E + CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST)

#define CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_COUNT             (CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_ROUTER_CTRL_PRIM_DOWNSTREAM_LOWEST)
#define CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_COUNT               (CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_HIGHEST   + 1 - CSR_WIFI_ROUTER_CTRL_PRIM_UPSTREAM_LOWEST)

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlConfigurePowerModeReq

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    mode       -
    wakeHost   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrWifiRouterCtrlLowPowerMode  mode;
    u8                        wakeHost;
} CsrWifiRouterCtrlConfigurePowerModeReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlHipReq

  DESCRIPTION
    This primitive is used for transferring MLME messages to the HIP.

  MEMBERS
    common            - Common header for use with the CsrWifiFsm Module
    mlmeCommandLength - Length of the MLME signal
    mlmeCommand       - Pointer to the MLME signal
    dataRef1Length    - Length of the dataRef1 bulk data
    dataRef1          - Pointer to the bulk data 1
    dataRef2Length    - Length of the dataRef2 bulk data
    dataRef2          - Pointer to the bulk data 2

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       mlmeCommandLength;
    u8       *mlmeCommand;
    u16       dataRef1Length;
    u8       *dataRef1;
    u16       dataRef2Length;
    u8       *dataRef2;
} CsrWifiRouterCtrlHipReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlMediaStatusReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    clientData   -
    mediaStatus  -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrWifiRouterCtrlMediaStatus   mediaStatus;
} CsrWifiRouterCtrlMediaStatusReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlMulticastAddressRes

  DESCRIPTION

  MEMBERS
    common            - Common header for use with the CsrWifiFsm Module
    interfaceTag      -
    clientData        -
    status            -
    action            -
    getAddressesCount -
    getAddresses      -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      status;
    CsrWifiRouterCtrlListAction    action;
    u8                       getAddressesCount;
    CsrWifiMacAddress             *getAddresses;
} CsrWifiRouterCtrlMulticastAddressRes;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPortConfigureReq

  DESCRIPTION

  MEMBERS
    common                 - Common header for use with the CsrWifiFsm Module
    interfaceTag           -
    clientData             -
    uncontrolledPortAction -
    controlledPortAction   -
    macAddress             -
    setProtection          -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrWifiRouterCtrlPortAction    uncontrolledPortAction;
    CsrWifiRouterCtrlPortAction    controlledPortAction;
    CsrWifiMacAddress              macAddress;
    u8                        setProtection;
} CsrWifiRouterCtrlPortConfigureReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlQosControlReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    clientData   -
    control      -
    queueConfig  -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                  common;
    u16                        interfaceTag;
    CsrWifiRouterCtrlRequestorInfo   clientData;
    CsrWifiRouterCtrlQoSControl      control;
    CsrWifiRouterCtrlQueueConfigMask queueConfig;
} CsrWifiRouterCtrlQosControlReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlSuspendRes

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    status     -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      status;
} CsrWifiRouterCtrlSuspendRes;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTclasAddReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    clientData   -
    tclasLength  -
    tclas        -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      tclasLength;
    u8                      *tclas;
} CsrWifiRouterCtrlTclasAddReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlResumeRes

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    status     -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      status;
} CsrWifiRouterCtrlResumeRes;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlRawSdioDeinitialiseReq

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlRawSdioDeinitialiseReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlRawSdioInitialiseReq

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlRawSdioInitialiseReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTclasDelReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    clientData   -
    tclasLength  -
    tclas        -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      tclasLength;
    u8                      *tclas;
} CsrWifiRouterCtrlTclasDelReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficClassificationReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    clientData   -
    trafficType  -
    period       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrWifiRouterCtrlTrafficType   trafficType;
    u16                      period;
} CsrWifiRouterCtrlTrafficClassificationReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficConfigReq

  DESCRIPTION

  MEMBERS
    common            - Common header for use with the CsrWifiFsm Module
    interfaceTag      -
    clientData        -
    trafficConfigType -
    config            -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                    common;
    u16                          interfaceTag;
    CsrWifiRouterCtrlRequestorInfo     clientData;
    CsrWifiRouterCtrlTrafficConfigType trafficConfigType;
    CsrWifiRouterCtrlTrafficConfig     config;
} CsrWifiRouterCtrlTrafficConfigReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOffReq

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlWifiOffReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOffRes

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlWifiOffRes;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOnReq

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    dataLength - Number of bytes in the buffer pointed to by 'data'
    data       - Pointer to the buffer containing 'dataLength' bytes

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u32                      dataLength;
    u8                      *data;
} CsrWifiRouterCtrlWifiOnReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOnRes

  DESCRIPTION

  MEMBERS
    common              - Common header for use with the CsrWifiFsm Module
    clientData          -
    status              -
    numInterfaceAddress -
    stationMacAddress   - array size 1 MUST match CSR_WIFI_NUM_INTERFACES
    smeVersions         -
    scheduledInterrupt  -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      status;
    u16                      numInterfaceAddress;
    CsrWifiMacAddress              stationMacAddress[2];
    CsrWifiRouterCtrlSmeVersions   smeVersions;
    u8                        scheduledInterrupt;
} CsrWifiRouterCtrlWifiOnRes;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlM4TransmitReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    clientData   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlM4TransmitReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlModeSetReq

  DESCRIPTION

  MEMBERS
    common              - Common header for use with the CsrWifiFsm Module
    interfaceTag        -
    clientData          -
    mode                -
    bssid               - BSSID of the network the device is going to be a part
                          of
    protection          - Set to TRUE if encryption is enabled for the
                          connection/broadcast frames
    intraBssDistEnabled - If set to TRUE, intra BSS destribution will be
                          enabled. If set to FALSE, any unicast PDU which does
                          not have the RA as the the local MAC address, shall be
                          ignored. This field is interpreted by the receive if
                          mode is set to CSR_WIFI_ROUTER_CTRL_MODE_P2PGO

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrWifiRouterCtrlMode          mode;
    CsrWifiMacAddress              bssid;
    u8                        protection;
    u8                        intraBssDistEnabled;
} CsrWifiRouterCtrlModeSetReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerAddReq

  DESCRIPTION

  MEMBERS
    common         - Common header for use with the CsrWifiFsm Module
    interfaceTag   -
    clientData     -
    peerMacAddress -
    associationId  -
    staInfo        -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    u16                      interfaceTag;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrWifiMacAddress              peerMacAddress;
    u16                      associationId;
    CsrWifiRouterCtrlStaInfo       staInfo;
} CsrWifiRouterCtrlPeerAddReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerDelReq

  DESCRIPTION

  MEMBERS
    common           - Common header for use with the CsrWifiFsm Module
    interfaceTag     -
    clientData       -
    peerRecordHandle -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                   common;
    u16                         interfaceTag;
    CsrWifiRouterCtrlRequestorInfo    clientData;
    CsrWifiRouterCtrlPeerRecordHandle peerRecordHandle;
} CsrWifiRouterCtrlPeerDelReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerUpdateReq

  DESCRIPTION

  MEMBERS
    common           - Common header for use with the CsrWifiFsm Module
    interfaceTag     -
    clientData       -
    peerRecordHandle -
    powersaveMode    -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                    common;
    u16                          interfaceTag;
    CsrWifiRouterCtrlRequestorInfo     clientData;
    CsrWifiRouterCtrlPeerRecordHandle  peerRecordHandle;
    CsrWifiRouterCtrlPowersaveTypeMask powersaveMode;
} CsrWifiRouterCtrlPeerUpdateReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlCapabilitiesReq

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlCapabilitiesReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlBlockAckEnableReq

  DESCRIPTION

  MEMBERS
    common          - Common header for use with the CsrWifiFsm Module
    interfaceTag    -
    clientData      -
    macAddress      -
    trafficStreamID -
    role            -
    bufferSize      -
    timeout         -
    ssn             -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                  common;
    u16                        interfaceTag;
    CsrWifiRouterCtrlRequestorInfo   clientData;
    CsrWifiMacAddress                macAddress;
    CsrWifiRouterCtrlTrafficStreamId trafficStreamID;
    CsrWifiRouterCtrlBlockAckRole    role;
    u16                        bufferSize;
    u16                        timeout;
    u16                        ssn;
} CsrWifiRouterCtrlBlockAckEnableReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlBlockAckDisableReq

  DESCRIPTION

  MEMBERS
    common          - Common header for use with the CsrWifiFsm Module
    interfaceTag    -
    clientData      -
    macAddress      -
    trafficStreamID -
    role            -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                  common;
    u16                        interfaceTag;
    CsrWifiRouterCtrlRequestorInfo   clientData;
    CsrWifiMacAddress                macAddress;
    CsrWifiRouterCtrlTrafficStreamId trafficStreamID;
    CsrWifiRouterCtrlBlockAckRole    role;
} CsrWifiRouterCtrlBlockAckDisableReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiRxPktReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    signalLength -
    signal       -
    dataLength   -
    data         -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       interfaceTag;
    u16       signalLength;
    u8       *signal;
    u16       dataLength;
    u8       *data;
} CsrWifiRouterCtrlWapiRxPktReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiMulticastFilterReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       interfaceTag;
    u8        status;
} CsrWifiRouterCtrlWapiMulticastFilterReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiUnicastFilterReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       interfaceTag;
    u8        status;
} CsrWifiRouterCtrlWapiUnicastFilterReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiUnicastTxPktReq

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    interfaceTag -
    dataLength   -
    data         -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       interfaceTag;
    u16       dataLength;
    u8       *data;
} CsrWifiRouterCtrlWapiUnicastTxPktReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiFilterReq

  DESCRIPTION

  MEMBERS
    common          - Common header for use with the CsrWifiFsm Module
    interfaceTag    -
    isWapiConnected -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       interfaceTag;
    u8         isWapiConnected;
} CsrWifiRouterCtrlWapiFilterReq;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlHipInd

  DESCRIPTION
    This primitive is used for transferring MLME messages from the HIP.

  MEMBERS
    common            - Common header for use with the CsrWifiFsm Module
    mlmeCommandLength - Length of the MLME signal
    mlmeCommand       - Pointer to the MLME signal
    dataRef1Length    - Length of the dataRef1 bulk data
    dataRef1          - Pointer to the bulk data 1
    dataRef2Length    - Length of the dataRef2 bulk data
    dataRef2          - Pointer to the bulk data 2

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent common;
    u16       mlmeCommandLength;
    u8       *mlmeCommand;
    u16       dataRef1Length;
    u8       *dataRef1;
    u16       dataRef2Length;
    u8       *dataRef2;
} CsrWifiRouterCtrlHipInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlMulticastAddressInd

  DESCRIPTION

  MEMBERS
    common            - Common header for use with the CsrWifiFsm Module
    clientData        -
    interfaceTag      -
    action            -
    setAddressesCount -
    setAddresses      -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiRouterCtrlListAction    action;
    u8                       setAddressesCount;
    CsrWifiMacAddress             *setAddresses;
} CsrWifiRouterCtrlMulticastAddressInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPortConfigureCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -
    macAddress   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
    CsrWifiMacAddress              macAddress;
} CsrWifiRouterCtrlPortConfigureCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlResumeInd

  DESCRIPTION

  MEMBERS
    common          - Common header for use with the CsrWifiFsm Module
    clientData      -
    powerMaintained -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u8                        powerMaintained;
} CsrWifiRouterCtrlResumeInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlSuspendInd

  DESCRIPTION

  MEMBERS
    common      - Common header for use with the CsrWifiFsm Module
    clientData  -
    hardSuspend -
    d3Suspend   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u8                        hardSuspend;
    u8                        d3Suspend;
} CsrWifiRouterCtrlSuspendInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTclasAddCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
} CsrWifiRouterCtrlTclasAddCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlRawSdioDeinitialiseCfm

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    result     -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      result;
} CsrWifiRouterCtrlRawSdioDeinitialiseCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlRawSdioInitialiseCfm

  DESCRIPTION

  MEMBERS
    common           - Common header for use with the CsrWifiFsm Module
    clientData       -
    result           -
    byteRead         -
    byteWrite        -
    firmwareDownload -
    reset            -
    coreDumpPrepare  -
    byteBlockRead    -
    gpRead16         -
    gpWrite16        -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                          common;
    CsrWifiRouterCtrlRequestorInfo           clientData;
    CsrResult                                result;
    CsrWifiRouterCtrlRawSdioByteRead         byteRead;
    CsrWifiRouterCtrlRawSdioByteWrite        byteWrite;
    CsrWifiRouterCtrlRawSdioFirmwareDownload firmwareDownload;
    CsrWifiRouterCtrlRawSdioReset            reset;
    CsrWifiRouterCtrlRawSdioCoreDumpPrepare  coreDumpPrepare;
    CsrWifiRouterCtrlRawSdioByteBlockRead    byteBlockRead;
    CsrWifiRouterCtrlRawSdioGpRead16         gpRead16;
    CsrWifiRouterCtrlRawSdioGpWrite16        gpWrite16;
} CsrWifiRouterCtrlRawSdioInitialiseCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTclasDelCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
} CsrWifiRouterCtrlTclasDelCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficProtocolInd

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    packetType   -
    direction    -
    srcAddress   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                    common;
    CsrWifiRouterCtrlRequestorInfo     clientData;
    u16                          interfaceTag;
    CsrWifiRouterCtrlTrafficPacketType packetType;
    CsrWifiRouterCtrlProtocolDirection direction;
    CsrWifiMacAddress                  srcAddress;
} CsrWifiRouterCtrlTrafficProtocolInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlTrafficSampleInd

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    stats        -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiRouterCtrlTrafficStats  stats;
} CsrWifiRouterCtrlTrafficSampleInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOffInd

  DESCRIPTION

  MEMBERS
    common            - Common header for use with the CsrWifiFsm Module
    clientData        -
    controlIndication -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                    common;
    CsrWifiRouterCtrlRequestorInfo     clientData;
    CsrWifiRouterCtrlControlIndication controlIndication;
} CsrWifiRouterCtrlWifiOffInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOffCfm

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
} CsrWifiRouterCtrlWifiOffCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOnInd

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    status     -
    versions   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      status;
    CsrWifiRouterCtrlVersions      versions;
} CsrWifiRouterCtrlWifiOnInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWifiOnCfm

  DESCRIPTION

  MEMBERS
    common     - Common header for use with the CsrWifiFsm Module
    clientData -
    status     -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    CsrResult                      status;
} CsrWifiRouterCtrlWifiOnCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlM4ReadyToSendInd

  DESCRIPTION

  MEMBERS
    common         - Common header for use with the CsrWifiFsm Module
    clientData     -
    interfaceTag   -
    peerMacAddress -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiMacAddress              peerMacAddress;
} CsrWifiRouterCtrlM4ReadyToSendInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlM4TransmittedInd

  DESCRIPTION

  MEMBERS
    common         - Common header for use with the CsrWifiFsm Module
    clientData     -
    interfaceTag   -
    peerMacAddress -
    status         -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiMacAddress              peerMacAddress;
    CsrResult                      status;
} CsrWifiRouterCtrlM4TransmittedInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlMicFailureInd

  DESCRIPTION

  MEMBERS
    common         - Common header for use with the CsrWifiFsm Module
    clientData     -
    interfaceTag   -
    peerMacAddress -
    unicastPdu     -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiMacAddress              peerMacAddress;
    u8                        unicastPdu;
} CsrWifiRouterCtrlMicFailureInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlConnectedInd

  DESCRIPTION

  MEMBERS
    common         - Common header for use with the CsrWifiFsm Module
    clientData     -
    interfaceTag   -
    peerMacAddress -
    peerStatus     -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiMacAddress              peerMacAddress;
    CsrWifiRouterCtrlPeerStatus    peerStatus;
} CsrWifiRouterCtrlConnectedInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerAddCfm

  DESCRIPTION

  MEMBERS
    common           - Common header for use with the CsrWifiFsm Module
    clientData       -
    interfaceTag     -
    peerMacAddress   -
    peerRecordHandle -
    status           -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                   common;
    CsrWifiRouterCtrlRequestorInfo    clientData;
    u16                         interfaceTag;
    CsrWifiMacAddress                 peerMacAddress;
    CsrWifiRouterCtrlPeerRecordHandle peerRecordHandle;
    CsrResult                         status;
} CsrWifiRouterCtrlPeerAddCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerDelCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
} CsrWifiRouterCtrlPeerDelCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlUnexpectedFrameInd

  DESCRIPTION

  MEMBERS
    common         - Common header for use with the CsrWifiFsm Module
    clientData     -
    interfaceTag   -
    peerMacAddress -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiMacAddress              peerMacAddress;
} CsrWifiRouterCtrlUnexpectedFrameInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlPeerUpdateCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
} CsrWifiRouterCtrlPeerUpdateCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlCapabilitiesCfm

  DESCRIPTION
    The router sends this primitive to confirm the size of the queues of the
    HIP.

  MEMBERS
    common           - Common header for use with the CsrWifiFsm Module
    clientData       -
    commandQueueSize - Size of command queue
    trafficQueueSize - Size of traffic queue (per AC)

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      commandQueueSize;
    u16                      trafficQueueSize;
} CsrWifiRouterCtrlCapabilitiesCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlBlockAckEnableCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
} CsrWifiRouterCtrlBlockAckEnableCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlBlockAckDisableCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrResult                      status;
} CsrWifiRouterCtrlBlockAckDisableCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlBlockAckErrorInd

  DESCRIPTION

  MEMBERS
    common          - Common header for use with the CsrWifiFsm Module
    clientData      -
    interfaceTag    -
    trafficStreamID -
    peerMacAddress  -
    status          -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                  common;
    CsrWifiRouterCtrlRequestorInfo   clientData;
    u16                        interfaceTag;
    CsrWifiRouterCtrlTrafficStreamId trafficStreamID;
    CsrWifiMacAddress                peerMacAddress;
    CsrResult                        status;
} CsrWifiRouterCtrlBlockAckErrorInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlStaInactiveInd

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    staAddress   -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiMacAddress              staAddress;
} CsrWifiRouterCtrlStaInactiveInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiRxMicCheckInd

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    signalLength -
    signal       -
    dataLength   -
    data         -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    u16                      signalLength;
    u8                      *signal;
    u16                      dataLength;
    u8                      *data;
} CsrWifiRouterCtrlWapiRxMicCheckInd;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlModeSetCfm

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    mode         -
    status       -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    CsrWifiRouterCtrlMode          mode;
    CsrResult                      status;
} CsrWifiRouterCtrlModeSetCfm;

/*******************************************************************************

  NAME
    CsrWifiRouterCtrlWapiUnicastTxEncryptInd

  DESCRIPTION

  MEMBERS
    common       - Common header for use with the CsrWifiFsm Module
    clientData   -
    interfaceTag -
    dataLength   -
    data         -

*******************************************************************************/
typedef struct
{
    CsrWifiFsmEvent                common;
    CsrWifiRouterCtrlRequestorInfo clientData;
    u16                      interfaceTag;
    u16                      dataLength;
    u8                      *data;
} CsrWifiRouterCtrlWapiUnicastTxEncryptInd;

#endif /* CSR_WIFI_ROUTER_CTRL_PRIM_H__ */