Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 338181
b: refs/heads/master
c: 9d8b659
h: refs/heads/master
i:
  338179: ed724b8
v: v3
  • Loading branch information
Kevin McKinney authored and Greg Kroah-Hartman committed Nov 27, 2012
1 parent 701923f commit f2b3d16
Show file tree
Hide file tree
Showing 2 changed files with 142 additions and 157 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dc23445a118addb0b79e60754e70f99a3cf5177b
refs/heads/master: 9d8b659a18ef91cd825dcadf0676a01827982633
297 changes: 141 additions & 156 deletions trunk/drivers/staging/bcm/HostMIBSInterface.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#ifndef _HOST_MIBSINTERFACE_H
#define _HOST_MIBSINTERFACE_H

Expand All @@ -8,201 +6,190 @@
* File Name: HostMIBSInterface.h
* Abstract: This file contains DS used by the Host to update the Host
* statistics used for the MIBS.
*/

#define MIBS_MAX_CLASSIFIERS 100
#define MIBS_MAX_PHSRULES 100
#define MIBS_MAX_SERVICEFLOWS 17
#define MIBS_MAX_IP_RANGE_LENGTH 4
#define MIBS_MAX_PORT_RANGE 4
#define MIBS_MAX_PROTOCOL_LENGTH 32
#define MIBS_MAX_PHS_LENGTHS 255
#define MIBS_IPV6_ADDRESS_SIZEINBYTES 0x10
*/

#define MIBS_MAX_CLASSIFIERS 100
#define MIBS_MAX_PHSRULES 100
#define MIBS_MAX_SERVICEFLOWS 17
#define MIBS_MAX_IP_RANGE_LENGTH 4
#define MIBS_MAX_PORT_RANGE 4
#define MIBS_MAX_PROTOCOL_LENGTH 32
#define MIBS_MAX_PHS_LENGTHS 255
#define MIBS_IPV6_ADDRESS_SIZEINBYTES 0x10
#define MIBS_IP_LENGTH_OF_ADDRESS 4
#define MIBS_MAX_HIST_ENTRIES 12
#define MIBS_PKTSIZEHIST_RANGE 128
#define MIBS_MAX_HIST_ENTRIES 12
#define MIBS_PKTSIZEHIST_RANGE 128

typedef union _U_MIBS_IP_ADDRESS
{
struct
struct
{
//Source Ip Address Range
ULONG ulIpv4Addr[MIBS_MAX_IP_RANGE_LENGTH];
ULONG ulIpv4Addr[MIBS_MAX_IP_RANGE_LENGTH];
//Source Ip Mask Address Range
ULONG ulIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH];
ULONG ulIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH];
};
struct
{
//Source Ip Address Range
ULONG ulIpv6Addr[MIBS_MAX_IP_RANGE_LENGTH * 4];
ULONG ulIpv6Addr[MIBS_MAX_IP_RANGE_LENGTH * 4];
//Source Ip Mask Address Range
ULONG ulIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * 4];

ULONG ulIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * 4];
};
struct
{
UCHAR ucIpv4Address[MIBS_MAX_IP_RANGE_LENGTH *
MIBS_IP_LENGTH_OF_ADDRESS];
UCHAR ucIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH *
MIBS_IP_LENGTH_OF_ADDRESS];
UCHAR ucIpv4Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IP_LENGTH_OF_ADDRESS];
UCHAR ucIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IP_LENGTH_OF_ADDRESS];
};
struct
{
UCHAR ucIpv6Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
UCHAR ucIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
UCHAR ucIpv6Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
UCHAR ucIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
};
}U_MIBS_IP_ADDRESS;

} U_MIBS_IP_ADDRESS;

typedef struct _S_MIBS_HOST_INFO
{
ULONG64 GoodTransmits;
ULONG64 GoodReceives;
ULONG64 GoodTransmits;
ULONG64 GoodReceives;
// this to keep track of the Tx and Rx MailBox Registers.
ULONG NumDesUsed;
ULONG CurrNumFreeDesc;
ULONG PrevNumFreeDesc;
ULONG NumDesUsed;
ULONG CurrNumFreeDesc;
ULONG PrevNumFreeDesc;
// to keep track the no of byte received
ULONG PrevNumRcevBytes;
ULONG CurrNumRcevBytes;

ULONG PrevNumRcevBytes;
ULONG CurrNumRcevBytes;
/* QOS Related */
ULONG BEBucketSize;
ULONG rtPSBucketSize;
ULONG LastTxQueueIndex;
BOOLEAN TxOutofDescriptors;
BOOLEAN TimerActive;
UINT32 u32TotalDSD;
UINT32 aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
UINT32 aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
}S_MIBS_HOST_INFO;
ULONG BEBucketSize;
ULONG rtPSBucketSize;
ULONG LastTxQueueIndex;
BOOLEAN TxOutofDescriptors;
BOOLEAN TimerActive;
UINT32 u32TotalDSD;
UINT32 aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
UINT32 aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
} S_MIBS_HOST_INFO;

typedef struct _S_MIBS_CLASSIFIER_RULE
{
ULONG ulSFID;
UCHAR ucReserved[2];
B_UINT16 uiClassifierRuleIndex;
BOOLEAN bUsed;
USHORT usVCID_Value;
ULONG ulSFID;
UCHAR ucReserved[2];
B_UINT16 uiClassifierRuleIndex;
BOOLEAN bUsed;
USHORT usVCID_Value;
// This field detemines the Classifier Priority
B_UINT8 u8ClassifierRulePriority;
U_MIBS_IP_ADDRESS stSrcIpAddress;
B_UINT8 u8ClassifierRulePriority;
U_MIBS_IP_ADDRESS stSrcIpAddress;
/*IP Source Address Length*/
UCHAR ucIPSourceAddressLength;

U_MIBS_IP_ADDRESS stDestIpAddress;
UCHAR ucIPSourceAddressLength;
U_MIBS_IP_ADDRESS stDestIpAddress;
/* IP Destination Address Length */
UCHAR ucIPDestinationAddressLength;
UCHAR ucIPTypeOfServiceLength;//Type of service Length
UCHAR ucTosLow;//Tos Low
UCHAR ucTosHigh;//Tos High
UCHAR ucTosMask;//Tos Mask
UCHAR ucProtocolLength;//protocol Length
UCHAR ucProtocol[MIBS_MAX_PROTOCOL_LENGTH];//protocol Length
USHORT usSrcPortRangeLo[MIBS_MAX_PORT_RANGE];
USHORT usSrcPortRangeHi[MIBS_MAX_PORT_RANGE];
UCHAR ucSrcPortRangeLength;
USHORT usDestPortRangeLo[MIBS_MAX_PORT_RANGE];
USHORT usDestPortRangeHi[MIBS_MAX_PORT_RANGE];
UCHAR ucDestPortRangeLength;
BOOLEAN bProtocolValid;
BOOLEAN bTOSValid;
BOOLEAN bDestIpValid;
BOOLEAN bSrcIpValid;
UCHAR ucDirection;
BOOLEAN bIpv6Protocol;
UINT32 u32PHSRuleID;
}S_MIBS_CLASSIFIER_RULE;

UCHAR ucIPDestinationAddressLength;
UCHAR ucIPTypeOfServiceLength;//Type of service Length
UCHAR ucTosLow;//Tos Low
UCHAR ucTosHigh;//Tos High
UCHAR ucTosMask;//Tos Mask
UCHAR ucProtocolLength;//protocol Length
UCHAR ucProtocol[MIBS_MAX_PROTOCOL_LENGTH];//protocol Length
USHORT usSrcPortRangeLo[MIBS_MAX_PORT_RANGE];
USHORT usSrcPortRangeHi[MIBS_MAX_PORT_RANGE];
UCHAR ucSrcPortRangeLength;
USHORT usDestPortRangeLo[MIBS_MAX_PORT_RANGE];
USHORT usDestPortRangeHi[MIBS_MAX_PORT_RANGE];
UCHAR ucDestPortRangeLength;
BOOLEAN bProtocolValid;
BOOLEAN bTOSValid;
BOOLEAN bDestIpValid;
BOOLEAN bSrcIpValid;
UCHAR ucDirection;
BOOLEAN bIpv6Protocol;
UINT32 u32PHSRuleID;
} S_MIBS_CLASSIFIER_RULE;

typedef struct _S_MIBS_PHS_RULE
{
ULONG ulSFID;
ULONG ulSFID;
/// brief 8bit PHSI Of The Service Flow
B_UINT8 u8PHSI;
B_UINT8 u8PHSI;
/// brief PHSF Of The Service Flow
B_UINT8 u8PHSFLength;
B_UINT8 u8PHSF[MIBS_MAX_PHS_LENGTHS];
B_UINT8 u8PHSFLength;
B_UINT8 u8PHSF[MIBS_MAX_PHS_LENGTHS];
/// brief PHSM Of The Service Flow
B_UINT8 u8PHSMLength;
B_UINT8 u8PHSM[MIBS_MAX_PHS_LENGTHS];
B_UINT8 u8PHSMLength;
B_UINT8 u8PHSM[MIBS_MAX_PHS_LENGTHS];
/// brief 8bit PHSS Of The Service Flow
B_UINT8 u8PHSS;
B_UINT8 u8PHSS;
/// brief 8bit PHSV Of The Service Flow
B_UINT8 u8PHSV;
B_UINT8 u8PHSV;
// Reserved bytes are 5, so that it is similar to S_PHS_RULE structure.
B_UINT8 reserved[5];

LONG PHSModifiedBytes;
ULONG PHSModifiedNumPackets;
ULONG PHSErrorNumPackets;
}S_MIBS_PHS_RULE;
B_UINT8 reserved[5];
LONG PHSModifiedBytes;
ULONG PHSModifiedNumPackets;
ULONG PHSErrorNumPackets;
} S_MIBS_PHS_RULE;

typedef struct _S_MIBS_EXTSERVICEFLOW_PARAMETERS
{
UINT32 wmanIfSfid;
UINT32 wmanIfCmnCpsSfState;
UINT32 wmanIfCmnCpsMaxSustainedRate;
UINT32 wmanIfCmnCpsMaxTrafficBurst;
UINT32 wmanIfCmnCpsMinReservedRate;
UINT32 wmanIfCmnCpsToleratedJitter;
UINT32 wmanIfCmnCpsMaxLatency;
UINT32 wmanIfCmnCpsFixedVsVariableSduInd;
UINT32 wmanIfCmnCpsSduSize;
UINT32 wmanIfCmnCpsSfSchedulingType;
UINT32 wmanIfCmnCpsArqEnable;
UINT32 wmanIfCmnCpsArqWindowSize;
UINT32 wmanIfCmnCpsArqBlockLifetime;
UINT32 wmanIfCmnCpsArqSyncLossTimeout;
UINT32 wmanIfCmnCpsArqDeliverInOrder;
UINT32 wmanIfCmnCpsArqRxPurgeTimeout;
UINT32 wmanIfCmnCpsArqBlockSize;
UINT32 wmanIfCmnCpsMinRsvdTolerableRate;
UINT32 wmanIfCmnCpsReqTxPolicy;
UINT32 wmanIfCmnSfCsSpecification;
UINT32 wmanIfCmnCpsTargetSaid;

}S_MIBS_EXTSERVICEFLOW_PARAMETERS;

UINT32 wmanIfSfid;
UINT32 wmanIfCmnCpsSfState;
UINT32 wmanIfCmnCpsMaxSustainedRate;
UINT32 wmanIfCmnCpsMaxTrafficBurst;
UINT32 wmanIfCmnCpsMinReservedRate;
UINT32 wmanIfCmnCpsToleratedJitter;
UINT32 wmanIfCmnCpsMaxLatency;
UINT32 wmanIfCmnCpsFixedVsVariableSduInd;
UINT32 wmanIfCmnCpsSduSize;
UINT32 wmanIfCmnCpsSfSchedulingType;
UINT32 wmanIfCmnCpsArqEnable;
UINT32 wmanIfCmnCpsArqWindowSize;
UINT32 wmanIfCmnCpsArqBlockLifetime;
UINT32 wmanIfCmnCpsArqSyncLossTimeout;
UINT32 wmanIfCmnCpsArqDeliverInOrder;
UINT32 wmanIfCmnCpsArqRxPurgeTimeout;
UINT32 wmanIfCmnCpsArqBlockSize;
UINT32 wmanIfCmnCpsMinRsvdTolerableRate;
UINT32 wmanIfCmnCpsReqTxPolicy;
UINT32 wmanIfCmnSfCsSpecification;
UINT32 wmanIfCmnCpsTargetSaid;
} S_MIBS_EXTSERVICEFLOW_PARAMETERS;

typedef struct _S_MIBS_SERVICEFLOW_TABLE
{
//classification extension Rule
ULONG ulSFID;
USHORT usVCID_Value;
UINT uiThreshold;
//classification extension Rule
ULONG ulSFID;
USHORT usVCID_Value;
UINT uiThreshold;
// This field determines the priority of the SF Queues
B_UINT8 u8TrafficPriority;

BOOLEAN bValid;
BOOLEAN bActive;
BOOLEAN bActivateRequestSent;
B_UINT8 u8TrafficPriority;
BOOLEAN bValid;
BOOLEAN bActive;
BOOLEAN bActivateRequestSent;
//BE or rtPS
B_UINT8 u8QueueType;
B_UINT8 u8QueueType;
//maximum size of the bucket for the queue
UINT uiMaxBucketSize;
UINT uiCurrentQueueDepthOnTarget;
UINT uiCurrentBytesOnHost;
UINT uiCurrentPacketsOnHost;
UINT uiDroppedCountBytes;
UINT uiDroppedCountPackets;
UINT uiSentBytes;
UINT uiSentPackets;
UINT uiCurrentDrainRate;
UINT uiThisPeriodSentBytes;
UINT uiMaxBucketSize;
UINT uiCurrentQueueDepthOnTarget;
UINT uiCurrentBytesOnHost;
UINT uiCurrentPacketsOnHost;
UINT uiDroppedCountBytes;
UINT uiDroppedCountPackets;
UINT uiSentBytes;
UINT uiSentPackets;
UINT uiCurrentDrainRate;
UINT uiThisPeriodSentBytes;
LARGE_INTEGER liDrainCalculated;
UINT uiCurrentTokenCount;
UINT uiCurrentTokenCount;
LARGE_INTEGER liLastUpdateTokenAt;
UINT uiMaxAllowedRate;
UINT NumOfPacketsSent;
UCHAR ucDirection;
USHORT usCID;
S_MIBS_EXTSERVICEFLOW_PARAMETERS stMibsExtServiceFlowTable;
UINT uiCurrentRxRate;
UINT uiThisPeriodRxBytes;
UINT uiTotalRxBytes;
UINT uiTotalTxBytes;
}S_MIBS_SERVICEFLOW_TABLE;
UINT uiMaxAllowedRate;
UINT NumOfPacketsSent;
UCHAR ucDirection;
USHORT usCID;
S_MIBS_EXTSERVICEFLOW_PARAMETERS stMibsExtServiceFlowTable;
UINT uiCurrentRxRate;
UINT uiThisPeriodRxBytes;
UINT uiTotalRxBytes;
UINT uiTotalTxBytes;
} S_MIBS_SERVICEFLOW_TABLE;

typedef struct _S_MIBS_DROPPED_APP_CNTRL_MESSAGES
{
Expand All @@ -214,17 +201,15 @@ typedef struct _S_MIBS_DROPPED_APP_CNTRL_MESSAGES
ULONG idle_mode_status;
ULONG auth_ss_host_msg;
ULONG low_priority_message;

}S_MIBS_DROPPED_APP_CNTRL_MESSAGES;
} S_MIBS_DROPPED_APP_CNTRL_MESSAGES;

typedef struct _S_MIBS_HOST_STATS_MIBS
{
S_MIBS_HOST_INFO stHostInfo;
S_MIBS_CLASSIFIER_RULE astClassifierTable[MIBS_MAX_CLASSIFIERS];
S_MIBS_SERVICEFLOW_TABLE astSFtable[MIBS_MAX_SERVICEFLOWS];
S_MIBS_PHS_RULE astPhsRulesTable[MIBS_MAX_PHSRULES];
S_MIBS_DROPPED_APP_CNTRL_MESSAGES stDroppedAppCntrlMsgs;
}S_MIBS_HOST_STATS_MIBS;
#endif

S_MIBS_HOST_INFO stHostInfo;
S_MIBS_CLASSIFIER_RULE astClassifierTable[MIBS_MAX_CLASSIFIERS];
S_MIBS_SERVICEFLOW_TABLE astSFtable[MIBS_MAX_SERVICEFLOWS];
S_MIBS_PHS_RULE astPhsRulesTable[MIBS_MAX_PHSRULES];
S_MIBS_DROPPED_APP_CNTRL_MESSAGES stDroppedAppCntrlMsgs;
} S_MIBS_HOST_STATS_MIBS;

#endif

0 comments on commit f2b3d16

Please sign in to comment.